From 2141e81f429e608bb2c93f104488d50594f8ccc7 Mon Sep 17 00:00:00 2001 From: Gabe Richman Date: Sun, 23 Mar 2025 11:53:47 -0700 Subject: [PATCH] Trying to fix basic functionality again. --- .env | 6 + .env.example | 6 + .nextflow.log | 504 +++ .nextflow.log.1 | 511 +++ .nextflow.log.2 | 516 +++ .../db/000003.log | Bin 0 -> 1250 bytes .../db/CURRENT | 1 + .../db/LOCK | 0 .../db/MANIFEST-000002 | Bin 0 -> 50 bytes .../index.astonishing_jennings | Bin 0 -> 17 bytes .../db/000003.log | Bin 0 -> 1193 bytes .../db/CURRENT | 1 + .../db/LOCK | 0 .../db/MANIFEST-000002 | Bin 0 -> 50 bytes .../index.distracted_curran | Bin 0 -> 17 bytes .../db/000003.log | Bin 0 -> 1193 bytes .../db/CURRENT | 1 + .../db/LOCK | 0 .../db/MANIFEST-000002 | Bin 0 -> 50 bytes .../index.astonishing_wozniak | Bin 0 -> 17 bytes .nextflow/history | 3 + CLAUDE.md | 26 + DOCKER_README.md | 104 + Dockerfile | 70 + LICENSE | 201 + README.md | 189 +- SYNTHEA_GUIDE.md | 280 ++ docker-compose.yml | 47 + main.nf | 128 + module_generator/README_module_generator.md | 83 + module_generator/module_generator.py | 732 ++++ module_generator/run_module_generator.py | 478 +++ nextflow.config | 51 + params.json | 14 + scripts/.nextflow.log | 14 + scripts/README.md | 12 + scripts/analyze_patient_data.py | 304 ++ scripts/check_condition_structure.py | 223 ++ scripts/check_json.py | 14 + scripts/cleanup.sh | 262 ++ scripts/generate_batch.py | 175 + scripts/generate_module.py | 468 +++ scripts/patient_analysis.py | 321 ++ scripts/prepare_environment.sh | 127 + scripts/run_module.py | 77 + scripts/run_pipeline.sh | 182 + scripts/simple_module.py | 99 + scripts/test.py | 1 + scripts/test_module_exists.py | 123 + scripts/validate_module.py | 305 ++ simple.nf | 77 + .../disease/custom_disease_list.json | 8 + src/main/resources/disease/disease_list.csv | 1129 ++++++ src/main/resources/disease/disease_list.json | 32 + src/main/resources/disease_list.json | 32 + .../resources/disease_modules_progress.md | 6 + src/main/resources/modules/acne_vulgaris.json | 403 ++ .../resources/modules/acute_bronchitis.json | 397 ++ .../modules/acute_myeloid_leukemia.json | 879 +++++ .../modules/acute_myocardial_infarction.json | 493 +++ .../resources/modules/acute_pharyngitis.json | 183 + .../modules/acute_pharyngitis.json.details | 84 + .../resources/modules/acute_sinusitis.json | 183 + .../modules/acute_sinusitis.json.details | 81 + .../modules/all_anxiety_disorders.json | 417 +++ .../resources/modules/allergic_rhinitis.json | 366 ++ src/main/resources/modules/allergies.json | 274 ++ .../modules/allergies/allergy_panel.json | 928 +++++ .../allergies/drug_allergy_incidence.json | 812 +++++ .../environmental_allergy_incidence.json | 717 ++++ .../allergies/food_allergy_incidence.json | 1357 +++++++ .../modules/allergies/immunotherapy.json | 267 ++ .../allergies/outgrow_env_allergies.json | 273 ++ .../allergies/outgrow_food_allergies.json | 341 ++ .../allergies/severe_allergic_reaction.json | 97 + .../resources/modules/anemia/anemia_sub.json | 1157 ++++++ .../modules/anemia___unknown_etiology.json | 391 ++ .../resources/modules/angina_pectoris.json | 598 +++ .../resources/modules/anxiety_disorders.json | 479 +++ src/main/resources/modules/appendicitis.json | 402 ++ src/main/resources/modules/asthma.json | 593 +++ src/main/resources/modules/atopy.json | 196 + .../modules/atrial_fibrillation.json | 191 + .../modules/attention_deficit_disorder.json | 463 +++ ...erger_s_or_autistic_spectrum_disorder.json | 484 +++ .../bacterial_pneumonia.json.fixed.raw | 482 +++ .../modules/bacterial_pneumonia.json.raw | 482 +++ .../modules/bone_marrow_transplant.json | 807 +++++ src/main/resources/modules/breast_cancer.json | 2197 +++++++++++ .../breast_cancer/chemotherapy_breast.json | 323 ++ .../breast_cancer/hormone_diagnosis.json | 431 +++ .../breast_cancer/hormonetherapy_breast.json | 544 +++ .../breast_cancer/surgery_therapy_breast.json | 1129 ++++++ .../modules/breast_cancer/tnm_diagnosis.json | 657 ++++ src/main/resources/modules/bronchitis.json | 541 +++ .../resources/modules/cerebral_palsy.json | 1551 ++++++++ .../chronic_ischaemic_heart_disease.json | 491 +++ .../modules/chronic_kidney_disease.json | 464 +++ .../resources/modules/colorectal_cancer.json | 2188 +++++++++++ src/main/resources/modules/common_cold.json | 401 ++ .../modules/common_cold.json.fixed.raw | 485 +++ .../resources/modules/common_cold.json.raw | 399 ++ ...defined_descriptions_of_heart_disease.json | 492 +++ .../modules/congestive_heart_failure.json | 1892 ++++++++++ .../modules/contraceptive_maintenance.json | 517 +++ .../resources/modules/contraceptives.json | 567 +++ .../contraceptives/clear_contraceptive.json | 53 + .../contraceptives/female_sterilization.json | 194 + .../contraceptives/implant_contraceptive.json | 205 ++ .../injectable_contraceptive.json | 161 + .../contraceptives/intrauterine_device.json | 337 ++ .../contraceptives/male_sterilization.json | 140 + .../contraceptives/oral_contraceptive.json | 511 +++ .../contraceptives/patch_contraceptive.json | 87 + .../contraceptives/ring_contraceptive.json | 86 + src/main/resources/modules/copd.json | 1264 +++++++ src/main/resources/modules/covid19.json | 75 + .../resources/modules/covid19/admission.json | 1156 ++++++ .../modules/covid19/determine_risk.json | 272 ++ .../covid19/diagnose_bacterial_infection.json | 69 + .../modules/covid19/diagnose_blood_clot.json | 117 + .../modules/covid19/end_outcomes.json | 167 + .../modules/covid19/end_symptoms.json | 217 ++ .../resources/modules/covid19/infection.json | 1253 +++++++ .../modules/covid19/measurements_daily.json | 932 +++++ .../covid19/measurements_frequent.json | 222 ++ .../modules/covid19/measurements_vitals.json | 143 + .../modules/covid19/medications.json | 1054 ++++++ .../covid19/nonsurvivor_lab_values.json | 514 +++ .../resources/modules/covid19/outcomes.json | 421 +++ .../covid19/supplies_hospitalization.json | 100 + .../modules/covid19/supplies_icu.json | 99 + .../modules/covid19/supplies_intubation.json | 201 + .../modules/covid19/survivor_lab_values.json | 562 +++ .../resources/modules/covid19/symptoms.json | 1050 ++++++ .../modules/covid19/treat_blood_clot.json | 259 ++ .../resources/modules/cystic_fibrosis.json | 1769 +++++++++ src/main/resources/modules/dementia.json | 771 ++++ .../modules/dental_and_oral_examination.json | 1089 ++++++ src/main/resources/modules/dentures.json | 719 ++++ src/main/resources/modules/dermatitis.json | 692 ++++ .../dermatitis/early_moderate_eczema_obs.json | 88 + .../dermatitis/early_severe_eczema_obs.json | 88 + .../dermatitis/mid_moderate_eczema_obs.json | 88 + .../dermatitis/mid_severe_eczema_obs.json | 88 + .../modules/dermatitis/moderate_cd_obs.json | 85 + .../modules/dermatitis/severe_cd_obs.json | 85 + src/main/resources/modules/diabetes.json | 61 + src/main/resources/modules/dialysis.json | 762 ++++ .../resources/modules/dme/wheelchair.json | 73 + .../resources/modules/dme/wheelchair_end.json | 26 + .../resources/modules/ear_infections.json | 249 ++ .../modules/encounter/anxiety_screening.json | 214 ++ .../encounter/depression_screening.json | 357 ++ .../encounter/fall_risk_screening.json | 257 ++ .../modules/encounter/hark_screening.json | 172 + .../encounter/hospital_basic_labs.json | 1077 ++++++ .../modules/encounter/sdoh_hrsn.json | 2730 ++++++++++++++ .../encounter/substance_use_screening.json | 823 +++++ .../resources/modules/encounter/vitals.json | 107 + src/main/resources/modules/epilepsy.json | 459 +++ .../essential_primary_hypertension.json | 284 ++ .../modules/female_reproduction.json | 361 ++ src/main/resources/modules/fibromyalgia.json | 404 +++ .../resources/modules/food_allergies.json | 286 ++ src/main/resources/modules/gallstones.json | 1391 +++++++ src/main/resources/modules/gout.json | 305 ++ .../modules/heart/acs_anticoagulant.json | 183 + .../modules/heart/acs_antiplatelet.json | 223 ++ .../heart/acs_arrival_medications.json | 150 + .../modules/heart/acs_discharge_meds.json | 324 ++ .../modules/heart/avrr/antithrombotic.json | 167 + .../modules/heart/avrr/avrr_referral.json | 512 +++ .../heart/avrr/intraop_meds_blood.json | 99 + .../modules/heart/avrr/outcomes.json | 1015 ++++++ .../modules/heart/avrr/preoperative.json | 596 +++ .../modules/heart/avrr/savrr_operation.json | 359 ++ .../modules/heart/avrr/savrr_postop.json | 891 +++++ .../modules/heart/avrr/sequence.json | 460 +++ .../modules/heart/cabg/cabg_referral.json | 532 +++ .../resources/modules/heart/cabg/details.json | 428 +++ .../modules/heart/cabg/icu_meds_devices.json | 87 + .../modules/heart/cabg/labs_common.json | 902 +++++ .../modules/heart/cabg/operation.json | 392 ++ .../modules/heart/cabg/or_intraop.json | 226 ++ .../modules/heart/cabg/or_labs_meds.json | 346 ++ .../modules/heart/cabg/outcomes.json | 938 +++++ .../resources/modules/heart/cabg/postop.json | 469 +++ .../modules/heart/cabg/postop_blood.json | 331 ++ .../modules/heart/cabg/preoperative.json | 763 ++++ .../modules/heart/cabg_sequence.json | 226 ++ .../resources/modules/heart/cardiac_labs.json | 799 ++++ .../resources/modules/heart/chf_lab_work.json | 626 ++++ .../resources/modules/heart/chf_lvad.json | 95 + .../resources/modules/heart/chf_meds.json | 301 ++ .../modules/heart/chf_meds_hfmef.json | 341 ++ .../modules/heart/chf_meds_hfref_nyha2.json | 433 +++ .../modules/heart/chf_meds_hfref_nyha3.json | 499 +++ .../modules/heart/chf_meds_hfref_nyha4.json | 387 ++ .../modules/heart/chf_nyha_panel.json | 726 ++++ .../modules/heart/chf_transplant.json | 86 + .../modules/heart/nsteacs_pathway.json | 395 ++ .../modules/heart/operative_status.json | 201 + .../resources/modules/heart/or_blood.json | 137 + .../heart/savrepair/operative_status.json | 144 + .../heart/savreplace/operative_status.json | 178 + .../modules/heart/stemi_fibrinolytic.json | 66 + .../modules/heart/stemi_pathway.json | 230 ++ .../modules/heart/tavr/alt_access.json | 157 + .../modules/heart/tavr/operation.json | 174 + .../modules/heart/tavr/operative_status.json | 144 + .../modules/heart/tavr/outcomes.json | 922 +++++ .../resources/modules/heart/tavr/postop.json | 944 +++++ .../resources/modules/heart/vhd_risks.json | 67 + src/main/resources/modules/heart_disease.json | 17 + src/main/resources/modules/heart_failure.json | 379 ++ .../resources/modules/hiv/art_sequence.json | 281 ++ .../modules/hiv/art_sequence_1987_1994.json | 297 ++ .../modules/hiv/art_sequence_1995_1996.json | 206 ++ .../modules/hiv/art_sequence_1997_2002.json | 699 ++++ .../modules/hiv/art_sequence_2003_2005.json | 360 ++ .../modules/hiv/art_sequence_2006_2014.json | 623 ++++ .../modules/hiv/art_sequence_2015.json | 623 ++++ .../resources/modules/hiv/hiv_baseline.json | 2118 +++++++++++ src/main/resources/modules/hiv/hiv_cd4.json | 1732 +++++++++ .../modules/hiv/hiv_oi_prophylaxis.json | 420 +++ .../resources/modules/hiv/hiv_screening.json | 144 + .../resources/modules/hiv/hiv_viral_load.json | 438 +++ .../modules/hiv/stop_all_art_meds.json | 335 ++ src/main/resources/modules/hiv_care.json | 966 +++++ src/main/resources/modules/hiv_diagnosis.json | 285 ++ .../modules/home_health_treatment.json | 364 ++ .../resources/modules/home_hospice_snf.json | 782 ++++ src/main/resources/modules/homelessness.json | 448 +++ .../resources/modules/hospice_treatment.json | 327 ++ src/main/resources/modules/hypertension.json | 900 +++++ .../modules/hypertensive_renal_disease.json | 977 +++++ .../resources/modules/hypothyroidism.json | 245 ++ src/main/resources/modules/injuries.json | 3077 ++++++++++++++++ .../modules/injuries/broken_jaw.json | 591 +++ .../insulin_dependent_diabetes_mellitus.json | 405 +++ .../resources/modules/kidney_transplant.json | 2192 +++++++++++ .../resources/modules/lookup_tables/AML.csv | 13 + ...dipine_benazepril_product_distribution.csv | 244 ++ ...drochlorothiazide_product_distribution.csv | 170 + ...ce_arb_benazepril_product_distribution.csv | 285 ++ ...ace_arb_enalapril_product_distribution.csv | 277 ++ ...iazide_lisinopril_product_distribution.csv | 352 ++ ...thiazide_losartan_product_distribution.csv | 352 ++ ...hiazide_valsartan_product_distribution.csv | 238 ++ .../ace_arb_ingredient_distribution.csv | 612 ++++ ...ce_arb_irbesartan_product_distribution.csv | 260 ++ ...ce_arb_lisinopril_product_distribution.csv | 574 +++ .../ace_arb_losartan_product_distribution.csv | 410 +++ ...ace_arb_quinapril_product_distribution.csv | 138 + .../ace_arb_ramipril_product_distribution.csv | 223 ++ ...ubitril_valsartan_product_distribution.csv | 166 + ...e_arb_telmisartan_product_distribution.csv | 195 + ...ace_arb_valsartan_product_distribution.csv | 320 ++ ..._blocker_atenolol_product_distribution.csv | 397 ++ ...drochlorothiazide_product_distribution.csv | 170 + ...locker_bisoprolol_product_distribution.csv | 192 + ...locker_carvedilol_product_distribution.csv | 375 ++ .../beta_blocker_ingredient_distribution.csv | 560 +++ ...blocker_labetalol_product_distribution.csv | 328 ++ ...locker_metoprolol_product_distribution.csv | 407 +++ ...blocker_nebivolol_product_distribution.csv | 227 ++ ...ocker_propranolol_product_distribution.csv | 479 +++ .../cabg_details_num_art_cond.csv | 7 + .../lookup_tables/cabg_details_num_grafts.csv | 5 + .../cabg_details_operative_approach.csv | 5 + .../covid-19-severity-outcomes.csv | 7 + .../covid-19-survival-outcomes.csv | 45 + .../modules/lookup_tables/covid19_prob.csv | 603 +++ .../lookup_tables/covid_dose_rates.csv | 274 ++ ...inhaler_albuterol_product_distribution.csv | 3 + ...rgency_inhaler_ingredient_distribution.csv | 3 + ...aler_levalbuterol_product_distribution.csv | 2 + .../modules/lookup_tables/hiv_care.csv | 57 + .../lookup_tables/hiv_diagnosis_early.csv | 501 +++ .../lookup_tables/hiv_diagnosis_later.csv | 325 ++ .../lookup_tables/hiv_mortality_early.csv | 383 ++ .../lookup_tables/hiv_mortality_later.csv | 377 ++ .../hiv_mortality_very_early.csv | 14 + .../modules/lookup_tables/hiv_stage.csv | 61 + ...er_beclomethasone_product_distribution.csv | 3 + ...nhaler_budesonide_product_distribution.csv | 3 + ...haler_fluticasone_product_distribution.csv | 3 + ...enance_inhaler_ingredient_distribution.csv | 3 + ...nhaler_mometasone_product_distribution.csv | 2 + .../lookup_tables/or_blood_anemia_check.csv | 17 + .../lookup_tables/or_blood_plasma_check.csv | 17 + .../lookup_tables/or_blood_platelet_check.csv | 17 + ...atin_atorvastatin_product_distribution.csv | 438 +++ ...imibe_simvastatin_product_distribution.csv | 139 + .../statin_ingredient_distribution.csv | 438 +++ ...statin_lovastatin_product_distribution.csv | 268 ++ ...atin_pitavastatin_product_distribution.csv | 178 + ...tatin_pravastatin_product_distribution.csv | 328 ++ ...atin_rosuvastatin_product_distribution.csv | 320 ++ ...tatin_simvastatin_product_distribution.csv | 366 ++ .../resources/modules/lookup_tables/uti.csv | 11 + .../modules/lookup_tables/uti_recurrence.csv | 11 + .../modules/lookup_tables/vhd_ar.csv | 39 + .../modules/lookup_tables/vhd_as.csv | 39 + .../modules/lookup_tables/vhd_mr.csv | 39 + .../modules/lookup_tables/vhd_ms.csv | 39 + .../modules/lookup_tables/vhd_pr.csv | 39 + .../modules/lookup_tables/vhd_ps.csv | 39 + .../modules/lookup_tables/vhd_tr.csv | 39 + .../modules/lookup_tables/vhd_ts.csv | 39 + src/main/resources/modules/lung_cancer.json | 2714 ++++++++++++++ .../lung_cancer_probabilities.json | 136 + src/main/resources/modules/lupus.json | 350 ++ src/main/resources/modules/mTBI.json | 74 + src/main/resources/modules/med_rec.json | 64 + .../modules/medications/ace_arb.json | 1965 ++++++++++ .../modules/medications/beta_blocker.json | 1322 +++++++ .../medications/ear_infection_antibiotic.json | 603 +++ .../medications/emergency_inhaler.json | 418 +++ .../medications/hypertension_medication.json | 1303 +++++++ .../medications/maintenance_inhaler.json | 699 ++++ .../moderate_opioid_pain_reliever.json | 174 + .../medications/otc_antihistamine.json | 450 +++ .../medications/otc_pain_reliever.json | 326 ++ .../resources/modules/medications/statin.json | 1027 ++++++ .../strong_opioid_pain_reliever.json | 145 + src/main/resources/modules/mend_program.json | 166 + .../metabolic_syndrome/amputations.json | 437 +++ .../metabolic_syndrome/dme_supplies.json | 113 + .../metabolic_syndrome/eye_conditions.json | 408 +++ .../metabolic_syndrome/kidney_conditions.json | 2138 +++++++++++ .../metabolic_syndrome/medications.json | 389 ++ .../modules/metabolic_syndrome_care.json | 762 ++++ .../modules/metabolic_syndrome_disease.json | 732 ++++ src/main/resources/modules/migraine.json | 42 + .../resources/modules/multiple_sclerosis.json | 418 +++ .../modules/multiple_valve_diseases.json | 472 +++ .../modules/myocardial_infarction.json | 321 ++ ...n_insulin_dependent_diabetes_mellitus.json | 517 +++ src/main/resources/modules/obesity.json | 546 +++ .../resources/modules/opioid_addiction.json | 947 +++++ .../resources/modules/osteoarthritis.json | 488 +++ src/main/resources/modules/osteoporosis.json | 254 ++ .../other_acute_ischaemic_heart_diseases.json | 398 ++ .../modules/other_anxiety_disorders.json | 299 ++ .../other_pulmonary_heart_diseases.json | 389 ++ .../resources/modules/parkinsons_disease.json | 42 + .../modules/pneumonia.json.fixed.raw | 492 +++ src/main/resources/modules/pneumonia.json.raw | 492 +++ .../pneumonia_organism_unspecified.json | 491 +++ src/main/resources/modules/pregnancy.json | 2348 ++++++++++++ ...for_chronic_pain_and_treatment_of_oud.json | 3226 +++++++++++++++++ .../resources/modules/pulmonary_embolism.json | 407 +++ .../modules/rheumatoid_arthritis.json | 374 ++ .../resources/modules/seasonal_allergies.json | 184 + .../modules/seasonal_allergies.json.details | 81 + .../modules/seasonal_allergies.json.raw | 461 +++ src/main/resources/modules/self_harm.json | 666 ++++ src/main/resources/modules/sepsis.json | 644 ++++ .../resources/modules/sexual_activity.json | 494 +++ src/main/resources/modules/sinusitis.json | 560 +++ src/main/resources/modules/sleep_apnea.json | 989 +++++ .../modules/snf/skilled_nursing_facility.json | 351 ++ src/main/resources/modules/sore_throat.json | 691 ++++ src/main/resources/modules/spina_bifida.json | 978 +++++ .../stable_ischemic_heart_disease.json | 244 ++ .../resources/modules/status_asthmaticus.json | 425 +++ src/main/resources/modules/stroke.json | 171 + ...pecified_as_haemorrhage_or_infarction.json | 528 +++ .../subsequent_myocardial_infarction.json | 474 +++ .../modules/surgery/general_anesthesia.json | 363 ++ .../modules/total_joint_replacement.json | 414 +++ .../functional_status_assessments.json | 850 +++++ .../trigger_bone_marrow_transplant.json | 125 + .../unspecified_diabetes_mellitus.json | 557 +++ .../modules/urinary_tract_infections.json | 278 ++ src/main/resources/modules/uti/abx_tx.json | 1046 ++++++ .../modules/uti/ambulatory_eval.json | 81 + .../modules/uti/ambulatory_path.json | 215 ++ src/main/resources/modules/uti/ed_bundle.json | 2265 ++++++++++++ src/main/resources/modules/uti/ed_eval.json | 126 + src/main/resources/modules/uti/ed_path.json | 47 + .../modules/uti/gu_pregnancy_check.json | 143 + src/main/resources/modules/uti/hpi.json | 175 + .../resources/modules/uti/lab_follow_up.json | 152 + src/main/resources/modules/uti/labs.json | 661 ++++ .../resources/modules/uti/telemed_path.json | 486 +++ src/main/resources/modules/veteran.json | 633 ++++ .../modules/veteran_hyperlipidemia.json | 834 +++++ .../modules/veteran_lung_cancer.json | 1079 ++++++ src/main/resources/modules/veteran_mdd.json | 765 ++++ .../modules/veteran_prostate_cancer.json | 1303 +++++++ src/main/resources/modules/veteran_ptsd.json | 1220 +++++++ .../resources/modules/veteran_self_harm.json | 590 +++ .../veteran_substance_abuse_conditions.json | 154 + .../veteran_substance_abuse_treatment.json | 249 ++ .../veteran_suicide_probabilities.json | 100 + src/main/resources/modules/vhd_aortic.json | 679 ++++ src/main/resources/modules/vhd_mitral.json | 173 + src/main/resources/modules/vhd_pulmonic.json | 173 + src/main/resources/modules/vhd_tricuspid.json | 173 + .../modules/weight_loss/mend_week.json | 157 + .../modules/wellness_encounters.json | 1163 ++++++ src/main/resources/version.txt | 0 trace.txt | 2 + 406 files changed, 173963 insertions(+), 69 deletions(-) create mode 100644 .env create mode 100644 .env.example create mode 100644 .nextflow.log create mode 100644 .nextflow.log.1 create mode 100644 .nextflow.log.2 create mode 100644 .nextflow/cache/02e2b57f-ce09-4ca9-9884-4a04f4cc41f5/db/000003.log create mode 100644 .nextflow/cache/02e2b57f-ce09-4ca9-9884-4a04f4cc41f5/db/CURRENT create mode 100644 .nextflow/cache/02e2b57f-ce09-4ca9-9884-4a04f4cc41f5/db/LOCK create mode 100644 .nextflow/cache/02e2b57f-ce09-4ca9-9884-4a04f4cc41f5/db/MANIFEST-000002 create mode 100644 .nextflow/cache/02e2b57f-ce09-4ca9-9884-4a04f4cc41f5/index.astonishing_jennings create mode 100644 .nextflow/cache/ae62d0f9-dec1-462d-a18a-b4b9ebf0f702/db/000003.log create mode 100644 .nextflow/cache/ae62d0f9-dec1-462d-a18a-b4b9ebf0f702/db/CURRENT create mode 100644 .nextflow/cache/ae62d0f9-dec1-462d-a18a-b4b9ebf0f702/db/LOCK create mode 100644 .nextflow/cache/ae62d0f9-dec1-462d-a18a-b4b9ebf0f702/db/MANIFEST-000002 create mode 100644 .nextflow/cache/ae62d0f9-dec1-462d-a18a-b4b9ebf0f702/index.distracted_curran create mode 100644 .nextflow/cache/cfdf2b28-2b73-4c6f-ac03-fc646888e313/db/000003.log create mode 100644 .nextflow/cache/cfdf2b28-2b73-4c6f-ac03-fc646888e313/db/CURRENT create mode 100644 .nextflow/cache/cfdf2b28-2b73-4c6f-ac03-fc646888e313/db/LOCK create mode 100644 .nextflow/cache/cfdf2b28-2b73-4c6f-ac03-fc646888e313/db/MANIFEST-000002 create mode 100644 .nextflow/cache/cfdf2b28-2b73-4c6f-ac03-fc646888e313/index.astonishing_wozniak create mode 100644 .nextflow/history create mode 100644 CLAUDE.md create mode 100644 DOCKER_README.md create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 SYNTHEA_GUIDE.md create mode 100644 docker-compose.yml create mode 100644 main.nf create mode 100644 module_generator/README_module_generator.md create mode 100755 module_generator/module_generator.py create mode 100755 module_generator/run_module_generator.py create mode 100644 nextflow.config create mode 100644 params.json create mode 100644 scripts/.nextflow.log create mode 100644 scripts/README.md create mode 100644 scripts/analyze_patient_data.py create mode 100755 scripts/check_condition_structure.py create mode 100644 scripts/check_json.py create mode 100755 scripts/cleanup.sh create mode 100755 scripts/generate_batch.py create mode 100755 scripts/generate_module.py create mode 100755 scripts/patient_analysis.py create mode 100755 scripts/prepare_environment.sh create mode 100644 scripts/run_module.py create mode 100755 scripts/run_pipeline.sh create mode 100755 scripts/simple_module.py create mode 100644 scripts/test.py create mode 100755 scripts/test_module_exists.py create mode 100755 scripts/validate_module.py create mode 100644 simple.nf create mode 100644 src/main/resources/disease/custom_disease_list.json create mode 100644 src/main/resources/disease/disease_list.csv create mode 100644 src/main/resources/disease/disease_list.json create mode 100644 src/main/resources/disease_list.json create mode 100644 src/main/resources/disease_modules_progress.md create mode 100644 src/main/resources/modules/acne_vulgaris.json create mode 100644 src/main/resources/modules/acute_bronchitis.json create mode 100644 src/main/resources/modules/acute_myeloid_leukemia.json create mode 100644 src/main/resources/modules/acute_myocardial_infarction.json create mode 100644 src/main/resources/modules/acute_pharyngitis.json create mode 100644 src/main/resources/modules/acute_pharyngitis.json.details create mode 100644 src/main/resources/modules/acute_sinusitis.json create mode 100644 src/main/resources/modules/acute_sinusitis.json.details create mode 100644 src/main/resources/modules/all_anxiety_disorders.json create mode 100644 src/main/resources/modules/allergic_rhinitis.json create mode 100644 src/main/resources/modules/allergies.json create mode 100644 src/main/resources/modules/allergies/allergy_panel.json create mode 100644 src/main/resources/modules/allergies/drug_allergy_incidence.json create mode 100644 src/main/resources/modules/allergies/environmental_allergy_incidence.json create mode 100644 src/main/resources/modules/allergies/food_allergy_incidence.json create mode 100644 src/main/resources/modules/allergies/immunotherapy.json create mode 100644 src/main/resources/modules/allergies/outgrow_env_allergies.json create mode 100644 src/main/resources/modules/allergies/outgrow_food_allergies.json create mode 100644 src/main/resources/modules/allergies/severe_allergic_reaction.json create mode 100644 src/main/resources/modules/anemia/anemia_sub.json create mode 100644 src/main/resources/modules/anemia___unknown_etiology.json create mode 100644 src/main/resources/modules/angina_pectoris.json create mode 100644 src/main/resources/modules/anxiety_disorders.json create mode 100644 src/main/resources/modules/appendicitis.json create mode 100644 src/main/resources/modules/asthma.json create mode 100644 src/main/resources/modules/atopy.json create mode 100644 src/main/resources/modules/atrial_fibrillation.json create mode 100644 src/main/resources/modules/attention_deficit_disorder.json create mode 100644 src/main/resources/modules/autism_asperger_s_or_autistic_spectrum_disorder.json create mode 100644 src/main/resources/modules/bacterial_pneumonia.json.fixed.raw create mode 100644 src/main/resources/modules/bacterial_pneumonia.json.raw create mode 100644 src/main/resources/modules/bone_marrow_transplant.json create mode 100644 src/main/resources/modules/breast_cancer.json create mode 100644 src/main/resources/modules/breast_cancer/chemotherapy_breast.json create mode 100644 src/main/resources/modules/breast_cancer/hormone_diagnosis.json create mode 100644 src/main/resources/modules/breast_cancer/hormonetherapy_breast.json create mode 100644 src/main/resources/modules/breast_cancer/surgery_therapy_breast.json create mode 100644 src/main/resources/modules/breast_cancer/tnm_diagnosis.json create mode 100644 src/main/resources/modules/bronchitis.json create mode 100644 src/main/resources/modules/cerebral_palsy.json create mode 100644 src/main/resources/modules/chronic_ischaemic_heart_disease.json create mode 100644 src/main/resources/modules/chronic_kidney_disease.json create mode 100644 src/main/resources/modules/colorectal_cancer.json create mode 100644 src/main/resources/modules/common_cold.json create mode 100644 src/main/resources/modules/common_cold.json.fixed.raw create mode 100644 src/main/resources/modules/common_cold.json.raw create mode 100644 src/main/resources/modules/complications_and_ill_defined_descriptions_of_heart_disease.json create mode 100644 src/main/resources/modules/congestive_heart_failure.json create mode 100644 src/main/resources/modules/contraceptive_maintenance.json create mode 100644 src/main/resources/modules/contraceptives.json create mode 100644 src/main/resources/modules/contraceptives/clear_contraceptive.json create mode 100644 src/main/resources/modules/contraceptives/female_sterilization.json create mode 100644 src/main/resources/modules/contraceptives/implant_contraceptive.json create mode 100644 src/main/resources/modules/contraceptives/injectable_contraceptive.json create mode 100644 src/main/resources/modules/contraceptives/intrauterine_device.json create mode 100644 src/main/resources/modules/contraceptives/male_sterilization.json create mode 100644 src/main/resources/modules/contraceptives/oral_contraceptive.json create mode 100644 src/main/resources/modules/contraceptives/patch_contraceptive.json create mode 100644 src/main/resources/modules/contraceptives/ring_contraceptive.json create mode 100644 src/main/resources/modules/copd.json create mode 100644 src/main/resources/modules/covid19.json create mode 100644 src/main/resources/modules/covid19/admission.json create mode 100644 src/main/resources/modules/covid19/determine_risk.json create mode 100644 src/main/resources/modules/covid19/diagnose_bacterial_infection.json create mode 100644 src/main/resources/modules/covid19/diagnose_blood_clot.json create mode 100644 src/main/resources/modules/covid19/end_outcomes.json create mode 100644 src/main/resources/modules/covid19/end_symptoms.json create mode 100644 src/main/resources/modules/covid19/infection.json create mode 100644 src/main/resources/modules/covid19/measurements_daily.json create mode 100644 src/main/resources/modules/covid19/measurements_frequent.json create mode 100644 src/main/resources/modules/covid19/measurements_vitals.json create mode 100644 src/main/resources/modules/covid19/medications.json create mode 100644 src/main/resources/modules/covid19/nonsurvivor_lab_values.json create mode 100644 src/main/resources/modules/covid19/outcomes.json create mode 100644 src/main/resources/modules/covid19/supplies_hospitalization.json create mode 100644 src/main/resources/modules/covid19/supplies_icu.json create mode 100644 src/main/resources/modules/covid19/supplies_intubation.json create mode 100644 src/main/resources/modules/covid19/survivor_lab_values.json create mode 100644 src/main/resources/modules/covid19/symptoms.json create mode 100644 src/main/resources/modules/covid19/treat_blood_clot.json create mode 100644 src/main/resources/modules/cystic_fibrosis.json create mode 100644 src/main/resources/modules/dementia.json create mode 100644 src/main/resources/modules/dental_and_oral_examination.json create mode 100644 src/main/resources/modules/dentures.json create mode 100644 src/main/resources/modules/dermatitis.json create mode 100644 src/main/resources/modules/dermatitis/early_moderate_eczema_obs.json create mode 100644 src/main/resources/modules/dermatitis/early_severe_eczema_obs.json create mode 100644 src/main/resources/modules/dermatitis/mid_moderate_eczema_obs.json create mode 100644 src/main/resources/modules/dermatitis/mid_severe_eczema_obs.json create mode 100644 src/main/resources/modules/dermatitis/moderate_cd_obs.json create mode 100644 src/main/resources/modules/dermatitis/severe_cd_obs.json create mode 100644 src/main/resources/modules/diabetes.json create mode 100644 src/main/resources/modules/dialysis.json create mode 100644 src/main/resources/modules/dme/wheelchair.json create mode 100644 src/main/resources/modules/dme/wheelchair_end.json create mode 100644 src/main/resources/modules/ear_infections.json create mode 100644 src/main/resources/modules/encounter/anxiety_screening.json create mode 100644 src/main/resources/modules/encounter/depression_screening.json create mode 100644 src/main/resources/modules/encounter/fall_risk_screening.json create mode 100644 src/main/resources/modules/encounter/hark_screening.json create mode 100644 src/main/resources/modules/encounter/hospital_basic_labs.json create mode 100644 src/main/resources/modules/encounter/sdoh_hrsn.json create mode 100644 src/main/resources/modules/encounter/substance_use_screening.json create mode 100644 src/main/resources/modules/encounter/vitals.json create mode 100644 src/main/resources/modules/epilepsy.json create mode 100644 src/main/resources/modules/essential_primary_hypertension.json create mode 100644 src/main/resources/modules/female_reproduction.json create mode 100644 src/main/resources/modules/fibromyalgia.json create mode 100644 src/main/resources/modules/food_allergies.json create mode 100644 src/main/resources/modules/gallstones.json create mode 100644 src/main/resources/modules/gout.json create mode 100644 src/main/resources/modules/heart/acs_anticoagulant.json create mode 100644 src/main/resources/modules/heart/acs_antiplatelet.json create mode 100644 src/main/resources/modules/heart/acs_arrival_medications.json create mode 100644 src/main/resources/modules/heart/acs_discharge_meds.json create mode 100644 src/main/resources/modules/heart/avrr/antithrombotic.json create mode 100644 src/main/resources/modules/heart/avrr/avrr_referral.json create mode 100644 src/main/resources/modules/heart/avrr/intraop_meds_blood.json create mode 100644 src/main/resources/modules/heart/avrr/outcomes.json create mode 100644 src/main/resources/modules/heart/avrr/preoperative.json create mode 100644 src/main/resources/modules/heart/avrr/savrr_operation.json create mode 100644 src/main/resources/modules/heart/avrr/savrr_postop.json create mode 100644 src/main/resources/modules/heart/avrr/sequence.json create mode 100644 src/main/resources/modules/heart/cabg/cabg_referral.json create mode 100644 src/main/resources/modules/heart/cabg/details.json create mode 100644 src/main/resources/modules/heart/cabg/icu_meds_devices.json create mode 100644 src/main/resources/modules/heart/cabg/labs_common.json create mode 100644 src/main/resources/modules/heart/cabg/operation.json create mode 100644 src/main/resources/modules/heart/cabg/or_intraop.json create mode 100644 src/main/resources/modules/heart/cabg/or_labs_meds.json create mode 100644 src/main/resources/modules/heart/cabg/outcomes.json create mode 100644 src/main/resources/modules/heart/cabg/postop.json create mode 100644 src/main/resources/modules/heart/cabg/postop_blood.json create mode 100644 src/main/resources/modules/heart/cabg/preoperative.json create mode 100644 src/main/resources/modules/heart/cabg_sequence.json create mode 100644 src/main/resources/modules/heart/cardiac_labs.json create mode 100644 src/main/resources/modules/heart/chf_lab_work.json create mode 100644 src/main/resources/modules/heart/chf_lvad.json create mode 100644 src/main/resources/modules/heart/chf_meds.json create mode 100644 src/main/resources/modules/heart/chf_meds_hfmef.json create mode 100644 src/main/resources/modules/heart/chf_meds_hfref_nyha2.json create mode 100644 src/main/resources/modules/heart/chf_meds_hfref_nyha3.json create mode 100644 src/main/resources/modules/heart/chf_meds_hfref_nyha4.json create mode 100644 src/main/resources/modules/heart/chf_nyha_panel.json create mode 100644 src/main/resources/modules/heart/chf_transplant.json create mode 100644 src/main/resources/modules/heart/nsteacs_pathway.json create mode 100644 src/main/resources/modules/heart/operative_status.json create mode 100644 src/main/resources/modules/heart/or_blood.json create mode 100644 src/main/resources/modules/heart/savrepair/operative_status.json create mode 100644 src/main/resources/modules/heart/savreplace/operative_status.json create mode 100644 src/main/resources/modules/heart/stemi_fibrinolytic.json create mode 100644 src/main/resources/modules/heart/stemi_pathway.json create mode 100644 src/main/resources/modules/heart/tavr/alt_access.json create mode 100644 src/main/resources/modules/heart/tavr/operation.json create mode 100644 src/main/resources/modules/heart/tavr/operative_status.json create mode 100644 src/main/resources/modules/heart/tavr/outcomes.json create mode 100644 src/main/resources/modules/heart/tavr/postop.json create mode 100644 src/main/resources/modules/heart/vhd_risks.json create mode 100644 src/main/resources/modules/heart_disease.json create mode 100644 src/main/resources/modules/heart_failure.json create mode 100644 src/main/resources/modules/hiv/art_sequence.json create mode 100644 src/main/resources/modules/hiv/art_sequence_1987_1994.json create mode 100644 src/main/resources/modules/hiv/art_sequence_1995_1996.json create mode 100644 src/main/resources/modules/hiv/art_sequence_1997_2002.json create mode 100644 src/main/resources/modules/hiv/art_sequence_2003_2005.json create mode 100644 src/main/resources/modules/hiv/art_sequence_2006_2014.json create mode 100644 src/main/resources/modules/hiv/art_sequence_2015.json create mode 100644 src/main/resources/modules/hiv/hiv_baseline.json create mode 100644 src/main/resources/modules/hiv/hiv_cd4.json create mode 100644 src/main/resources/modules/hiv/hiv_oi_prophylaxis.json create mode 100644 src/main/resources/modules/hiv/hiv_screening.json create mode 100644 src/main/resources/modules/hiv/hiv_viral_load.json create mode 100644 src/main/resources/modules/hiv/stop_all_art_meds.json create mode 100644 src/main/resources/modules/hiv_care.json create mode 100644 src/main/resources/modules/hiv_diagnosis.json create mode 100644 src/main/resources/modules/home_health_treatment.json create mode 100644 src/main/resources/modules/home_hospice_snf.json create mode 100644 src/main/resources/modules/homelessness.json create mode 100644 src/main/resources/modules/hospice_treatment.json create mode 100644 src/main/resources/modules/hypertension.json create mode 100644 src/main/resources/modules/hypertensive_renal_disease.json create mode 100644 src/main/resources/modules/hypothyroidism.json create mode 100644 src/main/resources/modules/injuries.json create mode 100644 src/main/resources/modules/injuries/broken_jaw.json create mode 100644 src/main/resources/modules/insulin_dependent_diabetes_mellitus.json create mode 100644 src/main/resources/modules/kidney_transplant.json create mode 100644 src/main/resources/modules/lookup_tables/AML.csv create mode 100644 src/main/resources/modules/lookup_tables/ace_arb_amlodipine_benazepril_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/ace_arb_benazepril_hydrochlorothiazide_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/ace_arb_benazepril_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/ace_arb_enalapril_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/ace_arb_hydrochlorothiazide_lisinopril_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/ace_arb_hydrochlorothiazide_losartan_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/ace_arb_hydrochlorothiazide_valsartan_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/ace_arb_ingredient_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/ace_arb_irbesartan_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/ace_arb_lisinopril_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/ace_arb_losartan_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/ace_arb_quinapril_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/ace_arb_ramipril_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/ace_arb_sacubitril_valsartan_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/ace_arb_telmisartan_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/ace_arb_valsartan_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/beta_blocker_atenolol_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/beta_blocker_bisoprolol_hydrochlorothiazide_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/beta_blocker_bisoprolol_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/beta_blocker_carvedilol_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/beta_blocker_ingredient_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/beta_blocker_labetalol_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/beta_blocker_metoprolol_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/beta_blocker_nebivolol_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/beta_blocker_propranolol_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/cabg_details_num_art_cond.csv create mode 100644 src/main/resources/modules/lookup_tables/cabg_details_num_grafts.csv create mode 100644 src/main/resources/modules/lookup_tables/cabg_details_operative_approach.csv create mode 100644 src/main/resources/modules/lookup_tables/covid-19-severity-outcomes.csv create mode 100644 src/main/resources/modules/lookup_tables/covid-19-survival-outcomes.csv create mode 100644 src/main/resources/modules/lookup_tables/covid19_prob.csv create mode 100644 src/main/resources/modules/lookup_tables/covid_dose_rates.csv create mode 100644 src/main/resources/modules/lookup_tables/emergency_inhaler_albuterol_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/emergency_inhaler_ingredient_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/emergency_inhaler_levalbuterol_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/hiv_care.csv create mode 100644 src/main/resources/modules/lookup_tables/hiv_diagnosis_early.csv create mode 100644 src/main/resources/modules/lookup_tables/hiv_diagnosis_later.csv create mode 100644 src/main/resources/modules/lookup_tables/hiv_mortality_early.csv create mode 100644 src/main/resources/modules/lookup_tables/hiv_mortality_later.csv create mode 100644 src/main/resources/modules/lookup_tables/hiv_mortality_very_early.csv create mode 100644 src/main/resources/modules/lookup_tables/hiv_stage.csv create mode 100644 src/main/resources/modules/lookup_tables/maintenance_inhaler_beclomethasone_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/maintenance_inhaler_budesonide_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/maintenance_inhaler_fluticasone_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/maintenance_inhaler_ingredient_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/maintenance_inhaler_mometasone_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/or_blood_anemia_check.csv create mode 100644 src/main/resources/modules/lookup_tables/or_blood_plasma_check.csv create mode 100644 src/main/resources/modules/lookup_tables/or_blood_platelet_check.csv create mode 100644 src/main/resources/modules/lookup_tables/statin_atorvastatin_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/statin_ezetimibe_simvastatin_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/statin_ingredient_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/statin_lovastatin_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/statin_pitavastatin_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/statin_pravastatin_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/statin_rosuvastatin_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/statin_simvastatin_product_distribution.csv create mode 100644 src/main/resources/modules/lookup_tables/uti.csv create mode 100644 src/main/resources/modules/lookup_tables/uti_recurrence.csv create mode 100644 src/main/resources/modules/lookup_tables/vhd_ar.csv create mode 100644 src/main/resources/modules/lookup_tables/vhd_as.csv create mode 100644 src/main/resources/modules/lookup_tables/vhd_mr.csv create mode 100644 src/main/resources/modules/lookup_tables/vhd_ms.csv create mode 100644 src/main/resources/modules/lookup_tables/vhd_pr.csv create mode 100644 src/main/resources/modules/lookup_tables/vhd_ps.csv create mode 100644 src/main/resources/modules/lookup_tables/vhd_tr.csv create mode 100644 src/main/resources/modules/lookup_tables/vhd_ts.csv create mode 100644 src/main/resources/modules/lung_cancer.json create mode 100644 src/main/resources/modules/lung_cancer/lung_cancer_probabilities.json create mode 100644 src/main/resources/modules/lupus.json create mode 100644 src/main/resources/modules/mTBI.json create mode 100644 src/main/resources/modules/med_rec.json create mode 100644 src/main/resources/modules/medications/ace_arb.json create mode 100644 src/main/resources/modules/medications/beta_blocker.json create mode 100644 src/main/resources/modules/medications/ear_infection_antibiotic.json create mode 100644 src/main/resources/modules/medications/emergency_inhaler.json create mode 100644 src/main/resources/modules/medications/hypertension_medication.json create mode 100644 src/main/resources/modules/medications/maintenance_inhaler.json create mode 100644 src/main/resources/modules/medications/moderate_opioid_pain_reliever.json create mode 100644 src/main/resources/modules/medications/otc_antihistamine.json create mode 100644 src/main/resources/modules/medications/otc_pain_reliever.json create mode 100644 src/main/resources/modules/medications/statin.json create mode 100644 src/main/resources/modules/medications/strong_opioid_pain_reliever.json create mode 100644 src/main/resources/modules/mend_program.json create mode 100644 src/main/resources/modules/metabolic_syndrome/amputations.json create mode 100644 src/main/resources/modules/metabolic_syndrome/dme_supplies.json create mode 100644 src/main/resources/modules/metabolic_syndrome/eye_conditions.json create mode 100644 src/main/resources/modules/metabolic_syndrome/kidney_conditions.json create mode 100644 src/main/resources/modules/metabolic_syndrome/medications.json create mode 100644 src/main/resources/modules/metabolic_syndrome_care.json create mode 100644 src/main/resources/modules/metabolic_syndrome_disease.json create mode 100644 src/main/resources/modules/migraine.json create mode 100644 src/main/resources/modules/multiple_sclerosis.json create mode 100644 src/main/resources/modules/multiple_valve_diseases.json create mode 100644 src/main/resources/modules/myocardial_infarction.json create mode 100644 src/main/resources/modules/non_insulin_dependent_diabetes_mellitus.json create mode 100644 src/main/resources/modules/obesity.json create mode 100644 src/main/resources/modules/opioid_addiction.json create mode 100644 src/main/resources/modules/osteoarthritis.json create mode 100644 src/main/resources/modules/osteoporosis.json create mode 100644 src/main/resources/modules/other_acute_ischaemic_heart_diseases.json create mode 100644 src/main/resources/modules/other_anxiety_disorders.json create mode 100644 src/main/resources/modules/other_pulmonary_heart_diseases.json create mode 100644 src/main/resources/modules/parkinsons_disease.json create mode 100644 src/main/resources/modules/pneumonia.json.fixed.raw create mode 100644 src/main/resources/modules/pneumonia.json.raw create mode 100644 src/main/resources/modules/pneumonia_organism_unspecified.json create mode 100644 src/main/resources/modules/pregnancy.json create mode 100644 src/main/resources/modules/prescribing_opioids_for_chronic_pain_and_treatment_of_oud.json create mode 100644 src/main/resources/modules/pulmonary_embolism.json create mode 100644 src/main/resources/modules/rheumatoid_arthritis.json create mode 100644 src/main/resources/modules/seasonal_allergies.json create mode 100644 src/main/resources/modules/seasonal_allergies.json.details create mode 100644 src/main/resources/modules/seasonal_allergies.json.raw create mode 100644 src/main/resources/modules/self_harm.json create mode 100644 src/main/resources/modules/sepsis.json create mode 100644 src/main/resources/modules/sexual_activity.json create mode 100644 src/main/resources/modules/sinusitis.json create mode 100644 src/main/resources/modules/sleep_apnea.json create mode 100644 src/main/resources/modules/snf/skilled_nursing_facility.json create mode 100644 src/main/resources/modules/sore_throat.json create mode 100644 src/main/resources/modules/spina_bifida.json create mode 100644 src/main/resources/modules/stable_ischemic_heart_disease.json create mode 100644 src/main/resources/modules/status_asthmaticus.json create mode 100644 src/main/resources/modules/stroke.json create mode 100644 src/main/resources/modules/stroke_not_specified_as_haemorrhage_or_infarction.json create mode 100644 src/main/resources/modules/subsequent_myocardial_infarction.json create mode 100644 src/main/resources/modules/surgery/general_anesthesia.json create mode 100644 src/main/resources/modules/total_joint_replacement.json create mode 100644 src/main/resources/modules/total_joint_replacement/functional_status_assessments.json create mode 100644 src/main/resources/modules/trigger_bone_marrow_transplant.json create mode 100644 src/main/resources/modules/unspecified_diabetes_mellitus.json create mode 100644 src/main/resources/modules/urinary_tract_infections.json create mode 100644 src/main/resources/modules/uti/abx_tx.json create mode 100644 src/main/resources/modules/uti/ambulatory_eval.json create mode 100644 src/main/resources/modules/uti/ambulatory_path.json create mode 100644 src/main/resources/modules/uti/ed_bundle.json create mode 100644 src/main/resources/modules/uti/ed_eval.json create mode 100644 src/main/resources/modules/uti/ed_path.json create mode 100644 src/main/resources/modules/uti/gu_pregnancy_check.json create mode 100644 src/main/resources/modules/uti/hpi.json create mode 100644 src/main/resources/modules/uti/lab_follow_up.json create mode 100644 src/main/resources/modules/uti/labs.json create mode 100644 src/main/resources/modules/uti/telemed_path.json create mode 100644 src/main/resources/modules/veteran.json create mode 100644 src/main/resources/modules/veteran_hyperlipidemia.json create mode 100644 src/main/resources/modules/veteran_lung_cancer.json create mode 100644 src/main/resources/modules/veteran_mdd.json create mode 100644 src/main/resources/modules/veteran_prostate_cancer.json create mode 100644 src/main/resources/modules/veteran_ptsd.json create mode 100644 src/main/resources/modules/veteran_self_harm.json create mode 100644 src/main/resources/modules/veteran_substance_abuse_conditions.json create mode 100644 src/main/resources/modules/veteran_substance_abuse_treatment.json create mode 100644 src/main/resources/modules/veterans/veteran_suicide_probabilities.json create mode 100644 src/main/resources/modules/vhd_aortic.json create mode 100644 src/main/resources/modules/vhd_mitral.json create mode 100644 src/main/resources/modules/vhd_pulmonic.json create mode 100644 src/main/resources/modules/vhd_tricuspid.json create mode 100644 src/main/resources/modules/weight_loss/mend_week.json create mode 100644 src/main/resources/modules/wellness_encounters.json create mode 100644 src/main/resources/version.txt create mode 100644 trace.txt diff --git a/.env b/.env new file mode 100644 index 0000000..956605e --- /dev/null +++ b/.env @@ -0,0 +1,6 @@ +# Anthropic API Key for Claude +ANTHROPIC_API_KEY=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 + +# Optional: Customize these settings +# SYNTHEA_MODULES_DIR=./src/main/resources/modules +# SYNTHEA_OUTPUT_DIR=./output diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..cabbdeb --- /dev/null +++ b/.env.example @@ -0,0 +1,6 @@ +# Anthropic API Key for Claude +ANTHROPIC_API_KEY=your_api_key_here + +# Optional: Customize these settings +# SYNTHEA_MODULES_DIR=./src/main/resources/modules +# SYNTHEA_OUTPUT_DIR=./output \ No newline at end of file diff --git a/.nextflow.log b/.nextflow.log new file mode 100644 index 0000000..61eabc0 --- /dev/null +++ b/.nextflow.log @@ -0,0 +1,504 @@ +Mar-23 11:46:18.059 [main] DEBUG nextflow.cli.Launcher - $> nextflow run main.nf --disease_name 'Multiple Sclerosis' --population 10 +Mar-23 11:46:18.328 [main] DEBUG nextflow.cli.CmdRun - N E X T F L O W ~ version 24.10.5 +Mar-23 11:46:18.401 [main] DEBUG nextflow.plugin.PluginsFacade - Setting up plugin manager > mode=prod; embedded=false; plugins-dir=/Users/richman/.nextflow/plugins; core-plugins: nf-amazon@2.9.2,nf-azure@1.10.2,nf-cloudcache@0.4.2,nf-codecommit@0.2.2,nf-console@1.1.4,nf-google@1.15.4,nf-tower@1.9.3,nf-wave@1.7.4 +Mar-23 11:46:18.445 [main] INFO o.pf4j.DefaultPluginStatusProvider - Enabled plugins: [] +Mar-23 11:46:18.446 [main] INFO o.pf4j.DefaultPluginStatusProvider - Disabled plugins: [] +Mar-23 11:46:18.455 [main] INFO org.pf4j.DefaultPluginManager - PF4J version 3.12.0 in 'deployment' mode +Mar-23 11:46:18.502 [main] INFO org.pf4j.AbstractPluginManager - No plugins +Mar-23 11:46:18.606 [main] DEBUG nextflow.config.ConfigBuilder - Found config local: /Users/richman/workspace/synthea-alldiseases/nextflow.config +Mar-23 11:46:18.618 [main] DEBUG nextflow.config.ConfigBuilder - Parsing config file: /Users/richman/workspace/synthea-alldiseases/nextflow.config +Mar-23 11:46:18.773 [main] DEBUG n.secret.LocalSecretsProvider - Secrets store: /Users/richman/.nextflow/secrets/store.json +Mar-23 11:46:18.784 [main] DEBUG nextflow.secret.SecretsLoader - Discovered secrets providers: [nextflow.secret.LocalSecretsProvider@22df874e] - activable => nextflow.secret.LocalSecretsProvider@22df874e +Mar-23 11:46:18.865 [main] DEBUG nextflow.config.ConfigBuilder - Applying config profile: `standard` +Mar-23 11:46:20.661 [main] DEBUG nextflow.cli.CmdRun - Applied DSL=2 from script declaration +Mar-23 11:46:20.698 [main] DEBUG nextflow.cli.CmdRun - Launching `main.nf` [astonishing_jennings] DSL2 - revision: eefd540325 +Mar-23 11:46:20.702 [main] DEBUG nextflow.plugin.PluginsFacade - Plugins default=[] +Mar-23 11:46:20.702 [main] DEBUG nextflow.plugin.PluginsFacade - Plugins resolved requirement=[] +Mar-23 11:46:20.820 [main] DEBUG nextflow.Session - Session UUID: 02e2b57f-ce09-4ca9-9884-4a04f4cc41f5 +Mar-23 11:46:20.823 [main] DEBUG nextflow.Session - Run name: astonishing_jennings +Mar-23 11:46:20.826 [main] DEBUG nextflow.Session - Executor pool size: 10 +Mar-23 11:46:20.840 [main] DEBUG nextflow.file.FilePorter - File porter settings maxRetries=3; maxTransfers=50; pollTimeout=null +Mar-23 11:46:20.852 [main] DEBUG nextflow.util.ThreadPoolBuilder - Creating thread pool 'FileTransfer' minSize=10; maxSize=30; workQueue=LinkedBlockingQueue[-1]; allowCoreThreadTimeout=false +Mar-23 11:46:20.910 [main] DEBUG nextflow.cli.CmdRun - + Version: 24.10.5 build 5935 + Created: 04-03-2025 17:55 UTC (09:55 PDT) + System: Mac OS X 10.16 + Runtime: Groovy 4.0.23 on OpenJDK 64-Bit Server VM 15.0.2+7-27 + Encoding: UTF-8 (UTF-8) + Process: 74324@MacBookPro.localdomain [192.168.1.157] + CPUs: 10 - Mem: 32 GB (19.2 MB) - Swap: 6 GB (1.6 GB) +Mar-23 11:46:20.942 [main] DEBUG nextflow.Session - Work-dir: /Users/richman/workspace/synthea-alldiseases/work [Mac OS X] +Mar-23 11:46:20.943 [main] DEBUG nextflow.Session - Script base path does not exist or is not a directory: /Users/richman/workspace/synthea-alldiseases/bin +Mar-23 11:46:20.958 [main] DEBUG nextflow.executor.ExecutorFactory - Extension executors providers=[] +Mar-23 11:46:20.973 [main] DEBUG nextflow.Session - Observer factory: DefaultObserverFactory +Mar-23 11:46:21.062 [main] DEBUG nextflow.cache.CacheFactory - Using Nextflow cache factory: nextflow.cache.DefaultCacheFactory +Mar-23 11:46:21.105 [main] DEBUG nextflow.util.CustomThreadPool - Creating default thread pool > poolSize: 11; maxThreads: 1000 +Mar-23 11:46:21.179 [main] DEBUG nextflow.Session - Session start +Mar-23 11:46:21.188 [main] DEBUG nextflow.trace.TraceFileObserver - Workflow started -- trace file: /Users/richman/workspace/synthea-alldiseases/trace.txt +Mar-23 11:46:22.257 [main] DEBUG nextflow.script.ScriptRunner - > Launching execution +Mar-23 11:46:22.496 [main] DEBUG nextflow.executor.ExecutorFactory - << taskConfig executor: local +Mar-23 11:46:22.496 [main] DEBUG nextflow.executor.ExecutorFactory - >> processorType: 'local' +Mar-23 11:46:22.512 [main] DEBUG nextflow.executor.Executor - [warm up] executor > local +Mar-23 11:46:22.519 [main] DEBUG n.processor.LocalPollingMonitor - Creating local task monitor for executor 'local' > cpus=10; memory=32 GB; capacity=10; pollInterval=100ms; dumpInterval=5m +Mar-23 11:46:22.522 [main] DEBUG n.processor.TaskPollingMonitor - >>> barrier register (monitor: local) +Mar-23 11:46:22.691 [main] DEBUG nextflow.executor.ExecutorFactory - << taskConfig executor: local +Mar-23 11:46:22.691 [main] DEBUG nextflow.executor.ExecutorFactory - >> processorType: 'local' +Mar-23 11:46:22.699 [main] DEBUG nextflow.Session - Workflow process names [dsl2]: checkAndGetModule, generatePatients +Mar-23 11:46:22.701 [main] DEBUG nextflow.Session - Igniting dataflow network (2) +Mar-23 11:46:22.701 [main] DEBUG nextflow.processor.TaskProcessor - Starting process > checkAndGetModule +Mar-23 11:46:22.702 [main] DEBUG nextflow.processor.TaskProcessor - Starting process > generatePatients +Mar-23 11:46:22.703 [main] DEBUG nextflow.script.ScriptRunner - Parsed script files: + Script_90804d0522a60a16: /Users/richman/workspace/synthea-alldiseases/main.nf +Mar-23 11:46:22.704 [main] DEBUG nextflow.script.ScriptRunner - > Awaiting termination +Mar-23 11:46:22.704 [main] DEBUG nextflow.Session - Session await +Mar-23 11:46:23.175 [Task submitter] DEBUG n.executor.local.LocalTaskHandler - Launch cmd line: /bin/bash -ue .command.run +Mar-23 11:46:23.181 [Task submitter] INFO nextflow.Session - [48/6b3902] Submitted process > checkAndGetModule +Mar-23 11:46:24.277 [Task monitor] DEBUG n.processor.TaskPollingMonitor - Task completed > TaskHandler[id: 1; name: checkAndGetModule; status: COMPLETED; exit: 1; error: -; workDir: /Users/richman/workspace/synthea-alldiseases/work/48/6b39028ef9836c1989643d36911af1] +Mar-23 11:46:24.279 [Task monitor] DEBUG nextflow.util.ThreadPoolBuilder - Creating thread pool 'TaskFinalizer' minSize=10; maxSize=30; workQueue=LinkedBlockingQueue[-1]; allowCoreThreadTimeout=false +Mar-23 11:46:24.301 [TaskFinalizer-1] DEBUG nextflow.processor.TaskProcessor - Handling unexpected condition for + task: name=checkAndGetModule; work-dir=/Users/richman/workspace/synthea-alldiseases/work/48/6b39028ef9836c1989643d36911af1 + error [nextflow.exception.ProcessFailedException]: Process `checkAndGetModule` terminated with an error exit status (1) +Mar-23 11:46:24.343 [TaskFinalizer-1] ERROR nextflow.processor.TaskProcessor - Error executing process > 'checkAndGetModule' + +Caused by: + Process `checkAndGetModule` terminated with an error exit status (1) + + +Command executed: + + echo "Looking for module at /app/src/main/resources/modules/multiple_sclerosis.json" + if [ -f "/app/src/main/resources/modules/multiple_sclerosis.json" ]; then + echo "Module exists, copying..." + cp "/app/src/main/resources/modules/multiple_sclerosis.json" . + else + echo "Module not found, generating..." + python3 /app/module_generator/module_generator.py --disease "Multiple Sclerosis" --output "multiple_sclerosis.json" + if [ -f "multiple_sclerosis.json" ]; then + echo "Successfully generated module" + else + echo "Error: Failed to generate module" + exit 1 + fi + fi + +Command exit status: + 1 + +Command output: + Looking for module at /app/src/main/resources/modules/multiple_sclerosis.json + Module not found, generating... + +Command error: + Looking for module at /app/src/main/resources/modules/multiple_sclerosis.json + Module not found, generating... + Traceback (most recent call last): + File "/app/module_generator/module_generator.py", line 90, in + client = anthropic.Client(api_key=api_key) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/venv/lib/python3.12/site-packages/anthropic/_client.py", line 113, in __init__ + super().__init__( + File "/opt/venv/lib/python3.12/site-packages/anthropic/_base_client.py", line 758, in __init__ + self._client = http_client or SyncHttpxClientWrapper( + ^^^^^^^^^^^^^^^^^^^^^^^ + TypeError: Client.__init__() got an unexpected keyword argument 'proxies' + +Work dir: + /Users/richman/workspace/synthea-alldiseases/work/48/6b39028ef9836c1989643d36911af1 + +Container: + synthea-module-generator + +Tip: when you have fixed the problem you can continue the execution adding the option `-resume` to the run command line +Mar-23 11:46:24.361 [main] DEBUG nextflow.Session - Session await > all processes finished +Mar-23 11:46:24.361 [TaskFinalizer-1] DEBUG nextflow.Session - Session aborted -- Cause: Process `checkAndGetModule` terminated with an error exit status (1) +Mar-23 11:46:24.396 [Task monitor] DEBUG n.processor.TaskPollingMonitor - <<< barrier arrives (monitor: local) - terminating tasks monitor poll loop +Mar-23 11:46:24.397 [main] DEBUG nextflow.Session - Session await > all barriers passed +Mar-23 11:46:24.431 [main] DEBUG n.trace.WorkflowStatsObserver - Workflow completed > WorkflowStats[succeededCount=0; failedCount=1; ignoredCount=0; cachedCount=0; pendingCount=0; submittedCount=0; runningCount=0; retriesCount=0; abortedCount=0; succeedDuration=0ms; failedDuration=995ms; cachedDuration=0ms;loadCpus=0; loadMemory=0; peakRunning=1; peakCpus=1; peakMemory=0; ] +Mar-23 11:46:24.437 [main] DEBUG nextflow.trace.TraceFileObserver - Workflow completed -- saving trace file +Mar-23 11:46:24.466 [TaskFinalizer-1] DEBUG nextflow.Session - +Thread[Actor Thread 5,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Reference Handler,10,system] + java.base@15.0.2/java.lang.ref.Reference.waitForReferencePendingList(Native Method) + java.base@15.0.2/java.lang.ref.Reference.processPendingReferences(Reference.java:241) + java.base@15.0.2/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213) + +Thread[Actor Thread 4,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Finalizer,8,system] + java.base@15.0.2/java.lang.Object.wait(Native Method) + java.base@15.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) + java.base@15.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176) + java.base@15.0.2/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170) + +Thread[Actor Thread 2,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Common-Cleaner,8,InnocuousThreadGroup] + java.base@15.0.2/java.lang.Object.wait(Native Method) + java.base@15.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) + java.base@15.0.2/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + java.base@15.0.2/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134) + +Thread[Actor Thread 8,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 11,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[process reaper,10,system] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:462) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1055) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 3,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 6,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 1,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Signal Dispatcher,9,system] + +Thread[Thread-1,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1661) + java.base@15.0.2/java.util.concurrent.LinkedBlockingDeque.pollFirst(LinkedBlockingDeque.java:515) + java.base@15.0.2/java.util.concurrent.LinkedBlockingDeque.poll(LinkedBlockingDeque.java:677) + app//nextflow.util.SimpleAgent.run(SimpleAgent.groovy:89) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1333) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethodClosure(MetaClassImpl.java:1017) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1207) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + app//groovy.lang.Closure.call(Closure.java:433) + app//groovy.lang.Closure.call(Closure.java:412) + app//groovy.lang.Closure.run(Closure.java:505) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 7,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[TaskFinalizer-1,5,main] + java.base@15.0.2/java.lang.Thread.dumpThreads(Native Method) + java.base@15.0.2/java.lang.Thread.getAllStackTraces(Thread.java:1649) + app//nextflow.util.SysHelper.dumpThreads(SysHelper.groovy:188) + app//nextflow.Session.abort(Session.groovy:800) + app//nextflow.Session.fault(Session.groovy:766) + app//nextflow.processor.TaskPollingMonitor.finalizeTask(TaskPollingMonitor.groovy:695) + app//nextflow.processor.TaskPollingMonitor.safeFinalizeTask(TaskPollingMonitor.groovy:678) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1333) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + app//org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:645) + app//org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:628) + app//org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:82) + app//nextflow.processor.TaskPollingMonitor$_checkTaskStatus_lambda8.doCall(TaskPollingMonitor.groovy:668) + app//nextflow.processor.TaskPollingMonitor$$Lambda$437/0x0000000800f54530.run(Unknown Source) + java.base@15.0.2/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) + java.base@15.0.2/java.util.concurrent.FutureTask.run(FutureTask.java:264) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[pool-2-thread-1,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:505) + java.base@15.0.2/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3137) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1614) + java.base@15.0.2/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[AnsiLogObserver,5,main] + java.base@15.0.2/java.lang.Object.wait(Native Method) + app//nextflow.trace.AnsiLogObserver.render0(AnsiLogObserver.groovy:185) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1333) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethodClosure(MetaClassImpl.java:1017) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1207) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + app//groovy.lang.Closure.call(Closure.java:433) + app//groovy.lang.Closure.call(Closure.java:412) + app//groovy.lang.Closure.run(Closure.java:505) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Task submitter,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:505) + java.base@15.0.2/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3137) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1614) + app//nextflow.processor.TaskPollingMonitor.awaitTasks(TaskPollingMonitor.groovy:388) + app//nextflow.processor.TaskPollingMonitor.submitLoop(TaskPollingMonitor.groovy:412) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1333) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethodClosure(MetaClassImpl.java:1017) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1207) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + app//groovy.lang.Closure.call(Closure.java:433) + app//groovy.lang.Closure.call(Closure.java:412) + app//groovy.lang.Closure.run(Closure.java:505) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 10,5,main] + java.base@15.0.2/java.util.zip.Inflater.inflateBytesBytes(Native Method) + java.base@15.0.2/java.util.zip.Inflater.inflate(Inflater.java:378) + java.base@15.0.2/java.util.zip.InflaterInputStream.read(InflaterInputStream.java:152) + java.base@15.0.2/jdk.internal.loader.Resource.getBytes(Resource.java:126) + java.base@15.0.2/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:822) + java.base@15.0.2/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:723) + java.base@15.0.2/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:646) + java.base@15.0.2/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:604) + java.base@15.0.2/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168) + java.base@15.0.2/java.lang.ClassLoader.loadClass(ClassLoader.java:522) + app//de.javakaffee.kryoserializers.UnmodifiableCollectionsSerializer.registerSerializers(UnmodifiableCollectionsSerializer.java:193) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800bb9840.invokeStaticInit(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800f8b040.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0ec40.guardWithCatch(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0e440.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0d840.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0e440.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0d840.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0e440.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c89c40.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0a440.invokeExact_MT(LambdaForm$MH) + app//org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800bdd440.invokeStatic(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0f440.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.Invokers$Holder.linkToCallSite(Invokers$Holder) + app//nextflow.util.KryoHelper.newInstance(SerializationHelper.groovy:91) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1586) + app//org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:611) + app//org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:182) + app//nextflow.util.KryoHelper$1.methodMissing(SerializationHelper.groovy) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:924) + app//groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1413) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1335) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800bff440.invokeInterface(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c9f840.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800cac040.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2ac40.guardWithCatch(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfc040.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfc040.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2dc40.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0a440.invokeExact_MT(LambdaForm$MH) + app//org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800bdd440.invokeStatic(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfa440.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.Invokers$Holder.linkToCallSite(Invokers$Holder) + app//nextflow.util.KryoHelper$1.initialValue(SerializationHelper.groovy:60) + app//nextflow.util.KryoHelper$1.initialValue(SerializationHelper.groovy) + java.base@15.0.2/java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:195) + java.base@15.0.2/java.lang.ThreadLocal.get(ThreadLocal.java:172) + java.base@15.0.2/java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(DirectMethodHandle$Holder) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2ac40.guardWithCatch(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfc040.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfc040.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2dc40.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0a440.invokeExact_MT(LambdaForm$MH) + app//org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800bdd440.invokeStatic(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfa440.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.Invokers$Holder.linkToCallSite(Invokers$Holder) + app//nextflow.util.KryoHelper.kryo(SerializationHelper.groovy:79) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800b8fc40.invokeStatic(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2b440.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2ac40.guardWithCatch(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfc040.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2dc40.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0a440.invokeExact_MT(LambdaForm$MH) + app//org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800bdd440.invokeStatic(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfa440.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.Invokers$Holder.linkToCallSite(Invokers$Holder) + app//nextflow.util.KryoHelper.serialize(SerializationHelper.groovy:166) + app//nextflow.trace.TraceRecord.serialize(TraceRecord.groovy:573) + app//nextflow.cache.CacheDB.writeTaskEntry0(CacheDB.groovy:147) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1333) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + app//org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:645) + app//org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:628) + app//org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:82) + app//nextflow.cache.CacheDB$_putTaskAsync_closure1.doCall(CacheDB.groovy:157) + app//nextflow.cache.CacheDB$_putTaskAsync_closure1.call(CacheDB.groovy) + app//groovyx.gpars.agent.AgentBase.onMessage(AgentBase.java:102) + app//groovyx.gpars.agent.Agent.handleMessage(Agent.java:84) + app//groovyx.gpars.agent.AgentCore$1.handleMessage(AgentCore.java:48) + app//groovyx.gpars.util.AsyncMessagingCore.run(AsyncMessagingCore.java:132) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[main,5,main] + java.base@15.0.2/java.lang.Object.wait(Native Method) + java.base@15.0.2/java.lang.Thread.join(Thread.java:1303) + java.base@15.0.2/java.lang.Thread.join(Thread.java:1371) + app//nextflow.trace.AnsiLogObserver.onFlowComplete(AnsiLogObserver.groovy:506) + app//nextflow.Session.notifyFlowComplete(Session.groovy:1155) + app//nextflow.Session.shutdown0(Session.groovy:749) + app//nextflow.Session.destroy(Session.groovy:694) + app//nextflow.script.ScriptRunner.shutdown(ScriptRunner.groovy:260) + app//nextflow.script.ScriptRunner.execute(ScriptRunner.groovy:146) + app//nextflow.cli.CmdRun.run(CmdRun.groovy:376) + app//nextflow.cli.Launcher.run(Launcher.groovy:503) + app//nextflow.cli.Launcher.main(Launcher.groovy:658) + +Thread[Notification Thread,9,system] + +Thread[Actor Thread 9,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Mar-23 11:46:24.470 [TaskFinalizer-1] WARN nextflow.util.SimpleAgent - Got an interrupted exception while taking agent result | java.lang.InterruptedException +Mar-23 11:46:24.658 [main] DEBUG nextflow.cache.CacheDB - Closing CacheDB done +Mar-23 11:46:24.685 [main] DEBUG nextflow.script.ScriptRunner - > Execution complete -- Goodbye diff --git a/.nextflow.log.1 b/.nextflow.log.1 new file mode 100644 index 0000000..94d969d --- /dev/null +++ b/.nextflow.log.1 @@ -0,0 +1,511 @@ +Mar-23 11:44:25.724 [main] DEBUG nextflow.cli.Launcher - $> nextflow run main.nf --disease_name 'Multiple Sclerosis' --population 10 +Mar-23 11:44:26.022 [main] DEBUG nextflow.cli.CmdRun - N E X T F L O W ~ version 24.10.5 +Mar-23 11:44:26.079 [main] DEBUG nextflow.plugin.PluginsFacade - Setting up plugin manager > mode=prod; embedded=false; plugins-dir=/Users/richman/.nextflow/plugins; core-plugins: nf-amazon@2.9.2,nf-azure@1.10.2,nf-cloudcache@0.4.2,nf-codecommit@0.2.2,nf-console@1.1.4,nf-google@1.15.4,nf-tower@1.9.3,nf-wave@1.7.4 +Mar-23 11:44:26.129 [main] INFO o.pf4j.DefaultPluginStatusProvider - Enabled plugins: [] +Mar-23 11:44:26.130 [main] INFO o.pf4j.DefaultPluginStatusProvider - Disabled plugins: [] +Mar-23 11:44:26.138 [main] INFO org.pf4j.DefaultPluginManager - PF4J version 3.12.0 in 'deployment' mode +Mar-23 11:44:26.192 [main] INFO org.pf4j.AbstractPluginManager - No plugins +Mar-23 11:44:26.303 [main] DEBUG nextflow.config.ConfigBuilder - Found config local: /Users/richman/workspace/synthea-alldiseases/nextflow.config +Mar-23 11:44:26.317 [main] DEBUG nextflow.config.ConfigBuilder - Parsing config file: /Users/richman/workspace/synthea-alldiseases/nextflow.config +Mar-23 11:44:26.466 [main] DEBUG n.secret.LocalSecretsProvider - Secrets store: /Users/richman/.nextflow/secrets/store.json +Mar-23 11:44:26.474 [main] DEBUG nextflow.secret.SecretsLoader - Discovered secrets providers: [nextflow.secret.LocalSecretsProvider@c827db] - activable => nextflow.secret.LocalSecretsProvider@c827db +Mar-23 11:44:26.570 [main] DEBUG nextflow.config.ConfigBuilder - Applying config profile: `standard` +Mar-23 11:44:28.572 [main] DEBUG nextflow.cli.CmdRun - Applied DSL=2 from script declaration +Mar-23 11:44:28.598 [main] DEBUG nextflow.cli.CmdRun - Launching `main.nf` [distracted_curran] DSL2 - revision: ab2562e4a1 +Mar-23 11:44:28.602 [main] DEBUG nextflow.plugin.PluginsFacade - Plugins default=[] +Mar-23 11:44:28.603 [main] DEBUG nextflow.plugin.PluginsFacade - Plugins resolved requirement=[] +Mar-23 11:44:28.705 [main] DEBUG nextflow.Session - Session UUID: ae62d0f9-dec1-462d-a18a-b4b9ebf0f702 +Mar-23 11:44:28.706 [main] DEBUG nextflow.Session - Run name: distracted_curran +Mar-23 11:44:28.708 [main] DEBUG nextflow.Session - Executor pool size: 10 +Mar-23 11:44:28.723 [main] DEBUG nextflow.file.FilePorter - File porter settings maxRetries=3; maxTransfers=50; pollTimeout=null +Mar-23 11:44:28.742 [main] DEBUG nextflow.util.ThreadPoolBuilder - Creating thread pool 'FileTransfer' minSize=10; maxSize=30; workQueue=LinkedBlockingQueue[-1]; allowCoreThreadTimeout=false +Mar-23 11:44:28.958 [main] DEBUG nextflow.cli.CmdRun - + Version: 24.10.5 build 5935 + Created: 04-03-2025 17:55 UTC (09:55 PDT) + System: Mac OS X 10.16 + Runtime: Groovy 4.0.23 on OpenJDK 64-Bit Server VM 15.0.2+7-27 + Encoding: UTF-8 (UTF-8) + Process: 73685@MacBookPro.localdomain [192.168.1.157] + CPUs: 10 - Mem: 32 GB (18.5 MB) - Swap: 6 GB (1.6 GB) +Mar-23 11:44:29.023 [main] DEBUG nextflow.Session - Work-dir: /Users/richman/workspace/synthea-alldiseases/work [Mac OS X] +Mar-23 11:44:29.024 [main] DEBUG nextflow.Session - Script base path does not exist or is not a directory: /Users/richman/workspace/synthea-alldiseases/bin +Mar-23 11:44:29.044 [main] DEBUG nextflow.executor.ExecutorFactory - Extension executors providers=[] +Mar-23 11:44:29.060 [main] DEBUG nextflow.Session - Observer factory: DefaultObserverFactory +Mar-23 11:44:29.129 [main] DEBUG nextflow.cache.CacheFactory - Using Nextflow cache factory: nextflow.cache.DefaultCacheFactory +Mar-23 11:44:29.162 [main] DEBUG nextflow.util.CustomThreadPool - Creating default thread pool > poolSize: 11; maxThreads: 1000 +Mar-23 11:44:29.230 [main] DEBUG nextflow.Session - Session start +Mar-23 11:44:29.237 [main] DEBUG nextflow.trace.TraceFileObserver - Workflow started -- trace file: /Users/richman/workspace/synthea-alldiseases/trace.txt +Mar-23 11:44:30.406 [main] DEBUG nextflow.script.ScriptRunner - > Launching execution +Mar-23 11:44:30.757 [main] DEBUG nextflow.executor.ExecutorFactory - << taskConfig executor: local +Mar-23 11:44:30.758 [main] DEBUG nextflow.executor.ExecutorFactory - >> processorType: 'local' +Mar-23 11:44:30.786 [main] DEBUG nextflow.executor.Executor - [warm up] executor > local +Mar-23 11:44:30.795 [main] DEBUG n.processor.LocalPollingMonitor - Creating local task monitor for executor 'local' > cpus=10; memory=32 GB; capacity=10; pollInterval=100ms; dumpInterval=5m +Mar-23 11:44:30.801 [main] DEBUG n.processor.TaskPollingMonitor - >>> barrier register (monitor: local) +Mar-23 11:44:30.992 [main] DEBUG nextflow.executor.ExecutorFactory - << taskConfig executor: local +Mar-23 11:44:30.993 [main] DEBUG nextflow.executor.ExecutorFactory - >> processorType: 'local' +Mar-23 11:44:31.002 [main] DEBUG nextflow.Session - Workflow process names [dsl2]: checkAndGetModule, generatePatients +Mar-23 11:44:31.004 [main] DEBUG nextflow.Session - Igniting dataflow network (2) +Mar-23 11:44:31.005 [main] DEBUG nextflow.processor.TaskProcessor - Starting process > checkAndGetModule +Mar-23 11:44:31.005 [main] DEBUG nextflow.processor.TaskProcessor - Starting process > generatePatients +Mar-23 11:44:31.007 [main] DEBUG nextflow.script.ScriptRunner - Parsed script files: + Script_b4244dfae6385692: /Users/richman/workspace/synthea-alldiseases/main.nf +Mar-23 11:44:31.008 [main] DEBUG nextflow.script.ScriptRunner - > Awaiting termination +Mar-23 11:44:31.010 [main] DEBUG nextflow.Session - Session await +Mar-23 11:44:31.414 [Task submitter] DEBUG n.executor.local.LocalTaskHandler - Launch cmd line: /bin/bash -ue .command.run +Mar-23 11:44:31.419 [Task submitter] INFO nextflow.Session - [5f/61e0a1] Submitted process > checkAndGetModule +Mar-23 11:44:32.587 [Task monitor] DEBUG n.processor.TaskPollingMonitor - Task completed > TaskHandler[id: 1; name: checkAndGetModule; status: COMPLETED; exit: 1; error: -; workDir: /Users/richman/workspace/synthea-alldiseases/work/5f/61e0a106b3bf7b6d8599a7220c029c] +Mar-23 11:44:32.591 [Task monitor] DEBUG nextflow.util.ThreadPoolBuilder - Creating thread pool 'TaskFinalizer' minSize=10; maxSize=30; workQueue=LinkedBlockingQueue[-1]; allowCoreThreadTimeout=false +Mar-23 11:44:32.609 [SIGINT handler] DEBUG nextflow.Session - Session aborted -- Cause: SIGINT +Mar-23 11:44:32.610 [TaskFinalizer-1] DEBUG nextflow.processor.TaskProcessor - Handling unexpected condition for + task: name=checkAndGetModule; work-dir=/Users/richman/workspace/synthea-alldiseases/work/5f/61e0a106b3bf7b6d8599a7220c029c + error [nextflow.exception.ProcessFailedException]: Process `checkAndGetModule` terminated with an error exit status (1) +Mar-23 11:44:32.634 [main] DEBUG nextflow.Session - Session await > all processes finished +Mar-23 11:44:32.696 [SIGINT handler] DEBUG nextflow.Session - +Thread[process reaper,10,system] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:462) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1055) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[pool-2-thread-1,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:505) + java.base@15.0.2/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3137) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1614) + java.base@15.0.2/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Task submitter,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:505) + java.base@15.0.2/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3137) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1614) + app//nextflow.processor.TaskPollingMonitor.awaitTasks(TaskPollingMonitor.groovy:388) + app//nextflow.processor.TaskPollingMonitor.submitLoop(TaskPollingMonitor.groovy:412) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1333) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethodClosure(MetaClassImpl.java:1017) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1207) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + app//groovy.lang.Closure.call(Closure.java:433) + app//groovy.lang.Closure.call(Closure.java:412) + app//groovy.lang.Closure.run(Closure.java:505) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 5,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 2,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Thread-1,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1661) + java.base@15.0.2/java.util.concurrent.LinkedBlockingDeque.pollFirst(LinkedBlockingDeque.java:515) + java.base@15.0.2/java.util.concurrent.LinkedBlockingDeque.poll(LinkedBlockingDeque.java:677) + app//nextflow.util.SimpleAgent.run(SimpleAgent.groovy:89) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1333) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethodClosure(MetaClassImpl.java:1017) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1207) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + app//groovy.lang.Closure.call(Closure.java:433) + app//groovy.lang.Closure.call(Closure.java:412) + app//groovy.lang.Closure.run(Closure.java:505) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[main,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:505) + java.base@15.0.2/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3137) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1614) + app//nextflow.util.Barrier$_awaitCompletion_closure3.doCall(Barrier.groovy:92) + app//nextflow.util.Barrier$_awaitCompletion_closure3.call(Barrier.groovy) + app//nextflow.extension.Bolts.withLock(Bolts.groovy:337) + app//nextflow.extension.Bolts.withLock(Bolts.groovy) + app//nextflow.util.Barrier.awaitCompletion(Barrier.groovy:89) + app//nextflow.Session.await(Session.groovy:679) + app//nextflow.script.ScriptRunner.await(ScriptRunner.groovy:256) + app//nextflow.script.ScriptRunner.execute(ScriptRunner.groovy:144) + app//nextflow.cli.CmdRun.run(CmdRun.groovy:376) + app//nextflow.cli.Launcher.run(Launcher.groovy:503) + app//nextflow.cli.Launcher.main(Launcher.groovy:658) + +Thread[Notification Thread,9,system] + +Thread[Reference Handler,10,system] + java.base@15.0.2/java.lang.ref.Reference.waitForReferencePendingList(Native Method) + java.base@15.0.2/java.lang.ref.Reference.processPendingReferences(Reference.java:241) + java.base@15.0.2/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213) + +Thread[Actor Thread 10,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 8,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 1,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 6,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[SIGINT handler,9,system] + java.base@15.0.2/java.lang.Thread.dumpThreads(Native Method) + java.base@15.0.2/java.lang.Thread.getAllStackTraces(Thread.java:1649) + app//nextflow.util.SysHelper.dumpThreads(SysHelper.groovy:188) + app//nextflow.Session.abort(Session.groovy:800) + app//nextflow.Session$_registerSignalHandlers_closure17.doCall(Session.groovy:489) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:279) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + app//groovy.lang.Closure.call(Closure.java:433) + app//org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:52) + app//org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:113) + com.sun.proxy.$Proxy26.handle(Unknown Source) + jdk.unsupported@15.0.2/sun.misc.Signal$InternalMiscHandler.handle(Signal.java:198) + java.base@15.0.2/jdk.internal.misc.Signal$1.run(Signal.java:220) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 9,5,main] + java.base@15.0.2/java.lang.ClassLoader.defineClass1(Native Method) + java.base@15.0.2/java.lang.ClassLoader.defineClass(ClassLoader.java:1016) + java.base@15.0.2/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151) + java.base@15.0.2/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:825) + java.base@15.0.2/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:723) + java.base@15.0.2/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:646) + java.base@15.0.2/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:604) + java.base@15.0.2/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168) + java.base@15.0.2/java.lang.ClassLoader.loadClass(ClassLoader.java:522) + app//com.esotericsoftware.kryo.Kryo.(Kryo.java:188) + app//com.esotericsoftware.kryo.Kryo.(Kryo.java:132) + java.base@15.0.2/java.lang.invoke.DirectMethodHandle$Holder.newInvokeSpecial(DirectMethodHandle$Holder) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2b440.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2ac40.guardWithCatch(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfc040.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2dc40.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0a440.invokeExact_MT(LambdaForm$MH) + app//org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800bdd440.invokeStatic(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfa440.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.Invokers$Holder.linkToCallSite(Invokers$Holder) + app//nextflow.util.KryoHelper.newInstance(SerializationHelper.groovy:87) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1586) + app//org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:611) + app//org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:182) + app//nextflow.util.KryoHelper$1.methodMissing(SerializationHelper.groovy) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:924) + app//groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1413) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1335) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800bff440.invokeInterface(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c9f840.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800cac040.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2ac40.guardWithCatch(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfc040.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfc040.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2dc40.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0a440.invokeExact_MT(LambdaForm$MH) + app//org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800bdd440.invokeStatic(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfa440.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.Invokers$Holder.linkToCallSite(Invokers$Holder) + app//nextflow.util.KryoHelper$1.initialValue(SerializationHelper.groovy:60) + app//nextflow.util.KryoHelper$1.initialValue(SerializationHelper.groovy) + java.base@15.0.2/java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:195) + java.base@15.0.2/java.lang.ThreadLocal.get(ThreadLocal.java:172) + java.base@15.0.2/java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(DirectMethodHandle$Holder) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2ac40.guardWithCatch(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfc040.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfc040.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2dc40.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0a440.invokeExact_MT(LambdaForm$MH) + app//org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800bdd440.invokeStatic(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfa440.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.Invokers$Holder.linkToCallSite(Invokers$Holder) + app//nextflow.util.KryoHelper.kryo(SerializationHelper.groovy:79) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800b8fc40.invokeStatic(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2b440.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2ac40.guardWithCatch(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfc040.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2dc40.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0a440.invokeExact_MT(LambdaForm$MH) + app//org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800bdd440.invokeStatic(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfa440.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.Invokers$Holder.linkToCallSite(Invokers$Holder) + app//nextflow.util.KryoHelper.serialize(SerializationHelper.groovy:166) + app//nextflow.trace.TraceRecord.serialize(TraceRecord.groovy:573) + app//nextflow.cache.CacheDB.writeTaskEntry0(CacheDB.groovy:147) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1333) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + app//org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:645) + app//org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:628) + app//org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:82) + app//nextflow.cache.CacheDB$_putTaskAsync_closure1.doCall(CacheDB.groovy:157) + app//nextflow.cache.CacheDB$_putTaskAsync_closure1.call(CacheDB.groovy) + app//groovyx.gpars.agent.AgentBase.onMessage(AgentBase.java:102) + app//groovyx.gpars.agent.Agent.handleMessage(Agent.java:84) + app//groovyx.gpars.agent.AgentCore$1.handleMessage(AgentCore.java:48) + app//groovyx.gpars.util.AsyncMessagingCore.run(AsyncMessagingCore.java:132) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[AnsiLogObserver,5,main] + java.base@15.0.2/java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:4020) + java.base@15.0.2/java.util.regex.Pattern$GroupHead.match(Pattern.java:4855) + java.base@15.0.2/java.util.regex.Pattern$Branch.match(Pattern.java:4798) + java.base@15.0.2/java.util.regex.Pattern$Branch.match(Pattern.java:4798) + java.base@15.0.2/java.util.regex.Pattern$Branch.match(Pattern.java:4798) + java.base@15.0.2/java.util.regex.Pattern$BranchConn.match(Pattern.java:4763) + java.base@15.0.2/java.util.regex.Pattern$GroupTail.match(Pattern.java:4886) + java.base@15.0.2/java.util.regex.Pattern$BmpCharPropertyGreedy.match(Pattern.java:4394) + java.base@15.0.2/java.util.regex.Pattern$GroupHead.match(Pattern.java:4855) + java.base@15.0.2/java.util.regex.Pattern$Branch.match(Pattern.java:4800) + java.base@15.0.2/java.util.regex.Pattern$Branch.match(Pattern.java:4798) + java.base@15.0.2/java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:4020) + java.base@15.0.2/java.util.regex.Pattern$Start.match(Pattern.java:3673) + java.base@15.0.2/java.util.regex.Matcher.search(Matcher.java:1729) + java.base@15.0.2/java.util.regex.Matcher.find(Matcher.java:773) + java.base@15.0.2/java.util.Formatter.parse(Formatter.java:2702) + java.base@15.0.2/java.util.Formatter.format(Formatter.java:2655) + java.base@15.0.2/java.util.Formatter.format(Formatter.java:2609) + java.base@15.0.2/java.lang.String.format(String.java:3292) + app//jline.internal.TerminalLineSettings.stty(TerminalLineSettings.java:168) + app//jline.internal.TerminalLineSettings.get(TerminalLineSettings.java:72) + app//jline.internal.TerminalLineSettings.getProperty(TerminalLineSettings.java:92) + app//jline.UnixTerminal.getWidth(UnixTerminal.java:77) + app//nextflow.trace.AnsiLogObserver.renderProcesses(AnsiLogObserver.groovy:257) + app//nextflow.trace.AnsiLogObserver.renderProgress(AnsiLogObserver.groovy:312) + app//nextflow.trace.AnsiLogObserver.render0(AnsiLogObserver.groovy:183) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1333) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethodClosure(MetaClassImpl.java:1017) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1207) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + app//groovy.lang.Closure.call(Closure.java:433) + app//groovy.lang.Closure.call(Closure.java:412) + app//groovy.lang.Closure.run(Closure.java:505) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[TaskFinalizer-1,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:505) + java.base@15.0.2/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3137) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1614) + java.base@15.0.2/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 4,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Task monitor,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1746) + app//nextflow.processor.TaskPollingMonitor$_await_closure5.doCall(TaskPollingMonitor.groovy:529) + app//nextflow.processor.TaskPollingMonitor$_await_closure5.call(TaskPollingMonitor.groovy) + app//nextflow.extension.Bolts.withLock(Bolts.groovy:337) + app//nextflow.extension.Bolts.withLock(Bolts.groovy) + app//nextflow.processor.TaskPollingMonitor.await(TaskPollingMonitor.groovy:528) + app//nextflow.processor.TaskPollingMonitor.pollLoop(TaskPollingMonitor.groovy:453) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1333) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + app//org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:645) + app//org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:628) + app//org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:82) + app//nextflow.processor.TaskPollingMonitor$_start_closure2.doCall(TaskPollingMonitor.groovy:318) + app//nextflow.processor.TaskPollingMonitor$_start_closure2.call(TaskPollingMonitor.groovy) + app//groovy.lang.Closure.run(Closure.java:505) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 11,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 7,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Signal Dispatcher,9,system] + +Thread[Actor Thread 3,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Common-Cleaner,8,InnocuousThreadGroup] + java.base@15.0.2/java.lang.Object.wait(Native Method) + java.base@15.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) + java.base@15.0.2/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + java.base@15.0.2/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134) + +Thread[Finalizer,8,system] + java.base@15.0.2/java.lang.Object.wait(Native Method) + java.base@15.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) + java.base@15.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176) + java.base@15.0.2/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170) + +Mar-23 11:44:32.701 [main] DEBUG nextflow.Session - Session await > all barriers passed +Mar-23 11:44:32.701 [Task monitor] DEBUG n.processor.TaskPollingMonitor - <<< barrier arrives (monitor: local) - terminating tasks monitor poll loop +Mar-23 11:44:32.736 [main] DEBUG n.trace.WorkflowStatsObserver - Workflow completed > WorkflowStats[succeededCount=0; failedCount=1; ignoredCount=0; cachedCount=0; pendingCount=0; submittedCount=0; runningCount=0; retriesCount=0; abortedCount=0; succeedDuration=0ms; failedDuration=1s; cachedDuration=0ms;loadCpus=0; loadMemory=0; peakRunning=1; peakCpus=1; peakMemory=0; ] +Mar-23 11:44:32.741 [main] DEBUG nextflow.trace.TraceFileObserver - Workflow completed -- saving trace file +Mar-23 11:44:33.181 [main] DEBUG nextflow.cache.CacheDB - Closing CacheDB done +Mar-23 11:44:33.291 [main] DEBUG nextflow.script.ScriptRunner - > Execution complete -- Goodbye diff --git a/.nextflow.log.2 b/.nextflow.log.2 new file mode 100644 index 0000000..9b16d11 --- /dev/null +++ b/.nextflow.log.2 @@ -0,0 +1,516 @@ +Mar-23 11:39:29.066 [main] DEBUG nextflow.cli.Launcher - $> nextflow run main.nf --disease_name 'Multiple Sclerosis' --population 10 +Mar-23 11:39:29.325 [main] DEBUG nextflow.cli.CmdRun - N E X T F L O W ~ version 24.10.5 +Mar-23 11:39:29.404 [main] DEBUG nextflow.plugin.PluginsFacade - Setting up plugin manager > mode=prod; embedded=false; plugins-dir=/Users/richman/.nextflow/plugins; core-plugins: nf-amazon@2.9.2,nf-azure@1.10.2,nf-cloudcache@0.4.2,nf-codecommit@0.2.2,nf-console@1.1.4,nf-google@1.15.4,nf-tower@1.9.3,nf-wave@1.7.4 +Mar-23 11:39:29.449 [main] INFO o.pf4j.DefaultPluginStatusProvider - Enabled plugins: [] +Mar-23 11:39:29.451 [main] INFO o.pf4j.DefaultPluginStatusProvider - Disabled plugins: [] +Mar-23 11:39:29.462 [main] INFO org.pf4j.DefaultPluginManager - PF4J version 3.12.0 in 'deployment' mode +Mar-23 11:39:29.488 [main] INFO org.pf4j.AbstractPluginManager - No plugins +Mar-23 11:39:29.572 [main] DEBUG nextflow.config.ConfigBuilder - Found config local: /Users/richman/workspace/synthea-alldiseases/nextflow.config +Mar-23 11:39:29.583 [main] DEBUG nextflow.config.ConfigBuilder - Parsing config file: /Users/richman/workspace/synthea-alldiseases/nextflow.config +Mar-23 11:39:29.682 [main] DEBUG n.secret.LocalSecretsProvider - Secrets store: /Users/richman/.nextflow/secrets/store.json +Mar-23 11:39:29.689 [main] DEBUG nextflow.secret.SecretsLoader - Discovered secrets providers: [nextflow.secret.LocalSecretsProvider@19542407] - activable => nextflow.secret.LocalSecretsProvider@19542407 +Mar-23 11:39:29.780 [main] DEBUG nextflow.config.ConfigBuilder - Applying config profile: `standard` +Mar-23 11:39:31.723 [main] DEBUG nextflow.cli.CmdRun - Applied DSL=2 from script declaration +Mar-23 11:39:31.763 [main] DEBUG nextflow.cli.CmdRun - Launching `main.nf` [astonishing_wozniak] DSL2 - revision: ab2562e4a1 +Mar-23 11:39:31.770 [main] DEBUG nextflow.plugin.PluginsFacade - Plugins default=[] +Mar-23 11:39:31.770 [main] DEBUG nextflow.plugin.PluginsFacade - Plugins resolved requirement=[] +Mar-23 11:39:31.897 [main] DEBUG nextflow.Session - Session UUID: cfdf2b28-2b73-4c6f-ac03-fc646888e313 +Mar-23 11:39:31.898 [main] DEBUG nextflow.Session - Run name: astonishing_wozniak +Mar-23 11:39:31.899 [main] DEBUG nextflow.Session - Executor pool size: 10 +Mar-23 11:39:31.917 [main] DEBUG nextflow.file.FilePorter - File porter settings maxRetries=3; maxTransfers=50; pollTimeout=null +Mar-23 11:39:31.928 [main] DEBUG nextflow.util.ThreadPoolBuilder - Creating thread pool 'FileTransfer' minSize=10; maxSize=30; workQueue=LinkedBlockingQueue[-1]; allowCoreThreadTimeout=false +Mar-23 11:39:31.993 [main] DEBUG nextflow.cli.CmdRun - + Version: 24.10.5 build 5935 + Created: 04-03-2025 17:55 UTC (09:55 PDT) + System: Mac OS X 10.16 + Runtime: Groovy 4.0.23 on OpenJDK 64-Bit Server VM 15.0.2+7-27 + Encoding: UTF-8 (UTF-8) + Process: 72268@MacBookPro.localdomain [192.168.1.157] + CPUs: 10 - Mem: 32 GB (16.7 MB) - Swap: 6 GB (1.6 GB) +Mar-23 11:39:32.031 [main] DEBUG nextflow.Session - Work-dir: /Users/richman/workspace/synthea-alldiseases/work [Mac OS X] +Mar-23 11:39:32.032 [main] DEBUG nextflow.Session - Script base path does not exist or is not a directory: /Users/richman/workspace/synthea-alldiseases/bin +Mar-23 11:39:32.054 [main] DEBUG nextflow.executor.ExecutorFactory - Extension executors providers=[] +Mar-23 11:39:32.072 [main] DEBUG nextflow.Session - Observer factory: DefaultObserverFactory +Mar-23 11:39:32.148 [main] DEBUG nextflow.cache.CacheFactory - Using Nextflow cache factory: nextflow.cache.DefaultCacheFactory +Mar-23 11:39:32.180 [main] DEBUG nextflow.util.CustomThreadPool - Creating default thread pool > poolSize: 11; maxThreads: 1000 +Mar-23 11:39:32.248 [main] DEBUG nextflow.Session - Session start +Mar-23 11:39:32.255 [main] DEBUG nextflow.trace.TraceFileObserver - Workflow started -- trace file: /Users/richman/workspace/synthea-alldiseases/trace.txt +Mar-23 11:39:33.528 [main] DEBUG nextflow.script.ScriptRunner - > Launching execution +Mar-23 11:39:33.813 [main] DEBUG nextflow.executor.ExecutorFactory - << taskConfig executor: local +Mar-23 11:39:33.814 [main] DEBUG nextflow.executor.ExecutorFactory - >> processorType: 'local' +Mar-23 11:39:33.827 [main] DEBUG nextflow.executor.Executor - [warm up] executor > local +Mar-23 11:39:33.835 [main] DEBUG n.processor.LocalPollingMonitor - Creating local task monitor for executor 'local' > cpus=10; memory=32 GB; capacity=10; pollInterval=100ms; dumpInterval=5m +Mar-23 11:39:33.843 [main] DEBUG n.processor.TaskPollingMonitor - >>> barrier register (monitor: local) +Mar-23 11:39:33.995 [main] DEBUG nextflow.executor.ExecutorFactory - << taskConfig executor: local +Mar-23 11:39:33.996 [main] DEBUG nextflow.executor.ExecutorFactory - >> processorType: 'local' +Mar-23 11:39:34.025 [main] DEBUG nextflow.Session - Workflow process names [dsl2]: checkAndGetModule, generatePatients +Mar-23 11:39:34.027 [main] DEBUG nextflow.Session - Igniting dataflow network (2) +Mar-23 11:39:34.028 [main] DEBUG nextflow.processor.TaskProcessor - Starting process > checkAndGetModule +Mar-23 11:39:34.028 [main] DEBUG nextflow.processor.TaskProcessor - Starting process > generatePatients +Mar-23 11:39:34.029 [main] DEBUG nextflow.script.ScriptRunner - Parsed script files: + Script_b4244dfae6385692: /Users/richman/workspace/synthea-alldiseases/main.nf +Mar-23 11:39:34.030 [main] DEBUG nextflow.script.ScriptRunner - > Awaiting termination +Mar-23 11:39:34.030 [main] DEBUG nextflow.Session - Session await +Mar-23 11:39:34.443 [Task submitter] DEBUG n.executor.local.LocalTaskHandler - Launch cmd line: /bin/bash -ue .command.run +Mar-23 11:39:34.448 [Task submitter] INFO nextflow.Session - [2c/9d944d] Submitted process > checkAndGetModule +Mar-23 11:39:35.759 [Task monitor] DEBUG n.processor.TaskPollingMonitor - Task completed > TaskHandler[id: 1; name: checkAndGetModule; status: COMPLETED; exit: 1; error: -; workDir: /Users/richman/workspace/synthea-alldiseases/work/2c/9d944dfd494af06885892ba6e4f300] +Mar-23 11:39:35.765 [Task monitor] DEBUG nextflow.util.ThreadPoolBuilder - Creating thread pool 'TaskFinalizer' minSize=10; maxSize=30; workQueue=LinkedBlockingQueue[-1]; allowCoreThreadTimeout=false +Mar-23 11:39:35.795 [TaskFinalizer-1] DEBUG nextflow.processor.TaskProcessor - Handling unexpected condition for + task: name=checkAndGetModule; work-dir=/Users/richman/workspace/synthea-alldiseases/work/2c/9d944dfd494af06885892ba6e4f300 + error [nextflow.exception.ProcessFailedException]: Process `checkAndGetModule` terminated with an error exit status (1) +Mar-23 11:39:35.835 [TaskFinalizer-1] ERROR nextflow.processor.TaskProcessor - Error executing process > 'checkAndGetModule' + +Caused by: + Process `checkAndGetModule` terminated with an error exit status (1) + + +Command executed: + + echo "Looking for module at /app/modules/multiple_sclerosis.json" + if [ -f "/app/modules/multiple_sclerosis.json" ]; then + echo "Module exists, copying..." + cp "/app/modules/multiple_sclerosis.json" . + else + echo "Module not found, generating..." + python3 /app/module_generator/module_generator.py --disease "Multiple Sclerosis" --output "multiple_sclerosis.json" + if [ -f "multiple_sclerosis.json" ]; then + echo "Successfully generated module" + else + echo "Error: Failed to generate module" + exit 1 + fi + fi + +Command exit status: + 1 + +Command output: + Looking for module at /app/modules/multiple_sclerosis.json + Module not found, generating... + +Command error: + Looking for module at /app/modules/multiple_sclerosis.json + Module not found, generating... + Traceback (most recent call last): + File "/app/module_generator/module_generator.py", line 90, in + client = anthropic.Client(api_key=api_key) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/venv/lib/python3.12/site-packages/anthropic/_client.py", line 113, in __init__ + super().__init__( + File "/opt/venv/lib/python3.12/site-packages/anthropic/_base_client.py", line 758, in __init__ + self._client = http_client or SyncHttpxClientWrapper( + ^^^^^^^^^^^^^^^^^^^^^^^ + TypeError: Client.__init__() got an unexpected keyword argument 'proxies' + +Work dir: + /Users/richman/workspace/synthea-alldiseases/work/2c/9d944dfd494af06885892ba6e4f300 + +Container: + synthea-module-generator + +Tip: you can try to figure out what's wrong by changing to the process work dir and showing the script file named `.command.sh` +Mar-23 11:39:35.906 [main] DEBUG nextflow.Session - Session await > all processes finished +Mar-23 11:39:35.908 [TaskFinalizer-1] DEBUG nextflow.Session - Session aborted -- Cause: Process `checkAndGetModule` terminated with an error exit status (1) +Mar-23 11:39:36.005 [Task monitor] DEBUG n.processor.TaskPollingMonitor - <<< barrier arrives (monitor: local) - terminating tasks monitor poll loop +Mar-23 11:39:36.006 [main] DEBUG nextflow.Session - Session await > all barriers passed +Mar-23 11:39:36.050 [main] DEBUG n.trace.WorkflowStatsObserver - Workflow completed > WorkflowStats[succeededCount=0; failedCount=1; ignoredCount=0; cachedCount=0; pendingCount=0; submittedCount=0; runningCount=0; retriesCount=0; abortedCount=0; succeedDuration=0ms; failedDuration=1.3s; cachedDuration=0ms;loadCpus=0; loadMemory=0; peakRunning=1; peakCpus=1; peakMemory=0; ] +Mar-23 11:39:36.063 [main] DEBUG nextflow.trace.TraceFileObserver - Workflow completed -- saving trace file +Mar-23 11:39:36.063 [TaskFinalizer-1] DEBUG nextflow.Session - +Thread[Actor Thread 4,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Reference Handler,10,system] + java.base@15.0.2/java.lang.ref.Reference.waitForReferencePendingList(Native Method) + java.base@15.0.2/java.lang.ref.Reference.processPendingReferences(Reference.java:241) + java.base@15.0.2/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213) + +Thread[Task submitter,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:505) + java.base@15.0.2/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3137) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1614) + app//nextflow.processor.TaskPollingMonitor.awaitTasks(TaskPollingMonitor.groovy:388) + app//nextflow.processor.TaskPollingMonitor.submitLoop(TaskPollingMonitor.groovy:412) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1333) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethodClosure(MetaClassImpl.java:1017) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1207) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + app//groovy.lang.Closure.call(Closure.java:433) + app//groovy.lang.Closure.call(Closure.java:412) + app//groovy.lang.Closure.run(Closure.java:505) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[TaskFinalizer-1,5,main] + java.base@15.0.2/java.lang.Thread.dumpThreads(Native Method) + java.base@15.0.2/java.lang.Thread.getAllStackTraces(Thread.java:1649) + app//nextflow.util.SysHelper.dumpThreads(SysHelper.groovy:188) + app//nextflow.Session.abort(Session.groovy:800) + app//nextflow.Session.fault(Session.groovy:766) + app//nextflow.processor.TaskPollingMonitor.finalizeTask(TaskPollingMonitor.groovy:695) + app//nextflow.processor.TaskPollingMonitor.safeFinalizeTask(TaskPollingMonitor.groovy:678) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1333) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + app//org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:645) + app//org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:628) + app//org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:82) + app//nextflow.processor.TaskPollingMonitor$_checkTaskStatus_lambda8.doCall(TaskPollingMonitor.groovy:668) + app//nextflow.processor.TaskPollingMonitor$$Lambda$437/0x0000000800f4c0e8.run(Unknown Source) + java.base@15.0.2/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) + java.base@15.0.2/java.util.concurrent.FutureTask.run(FutureTask.java:264) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 1,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 2,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 7,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 9,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 5,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[process reaper,10,system] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:462) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1055) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Common-Cleaner,8,InnocuousThreadGroup] + java.base@15.0.2/java.lang.Object.wait(Native Method) + java.base@15.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) + java.base@15.0.2/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + java.base@15.0.2/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134) + +Thread[Notification Thread,9,system] + +Thread[Actor Thread 11,5,main] + java.base@15.0.2/java.util.jar.Attributes.get(Attributes.java:104) + java.base@15.0.2/java.util.jar.Attributes.getValue(Attributes.java:140) + java.base@15.0.2/jdk.internal.loader.BuiltinClassLoader.definePackage(BuiltinClassLoader.java:928) + java.base@15.0.2/jdk.internal.loader.BuiltinClassLoader.defineOrCheckPackage(BuiltinClassLoader.java:844) + java.base@15.0.2/jdk.internal.loader.ClassLoaders$AppClassLoader.defineOrCheckPackage(ClassLoaders.java:191) + java.base@15.0.2/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:812) + java.base@15.0.2/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:723) + java.base@15.0.2/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:646) + java.base@15.0.2/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:604) + java.base@15.0.2/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168) + java.base@15.0.2/java.lang.ClassLoader.loadClass(ClassLoader.java:522) + app//nextflow.util.KryoHelper.newInstance(SerializationHelper.groovy:91) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1586) + app//org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:611) + app//org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:182) + app//nextflow.util.KryoHelper$1.methodMissing(SerializationHelper.groovy) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:924) + app//groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1413) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1335) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800bff440.invokeInterface(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c9f840.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800cae440.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2ac40.guardWithCatch(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfc040.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfc040.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2dc40.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0a440.invokeExact_MT(LambdaForm$MH) + app//org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800bdd440.invokeStatic(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfa440.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.Invokers$Holder.linkToCallSite(Invokers$Holder) + app//nextflow.util.KryoHelper$1.initialValue(SerializationHelper.groovy:60) + app//nextflow.util.KryoHelper$1.initialValue(SerializationHelper.groovy) + java.base@15.0.2/java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:195) + java.base@15.0.2/java.lang.ThreadLocal.get(ThreadLocal.java:172) + java.base@15.0.2/java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(DirectMethodHandle$Holder) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2ac40.guardWithCatch(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfc040.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfc040.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2dc40.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0a440.invokeExact_MT(LambdaForm$MH) + app//org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800bdd440.invokeStatic(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfa440.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.Invokers$Holder.linkToCallSite(Invokers$Holder) + app//nextflow.util.KryoHelper.kryo(SerializationHelper.groovy:79) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800b8fc40.invokeStatic(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2b440.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2ac40.guardWithCatch(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfc040.guard(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfbc40.reinvoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c2dc40.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0a440.invokeExact_MT(LambdaForm$MH) + app//org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800bdd440.invokeStatic(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfa440.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.Invokers$Holder.linkToCallSite(Invokers$Holder) + app//nextflow.util.KryoHelper.serialize(SerializationHelper.groovy:166) + app//nextflow.trace.TraceRecord.serialize(TraceRecord.groovy:573) + app//nextflow.cache.CacheDB.writeTaskEntry0(CacheDB.groovy:147) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1333) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + app//org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:645) + app//org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:628) + app//org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:82) + app//nextflow.cache.CacheDB$_putTaskAsync_closure1.doCall(CacheDB.groovy:157) + app//nextflow.cache.CacheDB$_putTaskAsync_closure1.call(CacheDB.groovy) + app//groovyx.gpars.agent.AgentBase.onMessage(AgentBase.java:102) + app//groovyx.gpars.agent.Agent.handleMessage(Agent.java:84) + app//groovyx.gpars.agent.AgentCore$1.handleMessage(AgentCore.java:48) + app//groovyx.gpars.util.AsyncMessagingCore.run(AsyncMessagingCore.java:132) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Finalizer,8,system] + java.base@15.0.2/java.lang.Object.wait(Native Method) + java.base@15.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) + java.base@15.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176) + java.base@15.0.2/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170) + +Thread[Thread-1,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1661) + java.base@15.0.2/java.util.concurrent.LinkedBlockingDeque.pollFirst(LinkedBlockingDeque.java:515) + java.base@15.0.2/java.util.concurrent.LinkedBlockingDeque.poll(LinkedBlockingDeque.java:677) + app//nextflow.util.SimpleAgent.run(SimpleAgent.groovy:89) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1333) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethodClosure(MetaClassImpl.java:1017) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1207) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + app//groovy.lang.Closure.call(Closure.java:433) + app//groovy.lang.Closure.call(Closure.java:412) + app//groovy.lang.Closure.run(Closure.java:505) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 6,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Actor Thread 8,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[pool-2-thread-1,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:505) + java.base@15.0.2/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3137) + java.base@15.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1614) + java.base@15.0.2/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[Signal Dispatcher,9,system] + +Thread[Actor Thread 10,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[AnsiLogObserver,5,main] + java.base@15.0.2/java.lang.Object.wait(Native Method) + app//nextflow.trace.AnsiLogObserver.render0(AnsiLogObserver.groovy:185) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + java.base@15.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) + java.base@15.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + java.base@15.0.2/java.lang.reflect.Method.invoke(Method.java:564) + app//org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) + app//groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1333) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethodClosure(MetaClassImpl.java:1017) + app//groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1207) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088) + app//groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007) + app//groovy.lang.Closure.call(Closure.java:433) + app//groovy.lang.Closure.call(Closure.java:412) + app//groovy.lang.Closure.run(Closure.java:505) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Thread[main,5,main] + java.base@15.0.2/sun.invoke.util.VerifyType.isNullConversion(VerifyType.java:70) + java.base@15.0.2/java.lang.invoke.InvokerBytecodeGenerator.emitImplicitConversion(InvokerBytecodeGenerator.java:605) + java.base@15.0.2/java.lang.invoke.InvokerBytecodeGenerator.emitPushArgument(InvokerBytecodeGenerator.java:1691) + java.base@15.0.2/java.lang.invoke.InvokerBytecodeGenerator.emitPushArguments(InvokerBytecodeGenerator.java:1676) + java.base@15.0.2/java.lang.invoke.InvokerBytecodeGenerator.emitStaticInvoke(InvokerBytecodeGenerator.java:1102) + java.base@15.0.2/java.lang.invoke.InvokerBytecodeGenerator.addMethod(InvokerBytecodeGenerator.java:916) + java.base@15.0.2/java.lang.invoke.InvokerBytecodeGenerator.generateCustomizedCodeBytes(InvokerBytecodeGenerator.java:806) + java.base@15.0.2/java.lang.invoke.InvokerBytecodeGenerator.generateCustomizedCode(InvokerBytecodeGenerator.java:764) + java.base@15.0.2/java.lang.invoke.LambdaForm.compileToBytecode(LambdaForm.java:872) + java.base@15.0.2/java.lang.invoke.LambdaForm.customize(LambdaForm.java:507) + java.base@15.0.2/java.lang.invoke.MethodHandle.customize(MethodHandle.java:1753) + java.base@15.0.2/java.lang.invoke.Invokers.maybeCustomize(Invokers.java:604) + java.base@15.0.2/java.lang.invoke.Invokers.checkCustomized(Invokers.java:595) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800c0a440.invokeExact_MT(LambdaForm$MH) + app//org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) + java.base@15.0.2/java.lang.invoke.LambdaForm$DMH/0x0000000800bdd440.invokeStatic(LambdaForm$DMH) + java.base@15.0.2/java.lang.invoke.LambdaForm$MH/0x0000000800bfac40.invoke(LambdaForm$MH) + java.base@15.0.2/java.lang.invoke.Invokers$Holder.linkToCallSite(Invokers$Holder) + app//nextflow.util.LoggerHelper$ConsoleLoggerFilter.decide(LoggerHelper.groovy:425) + app//nextflow.util.LoggerHelper$ConsoleLoggerFilter.decide(LoggerHelper.groovy) + app//ch.qos.logback.core.spi.FilterAttachableImpl.getFilterChainDecision(FilterAttachableImpl.java:57) + app//ch.qos.logback.core.AppenderBase.getFilterChainDecision(AppenderBase.java:132) + app//ch.qos.logback.core.AppenderBase.doAppend(AppenderBase.java:78) + app//ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51) + app//ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:272) + app//ch.qos.logback.classic.Logger.callAppenders(Logger.java:259) + app//ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:426) + app//ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:386) + app//ch.qos.logback.classic.Logger.debug(Logger.java:487) + app//nextflow.trace.WorkflowStatsObserver.onFlowComplete(WorkflowStatsObserver.groovy:48) + app//nextflow.Session.notifyFlowComplete(Session.groovy:1155) + app//nextflow.Session.shutdown0(Session.groovy:749) + app//nextflow.Session.destroy(Session.groovy:694) + app//nextflow.script.ScriptRunner.shutdown(ScriptRunner.groovy:260) + app//nextflow.script.ScriptRunner.execute(ScriptRunner.groovy:146) + app//nextflow.cli.CmdRun.run(CmdRun.groovy:376) + app//nextflow.cli.Launcher.run(Launcher.groovy:503) + app//nextflow.cli.Launcher.main(Launcher.groovy:658) + +Thread[Actor Thread 3,5,main] + java.base@15.0.2/jdk.internal.misc.Unsafe.park(Native Method) + java.base@15.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) + java.base@15.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361) + java.base@15.0.2/java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) + java.base@15.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) + java.base@15.0.2/java.lang.Thread.run(Thread.java:832) + +Mar-23 11:39:36.068 [TaskFinalizer-1] WARN nextflow.util.SimpleAgent - Got an interrupted exception while taking agent result | java.lang.InterruptedException +Mar-23 11:39:36.216 [main] DEBUG nextflow.cache.CacheDB - Closing CacheDB done +Mar-23 11:39:36.270 [main] DEBUG nextflow.script.ScriptRunner - > Execution complete -- Goodbye diff --git a/.nextflow/cache/02e2b57f-ce09-4ca9-9884-4a04f4cc41f5/db/000003.log b/.nextflow/cache/02e2b57f-ce09-4ca9-9884-4a04f4cc41f5/db/000003.log new file mode 100644 index 0000000000000000000000000000000000000000..34ae5a8659a9341fecaf19e4e6e7b821ac55c1d5 GIT binary patch literal 1250 zcmbu9zi-n(6vuNhi@N|LolX&BV-r$E35cOW=?^Jkpk=C1bUi;e*VuRFezeWZ1VTti zY?Tmy0}~P(qWl5SsjQ8t1VTU~q;8z;qyY*HaD&gjcklb|ef-|l7e4O1JA+UmAL)$F zE%qA4hsSrL3-^L+wMWxmUbv{RK{knJG>g1BDM`P@)DSrct-eG%KUrIh_aIm#s@o=? z(X@j!QN0d3K#0S(4kNMUB~nmON=R?T+LjJb(LqWRZH^o?KeyCszH(5Ps6z+M*8SRA zwQ=d0gE)x?4x(M4y*VB%fNqPxM0N?b*|3-@n6;P<-N$dA>^_G~P!8Swz5FW=dE`u` z=XqanP@H+A;v}u>B8q@&Cb+uTj1xUhkqWK}kQ zkL`k0`d}x`;?xZMTl!3M?2xnzKRIZnd9%HAV{T>FdW+chfgZR|5Auc%j7`Aqavz*` ckOX2IB_6o1&!!iJW}9Gd9QVzAw@@s82kmg4DF6Tf literal 0 HcmV?d00001 diff --git a/.nextflow/cache/02e2b57f-ce09-4ca9-9884-4a04f4cc41f5/db/CURRENT b/.nextflow/cache/02e2b57f-ce09-4ca9-9884-4a04f4cc41f5/db/CURRENT new file mode 100644 index 0000000..1a84852 --- /dev/null +++ b/.nextflow/cache/02e2b57f-ce09-4ca9-9884-4a04f4cc41f5/db/CURRENT @@ -0,0 +1 @@ +MANIFEST-000002 diff --git a/.nextflow/cache/02e2b57f-ce09-4ca9-9884-4a04f4cc41f5/db/LOCK b/.nextflow/cache/02e2b57f-ce09-4ca9-9884-4a04f4cc41f5/db/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/.nextflow/cache/02e2b57f-ce09-4ca9-9884-4a04f4cc41f5/db/MANIFEST-000002 b/.nextflow/cache/02e2b57f-ce09-4ca9-9884-4a04f4cc41f5/db/MANIFEST-000002 new file mode 100644 index 0000000000000000000000000000000000000000..bbbc585686bcbcc33686059c69d80b7b4e1291cd GIT binary patch literal 50 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$kRS-TOEg7@3$k8JJmE F7y#sj5K{mE literal 0 HcmV?d00001 diff --git a/.nextflow/cache/02e2b57f-ce09-4ca9-9884-4a04f4cc41f5/index.astonishing_jennings b/.nextflow/cache/02e2b57f-ce09-4ca9-9884-4a04f4cc41f5/index.astonishing_jennings new file mode 100644 index 0000000000000000000000000000000000000000..789320b824ef87135a8d70e1abe332b8bb2d2d32 GIT binary patch literal 17 Ycmeaswq)x2*_m@g|7<2mSz+Mhk+74T3jkc9W)973Z+CGjG24-uKOW6JFTfes&C@LO$$_ z#+&5*)8j8+-;D1*dR{tNe7xnN!Wvm8UaDE-Riz}|I#Ye*AhhxZeLQj4T4%fi!DXV_ z4e|}0c915j(`35{aoE&hBsRQ63JOXI=`9=E;w~yWNNJ+eeFrU67wfgR4r&v%=b)L; zpPhsXdEp>V;+}(O8)&D>gG-wt{%=&Ks)`Oi_kU5ln_tRFs%0uou zV>X}91qa0$8Wl&hE{Z4us+r*GOf63IkRlaa6UO1Y@!93N4Wyibp}YzlB+wLB-Oa| zPc1Fa13mwC@`!{MmEYx3N^SXuX%uyb+#ncS>qtsCEX@dAlTyfYc!99UfV4R9aKu4| z*<>0|9w;2L>~}Dkf~2PY=$@(P4Iw)LGnM!b`PURkezw6pnKYy-r9lFP-F2M;ei>kkX}ZB*DKTf|8;3!S=@q}O6u@n@P64F^Uwq_p{Eu=Kj$g_ne83wGG3n0iRoBQ~<%z5lZN0y2kkWWU+VS9!>xHJj%1 zv0$MnL!;u9)>RRPKs6Iwoo__3o=~KMYr;5uH9mV>2SCah7|I*KK@u&Dg=h^?oaaF$ zi$@mPvuCjxKm&nGEg`y$Z(v_YoTD+(*d=l7=1b*9NvK&ILPyaMq)<#bn@aFf=7srq z4VQgf`Y#B+dj*?Bc?O*((M~x7Hi9Xw<}ej;&*bDdP97sYNaOzv;pFT>1%Hmhg*I#x z?#4EuGF~PuG$1XGJe+WlVRo3t z7mpP7S@t`gOhHmpe{|o}^R|#(kC{q*i`+X3q;e&rK}5KlT2xFZxRdfFVK~-NWmb36 zW}fd=Y8B$oFIB6Tsaem%H_Yz13CJv30VcKmGL_+>B8^+UTGies3X5in` zZ_2Sl(q=la&}!p$yLq#|`pTe1WGY+_>_^}7zVs49z?`z5pS6$#Vp<>?*ssr|{jS*- On1{pO{WMc37JmWkW{i&j literal 0 HcmV?d00001 diff --git a/.nextflow/cache/cfdf2b28-2b73-4c6f-ac03-fc646888e313/db/CURRENT b/.nextflow/cache/cfdf2b28-2b73-4c6f-ac03-fc646888e313/db/CURRENT new file mode 100644 index 0000000..1a84852 --- /dev/null +++ b/.nextflow/cache/cfdf2b28-2b73-4c6f-ac03-fc646888e313/db/CURRENT @@ -0,0 +1 @@ +MANIFEST-000002 diff --git a/.nextflow/cache/cfdf2b28-2b73-4c6f-ac03-fc646888e313/db/LOCK b/.nextflow/cache/cfdf2b28-2b73-4c6f-ac03-fc646888e313/db/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/.nextflow/cache/cfdf2b28-2b73-4c6f-ac03-fc646888e313/db/MANIFEST-000002 b/.nextflow/cache/cfdf2b28-2b73-4c6f-ac03-fc646888e313/db/MANIFEST-000002 new file mode 100644 index 0000000000000000000000000000000000000000..bbbc585686bcbcc33686059c69d80b7b4e1291cd GIT binary patch literal 50 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$kRS-TOEg7@3$k8JJmE F7y#sj5K{mE literal 0 HcmV?d00001 diff --git a/.nextflow/cache/cfdf2b28-2b73-4c6f-ac03-fc646888e313/index.astonishing_wozniak b/.nextflow/cache/cfdf2b28-2b73-4c6f-ac03-fc646888e313/index.astonishing_wozniak new file mode 100644 index 0000000000000000000000000000000000000000..e641565c75a2e29061b6d727b46005175ab7ed5a GIT binary patch literal 17 ZcmdOyJH_{}r`Ly!)=uqZPd+m+002z72uT0{ literal 0 HcmV?d00001 diff --git a/.nextflow/history b/.nextflow/history new file mode 100644 index 0000000..98dc8e3 --- /dev/null +++ b/.nextflow/history @@ -0,0 +1,3 @@ +2025-03-23 11:39:32 4.3s astonishing_wozniak ERR ab2562e4a1267523331e2cb54d077f38 cfdf2b28-2b73-4c6f-ac03-fc646888e313 nextflow run main.nf --disease_name 'Multiple Sclerosis' --population 10 +2025-03-23 11:44:28 5.3s distracted_curran ERR ab2562e4a1267523331e2cb54d077f38 ae62d0f9-dec1-462d-a18a-b4b9ebf0f702 nextflow run main.nf --disease_name 'Multiple Sclerosis' --population 10 +2025-03-23 11:46:20 4.7s astonishing_jennings ERR eefd5403259f10b637287fe5bd92db05 02e2b57f-ce09-4ca9-9884-4a04f4cc41f5 nextflow run main.nf --disease_name 'Multiple Sclerosis' --population 10 diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..6757f0b --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,26 @@ +# Synthea Development Guidelines + +## Build & Test Commands +- Build: `./gradlew build` +- Run: `./run_synthea` or `./gradlew run -Params="['arg1', 'arg2']"` +- Clean: `./gradlew cleanOutput` +- Full test: `./gradlew test` +- Single test: `./gradlew test --tests "org.mitre.synthea.TestClassName"` +- Test coverage: `./gradlew jacocoTestReport` +- Style check: `./gradlew checkstyleMain` +- Create JAR: `./gradlew shadowJar` +- Generate module visualizations: `./gradlew graphviz` + +## Code Style +- Google Java Style (follows checkstyle.xml) +- Indentation: 2 spaces, no tabs +- Line length: max 100 characters +- Package naming: lowercase with dots (e.g., `org.mitre.synthea`) +- Class naming: CamelCase (e.g., `PatientGenerator`) +- Method naming: camelCase (e.g., `generatePatient`) +- Variable naming: camelCase (first char lowercase) +- Avoid star imports +- Braces required for all control structures +- One statement per line +- Empty catch blocks must name exception as "expected" +- Javadoc required for public methods \ No newline at end of file diff --git a/DOCKER_README.md b/DOCKER_README.md new file mode 100644 index 0000000..8c1c534 --- /dev/null +++ b/DOCKER_README.md @@ -0,0 +1,104 @@ +# Synthea Disease Module Generator + +This package provides Docker and Nextflow integrations for Synthea to: +1. Generate disease modules using Claude AI +2. Look up existing disease modules by name +3. Run both functions in a containerized environment + +## Prerequisites + +- Docker +- Nextflow (will be installed automatically if not present) +- Anthropic API key (Claude) + +## Setup + +1. **Clone the repository and navigate to it**: + ```bash + git clone https://github.com/yourusername/synthea-alldiseases.git + cd synthea-alldiseases + ``` + +2. **Set your Anthropic API key**: + + Option 1: Environment variable: + ```bash + export ANTHROPIC_API_KEY=your_api_key_here + ``` + + Option 2: You'll be prompted to enter it when you run the script if it's not set. + +## Usage + +### Running the Module Generator + +Use the provided script: + +```bash +./run_module_generator.sh --disease_name "Disease Name Here" +``` + +Additional options: +``` +--modules_dir Path to modules directory (default: src/main/resources/modules) +--output_dir Output directory for generated modules (default: output) +--help Show help information +``` + +### Examples + +Generate a module for Multiple Sclerosis: +```bash +./run_module_generator.sh --disease_name "Multiple Sclerosis" +``` + +Generate a module and save it to a custom location: +```bash +./run_module_generator.sh --disease_name "Parkinson's Disease" --output_dir ./custom_modules +``` + +### Using Docker Compose (Alternative) + +You can also run the entire environment using Docker Compose: + +```bash +docker-compose up -d +docker-compose exec synthea bash +``` + +Once inside the container: +```bash +./run_module_generator.sh --disease_name "Disease Name" +``` + +## How It Works + +The pipeline follows these steps: + +1. Check if a module already exists for the disease +2. Look up the disease in the disease list for ICD-10 codes and other metadata +3. If the module exists, copy it to the output directory +4. If the module doesn't exist, generate it using Claude AI +5. Save the module to the specified output directory +6. For new modules, also update the modules directory + +## Modifying the Docker Configuration + +If you need to customize the Docker environment: + +1. Edit `Dockerfile` to add dependencies or change the configuration +2. Rebuild the Docker image: + ```bash + docker build -t synthea-module-generator . + ``` + +## Troubleshooting + +- **API Key Issues**: Ensure your ANTHROPIC_API_KEY is set correctly +- **Docker Permission Issues**: You may need to run Docker commands with sudo +- **Memory Issues**: For large modules, you may need to increase Docker's memory allocation +- **Pipeline Errors**: Check execution_report.html for detailed error information + +## License + +This project is licensed under the same license as Synthea. \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b7c61a4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,70 @@ +FROM eclipse-temurin:17-jdk + +WORKDIR /app + +# Install Python and dependencies +RUN apt-get update && apt-get install -y \ + python3 \ + python3-pip \ + python3-venv \ + git \ + && rm -rf /var/lib/apt/lists/* + +# Set up Python virtual environment +RUN python3 -m venv /opt/venv +ENV PATH="/opt/venv/bin:$PATH" + +# Install Anthropic and tqdm in the virtual environment +RUN pip3 install --no-cache-dir "anthropic>=0.8.1,<0.9.0" tqdm==4.66.2 python-dotenv==1.0.1 + +# Clone the official Synthea repository directly into /app +RUN git clone https://github.com/synthetichealth/synthea.git /app-temp && \ + cp -r /app-temp/* /app/ && \ + rm -rf /app-temp + +# Create directory structure for our custom modules and python scripts +RUN mkdir -p /app/module_generator \ + /app/output \ + /app/src/main/resources/modules + +# First build the project with the official modules - this will compile the Java code +RUN ./gradlew build -x test + +# Make the run_synthea script executable +RUN chmod +x /app/run_synthea + +# Copy our Python scripts and module generators +COPY module_generator/*.py /app/module_generator/ +COPY src/main/resources/modules/* /app/src/main/resources/modules/ +COPY src/main/resources/disease/* /app/src/main/resources/ +COPY scripts/* /app/scripts/ + +# Make scripts executable +RUN chmod +x /app/module_generator/*.py /app/scripts/* + +# Verify and fix module JSON structures +RUN python3 /app/scripts/check_condition_structure.py --modules_dir /app/src/main/resources/modules --verbose +# Create a directory for modules that will be mounted from the host +RUN mkdir -p /app/modules + +# Test a simple module generation to ensure Synthea works +RUN ./run_synthea -p 1 -m hypertension + +# Set up a symlink from mounted modules to Synthea modules directory +RUN echo '#!/bin/sh\n\ +# Update modules symlinks\n\ +# Load environment variables\n\ +if [ -f /app/.env ]; then\n\ + export $(grep -v "^#" /app/.env | xargs)\n\ +fi\n\ +\n\ +exec "$@"' > /app/entrypoint.sh && chmod +x /app/entrypoint.sh + +# Set PYTHONPATH to ensure modules can be found +ENV PYTHONPATH="/app" + +# Set entrypoint to use our script +ENTRYPOINT ["/app/entrypoint.sh"] + +# Default command when container runs +CMD ["tail", "-f", "/dev/null"] \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + 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 at + + http://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. diff --git a/README.md b/README.md index 6fafb78..1ee4c43 100644 --- a/README.md +++ b/README.md @@ -1,93 +1,144 @@ -# synthea-alldiseases +# Synthea All Diseases +A comprehensive pipeline for generating Synthea modules and synthetic patient data for any disease. +## Overview -## Getting started +This pipeline leverages Nextflow to orchestrate the generation of disease modules and synthetic patient data using Synthea. It supports: -To make it easy for you to get started with GitLab, here's a list of recommended next steps. +1. Automatic generation of disease modules using Claude AI +2. Synthetic patient generation with configurable parameters using the actual Synthea engine +3. Analysis of generated patient data -Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)! +## Requirements -## Add your files +- Docker +- Docker Compose +- Nextflow (version 20.10.0 or higher) +- Java (required by Nextflow) +- Python 3.6+ (if running scripts directly) -- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files -- [ ] [Add files using the command line](https://docs.gitlab.com/topics/git/add_files/#add-files-to-a-git-repository) or push an existing Git repository with the following command: +## Quick Start -``` -cd existing_repo -git remote add origin https://gitlab.com/omic/next/registry/tools/synthea-alldiseases.git -git branch -M master -git push -uf origin master +The easiest way to get started is to use our convenience scripts: + +```bash +# Set up the environment (builds Docker containers and prepares directories) +./scripts/prepare_environment.sh + +# Run the pipeline for a specific disease +./scripts/run_pipeline.sh --disease "Parkinson's Disease" --patients --population 50 ``` -## Integrate with your tools +## Manual Setup -- [ ] [Set up project integrations](https://gitlab.com/omic/next/registry/tools/synthea-alldiseases/-/settings/integrations) +1. Clone this repository: + ```bash + git clone https://github.com/yourusername/synthea-alldiseases.git + cd synthea-alldiseases + ``` -## Collaborate with your team +2. Create a `.env` file with your API keys (or copy from `.env.example`): + ```bash + cp .env.example .env + # Edit .env with your preferred text editor + ``` -- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/) -- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html) -- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically) -- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/) -- [ ] [Set auto-merge](https://docs.gitlab.com/user/project/merge_requests/auto_merge/) - -## Test and Deploy - -Use the built-in continuous integration in GitLab. - -- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/) -- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/) -- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html) -- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/) -- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html) - -*** - -# Editing this README - -When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template. - -## Suggestions for a good README - -Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information. - -## Name -Choose a self-explaining name for your project. - -## Description -Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors. - -## Badges -On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge. - -## Visuals -Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method. - -## Installation -Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection. +3. Build and start the Docker containers: + ```bash + docker-compose build + docker-compose up -d synthea + ``` ## Usage -Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README. -## Support -Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc. +### Basic Command -## Roadmap -If you have ideas for releases in the future, it is a good idea to list them in the README. +```bash +nextflow run main.nf --disease_name "Disease Name" [options] +``` -## Contributing -State if you are open to contributions and what your requirements are for accepting them. +### Examples -For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self. +Generate a module for Hypertension and create 100 patients: +```bash +nextflow run main.nf --disease_name "Hypertension" --generate_patients true --population 100 --gender 0.6 +``` -You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser. +Generate a module for Parkinson's Disease, create 50 patients, and analyze the data: +```bash +nextflow run main.nf --disease_name "Parkinson's Disease" --generate_patients true --population 50 --analyze_patient_data true +``` -## Authors and acknowledgment -Show your appreciation to those who have contributed to the project. +### Parameters + +| Parameter | Description | Default | +|-----------|-------------|---------| +| `--disease_name` | Name of the disease to model | (required) | +| `--modules_dir` | Directory for modules | `modules` | +| `--output_dir` | Directory for output files | `output` | +| `--generate_patients` | Generate patient data | `false` | +| `--population` | Number of patients to generate | `100` | +| `--gender` | Gender distribution (0-1 for % female) | `0.5` | +| `--min_age` | Minimum patient age | `0` | +| `--max_age` | Maximum patient age | `90` | +| `--seed` | Random seed for reproducibility | (random) | +| `--analyze_patient_data` | Analyze generated data | `false` | +| `--report_format` | Format for analysis report | `html` | +| `--force_generate` | Force regeneration of modules | `false` | +| `--publish_dir` | Directory for published output | `published_output` | + +## Understanding the Data Flow + +1. **Module Generation**: The pipeline first looks for an existing module for the specified disease. If not found, it generates one using the module_generator. +2. **Patient Generation**: If requested, the pipeline uses the actual Synthea engine to generate synthetic patient data based on the disease module. +3. **Analysis**: If requested, the pipeline analyzes the generated patient data and produces reports. + +## Directory Structure + +- `modules/`: Contains generated disease modules +- `module_generator/`: Contains the AI-powered module generation scripts +- `scripts/`: Utility scripts for the pipeline +- `output/`: Generated patient data (temporary) +- `published_output/`: Final output data that persists between runs + - `published_output/modules/`: Contains the generated modules + - `published_output/{disease_name}/`: Contains patient data for each disease + +## Convenience Scripts + +- `scripts/prepare_environment.sh`: Sets up the environment and starts containers +- `scripts/run_pipeline.sh`: Simplified interface for running the pipeline +- `scripts/analyze_patient_data.py`: Analyzes generated patient data +- `scripts/check_condition_structure.py`: Validates module JSON structure + +## Troubleshooting + +If you encounter issues: + +1. Check that Docker containers are running: + ```bash + docker ps | grep synthea + ``` + +2. Ensure your modules directory has the required modules: + ```bash + ls -la modules/ + ``` + +3. Check logs for detailed error messages: + ```bash + tail -f .nextflow.log + ``` + +4. Try rebuilding the Docker containers: + ```bash + docker-compose down + docker-compose build + docker-compose up -d synthea + ``` + +5. If module generation fails, check that your API keys are correctly set in the .env file ## License -For open source projects, say how it is licensed. -## Project status -If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers. +This project uses the same license as Synthea. diff --git a/SYNTHEA_GUIDE.md b/SYNTHEA_GUIDE.md new file mode 100644 index 0000000..38e6a12 --- /dev/null +++ b/SYNTHEA_GUIDE.md @@ -0,0 +1,280 @@ +# Synthea Disease Module Generator Guide + +This guide explains how to use our Nextflow pipeline to generate Synthea disease modules and synthetic patient data. + +## Overview + +Our pipeline provides three main functionalities: + +1. **Disease Module Generation**: Creates Synthea disease modules using Claude AI +2. **Synthetic Patient Generation**: Uses the generated modules to create synthetic patient data with configurable demographic characteristics +3. **Patient Data Analysis**: Generates statistics and reports from the synthetic patient data + +## Prerequisites + +- Nextflow installed +- Synthea installed (with Java 8 or 11 compatibility) +- Anthropic API key (for Claude) + +## Basic Usage + +### 1. Generating Disease Modules + +To generate disease modules for specific diseases: + +```bash +# Generate a module for a single disease +nextflow run synthea_module_generator.nf --disease_name "Seasonal Allergies" + +# Generate modules for multiple diseases +nextflow run synthea_module_generator.nf --disease_name "Asthma,Diabetes,Hypertension" +``` + +### 2. Generating Synthetic Patients + +To generate synthetic patients with the specified diseases: + +```bash +# Generate 100 patients with Asthma (default parameters) +nextflow run synthea_module_generator.nf --disease_name "Asthma" --generate_patients true + +# Generate 1000 patients with specific parameters +nextflow run synthea_module_generator.nf \ + --disease_name "Diabetes" \ + --generate_patients true \ + --population 1000 \ + --gender 0.6 \ + --min_age 40 \ + --max_age 80 \ + --seed 12345 \ + --location "Massachusetts" +``` + +### 3. Analyzing Patient Data + +To generate patients and analyze the resulting data: + +```bash +# Generate patients and produce an HTML analysis report +nextflow run synthea_module_generator.nf \ + --disease_name "Asthma" \ + --generate_patients true \ + --population 500 \ + --analyze_output true \ + --report_format html +``` + +## Available Parameters + +### Module Generation Parameters + +- `--disease_name`: Name of the disease(s) to generate (comma-separated for multiple) +- `--modules_dir`: Directory for modules (default: `src/main/resources/modules`) +- `--batch_size`: Number of modules to generate per batch (default: 1) +- `--max_cost`: Maximum cost for API calls (default: 5.0 USD) +- `--timeout`: Maximum time per batch in seconds (default: 300) + +### Patient Generation Parameters + +#### Basic Patient Parameters +- `--generate_patients`: Set to `true` to generate patients (default: `false`) +- `--population`: Number of patients to generate (default: 100) +- `--gender`: Gender distribution - `M`, `F`, or a decimal for percent female (e.g., 0.7 = 70% female) +- `--min_age`: Minimum patient age (default: 0) +- `--max_age`: Maximum patient age (default: 100) +- `--seed`: Random seed for reproducibility (default: 12345) +- `--location`: Location for patients (default: random) +- `--output_dir`: Output directory for patients (default: `output/synthetic_patients`) + +#### Enhanced Demographic Parameters +- `--race_ethnicity`: Comma-separated list of races with percentages (e.g., `white=0.7,hispanic=0.15,black=0.15`) +- `--socioeconomic`: Socioeconomic status distribution (e.g., `high=0.2,middle=0.5,low=0.3`) +- `--zip_codes`: Comma-separated list of ZIP codes to distribute patients (e.g., `02138,02139,02140`) + +#### Disease Prevalence Parameters +- `--prevalence`: Percentage of population with the disease, between 0.0 and 1.0 (e.g., `0.05` for 5%) +- `--comorbidities`: Whether to include common comorbidities (set to `true` or `false`, default: `false`) + +### Analysis Parameters +- `--analyze_output`: Whether to run analysis on the output (default: `false`) +- `--report_format`: Format for the analysis report (`html`, `csv`, `json`) (default: `html`) + +## Detailed Configuration Guide + +### Controlling Demographics + +You can precisely control the demographic distribution of your patient population: + +#### Gender Distribution + +```bash +# Generate all male patients +nextflow run synthea_module_generator.nf --disease_name "Prostate Cancer" --generate_patients true --gender M + +# Generate all female patients +nextflow run synthea_module_generator.nf --disease_name "Ovarian Cancer" --generate_patients true --gender F + +# Generate 60% female, 40% male +nextflow run synthea_module_generator.nf --disease_name "Diabetes" --generate_patients true --gender 0.6 +``` + +#### Age Distribution + +```bash +# Generate pediatric patients (0-18 years) +nextflow run synthea_module_generator.nf --disease_name "Asthma" --generate_patients true --min_age 0 --max_age 18 + +# Generate elderly patients (65+ years) +nextflow run synthea_module_generator.nf --disease_name "Parkinsons" --generate_patients true --min_age 65 --max_age 90 +``` + +#### Race and Ethnicity + +```bash +# Generate patients with specific racial distribution +nextflow run synthea_module_generator.nf \ + --disease_name "Hypertension" \ + --generate_patients true \ + --race_ethnicity "white=0.6,black=0.2,hispanic=0.15,asian=0.05" +``` + +#### Socioeconomic Status + +```bash +# Generate patients with specific socioeconomic distribution +nextflow run synthea_module_generator.nf \ + --disease_name "Diabetes" \ + --generate_patients true \ + --socioeconomic "high=0.2,middle=0.5,low=0.3" +``` + +### Disease Prevalence Simulation + +You can control the prevalence of diseases in your synthetic population: + +```bash +# Generate 1000 patients with 8% diabetes prevalence (realistic for US population) +nextflow run synthea_module_generator.nf \ + --disease_name "Diabetes" \ + --generate_patients true \ + --population 1000 \ + --prevalence 0.08 + +# Generate patients with comorbidities +nextflow run synthea_module_generator.nf \ + --disease_name "Hypertension" \ + --generate_patients true \ + --prevalence 0.3 \ + --comorbidities true +``` + +### Analysis Reports + +You can generate analysis reports in various formats: + +```bash +# Generate HTML report (default) +nextflow run synthea_module_generator.nf \ + --disease_name "Asthma" \ + --generate_patients true \ + --analyze_output true + +# Generate CSV reports +nextflow run synthea_module_generator.nf \ + --disease_name "Diabetes" \ + --generate_patients true \ + --analyze_output true \ + --report_format csv +``` + +## Example Scenarios + +### Realistic Diabetes Population + +Generate a realistic U.S. diabetes population with proper demographics: + +```bash +nextflow run synthea_module_generator.nf \ + --disease_name "Diabetes" \ + --generate_patients true \ + --population 1000 \ + --prevalence 0.08 \ + --race_ethnicity "white=0.6,black=0.13,hispanic=0.18,asian=0.06,native=0.03" \ + --min_age 18 \ + --max_age 90 \ + --analyze_output true +``` + +### Pediatric Asthma Study Cohort + +Generate a pediatric asthma cohort for a simulated clinical study: + +```bash +nextflow run synthea_module_generator.nf \ + --disease_name "Asthma" \ + --generate_patients true \ + --population 500 \ + --min_age 5 \ + --max_age 17 \ + --gender 0.5 \ + --prevalence 0.08 \ + --analyze_output true \ + --report_format html +``` + +### Multi-Disease Elderly Population + +Generate an elderly population with multiple chronic conditions: + +```bash +nextflow run synthea_module_generator.nf \ + --disease_name "Hypertension,Arthritis,COPD" \ + --generate_patients true \ + --population 1000 \ + --min_age 65 \ + --max_age 90 \ + --comorbidities true \ + --analyze_output true +``` + +## Analysis Report Details + +The analysis report includes: + +1. **Patient Demographics** + - Gender distribution + - Age distribution (by age groups) + - Race/ethnicity distribution + +2. **Disease Statistics** + - Top 10 conditions in the patient population + - Top 10 medications prescribed + +3. **Summary Statistics** + - Total number of patients + - Age ranges (min, max, average) + +## Troubleshooting + +### Compatibility Issues + +If you encounter Java compatibility issues, ensure you're using Java 8 or 11 which are most compatible with Synthea: + +```bash +# Set JAVA_HOME to Java 8 before running +export JAVA_HOME=/path/to/java8 +``` + +### Debugging Module Generation + +If module generation fails: +1. Check the `.error` file in the modules directory +2. Verify your API key is set correctly +3. Try generating a simpler disease first + +### Patient Generation Issues + +If patient generation fails: +1. Check that Synthea is properly installed +2. Verify the modules exist in the modules directory +3. Check that parameter values are within valid ranges \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..46218d9 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,47 @@ +version: '3.8' + +services: + synthea: + build: + context: . + dockerfile: Dockerfile + volumes: + - ./modules:/app/modules:ro # Mount modules directory read-only + - ./output:/app/output # Mount output directory for patient data + - ./.env:/app/.env:ro # Mount environment variables file + environment: + - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} + working_dir: /app + command: tail -f /dev/null # Keep container running + healthcheck: + test: ["CMD", "/app/healthcheck.sh"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 5s + restart: unless-stopped + ports: + - "8080:8080" # Only needed if you want to access the Synthea web interface + + module-generator: + build: + context: . + dockerfile: Dockerfile + volumes: + - ./modules:/app/modules # Mount modules directory for writing + - ./module_generator:/app/module_generator + - ./src:/app/src + - ./scripts:/app/scripts + - ./.env:/app/.env:ro # Mount environment variables file + environment: + - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} + working_dir: /app + command: python3 /app/module_generator/run_module_generator.py --batch-size 5 --max-modules 10 --prioritize + depends_on: + - synthea + profiles: + - generator # This service won't start by default, only when explicitly requested + +volumes: + synthea-output: + driver: local \ No newline at end of file diff --git a/main.nf b/main.nf new file mode 100644 index 0000000..d3ce336 --- /dev/null +++ b/main.nf @@ -0,0 +1,128 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl=2 + +/* + * Synthea Disease Module Generator Pipeline + * + * A Nextflow pipeline to generate and manage Synthea disease modules + */ + +// Load API key from .env file if it exists +def envFile = file('.env') +if (envFile.exists()) { + envFile.eachLine { line -> + def (key, value) = line.tokenize('=') + if (key && value && key.trim() == 'ANTHROPIC_API_KEY') { + params.anthropic_api_key = value.trim() + } + } +} + +// Default parameters +params.disease_name = null // Disease name to generate patients for +params.output_dir = "output" // Output directory +params.modules_dir = "src/main/resources/modules" // Directory for module files +params.population = 100 // Number of patients to generate +params.gender = 0.5 // Decimal representing proportion female (0.0-1.0) +params.min_age = 0 // Minimum age of generated patients +params.max_age = 90 // Maximum age of generated patients +params.seed = null // Random seed for reproducibility +params.help = false // Show help message + +// Show help message +if (params.help) { + log.info """ + Synthea Patient Generator + ======================== + Usage: nextflow run main.nf --disease_name "Disease Name" + + Required Arguments: + --disease_name Disease name to generate patients for + + Optional Arguments: + --modules_dir Module directory (default: modules) + --output_dir Output directory (default: output) + --population Number of patients (default: 100) + --gender Gender ratio - female proportion 0.0-1.0 (default: 0.5) + --min_age Minimum age (default: 0) + --max_age Maximum age (default: 90) + --seed Random seed (default: random) + """ + exit 0 +} + +// Validate required parameters +if (!params.disease_name && !params.help) { + error "Disease name is required. Please specify with --disease_name" +} + +// Process to check if module exists and generate it if needed +process checkAndGetModule { + container 'synthea-module-generator' + publishDir "${params.modules_dir}", mode: 'copy' + + input: + val diseaseName + + output: + path "*.json", emit: module_file + + script: + def moduleFilename = diseaseName.toLowerCase().replaceAll(' ', '_') + '.json' + def fullPath = "/app/src/main/resources/modules/${moduleFilename}" + """ + echo "Looking for module at ${fullPath}" + if [ -f "${fullPath}" ]; then + echo "Module exists, copying..." + cp "${fullPath}" . + else + echo "Module not found, generating..." + python3 /app/module_generator/module_generator.py --disease "${diseaseName}" --output "${moduleFilename}" + if [ -f "${moduleFilename}" ]; then + echo "Successfully generated module" + else + echo "Error: Failed to generate module" + exit 1 + fi + fi + """ +} + +// Process to generate synthetic patients +process generatePatients { + container 'synthea-module-generator' + publishDir "${params.output_dir}/${diseaseName.toLowerCase().replaceAll(' ', '_')}", mode: 'copy' + + input: + val diseaseName + path moduleFile + + output: + path "m/*", optional: true + path "f/*", optional: true + + script: + def moduleBasename = diseaseName.toLowerCase().replaceAll(' ', '_') + def genderArg = params.gender < 0.5 ? "M" : (params.gender > 0.5 ? "F" : "B") + def seedValue = params.seed ?: new Random().nextInt(1000000) + """ + # Copy module and run Synthea + cp "${moduleFile}" /app/modules/ + cd /app && ./run_synthea -p ${params.population} -g ${genderArg} -m ${moduleBasename} -a ${params.min_age}-${params.max_age} -s ${seedValue} + + # Organize output by gender + mkdir -p m f + find /app/output/fhir -type f -name "*.json" ! -name "*hospital*" ! -name "*practitioner*" | xargs grep -l '"gender":"male"' | xargs -I{} cp {} m/ + find /app/output/fhir -type f -name "*.json" ! -name "*hospital*" ! -name "*practitioner*" | xargs grep -l '"gender":"female"' | xargs -I{} cp {} f/ + """ +} + +// Define workflow +workflow { + // First check if the module exists + checkAndGetModule(params.disease_name) + + // Then generate patients + generatePatients(params.disease_name, checkAndGetModule.out.module_file) +} \ No newline at end of file diff --git a/module_generator/README_module_generator.md b/module_generator/README_module_generator.md new file mode 100644 index 0000000..ebe8146 --- /dev/null +++ b/module_generator/README_module_generator.md @@ -0,0 +1,83 @@ +# Synthea Module Generator + +This tool automates the creation of disease modules for Synthea based on `disease_list.json`. It uses Claude 3.7 to generate appropriate JSON structures for each disease, leveraging existing modules as templates. + +## Prerequisites + +1. Python 3.6+ +2. Required Python packages: + ``` + pip install anthropic tqdm + ``` +3. Anthropic API key: + ``` + export ANTHROPIC_API_KEY=your_api_key + ``` + +## Usage + +```bash +# Generate 10 modules (default limit) +python module_generator.py + +# Generate modules only for specific ICD-10 code categories +python module_generator.py --diseases I20,I21,I22 + +# Generate up to 50 modules +python module_generator.py --limit 50 + +# Prioritize high-prevalence diseases (recommended) +python module_generator.py --prioritize + +# Combine options for best results +python module_generator.py --diseases I,J,K --limit 100 --prioritize +``` + +## How It Works + +1. The script loads the complete disease list from `disease_list.json` +2. It filters out diseases that already have modules +3. If `--prioritize` is enabled, it: + - Estimates the prevalence of each disease using a heuristic scoring system + - Prioritizes diseases based on common conditions, ICD-10 chapter, and name specificity + - Selects the highest-scoring diseases first +4. For each selected disease: + - Finds the most relevant existing module as a template (based on ICD-10 code) + - Sends a prompt to Claude with the disease details and template + - Validates the generated JSON + - Saves the new module to the appropriate location + - Updates the progress tracking file + +## Configuration + +- `CLAUDE_MODEL`: Set the Claude model to use (default: `claude-3-7-sonnet-20240229`) +- `SYNTHEA_ROOT`: Path to the Synthea root directory (auto-detected) + +## Cost Estimation + +The script uses Claude 3.7 Sonnet, which costs approximately: +- Input: $3 per million tokens +- Output: $15 per million tokens + +A typical generation will use: +- ~10K input tokens (template + prompt) +- ~5K output tokens (generated module) + +At this rate, generating 1,000 modules would cost approximately: +- Input: 10M tokens = $30 +- Output: 5M tokens = $75 +- Total: ~$105 + +## Logging + +The script logs all activity to both the console and to `module_generation.log` in the current directory. + +## Notes + +- The script includes a 1-second delay between API calls to avoid rate limits +- Generated modules should be manually reviewed for quality and accuracy +- You may want to run the script incrementally (e.g., by disease category) to review results +- The script optimizes API usage by: + - Checking if a module already exists before generating (by filename or ICD-10 code) + - Only using Claude when a new module genuinely needs to be created + - Prioritizing high-prevalence diseases when using the `--prioritize` flag \ No newline at end of file diff --git a/module_generator/module_generator.py b/module_generator/module_generator.py new file mode 100755 index 0000000..75ebc16 --- /dev/null +++ b/module_generator/module_generator.py @@ -0,0 +1,732 @@ +#!/usr/bin/env python3 +""" +Module Generator for Synthea + +This script automates the creation of new disease modules for Synthea based on +disease_list.json. It uses Claude 3.7 to generate appropriate JSON structures +for each disease, leveraging existing modules as templates. + +Usage: +python module_generator.py [--diseases DISEASES] [--limit LIMIT] + +Arguments: + --diseases DISEASES Comma-separated list of specific diseases to process (ICD-10 codes) + --limit LIMIT Maximum number of modules to generate (default: 10) + +Example: +python src/main/python/run_module_generator.py --batch-size 3 --max-cost 10.0 --prioritize +""" + +import os +import sys +import json +import glob +import re +import argparse +import time +import anthropic +import logging +from tqdm import tqdm +from typing import Dict, List, Any, Optional, Tuple +from dotenv import load_dotenv + +# Load environment variables from .env file +load_dotenv() + +# Configure logging +def setup_logging(log_file_path=None): + """Configure logging to both file and console""" + if log_file_path is None: + log_file_path = "module_generation.log" + + handlers = [ + logging.FileHandler(log_file_path), + logging.StreamHandler(sys.stdout) + ] + + logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + handlers=handlers + ) + + return logging.getLogger(__name__) + +logger = logging.getLogger(__name__) + +# Constants +SYNTHEA_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "../")) +DISEASE_LIST_PATH = os.path.join(SYNTHEA_ROOT, "src/main/resources/disease_list.json") + +# Allow overriding MODULES_DIR with environment variable (for Docker) +MODULES_DIR = os.path.join(SYNTHEA_ROOT, "src/main/resources/modules") +if not os.path.exists(MODULES_DIR): + os.makedirs(MODULES_DIR, exist_ok=True) + logger.info(f"Created modules directory at {MODULES_DIR}") + +PROGRESS_FILE = os.path.join(SYNTHEA_ROOT, "src/main/resources/disease_modules_progress.md") +TEMPLATES_DIR = os.path.join(SYNTHEA_ROOT, "src/main/resources/templates/modules") + +# Check if directories exist, create if they don't +if not os.path.exists(TEMPLATES_DIR): + os.makedirs(TEMPLATES_DIR, exist_ok=True) + logger.info(f"Created templates directory at {TEMPLATES_DIR}") + +# Check if progress file exists, create if it doesn't +if not os.path.exists(PROGRESS_FILE): + with open(PROGRESS_FILE, 'w') as f: + f.write("# Disease Module Progress\n\n") + f.write("## Completed Modules\n\n") + f.write("## Planned Modules\n\n") + logger.info(f"Created progress file at {PROGRESS_FILE}") + +# Initialize Claude client (API key should be stored in ANTHROPIC_API_KEY environment variable) +api_key = os.getenv('ANTHROPIC_API_KEY') +if not api_key: + logger.error("ANTHROPIC_API_KEY environment variable is not set") + sys.exit(1) + +# Create client without the proxies parameter which causes issues with older versions +client = anthropic.Client(api_key=api_key) +CLAUDE_MODEL = "claude-3-7-sonnet-20250219" # Updated to the current model version +MAX_TOKENS = 4096 # Maximum allowed tokens for Claude 3.7 Sonnet + +def validate_condition_format(module_json): + """Validate that conditions in the module follow Synthea's expected format""" + try: + module_dict = json.loads(module_json) if isinstance(module_json, str) else module_json + + # Function to recursively check objects for improper condition structure + def check_conditions(obj): + issues = [] + + if isinstance(obj, dict): + # Check if this is a condition object with nested condition_type + if "condition" in obj and isinstance(obj["condition"], dict): + condition = obj["condition"] + # Look for the improper nested structure + if "condition_type" in condition and isinstance(condition["condition_type"], dict): + issues.append("Found nested condition_type in a condition object") + + # Recursively check all dictionary values + for key, value in obj.items(): + child_issues = check_conditions(value) + issues.extend(child_issues) + + elif isinstance(obj, list): + # Recursively check all list items + for item in obj: + child_issues = check_conditions(item) + issues.extend(child_issues) + + return issues + + # Check the entire module + issues = check_conditions(module_dict) + return len(issues) == 0, issues + + except Exception as e: + return False, [f"Validation error: {str(e)}"] + +def load_disease_list() -> Dict[str, Dict[str, str]]: + """Load the disease list from JSON file""" + try: + with open(DISEASE_LIST_PATH, 'r') as f: + diseases_list = json.load(f) + + # Convert list to dict using disease_name as the key + diseases_dict = {} + for disease in diseases_list: + disease_name = disease.get('disease_name', '') + if disease_name: + # Create a new disease info dict with additional info + disease_info = { + 'icd_10': disease.get('id', ''), + 'snomed': disease.get('snomed', ''), + 'ICD-10_name': disease.get('ICD-10_name', '') + } + diseases_dict[disease_name] = disease_info + + return diseases_dict + except Exception as e: + logger.error(f"Error loading disease list: {e}") + sys.exit(1) + +def get_existing_modules() -> List[str]: + """Get list of existing module names (without extension)""" + module_files = glob.glob(os.path.join(MODULES_DIR, "*.json")) + return [os.path.splitext(os.path.basename(f))[0].lower() for f in module_files] + +def find_most_relevant_module(disease_info: Dict[str, str], existing_modules: List[str]) -> str: + """Find the most relevant existing module to use as a template""" + # First check if an icd code match exists + icd_code_prefix = disease_info.get("icd_10", "")[:3] # Get first 3 chars of ICD-10 code + + # Look for modules that might relate to the same body system + related_modules = [] + for module_path in glob.glob(os.path.join(MODULES_DIR, "*.json")): + with open(module_path, 'r') as f: + try: + content = f.read() + # Check if this module contains the same ICD-10 prefix + if f'"{icd_code_prefix}' in content: + related_modules.append(module_path) + except: + pass + + if related_modules: + # Return the most complex related module (largest file size as a heuristic) + return max(related_modules, key=os.path.getsize) + + # If no ICD match, return a default template based on disease type + if icd_code_prefix.startswith('I'): # Circulatory system + return os.path.join(MODULES_DIR, "hypertensive_renal_disease.json") + elif icd_code_prefix.startswith('J'): # Respiratory system + return os.path.join(MODULES_DIR, "asthma.json") + elif icd_code_prefix.startswith('K'): # Digestive system + return os.path.join(MODULES_DIR, "appendicitis.json") + else: + # Default to a simple template + return os.path.join(TEMPLATES_DIR, "prevalence.json") + +def generate_module_with_claude( + disease_name: str, + disease_info: Dict[str, str], + template_path: str +) -> Tuple[str, int, int]: + """Use Claude to generate a new module based on the template""" + + # Load the template module + logger.info(f"Loading template module from {os.path.basename(template_path)}") + with open(template_path, 'r') as f: + template_content = f.read() + + # Get template module name + template_name = os.path.splitext(os.path.basename(template_path))[0] + + # Construct the prompt + prompt = f"""You are a medical expert and software developer tasked with creating disease modules for Synthea, an open-source synthetic patient generator. + +TASK: Create a valid JSON module for the disease: "{disease_name}" (ICD-10 code: {disease_info.get('icd_10', 'Unknown')}). + +CRITICAL: Your response MUST ONLY contain valid, parseable JSON that starts with {{ and ends with }}. No explanations, text, markdown formatting, or code blocks. + +Disease Information: +- Name: {disease_name} +- ICD-10 Code: {disease_info.get('icd_10', 'Unknown')} +- SNOMED-CT Code: {disease_info.get('snomed', 'Unknown')} + +I'm providing an example module structure based on {template_name}.json as a reference: + +```json +{template_content} +``` + +Technical Requirements (MUST follow ALL of these): +1. JSON Format: + - Use valid JSON syntax with no errors + - No trailing commas + - All property names in double quotes + - Always add a "gmf_version": 2 field at the top level + - Check that all brackets and braces are properly matched + +2. Module Structure: + - Include "name" field with {disease_name} + - Include "remarks" array with at least 3 items + - Include "states" object with complete set of disease states + - Add at least 2-3 reference URLs in the "remarks" section + - Every state needs a unique name and valid type (like "Initial", "Terminal", etc.) + - All transitions must be valid (direct_transition, distributed_transition, etc.) + +3. Medical Content: + - Include accurate medical codes (SNOMED-CT, ICD-10, LOINC, RxNorm) + - Model realistic disease prevalence based on age, gender, race + - Include relevant symptoms, diagnostic criteria, treatments + - Only include states that make clinical sense for this specific disease + +4. CRITICAL CONDITION STRUCTURE REQUIREMENTS: + - In conditional statements, the 'condition_type' MUST be a top-level key within the condition object + - INCORRECT: "condition": {"condition_type": {"nested": "value"}, "name": "SomeState"} + - CORRECT: "condition": {"condition_type": "PriorState", "name": "SomeState"} + - Common condition types: "Age", "Gender", "Race", "Attribute", "And", "Or", "Not", "PriorState", "Active Condition" + - For PriorState conditions, use: {"condition_type": "PriorState", "name": "StateName"} + - For attribute checks, use: {"condition_type": "Attribute", "attribute": "attr_name", "operator": "==", "value": true} + +IMPORTANT REMINDER: Respond with ONLY valid JSON, not explanations. The entire response should be a single JSON object that can be directly parsed. +""" + + # Request generation from Claude using older API version 0.8.1 + logger.info(f"Sending request to Claude API for '{disease_name}'") + try: + # Use the Anthropic API with older syntax + response = client.completion( + model=CLAUDE_MODEL, + max_tokens_to_sample=MAX_TOKENS, + temperature=0.1, # Lower temperature for more consistent, predicable output + prompt=f"\n\nHuman: {prompt}\n\nAssistant: ", + stream=False + ) + + # For v0.8.1, the response is a completion object with a completion property + content = response.completion + + # Remove any markdown code block indicators + content = re.sub(r'^```json\s*', '', content) + content = re.sub(r'^```\s*', '', content) + content = re.sub(r'```$', '', content) + + # Log content type for debugging + logger.debug(f"Content type: {type(content)}") + + # Ensure content is string + if not isinstance(content, str): + content = content.decode('utf-8') if hasattr(content, 'decode') else str(content) + + # Estimate token usage - we don't get this directly with streaming + # Rough estimate: 1 token ≈ 4 characters + input_token_estimate = len(prompt) // 4 + output_token_estimate = len(content) // 4 + + # Log estimated token usage + logger.info(f"API call for '{disease_name}' - Estimated input tokens: {input_token_estimate}, " + f"Estimated output tokens: {output_token_estimate}") + + # Validate and format JSON + try: + # Parse and format with Python's built-in json module + parsed = json.loads(content) + + # Validate condition structure + valid, issues = validate_condition_format(parsed) + + if not valid: + logger.warning(f"Generated module for {disease_name} has condition structure issues: {issues}") + logger.warning("Requesting regeneration with corrected instructions...") + + # Add more specific instructions for the retry + retry_prompt = prompt + "\n\nPLEASE FIX THESE ISSUES: " + ", ".join(issues) + retry_prompt += "\n\nREMINDER: All condition objects must have 'condition_type' as a top-level key, NOT nested." + + # Call Claude again with the refined prompt using older API + logger.info(f"Retrying generation for '{disease_name}' with specific instructions about issues") + retry_response = client.completion( + model=CLAUDE_MODEL, + max_tokens_to_sample=MAX_TOKENS, + temperature=0.1, + prompt=f"\n\nHuman: {retry_prompt}\n\nAssistant: ", + stream=False + ) + + # For v0.8.1, the response is a completion object with a completion property + retry_content = retry_response.completion + + # Remove any markdown code block indicators + retry_content = re.sub(r'^```json\s*', '', retry_content) + retry_content = re.sub(r'^```\s*', '', retry_content) + retry_content = re.sub(r'```$', '', retry_content) + + # Try to parse the retry response + try: + retry_parsed = json.loads(retry_content) + + # Validate the retry response + retry_valid, retry_issues = validate_condition_format(retry_parsed) + + if not retry_valid and args.strict: + logger.error(f"Failed to fix condition structure issues after retry: {retry_issues}") + raise ValueError(f"Module format validation failed: {retry_issues}") + elif not retry_valid: + logger.warning(f"Retry still has issues, but proceeding due to non-strict mode: {retry_issues}") + # Use the retry response even with issues + formatted_json = json.dumps(retry_parsed, indent=2) + else: + # Successfully fixed the issues + logger.info(f"Successfully fixed condition structure issues for '{disease_name}'") + formatted_json = json.dumps(retry_parsed, indent=2) + + except json.JSONDecodeError as e: + logger.error(f"Retry response is still not valid JSON: {e}") + if args.strict: + raise ValueError(f"Failed to generate valid JSON after retry: {e}") + else: + # Fall back to the original response in non-strict mode + logger.warning("Using original response despite issues (non-strict mode)") + formatted_json = json.dumps(parsed, indent=2) + else: + # Original response was valid + formatted_json = json.dumps(parsed, indent=2) + + logger.info(f"Successfully generated valid JSON for '{disease_name}'") + return formatted_json, input_token_estimate, output_token_estimate + except json.JSONDecodeError as e: + logger.error(f"Generated content is not valid JSON: {e}") + logger.debug(f"Generated content: {content[:500]}...") # Log first 500 chars for debugging + + # Try different extraction methods for the JSON + extraction_attempts = [ + # Method 1: Find content between JSON code block markers + re.search(r'```json([\s\S]*?)```', content), + # Method 2: Find content between code block markers + re.search(r'```([\s\S]*?)```', content), + # Method 3: Find content between curly braces + re.search(r'({[\s\S]*})', content), + # Method 4: Find anything that looks like JSON starting with { + re.search(r'({.*})', content, re.DOTALL) + ] + + for attempt in extraction_attempts: + if attempt: + try: + extracted_content = attempt.group(1).strip() + # Add missing braces and fix incomplete JSON structures + # First clean up the JSON to remove any trailing commas before closing brackets + extracted_content = re.sub(r',\s*}', '}', extracted_content) + extracted_content = re.sub(r',\s*]', ']', extracted_content) + + # Count opening and closing braces to detect missing ones + open_braces = extracted_content.count('{') + close_braces = extracted_content.count('}') + open_brackets = extracted_content.count('[') + close_brackets = extracted_content.count(']') + + # Add missing braces or brackets if needed + if open_braces > close_braces: + extracted_content += '}' * (open_braces - close_braces) + logger.info(f"Added {open_braces - close_braces} missing closing braces") + elif close_braces > open_braces: + # Remove excess closing braces + for _ in range(close_braces - open_braces): + extracted_content = extracted_content.rstrip().rstrip('}') + '}' + logger.info(f"Removed {close_braces - open_braces} excess closing braces") + + if open_brackets > close_brackets: + extracted_content += ']' * (open_brackets - close_brackets) + logger.info(f"Added {open_brackets - close_brackets} missing closing brackets") + elif close_brackets > open_brackets: + # Remove excess closing brackets + for _ in range(close_brackets - open_brackets): + last_bracket = extracted_content.rfind(']') + if last_bracket >= 0: + extracted_content = extracted_content[:last_bracket] + extracted_content[last_bracket+1:] + logger.info(f"Removed {close_brackets - open_brackets} excess closing brackets") + + # Parse and format with Python's json module + parsed = json.loads(extracted_content) + # Format with Python's json module + formatted_json = json.dumps(parsed, indent=2) + logger.info(f"Successfully extracted valid JSON for '{disease_name}' after extraction attempt") + return formatted_json, input_token_estimate, output_token_estimate + except json.JSONDecodeError: + continue + + # If all attempts fail, try manual repair of common issues + try: + # Remove any triple backticks + cleaned = re.sub(r'```.*?```', '', content, flags=re.DOTALL) + # Remove any backticks + cleaned = re.sub(r'`', '', cleaned) + # Ensure proper quotes (replace single quotes with double quotes where needed) + cleaned = re.sub(r"'([^']*?)':", r'"\1":', cleaned) + # Fix trailing commas before closing brackets + cleaned = re.sub(r',\s*}', '}', cleaned) + cleaned = re.sub(r',\s*]', ']', cleaned) + + # Find the module content between { } + module_match = re.search(r'({[\s\S]*})', cleaned) + if module_match: + module_json = module_match.group(1) + # Parse and format with Python's json module + parsed = json.loads(module_json) + # Format with Python's json module + formatted_json = json.dumps(parsed, indent=2) + logger.info(f"Successfully repaired and extracted JSON for '{disease_name}'") + return formatted_json, input_token_estimate, output_token_estimate + except Exception as repair_error: + logger.error(f"Failed to repair JSON: {repair_error}") + + # Log a sample of the problematic content for debugging + debug_sample = content[:min(500, len(content))] + "..." if len(content) > 500 else content + logger.error(f"Could not extract valid JSON from Claude's response for '{disease_name}'") + logger.error(f"Response sample (first 500 chars): {debug_sample}") + logger.error(f"Full content length: {len(content)} characters") + raise ValueError("Could not extract valid JSON from Claude's response") + + except Exception as e: + logger.error(f"Error generating module with Claude: {e}") + raise + +def update_progress_file(disease_name: str, icd_code: str) -> None: + """Update the progress tracking file with the newly created module""" + try: + with open(PROGRESS_FILE, 'r') as f: + content = f.readlines() + + # Find the "Completed Modules" section and add the new module + for i, line in enumerate(content): + if line.startswith('## Completed Modules'): + # Count existing modules to determine next number + count = 0 + for j in range(i+1, len(content)): + if content[j].strip() and content[j][0].isdigit(): + count += 1 + elif content[j].startswith('##'): + break + + # Insert new module entry + content.insert(i+1+count, f"{count+1}. {disease_name} ({icd_code}) - Generated by module_generator.py\n") + break + + with open(PROGRESS_FILE, 'w') as f: + f.writelines(content) + + except Exception as e: + logger.error(f"Error updating progress file: {e}") + +def normalize_filename(disease_name: str) -> str: + """Convert disease name to a valid filename""" + # Replace spaces and special characters with underscores + filename = re.sub(r'[^a-zA-Z0-9]', '_', disease_name.lower()) + # Remove consecutive underscores + filename = re.sub(r'_+', '_', filename) + # Remove leading/trailing underscores + filename = filename.strip('_') + return filename + +def get_existing_module_path(disease_name: str, disease_info: Dict[str, str]) -> Optional[str]: + """Check if a module for this disease already exists and return its path""" + # Method 1: Check by normalized filename + normalized_name = normalize_filename(disease_name) + candidate_path = os.path.join(MODULES_DIR, f"{normalized_name}.json") + if os.path.exists(candidate_path): + return candidate_path + + # Method 2: Check by ICD-10 code in existing modules + icd_code = disease_info.get('icd_10', '') + if icd_code: + for module_path in glob.glob(os.path.join(MODULES_DIR, "*.json")): + with open(module_path, 'r') as f: + try: + content = f.read() + # Check for exact ICD-10 code match + if f'"code": "{icd_code}"' in content: + return module_path + except: + pass + + # No existing module found + return None + +def estimate_disease_prevalence(disease_name: str, icd_code: str) -> float: + """Estimate disease prevalence for prioritization (higher = more prevalent)""" + # This is a simple heuristic - you could replace with actual prevalence data if available + + # Some common conditions tend to have higher prevalence + common_conditions = [ + "hypertension", "diabetes", "arthritis", "asthma", "depression", + "anxiety", "obesity", "cancer", "heart", "copd", "stroke", "pneumonia", + "bronchitis", "influenza", "infection", "pain", "fracture" + ] + + score = 1.0 + + # Check if it contains common condition keywords + name_lower = disease_name.lower() + for condition in common_conditions: + if condition in name_lower: + score += 2.0 + break + + # ICD-10 chapter weighting (approximate prevalence by chapter) + if icd_code.startswith('I'): # Circulatory system + score += 5.0 + elif icd_code.startswith('J'): # Respiratory system + score += 4.0 + elif icd_code.startswith('K'): # Digestive system + score += 3.5 + elif icd_code.startswith('M'): # Musculoskeletal system + score += 3.0 + elif icd_code.startswith('E'): # Endocrine, nutritional and metabolic diseases + score += 4.0 + elif icd_code.startswith('F'): # Mental and behavioral disorders + score += 3.5 + + # Prefer shorter, more specific disease names (likely more common conditions) + if len(disease_name.split()) <= 3: + score += 1.0 + + return score + +def main(): + parser = argparse.ArgumentParser(description='Generate Synthea disease modules') + parser.add_argument('--diseases', type=str, help='Comma-separated list of ICD-10 codes to process') + parser.add_argument('--limit', type=int, default=10, help='Maximum number of modules to generate') + parser.add_argument('--prioritize', action='store_true', help='Prioritize high-prevalence diseases') + parser.add_argument('--log-file', type=str, help='Path to log file for token usage tracking') + parser.add_argument('--strict', action='store_true', + help='Fail immediately on validation errors instead of trying to fix them') + # Add support for direct disease generation + parser.add_argument('--disease', type=str, help='Single disease name to generate') + parser.add_argument('--output', type=str, help='Output path for the generated module') + args = parser.parse_args() + + # Setup logging with custom log file if specified + global logger + if args.log_file: + logger = setup_logging(args.log_file) + else: + logger = setup_logging() + + # Check if we're operating in direct mode (single disease) + if args.disease and args.output: + try: + logger.info(f"Generating module for single disease: {args.disease}") + + # Create a simple disease info dictionary + disease_info = { + 'icd_10': '', # Empty since we don't have this info + 'snomed': '', # Empty since we don't have this info + 'ICD-10_name': args.disease + } + + # Try to find a relevant template + templates = glob.glob(os.path.join(TEMPLATES_DIR, "*.json")) + if templates: + template_path = templates[0] # Use the first template found + else: + # Use a simple default template if none found + logger.warning("No template found, using a minimal default") + template_path = os.path.join(MODULES_DIR, "appendicitis.json") + if not os.path.exists(template_path): + raise ValueError(f"Cannot find any suitable template for generation") + + # Generate the module + module_content, _, _ = generate_module_with_claude(args.disease, disease_info, template_path) + + # Save the module to the specified output path + with open(args.output, 'w') as f: + f.write(module_content) + + logger.info(f"Successfully generated module for {args.disease}") + print(f"Successfully generated module for {args.disease}") + return + + except Exception as e: + logger.error(f"Error generating single disease module: {e}") + print(f"Error: {e}") + sys.exit(1) + + # Load disease list + all_diseases = load_disease_list() + logger.info(f"Loaded {len(all_diseases)} diseases from disease_list.json") + + # Get existing modules + existing_modules = get_existing_modules() + logger.info(f"Found {len(existing_modules)} existing modules") + + # Filter diseases to process + if args.diseases: + disease_codes = [code.strip() for code in args.diseases.split(',')] + to_process = {name: info for name, info in all_diseases.items() + if info.get('icd_10', '').split('.')[0] in disease_codes} + logger.info(f"Filtered to {len(to_process)} diseases matching specified codes") + else: + # Process all diseases up to the limit + to_process = all_diseases + + # Only include diseases that don't already have modules by filename + # (We'll do a more thorough check later with get_existing_module_path) + diseases_to_create = {} + candidate_diseases = [] + + for name, info in to_process.items(): + normalized_name = normalize_filename(name) + if normalized_name not in existing_modules: + if args.prioritize: + # Add to candidates for prioritization + icd_code = info.get('icd_10', '').split('.')[0] + prevalence_score = estimate_disease_prevalence(name, icd_code) + candidate_diseases.append((name, info, prevalence_score)) + else: + diseases_to_create[name] = info + + # Respect the limit for non-prioritized mode + if len(diseases_to_create) >= args.limit: + break + + # If prioritizing, sort by estimated prevalence and take top N + if args.prioritize and candidate_diseases: + logger.info("Prioritizing diseases by estimated prevalence") + candidate_diseases.sort(key=lambda x: x[2], reverse=True) + + # Log top candidates for transparency + logger.info("Top candidates by estimated prevalence:") + for i, (name, info, score) in enumerate(candidate_diseases[:min(10, len(candidate_diseases))]): + logger.info(f" {i+1}. {name} (ICD-10: {info.get('icd_10', 'Unknown')}) - Score: {score:.2f}") + + # Select top N diseases + for name, info, _ in candidate_diseases[:args.limit]: + diseases_to_create[name] = info + + logger.info(f"Will generate modules for {len(diseases_to_create)} diseases") + + # Generate modules + for disease_name, disease_info in tqdm(diseases_to_create.items(), desc="Generating modules"): + try: + # First check if module already exists - no need to use LLM if it does + existing_module_path = get_existing_module_path(disease_name, disease_info) + + if existing_module_path: + # Module already exists, just copy it + logger.info(f"Module for {disease_name} already exists at {existing_module_path}") + + # Read existing module + with open(existing_module_path, 'r') as f: + module_content = f.read() + + # Save to normalized filename if different from existing path + filename = normalize_filename(disease_name) + ".json" + output_path = os.path.join(MODULES_DIR, filename) + + if output_path != existing_module_path: + with open(output_path, 'w') as f: + f.write(module_content) + logger.info(f"Copied existing module to {output_path}") + else: + logger.info(f"Existing module already has correct filename") + + # Update progress file + icd_code = disease_info.get('icd_10', 'Unknown') + update_progress_file(disease_name, icd_code) + + else: + # No existing module, generate with Claude + # Find best template + template_path = find_most_relevant_module(disease_info, existing_modules) + logger.info(f"Using {os.path.basename(template_path)} as template for {disease_name}") + + # Generate module + module_content, input_tokens, output_tokens = generate_module_with_claude(disease_name, disease_info, template_path) + + # Save module + filename = normalize_filename(disease_name) + ".json" + output_path = os.path.join(MODULES_DIR, filename) + + with open(output_path, 'w') as f: + f.write(module_content) + + logger.info(f"Successfully created module for {disease_name}") + + # Update progress file + icd_code = disease_info.get('icd_10', 'Unknown') + update_progress_file(disease_name, icd_code) + + # Sleep to avoid hitting API rate limits + time.sleep(1) + + except Exception as e: + logger.error(f"Failed to generate module for {disease_name}: {e}") + + logger.info("Module generation complete") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/module_generator/run_module_generator.py b/module_generator/run_module_generator.py new file mode 100755 index 0000000..a7574d3 --- /dev/null +++ b/module_generator/run_module_generator.py @@ -0,0 +1,478 @@ +#!/usr/bin/env python3 +""" +Disease Module Generator Loop for Synthea + +This script runs the module_generator.py script in a loop to generate +modules for diseases in disease_list.json that don't have modules yet. + +Usage: +python run_module_generator.py [--batch-size BATCH_SIZE] [--max-modules MAX_MODULES] + +Arguments: + --batch-size BATCH_SIZE Number of modules to generate in each batch (default: 5) + --max-modules MAX_MODULES Maximum total number of modules to generate (default: no limit) + --prioritize Prioritize high-prevalence diseases first + --max-cost MAX_COST Maximum cost in USD to spend (default: no limit) + --strict Fail immediately on module validation errors instead of trying to fix them +""" + +import os +import sys +import json +import subprocess +import argparse +import time +import logging +import anthropic +import re +from pathlib import Path + +# Configure logging +logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + handlers=[ + logging.FileHandler("module_generation_runner.log"), + logging.StreamHandler(sys.stdout) + ] +) +logger = logging.getLogger(__name__) + +# Constants +SYNTHEA_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../..")) +# Support both Docker (/app) and local development paths +if os.path.exists("/app/src/main/resources/disease_list.json"): + DISEASE_LIST_PATH = "/app/src/main/resources/disease_list.json" + MODULES_DIR = "/app/src/main/resources/modules" + LOG_FILE_PATH = "/app/module_generation_runner.log" +else: + DISEASE_LIST_PATH = os.path.join(SYNTHEA_ROOT, "src/main/resources/disease_list.json") + MODULES_DIR = os.path.join(SYNTHEA_ROOT, "src/main/resources/modules") + LOG_FILE_PATH = os.path.join(SYNTHEA_ROOT, "module_generation_runner.log") + +MODULE_GENERATOR_PATH = os.path.join(os.path.dirname(__file__), "module_generator.py") + +# API costs - Claude 3.7 Sonnet (as of March 2025) +# These are approximate costs based on current pricing +CLAUDE_INPUT_COST_PER_1K_TOKENS = 0.003 # $0.003 per 1K input tokens +CLAUDE_OUTPUT_COST_PER_1K_TOKENS = 0.015 # $0.015 per 1K output tokens + +# Initialize cost tracking +total_input_tokens = 0 +total_output_tokens = 0 +total_cost_usd = 0.0 + +def count_existing_modules(): + """Count the number of modules already created""" + module_files = list(Path(MODULES_DIR).glob("*.json")) + return len(module_files) + +def count_remaining_diseases(): + """Count how many diseases in disease_list.json don't have modules yet""" + # Load the disease list + with open(DISEASE_LIST_PATH, 'r') as f: + diseases = json.load(f) + + # Get existing module names + existing_modules = set() + for module_file in Path(MODULES_DIR).glob("*.json"): + module_name = module_file.stem.lower() + existing_modules.add(module_name) + + # Count diseases that don't have modules + remaining = 0 + for disease in diseases: + # Extract disease name from the disease object + disease_name = disease['disease_name'] + # Convert disease name to module filename format + module_name = disease_name.lower() + module_name = ''.join(c if c.isalnum() else '_' for c in module_name) + module_name = module_name.strip('_') + # Replace consecutive underscores with a single one + while '__' in module_name: + module_name = module_name.replace('__', '_') + + if module_name not in existing_modules: + remaining += 1 + + return remaining, len(diseases) + +def parse_api_usage(log_content): + """Parse API usage stats from log content""" + global total_input_tokens, total_output_tokens, total_cost_usd + + # Look for token counts in the log - using the updated pattern from the logs + # This matches the format: "Estimated input tokens: 7031, Estimated output tokens: 3225" + input_token_matches = re.findall(r'Estimated input tokens: (\d+)', log_content) + output_token_matches = re.findall(r'Estimated output tokens: (\d+)', log_content) + + batch_input_tokens = sum(int(count) for count in input_token_matches) + batch_output_tokens = sum(int(count) for count in output_token_matches) + + # Calculate cost for this batch + batch_input_cost = batch_input_tokens * CLAUDE_INPUT_COST_PER_1K_TOKENS / 1000 + batch_output_cost = batch_output_tokens * CLAUDE_OUTPUT_COST_PER_1K_TOKENS / 1000 + batch_total_cost = batch_input_cost + batch_output_cost + + # Update totals + total_input_tokens += batch_input_tokens + total_output_tokens += batch_output_tokens + total_cost_usd += batch_total_cost + + # Log the token counts found for debugging + logger.info(f"Found token counts in log - Input: {input_token_matches}, Output: {output_token_matches}") + + return batch_input_tokens, batch_output_tokens, batch_total_cost + +def run_module_generator(batch_size=5, prioritize=False, timeout=600, strict=False): + """Run the module generator script with the specified batch size""" + try: + # Create a unique log file for this batch to capture token usage + batch_log_file = f"module_generator_batch_{int(time.time())}.log" + + cmd = [ + sys.executable, + MODULE_GENERATOR_PATH, + '--limit', str(batch_size), + '--log-file', batch_log_file + ] + + if prioritize: + cmd.append('--prioritize') + + if strict: + cmd.append('--strict') + + logger.info(f"Running command: {' '.join(cmd)}") + print(f"\n[INFO] Starting batch, generating up to {batch_size} modules...") + + # Use timeout to prevent indefinite hanging + try: + result = subprocess.run(cmd, capture_output=True, text=True, check=True, timeout=timeout) + success = True + except subprocess.TimeoutExpired: + logger.error(f"Module generator timed out after {timeout} seconds") + print(f"\n[ERROR] Process timed out after {timeout} seconds!") + success = False + result = None + + # Process output only if the command completed successfully + if success and result: + # Log output + if result.stdout: + for line in result.stdout.splitlines(): + logger.info(f"Generator output: {line}") + + # Print progress-related lines directly to console + if "Generated module for" in line or "modules complete" in line: + print(f"[PROGRESS] {line}") + + # Check if any errors + if result.stderr: + for line in result.stderr.splitlines(): + if "Error" in line or "Exception" in line: + logger.error(f"Generator error: {line}") + print(f"[ERROR] {line}") + else: + logger.info(f"Generator message: {line}") + + # Parse token usage from the log file + if os.path.exists(batch_log_file): + with open(batch_log_file, 'r') as f: + log_content = f.read() + + # Parse usage statistics + batch_input_tokens, batch_output_tokens, batch_cost = parse_api_usage(log_content) + + # Log usage for this batch + logger.info(f"Batch API Usage - Input tokens: {batch_input_tokens:,}, " + f"Output tokens: {batch_output_tokens:,}, Cost: ${batch_cost:.4f}") + logger.info(f"Total API Usage - Input tokens: {total_input_tokens:,}, " + f"Output tokens: {total_output_tokens:,}, Total Cost: ${total_cost_usd:.4f}") + + # Print to console in a prominent way + print("\n" + "="*80) + print(f"BATCH API USAGE - Cost: ${batch_cost:.4f}") + print(f"TOTAL API USAGE - Cost: ${total_cost_usd:.4f}") + print("="*80 + "\n") + + # Clean up batch log file + try: + os.remove(batch_log_file) + except: + pass + + # Count created files to verify success + if os.path.exists(batch_log_file): + with open(batch_log_file, 'r') as f: + log_content = f.read() + modules_created = log_content.count("Successfully created module for") + if modules_created > 0: + print(f"[SUCCESS] Created {modules_created} module(s) in this batch") + + # Clean up even if processing didn't complete + try: + os.remove(batch_log_file) + except: + pass + + return success + except subprocess.CalledProcessError as e: + logger.error(f"Module generator failed with exit code {e.returncode}") + logger.error(f"Error output: {e.stderr}") + print(f"[ERROR] Module generator process failed with exit code {e.returncode}") + return False + except Exception as e: + logger.error(f"Failed to run module generator: {e}") + print(f"[ERROR] Failed to run module generator: {e}") + return False + +def validate_and_fix_existing_modules(strict=False): + """Check all existing modules for JSON validity and fix if needed""" + print("Validating existing modules...") + + if strict: + print("Running in strict mode - modules will NOT be fixed automatically") + + fixed_count = 0 + module_files = list(Path(MODULES_DIR).glob("*.json")) + + # First, show a summary of all modules + print(f"Found {len(module_files)} module files") + + invalid_modules = [] + + # Check all modules for validity + for module_path in module_files: + try: + with open(module_path, 'r') as f: + content = f.read() + + # Try to parse the JSON + try: + json.loads(content) + # If it parses successfully, all good + continue + except json.JSONDecodeError as e: + invalid_modules.append((module_path, e)) + print(f"⚠️ Invalid JSON found in {module_path.name}: {e}") + except Exception as e: + print(f"Error processing {module_path}: {e}") + + if not invalid_modules: + print("✅ All modules are valid JSON") + return 0 + + print(f"\nFound {len(invalid_modules)} invalid module(s) to fix") + + # Now fix the invalid modules + for module_path, error in invalid_modules: + try: + print(f"\nAttempting to fix {module_path.name}...") + + if strict: + print(f"❌ Module {module_path.name} has validation issues that must be fixed manually") + continue # Skip fixing in strict mode + + with open(module_path, 'r') as f: + content = f.read() + + # Try to fix common issues + fixed_content = content + + # Fix trailing commas + fixed_content = re.sub(r',\s*}', '}', fixed_content) + fixed_content = re.sub(r',\s*]', ']', fixed_content) + + # Check for incomplete states section + if '"states": {' in fixed_content: + # Make sure it has a proper closing brace + states_match = re.search(r'"states":\s*{(.*)}(?=\s*,|\s*})', fixed_content, re.DOTALL) + if not states_match and '"states": {' in fixed_content: + print(" - Module appears to have an incomplete states section") + + # Find last complete state definition + last_state_end = None + state_pattern = re.compile(r'("[^"]+"\s*:\s*{[^{]*?}),?', re.DOTALL) + for match in state_pattern.finditer(fixed_content, fixed_content.find('"states": {') + 12): + last_state_end = match.end() + + if last_state_end: + # Add closing brace after the last valid state + fixed_content = fixed_content[:last_state_end] + '\n }\n }' + fixed_content[last_state_end:] + print(" - Added closing braces for states section") + + # Fix missing/unbalanced braces + open_braces = fixed_content.count('{') + close_braces = fixed_content.count('}') + + if open_braces > close_braces: + fixed_content += '}' * (open_braces - close_braces) + print(f" - Added {open_braces - close_braces} missing closing braces") + elif close_braces > open_braces: + for _ in range(close_braces - open_braces): + fixed_content = fixed_content.rstrip().rstrip('}') + '}' + print(f" - Removed {close_braces - open_braces} excess closing braces") + + # Try to parse the fixed content + try: + parsed_json = json.loads(fixed_content) + + # Check if it has all required elements + if 'name' not in parsed_json: + print(" - Warning: Module missing 'name' field") + if 'states' not in parsed_json: + print(" - Warning: Module missing 'states' field") + if 'gmf_version' not in parsed_json: + print(" - Adding missing gmf_version field") + # Make sure we have a proper JSON object + if fixed_content.rstrip().endswith('}'): + # Add the gmf_version before the final brace + fixed_content = fixed_content.rstrip().rstrip('}') + ',\n "gmf_version": 2\n}' + + # Backup the original file + backup_path = str(module_path) + '.bak' + import shutil + shutil.copy2(str(module_path), backup_path) + + # Write the fixed content + with open(module_path, 'w') as f: + f.write(fixed_content) + + print(f"✅ Fixed module {module_path.name}") + fixed_count += 1 + except json.JSONDecodeError as e: + print(f"❌ Could not fix module {module_path.name}: {e}") + + except Exception as e: + print(f"Error processing {module_path}: {e}") + + print(f"\nValidation complete. Fixed {fixed_count} of {len(invalid_modules)} invalid modules.") + return fixed_count + +def main(): + parser = argparse.ArgumentParser(description='Run the module generator in a loop') + parser.add_argument('--batch-size', type=int, default=5, + help='Number of modules to generate in each batch (default: 5)') + parser.add_argument('--max-modules', type=int, default=None, + help='Maximum total number of modules to generate (default: no limit)') + parser.add_argument('--max-batches', type=int, default=None, + help='Maximum number of batches to run (default: no limit)') + parser.add_argument('--prioritize', action='store_true', + help='Prioritize high-prevalence diseases first') + parser.add_argument('--max-cost', type=float, default=None, + help='Maximum cost in USD to spend (default: no limit)') + parser.add_argument('--timeout', type=int, default=600, + help='Timeout in seconds for each batch process (default: 600)') + parser.add_argument('--fix-modules', action='store_true', + help='Check and fix existing modules for JSON validity') + parser.add_argument('--strict', action='store_true', + help='Fail immediately on module validation errors instead of trying to fix them') + args = parser.parse_args() + + # If fix-modules flag is set, validate and fix existing modules + if args.fix_modules: + validate_and_fix_existing_modules(strict=args.strict) + return + + # Initial counts + initial_modules = count_existing_modules() + initial_remaining, total_diseases = count_remaining_diseases() + + logger.info(f"Starting module generation loop") + logger.info(f"Currently have {initial_modules} modules") + logger.info(f"Remaining diseases without modules: {initial_remaining} of {total_diseases}") + + # Set up counters + modules_created = 0 + batch_count = 0 + + # Loop until we've hit our maximum or there are no more diseases to process + while True: + # Break if we've reached the maximum modules to generate + if args.max_modules is not None and modules_created >= args.max_modules: + logger.info(f"Reached maximum modules limit ({args.max_modules})") + print(f"\n{'!'*80}") + print(f"MODULE LIMIT REACHED: {modules_created} >= {args.max_modules}") + print(f"{'!'*80}\n") + break + + # Break if we've reached the maximum batches + if args.max_batches is not None and batch_count >= args.max_batches: + logger.info(f"Reached maximum batch limit ({args.max_batches})") + print(f"\n{'!'*80}") + print(f"BATCH LIMIT REACHED: {batch_count} >= {args.max_batches}") + print(f"{'!'*80}\n") + break + + # Break if we've reached the maximum cost + if args.max_cost is not None and total_cost_usd >= args.max_cost: + logger.info(f"Reached maximum cost limit (${args.max_cost:.2f})") + print(f"\n{'!'*80}") + print(f"COST LIMIT REACHED: ${total_cost_usd:.4f} >= ${args.max_cost:.2f}") + print(f"{'!'*80}\n") + break + + # Count how many modules we need to generate in this batch + if args.max_modules is not None: + # Adjust batch size if we're near the maximum + current_batch_size = min(args.batch_size, args.max_modules - modules_created) + else: + current_batch_size = args.batch_size + + if current_batch_size <= 0: + logger.info("No more modules to generate in this batch") + print("[INFO] No more modules to generate (reached limit)") + break + + # Run the generator for this batch + batch_count += 1 + logger.info(f"Starting batch {batch_count} (generating up to {current_batch_size} modules)") + + # Run the generator + success = run_module_generator( + batch_size=current_batch_size, + prioritize=args.prioritize, + timeout=args.timeout, + strict=args.strict + ) + + if not success: + logger.error(f"Batch {batch_count} failed, stopping") + print(f"[ERROR] Batch {batch_count} failed, stopping") + break + + # Count how many modules we've created so far + new_module_count = count_existing_modules() + modules_created = new_module_count - initial_modules + + # Count remaining diseases + remaining_diseases, _ = count_remaining_diseases() + + logger.info(f"Completed batch {batch_count}") + logger.info(f"Total modules created: {modules_created}") + logger.info(f"Remaining diseases without modules: {remaining_diseases}") + + print(f"[STATUS] Batch {batch_count} complete") + print(f"[STATUS] Total modules created: {modules_created}") + print(f"[STATUS] Remaining diseases: {remaining_diseases} of {total_diseases}") + + # Break if no diseases left + if remaining_diseases <= 0: + logger.info("All diseases have modules now, finished!") + print("[SUCCESS] All diseases have modules now, finished!") + break + + # Sleep briefly between batches to avoid system overload + time.sleep(2) + + # Final status + logger.info(f"Module generation complete!") + logger.info(f"Started with {initial_modules} modules, now have {count_existing_modules()}") + logger.info(f"Created {modules_created} new modules in {batch_count} batches") + + remaining, total = count_remaining_diseases() + logger.info(f"Remaining diseases without modules: {remaining} of {total}") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/nextflow.config b/nextflow.config new file mode 100644 index 0000000..819f8db --- /dev/null +++ b/nextflow.config @@ -0,0 +1,51 @@ +// Nextflow configuration file +manifest { + description = 'Synthea Module Generator Pipeline' +} + +// Load parameters from params.json +def paramsJson = new File("$baseDir/params.json").text +def paramsData = new groovy.json.JsonSlurper().parseText(paramsJson) + +// Merge with defaults +params { + disease_name = paramsData.disease_name + modules_dir = paramsData.modules_dir ?: "/Users/richman/workspace/synthea-alldiseases/modules" + output_dir = paramsData.output_dir ?: "output" + population = paramsData.population ?: 100 + gender = paramsData.gender ?: 0.5 + min_age = paramsData.min_age ?: 0 + max_age = paramsData.max_age ?: 90 + seed = paramsData.seed + generate_patients = paramsData.generate_patients ?: true + publish_dir = paramsData.publish_dir ?: "published_output" + + // Additional params + max_cost = 5.0 + timeout = 300 + anthropic_api_key = null + batch_size = 1 + help = false +} + +docker { + enabled = true + runOptions = "-v $baseDir/$params.modules_dir:/app/src/main/resources/modules -v $baseDir/src/main/python:/app/src/main/python -v $baseDir/src/main/resources:/app/src/main/resources -v $baseDir/.env:/app/.env" +} + +process { + container = 'synthea-module-generator' + containerOptions = "-e MODULES_DIR=/app/src/main/resources/modules -e PYTHONPATH=/app -e ANTHROPIC_API_KEY=${params.anthropic_api_key}" +} + +trace { + enabled = true + overwrite = true + file = "$baseDir/trace.txt" +} + +profiles { + standard { + process.executor = 'local' + } +} diff --git a/params.json b/params.json new file mode 100644 index 0000000..eeaaaf3 --- /dev/null +++ b/params.json @@ -0,0 +1,14 @@ +{ + "disease_name": "Parkinson's Disease", + "modules_dir": "modules", + "output_dir": "output", + "generate_patients": true, + "population": 10, + "gender": 0.5, + "min_age": 0, + "max_age": 90, + "analyze_patient_data": false, + "report_format": "html", + "force_generate": false, + "publish_dir": "published_output" +} diff --git a/scripts/.nextflow.log b/scripts/.nextflow.log new file mode 100644 index 0000000..4b2dcaf --- /dev/null +++ b/scripts/.nextflow.log @@ -0,0 +1,14 @@ +Mar-20 17:36:01.178 [main] DEBUG nextflow.cli.Launcher - $> nextflow run main.nf --disease_name Migraine --generate_patients true --population 100 --gender 0.6 --modules_dir modules +Mar-20 17:36:01.428 [main] DEBUG nextflow.cli.CmdRun - N E X T F L O W ~ version 24.10.5 +Mar-20 17:36:01.492 [main] DEBUG nextflow.plugin.PluginsFacade - Setting up plugin manager > mode=prod; embedded=false; plugins-dir=/Users/richman/.nextflow/plugins; core-plugins: nf-amazon@2.9.2,nf-azure@1.10.2,nf-cloudcache@0.4.2,nf-codecommit@0.2.2,nf-console@1.1.4,nf-google@1.15.4,nf-tower@1.9.3,nf-wave@1.7.4 +Mar-20 17:36:01.528 [main] INFO o.pf4j.DefaultPluginStatusProvider - Enabled plugins: [] +Mar-20 17:36:01.529 [main] INFO o.pf4j.DefaultPluginStatusProvider - Disabled plugins: [] +Mar-20 17:36:01.538 [main] INFO org.pf4j.DefaultPluginManager - PF4J version 3.12.0 in 'deployment' mode +Mar-20 17:36:01.559 [main] INFO org.pf4j.AbstractPluginManager - No plugins +Mar-20 17:36:01.590 [main] DEBUG nextflow.scm.ProviderConfig - Using SCM config path: /Users/richman/.nextflow/scm +Mar-20 17:36:01.624 [main] DEBUG nextflow.cli.Launcher - Operation aborted +nextflow.exception.AbortOperationException: Cannot find script file: main.nf + at nextflow.cli.CmdRun.getScriptFile(CmdRun.groovy:536) + at nextflow.cli.CmdRun.run(CmdRun.groovy:325) + at nextflow.cli.Launcher.run(Launcher.groovy:503) + at nextflow.cli.Launcher.main(Launcher.groovy:658) diff --git a/scripts/README.md b/scripts/README.md new file mode 100644 index 0000000..b9b1eb3 --- /dev/null +++ b/scripts/README.md @@ -0,0 +1,12 @@ +# Utility Scripts + +This directory contains utility scripts for working with Synthea modules: + +- `analyze_patient_data.py` - Analyzes patient data generated by Synthea +- `check_json.py` - Validates JSON structure of module files +- `validate_module.py` - Performs comprehensive validation of modules +- `test_module_exists.py` - Checks if a module exists for a given disease +- `run_module.py` - Script to run a specific module with Synthea +- Other utility scripts for module generation and testing + +These scripts complement the core module generator scripts found in the `module_generator/` directory. diff --git a/scripts/analyze_patient_data.py b/scripts/analyze_patient_data.py new file mode 100644 index 0000000..890fc08 --- /dev/null +++ b/scripts/analyze_patient_data.py @@ -0,0 +1,304 @@ +#!/usr/bin/env python3 +import os +import sys +import json +import glob +import pandas as pd +from collections import Counter +from datetime import datetime + +def analyze_patient_data(input_dir, output_dir, report_format='html', disease_name=None): + """ + Analyze Synthea-generated patient data and create reports. + + Args: + input_dir: Directory containing patient JSON files + output_dir: Directory to save analysis outputs + report_format: Format for the report (html or csv) + disease_name: Optional name of the disease being simulated + """ + # Ensure output directory exists + os.makedirs(output_dir, exist_ok=True) + + # Find all patient JSON files + patients_files = glob.glob(f"{input_dir}/**/*.json", recursive=True) + print(f"Found {len(patients_files)} patient records for analysis") + + if len(patients_files) == 0: + print("No patient files found to analyze.") + with open(os.path.join(output_dir, 'patient_stats.json'), 'w') as f: + json.dump({"error": "No patient files found to analyze"}, f) + return + + # Initialize data collectors + patient_data = [] + condition_counts = Counter() + medication_counts = Counter() + demographics = {'gender': Counter(), 'age': [], 'race': Counter(), 'ethnicity': Counter()} + + # Process each patient file + for patient_file in patients_files: + try: + with open(patient_file, 'r') as f: + data = json.load(f) + + # Basic patient info + if 'gender' in data: + demographics['gender'][data['gender']] += 1 + + if 'birthDate' in data: + # Calculate age based on birth year + birth_year = int(data['birthDate'][:4]) + current_year = datetime.now().year + age = current_year - birth_year + demographics['age'].append(age) + + # Process race and ethnicity extensions + if 'extension' in data: + for ext in data['extension']: + if 'url' in ext and 'extension' in ext: + if ext['url'].endswith('us-core-race'): + for race_ext in ext['extension']: + if 'valueCoding' in race_ext: + race = race_ext['valueCoding'].get('display', 'Unknown') + demographics['race'][race] += 1 + elif ext['url'].endswith('us-core-ethnicity'): + for eth_ext in ext['extension']: + if 'valueCoding' in eth_ext: + ethnicity = eth_ext['valueCoding'].get('display', 'Unknown') + demographics['ethnicity'][ethnicity] += 1 + + # Collect conditions and medications + if 'entry' in data: + for entry in data['entry']: + if 'resource' in entry: + resource = entry['resource'] + + # Check for conditions + if resource.get('resourceType') == 'Condition': + if 'code' in resource and 'coding' in resource['code']: + for code in resource['code']['coding']: + if 'display' in code: + condition_counts[code['display']] += 1 + + # Check for medications + if resource.get('resourceType') == 'MedicationRequest': + if 'medicationCodeableConcept' in resource and 'coding' in resource['medicationCodeableConcept']: + for code in resource['medicationCodeableConcept']['coding']: + if 'display' in code: + medication_counts[code['display']] += 1 + + except Exception as e: + print(f"Error processing {patient_file}: {e}") + + # Prepare statistics + stats = { + 'total_patients': len(patients_files), + 'disease_name': disease_name, + 'demographics': { + 'gender_distribution': {gender: count for gender, count in demographics['gender'].items()}, + 'age_distribution': { + 'min': min(demographics['age']) if demographics['age'] else None, + 'max': max(demographics['age']) if demographics['age'] else None, + 'average': sum(demographics['age']) / len(demographics['age']) if demographics['age'] else None, + 'distribution': {'0-18': 0, '19-44': 0, '45-64': 0, '65+': 0} + }, + 'race_distribution': {race: count for race, count in demographics['race'].items()}, + 'ethnicity_distribution': {ethnicity: count for ethnicity, count in demographics['ethnicity'].items()} + }, + 'disease_stats': { + 'top_conditions': dict(condition_counts.most_common(15)), + 'top_medications': dict(medication_counts.most_common(15)) + } + } + + # Calculate age distribution + for age in demographics['age']: + if age <= 18: + stats['demographics']['age_distribution']['distribution']['0-18'] += 1 + elif age <= 44: + stats['demographics']['age_distribution']['distribution']['19-44'] += 1 + elif age <= 64: + stats['demographics']['age_distribution']['distribution']['45-64'] += 1 + else: + stats['demographics']['age_distribution']['distribution']['65+'] += 1 + + # Save statistics to file + with open(os.path.join(output_dir, 'patient_stats.json'), 'w') as f: + json.dump(stats, f, indent=2) + + # Generate report in requested format + if report_format == 'html': + generate_html_report(stats, output_dir) + elif report_format == 'csv': + generate_csv_reports(stats, output_dir) + else: + print(f"Unsupported report format: {report_format}. Only stats JSON file created.") + + print(f"Analysis complete. Reports generated in {os.path.abspath(output_dir)}") + +def generate_html_report(stats, output_dir): + """Generate an HTML report from the patient statistics.""" + + disease_title = f" - {stats['disease_name']}" if stats['disease_name'] else "" + + html = f''' + + + Synthea Patient Analysis{disease_title} + + + +
+

Synthea Patient Analysis{disease_title}

+

Total patients: {stats['total_patients']}

+ +

Demographics

+

Gender Distribution

+ + +''' + + for gender, count in stats['demographics']['gender_distribution'].items(): + percentage = (count / stats['total_patients']) * 100 if stats['total_patients'] > 0 else 0 + html += f"\n" + + html += ''' +
GenderCountPercentage
{gender}{count}{percentage:.1f}%
+ +

Age Distribution

+ + +''' + + for age_group, count in stats['demographics']['age_distribution']['distribution'].items(): + percentage = (count / stats['total_patients']) * 100 if stats['total_patients'] > 0 else 0 + html += f"\n" + + html += f''' +
Age GroupCountPercentage
{age_group}{count}{percentage:.1f}%
+

Min Age: {stats['demographics']['age_distribution']['min']}

+

Max Age: {stats['demographics']['age_distribution']['max']}

+

Average Age: {stats['demographics']['age_distribution']['average']:.1f}

+ +

Race Distribution

+ + +''' + + for race, count in stats['demographics']['race_distribution'].items(): + percentage = (count / stats['total_patients']) * 100 if stats['total_patients'] > 0 else 0 + html += f"\n" + + html += ''' +
RaceCountPercentage
{race}{count}{percentage:.1f}%
+ +

Ethnicity Distribution

+ + +''' + + for ethnicity, count in stats['demographics']['ethnicity_distribution'].items(): + percentage = (count / stats['total_patients']) * 100 if stats['total_patients'] > 0 else 0 + html += f"\n" + + html += ''' +
EthnicityCountPercentage
{ethnicity}{count}{percentage:.1f}%
+ +

Disease Statistics

+

Top Conditions

+ + +''' + + for condition, count in stats['disease_stats']['top_conditions'].items(): + percentage = (count / stats['total_patients']) * 100 if stats['total_patients'] > 0 else 0 + html += f"\n" + + html += ''' +
ConditionCountPercentage
{condition}{count}{percentage:.1f}%
+ +

Top Medications

+ + +''' + + for medication, count in stats['disease_stats']['top_medications'].items(): + percentage = (count / stats['total_patients']) * 100 if stats['total_patients'] > 0 else 0 + html += f"\n" + + html += ''' +
MedicationCountPercentage of Patients
{medication}{count}{percentage:.1f}%
+
+ +''' + + with open(os.path.join(output_dir, 'patient_analysis.html'), 'w') as f: + f.write(html) + +def generate_csv_reports(stats, output_dir): + """Generate CSV reports from the patient statistics.""" + import csv + + # Demographics CSV + with open(os.path.join(output_dir, 'demographics.csv'), 'w', newline='') as f: + writer = csv.writer(f) + writer.writerow(['Category', 'Type', 'Count', 'Percentage']) + + # Gender + for gender, count in stats['demographics']['gender_distribution'].items(): + percentage = (count / stats['total_patients']) * 100 if stats['total_patients'] > 0 else 0 + writer.writerow(['Gender', gender, count, f"{percentage:.1f}%"]) + + # Age + for age_group, count in stats['demographics']['age_distribution']['distribution'].items(): + percentage = (count / stats['total_patients']) * 100 if stats['total_patients'] > 0 else 0 + writer.writerow(['Age', age_group, count, f"{percentage:.1f}%"]) + + # Race + for race, count in stats['demographics']['race_distribution'].items(): + percentage = (count / stats['total_patients']) * 100 if stats['total_patients'] > 0 else 0 + writer.writerow(['Race', race, count, f"{percentage:.1f}%"]) + + # Ethnicity + for ethnicity, count in stats['demographics']['ethnicity_distribution'].items(): + percentage = (count / stats['total_patients']) * 100 if stats['total_patients'] > 0 else 0 + writer.writerow(['Ethnicity', ethnicity, count, f"{percentage:.1f}%"]) + + # Conditions CSV + with open(os.path.join(output_dir, 'conditions.csv'), 'w', newline='') as f: + writer = csv.writer(f) + writer.writerow(['Condition', 'Count', 'Percentage']) + for condition, count in stats['disease_stats']['top_conditions'].items(): + percentage = (count / stats['total_patients']) * 100 if stats['total_patients'] > 0 else 0 + writer.writerow([condition, count, f"{percentage:.1f}%"]) + + # Medications CSV + with open(os.path.join(output_dir, 'medications.csv'), 'w', newline='') as f: + writer = csv.writer(f) + writer.writerow(['Medication', 'Count', 'Percentage']) + for medication, count in stats['disease_stats']['top_medications'].items(): + percentage = (count / stats['total_patients']) * 100 if stats['total_patients'] > 0 else 0 + writer.writerow([medication, count, f"{percentage:.1f}%"]) + +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser(description="Analyze Synthea patient data and generate reports") + parser.add_argument("--input_dir", required=True, help="Directory containing patient JSON files") + parser.add_argument("--output_dir", default="analysis_output", help="Directory to save analysis outputs") + parser.add_argument("--report_format", default="html", choices=["html", "csv"], help="Format for the reports") + parser.add_argument("--disease_name", help="Name of the disease being simulated") + + args = parser.parse_args() + + analyze_patient_data(args.input_dir, args.output_dir, args.report_format, args.disease_name) \ No newline at end of file diff --git a/scripts/check_condition_structure.py b/scripts/check_condition_structure.py new file mode 100755 index 0000000..4d61aaf --- /dev/null +++ b/scripts/check_condition_structure.py @@ -0,0 +1,223 @@ +#!/usr/bin/env python3 +""" +Synthea Module Condition Structure Validator + +This script scans all existing Synthea disease modules to check if any violate +the expected condition structure format, particularly looking for nested condition_type +objects that can cause errors during simulation. + +Usage: +python check_condition_structure.py [--modules_dir DIRECTORY] [--verbose] + +Arguments: + --modules_dir DIRECTORY Path to the modules directory (default: src/main/resources/modules) + --verbose Enable verbose output with detailed issue descriptions + --fix Attempt to automatically fix simple structure issues (experimental) + +Example: +python check_condition_structure.py --modules_dir ../modules --verbose +""" + +import os +import sys +import json +import glob +import argparse +import logging +from typing import Dict, List, Any, Tuple + +# Configure logging +logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + handlers=[ + logging.StreamHandler(sys.stdout) + ] +) +logger = logging.getLogger(__name__) + +def validate_condition_format(module_json): + """Validate that conditions in the module follow Synthea's expected format""" + try: + module_dict = json.loads(module_json) if isinstance(module_json, str) else module_json + + # Function to recursively check objects for improper condition structure + def check_conditions(obj, path=[]): + issues = [] + + if isinstance(obj, dict): + # Check if this is a condition object with nested condition_type + if "condition" in obj and isinstance(obj["condition"], dict): + condition = obj["condition"] + current_path = path + ["condition"] + + # Look for the improper nested structure + if "condition_type" in condition and isinstance(condition["condition_type"], dict): + issue_path = '.'.join(current_path + ["condition_type"]) + issues.append(f"Found nested condition_type in a condition object at path: {issue_path}") + + # Recursively check all dictionary values + for key, value in obj.items(): + child_issues = check_conditions(value, path + [key]) + issues.extend(child_issues) + + elif isinstance(obj, list): + # Recursively check all list items + for i, item in enumerate(obj): + child_issues = check_conditions(item, path + [f"[{i}]"]) + issues.extend(child_issues) + + return issues + + # Check the entire module + issues = check_conditions(module_dict) + return len(issues) == 0, issues + + except Exception as e: + return False, [f"Validation error: {str(e)}"] + +def fix_condition_structure(module_json): + """Attempt to fix common condition structure issues""" + try: + # Parse the module if it's a string + module_dict = json.loads(module_json) if isinstance(module_json, str) else module_json + fixed = False + + def fix_conditions(obj): + nonlocal fixed + + if isinstance(obj, dict): + # Check if this is a condition object with nested condition_type + if "condition" in obj and isinstance(obj["condition"], dict): + condition = obj["condition"] + + # Fix the improper nested structure: + if "condition_type" in condition and isinstance(condition["condition_type"], dict): + # Replace nested dict with its first key as a string + first_key = list(condition["condition_type"].keys())[0] + condition["condition_type"] = first_key + fixed = True + + # Recursively fix all dictionary values + for key, value in list(obj.items()): + if isinstance(value, (dict, list)): + fix_conditions(value) + + elif isinstance(obj, list): + # Recursively fix all list items + for item in obj: + if isinstance(item, (dict, list)): + fix_conditions(item) + + # Fix the entire module + fix_conditions(module_dict) + + # Return the fixed module and whether changes were made + return module_dict, fixed + + except Exception as e: + logger.error(f"Error fixing module structure: {e}") + return module_json, False + +def main(): + parser = argparse.ArgumentParser(description='Validate condition structure in Synthea modules') + parser.add_argument('--modules_dir', type=str, default='src/main/resources/modules', + help='Path to the modules directory') + parser.add_argument('--verbose', action='store_true', + help='Enable verbose output with detailed issue descriptions') + parser.add_argument('--fix', action='store_true', + help='Attempt to automatically fix simple structure issues (experimental)') + args = parser.parse_args() + + # Check if modules directory exists + if not os.path.exists(args.modules_dir): + logger.error(f"Modules directory not found: {args.modules_dir}") + sys.exit(1) + + # Get all module files + module_files = glob.glob(os.path.join(args.modules_dir, "*.json")) + logger.info(f"Found {len(module_files)} module files to check") + + # Track statistics + valid_modules = 0 + invalid_modules = 0 + fixed_modules = 0 + + # Check each module + for module_path in module_files: + module_name = os.path.basename(module_path) + + try: + # Load module content + with open(module_path, 'r') as f: + module_content = f.read() + + # Validate condition structure + try: + module_json = json.loads(module_content) + valid, issues = validate_condition_format(module_json) + + if valid: + valid_modules += 1 + if args.verbose: + logger.info(f"✅ {module_name}: Valid condition structure") + else: + invalid_modules += 1 + + if args.fix: + # Attempt to fix the module + fixed_module, was_fixed = fix_condition_structure(module_json) + + if was_fixed: + # Write the fixed module back + with open(module_path, 'w') as f: + json.dump(fixed_module, f, indent=2) + + # Validate again to confirm + valid_after_fix, remaining_issues = validate_condition_format(fixed_module) + + if valid_after_fix: + fixed_modules += 1 + logger.info(f"🔧 {module_name}: Fixed condition structure issues") + else: + logger.warning(f"⚠️ {module_name}: Could not fix all condition structure issues") + if args.verbose: + for issue in remaining_issues: + logger.warning(f" - {issue}") + else: + logger.warning(f"⚠️ {module_name}: Could not fix condition structure issues") + if args.verbose: + for issue in issues: + logger.warning(f" - {issue}") + else: + logger.warning(f"⚠️ {module_name}: Invalid condition structure") + if args.verbose: + for issue in issues: + logger.warning(f" - {issue}") + + except json.JSONDecodeError as e: + invalid_modules += 1 + logger.error(f"❌ {module_name}: Invalid JSON format - {str(e)}") + + except Exception as e: + invalid_modules += 1 + logger.error(f"❌ {module_name}: Error processing file - {str(e)}") + + # Print summary + logger.info("\nSummary:") + logger.info(f"Total modules checked: {len(module_files)}") + logger.info(f"Valid modules: {valid_modules}") + logger.info(f"Invalid modules: {invalid_modules}") + + if args.fix: + logger.info(f"Modules fixed: {fixed_modules}") + + if invalid_modules > 0: + logger.warning("Some modules have condition structure issues that may cause problems in Synthea") + if not args.fix: + logger.info("Run with --fix to attempt automatic fixes for the issues") + else: + logger.info("All modules have valid condition structure") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/scripts/check_json.py b/scripts/check_json.py new file mode 100644 index 0000000..a29c8ea --- /dev/null +++ b/scripts/check_json.py @@ -0,0 +1,14 @@ +import json +import sys + +path = sys.argv[1] +with open(path, 'r') as f: + content = f.read() + +print(f"File has {content.count('{')} opening braces and {content.count('}')} closing braces") + +try: + json.loads(content) + print('Valid JSON') +except Exception as e: + print(f'Invalid JSON: {e}') diff --git a/scripts/cleanup.sh b/scripts/cleanup.sh new file mode 100755 index 0000000..148081e --- /dev/null +++ b/scripts/cleanup.sh @@ -0,0 +1,262 @@ +#!/bin/bash + +# Synthea-All-Diseases Repository Cleanup Script +# This script removes unnecessary files and keeps only the essential ones for the Synthea module generator + +echo "Starting repository cleanup..." + +# Create backup directory +mkdir -p backup +mkdir -p backup/scripts # Create a directory for Python scripts +mkdir -p backup/modules # Create a directory for modules +mkdir -p backup/module_generator # Create a directory for module generator scripts + +# 1. Keep essential Nextflow files, remove others +echo "Handling Nextflow files..." +cp main.nf backup/ +rm -f build_synthea.nf synthea_module_generator_old.nf minimal_test.nf fresh_synthea.nf simple_synthea.nf test_workflow.nf new_synthea.nf minimal_working.nf +# Keep synthea_module_generator.nf around for reference but not used +mv synthea_module_generator.nf backup/ + +# 2. Keep essential Python scripts, Docker files, and configuration files +echo "Keeping essential files..." +if [ -d "src/main/python" ]; then + cp -r src/main/python backup/module_generator/ +fi +if [ -d "src/main/resources/modules" ]; then + cp -r src/main/resources/modules/* backup/modules/ +fi +cp Dockerfile docker-compose.yml CLAUDE.md .env.example nextflow.config README.md backup/ +cp DOCKER_README.md SYNTHEA_GUIDE.md backup/ 2>/dev/null || : # Keep additional README files +# Backup .env file if it exists +if [ -f ".env" ]; then + cp .env backup/ +fi + +# 3. Back up all Python scripts in the root directory +echo "Backing up Python scripts..." +# Key scripts - these will be kept in the scripts directory after cleanup +# The only key script we'll keep in the root is check_condition_structure.py for convenience +key_scripts=("check_condition_structure.py") +for script in "${key_scripts[@]}"; do + if [ -f "$script" ]; then + cp "$script" backup/ + echo " Backed up key script for root: $script" + fi +done + +# All other Python scripts - these will be moved to scripts/ directory +for script in *.py; do + if [ -f "$script" ] && [[ ! " ${key_scripts[@]} " =~ " ${script} " ]]; then + cp "$script" backup/scripts/ + echo " Backed up utility script: $script" + fi +done + +# 4. Remove ALL Synthea code - we'll clone it in Docker +echo "Removing ALL Synthea source code..." +echo "This will be cloned during Docker build based on Dockerfile..." +# Remove the entire src directory - we'll recreate what we need +rm -rf src/ +# Remove any Synthea build files/directories +rm -rf build/ output/ simulator/ lib/ logs/ +# Remove any Synthea run files +rm -f run_synthea run_synthea.bat synthea *.jar + +# 5. Remove other experimental or temporary files +echo "Removing experimental and temporary files..." +rm -f *.log *.txt trace.txt +rm -f error_output.txt generate_module.sh run_synthetic_data_generation.sh +rm -f build_docker.sh entrypoint.sh run_module_generator.sh generate_samples.sh test_run.sh +rm -f run_flexporter .DS_Store + +# 6. Remove gradle files and other unnecessary files +echo "Removing additional unnecessary files..." +rm -f build.gradle gradlew gradlew.bat settings.gradle +rm -rf gradle/ .gradle/ +# Note: Keeping .git, .gitignore, .github for version control +rm -rf .nextflow/ .nextflow.log* nextflow-*.zip +# Keep LICENSE files but remove other documentation that will be included from Synthea +rm -f CODE_OF_CONDUCT.md NOTICE +rm -f *.bak *~ + +# 7. Create clean directory structure for the repository +echo "Creating clean directory structure..." +mkdir -p modules # Top-level modules directory +mkdir -p module_generator # Module generator directory (renamed from python) +mkdir -p scripts # Utility scripts directory + +# 8. Restore files to the cleaned structure +echo "Restoring files to cleaned structure..." + +# Restore modules +if [ -d "backup/modules" ]; then + cp -r backup/modules/* modules/ 2>/dev/null || : + echo " Restored modules to modules/ directory" +fi + +# Restore Module generator core scripts +if [ -d "backup/module_generator" ]; then + cp -r backup/module_generator/* module_generator/ 2>/dev/null || : + echo " Restored core generator scripts to module_generator/ directory" +fi + +# Restore key Python scripts to root directory +for script in "${key_scripts[@]}"; do + if [ -f "backup/$script" ]; then + cp "backup/$script" ./ + echo " Restored key script to root: $script" + fi +done + +# Restore utility Python scripts to scripts/ directory +if [ -d "backup/scripts" ]; then + cp backup/scripts/* scripts/ 2>/dev/null || : + echo " Restored utility scripts to scripts/ directory" +fi + +# Restore root files +cp backup/main.nf backup/Dockerfile backup/docker-compose.yml backup/CLAUDE.md backup/nextflow.config backup/.env.example backup/README.md ./ 2>/dev/null || : +if [ -f "backup/DOCKER_README.md" ]; then + cp backup/DOCKER_README.md ./ +fi +if [ -f "backup/SYNTHEA_GUIDE.md" ]; then + cp backup/SYNTHEA_GUIDE.md ./ +fi +# Restore .env if it existed +if [ -f "backup/.env" ]; then + cp backup/.env ./ + echo " Restored .env file" +fi + +# 9. Update the Dockerfile to reference the new directory structure +echo "Updating Dockerfile references if needed..." +if [ -f "Dockerfile" ]; then + # Update the Dockerfile to use the new directory structure + sed -i.bak 's|COPY src/main/python/|COPY module_generator/|g' Dockerfile + sed -i.bak 's|COPY python/|COPY module_generator/|g' Dockerfile + sed -i.bak 's|COPY src/main/resources/modules/|COPY modules/|g' Dockerfile + sed -i.bak 's|src/main/python/|module_generator/|g' Dockerfile + sed -i.bak 's|src/main/resources/modules|modules|g' Dockerfile + # Update script paths if needed + sed -i.bak 's|/app/src/main/python/|/app/module_generator/|g' Dockerfile + rm -f Dockerfile.bak +fi + +# 10. Update the main.nf file to reference the new directory structure +echo "Updating main.nf references if needed..." +if [ -f "main.nf" ]; then + # Update the main.nf file to use the new directory structure + sed -i.bak 's|src/main/resources/modules|modules|g' main.nf + sed -i.bak 's|src/main/python|module_generator|g' main.nf + sed -i.bak 's|python/|module_generator/|g' main.nf + rm -f main.nf.bak +fi + +# 11. Create a simple README for the scripts directory +echo "Creating README for scripts directory..." +cat > scripts/README.md << 'EOF' +# Utility Scripts + +This directory contains utility scripts for working with Synthea modules: + +- `analyze_patient_data.py` - Analyzes patient data generated by Synthea +- `check_json.py` - Validates JSON structure of module files +- `validate_module.py` - Performs comprehensive validation of modules +- `test_module_exists.py` - Checks if a module exists for a given disease +- `run_module.py` - Script to run a specific module with Synthea +- Other utility scripts for module generation and testing + +These scripts complement the core module generator scripts found in the `module_generator/` directory. +EOF + +# Update README.md with instructions on using the cleaned repo +echo "Updating README..." +cat > README.md << 'EOF' +# Synthea All Diseases + +This repository contains a workflow for generating Synthea disease modules using Claude AI and generating synthetic patient data. + +## Repository Structure + +- `module_generator/` - Core module generation scripts +- `modules/` - Generated disease modules +- `scripts/` - Utility Python scripts and tools +- `main.nf` - Nextflow workflow for module generation and patient data generation +- `Dockerfile` and `docker-compose.yml` - Docker configuration + +## Key Files + +- `check_condition_structure.py` - Validates condition structure in modules +- `main.nf` - Main workflow file for generating modules and patient data + +## Running the Pipeline + +### Prerequisites + +- Docker and Docker Compose +- Nextflow +- Anthropic API key (for Claude AI) + +### Setup + +1. Clone this repository +2. Copy `.env.example` to `.env` and add your Anthropic API key +3. Run with Docker Compose: + +``` +docker-compose up +``` + +### Running the Workflow + +``` +nextflow run main.nf --disease_name "Disease Name" [OPTIONS] +``` + +For a full list of options, run: + +``` +nextflow run main.nf --help +``` + +## Key Features + +- Generate modules for diseases that don't exist in Synthea +- Validate condition structure in generated modules +- Generate synthetic patient data using the modules +- Analyze generated patient data + +## Documentation + +- See `CLAUDE.md` for additional development guidelines +- See `DOCKER_README.md` for Docker setup and usage +- See `SYNTHEA_GUIDE.md` for detailed usage examples and scenarios +- See `scripts/README.md` for information about utility scripts + +## License + +This project uses the same license as Synthea. +EOF + +# 12. Update docker-compose.yml to reference the new directory structure +echo "Updating docker-compose.yml references if needed..." +if [ -f "docker-compose.yml" ]; then + # No changes needed as it uses relative paths and volume mounts + echo " No changes needed for docker-compose.yml" +fi + +echo "Cleanup complete! All essential files have been kept, and unnecessary files have been removed." +echo "Repository structure has been simplified to:" +echo " - module_generator/ (core module generation scripts)" +echo " - modules/ (disease modules)" +echo " - scripts/ (utility scripts)" +echo " - check_condition_structure.py (in root for easy access)" +echo "" +echo "The following important files were preserved:" +echo " - .git/ (version control repository)" +echo " - .gitignore (version control configuration)" +echo " - .env (environment configuration if it existed)" +echo " - .github/ (GitHub configuration if it existed)" +echo "" +echo "Optional: Remove the backup directory after verifying everything works: rm -rf backup" \ No newline at end of file diff --git a/scripts/generate_batch.py b/scripts/generate_batch.py new file mode 100755 index 0000000..8070e24 --- /dev/null +++ b/scripts/generate_batch.py @@ -0,0 +1,175 @@ +#!/usr/bin/env python3 + +import os +import sys +import csv +import time +import argparse +import subprocess +import concurrent.futures +import re + +# Global variables +ARGS = None + +def normalize_disease_name(name): + """Convert a disease name to a normalized filename""" + # Convert to lowercase + name = name.lower() + + # Replace special characters with underscores + name = re.sub(r'[^a-z0-9]+', '_', name) + + # Remove leading/trailing underscores + name = name.strip('_') + + # Ensure the name is not empty + if not name: + name = "unknown_disease" + + return name + +def process_disease(disease_entry): + """Process a single disease from the CSV""" + disease_name = disease_entry.get("disease_name", "") + normalized_name = normalize_disease_name(disease_name) + icd10 = disease_entry.get("id", "") + category = disease_entry.get("disease_category", "") + + print(f"\n{'='*80}") + print(f"Processing disease: {disease_name}") + print(f"ICD-10 code: {icd10}") + print(f"Category: {category}") + + # Skip if module already exists (unless --force flag is used) + module_path = f"src/main/resources/modules/{normalized_name}.json" + if os.path.exists(module_path) and not ARGS.force: + print(f"✅ Module already exists at {module_path}, skipping") + return {"name": disease_name, "status": "skipped", "path": module_path} + + # Create the command + cmd = ["python3", "generate_module.py", "--disease", disease_name, "--no-interactive"] + + if icd10: + cmd.extend(["--icd10", icd10]) + + if category: + cmd.extend(["--category", category]) + + # Add auto-fallback option if requested + if ARGS.auto_fallback: + cmd.append("--auto-fallback") + + # Run the generator + try: + print(f"Executing: {' '.join(cmd)}") + process = subprocess.run(cmd, check=True, text=True, capture_output=True) + print(f"✅ Successfully generated module for {disease_name}") + print(process.stdout.strip()) + return {"name": disease_name, "status": "success", "path": module_path} + except subprocess.CalledProcessError as e: + print(f"❌ Failed to generate module for {disease_name}") + print(f"Error: {str(e)}") + print(f"STDOUT: {e.stdout}") + print(f"STDERR: {e.stderr}") + return {"name": disease_name, "status": "error", "error": str(e), "path": None} + +def main(): + """Main function to process diseases from the CSV""" + global ARGS + parser = argparse.ArgumentParser(description='Generate Synthea modules for diseases') + parser.add_argument('--category', help='Only process diseases in this category') + parser.add_argument('--disease', help='Only process a specific disease (by name)') + parser.add_argument('--limit', type=int, help='Limit number of diseases to process') + parser.add_argument('--parallel', type=int, default=1, help='Number of parallel processes') + parser.add_argument('--skip-existing', action='store_true', help='Skip diseases that already have modules') + parser.add_argument('--csv-path', default='src/main/resources/disease_list.csv', help='Path to disease list CSV') + parser.add_argument('--force', action='store_true', help='Force generation even if module already exists') + parser.add_argument('--auto-fallback', action='store_true', help='Enable auto-fallback option') + args = parser.parse_args() + + ARGS = args + + # Read the disease list CSV + if not os.path.exists(args.csv_path): + print(f"Error: Disease list CSV not found at {args.csv_path}") + sys.exit(1) + + print(f"Reading disease list from {args.csv_path}") + try: + with open(args.csv_path, 'r') as f: + reader = csv.DictReader(f) + diseases = list(reader) + except Exception as e: + print(f"Error reading CSV: {str(e)}") + sys.exit(1) + + print(f"Found {len(diseases)} diseases in the CSV") + + # Filter diseases + if args.category: + diseases = [d for d in diseases if (d.get('disease_category', '').lower() == args.category.lower())] + print(f"Filtered to {len(diseases)} diseases in category '{args.category}'") + + if args.disease: + # Try to find an exact match first + disease_name_lower = args.disease.lower() + exact_match = [d for d in diseases if d.get("disease_name", "").lower() == disease_name_lower] + + if exact_match: + diseases = exact_match + else: + # Try to find a disease that contains the specified name + partial_matches = [d for d in diseases if disease_name_lower in d.get("disease_name", "").lower()] + + if partial_matches: + diseases = partial_matches + print(f"Found {len(diseases)} partial matches for '{args.disease}'") + else: + print(f"No matches found for disease '{args.disease}'") + sys.exit(1) + + if args.limit and args.limit > 0: + diseases = diseases[:args.limit] + print(f"Limited to {args.limit} diseases") + + # Process the diseases + total = len(diseases) + print(f"\nProcessing {total} diseases with {args.parallel} parallel workers") + + start_time = time.time() + + if args.parallel > 1: + with concurrent.futures.ProcessPoolExecutor(max_workers=args.parallel) as executor: + results = list(executor.map(process_disease, diseases)) + else: + results = [process_disease(disease) for disease in diseases] + + end_time = time.time() + elapsed = end_time - start_time + + # Summarize results + success_count = sum(1 for r in results if r["status"] == "success") + skipped_count = sum(1 for r in results if r["status"] == "skipped") + error_count = sum(1 for r in results if r["status"] == "error") + + print("\n" + "="*80) + print(f"SUMMARY: Processed {total} diseases in {elapsed:.2f} seconds") + print(f"- Successfully generated: {success_count}") + print(f"- Skipped (already exist): {skipped_count}") + print(f"- Failed: {error_count}") + + # List errors if any + if error_count > 0: + print("\nFAILED DISEASES:") + for result in results: + if result["status"] == "error": + print(f"- {result['name']}: {result.get('error', 'Unknown error')}") + + # Exit with error code if any failures + sys.exit(1) + + print("\nAll done! 🎉") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/scripts/generate_module.py b/scripts/generate_module.py new file mode 100755 index 0000000..05f701c --- /dev/null +++ b/scripts/generate_module.py @@ -0,0 +1,468 @@ +#!/usr/bin/env python3 + +import os +import sys +import json +import re +import anthropic +import csv +import argparse + +# Define global variables +DISEASE_NAME = "" +OUTPUT_FILE = "" +icd10_code = "" +disease_category = "" +use_interactive = True +use_auto_fallback = False + +def normalize_disease_name(name): + # Normalize disease name for filename + normalized_name = name.lower().replace(' ', '_').replace('-', '_') + normalized_name = ''.join(c if c.isalnum() or c == '_' else '_' for c in normalized_name) + normalized_name = '_'.join(filter(None, normalized_name.split('_'))) + return normalized_name + +def generate_module(): + # Initialize the Anthropic client + api_key = os.environ.get('ANTHROPIC_API_KEY') + if not api_key: + print("Error: ANTHROPIC_API_KEY environment variable is not set") + sys.exit(1) + + client = anthropic.Anthropic(api_key=api_key) + + # Step 1: Ask Claude for clinical details in a structured format, not JSON + print("Step 1: Getting clinical details from Claude...") + + # Prepare disease information for the prompt + disease_info = f"Disease name: {DISEASE_NAME}" + if icd10_code: + disease_info += f"\nICD-10 code: {icd10_code}" + if disease_category: + disease_info += f"\nCategory: {disease_category}" + + # Construct a prompt that asks for structured data, not JSON + prompt = f"""I need information to create a Synthea disease module for {DISEASE_NAME}. + +{disease_info} + +Please provide the following information in a structured format (NOT JSON): + +1. DESCRIPTION: A brief description of the disease (3-5 sentences) + +2. RISK_FACTORS: Age ranges, gender factors, and/or other risk factors for this disease + +3. SYMPTOMS: List the main symptoms of the disease + +4. DIAGNOSTIC_TESTS: Tests typically used to diagnose this condition + +5. TREATMENTS: List treatments for this disease, including: + - Medications (with their class and purpose) + - Procedures + - Other interventions + +6. COMPLICATIONS: Possible complications of this disease + +7. PROGRESSION: Typical progression of the disease, including: + - How it starts + - How it typically develops + - Possible outcomes + +8. FOLLOW_UP: Typical follow-up care needed + +For medications, just provide generic names - I'll handle the RxNorm codes. +For conditions and procedures, just provide plain English names - I'll handle the coding. + +Please provide this information in a straightforward, structured text format. Do NOT use JSON. +""" + + # Get clinical details + try: + response = client.messages.create( + model="claude-3-7-sonnet-20250219", + max_tokens=4000, + temperature=0.2, + messages=[ + {"role": "user", "content": prompt} + ] + ) + + # Extract the response text + clinical_details = response.content[0].text + + # Save the raw clinical details for reference + os.makedirs(os.path.dirname(OUTPUT_FILE), exist_ok=True) + with open(f"{OUTPUT_FILE}.details", "w") as f: + f.write(clinical_details) + + print(f"Clinical details saved to {OUTPUT_FILE}.details") + + # Step 2: Now build a valid module with the clinical details + print("Step 2: Building module with clinical details...") + + # Extract information from the structured response + description_match = re.search(r'##\s*1\.\s*DESCRIPTION(.*?)(?=##\s*2\.)', clinical_details, re.DOTALL) + risk_factors_match = re.search(r'##\s*2\.\s*RISK_FACTORS(.*?)(?=##\s*3\.)', clinical_details, re.DOTALL) + symptoms_match = re.search(r'##\s*3\.\s*SYMPTOMS(.*?)(?=##\s*4\.)', clinical_details, re.DOTALL) + diagnostic_tests_match = re.search(r'##\s*4\.\s*DIAGNOSTIC_TESTS(.*?)(?=##\s*5\.)', clinical_details, re.DOTALL) + treatments_match = re.search(r'##\s*5\.\s*TREATMENTS(.*?)(?=##\s*6\.)', clinical_details, re.DOTALL) + complications_match = re.search(r'##\s*6\.\s*COMPLICATIONS(.*?)(?=##\s*7\.)', clinical_details, re.DOTALL) + progression_match = re.search(r'##\s*7\.\s*PROGRESSION(.*?)(?=##\s*8\.)', clinical_details, re.DOTALL) + follow_up_match = re.search(r'##\s*8\.\s*FOLLOW_UP(.*?)(?=$)', clinical_details, re.DOTALL) + + # Extract text from matches + description = description_match.group(1).strip() if description_match else f"A module for {DISEASE_NAME}" + risk_factors = risk_factors_match.group(1).strip() if risk_factors_match else "" + symptoms = symptoms_match.group(1).strip() if symptoms_match else "" + diagnostic_tests = diagnostic_tests_match.group(1).strip() if diagnostic_tests_match else "" + treatments = treatments_match.group(1).strip() if treatments_match else "" + complications = complications_match.group(1).strip() if complications_match else "" + progression = progression_match.group(1).strip() if progression_match else "" + follow_up = follow_up_match.group(1).strip() if follow_up_match else "" + + print(f"Extracted: {len(description)} chars description, {len(symptoms)} chars symptoms, {len(treatments)} chars treatments") + + # Extract symptoms as a list + symptom_list = [] + if symptoms_match: + # For structured format with bullet points + symptom_lines = re.findall(r'[-*]\s*(.*?)(?:\n|$)', symptoms, re.MULTILINE) + if symptom_lines: + symptom_list = [s.strip() for s in symptom_lines if s.strip()] + else: + # Try to split by newlines for a less structured format + symptom_list = [s.strip() for s in symptoms.split('\n') if s.strip()] + # If that doesn't give us anything, just add the whole text as one symptom + if not symptom_list and symptoms.strip(): + symptom_list = [symptoms.strip()] + + print(f"Found {len(symptom_list)} symptoms") + + # Extract medications from treatments + medications = [] + if treatments_match: + # Find the "Medications:" section + meds_section_match = re.search(r'Medications?:\s*(.*?)(?=(?:- Procedures:|$))', treatments, re.DOTALL) + if meds_section_match: + meds_section = meds_section_match.group(1).strip() + # Extract main medication names from list items with explanations + # Format is typically: "- Medication name (explanation)" or "- Medication name - explanation" + med_items = re.findall(r'[-*]\s*(.*?)(?=[-*]|\n\n|\n- |$)', meds_section, re.DOTALL) + + for item in med_items: + item = item.strip() + if not item: + continue + + # Extract just the medication name, not the explanation + med_match = re.match(r'([^(]+)(?:\(|-).*', item) + if med_match: + med_name = med_match.group(1).strip() + else: + med_name = item.split('(')[0].strip() + + # Clean up common patterns + med_name = re.sub(r'\s*\([^)]*\)', '', med_name) # Remove parentheticals + med_name = re.sub(r'\s*-.*', '', med_name) # Remove after dash + + # Skip descriptive phrases that aren't medications + if any(phrase in med_name.lower() for phrase in ['reduce', 'block', 'prevent', 'for']): + continue + + # Look for multiple medications in parentheses + if ',' in med_name: + for m in med_name.split(','): + m = m.strip() + if m and not any(m.lower() in existing.lower() for existing in medications): + medications.append(m) + else: + if med_name and not any(med_name.lower() in existing.lower() for existing in medications): + medications.append(med_name) + + print(f"Found {len(medications)} medications: {', '.join(medications[:5])}") + + # Start with a basic module template + module = { + "name": DISEASE_NAME, + "remarks": [], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years" + }, + "direct_transition": "Delay_Until_Onset" + }, + "Delay_Until_Onset": { + "type": "Delay", + "range": { + "low": 0, + "high": 20, + "unit": "years" + }, + "direct_transition": "Onset" + }, + "Onset": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "64109004", + "display": DISEASE_NAME + } + ], + "direct_transition": "Diagnosis_Encounter" + }, + "Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd" + # direct_transition will be set later + } + } + } + + # Add description to remarks + if description: + for line in description.split('\n'): + line = line.strip() + if line: + module["remarks"].append(line) + + # Add ICD-10 code if available + if icd10_code: + module["remarks"].append(f"ICD-10 code: {icd10_code}") + + # Add category if available + if disease_category: + module["remarks"].append(f"Category: {disease_category}") + + # Make sure remarks is not empty + if not module["remarks"]: + module["remarks"].append(f"Generated module for {DISEASE_NAME}") + + # Add risk factors to remarks if available + if risk_factors: + module["remarks"].append(f"Risk factors: {risk_factors.replace('\n', ' ')}") + + # Add symptoms if available + symptom_i = 0 + current_state = "End_Diagnosis_Encounter" + + if symptom_list: + for i, symptom in enumerate(symptom_list[:3]): # Limit to 3 symptoms + symptom_name = symptom.strip() + if not symptom_name: + continue + + state_name = f"Symptom_{symptom_i}" + symptom_i += 1 + + module["states"][state_name] = { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418107008", # Default symptom code + "display": symptom_name + } + ] + } + + # Connect states + module["states"][current_state]["direct_transition"] = state_name + current_state = state_name + + # Add diagnostic tests if available + if diagnostic_tests: + test_lines = re.findall(r'[-*]\s*(.*?)(?:\n|$)', diagnostic_tests, re.MULTILINE) + tests = [t.strip() for t in test_lines if t.strip()] + + if tests: + for i, test in enumerate(tests[:2]): # Limit to 2 tests + test_name = test.strip() + if not test_name: + continue + + state_name = f"DiagnosticTest_{i}" + + module["states"][state_name] = { + "type": "Procedure", + "target_encounter": "Diagnosis_Encounter", + "reason": "Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386053000", # Default diagnostic procedure code + "display": test_name + } + ] + } + + # Connect states + module["states"][current_state]["direct_transition"] = state_name + current_state = state_name + + # Add medications if found + if medications: + for i, med in enumerate(medications[:3]): # Limit to 3 medications to keep module manageable + med_name = med.strip() + if not med_name: + continue + + state_name = f"Prescribe_{i}" + + module["states"][state_name] = { + "type": "MedicationOrder", + "target_encounter": "Diagnosis_Encounter", + "reason": "Onset", + "codes": [ + { + "system": "RxNorm", + "code": "308047", # Default code + "display": med_name + } + ] + } + + # Connect states + module["states"][current_state]["direct_transition"] = state_name + current_state = state_name + + # Connect to Follow-up + module["states"][current_state]["direct_transition"] = "Follow_Up_Encounter" + + # Add follow-up encounter + module["states"]["Follow_Up_Encounter"] = { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter" + } + ], + "direct_transition": "End_Follow_Up_Encounter" + } + + module["states"]["End_Follow_Up_Encounter"] = { + "type": "EncounterEnd", + "direct_transition": "Terminal" + } + + module["states"]["Terminal"] = { + "type": "Terminal" + } + + # Format the JSON for output + formatted_json = json.dumps(module, indent=2) + + # Save the module + with open(OUTPUT_FILE, "w") as f: + f.write(formatted_json) + + print(f"✅ Successfully generated module and saved to {OUTPUT_FILE}") + return 0 + + except Exception as e: + print(f"❌ Error: {str(e)}") + + # Write the error to a file + with open(f"{OUTPUT_FILE}.error", "w") as f: + f.write(f"Error: {str(e)}") + return 1 + +def main(): + # Parse command line arguments + parser = argparse.ArgumentParser(description='Generate a Synthea module for a disease') + parser.add_argument('--disease', type=str, required=True, help='Disease name') + parser.add_argument('--icd10', type=str, help='ICD-10 code') + parser.add_argument('--category', type=str, help='Disease category') + parser.add_argument('--no-interactive', action='store_true', help='Skip interactive prompts, for batch processing') + parser.add_argument('--auto-fallback', action='store_true', help='Automatically use fallback template if JSON parsing fails') + parser.add_argument('--force', action='store_true', help='Force regeneration even if module already exists') + args = parser.parse_args() + + # Set global variables + global DISEASE_NAME, OUTPUT_FILE, use_interactive, use_auto_fallback + DISEASE_NAME = args.disease + normalized_name = normalize_disease_name(DISEASE_NAME) + OUTPUT_FILE = f"src/main/resources/modules/{normalized_name}.json" + use_interactive = not args.no_interactive + use_auto_fallback = args.auto_fallback + + # Use provided ICD-10 code or category if specified + global icd10_code, disease_category + icd10_code = args.icd10 + disease_category = args.category + + print(f"Disease name: {DISEASE_NAME}") + print(f"Normalized filename: {normalized_name}.json") + + # Check if module already exists + if os.path.exists(OUTPUT_FILE): + print(f"✅ Module already exists at: {OUTPUT_FILE}") + if args.force: + print("Force flag set. Regenerating module.") + else: + return 0 + else: + print(f"❌ Module not found at: {OUTPUT_FILE}") + + # If no ICD-10 code provided, look up in disease list CSV + if not icd10_code: + csv_path = "src/main/resources/disease_list.csv" + if os.path.exists(csv_path): + print(f"Looking up disease information in {csv_path}...") + try: + with open(csv_path, 'r') as f: + reader = csv.DictReader(f) + for row in reader: + if row.get("disease_name", "").lower() == DISEASE_NAME.lower(): + icd10_code = row.get("id", "") + disease_category = row.get("disease_category", "") + print(f"Found matching disease in CSV:") + print(f"- ICD-10 code: {icd10_code}") + print(f"- Category: {disease_category}") + break + else: + print("No matching disease found in CSV. Continuing without ICD-10 code.") + except Exception as e: + print(f"Error reading CSV: {str(e)}") + print("Continuing without ICD-10 code.") + + # Ensure ANTHROPIC_API_KEY is set + if not os.environ.get('ANTHROPIC_API_KEY'): + print("Error: ANTHROPIC_API_KEY environment variable is not set") + return 1 + + # Ask Claude to generate the module + generate_module() + + return 0 + +if __name__ == "__main__": + sys.exit(main()) \ No newline at end of file diff --git a/scripts/patient_analysis.py b/scripts/patient_analysis.py new file mode 100755 index 0000000..1efa7fb --- /dev/null +++ b/scripts/patient_analysis.py @@ -0,0 +1,321 @@ +#!/usr/bin/env python3 +import os +import sys +import json +import glob +import argparse +from collections import Counter +from datetime import datetime + +def analyze_patient_data(disease_name, input_dir, output_dir, format_type="html"): + print(f"Analyzing patient data for {disease_name}...") + + # Create the output directory if it doesn't exist + os.makedirs(output_dir, exist_ok=True) + + # Find all patient JSON files + patients_files = glob.glob(f"{input_dir}/*.json") + patients_files = [f for f in patients_files if not 'hospitalInformation' in f and not 'practitionerInformation' in f] + + print(f"Found {len(patients_files)} patient records for analysis") + + if len(patients_files) == 0: + print("No patient files found to analyze.") + with open(os.path.join(output_dir, f"{disease_name.lower().replace(' ', '_')}_report.html"), 'w') as f: + f.write(f"

Analysis Report for {disease_name}

No patient files found to analyze.

") + # Create empty CSV and JSON files + with open(os.path.join(output_dir, f"{disease_name.lower().replace(' ', '_')}_report.csv"), 'w') as f: + f.write("No patient files found to analyze.\n") + with open(os.path.join(output_dir, f"{disease_name.lower().replace(' ', '_')}_report.json"), 'w') as f: + f.write('{"error": "No patient files found to analyze."}\n') + return + + # Initialize data collectors + demographics = {'gender': Counter(), 'age': [], 'race': Counter(), 'ethnicity': Counter()} + condition_counts = Counter() + medication_counts = Counter() + + # Process each patient file + for patient_file in patients_files: + try: + with open(patient_file, 'r') as f: + data = json.load(f) + + # Skip non-patient resources + if 'resourceType' in data and data['resourceType'] == 'Patient': + # Basic patient info + if 'gender' in data: + demographics['gender'][data['gender']] += 1 + + if 'birthDate' in data: + # Calculate age based on birth year + birth_year = int(data['birthDate'][:4]) + current_year = datetime.now().year + age = current_year - birth_year + demographics['age'].append(age) + + # Process race and ethnicity extensions + if 'extension' in data: + for ext in data.get('extension', []): + if 'url' in ext and 'extension' in ext: + if ext['url'].endswith('us-core-race'): + for race_ext in ext['extension']: + if 'valueCoding' in race_ext: + race = race_ext['valueCoding'].get('display', 'Unknown') + demographics['race'][race] += 1 + elif ext['url'].endswith('us-core-ethnicity'): + for eth_ext in ext['extension']: + if 'valueCoding' in eth_ext: + ethnicity = eth_ext['valueCoding'].get('display', 'Unknown') + demographics['ethnicity'][ethnicity] += 1 + + # Check for Bundle resources with entries + if 'resourceType' in data and data['resourceType'] == 'Bundle' and 'entry' in data: + bundle_has_patient = False + for entry in data['entry']: + if 'resource' in entry: + resource = entry['resource'] + + # Check if this bundle contains a patient + if resource.get('resourceType') == 'Patient': + bundle_has_patient = True + # Basic patient info + if 'gender' in resource: + demographics['gender'][resource['gender']] += 1 + + if 'birthDate' in resource: + # Calculate age based on birth year + birth_year = int(resource['birthDate'][:4]) + current_year = datetime.now().year + age = current_year - birth_year + demographics['age'].append(age) + + # Process race and ethnicity extensions + if 'extension' in resource: + for ext in resource.get('extension', []): + if 'url' in ext and 'extension' in ext: + if ext['url'].endswith('us-core-race'): + for race_ext in ext['extension']: + if 'valueCoding' in race_ext: + race = race_ext['valueCoding'].get('display', 'Unknown') + demographics['race'][race] += 1 + elif ext['url'].endswith('us-core-ethnicity'): + for eth_ext in ext['extension']: + if 'valueCoding' in eth_ext: + ethnicity = eth_ext['valueCoding'].get('display', 'Unknown') + demographics['ethnicity'][ethnicity] += 1 + + # Check for conditions + if resource.get('resourceType') == 'Condition': + if 'code' in resource and 'coding' in resource['code']: + for code in resource['code']['coding']: + if 'display' in code: + condition_counts[code['display']] += 1 + + # Check for medications + if resource.get('resourceType') == 'MedicationRequest': + if 'medicationCodeableConcept' in resource and 'coding' in resource['medicationCodeableConcept']: + for code in resource['medicationCodeableConcept']['coding']: + if 'display' in code: + medication_counts[code['display']] += 1 + + except Exception as e: + print(f"Error processing {patient_file}: {e}") + + # Calculate total patients (count unique patient files) + total_patients = sum(demographics['gender'].values()) + if total_patients == 0: + print("Warning: No patient demographics found. Setting total_patients to file count.") + total_patients = len(patients_files) + + print(f"Total patients found: {total_patients}") + print(f"Gender distribution: {dict(demographics['gender'])}") + + if total_patients == 0: + total_patients = 1 # Avoid division by zero + + # Generate HTML report + if format_type.lower() in ["html", "all"]: + create_html_report(disease_name, output_dir, demographics, condition_counts, medication_counts, total_patients) + + # Generate CSV report + if format_type.lower() in ["csv", "all"]: + create_csv_report(disease_name, output_dir, demographics, condition_counts, medication_counts, total_patients) + + # Generate JSON report + if format_type.lower() in ["json", "all"]: + create_json_report(disease_name, output_dir, demographics, condition_counts, medication_counts, total_patients) + + print(f"Analysis complete. Reports generated in {output_dir}") + + +def create_html_report(disease_name, output_dir, demographics, condition_counts, medication_counts, total_patients): + with open(os.path.join(output_dir, f"{disease_name.lower().replace(' ', '_')}_report.html"), 'w') as f: + f.write(f''' + + + Synthea Patient Analysis - {disease_name} + + + +
+

Synthea Patient Analysis - {disease_name}

+

Total patients analyzed: {total_patients}

+ +

Demographics

+

Gender Distribution

+ + +''') + + for gender, count in demographics['gender'].items(): + percentage = (count / total_patients) * 100 + f.write(f"\n") + + f.write(''' +
GenderCountPercentage
{gender}{count}{percentage:.1f}%
+ +

Age Statistics

+ +''') + + if demographics['age']: + min_age = min(demographics['age']) + max_age = max(demographics['age']) + avg_age = sum(demographics['age']) / len(demographics['age']) + f.write(f"\n") + f.write(f"\n") + f.write(f"\n") + else: + f.write("\n") + + f.write(''' +
Minimum Age{min_age}
Maximum Age{max_age}
Average Age{avg_age:.1f}
No age data available
+ +

Top Conditions

+ + +''') + + for condition, count in sorted(condition_counts.items(), key=lambda x: x[1], reverse=True)[:15]: + percentage = (count / total_patients) * 100 + f.write(f"\n") + + f.write(''' +
ConditionCountPercentage of Patients
{condition}{count}{percentage:.1f}%
+ +

Top Medications

+ + +''') + + for medication, count in sorted(medication_counts.items(), key=lambda x: x[1], reverse=True)[:15]: + percentage = (count / total_patients) * 100 + f.write(f"\n") + + f.write(''' +
MedicationCountPercentage of Patients
{medication}{count}{percentage:.1f}%
+
+ +''') + + +def create_csv_report(disease_name, output_dir, demographics, condition_counts, medication_counts, total_patients): + with open(os.path.join(output_dir, f"{disease_name.lower().replace(' ', '_')}_report.csv"), 'w') as f: + # Write header + f.write(f"Synthea Patient Analysis - {disease_name}\n") + f.write(f"Total patients analyzed,{total_patients}\n\n") + + # Gender distribution + f.write("Gender Distribution\n") + f.write("Gender,Count,Percentage\n") + for gender, count in demographics['gender'].items(): + percentage = (count / total_patients) * 100 + f.write(f"{gender},{count},{percentage:.1f}%\n") + f.write("\n") + + # Age statistics + f.write("Age Statistics\n") + if demographics['age']: + min_age = min(demographics['age']) + max_age = max(demographics['age']) + avg_age = sum(demographics['age']) / len(demographics['age']) + f.write(f"Minimum Age,{min_age}\n") + f.write(f"Maximum Age,{max_age}\n") + f.write(f"Average Age,{avg_age:.1f}\n") + else: + f.write("No age data available\n") + f.write("\n") + + # Top conditions + f.write("Top Conditions\n") + f.write("Condition,Count,Percentage of Patients\n") + for condition, count in sorted(condition_counts.items(), key=lambda x: x[1], reverse=True)[:15]: + percentage = (count / total_patients) * 100 + f.write(f"{condition},{count},{percentage:.1f}%\n") + f.write("\n") + + # Top medications + f.write("Top Medications\n") + f.write("Medication,Count,Percentage of Patients\n") + for medication, count in sorted(medication_counts.items(), key=lambda x: x[1], reverse=True)[:15]: + percentage = (count / total_patients) * 100 + f.write(f"{medication},{count},{percentage:.1f}%\n") + + +def create_json_report(disease_name, output_dir, demographics, condition_counts, medication_counts, total_patients): + # Prepare the report data + report_data = { + "disease": disease_name, + "total_patients": total_patients, + "demographics": { + "gender": {k: v for k, v in demographics['gender'].items()}, + "race": {k: v for k, v in demographics['race'].items()}, + "ethnicity": {k: v for k, v in demographics['ethnicity'].items()} + }, + "age_statistics": {} + } + + if demographics['age']: + report_data["age_statistics"] = { + "min_age": min(demographics['age']), + "max_age": max(demographics['age']), + "avg_age": sum(demographics['age']) / len(demographics['age']) + } + + # Add top conditions + report_data["top_conditions"] = [ + {"name": condition, "count": count, "percentage": (count / total_patients) * 100} + for condition, count in sorted(condition_counts.items(), key=lambda x: x[1], reverse=True)[:15] + ] + + # Add top medications + report_data["top_medications"] = [ + {"name": medication, "count": count, "percentage": (count / total_patients) * 100} + for medication, count in sorted(medication_counts.items(), key=lambda x: x[1], reverse=True)[:15] + ] + + # Write to JSON file + with open(os.path.join(output_dir, f"{disease_name.lower().replace(' ', '_')}_report.json"), 'w') as f: + json.dump(report_data, f, indent=2) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Analyze Synthea patient data") + parser.add_argument("--disease", required=True, help="Disease name") + parser.add_argument("--input_dir", required=True, help="Input directory with FHIR files") + parser.add_argument("--output_dir", default=".", help="Output directory for reports") + parser.add_argument("--format", default="html", choices=["html", "csv", "json", "all"], + help="Output format (html, csv, json, or all)") + + args = parser.parse_args() + + analyze_patient_data(args.disease, args.input_dir, args.output_dir, args.format) \ No newline at end of file diff --git a/scripts/prepare_environment.sh b/scripts/prepare_environment.sh new file mode 100755 index 0000000..7c21ba0 --- /dev/null +++ b/scripts/prepare_environment.sh @@ -0,0 +1,127 @@ +#!/bin/bash +# prepare_environment.sh +# +# This script prepares the environment for running the Synthea pipeline. +# It rebuilds the Docker containers, ensures the directory structure is correct, +# and starts the necessary services. + +set -e # Exit on error + +# Display a header +echo "==================================================" +echo "Synthea All Diseases Pipeline - Environment Setup" +echo "==================================================" + +# Check for Docker +if ! command -v docker &> /dev/null; then + echo "ERROR: Docker is not installed or not in the PATH." + echo "Please install Docker and try again." + exit 1 +fi + +# Check for docker-compose +if ! command -v docker-compose &> /dev/null; then + echo "ERROR: docker-compose is not installed or not in the PATH." + echo "Please install docker-compose and try again." + exit 1 +fi + +# Create necessary directories if they don't exist +echo "Creating required directories..." +mkdir -p module_generator +mkdir -p src/main/resources/modules +mkdir -p src/main/resources/disease +mkdir -p modules +mkdir -p output + +# Check if the module_generator directory has the required scripts +if [ ! -f "module_generator/module_generator.py" ] || [ ! -f "module_generator/run_module_generator.py" ]; then + echo "ERROR: Required Python scripts not found in module_generator directory!" + # Check if they're in the python directory and we need to move them + if [ -d "python" ] && [ -f "python/module_generator.py" ] && [ -f "python/run_module_generator.py" ]; then + echo "Found scripts in python directory, moving them to module_generator directory..." + mkdir -p module_generator + mv python/module_generator.py module_generator/ + mv python/run_module_generator.py module_generator/ + # Copy README if exists + if [ -f "python/README_module_generator.md" ]; then + mv python/README_module_generator.md module_generator/ + fi + else + echo "Scripts not found in python directory either. Please ensure the scripts are in the module_generator directory." + exit 1 + fi +fi + +# Make the Python scripts executable +chmod +x module_generator/module_generator.py +chmod +x module_generator/run_module_generator.py + +# Create symlinks for convenience +ln -sf "$(pwd)/module_generator/run_module_generator.py" "$(pwd)/run_module_generator.py" +ln -sf "$(pwd)/module_generator/module_generator.py" "$(pwd)/module_generator.py" + +# Create an empty disease_list.json if it doesn't exist +if [ ! -f "src/main/resources/disease_list.json" ]; then + echo "Creating empty disease_list.json..." + echo "[]" > src/main/resources/disease_list.json +fi + +# Check if .env file exists +if [ ! -f ".env" ]; then + echo ".env file is missing. Creating from .env.example..." + if [ -f ".env.example" ]; then + cp .env.example .env + echo " Created .env from .env.example. Please edit it with your API key." + else + echo "WARNING: .env.example not found. Creating minimal .env file..." + echo "ANTHROPIC_API_KEY=your_api_key_here" > .env + fi +fi + +# Stop any running containers +echo "Stopping any running containers..." +docker-compose down || true + +# Rebuild the containers +echo "Building Docker containers..." +docker-compose build + +# Start the Synthea container +echo "Starting Synthea container..." +docker-compose up -d synthea + +# Give the container a moment to start +echo "Waiting for Synthea container to be ready..." +sleep 10 + +# Check if the container is healthy +CONTAINER_ID=$(docker-compose ps -q synthea) +if [ -z "$CONTAINER_ID" ]; then + echo "ERROR: Failed to start Synthea container." + exit 1 +fi + +# Check if the container is using proper health checks +HEALTH_STATUS=$(docker inspect --format='{{.State.Health.Status}}' $CONTAINER_ID 2>/dev/null || echo "unknown") +if [ "$HEALTH_STATUS" != "healthy" ] && [ "$HEALTH_STATUS" != "unknown" ]; then + echo "WARNING: Synthea container is not reporting as healthy (status: $HEALTH_STATUS)." + echo "It may take some time for the container to become fully operational." + echo "You can proceed, but the pipeline may fail if the container is not ready." +fi + +# Check if we should generate modules +if [ "$1" == "--generate-modules" ]; then + echo "Starting module generator..." + docker-compose --profile generator up module-generator +fi + +echo "==================================================" +echo "Environment is ready!" +echo "" +echo "To generate patients for a disease module:" +echo "nextflow run main.nf --disease_name \"Disease Name\" --generate_patients true" +echo "" +echo "To generate a new module and patients:" +echo "nextflow run main.nf --disease_name \"Disease Name\" --force_generate true --generate_patients true" +echo "==================================================" \ No newline at end of file diff --git a/scripts/run_module.py b/scripts/run_module.py new file mode 100644 index 0000000..5521148 --- /dev/null +++ b/scripts/run_module.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python3 + +import os +import sys +import json +import anthropic + +DISEASE_NAME = "Excessive frequent and irregular menstruation" +OUTPUT_FILE = "excessive_frequent_and_irregular_menstruation.json" + +# Initialize the Anthropic client with your API key +client = anthropic.Anthropic( + # This is the default and can be omitted + api_key=os.environ.get("ANTHROPIC_API_KEY"), +) + +# Define the prompt for generating the module +def generate_module_prompt(disease_name): + return f""" +You are a medical expert creating a disease module for the Synthea patient simulation system. +I need you to create a structured JSON module for {disease_name}. + +The module will be used to simulate patients with this condition in the Synthea healthcare simulation system. +The JSON should follow the Synthea module format which includes: + +1. Basic module information (name, remarks) +2. States representing the progression of the disease +3. Transitions between states +4. Guard conditions based on patient attributes where appropriate +5. Care plans and medications that would be prescribed + +Your output should be valid JSON that follows the Synthea module structure precisely. Format it as a complete, +well-structured Synthea module. Make sure it's medically accurate and includes all relevant clinical details, +treatment options, and disease progression patterns. + +Output only the JSON with no additional commentary or markdown formatting. The output will be directly saved as a file. +""" + +print(f"Generating module for {DISEASE_NAME}...") + +try: + # Send a message to Claude + message = client.messages.create( + model="claude-3-7-sonnet-20250219", + max_tokens=4000, + temperature=0, + messages=[ + {"role": "user", "content": generate_module_prompt(DISEASE_NAME)} + ] + ) + + # Extract the JSON from the response + module_json = message.content[0].text + + # Find the first '{' and last '}' to extract just the JSON part + start = module_json.find('{') + end = module_json.rfind('}') + 1 + if start >= 0 and end > start: + module_json = module_json[start:end] + + # Parse and format the JSON + parsed = json.loads(module_json) + formatted_json = json.dumps(parsed, indent=2) + + # Write to file + with open(OUTPUT_FILE, 'w') as f: + f.write(formatted_json) + + print(f"✅ Successfully generated module and saved to {OUTPUT_FILE}") + +except Exception as e: + print(f"Error: {e}") + # Save the raw response for debugging + with open("error_output.txt", 'w') as f: + f.write(str(e)) + print("Error details saved to error_output.txt") + sys.exit(1) \ No newline at end of file diff --git a/scripts/run_pipeline.sh b/scripts/run_pipeline.sh new file mode 100755 index 0000000..6a51991 --- /dev/null +++ b/scripts/run_pipeline.sh @@ -0,0 +1,182 @@ +#!/bin/bash +# run_pipeline.sh +# +# This script runs the Nextflow pipeline for generating disease modules and synthetic patients + +set -e # Exit on error + +# Default values +DISEASE_NAME="" +FORCE_GENERATE=false +GENERATE_PATIENTS=false +POPULATION=100 +GENDER=0.5 +MIN_AGE=0 +MAX_AGE=90 +SEED="" +ANALYZE_DATA=false +REPORT_FORMAT="html" +VERIFY_DOCKER=true + +# Parse command line arguments +function show_help { + echo "Usage: $0 [options] --disease \"Disease Name\"" + echo "" + echo "Options:" + echo " --disease, -d NAME Disease name to generate a module for (required)" + echo " --force-generate, -f Force regeneration of disease module even if it exists" + echo " --patients, -p Generate synthetic patients (default: false)" + echo " --population, -n NUM Number of patients to generate (default: 100)" + echo " --gender, -g VALUE Gender distribution (0-1 for % female, default: 0.5)" + echo " --min-age, -a NUM Minimum patient age (default: 0)" + echo " --max-age, -m NUM Maximum patient age (default: 90)" + echo " --seed, -s SEED Random seed for reproducibility" + echo " --analyze, -A Analyze patient data after generation" + echo " --report-format, -r FMT Report format for analysis (html, json, csv, default: html)" + echo " --skip-docker-check Skip Docker container verification" + echo " --help, -h Show this help message" + echo "" + echo "Example:" + echo " $0 --disease \"Multiple Sclerosis\" --patients --population 50" + exit 1 +} + +# Parse arguments +while [[ $# -gt 0 ]]; do + case "$1" in + --disease|-d) + DISEASE_NAME="$2" + shift 2 + ;; + --force-generate|-f) + FORCE_GENERATE=true + shift + ;; + --patients|-p) + GENERATE_PATIENTS=true + shift + ;; + --population|-n) + POPULATION="$2" + shift 2 + ;; + --gender|-g) + GENDER="$2" + shift 2 + ;; + --min-age|-a) + MIN_AGE="$2" + shift 2 + ;; + --max-age|-m) + MAX_AGE="$2" + shift 2 + ;; + --seed|-s) + SEED="$2" + shift 2 + ;; + --analyze|-A) + ANALYZE_DATA=true + shift + ;; + --report-format|-r) + REPORT_FORMAT="$2" + shift 2 + ;; + --skip-docker-check) + VERIFY_DOCKER=false + shift + ;; + --help|-h) + show_help + ;; + *) + echo "Unknown option: $1" + show_help + ;; + esac +done + +# Check if disease name is provided +if [ -z "$DISEASE_NAME" ]; then + echo "ERROR: Disease name is required!" + show_help +fi + +# Check if Docker container is running if we need to generate patients +if [ "$VERIFY_DOCKER" = true ] && [ "$GENERATE_PATIENTS" = true ]; then + CONTAINER_RUNNING=$(docker ps | grep synthea | wc -l) + if [ "$CONTAINER_RUNNING" -eq 0 ]; then + echo "No Synthea Docker containers are running!" + echo "Running environment setup script to start containers..." + + if [ -f "./scripts/prepare_environment.sh" ]; then + ./scripts/prepare_environment.sh + elif [ -f "./prepare_environment.sh" ]; then + ./prepare_environment.sh + else + echo "ERROR: prepare_environment.sh not found!" + exit 1 + fi + else + echo "Synthea Docker container is running. Proceeding with pipeline execution." + fi +fi + +# Create params.json file with our configuration +echo "Creating params.json file with pipeline configuration..." +cat > params.json << EOF +{ + "disease_name": "$DISEASE_NAME", + "modules_dir": "modules", + "output_dir": "output", + "generate_patients": $GENERATE_PATIENTS, + "population": $POPULATION, + "gender": $GENDER, + "min_age": $MIN_AGE, + "max_age": $MAX_AGE, + "analyze_patient_data": $ANALYZE_DATA, + "report_format": "$REPORT_FORMAT", + "force_generate": $FORCE_GENERATE, + "publish_dir": "published_output" +EOF + +# Add seed if provided +if [ ! -z "$SEED" ]; then + echo ", \"seed\": $SEED" >> params.json +fi + +# Close JSON object +echo "}" >> params.json + +# Display execution details +echo "==================================================" +echo "Running Synthea Pipeline for: $DISEASE_NAME" +echo "Generate patients: $GENERATE_PATIENTS" +if [ "$GENERATE_PATIENTS" = true ]; then + echo "Population: $POPULATION" + echo "Gender ratio (proportion female): $GENDER" + echo "Age range: $MIN_AGE-$MAX_AGE" + if [ ! -z "$SEED" ]; then + echo "Random seed: $SEED" + fi +fi +echo "Force module generation: $FORCE_GENERATE" +echo "Analyze patient data: $ANALYZE_DATA" +echo "==================================================" + +# Execute the Nextflow command +echo "Starting Nextflow pipeline..." +nextflow run main.nf + +echo "" +echo "Pipeline execution complete!" +if [ "$GENERATE_PATIENTS" = true ]; then + echo "Check the 'output' directory and 'published_output/$DISEASE_NAME_NORMALIZED' for generated patient data." + if [ "$ANALYZE_DATA" = true ]; then + echo "Analysis reports can be found in 'published_output/$DISEASE_NAME_NORMALIZED/analysis'." + fi +fi +echo "Generated modules can be found in the 'modules' directory and 'published_output/modules'." +echo "" \ No newline at end of file diff --git a/scripts/simple_module.py b/scripts/simple_module.py new file mode 100755 index 0000000..c1dc158 --- /dev/null +++ b/scripts/simple_module.py @@ -0,0 +1,99 @@ +#!/usr/bin/env python3 + +import os +import sys +import json +import anthropic + +DISEASE_NAME = "Excessive frequent and irregular menstruation" +OUTPUT_FILE = "excessive_frequent_and_irregular_menstruation.json" + +# Initialize the Anthropic client +client = anthropic.Anthropic() + +print(f"Generating module for {DISEASE_NAME}...") + +try: + # Send a message to Claude + message = client.messages.create( + model="claude-3-7-sonnet-20250219", + max_tokens=4000, + temperature=0, + messages=[ + {"role": "user", "content": f"""Create a Synthea disease module for {DISEASE_NAME} in JSON format. + +The module should follow this structure: +{{ + "name": "Module Name", + "remarks": [ + "Description of the module" + ], + "states": {{ + "Initial": {{ + "type": "Initial", + "direct_transition": "Next State" + }}, + "Terminal": {{ + "type": "Terminal" + }} + // Additional states with appropriate transitions + }} +}} + +Make sure the JSON is properly formatted with no syntax errors. +Do not include any markdown formatting, comments, or explanations outside the JSON. +Output only the valid JSON object."""} + ] + ) + + # Extract the JSON from the response + module_json = message.content[0].text + + # Save the raw response for debugging + with open(f"{OUTPUT_FILE}.raw", "w") as f: + f.write(module_json) + + print(f"Raw response saved to {OUTPUT_FILE}.raw") + + # Find the first { and last } to extract just the JSON part + start = module_json.find("{") + end = module_json.rfind("}") + 1 + if start >= 0 and end > start: + module_json = module_json[start:end] + + # Fix common JSON issues + try: + # Manual cleaning of known JSON issues + # Find and remove lines with invalid syntax + cleaned_lines = [] + for line in module_json.split('\n'): + # Skip lines with "{%" or any other invalid JSON syntax + if "{%" in line or "%}" in line or "//" in line: + print(f"Removing invalid line: {line}") + continue + cleaned_lines.append(line) + + cleaned_json = '\n'.join(cleaned_lines) + + # Try to parse and fix the JSON + parsed = json.loads(cleaned_json) + formatted_json = json.dumps(parsed, indent=2) + + # Write to file + with open(OUTPUT_FILE, "w") as f: + f.write(formatted_json) + + print(f"Successfully generated module and saved to {OUTPUT_FILE}") + except json.JSONDecodeError as e: + print(f"JSON parsing error: {e}") + print("Attempting secondary cleaning method...") + + # Write the error details for debugging + with open(f"{OUTPUT_FILE}.error", "w") as f: + f.write(f"Error: {str(e)}\n\n") + f.write("JSON that failed to parse:\n") + f.write(module_json) + +except Exception as e: + print(f"Error: {e}") + sys.exit(1) \ No newline at end of file diff --git a/scripts/test.py b/scripts/test.py new file mode 100644 index 0000000..ec917a9 --- /dev/null +++ b/scripts/test.py @@ -0,0 +1 @@ +import anthropic; import os; client = anthropic.Anthropic(); print(client.messages.create(model="claude-3-7-sonnet-20250219", max_tokens=1000, messages=[{"role": "user", "content": "Hello"}]).content[0].text) diff --git a/scripts/test_module_exists.py b/scripts/test_module_exists.py new file mode 100755 index 0000000..7341658 --- /dev/null +++ b/scripts/test_module_exists.py @@ -0,0 +1,123 @@ +#!/usr/bin/env python3 +""" +Simple script to check if a module exists for a given disease and generate it if not. +""" + +import os +import sys +import json +import subprocess +import re + +# Constants +DISEASE_NAME = sys.argv[1] if len(sys.argv) > 1 else "Excessive frequent and irregular menstruation" +MODULES_DIR = "src/main/resources/modules" +RUN_MODULE_GENERATOR_PATH = "src/main/python/run_module_generator.py" +DISEASE_LIST_PATH = "src/main/resources/disease_list.json" + +# Function to normalize disease name for filenames +def normalize_filename(name): + """Convert disease name to normalized filename format.""" + filename = name.lower() + filename = re.sub(r'[^a-zA-Z0-9]', '_', filename) + filename = re.sub(r'_+', '_', filename) + filename = filename.strip('_') + return filename + +# Main function +def main(): + print(f"Checking if module exists for: {DISEASE_NAME}") + + # Normalize disease name for filename + normalized_name = normalize_filename(DISEASE_NAME) + module_path = os.path.join(MODULES_DIR, f"{normalized_name}.json") + + # Check if module already exists + if os.path.exists(module_path): + print(f"✅ Module already exists at: {module_path}") + return + + print(f"❌ Module not found at: {module_path}") + print(f"Creating disease list entry for {DISEASE_NAME}...") + + # Create temporary disease list with just this disease + create_disease_list(DISEASE_NAME) + + # Run the module generator + print(f"Running module generator for {DISEASE_NAME}...") + try: + result = subprocess.run( + [sys.executable, RUN_MODULE_GENERATOR_PATH, "--batch-size", "1"], + capture_output=True, + text=True, + check=True + ) + + print("Module generator output:") + print(result.stdout) + + # Check if module was created + if os.path.exists(module_path): + print(f"✅ Module created successfully at: {module_path}") + else: + print(f"❌ Module generation failed, file not found at: {module_path}") + print("Error output:") + print(result.stderr) + except subprocess.CalledProcessError as e: + print(f"Error running module generator: {e}") + print("STDOUT:") + print(e.stdout) + print("STDERR:") + print(e.stderr) + +def create_disease_list(disease_name): + """Create a temporary disease list with just the requested disease.""" + disease_list = [] + + # Try to read original disease list if it exists + if os.path.exists(DISEASE_LIST_PATH): + try: + with open(DISEASE_LIST_PATH, 'r') as f: + original_diseases = json.load(f) + + # Check if our disease already exists + name_lower = disease_name.lower() + for disease in original_diseases: + if disease.get("disease_name", "").lower() == name_lower: + disease_list.append(disease) + print(f"Found existing disease entry for '{disease_name}'") + break + else: + # Disease not found in list + disease_list.append({ + "id": "", # ICD-10 code (empty as we don't have it) + "disease_name": disease_name, + "ICD-10_name": disease_name + }) + print(f"Created new disease entry for '{disease_name}'") + except Exception as e: + print(f"Error reading disease list: {e}") + # Create new entry + disease_list.append({ + "id": "", + "disease_name": disease_name, + "ICD-10_name": disease_name + }) + else: + # Create new entry + disease_list.append({ + "id": "", + "disease_name": disease_name, + "ICD-10_name": disease_name + }) + print(f"Created new disease list with '{disease_name}'") + + # Save disease list + os.makedirs(os.path.dirname(DISEASE_LIST_PATH), exist_ok=True) + with open(DISEASE_LIST_PATH, 'w') as f: + json.dump(disease_list, f, indent=2) + + print(f"Saved disease list with {len(disease_list)} entries.") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/scripts/validate_module.py b/scripts/validate_module.py new file mode 100755 index 0000000..22d6981 --- /dev/null +++ b/scripts/validate_module.py @@ -0,0 +1,305 @@ +#!/usr/bin/env python3 +""" +Disease Module Validator for Synthea + +This script validates a Synthea disease module for JSON correctness and +checks for common issues in the module structure. + +Usage: +python validate_module.py +""" + +import json +import sys +import os +import re + +def color_text(text, color_code): + """Add color to terminal output""" + return f"\033[{color_code}m{text}\033[0m" + +def red(text): + return color_text(text, "91") + +def green(text): + return color_text(text, "92") + +def yellow(text): + return color_text(text, "93") + +def check_required_fields(module_json): + """Check if the module has all required fields""" + required_fields = ['name', 'states', 'gmf_version'] + missing_fields = [] + + for field in required_fields: + if field not in module_json: + missing_fields.append(field) + + return missing_fields + +def check_transitions(module_json): + """Check if all transitions are valid""" + errors = [] + + # Skip if no states + if 'states' not in module_json: + return ["No 'states' field found"] + + states = module_json['states'] + state_names = set(states.keys()) + + # Check each state + for state_name, state_config in states.items(): + # Skip Terminal states (they should not have transitions) + if state_config.get('type') == 'Terminal': + continue + + # Check if the state has any transition + transition_found = False + transition_types = ['direct_transition', 'distributed_transition', + 'conditional_transition', 'complex_transition'] + + for transition_type in transition_types: + if transition_type in state_config: + transition_found = True + + # Check direct transitions + if transition_type == 'direct_transition': + target = state_config[transition_type] + if target not in state_names: + errors.append(f"State '{state_name}' has invalid direct_transition to non-existent state '{target}'") + + # Check distributed transitions + elif transition_type == 'distributed_transition': + for transition in state_config[transition_type]: + if 'transition' in transition and transition['transition'] not in state_names: + errors.append(f"State '{state_name}' has invalid distributed_transition to non-existent state '{transition['transition']}'") + + # Check conditional transitions + elif transition_type == 'conditional_transition': + for transition in state_config[transition_type]: + if 'transition' in transition and transition['transition'] not in state_names: + errors.append(f"State '{state_name}' has invalid conditional_transition to non-existent state '{transition['transition']}'") + + # Check complex transitions + elif transition_type == 'complex_transition': + for transition in state_config[transition_type]: + if 'transition' in transition and transition['transition'] not in state_names: + errors.append(f"State '{state_name}' has invalid complex_transition to non-existent state '{transition['transition']}'") + if 'distributions' in transition: + for dist in transition['distributions']: + if 'transition' in dist and dist['transition'] not in state_names: + errors.append(f"State '{state_name}' has invalid complex_transition distribution to non-existent state '{dist['transition']}'") + + if not transition_found and state_config.get('type') != 'Terminal': + errors.append(f"State '{state_name}' has no transition defined") + + return errors + +def check_codes(module_json): + """Check if medical codes are properly formatted""" + warnings = [] + + json_str = json.dumps(module_json) + + # Check for codes in common formats + code_patterns = { + 'SNOMED-CT': r'"system":\s*"SNOMED-CT",\s*"code":\s*"[0-9]+"', + 'LOINC': r'"system":\s*"LOINC",\s*"code":\s*"[0-9\\-]+"', + 'RxNorm': r'"system":\s*"RxNorm",\s*"code":\s*"[0-9]+"', + 'ICD-10': r'"system":\s*"ICD-10",\s*"code":\s*"[A-Z][0-9]+"' + } + + for code_type, pattern in code_patterns.items(): + if not re.search(pattern, json_str): + warnings.append(f"No {code_type} codes found. This may be normal depending on the module.") + + return warnings + +def check_prevalence(module_json): + """Check if prevalence information exists""" + warnings = [] + + json_str = json.dumps(module_json) + + # Check for prevalence patterns + if not any(pat in json_str for pat in ['"prevalence"', 'incidence', 'probability']): + warnings.append("No prevalence, incidence, or probability data found. This may affect realism.") + + return warnings + +def check_circular_references(module_json): + """Check for circular references between states""" + errors = [] + + # Skip if no states + if 'states' not in module_json: + return [] + + states = module_json['states'] + + # Build a directed graph representation + graph = {} + for state_name in states: + graph[state_name] = [] + + # Add edges to the graph + for state_name, state_config in states.items(): + # Add direct transitions + if 'direct_transition' in state_config: + target = state_config['direct_transition'] + graph[state_name].append(target) + + # Add distributed transitions + if 'distributed_transition' in state_config: + for transition in state_config['distributed_transition']: + if 'transition' in transition: + graph[state_name].append(transition['transition']) + + # Add conditional transitions + if 'conditional_transition' in state_config: + for transition in state_config['conditional_transition']: + if 'transition' in transition: + graph[state_name].append(transition['transition']) + + # Add complex transitions + if 'complex_transition' in state_config: + for transition in state_config['complex_transition']: + if 'transition' in transition: + graph[state_name].append(transition['transition']) + + # Check for cycles in the graph (simplified check) + visited = set() + path = [] + + def dfs(node): + visited.add(node) + path.append(node) + + for neighbor in graph[node]: + if neighbor in path: + # Found a cycle + cycle_start = path.index(neighbor) + errors.append(f"Circular reference detected: {' -> '.join(path[cycle_start:] + [neighbor])}") + elif neighbor not in visited: + dfs(neighbor) + + path.pop() + + # Run DFS from all states to find cycles + for state_name in states: + if state_name not in visited: + dfs(state_name) + + return errors + +def main(): + if len(sys.argv) != 2: + print(f"Usage: python {sys.argv[0]} ") + sys.exit(1) + + module_path = sys.argv[1] + + if not os.path.exists(module_path): + print(red(f"Error: File {module_path} does not exist")) + sys.exit(1) + + try: + with open(module_path, 'r') as f: + content = f.read() + + # First check for valid JSON + try: + module_json = json.loads(content) + print(green("✓ Valid JSON structure")) + except json.JSONDecodeError as e: + print(red(f"✗ Invalid JSON: {e}")) + + # Try to fix common issues + print(yellow("Attempting to fix common JSON issues...")) + + # Fix trailing commas + fixed_content = re.sub(r',\s*}', '}', content) + fixed_content = re.sub(r',\s*]', ']', fixed_content) + + # Count braces + open_braces = fixed_content.count('{') + close_braces = fixed_content.count('}') + + if open_braces > close_braces: + print(yellow(f"Adding {open_braces - close_braces} missing closing braces")) + fixed_content += '}' * (open_braces - close_braces) + elif close_braces > open_braces: + print(yellow(f"Removing {close_braces - open_braces} excess closing braces")) + for _ in range(close_braces - open_braces): + fixed_content = fixed_content.rstrip().rstrip('}') + '}' + + try: + module_json = json.loads(fixed_content) + print(green("✓ Fixed JSON issues successfully")) + + # Write the fixed content back to the file + with open(module_path, 'w') as f: + f.write(json.dumps(module_json, indent=2)) + + except json.JSONDecodeError as e: + print(red(f"✗ Could not fix JSON: {e}")) + sys.exit(1) + + # Check required fields + missing_fields = check_required_fields(module_json) + if missing_fields: + print(red(f"✗ Missing required fields: {', '.join(missing_fields)}")) + else: + print(green("✓ All required fields present")) + + # Check for invalid transitions + transition_errors = check_transitions(module_json) + if transition_errors: + print(red("✗ Invalid transitions found:")) + for error in transition_errors: + print(red(f" - {error}")) + else: + print(green("✓ All transitions valid")) + + # Check for circular references + circular_errors = check_circular_references(module_json) + if circular_errors: + print(red("✗ Circular references found:")) + for error in circular_errors: + print(red(f" - {error}")) + else: + print(green("✓ No circular references detected")) + + # Check for medical codes + code_warnings = check_codes(module_json) + if code_warnings: + print(yellow("⚠ Possible code issues:")) + for warning in code_warnings: + print(yellow(f" - {warning}")) + else: + print(green("✓ Medical codes look good")) + + # Check for prevalence information + prevalence_warnings = check_prevalence(module_json) + if prevalence_warnings: + print(yellow("⚠ Possible prevalence issues:")) + for warning in prevalence_warnings: + print(yellow(f" - {warning}")) + else: + print(green("✓ Prevalence information looks good")) + + # Display module stats + print("\nModule Statistics:") + print(f"- Name: {module_json.get('name', 'Unknown')}") + print(f"- GMF Version: {module_json.get('gmf_version', 'Unknown')}") + print(f"- States: {len(module_json.get('states', {}))}") + print(f"- Remarks: {len(module_json.get('remarks', []))}") + + except Exception as e: + print(red(f"Error: {e}")) + sys.exit(1) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/simple.nf b/simple.nf new file mode 100644 index 0000000..3681f74 --- /dev/null +++ b/simple.nf @@ -0,0 +1,77 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl=2 + +// Default parameters +params.disease_name = "Diabetes" // Default disease name +params.output_dir = "output" // Output directory +params.modules_dir = "modules" // Directory for module files + +// Process to generate synthetic patients +process generatePatients { + publishDir "${params.output_dir}/${params.disease_name.toLowerCase().replaceAll(' ', '_')}", mode: 'copy' + + input: + path moduleFile + + output: + path "**" + + script: + """ + echo "Module file: ${moduleFile}" + echo "Disease: ${params.disease_name}" + + # Check if Docker is available + if command -v docker &>/dev/null; then + echo "Docker is available, looking for Synthea container..." + + # Find the Synthea container + container_id=\$(docker ps --format '{{.ID}}' --filter "name=synthea" | head -1) + + if [ -n "\$container_id" ]; then + echo "Using Synthea container \$container_id" + + # Copy module to container + docker exec \$container_id mkdir -p /app/modules + docker cp "${moduleFile}" \$container_id:/app/modules/ + + # Run Synthea with minimal parameters + docker exec \$container_id bash -c "cd /app && ./run_synthea -p 1 -m ${params.disease_name.toLowerCase().replaceAll(' ', '_')}" + + # Copy output from container + docker cp \$container_id:/app/output/fhir ./ || mkdir -p ./fhir + docker cp \$container_id:/app/output/metadata ./ || mkdir -p ./metadata + + echo "Completed patient generation" + else + echo "No Synthea container found, creating mock output for testing" + mkdir -p ./fhir ./metadata + echo "Mock FHIR data for ${params.disease_name}" > ./fhir/mock_patient.json + echo "Mock metadata for ${params.disease_name}" > ./metadata/mock_stats.json + fi + else + echo "Docker not available, creating mock output for testing" + mkdir -p ./fhir ./metadata + echo "Mock FHIR data for ${params.disease_name}" > ./fhir/mock_patient.json + echo "Mock metadata for ${params.disease_name}" > ./metadata/mock_stats.json + fi + """ +} + +// Define workflow +workflow { + // Prepare module file + moduleFilename = params.disease_name.toLowerCase().replaceAll(' ', '_') + '.json' + moduleFile = file("${params.modules_dir}/${moduleFilename}") + + if (!moduleFile.exists()) { + error "Module file not found: ${moduleFile}" + } + + // Create a channel with the module file + moduleChannel = Channel.fromPath(moduleFile) + + // Generate patients + generatePatients(moduleChannel) +} \ No newline at end of file diff --git a/src/main/resources/disease/custom_disease_list.json b/src/main/resources/disease/custom_disease_list.json new file mode 100644 index 0000000..95937df --- /dev/null +++ b/src/main/resources/disease/custom_disease_list.json @@ -0,0 +1,8 @@ +[ + { + "disease_name": "Hypertension", + "id": "X99", + "ICD-10_name": "Hypertension", + "snomed": "123456789" + } +] diff --git a/src/main/resources/disease/disease_list.csv b/src/main/resources/disease/disease_list.csv new file mode 100644 index 0000000..5a3d8a4 --- /dev/null +++ b/src/main/resources/disease/disease_list.csv @@ -0,0 +1,1129 @@ +id,disease_name,disease_category +I08,Multiple valve diseases,Circulatory System +I10,Essential (primary) hypertension,Circulatory System +I12,Hypertensive renal disease,Circulatory System +I20,Angina pectoris,Circulatory System +I21,Acute myocardial infarction,Circulatory System +I22,Subsequent myocardial infarction,Circulatory System +I24,Other acute ischaemic heart diseases,Circulatory System +I25,Chronic ischaemic heart disease,Circulatory System +I26,Pulmonary embolism,Circulatory System +I27,Other pulmonary heart diseases,Circulatory System +I30,Acute pericarditis,Circulatory System +I31,Other diseases of pericardium,Circulatory System +I33,Acute and subacute endocarditis,Circulatory System +I34,Nonrheumatic mitral valve disorders,Circulatory System +I35,Nonrheumatic aortic valve disorders,Circulatory System +I42,Cardiomyopathy,Circulatory System +I44,Atrioventricular and left bundle-branch block,Circulatory System +I45,Other conduction disorders,Circulatory System +I46,Cardiac arrest,Circulatory System +I47,Paroxysmal tachycardia,Circulatory System +I48,Atrial fibrillation and flutter,Circulatory System +I49,Other cardiac arrhythmias,Circulatory System +I50,Heart failure,Circulatory System +I51,Complications and ill-defined descriptions of heart disease,Circulatory System +I60,Subarachnoid haemorrhage,Circulatory System +I61,Intracerebral haemorrhage,Circulatory System +I62,Other nontraumatic intracranial haemorrhage,Circulatory System +I63,Cerebral infarction,Circulatory System +I64,Stroke not specified as haemorrhage or infarction,Circulatory System +I65,Occlusion and stenosis of precerebral arteries not resulting in cerebral infarction,Circulatory System +I67,Other cerebrovascular diseases,Circulatory System +I70,Atherosclerosis,Circulatory System +I71,Aortic aneurysm and dissection,Circulatory System +I72,Other aneurysm,Circulatory System +I73,Other peripheral vascular diseases,Circulatory System +I74,Arterial embolism and thrombosis,Circulatory System +I77,Other disorders of arteries and arterioles,Circulatory System +I78,Diseases of capillaries,Circulatory System +I80,Phlebitis and thrombophlebitis,Circulatory System +I82,Other venous embolism and thrombosis,Circulatory System +I83,Varicose veins of lower extremities,Circulatory System +I84,Haemorrhoids,Circulatory System +I85,Oesophageal varices,Circulatory System +I86,Varicose veins of other sites,Circulatory System +I87,Other disorders of veins,Circulatory System +I89,Other non-infective disorders of lymphatic vessels and lymph nodes,Circulatory System +I9_ARTEMBTHR,Arterial embolism and thrombosis,Circulatory System +I9_ARTEMBTHRLOW,Arterial embolism and thrombosis of lower extremity artery,Circulatory System +I9_CEREBDOTH,Other specified cerebrovascular diseases other cerebrovascular disorders in diseases classified elsewhere,Circulatory System +I9_CONDUCTIO,Conduction disorders,Circulatory System +I9_CORATHER,Coronary atherosclerosis,Circulatory System +I9_DISVEINLYMPH,Diseases of veins lymphatic vessels and lymph nodes not elsewhere classified,Circulatory System +I9_DVTANDPULM,DVT of lower extremities and pulmonary embolism,Circulatory System +I9_ENDOCARD,Endocarditis,Circulatory System +I9_OTHOTH,Other other unspecified disorders of the circulatory system,Circulatory System +I9_PERICARD,Pericarditis,Circulatory System +I9_VTE,Venous thromboembolism,Circulatory System +I95,Hypotension,Circulatory System +III_BLOOD_IMMUN,Diseases of the blood and blood-forming organs and certain disorders involving the immune mechanism,Circulatory System +IX_CIRCULATORY,Diseases of the circulatory system,Circulatory System +Q18,Other congenital malformations of face and neck,"Congenital Malformations, Deformations and Chromosomal Abnormalities" +Q21,Congenital malformations of cardiac septa,"Congenital Malformations, Deformations and Chromosomal Abnormalities" +Q38,Other congenital malformations of tongue mouth and pharynx,"Congenital Malformations, Deformations and Chromosomal Abnormalities" +Q66,Congenital deformities of feet,"Congenital Malformations, Deformations and Chromosomal Abnormalities" +Q82,Other congenital malformations of skin,"Congenital Malformations, Deformations and Chromosomal Abnormalities" +K00,Disorders of tooth development and eruption,Digestive System +K01,Embedded and impacted teeth,Digestive System +K02,Dental caries,Digestive System +K04,Diseases of pulp and periapical tissues,Digestive System +K05,Gingivitis and periodontal diseases,Digestive System +K06,Other disorders of gingiva and edentulous alveolar ridge,Digestive System +K07,Dentofacial anomalies [including malocclusion],Digestive System +K08,Other disorders of teeth and supporting structures,Digestive System +K09,Cysts of oral region not elsewhere classified,Digestive System +K10,Other diseases of jaws,Digestive System +K11,Diseases of salivary glands,Digestive System +K11_ACUTGASTR,Acute gastritis,Digestive System +K11_APPENDIX,Diseases of appendix,Digestive System +K11_APPENDOTH,Other appendicitis,Digestive System +K11_CHOLANGI,Cholangitis (sclerosing),Digestive System +K11_CHRONGASTR,Chronic gastritis,Digestive System +K11_CHRONPANC,Chronic pancreatitis,Digestive System +K11_LIVER,Diseases of liver,Digestive System +K11_OTHGASTR,Other gastritis (incl. Duodenitis),Digestive System +K11_PERITON,Diseases of peritoneum,Digestive System +K12,Stomatitis and related lesions,Digestive System +K13,Other diseases of lip and oral mucosa,Digestive System +K14,Diseases of tongue,Digestive System +K20,Oesophagitis,Digestive System +K21,Gastro-oesophageal reflux disease,Digestive System +K22,Other diseases of oesophagus,Digestive System +K25,Gastric ulcer,Digestive System +K26,Duodenal ulcer,Digestive System +K29,Gastritis and duodenitis,Digestive System +K30,Dyspepsia,Digestive System +K31,Other diseases of stomach and duodenum,Digestive System +K35,Acute appendicitis,Digestive System +K37,Unspecified appendicitis,Digestive System +K38,Other diseases of appendix,Digestive System +K40,Inguinal hernia,Digestive System +K41,Femoral hernia,Digestive System +K42,Umbilical hernia,Digestive System +K43,Ventral hernia,Digestive System +K44,Diaphragmatic hernia,Digestive System +K46,Unspecified abdominal hernia,Digestive System +K50,Crohn's disease [regional enteritis],Digestive System +K51,Ulcerative colitis,Digestive System +K52,Other non-infective gastro-enteritis and colitis,Digestive System +K55,Vascular disorders of intestine,Digestive System +K56,Paralytic ileus and intestinal obstruction without hernia,Digestive System +K57,Diverticular disease of intestine,Digestive System +K58,Irritable bowel syndrome,Digestive System +K59,Other functional intestinal disorders,Digestive System +K60,Fissure and fistula of anal and rectal regions,Digestive System +K61,Abscess of anal and rectal regions,Digestive System +K62,Other diseases of anus and rectum,Digestive System +K63,Other diseases of intestine,Digestive System +K65,Peritonitis,Digestive System +K66,Other disorders of peritoneum,Digestive System +K70,Alcoholic liver disease,Digestive System +K74,Fibrosis and cirrhosis of liver,Digestive System +K75,Other inflammatory liver diseases,Digestive System +K76,Other diseases of liver,Digestive System +K80,Cholelithiasis,Digestive System +K81,Cholecystitis,Digestive System +K82,Other diseases of gallbladder,Digestive System +K83,Other diseases of biliary tract,Digestive System +K85,Acute pancreatitis,Digestive System +K86,Other diseases of pancreas,Digestive System +K90,Intestinal malabsorption,Digestive System +K91,Postprocedural disorders of digestive system not elsewhere classified,Digestive System +K92,Other diseases of digestive system,Digestive System +E03,Other hypothyroidism,"Endocrine, Nutritional, Metabolic" +E04,Other non-toxic goitre,"Endocrine, Nutritional, Metabolic" +E05,Thyrotoxicosis [hyperthyroidism],"Endocrine, Nutritional, Metabolic" +E10,Insulin-dependent diabetes mellitus,"Endocrine, Nutritional, Metabolic" +E11,Non-insulin-dependent diabetes mellitus,"Endocrine, Nutritional, Metabolic" +E14,Unspecified diabetes mellitus,"Endocrine, Nutritional, Metabolic" +E16,Other disorders of pancreatic internal secretion,"Endocrine, Nutritional, Metabolic" +E21,Hyperparathyroidism and other disorders of parathyroid gland,"Endocrine, Nutritional, Metabolic" +E22,Hyperfunction of pituitary gland,"Endocrine, Nutritional, Metabolic" +E23,Hypofunction and other disorders of pituitary gland,"Endocrine, Nutritional, Metabolic" +E27,Other disorders of adrenal gland,"Endocrine, Nutritional, Metabolic" +E4_DM1KETO,Type 1 diabetes with ketoacidosis,"Endocrine, Nutritional, Metabolic" +E4_THYTOXGOITDIF,Thyrotoxicosis with diffuse goitr,"Endocrine, Nutritional, Metabolic" +E4_THYTOXNAS,Thyrotoxicosis other and/or unspecified,"Endocrine, Nutritional, Metabolic" +E66,Obesity,"Endocrine, Nutritional, Metabolic" +E83,Disorders of mineral metabolism,"Endocrine, Nutritional, Metabolic" +E86,Volume depletion,"Endocrine, Nutritional, Metabolic" +E87,Other disorders of fluid electrolyte and acid-base balance,"Endocrine, Nutritional, Metabolic" +6147_4,astigmatism,"Eye and Adnexa, Ear and Mastoid Process" +6147_5,strabismus,"Eye and Adnexa, Ear and Mastoid Process" +H00,Hordeolum and chalazion,"Eye and Adnexa, Ear and Mastoid Process" +H01,Other inflammation of eyelid,"Eye and Adnexa, Ear and Mastoid Process" +H02,Other disorders of eyelid,"Eye and Adnexa, Ear and Mastoid Process" +H04,Disorders of lachrymal system,"Eye and Adnexa, Ear and Mastoid Process" +H05,Disorders of orbit,"Eye and Adnexa, Ear and Mastoid Process" +H11,Other disorders of conjunctiva,"Eye and Adnexa, Ear and Mastoid Process" +H16,Keratitis,"Eye and Adnexa, Ear and Mastoid Process" +H18,Other disorders of cornea,"Eye and Adnexa, Ear and Mastoid Process" +H25,Senile cataract,"Eye and Adnexa, Ear and Mastoid Process" +H26,Other cataract,"Eye and Adnexa, Ear and Mastoid Process" +H27,Other disorders of lens,"Eye and Adnexa, Ear and Mastoid Process" +H33,Retinal detachments and breaks,"Eye and Adnexa, Ear and Mastoid Process" +H34,Retinal vascular occlusions,"Eye and Adnexa, Ear and Mastoid Process" +H35,Other retinal disorders,"Eye and Adnexa, Ear and Mastoid Process" +H40,Glaucoma,"Eye and Adnexa, Ear and Mastoid Process" +H43,Disorders of vitreous body,"Eye and Adnexa, Ear and Mastoid Process" +H49,Paralytic strabismus,"Eye and Adnexa, Ear and Mastoid Process" +H50,Other strabismus,"Eye and Adnexa, Ear and Mastoid Process" +H52,Disorders of refraction and accommodation,"Eye and Adnexa, Ear and Mastoid Process" +H53,Visual disturbances,"Eye and Adnexa, Ear and Mastoid Process" +H57,Other disorders of eye and adnexa,"Eye and Adnexa, Ear and Mastoid Process" +H59,Postprocedural disorders of eye and adnexa not elsewhere classified,"Eye and Adnexa, Ear and Mastoid Process" +H60,Otitis externa,"Eye and Adnexa, Ear and Mastoid Process" +H61,Other disorders of external ear,"Eye and Adnexa, Ear and Mastoid Process" +H65,Nonsuppurative otitis media,"Eye and Adnexa, Ear and Mastoid Process" +H66,Suppurative and unspecified otitis media,"Eye and Adnexa, Ear and Mastoid Process" +H69,Other disorders of Eustachian tube,"Eye and Adnexa, Ear and Mastoid Process" +H7_CONJUNAS,Other specified and unspecified disorders of conjunctiva,"Eye and Adnexa, Ear and Mastoid Process" +H7_CONJUVASC,Other conjunctival vascular disorders and cysts,"Eye and Adnexa, Ear and Mastoid Process" +H7_CONVERSTRAB,Convergent concomitant strabismus,"Eye and Adnexa, Ear and Mastoid Process" +H7_CORNEALOTH,Other disorders of cornea,"Eye and Adnexa, Ear and Mastoid Process" +H7_DIVERGSTRAB,Divergent concomitant strabismus,"Eye and Adnexa, Ear and Mastoid Process" +H7_EYEADNEXOTH,Other specified and unspecified disorders of eye and adnexa,"Eye and Adnexa, Ear and Mastoid Process" +H7_EYELIDDIS,Other disorders of eyelid,"Eye and Adnexa, Ear and Mastoid Process" +H7_EYELIDFUNC,Other disorders affecting eyelid function,"Eye and Adnexa, Ear and Mastoid Process" +H7_EYELIDNAS,Other specified and unspecified disorders of eyelid,"Eye and Adnexa, Ear and Mastoid Process" +H7_EYEOTH,Other disorders of eye and adnexa,"Eye and Adnexa, Ear and Mastoid Process" +H7_EYEPOSTOP,Postprocedural disorders of eye and adnexa not elsewhere classified,"Eye and Adnexa, Ear and Mastoid Process" +H7_KERATITIS,Keratitis,"Eye and Adnexa, Ear and Mastoid Process" +H7_LACRIGLAND,Other disorders of lacrimal gland,"Eye and Adnexa, Ear and Mastoid Process" +H7_OTHERCONJ,Other disorders of conjunctiva,"Eye and Adnexa, Ear and Mastoid Process" +H7_PARASTRAB,Paralytic strabismus,"Eye and Adnexa, Ear and Mastoid Process" +H7_POSTOPEYENAS,Oher and unspecified postprocedural disorders of eye and adnexa,"Eye and Adnexa, Ear and Mastoid Process" +H7_PTOSIS,Ptosis of eyelid,"Eye and Adnexa, Ear and Mastoid Process" +H7_RETINALDISOTH,Other retinal disorders,"Eye and Adnexa, Ear and Mastoid Process" +H7_RETINANAS,Other specified and unspecified retinal disorders,"Eye and Adnexa, Ear and Mastoid Process" +H7_RETINAVASC,Retinal vascular disorders,"Eye and Adnexa, Ear and Mastoid Process" +H7_STENOLACRI,Stenosis and insufficiency of lacrimal passages,"Eye and Adnexa, Ear and Mastoid Process" +H7_STRABNAS,Other specified and unspecified strabismus,"Eye and Adnexa, Ear and Mastoid Process" +H7_STRABOTH,Other strabismus,"Eye and Adnexa, Ear and Mastoid Process" +H7_VITROTH,Other and unspecified disorders of vitreous body,"Eye and Adnexa, Ear and Mastoid Process" +H71,Cholesteatoma of middle ear,"Eye and Adnexa, Ear and Mastoid Process" +H72,Perforation of tympanic membrane,"Eye and Adnexa, Ear and Mastoid Process" +H73,Other disorders of tympanic membrane,"Eye and Adnexa, Ear and Mastoid Process" +H74,Other disorders of middle ear and mastoid,"Eye and Adnexa, Ear and Mastoid Process" +H8_CHRON_SUPOTITIS,Chronic suppurative otitis media,"Eye and Adnexa, Ear and Mastoid Process" +H8_EXT_NAS,Otitis externa unspecified,"Eye and Adnexa, Ear and Mastoid Process" +H8_EXTDISNAS,Other specified disorders of external ear,"Eye and Adnexa, Ear and Mastoid Process" +H8_EXTOTITIS,Otitis externa,"Eye and Adnexa, Ear and Mastoid Process" +H8_LABYRINTHITIS,Labyrinthitis,"Eye and Adnexa, Ear and Mastoid Process" +H8_MED_SUPP,Suppurative and unspecified otitis media,"Eye and Adnexa, Ear and Mastoid Process" +H8_MYRINGNAS,Other specified/unspecified disorders of tympanic membrane,"Eye and Adnexa, Ear and Mastoid Process" +H8_OTIMEDNAS,Otitis media unspecified,"Eye and Adnexa, Ear and Mastoid Process" +H8_PERCHRONDR,Perichondritis of external ear,"Eye and Adnexa, Ear and Mastoid Process" +H80,Otosclerosis,"Eye and Adnexa, Ear and Mastoid Process" +H81,Disorders of vestibular function,"Eye and Adnexa, Ear and Mastoid Process" +H83,Other diseases of inner ear,"Eye and Adnexa, Ear and Mastoid Process" +H90,Conductive and sensorineural hearing loss,"Eye and Adnexa, Ear and Mastoid Process" +H91,Other hearing loss,"Eye and Adnexa, Ear and Mastoid Process" +H92,Otalgia and effusion of ear,"Eye and Adnexa, Ear and Mastoid Process" +H93,Other disorders of ear not elsewhere classified,"Eye and Adnexa, Ear and Mastoid Process" +Z03,Medical observation and evaluation for suspected diseases and conditions,Factors Influencing Health Status and Contact with Health Services +Z29,Need for other prophylactic measures,Factors Influencing Health Status and Contact with Health Services +Z31,Procreative management,Factors Influencing Health Status and Contact with Health Services +Z34,Supervision of normal pregnancy,Factors Influencing Health Status and Contact with Health Services +Z35,Supervision of high-risk pregnancy,Factors Influencing Health Status and Contact with Health Services +Z46,Fitting and adjustment of other devices,Factors Influencing Health Status and Contact with Health Services +Z47,Other orthopaedic follow-up care,Factors Influencing Health Status and Contact with Health Services +Z50,Care involving use of rehabilitation procedures,Factors Influencing Health Status and Contact with Health Services +Z53,Persons encountering health services for specifie procedures not carried out,Factors Influencing Health Status and Contact with Health Services +Z71,Persons encountering health services for other counselling and medical advice not elsewhere classif,Factors Influencing Health Status and Contact with Health Services +Z76,Persons encountering health services in other circumstances,Factors Influencing Health Status and Contact with Health Services +Z85,Personal history of malignant neoplasm,Factors Influencing Health Status and Contact with Health Services +Z87,Personal history of other diseases and conditions,Factors Influencing Health Status and Contact with Health Services +N02,Recurrent and persistent haematuria,Genitourinary System +N10,Acute tubulo-interstitial nephritis,Genitourinary System +N12,Tubulo-interstitial nephritis not specified as acute or chronic,Genitourinary System +N13,Obstructive and reflux uropathy,Genitourinary System +N17,Acute renal failure,Genitourinary System +N18,Chronic renal failure,Genitourinary System +N19,Unspecified renal failure,Genitourinary System +N20,Calculus of kidney and ureter,Genitourinary System +N21,Calculus of lower urinary tract,Genitourinary System +N23,Unspecified renal colic,Genitourinary System +N28,Other disorders of kidney and ureter not elsewhere classified,Genitourinary System +N30,Cystitis,Genitourinary System +N31,Neuromuscular dysfunction of bladder not elsewhere classified,Genitourinary System +N32,Other disorders of bladder,Genitourinary System +N35,Urethral stricture,Genitourinary System +N36,Other disorders of urethra,Genitourinary System +N39,Other disorders of urinary system,Genitourinary System +N40,Hyperplasia of prostate,Genitourinary System +N41,Inflammatory diseases of prostate,Genitourinary System +N42,Other disorders of prostate,Genitourinary System +N43,Hydrocele and spermatocele,Genitourinary System +N45,Orchitis and epididymitis,Genitourinary System +N47,Redundant prepuce phimosis and paraphimosis,Genitourinary System +N48,Other disorders of penis,Genitourinary System +N49,Inflammatory disorders of male genital organs not elsewhere classified,Genitourinary System +N50,Other disorders of male genital organs,Genitourinary System +N60,Benign mammary dysplasia,Genitourinary System +N61,Inflammatory disorders of breast,Genitourinary System +N62,Hypertrophy of breast,Genitourinary System +N63,Unspecified lump in breast,Genitourinary System +N64,Other disorders of breast,Genitourinary System +N70,Salpingitis and oophoritis,Genitourinary System +N71,Inflammatory disease of uterus except cervix,Genitourinary System +N72,Inflammatory disease of cervix uteri,Genitourinary System +N73,Other female pelvic inflammatory diseases,Genitourinary System +N75,Diseases of Bartholin's gland,Genitourinary System +N76,Other inflammation of vagina and vulva,Genitourinary System +N80,Endometriosis,Genitourinary System +N81,Female genital prolapse,Genitourinary System +N82,Fistulae involving female genital tract,Genitourinary System +N83,Noninflammatory disorders of ovary Fallopian tube and broad ligament,Genitourinary System +N84,Polyp of female genital tract,Genitourinary System +N85,Other noninflammatory disorders of uterus except cervix,Genitourinary System +N86,Erosion and ectropion of cervix uteri,Genitourinary System +N87,Dysplasia of cervix uteri,Genitourinary System +N88,Other noninflammatory disorders of cervix uteri,Genitourinary System +N89,Other noninflammatory disorders of vagina,Genitourinary System +N90,Other noninflammatory disorders of vulva and perineum,Genitourinary System +N92,Excessive frequent and irregular menstruation,Genitourinary System +N93,Other abnormal uterine and vaginal bleeding,Genitourinary System +N94,Pain and other conditions associated with female genital organs and menstrual cycle,Genitourinary System +N95,Menopausal and other perimenopausal disorders,Genitourinary System +N97,Female infertility,Genitourinary System +N99,Postprocedural disorders of genito-urinary system not elsewhere classified,Genitourinary System +A04,Other bacterial intestinal infections,Infectious and Parasitic Diseases +A08,Viral and other specified intestinal infections,Infectious and Parasitic Diseases +A09,Diarrhoea and gastro-enteritis of presumed infectious origin,Infectious and Parasitic Diseases +A41,Other septicaemia,Infectious and Parasitic Diseases +A63,Other predominantly sexually transmitted diseases not elsewhere classified,Infectious and Parasitic Diseases +A87,Viral meningitis,Infectious and Parasitic Diseases +AB1_VIRAL_HEPATITIS,Viral hepatitis,Infectious and Parasitic Diseases +B02,Zoster [herpes zoster],Infectious and Parasitic Diseases +B07,Viral warts,Infectious and Parasitic Diseases +B18,Chronic viral hepatitis,Infectious and Parasitic Diseases +B34,Viral infection of unspecified site,Infectious and Parasitic Diseases +B37,Candidiasis,Infectious and Parasitic Diseases +BRONCHITIS,Bronchitis,Infectious and Parasitic Diseases +MENINGITIS,Meningitis,Infectious and Parasitic Diseases +PNEUMOBACTKNOWN,Bacterial pneumonia (organism specified),Infectious and Parasitic Diseases +S00,Superficial injury of head,"Injury, Poisoning, Certain Other Consequences of External Causes" +S01,Open wound of head,"Injury, Poisoning, Certain Other Consequences of External Causes" +S02,Fracture of skull and facial bones,"Injury, Poisoning, Certain Other Consequences of External Causes" +S05,Injury of eye and orbit,"Injury, Poisoning, Certain Other Consequences of External Causes" +S06,Intracranial injury,"Injury, Poisoning, Certain Other Consequences of External Causes" +S09,Other and unspecified injuries of head,"Injury, Poisoning, Certain Other Consequences of External Causes" +S12,Fracture of neck,"Injury, Poisoning, Certain Other Consequences of External Causes" +S20,Superficial injury of thorax,"Injury, Poisoning, Certain Other Consequences of External Causes" +S22,Fracture of rib(s) sternum and thoracic spine,"Injury, Poisoning, Certain Other Consequences of External Causes" +S27,Injury of other and unspecified intrathoracic organs,"Injury, Poisoning, Certain Other Consequences of External Causes" +S30,Superficial injury of abdomen lower back and pelvis,"Injury, Poisoning, Certain Other Consequences of External Causes" +S31,Open wound of abdomen lower back and pelvis,"Injury, Poisoning, Certain Other Consequences of External Causes" +S32,Fracture of lumbar spine and pelvis,"Injury, Poisoning, Certain Other Consequences of External Causes" +S39,Other and unspecified injuries of abdomen lower back and pelvis,"Injury, Poisoning, Certain Other Consequences of External Causes" +S42,Fracture of shoulder and upper arm,"Injury, Poisoning, Certain Other Consequences of External Causes" +S43,Dislocation sprain and strain of joints and ligaments of shoulder girdle,"Injury, Poisoning, Certain Other Consequences of External Causes" +S46,Injury of muscle and tendon at shoulder and upper arm level,"Injury, Poisoning, Certain Other Consequences of External Causes" +S51,Open wound of forearm,"Injury, Poisoning, Certain Other Consequences of External Causes" +S52,Fracture of forearm,"Injury, Poisoning, Certain Other Consequences of External Causes" +S56,Injury of muscle and tendon at forearm level,"Injury, Poisoning, Certain Other Consequences of External Causes" +S60,Superficial injury of wrist and hand,"Injury, Poisoning, Certain Other Consequences of External Causes" +S61,Open wound of wrist and hand,"Injury, Poisoning, Certain Other Consequences of External Causes" +S62,Fracture at wrist and hand level,"Injury, Poisoning, Certain Other Consequences of External Causes" +S63,Dislocation sprain and strain of joints and ligaments at wrist and hand level,"Injury, Poisoning, Certain Other Consequences of External Causes" +S64,Injury of nerves at wrist and hand level,"Injury, Poisoning, Certain Other Consequences of External Causes" +S66,Injury of muscle and tendon at wrist and hand level,"Injury, Poisoning, Certain Other Consequences of External Causes" +S67,Crushing injury of wrist and hand,"Injury, Poisoning, Certain Other Consequences of External Causes" +S68,Traumatic amputation of wrist and hand,"Injury, Poisoning, Certain Other Consequences of External Causes" +S69,Other and unspecified injuries of wrist and hand,"Injury, Poisoning, Certain Other Consequences of External Causes" +S70,Superficial injury of hip and thigh,"Injury, Poisoning, Certain Other Consequences of External Causes" +S72,Fracture of femur,"Injury, Poisoning, Certain Other Consequences of External Causes" +S76,Injury of muscle and tendon at hip and thigh level,"Injury, Poisoning, Certain Other Consequences of External Causes" +S80,Superficial injury of lower leg,"Injury, Poisoning, Certain Other Consequences of External Causes" +S81,Open wound of lower leg,"Injury, Poisoning, Certain Other Consequences of External Causes" +S82,Fracture of lower leg including ankle,"Injury, Poisoning, Certain Other Consequences of External Causes" +S83,Dislocation sprain and strain of joints and ligaments of knee,"Injury, Poisoning, Certain Other Consequences of External Causes" +S86,Injury of muscle and tendon at lower leg level,"Injury, Poisoning, Certain Other Consequences of External Causes" +S89,Other and unspecified injuries of lower leg,"Injury, Poisoning, Certain Other Consequences of External Causes" +S91,Open wound of ankle and foot,"Injury, Poisoning, Certain Other Consequences of External Causes" +S92,Fracture of foot except ankle,"Injury, Poisoning, Certain Other Consequences of External Causes" +S93,Dislocation sprain and strain of joints and ligaments at ankle and foot level,"Injury, Poisoning, Certain Other Consequences of External Causes" +T14,Injury of unspecified body region,"Injury, Poisoning, Certain Other Consequences of External Causes" +T17,Foreign body in respiratory tract,"Injury, Poisoning, Certain Other Consequences of External Causes" +T18,Foreign body in alimentary tract,"Injury, Poisoning, Certain Other Consequences of External Causes" +T78,Adverse effects not elsewhere classified,"Injury, Poisoning, Certain Other Consequences of External Causes" +T79,Certain early complications of trauma not elsewhere classified,"Injury, Poisoning, Certain Other Consequences of External Causes" +T81,Complications of procedures not elsewhere classified,"Injury, Poisoning, Certain Other Consequences of External Causes" +T82,Complications of cardiac and vascular prosthetic devices implants and grafts,"Injury, Poisoning, Certain Other Consequences of External Causes" +T83,Complications of genito-urinary prosthetic devices implants and grafts,"Injury, Poisoning, Certain Other Consequences of External Causes" +T84,Complications of internal orthopaedic prosthetic devices implants and grafts,"Injury, Poisoning, Certain Other Consequences of External Causes" +T85,Complications of other internal prosthetic devices implants and grafts,"Injury, Poisoning, Certain Other Consequences of External Causes" +T86,Failure and rejection of transplanted organs and tissues,"Injury, Poisoning, Certain Other Consequences of External Causes" +T87,Complications peculiar to reattachment and amputation,"Injury, Poisoning, Certain Other Consequences of External Causes" +T88,Other complications of surgical and medical care not elsewhere classified,"Injury, Poisoning, Certain Other Consequences of External Causes" +20544_14,Autism Asperger's or autistic spectrum disorder,Mental and Behavioral Disorders +20544_15,Anxiety nerves or generalized anxiety disorder,Mental and Behavioral Disorders +20544_3,Any other type of psychosis or psychotic illness,Mental and Behavioral Disorders +20544_4,A personality disorder,Mental and Behavioral Disorders +20544_7,Obsessive compulsive disorder (OCD),Mental and Behavioral Disorders +F05,Delirium not induced by alcohol and other psychoactive substances,Mental and Behavioral Disorders +F10,Mental and behavioural disorders due to use of alcohol,Mental and Behavioral Disorders +F20,Schizophrenia,Mental and Behavioral Disorders +F31,Bipolar affective disorder,Mental and Behavioral Disorders +F32,Depressive episode,Mental and Behavioral Disorders +F33,Recurrent depressive disorder,Mental and Behavioral Disorders +F41,Other anxiety disorders,Mental and Behavioral Disorders +F43,Reaction to severe stress and adjustment disorders,Mental and Behavioral Disorders +F45,Somatoform disorders,Mental and Behavioral Disorders +F5_ALLANXIOUS,All anxiety disorders,Mental and Behavioral Disorders +F5_ANXIETY,Other anxiety disorders,Mental and Behavioral Disorders +F5_MOOD,Mood [affective] disorders,Mental and Behavioral Disorders +F5_PANIC,Panic disorder,Mental and Behavioral Disorders +F5_PERSONALITY,Specific personality disorders,Mental and Behavioral Disorders +F5_SCHIZO,Schizophrenia schizotypal and delusional disorders,Mental and Behavioral Disorders +F52,Sexual dysfunction not caused by organic disorder or disease,Mental and Behavioral Disorders +F99,Mental disorder not otherwise specified,Mental and Behavioral Disorders +M00,Pyogenic arthritis,Musculoskeletal and Connective Tissue +M05,Seropositive rheumatoid arthritis,Musculoskeletal and Connective Tissue +M06,Other rheumatoid arthritis,Musculoskeletal and Connective Tissue +M10,Gout,Musculoskeletal and Connective Tissue +M13,Other arthritis,Musculoskeletal and Connective Tissue +M13_ACHILLESTEND,Achilles tendinitis,Musculoskeletal and Connective Tissue +M13_ADHCAPSULITIS,Adhesive capsulitis of shoulder,Musculoskeletal and Connective Tissue +M13_ARTHRITISNAS,Ohter specific/unspecified arthritis,Musculoskeletal and Connective Tissue +M13_ARTHROSIS,Arthrosis,Musculoskeletal and Connective Tissue +M13_ARTHROSIS_OTH,Other arthrosis,Musculoskeletal and Connective Tissue +M13_BONEDISNAS,Other specified/unspecified disorders of bone/cartilage,Musculoskeletal and Connective Tissue +M13_CALCIFICTEND,Calcific tendinitis of shoulder,Musculoskeletal and Connective Tissue +M13_CARTILAGE,Other articular cartilage disorders,Musculoskeletal and Connective Tissue +M13_DEQUERVAIN,Radial styloid tenosynovitis [de Quervain],Musculoskeletal and Connective Tissue +M13_DISSYNOTENDNAS,Other specified/unspecified disorders of synovium and tendon +Other specified/unspecified bursopathies,Musculoskeletal and Connective Tissue +M13_DUPUTRYEN,Palmar fascial fibromatosis [Dupuytren],Musculoskeletal and Connective Tissue +M13_FIBROBLASTIC,Fibroblastic disorders,Musculoskeletal and Connective Tissue +M13_GIANTCELL,Giant cell arteritis,Musculoskeletal and Connective Tissue +M13_JOINTOTH,Other specific joint derangements/joint disorders,Musculoskeletal and Connective Tissue +M13_LATERALEPICOND,Lateral epicondylitis,Musculoskeletal and Connective Tissue +M13_MEDIALEPICOND,Medial epicondylitis,Musculoskeletal and Connective Tissue +M13_MUSCLEDISNAS,Other specified disorders of muscle,Musculoskeletal and Connective Tissue +M13_MUSCULOSKELEOTH,Other disorders of the musculoskeletal system and connective tissue,Musculoskeletal and Connective Tissue +M13_NEURALGIA,Neuralgia and neuritis unspecified,Musculoskeletal and Connective Tissue +M13_OLECRANONBURSITIS,Olecranon bursitis,Musculoskeletal and Connective Tissue +M13_OSTEOPOROSIS,Osteoporosis,Musculoskeletal and Connective Tissue +M13_OTHERJOINT,Other joint disorders,Musculoskeletal and Connective Tissue +M13_PATELLAOTH,Other disorders of patella,Musculoskeletal and Connective Tissue +M13_PLANTARFASC,Plantar fascial fibromatosis,Musculoskeletal and Connective Tissue +M13_PREPATELLARBURSITIS,Prepatellar bursitis,Musculoskeletal and Connective Tissue +M13_PYOGARTH,Pyogenic arthritis,Musculoskeletal and Connective Tissue +M13_RHEUMA,Rheumatoid arthritis,Musculoskeletal and Connective Tissue +M13_RHEUMATISM,Rheumatism unspecified,Musculoskeletal and Connective Tissue +M13_SACROCOGG,Sacrococcygeal disorders not elsewhere classified,Musculoskeletal and Connective Tissue +M13_SHOULDERBURSITIS,Bursitis of shoulder,Musculoskeletal and Connective Tissue +M13_SOFTOVERUSE,Soft tissue disorders related to use overuse and pressure,Musculoskeletal and Connective Tissue +M13_SOFTTISSUENAS,Other specified/unspecified soft tissue disorders,Musculoskeletal and Connective Tissue +M13_SOFTTISSUEOTH,Other soft tissue disorders not elsewhere classified,Musculoskeletal and Connective Tissue +M13_SPINSTENOSIS,Spinal stenosis,Musculoskeletal and Connective Tissue +M13_TENDOSYNOVITISNAS,Other/unspecified synovitis and tenosynovitis,Musculoskeletal and Connective Tissue +M13_TROCHANTERICBURSITIS,Trochanteric bursitis,Musculoskeletal and Connective Tissue +M15,Polyarthrosis,Musculoskeletal and Connective Tissue +M16,Coxarthrosis [arthrosis of hip],Musculoskeletal and Connective Tissue +M17,Gonarthrosis [arthrosis of knee],Musculoskeletal and Connective Tissue +M18,Arthrosis of first carpometacarpal joint,Musculoskeletal and Connective Tissue +M19,Other arthrosis,Musculoskeletal and Connective Tissue +M20,Acquired deformities of fingers and toes,Musculoskeletal and Connective Tissue +M21,Other acquired deformities of limbs,Musculoskeletal and Connective Tissue +M22,Disorders of patella,Musculoskeletal and Connective Tissue +M23,Internal derangement of knee,Musculoskeletal and Connective Tissue +M24,Other specific joint derangements,Musculoskeletal and Connective Tissue +M25,Other joint disorders not elsewhere classified,Musculoskeletal and Connective Tissue +M31,Other necrotising vasculopathies,Musculoskeletal and Connective Tissue +M35,Other systemic involvement of connective tissue,Musculoskeletal and Connective Tissue +M41,Scoliosis,Musculoskeletal and Connective Tissue +M43,Other deforming dorsopathies,Musculoskeletal and Connective Tissue +M45,Ankylosing spondylitis,Musculoskeletal and Connective Tissue +M46,Other inflammatory spondylopathies,Musculoskeletal and Connective Tissue +M47,Spondylosis,Musculoskeletal and Connective Tissue +M48,Other spondylopathies,Musculoskeletal and Connective Tissue +M50,Cervical disk disorders,Musculoskeletal and Connective Tissue +M51,Other intervertebral disk disorders,Musculoskeletal and Connective Tissue +M53,Other dorsopathies not elsewhere classified,Musculoskeletal and Connective Tissue +M54,Dorsalgia,Musculoskeletal and Connective Tissue +M60,Myositis,Musculoskeletal and Connective Tissue +M62,Other disorders of muscle,Musculoskeletal and Connective Tissue +M65,Synovitis and tenosynovitis,Musculoskeletal and Connective Tissue +M66,Spontaneous rupture of synovium and tendon,Musculoskeletal and Connective Tissue +M67,Other disorders of synovium and tendon,Musculoskeletal and Connective Tissue +M70,Soft tissue disorders related to use overuse and pressure,Musculoskeletal and Connective Tissue +M71,Other bursopathies,Musculoskeletal and Connective Tissue +M72,Fibroblastic disorders,Musculoskeletal and Connective Tissue +M75,Shoulder lesions,Musculoskeletal and Connective Tissue +M76,Enthesopathies of lower limb excluding foot,Musculoskeletal and Connective Tissue +M77,Other enthesopathies,Musculoskeletal and Connective Tissue +M79,Other soft tissue disorders not elsewhere classified,Musculoskeletal and Connective Tissue +M80,Osteoporosis with pathological fracture,Musculoskeletal and Connective Tissue +M81,Osteoporosis without pathological fracture,Musculoskeletal and Connective Tissue +M84,Disorders of continuity of bone,Musculoskeletal and Connective Tissue +M85,Other disorders of bone density and structure,Musculoskeletal and Connective Tissue +M86,Osteomyelitis,Musculoskeletal and Connective Tissue +M87,Osteonecrosis,Musculoskeletal and Connective Tissue +M89,Other disorders of bone,Musculoskeletal and Connective Tissue +M93,Other osteochondropathies,Musculoskeletal and Connective Tissue +M94,Other disorders of cartilage,Musculoskeletal and Connective Tissue +M95,Other acquired deformities of musculoskeletal system and connective tissue,Musculoskeletal and Connective Tissue +M96,Postprocedural musculoskeletal disorders not elsewhere classified,Musculoskeletal and Connective Tissue +20001_1001,lung cancer,Neoplasms +20001_1003,skin cancer,Neoplasms +20001_1006,larynx/throat cancer,Neoplasms +20001_1011,tongue cancer,Neoplasms +20001_1017,oesophageal cancer,Neoplasms +20001_1018,stomach cancer,Neoplasms +20001_1019,small intestine/small bowel cancer,Neoplasms +20001_1020,large bowel cancer/colorectal cancer,Neoplasms +20001_1022,colon cancer/sigmoid cancer,Neoplasms +20001_1023,rectal cancer,Neoplasms +20001_1024,liver/hepatocellular cancer,Neoplasms +20001_1030,eye and/or adnexal cancer,Neoplasms +20001_1032,brain cancer / primary malignant brain tumour,Neoplasms +20001_1034,kidney/renal cell cancer,Neoplasms +20001_1035,bladder cancer,Neoplasms +20001_1060,non-melanoma skin cancer,Neoplasms +20001_1063,primary bone cancer,Neoplasms +20001_1065,thyroid cancer,Neoplasms +C_DIFFICILE_ENTEROCOLITIS,Enterocolitis due to Clostridium difficile,Neoplasms +C01,Malignant neoplasm of base of tongue,Neoplasms +C02,Malignant neoplasm of other and unspecified parts of tongue,Neoplasms +C09,Malignant neoplasm of tonsil,Neoplasms +C15,Malignant neoplasm of oesophagus,Neoplasms +C16,Malignant neoplasm of stomach,Neoplasms +C17,Malignant neoplasm of small intestine,Neoplasms +C18,Malignant neoplasm of colon,Neoplasms +C19,Malignant neoplasm of rectosigmoid junction,Neoplasms +C20,Malignant neoplasm of rectum,Neoplasms +C21,Malignant neoplasm of anus and anal canal,Neoplasms +C22,Malignant neoplasm of liver and intrahepatic bile ducts,Neoplasms +C25,Malignant neoplasm of pancreas,Neoplasms +C32,Malignant neoplasm of larynx,Neoplasms +C34,Malignant neoplasm of bronchus and lung,Neoplasms +C43,Malignant melanoma of skin,Neoplasms +C44,Other malignant neoplasms of skin,Neoplasms +C45,Mesothelioma,Neoplasms +C48,Malignant neoplasm of retroperitoneum and peritoneum,Neoplasms +C49,Malignant neoplasm of other connective and soft tissue,Neoplasms +C50,Malignant neoplasm of breast,Neoplasms +C53,Malignant neoplasm of cervix uteri,Neoplasms +C54,Malignant neoplasm of corpus uteri,Neoplasms +C56,Malignant neoplasm of ovary,Neoplasms +C61,Malignant neoplasm of prostate,Neoplasms +C62,Malignant neoplasm of testis,Neoplasms +C64,Malignant neoplasm of kidney except renal pelvis,Neoplasms +C67,Malignant neoplasm of bladder,Neoplasms +C69,Malignant neoplasm of eye and adnexa,Neoplasms +C71,Malignant neoplasm of brain,Neoplasms +C73,Malignant neoplasm of thyroid gland,Neoplasms +C77,Secondary and unspecified malignant neoplasm of lymph nodes,Neoplasms +C78,Secondary malignant neoplasm of respiratory and digestive organs,Neoplasms +C79,Secondary malignant neoplasm of other sites,Neoplasms +C80,Malignant neoplasm without specification of site,Neoplasms +C81,Hodgkin's disease,Neoplasms +C82,Follicular [nodular] non-Hodgkin's lymphoma,Neoplasms +C83,Diffuse non-Hodgkin's lymphoma,Neoplasms +C85,Other and unspecified types of non-Hodgkin's lymphoma,Neoplasms +C90,Multiple myeloma and malignant plasma cell neoplasms,Neoplasms +C91,Lymphoid leukaemia,Neoplasms +C92,Myeloid leukaemia,Neoplasms +CAMPYLOENTERITIS,Campylobacter enteritis,Neoplasms +CHIRHEP_NAS,Chirrosis of liver NAS,Neoplasms +COLITNONINFNAS,Noninfectious colitis NAS,Neoplasms +COPD_EXCL,COPD differential diagnosis,Neoplasms +COX_ARTHROSIS,Coxarthrosis [arthrosis of hip](FG),Neoplasms +LUNG_CANCER,Lung cancer and mesothelioma,Neoplasms +LUNG_CANCER_MESOT,Lung cancer and mesothelioma,Neoplasms +D03,Melanoma in situ,"Neoplasms, Blood, Blood-forming Organs" +D04,Carcinoma in situ of skin,"Neoplasms, Blood, Blood-forming Organs" +D05,Carcinoma in situ of breast,"Neoplasms, Blood, Blood-forming Organs" +D06,Carcinoma in situ of cervix uteri,"Neoplasms, Blood, Blood-forming Organs" +D07,Carcinoma in situ of other and unspecified genital organs,"Neoplasms, Blood, Blood-forming Organs" +D09,Carcinoma in situ of other and unspecified sites,"Neoplasms, Blood, Blood-forming Organs" +D10,Benign neoplasm of mouth and pharynx,"Neoplasms, Blood, Blood-forming Organs" +D11,Benign neoplasm of major salivary glands,"Neoplasms, Blood, Blood-forming Organs" +D12,Benign neoplasm of colon rectum anus and anal canal,"Neoplasms, Blood, Blood-forming Organs" +D13,Benign neoplasm of other and ill-defined parts of digestive system,"Neoplasms, Blood, Blood-forming Organs" +D14,Benign neoplasm of middle ear and respiratory system,"Neoplasms, Blood, Blood-forming Organs" +D16,Benign neoplasm of bone and articular cartilage,"Neoplasms, Blood, Blood-forming Organs" +D17,Benign lipomatous neoplasm,"Neoplasms, Blood, Blood-forming Organs" +D18,Haemangioma and lymphangioma any site,"Neoplasms, Blood, Blood-forming Organs" +D21,Other benign neoplasms of connective and other soft tissue,"Neoplasms, Blood, Blood-forming Organs" +D22,Melanocytic naevi,"Neoplasms, Blood, Blood-forming Organs" +D23,Other benign neoplasms of skin,"Neoplasms, Blood, Blood-forming Organs" +D24,Benign neoplasm of breast,"Neoplasms, Blood, Blood-forming Organs" +D25,Leiomyoma of uterus,"Neoplasms, Blood, Blood-forming Organs" +D26,Other benign neoplasms of uterus,"Neoplasms, Blood, Blood-forming Organs" +D27,Benign neoplasm of ovary,"Neoplasms, Blood, Blood-forming Organs" +D28,Benign neoplasm of other and unspecified female genital organs,"Neoplasms, Blood, Blood-forming Organs" +D3_IMMUNEMECHANISMOTHER,Other disorders involving the immune mechanism not elsewhere classified,"Neoplasms, Blood, Blood-forming Organs" +D30,Benign neoplasm of urinary organs,"Neoplasms, Blood, Blood-forming Organs" +D32,Benign neoplasm of meninges,"Neoplasms, Blood, Blood-forming Organs" +D33,Benign neoplasm of brain and other parts of central nervous system,"Neoplasms, Blood, Blood-forming Organs" +D34,Benign neoplasm of thyroid gland,"Neoplasms, Blood, Blood-forming Organs" +D35,Benign neoplasm of other and unspecified endocrine glands,"Neoplasms, Blood, Blood-forming Organs" +D36,Benign neoplasm of other and unspecified sites,"Neoplasms, Blood, Blood-forming Organs" +D37,Neoplasm of uncertain or unknown behaviour of oral cavity and digestive organs,"Neoplasms, Blood, Blood-forming Organs" +D38,Neoplasm of uncertain or unknown behaviour of middle ear and respiratory and intrathoracic organs,"Neoplasms, Blood, Blood-forming Organs" +D39,Neoplasm of uncertain or unknown behaviour of female genital organs,"Neoplasms, Blood, Blood-forming Organs" +D41,Neoplasm of uncertain or unknown behaviour of urinary organs,"Neoplasms, Blood, Blood-forming Organs" +D43,Neoplasm of uncertain or unknown behaviour of brain and central nervous system,"Neoplasms, Blood, Blood-forming Organs" +D44,Neoplasm of uncertain or unknown behaviour of endocrine glands,"Neoplasms, Blood, Blood-forming Organs" +D45,Polycythaemia vera,"Neoplasms, Blood, Blood-forming Organs" +D46,Myelodysplastic syndromes,"Neoplasms, Blood, Blood-forming Organs" +D47,Other neoplasms of uncertain or unknown behaviour of lymphoid haematopoietic and related tissue,"Neoplasms, Blood, Blood-forming Organs" +D48,Neoplasm of uncertain or unknown behaviour of other and unspecified sites,"Neoplasms, Blood, Blood-forming Organs" +D50,Iron deficiency anaemia,"Neoplasms, Blood, Blood-forming Organs" +D61,Other aplastic anaemias,"Neoplasms, Blood, Blood-forming Organs" +D63,Anaemia in chronic diseases classified elsewhere,"Neoplasms, Blood, Blood-forming Organs" +D64,Other anaemias,"Neoplasms, Blood, Blood-forming Organs" +D69,Purpura and other haemorrhagic conditions,"Neoplasms, Blood, Blood-forming Organs" +D70,Agranulocytosis,"Neoplasms, Blood, Blood-forming Organs" +D75,Other diseases of blood and blood-forming organs,"Neoplasms, Blood, Blood-forming Organs" +D86,Sarcoidosis,"Neoplasms, Blood, Blood-forming Organs" +D89,Other disorders involving the immune mechanism not elsewhere classified,"Neoplasms, Blood, Blood-forming Organs" +G12,Spinal muscular atrophy and related syndromes,Nervous System +G20,Parkinson's disease,Nervous System +G24,Dystonia,Nervous System +G35,Multiple sclerosis,Nervous System +G37,Other demyelinating diseases of central nervous system,Nervous System +G40,Epilepsy,Nervous System +G43,Migraine,Nervous System +G44,Other headache syndromes,Nervous System +G45,Transient cerebral ischaemic attacks and related syndromes,Nervous System +G47,Sleep disorders,Nervous System +G50,Disorders of trigeminal nerve,Nervous System +G51,Facial nerve disorders,Nervous System +G54,Nerve root and plexus disorders,Nervous System +G56,Mononeuropathies of upper limb,Nervous System +G57,Mononeuropathies of lower limb,Nervous System +G58,Other mononeuropathies,Nervous System +G6_EPIPAROX,Episodal and paroxysmal disorders,Nervous System +G6_MYONEU,Diseases of the myoneural junction and muscle,Nervous System +G6_NERPLEX,Nerve nerve root and plexus disorders,Nervous System +G6_POLYNEU,Polyneuropathies and other disorders of the peripheral nervous system,Nervous System +G6_ROOTPLEXOTHUNS,Other and unspecified nerve root and plexus disorders also in other diseases,Nervous System +G6_XTRAPYR,Extrapyramidal and movement disorders,Nervous System +G61,Inflammatory polyneuropathy,Nervous System +G62,Other polyneuropathies,Nervous System +G81,Hemiplegia,Nervous System +G93,Other disorders of brain,Nervous System +G95,Other diseases of spinal cord,Nervous System +O00,Ectopic pregnancy,"Pregnancy, Childbirth and the Puerperium" +O02,Other abnormal products of conception,"Pregnancy, Childbirth and the Puerperium" +O03,Spontaneous abortion,"Pregnancy, Childbirth and the Puerperium" +O04,Medical abortion,"Pregnancy, Childbirth and the Puerperium" +O13,Gestational [pregnancy-induced] hypertension without significant proteinuria,"Pregnancy, Childbirth and the Puerperium" +O14,Gestational [pregnancy-induced] hypertension with significant proteinuria,"Pregnancy, Childbirth and the Puerperium" +O16,Unspecified maternal hypertension,"Pregnancy, Childbirth and the Puerperium" +O20,Haemorrhage in early pregnancy,"Pregnancy, Childbirth and the Puerperium" +O21,Excessive vomiting in pregnancy,"Pregnancy, Childbirth and the Puerperium" +O23,Infections of genito-urinary tract in pregnancy,"Pregnancy, Childbirth and the Puerperium" +O26,Maternal care for other conditions predominantly related to pregnancy,"Pregnancy, Childbirth and the Puerperium" +O32,Maternal care for known or suspected malpresentation of foetus,"Pregnancy, Childbirth and the Puerperium" +O34,Maternal care for known or suspected abnormality of pelvic organs,"Pregnancy, Childbirth and the Puerperium" +O35,Maternal care for known or suspected foetal abnormality and damage,"Pregnancy, Childbirth and the Puerperium" +O36,Maternal care for other known or suspected foetal problems,"Pregnancy, Childbirth and the Puerperium" +O42,Premature rupture of membranes,"Pregnancy, Childbirth and the Puerperium" +O44,Placenta praevia,"Pregnancy, Childbirth and the Puerperium" +O46,Antepartum haemorrhage not elsewhere classified,"Pregnancy, Childbirth and the Puerperium" +O47,False labour,"Pregnancy, Childbirth and the Puerperium" +O48,Prolonged pregnancy,"Pregnancy, Childbirth and the Puerperium" +O60,Preterm delivery,"Pregnancy, Childbirth and the Puerperium" +O62,Abnormalities of forces of labour,"Pregnancy, Childbirth and the Puerperium" +O63,Long labour,"Pregnancy, Childbirth and the Puerperium" +O64,Obstructed labour due to malposition and malpresentation of foetus,"Pregnancy, Childbirth and the Puerperium" +O68,Labour and delivery complicated by foetal stress [distress],"Pregnancy, Childbirth and the Puerperium" +O69,Labour and delivery complicated by umbilical cord complications,"Pregnancy, Childbirth and the Puerperium" +O70,Perineal laceration during delivery,"Pregnancy, Childbirth and the Puerperium" +O72,Postpartum haemorrhage,"Pregnancy, Childbirth and the Puerperium" +O75,Other complications of labour and delivery not elsewhere classified,"Pregnancy, Childbirth and the Puerperium" +O80,Single spontaneous delivery,"Pregnancy, Childbirth and the Puerperium" +O82,Single delivery by Caesarean section,"Pregnancy, Childbirth and the Puerperium" +O99,Other maternal diseases classifiable elsewhere but complicating pregnancy childbirth and the puerpe,"Pregnancy, Childbirth and the Puerperium" +J01,Acute sinusitis,Respiratory System +J02,Acute pharyngitis,Respiratory System +J03,Acute tonsillitis,Respiratory System +J06,Acute upper respiratory infections of multiple and unspecified sites,Respiratory System +J13,Pneumonia due to Streptococcus pneumoniae,Respiratory System +J15,Bacterial pneumonia not elsewhere classified,Respiratory System +J18,Pneumonia organism unspecified,Respiratory System +J20,Acute bronchitis,Respiratory System +J22,Unspecified acute lower respiratory infection,Respiratory System +J31,Chronic rhinitis nasopharyngitis and pharyngitis,Respiratory System +J32,Chronic sinusitis,Respiratory System +J33,Nasal polyp,Respiratory System +J34,Other disorders of nose and nasal sinuses,Respiratory System +J35,Chronic diseases of tonsils and adenoids,Respiratory System +J36,Peritonsillar abscess,Respiratory System +J38,Diseases of vocal cords and larynx not elsewhere classified,Respiratory System +J39,Other diseases of upper respiratory tract,Respiratory System +J40,Bronchitis not specified as acute or chronic,Respiratory System +J43,Emphysema,Respiratory System +J44,Other chronic obstructive pulmonary disease,Respiratory System +J45,Asthma,Respiratory System +J46,Status asthmaticus,Respiratory System +J47,Bronchiectasis,Respiratory System +J69,Pneumonitis due to solids and liquids,Respiratory System +J84,Other interstitial pulmonary diseases,Respiratory System +J86,Pyothorax,Respiratory System +J90,Pleural effusion not elsewhere classified,Respiratory System +J93,Pneumothorax,Respiratory System +J96,Respiratory failure not elsewhere classified,Respiratory System +J98,Other respiratory disorders,Respiratory System +L02,Cutaneous abscess furuncle and carbuncle,Skin and Subcutaneous Tissue +L03,Cellulitis,Skin and Subcutaneous Tissue +L05,Pilonidal cyst,Skin and Subcutaneous Tissue +L08,Other local infections of skin and subcutaneous tissue,Skin and Subcutaneous Tissue +L12_ACTINKERA,Actinic keratosis,Skin and Subcutaneous Tissue +L12_ATROPHICSKIN,Atrophic disorders of skin,Skin and Subcutaneous Tissue +L12_DERM_NAS,Other and unspecified dermatitis,Skin and Subcutaneous Tissue +L12_DERMATITISNAS,Other and unspecified dermatitis,Skin and Subcutaneous Tissue +L12_FOLICULAROTH,Other follicular disorders,Skin and Subcutaneous Tissue +L12_FOLLICULARNAS,Other and unspecified follicular disorders,Skin and Subcutaneous Tissue +L12_GRANULOMASKINNAS,Other and unspecified granulomatous disorders of skin and subcutaneous tissue,Skin and Subcutaneous Tissue +L12_GRANULOMATOUSSKIN,Granulomatous disorders of skin and subcutaneous tissue,Skin and Subcutaneous Tissue +L12_HIDRADENITISSUP,Hidradenitis suppurativa,Skin and Subcutaneous Tissue +L12_HYPERTROPHICNAS,Other and unspecified hypertrophic disorders of skin,Skin and Subcutaneous Tissue +L12_HYPERTROPHICSKIN,Hypertrophic disorders of skin,Skin and Subcutaneous Tissue +L12_NAILDIS,Nail disorders,Skin and Subcutaneous Tissue +L12_NAILNAS,Other and unspecified nail disorders,Skin and Subcutaneous Tissue +L12_OTHERDISSKINANDSUBCUTIS,Other disorders of skin and subcutaneous tissue not elsewhere classified,Skin and Subcutaneous Tissue +L12_OTHPIGMENTATION,Other disorders of pigmentation,Skin and Subcutaneous Tissue +L12_PIGMENTNAS,Other and unspecified disorders of pigmentation,Skin and Subcutaneous Tissue +L12_SCARCONDITIONS,Scar conditions and fibrosis of skin,Skin and Subcutaneous Tissue +L12_SKINSUBCUTISNAS,Other and unspecified disorders of skin and subcutaneous tissue,Skin and Subcutaneous Tissue +L27,Dermatitis due to substances taken internally,Skin and Subcutaneous Tissue +L28,Lichen simplex chronicus and prurigo,Skin and Subcutaneous Tissue +L29,Pruritus,Skin and Subcutaneous Tissue +L30,Other dermatitis,Skin and Subcutaneous Tissue +L40,Psoriasis,Skin and Subcutaneous Tissue +L43,Lichen planus,Skin and Subcutaneous Tissue +L50,Urticaria,Skin and Subcutaneous Tissue +L53,Other erythematous conditions,Skin and Subcutaneous Tissue +L57,Skin changes due to chronic exposure to nonionising radiation,Skin and Subcutaneous Tissue +L60,Nail disorders,Skin and Subcutaneous Tissue +L71,Rosacea,Skin and Subcutaneous Tissue +L72,Follicular cysts of skin and subcutaneous tissue,Skin and Subcutaneous Tissue +L73,Other follicular disorders,Skin and Subcutaneous Tissue +L81,Other disorders of pigmentation,Skin and Subcutaneous Tissue +L82,Seborrhoeic keratosis,Skin and Subcutaneous Tissue +L85,Other epidermal thickening,Skin and Subcutaneous Tissue +L90,Atrophic disorders of skin,Skin and Subcutaneous Tissue +L91,Hypertrophic disorders of skin,Skin and Subcutaneous Tissue +L92,Granulomatous disorders of skin and subcutaneous tissue,Skin and Subcutaneous Tissue +L97,Ulcer of lower limb not elsewhere classified,Skin and Subcutaneous Tissue +L98,Other disorders of skin and subcutaneous tissue not elsewhere classified,Skin and Subcutaneous Tissue +R00,Abnormalities of heart beat,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R04,Haemorrhage from respiratory passages,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R05,Cough,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R06,Abnormalities of breathing,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R07,Pain in throat and chest,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R09,Other symptoms and signs involving the circulatory and respiratory systems,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R10,Abdominal and pelvic pain,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R11,Nausea and vomiting,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R12,Heartburn,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R13,Dysphagia,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R14,Flatulence and related conditions,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R15,Faecal incontinence,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R17,Unspecified jaundice,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R18,Ascites,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R19,Other symptoms and signs involving the digestive system and abdomen,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R20,Disturbances of skin sensation,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R21,Rash and other nonspecific skin eruption,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R22,Localised swelling mass and lump of skin and subcutaneous tissue,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R23,Other skin changes,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R25,Abnormal involuntary movements,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R26,Abnormalities of gait and mobility,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R29,Other symptoms and signs involving the nervous and musculoskeletal systems,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R30,Pain associated with micturition,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R31,Unspecified haematuria,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R32,Unspecified urinary incontinence,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R33,Retention of urine,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R35,Polyuria,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R39,Other symptoms and signs involving the urinary system,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R40,Somnolence stupor and coma,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R41,Other symptoms and signs involving cognitive functions and awareness,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R42,Dizziness and giddiness,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R47,Speech disturbances not elsewhere classified,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R49,Voice disturbances,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R50,Fever of unknown origin,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R51,Headache,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R52,Pain not elsewhere classified,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R53,Malaise and fatigue,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R54,Senility,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R55,Syncope and collapse,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R56,Convulsions not elsewhere classified,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R59,Enlarged lymph nodes,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R60,Oedema not elsewhere classified,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R61,Hyperhidrosis,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R63,Symptoms and signs concerning food and fluid intake,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R68,Other general symptoms and signs,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R69,Unknown and unspecified causes of morbidity,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R73,Elevated blood glucose level,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R76,Other abnormal immunological findings in serum,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R79,Other abnormal findings of blood chemistry,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R86,Abnormal findings in specimens from male genital organs,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R87,Abnormal findings in specimens from female genital organs,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R90,Abnormal findings on diagnostic imaging of central nervous system,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R91,Abnormal findings on diagnostic imaging of lung,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R93,Abnormal findings on diagnostic imaging of other body structures,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +R94,Abnormal results of function studies,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +2986,Started insulin within one year diagnosis of diabetes,Factors Influencing Health Status and Contact with Health Services +20122,Bipolar disorder status,Mental and Behavioral Disorders +22126,hayfever or allergic rhinitis,Respiratory System +22129,chronic bronchitis,Respiratory System +22133,sarcoidosis,"Neoplasms, Blood, Blood-forming Organs" +22137,tuberculosis,Respiratory System +22140,lung cancer (not mesothelioma),Neoplasms +20002_1065,hypertension,Circulatory System +20002_1066,heart/cardiac problem,Circulatory System +20002_1067,peripheral vascular disease,Circulatory System +20002_1072,essential hypertension,Circulatory System +20002_1074,angina,Circulatory System +20002_1075,heart attack/myocardial infarction,Circulatory System +20002_1076,heart failure/pulmonary odema,Circulatory System +20002_1077,heart arrhythmia,Circulatory System +20002_1078,heart valve problem/heart murmur,Circulatory System +20002_1079,cardiomyopathy,Circulatory System +20002_1080,pericardial problem,Circulatory System +20002_1081,stroke,Circulatory System +20002_1082,transient ischaemic attack (tia),Circulatory System +20002_1083,subdural haemorrhage/haematoma,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1086,subarachnoid haemorrhage,Circulatory System +20002_1087,leg claudication/ intermittent claudication,Circulatory System +20002_1093,pulmonary embolism +/- dvt,Circulatory System +20002_1094,deep venous thrombosis (dvt),Circulatory System +20002_1111,asthma,Respiratory System +20002_1112,chronic obstructive airways disease/copd,Respiratory System +20002_1113,emphysema/chronic bronchitis,Respiratory System +20002_1114,bronchiectasis,Respiratory System +20002_1115,interstitial lung disease,Respiratory System +20002_1117,other respiratory problems,Respiratory System +20002_1120,asbestosis,Respiratory System +20002_1123,sleep apnoea,Nervous System +20002_1125,pleurisy,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +20002_1126,spontaneous pneumothorax/recurrent pneumothorax,Respiratory System +20002_1134,oesophageal disorder,Digestive System +20002_1135,stomach disorder,Digestive System +20002_1136,liver/biliary/pancreas problem,Digestive System +20002_1137,other abdominal problem,Digestive System +20002_1138,gastro-oesophageal reflux (gord) / gastric reflux,Digestive System +20002_1139,oesophagitis/barretts oesophagus,Digestive System +20002_1142,gastric/stomach ulcers,Digestive System +20002_1143,gastritis/gastric erosions,Digestive System +20002_1154,irritable bowel syndrome,Digestive System +20002_1155,hepatitis,Digestive System +20002_1156,infective/viral hepatitis,Infectious and Parasitic Diseases +20002_1157,non-infective hepatitis,Digestive System +20002_1158,liver failure/cirrhosis,Digestive System +20002_1161,gall bladder disease,Digestive System +20002_1162,cholelithiasis/gall stones,Digestive System +20002_1163,cholecystitis,Digestive System +20002_1165,pancreatitis,Digestive System +20002_1190,peritonitis,Digestive System +20002_1191,gastrointestinal bleeding,Digestive System +20002_1192,renal/kidney failure,Genitourinary System +20002_1193,renal failure requiring dialysis,Genitourinary System +20002_1194,renal failure not requiring dialysis,Genitourinary System +20002_1196,urinary tract infection/kidney infection,Genitourinary System +20002_1197,kidney stone/ureter stone/bladder stone,Genitourinary System +20002_1200,ureteric obstruction/hydronephrosis,Genitourinary System +20002_1201,bladder problem (not cancer),Genitourinary System +20002_1202,urinary frequency / incontinence,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +20002_1220,diabetes,"Endocrine, Nutritional, Metabolic" +20002_1222,type 1 diabetes,"Endocrine, Nutritional, Metabolic" +20002_1223,type 2 diabetes,"Endocrine, Nutritional, Metabolic" +20002_1224,thyroid problem (not cancer),"Endocrine, Nutritional, Metabolic" +20002_1225,hyperthyroidism/thyrotoxicosis,"Endocrine, Nutritional, Metabolic" +20002_1226,hypothyroidism/myxoedema,"Endocrine, Nutritional, Metabolic" +20002_1229,parathyroid gland problem (not cancer),"Endocrine, Nutritional, Metabolic" +20002_1234,adrenocortical insufficiency/addison's disease,"Endocrine, Nutritional, Metabolic" +20002_1238,pituitary adenoma/tumour,"Neoplasms, Blood, Blood-forming Organs" +20002_1240,neurological injury/trauma,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1242,eye/eyelid problem,"Eye and Adnexa, Ear and Mastoid Process" +20002_1243,psychological/psychiatric problem,Mental and Behavioral Disorders +20002_1246,encephalitis,Nervous System +20002_1247,meningitis,Nervous System +20002_1249,cranial nerve problem/palsy,Nervous System +20002_1250,bell's palsy/facial nerve palsy,Nervous System +20002_1251,spinal cord disorder,Nervous System +20002_1254,peripheral nerve disorder,Nervous System +20002_1255,peripheral neuropathy,Nervous System +20002_1256,acute infective polyneuritis/guillain-barre syndrome,Nervous System +20002_1257,trapped nerve/compressed nerve,Nervous System +20002_1258,chronic/degenerative neurological problem,Nervous System +20002_1261,multiple sclerosis,Nervous System +20002_1262,parkinsons disease,Nervous System +20002_1264,epilepsy,Nervous System +20002_1265,migraine,Nervous System +20002_1266,head injury,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1267,spinal injury,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1274,eye infection,"Eye and Adnexa, Ear and Mastoid Process" +20002_1275,retinal problem,"Eye and Adnexa, Ear and Mastoid Process" +20002_1276,diabetic eye disease,"Endocrine, Nutritional, Metabolic" +20002_1277,glaucoma,"Eye and Adnexa, Ear and Mastoid Process" +20002_1278,cataract,"Eye and Adnexa, Ear and Mastoid Process" +20002_1279,eye trauma,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1281,retinal detachment,"Eye and Adnexa, Ear and Mastoid Process" +20002_1282,retinal artery/vein occlusion,"Eye and Adnexa, Ear and Mastoid Process" +20002_1286,depression,Mental and Behavioral Disorders +20002_1287,anxiety/panic attacks,Mental and Behavioral Disorders +20002_1288,nervous breakdown,Mental and Behavioral Disorders +20002_1289,schizophrenia,Mental and Behavioral Disorders +20002_1290,deliberate self-harm/suicide attempt,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1291,mania/bipolar disorder/manic depression,Mental and Behavioral Disorders +20002_1293,bone disorder,Musculoskeletal and Connective Tissue +20002_1294,back problem,Musculoskeletal and Connective Tissue +20002_1295,joint disorder,Musculoskeletal and Connective Tissue +20002_1297,muscle/soft tissue problem,Musculoskeletal and Connective Tissue +20002_1308,osteomyelitis,Musculoskeletal and Connective Tissue +20002_1309,osteoporosis,Musculoskeletal and Connective Tissue +20002_1311,spine arthritis/spondylitis,Musculoskeletal and Connective Tissue +20002_1312,prolapsed disc/slipped disc,Musculoskeletal and Connective Tissue +20002_1313,ankylosing spondylitis,Musculoskeletal and Connective Tissue +20002_1322,myositis/myopathy,Musculoskeletal and Connective Tissue +20002_1327,low platelets/platelet disorder,"Neoplasms, Blood, Blood-forming Organs" +20002_1330,iron deficiency anaemia,"Neoplasms, Blood, Blood-forming Organs" +20002_1331,pernicious anaemia,"Neoplasms, Blood, Blood-forming Organs" +20002_1371,sarcoidosis,"Neoplasms, Blood, Blood-forming Organs" +20002_1372,vasculitis,Musculoskeletal and Connective Tissue +20002_1373,connective tissue disorder,Musculoskeletal and Connective Tissue +20002_1374,allergy/hypersensitivity/anaphylaxis,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1377,polymyalgia rheumatica,Musculoskeletal and Connective Tissue +20002_1381,systemic lupus erythematosis/sle,Musculoskeletal and Connective Tissue +20002_1382,sjogren's syndrome/sicca syndrome,Musculoskeletal and Connective Tissue +20002_1384,scleroderma/systemic sclerosis,Musculoskeletal and Connective Tissue +20002_1385,allergy or anaphylactic reaction to food,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1386,allergy or anaphylactic reaction to drug,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1387,hayfever/allergic rhinitis,Respiratory System +20002_1394,peripheral nerve injury,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1398,pneumonia,Respiratory System +20002_1400,peptic ulcer,Digestive System +20002_1405,other renal/kidney problem,Genitourinary System +20002_1406,muscle or soft tissue injuries,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1407,burns,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1408,alcohol dependency,Mental and Behavioral Disorders +20002_1412,bronchitis,Respiratory System +20002_1413,nasal/sinus disorder,Respiratory System +20002_1414,throat or larynx disorder,Respiratory System +20002_1415,ear/vestibular disorder,"Eye and Adnexa, Ear and Mastoid Process" +20002_1416,chronic sinusitis,Respiratory System +20002_1417,nasal polyps,Respiratory System +20002_1419,vocal cord polyp,Respiratory System +20002_1420,otosclerosis,"Eye and Adnexa, Ear and Mastoid Process" +20002_1421,meniere's disease,"Eye and Adnexa, Ear and Mastoid Process" +20002_1425,cerebral aneurysm,Circulatory System +20002_1427,polycystic kidney,"Congenital Malformations, Deformations and Chromosomal Abnormalities" +20002_1428,thyroiditis,"Endocrine, Nutritional, Metabolic" +20002_1430,hypopituitarism,"Endocrine, Nutritional, Metabolic" +20002_1433,cerebral palsy,Nervous System +20002_1434,other neurological problem,Nervous System +20002_1435,optic neuritis,"Eye and Adnexa, Ear and Mastoid Process" +20002_1436,headaches (not migraine),"Symptoms, Signs and Abnormal Clinical and Lab Findings" +20002_1437,myasthenia gravis,Nervous System +20002_1438,polycythaemia vera,"Neoplasms, Blood, Blood-forming Organs" +20002_1439,hiv/aids,Infectious and Parasitic Diseases +20002_1440,tuberculosis (tb),Infectious and Parasitic Diseases +20002_1441,malaria,Infectious and Parasitic Diseases +20002_1442,helicobacter pylori,Infectious and Parasitic Diseases +20002_1445,clotting disorder/excessive bleeding,"Neoplasms, Blood, Blood-forming Organs" +20002_1446,anaemia,"Neoplasms, Blood, Blood-forming Organs" +20002_1451,hereditary/genetic haematological disorder,"Neoplasms, Blood, Blood-forming Organs" +20002_1452,eczema/dermatitis,Skin and Subcutaneous Tissue +20002_1453,psoriasis,Skin and Subcutaneous Tissue +20002_1454,blistering/desquamating skin disorder,Skin and Subcutaneous Tissue +20002_1455,chronic skin ulcers,Skin and Subcutaneous Tissue +20002_1456,malabsorption/coeliac disease,Digestive System +20002_1457,duodenal ulcer,Digestive System +20002_1458,diverticular disease/diverticulitis,Digestive System +20002_1459,colitis/not crohns or ulcerative colitis,Digestive System +20002_1460,rectal or colon adenoma/polyps,Digestive System +20002_1461,inflammatory bowel disease,Digestive System +20002_1462,crohns disease,Digestive System +20002_1463,ulcerative colitis,Digestive System +20002_1464,rheumatoid arthritis,Musculoskeletal and Connective Tissue +20002_1465,osteoarthritis,Musculoskeletal and Connective Tissue +20002_1466,gout,Musculoskeletal and Connective Tissue +20002_1467,other joint disorder,Musculoskeletal and Connective Tissue +20002_1468,diabetic neuropathy/ulcers,"Endocrine, Nutritional, Metabolic" +20002_1469,post-traumatic stress disorder,Mental and Behavioral Disorders +20002_1470,anorexia/bulimia/other eating disorder,Mental and Behavioral Disorders +20002_1471,atrial fibrillation,Circulatory System +20002_1472,emphysema,Respiratory System +20002_1473,high cholesterol,"Endocrine, Nutritional, Metabolic" +20002_1474,hiatus hernia,Digestive System +20002_1476,sciatica,Musculoskeletal and Connective Tissue +20002_1477,psoriatic arthropathy,Skin and Subcutaneous Tissue +20002_1478,cervical spondylosis,Musculoskeletal and Connective Tissue +20002_1479,rheumatic fever,Circulatory System +20002_1482,chronic fatigue syndrome,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +20002_1485,irregular heart beat,Circulatory System +20002_1487,svt / supraventricular tachycardia,Circulatory System +20002_1491,brain haemorrhage,Circulatory System +20002_1494,varicose veins,Circulatory System +20002_1495,lymphoedema,Circulatory System +20002_1497,pneumothorax,Respiratory System +20002_1499,labyrinthitis,"Eye and Adnexa, Ear and Mastoid Process" +20002_1500,vertigo,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +20002_1501,pyloric stenosis,Digestive System +20002_1502,appendicitis,Digestive System +20002_1504,anal fissure,Digestive System +20002_1505,haemorrhoids / piles,Circulatory System +20002_1508,jaundice (unknown cause),"Symptoms, Signs and Abnormal Clinical and Lab Findings" +20002_1509,gastroenteritis/dysentry,Infectious and Parasitic Diseases +20002_1510,dyspepsia / indigestion,Digestive System +20002_1511,abdominal hernia,Digestive System +20002_1512,umbilical hernia,Digestive System +20002_1513,inguinal hernia,Digestive System +20002_1514,cystitis,Genitourinary System +20002_1523,trigemminal neuralgia,Nervous System +20002_1525,benign / essential tremor,Nervous System +20002_1526,polio / poliomyelitis,Infectious and Parasitic Diseases +20002_1528,macular degeneration,"Eye and Adnexa, Ear and Mastoid Process" +20002_1529,dry eyes,"Eye and Adnexa, Ear and Mastoid Process" +20002_1530,iritis,"Eye and Adnexa, Ear and Mastoid Process" +20002_1532,disc problem,Musculoskeletal and Connective Tissue +20002_1533,disc degeneration,Musculoskeletal and Connective Tissue +20002_1534,back pain,Musculoskeletal and Connective Tissue +20002_1535,scoliosis,Musculoskeletal and Connective Tissue +20002_1536,spinal stenosis,Musculoskeletal and Connective Tissue +20002_1537,joint pain,Musculoskeletal and Connective Tissue +20002_1538,arthritis (nos),Musculoskeletal and Connective Tissue +20002_1540,plantar fascitis,Musculoskeletal and Connective Tissue +20002_1541,carpal tunnel syndrome,Nervous System +20002_1542,fibromyalgia,Musculoskeletal and Connective Tissue +20002_1544,dupuytren's contracture,Musculoskeletal and Connective Tissue +20002_1545,neck problem/injury,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1548,acne/acne vulgaris,Skin and Subcutaneous Tissue +20002_1549,lichen planus,Skin and Subcutaneous Tissue +20002_1550,lichen sclerosis,Skin and Subcutaneous Tissue +20002_1561,raynaud's phenomenon/disease,Circulatory System +20002_1562,food intolerance,Digestive System +20002_1563,urticaria,Skin and Subcutaneous Tissue +20002_1567,infectious mononucleosis / glandular fever / epstein barr virus (ebv),Infectious and Parasitic Diseases +20002_1568,measles / morbillivirus,Infectious and Parasitic Diseases +20002_1569,mumps / epidemic parotitis,Infectious and Parasitic Diseases +20002_1570,rubella / german measles,Infectious and Parasitic Diseases +20002_1571,chickenpox,Infectious and Parasitic Diseases +20002_1572,whooping cough / pertussis,Infectious and Parasitic Diseases +20002_1573,shingles,Infectious and Parasitic Diseases +20002_1575,herpes simplex,Infectious and Parasitic Diseases +20002_1578,hepatitis a,Infectious and Parasitic Diseases +20002_1585,mitral regurgitation / incompetence,Circulatory System +20002_1597,tinnitus / tiniitis,"Eye and Adnexa, Ear and Mastoid Process" +20002_1598,tonsiltis,Respiratory System +20002_1599,constipation,Digestive System +20002_1602,bowel / intestinal obstruction,Digestive System +20002_1603,rectal prolapse,Digestive System +20002_1605,femoral hernia,Digestive System +20002_1608,nephritis,Genitourinary System +20002_1610,thyroid goitre,"Endocrine, Nutritional, Metabolic" +20002_1613,blepharitis / eyelid infection,"Eye and Adnexa, Ear and Mastoid Process" +20002_1614,stress,Mental and Behavioral Disorders +20002_1616,insomnia,Nervous System +20002_1617,osteopenia,Musculoskeletal and Connective Tissue +20002_1619,tendonitis / tendinitis / tenosynovitis,Musculoskeletal and Connective Tissue +20002_1620,bursitis,Musculoskeletal and Connective Tissue +20002_1623,tennis elbow / lateral epicondylitis,Musculoskeletal and Connective Tissue +20002_1625,cellulitis,Skin and Subcutaneous Tissue +20002_1626,fracture skull / head,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1627,fracture jaw,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1628,fracture nose,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1629,fracture face / orbit / eye socket,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1631,fracture clavicle / collar bone,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1632,fracture shoulder / scapula,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1633,fracture upper arm / humerus / elbow,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1634,fracture forearm / wrist,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1635,fracture radius,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1636,fracture ulna,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1637,fracture wrist / colles fracture,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1638,fracture hand,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1639,fracture finger,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1644,fracture rib,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1646,fracture vertebra / crush fracture / vertebral collapse,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1647,fracture pelvis,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1648,fracture neck of femur / hip,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1649,fracture shaft of femur,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1650,fracture patella / knee,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1651,fracture lower leg / ankle,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1652,fracture tibia,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1653,fracture fibula,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1654,fracture foot,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1655,fracture metatarsal,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1656,fracture toe,"Injury, Poisoning, Certain Other Consequences of External Causes" +20002_1657,septicaemia / sepsis,Infectious and Parasitic Diseases +20002_1660,rosacea,Skin and Subcutaneous Tissue +20002_1661,vitiligo,Skin and Subcutaneous Tissue +20002_1668,allergy to house dust mite,Respiratory System +20002_1677,scarlet fever / scarlatina,Infectious and Parasitic Diseases +20002_1683,benign neuroma,"Neoplasms, Blood, Blood-forming Organs" +20002_99999,unclassifiable,"Symptoms, Signs and Abnormal Clinical and Lab Findings" +20544_14,Autism Asperger's or autistic spectrum disorder,Mental and Behavioral Disorders +20544_15,Anxiety nerves or generalized anxiety disorder,Mental and Behavioral Disorders +20544_3,Any other type of psychosis or psychotic illness,Mental and Behavioral Disorders +20544_4,A personality disorder,Mental and Behavioral Disorders +20544_7,Obsessive compulsive disorder (OCD),Mental and Behavioral Disorders +5855_1,astigmatism in right eye,"Eye and Adnexa, Ear and Mastoid Process" +5855_2,astigmatism in left eye,"Eye and Adnexa, Ear and Mastoid Process" +5855_3,astigmatism in both eyes,"Eye and Adnexa, Ear and Mastoid Process" +6147_5,strabismus,"Eye and Adnexa, Ear and Mastoid Process" +6148_1,Diabetes related eye disease,"Endocrine, Nutritional, Metabolic" +6148_100,Miscellaneous eye problems,"Eye and Adnexa, Ear and Mastoid Process" +6148_2,Glaucoma,"Eye and Adnexa, Ear and Mastoid Process" +6148_3,Injury or trauma resulting in loss of vision,"Injury, Poisoning, Certain Other Consequences of External Causes" +6148_4,Cataract,"Eye and Adnexa, Ear and Mastoid Process" +6148_5,Macular degeneration,"Eye and Adnexa, Ear and Mastoid Process" +6148_6,Other serious eye condition,"Eye and Adnexa, Ear and Mastoid Process" +6152_100,Other blood clot,Circulatory System +6152_5,Blood clot in the leg (DVT),Circulatory System +6152_6,Emphysema/chronic bronchitis,Respiratory System +6152_7,Blood clot in the lung,Circulatory System +6152_8,Asthma,Respiratory System +6152_9,Hayfever allergic rhinitis or eczema,Respiratory System +DM_KETOACIDOSIS,Diabetic ketoacidosis,"Endocrine, Nutritional, Metabolic" +DM_PERIPHATHERO,Peripheral atherosclerosis,Circulatory System +ENDOMETRIOSIS_NOS,Unsepcified/other endometriosis,Genitourinary System +ENDOMETRIOSIS_OVARY,Endometriosis of ovary,Genitourinary System +ENDOMETRIOSIS_PELVICPERITONEUM,Endometriosis of pelvic peritoneum,Genitourinary System +ENDOMETRIOSIS_UTERUS,Endometriosis of uterus,Genitourinary System +GLOMER_NEPHRITIS,Glomerulonephritis,Genitourinary System +HYPOTHYROIDISM,Hypothyroidism (congenital or acquired),"Endocrine, Nutritional, Metabolic" +IBD_ENDOMETRIOSIS,Endometriosis IBD co-morbidity,Digestive System +IBD_VIRAL_HEPATITIS,Viral hepatitis IBD co-morbidity,Infectious and Parasitic Diseases +ILD_DIFF_DG,ILD differential diagnosis,Respiratory System +IPF,Idiopathic pulmonary fibrosis (attempt to specificity),Respiratory System +KNEE_ARTHROSIS,Gonarthrosis [arthrosis of knee](FG),Musculoskeletal and Connective Tissue +KRA_PSY_ALCOH,Alcohol abuse main dg,Mental and Behavioral Disorders +KRA_PSY_ANXIETY,Anxiety disorders,Mental and Behavioral Disorders +KRA_PSY_ANYMENTAL,Any mental disorder,Mental and Behavioral Disorders +KRA_PSY_ANYMENTAL_SUICID,Any mental disorder or suicide (or attempt),Mental and Behavioral Disorders +KRA_PSY_DEMENTIA,Any dementia,Mental and Behavioral Disorders +KRA_PSY_MOOD,Mood disorders,Mental and Behavioral Disorders +KRA_PSY_PERSON,Personality disorders,Mental and Behavioral Disorders +KRA_PSY_SCHIZODEL,Schizophrenia or delusion,Mental and Behavioral Disorders +KRA_PSY_SUBSTANCE,Substance abuse,Mental and Behavioral Disorders +PRIM_COXARTHROSIS,Primary coxarthrosis bilateral,Musculoskeletal and Connective Tissue +PRIM_KNEEARTHROSIS,Primary gonarthrosis bilateral,Musculoskeletal and Connective Tissue +PULMONARYDG,Other pulmonary diagnosis,Respiratory System +RHEU_ARTHRITIS_OTH,Other arthritis (FG),Musculoskeletal and Connective Tissue +RHEUMA_NOS,Other/unspecified rheumatoid arthritis,Musculoskeletal and Connective Tissue +RHEUMA_SEROPOS,Seropositive rheumatoid arthritis,Musculoskeletal and Connective Tissue +RHEUMA_SEROPOS_OTH,Other/unspecified seropositiverheumatoid arthritis,Musculoskeletal and Connective Tissue +SCND_OTH_COXARTHROSIS,Other secondary coxarthrosis,Musculoskeletal and Connective Tissue +SLEEP,Sleep disorders (combined),Nervous System +SPONDYLOARTHRITIS,Spondyloarthritis,Musculoskeletal and Connective Tissue +THYROTOXICOSIS,Thyrotoxicosis,"Endocrine, Nutritional, Metabolic" +ULCERNAS,Ulcerative colitis NAS,Digestive System +ULCEROTH,Other ulcerative colitis,Digestive System +ULCERPROCT,Ulcerative proctitis,Digestive System +ULCERRECT,Ulcerative rectosigmoiditis,Digestive System +V_MENTAL_BEHAV,Mental and behavioural disorders,Mental and Behavioral Disorders +VI_NERVOUS,Diseases of the nervous system,Nervous System +VII_EYE_ADNEXA,Diseases of the eye and adnexa,"Eye and Adnexa, Ear and Mastoid Process" +VIII_EAR_MASTOID,Diseases of the ear and mastoid process,"Eye and Adnexa, Ear and Mastoid Process" +X_RESPIRATORY,Diseases of the respiratory system,Respiratory System +XI_DIGESTIVE,Diseases of the digestive system,Digestive System +XII_SKIN_SUBCUTAN,Diseases of the skin and subcutaneous tissue,Skin and Subcutaneous Tissue +XIII_MUSCULOSKELET,Diseases of the musculoskeletal system and connective tissue,Musculoskeletal and Connective Tissue +XIV_GENITOURINARY,Diseases of the genitourinary system,Genitourinary System \ No newline at end of file diff --git a/src/main/resources/disease/disease_list.json b/src/main/resources/disease/disease_list.json new file mode 100644 index 0000000..9386f2a --- /dev/null +++ b/src/main/resources/disease/disease_list.json @@ -0,0 +1,32 @@ +[ + { + "disease_name": "Multiple Sclerosis", + "id": "G35", + "ICD-10_name": "Multiple sclerosis", + "snomed": "24700007" + }, + { + "disease_name": "Parkinson's Disease", + "id": "G20", + "ICD-10_name": "Parkinson's disease", + "snomed": "49049000" + }, + { + "disease_name": "Migraine", + "id": "G43", + "ICD-10_name": "Migraine", + "snomed": "37796009" + }, + { + "disease_name": "Epilepsy", + "id": "G40", + "ICD-10_name": "Epilepsy", + "snomed": "84757009" + }, + { + "disease_name": "Alzheimer's Disease", + "id": "G30", + "ICD-10_name": "Alzheimer's disease", + "snomed": "26929004" + } +] diff --git a/src/main/resources/disease_list.json b/src/main/resources/disease_list.json new file mode 100644 index 0000000..4386344 --- /dev/null +++ b/src/main/resources/disease_list.json @@ -0,0 +1,32 @@ +[ + { + "disease_name": "Hypertension", + "id": "I10", + "ICD-10_name": "Essential (primary) hypertension", + "snomed": "38341003" + }, + { + "disease_name": "Migraine", + "id": "G43", + "ICD-10_name": "Migraine", + "snomed": "37796009" + }, + { + "disease_name": "Osteoarthritis", + "id": "M19", + "ICD-10_name": "Other and unspecified osteoarthritis", + "snomed": "396275006" + }, + { + "disease_name": "Gastroesophageal Reflux Disease", + "id": "K21", + "ICD-10_name": "Gastro-esophageal reflux disease", + "snomed": "235595009" + }, + { + "disease_name": "Urinary Tract Infection", + "id": "N39.0", + "ICD-10_name": "Urinary tract infection, site not specified", + "snomed": "68566005" + } +] \ No newline at end of file diff --git a/src/main/resources/disease_modules_progress.md b/src/main/resources/disease_modules_progress.md new file mode 100644 index 0000000..38093df --- /dev/null +++ b/src/main/resources/disease_modules_progress.md @@ -0,0 +1,6 @@ +# Disease Module Progress + +## Completed Modules + +## Planned Modules + diff --git a/src/main/resources/modules/acne_vulgaris.json b/src/main/resources/modules/acne_vulgaris.json new file mode 100644 index 0000000..86b2925 --- /dev/null +++ b/src/main/resources/modules/acne_vulgaris.json @@ -0,0 +1,403 @@ +{ + "name": "Acne Vulgaris", + "remarks": [ + "This module models the diagnosis and treatment of Acne Vulgaris (ICD-10 code: 20002_1548).", + "Acne vulgaris is a chronic inflammatory skin condition that primarily affects adolescents and young adults.", + "It is characterized by comedones (blackheads and whiteheads), papules, pustules, nodules, and cysts.", + "Category: Skin and Subcutaneous Tissue" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "age_range": { + "low": 10, + "high": 30 + } + }, + "direct_transition": "Acne_Onset" + }, + "Acne_Onset": { + "type": "Delay", + "range": { + "low": 0, + "high": 60, + "unit": "months" + }, + "direct_transition": "Acne_Severity_Determination" + }, + "Acne_Severity_Determination": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.5, + "transition": "Mild_Acne" + }, + { + "distribution": 0.3, + "transition": "Moderate_Acne" + }, + { + "distribution": 0.2, + "transition": "Severe_Acne" + } + ] + }, + "Mild_Acne": { + "type": "ConditionOnset", + "target_encounter": "Acne_Diagnosis_Encounter", + "codes": [ + { + "system": "ICD-10-CM", + "code": "20002_1548", + "display": "Acne vulgaris" + } + ], + "assign_to_attribute": "acne", + "direct_transition": "Acne_Diagnosis_Encounter" + }, + "Moderate_Acne": { + "type": "ConditionOnset", + "target_encounter": "Acne_Diagnosis_Encounter", + "codes": [ + { + "system": "ICD-10-CM", + "code": "20002_1548", + "display": "Acne vulgaris" + } + ], + "assign_to_attribute": "acne", + "direct_transition": "Acne_Diagnosis_Encounter" + }, + "Severe_Acne": { + "type": "ConditionOnset", + "target_encounter": "Acne_Diagnosis_Encounter", + "codes": [ + { + "system": "ICD-10-CM", + "code": "20002_1548", + "display": "Acne vulgaris" + } + ], + "assign_to_attribute": "acne", + "direct_transition": "Acne_Diagnosis_Encounter" + }, + "Acne_Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "acne", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem" + } + ], + "direct_transition": "Acne_Diagnosis" + }, + "Acne_Diagnosis": { + "type": "Procedure", + "target_encounter": "Acne_Diagnosis_Encounter", + "reason": "acne", + "codes": [ + { + "system": "SNOMED-CT", + "code": "76058001", + "display": "Assessment of skin condition" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Mild_Acne" + }, + "transition": "Prescribe_Mild_Treatment" + }, + { + "condition": { + "condition_type": "PriorState", + "name": "Moderate_Acne" + }, + "transition": "Prescribe_Moderate_Treatment" + }, + { + "condition": { + "condition_type": "PriorState", + "name": "Severe_Acne" + }, + "transition": "Prescribe_Severe_Treatment" + } + ] + }, + "Prescribe_Mild_Treatment": { + "type": "MedicationOrder", + "target_encounter": "Acne_Diagnosis_Encounter", + "reason": "acne", + "codes": [ + { + "system": "RxNorm", + "code": "1043400", + "display": "Benzoyl Peroxide 5% Topical Gel" + } + ], + "direct_transition": "Lifestyle_Education" + }, + "Prescribe_Moderate_Treatment": { + "type": "MedicationOrder", + "target_encounter": "Acne_Diagnosis_Encounter", + "reason": "acne", + "codes": [ + { + "system": "RxNorm", + "code": "1043400", + "display": "Benzoyl Peroxide 5% Topical Gel" + } + ], + "direct_transition": "Prescribe_Topical_Antibiotic" + }, + "Prescribe_Topical_Antibiotic": { + "type": "MedicationOrder", + "target_encounter": "Acne_Diagnosis_Encounter", + "reason": "acne", + "codes": [ + { + "system": "RxNorm", + "code": "1153378", + "display": "Clindamycin 1% Topical Solution" + } + ], + "direct_transition": "Lifestyle_Education" + }, + "Prescribe_Severe_Treatment": { + "type": "MedicationOrder", + "target_encounter": "Acne_Diagnosis_Encounter", + "reason": "acne", + "codes": [ + { + "system": "RxNorm", + "code": "197698", + "display": "Isotretinoin 20 MG Oral Capsule" + } + ], + "direct_transition": "Lifestyle_Education" + }, + "Lifestyle_Education": { + "type": "Procedure", + "target_encounter": "Acne_Diagnosis_Encounter", + "reason": "acne", + "codes": [ + { + "system": "SNOMED-CT", + "code": "409063005", + "display": "Counseling" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Treatment_Period" + }, + "Treatment_Period": { + "type": "Delay", + "range": { + "low": 4, + "high": 12, + "unit": "weeks" + }, + "direct_transition": "Follow_Up_Encounter" + }, + "Follow_Up_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "acne", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter" + } + ], + "direct_transition": "Assess_Treatment_Response" + }, + "Assess_Treatment_Response": { + "type": "Procedure", + "target_encounter": "Follow_Up_Encounter", + "reason": "acne", + "codes": [ + { + "system": "SNOMED-CT", + "code": "76058001", + "display": "Assessment of skin condition" + } + ], + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Treatment_Successful" + }, + { + "distribution": 0.3, + "transition": "Treatment_Adjustment_Needed" + } + ] + }, + "Treatment_Successful": { + "type": "Simple", + "direct_transition": "End_Follow_Up_Encounter" + }, + "Treatment_Adjustment_Needed": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Mild_Acne" + }, + "transition": "Escalate_To_Moderate_Treatment" + }, + { + "condition": { + "condition_type": "PriorState", + "name": "Moderate_Acne" + }, + "transition": "Escalate_To_Severe_Treatment" + }, + { + "condition": { + "condition_type": "PriorState", + "name": "Severe_Acne" + }, + "transition": "Adjust_Severe_Treatment" + } + ] + }, + "Escalate_To_Moderate_Treatment": { + "type": "MedicationOrder", + "target_encounter": "Follow_Up_Encounter", + "reason": "acne", + "codes": [ + { + "system": "RxNorm", + "code": "1153378", + "display": "Clindamycin 1% Topical Solution" + } + ], + "direct_transition": "End_Follow_Up_Encounter" + }, + "Escalate_To_Severe_Treatment": { + "type": "MedicationOrder", + "target_encounter": "Follow_Up_Encounter", + "reason": "acne", + "codes": [ + { + "system": "RxNorm", + "code": "197698", + "display": "Isotretinoin 20 MG Oral Capsule" + } + ], + "direct_transition": "End_Follow_Up_Encounter" + }, + "Adjust_Severe_Treatment": { + "type": "MedicationOrder", + "target_encounter": "Follow_Up_Encounter", + "reason": "acne", + "codes": [ + { + "system": "RxNorm", + "code": "197699", + "display": "Isotretinoin 40 MG Oral Capsule" + } + ], + "direct_transition": "End_Follow_Up_Encounter" + }, + "End_Follow_Up_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Check_For_Complications" + }, + "Check_For_Complications": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.05, + "transition": "Develop_Scarring" + }, + { + "distribution": 0.95, + "transition": "Continued_Treatment" + } + ] + }, + "Develop_Scarring": { + "type": "ConditionOnset", + "target_encounter": "Complication_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "429127001", + "display": "Acne scar" + } + ], + "direct_transition": "Complication_Encounter" + }, + "Complication_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem" + } + ], + "direct_transition": "Treat_Scarring" + }, + "Treat_Scarring": { + "type": "Procedure", + "target_encounter": "Complication_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "277358003", + "display": "Topical treatment" + } + ], + "direct_transition": "End_Complication_Encounter" + }, + "End_Complication_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Continued_Treatment" + }, + "Continued_Treatment": { + "type": "Delay", + "range": { + "low": 3, + "high": 6, + "unit": "months" + }, + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Acne_Resolves" + }, + { + "distribution": 0.3, + "transition": "Follow_Up_Encounter" + } + ] + }, + "Acne_Resolves": { + "type": "ConditionEnd", + "referenced_by_attribute": "acne", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/acute_bronchitis.json b/src/main/resources/modules/acute_bronchitis.json new file mode 100644 index 0000000..a00e6ba --- /dev/null +++ b/src/main/resources/modules/acute_bronchitis.json @@ -0,0 +1,397 @@ +{ + "name": "Acute Bronchitis", + "remarks": [ + "This module represents acute bronchitis, a common respiratory infection.", + "Acute bronchitis is usually caused by viruses, less commonly by bacteria.", + "Sources: https://www.cdc.gov/antibiotic-use/bronchitis.html", + "https://www.ncbi.nlm.nih.gov/books/NBK448067/", + "https://www.aafp.org/pubs/afp/issues/2016/1001/p560.html" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Potential_Onset" + }, + "Potential_Onset": { + "type": "Delay", + "range": { + "low": 0, + "high": 80, + "unit": "years" + }, + "direct_transition": "Bronchitis_Incidence" + }, + "Bronchitis_Incidence": { + "type": "Simple", + "remarks": [ + "Acute bronchitis affects approximately 5% of adults annually.", + "Risk is higher in winter months and in those with underlying conditions." + ], + "distributed_transition": [ + { + "distribution": 0.05, + "transition": "Bronchitis_Onset" + }, + { + "distribution": 0.95, + "transition": "No_Bronchitis" + } + ] + }, + "No_Bronchitis": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "years" + }, + "direct_transition": "Bronchitis_Incidence" + }, + "Bronchitis_Onset": { + "type": "ConditionOnset", + "target_encounter": "Bronchitis_Encounter", + "assign_to_attribute": "bronchitis_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "10509002", + "display": "Acute bronchitis (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "J20.9", + "display": "Acute bronchitis, unspecified" + } + ], + "direct_transition": "Bronchitis_Symptom_Cough" + }, + "Bronchitis_Symptom_Cough": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 60, + "high": 95 + }, + "direct_transition": "Bronchitis_Symptom_Sputum" + }, + "Bronchitis_Symptom_Sputum": { + "type": "Symptom", + "symptom": "Sputum production", + "range": { + "low": 45, + "high": 85 + }, + "direct_transition": "Bronchitis_Symptom_Fatigue" + }, + "Bronchitis_Symptom_Fatigue": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "Bronchitis_Symptom_Fever" + }, + "Bronchitis_Symptom_Fever": { + "type": "Symptom", + "symptom": "Fever", + "range": { + "low": 0, + "high": 40 + }, + "direct_transition": "Bronchitis_Symptom_Chest_Discomfort" + }, + "Bronchitis_Symptom_Chest_Discomfort": { + "type": "Symptom", + "symptom": "Chest discomfort", + "range": { + "low": 20, + "high": 60 + }, + "direct_transition": "Bronchitis_Symptom_Shortness_Of_Breath" + }, + "Bronchitis_Symptom_Shortness_Of_Breath": { + "type": "Symptom", + "symptom": "Shortness of breath", + "range": { + "low": 10, + "high": 50 + }, + "direct_transition": "Bronchitis_Symptom_Wheezing" + }, + "Bronchitis_Symptom_Wheezing": { + "type": "Symptom", + "symptom": "Wheezing", + "range": { + "low": 5, + "high": 40 + }, + "direct_transition": "Delay_Until_Doctor" + }, + "Delay_Until_Doctor": { + "type": "Delay", + "range": { + "low": 2, + "high": 7, + "unit": "days" + }, + "direct_transition": "Bronchitis_Encounter" + }, + "Bronchitis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "bronchitis_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "direct_transition": "Bronchitis_Diagnosis" + }, + "Bronchitis_Diagnosis": { + "type": "Procedure", + "target_encounter": "Bronchitis_Encounter", + "reason": "bronchitis_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "162673000", + "display": "General examination of patient (procedure)" + } + ], + "direct_transition": "Bronchitis_Treatment_Decision" + }, + "Bronchitis_Treatment_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Prescribe_Antibiotics", + "remarks": "Despite guidelines recommending against routine antibiotic use, many patients still receive them" + }, + { + "distribution": 0.7, + "transition": "Symptomatic_Treatment" + } + ] + }, + "Prescribe_Antibiotics": { + "type": "MedicationOrder", + "target_encounter": "Bronchitis_Encounter", + "reason": "bronchitis_condition", + "codes": [ + { + "system": "RxNorm", + "code": "1658139", + "display": "Azithromycin 250 MG Oral Tablet" + } + ], + "direct_transition": "Symptomatic_Treatment" + }, + "Symptomatic_Treatment": { + "type": "MedicationOrder", + "target_encounter": "Bronchitis_Encounter", + "reason": "bronchitis_condition", + "codes": [ + { + "system": "RxNorm", + "code": "313782", + "display": "Acetaminophen 325 MG Oral Tablet" + } + ], + "direct_transition": "Bronchitis_CarePlan" + }, + "Bronchitis_CarePlan": { + "type": "CarePlanStart", + "target_encounter": "Bronchitis_Encounter", + "assign_to_attribute": "bronchitis_careplan", + "reason": "bronchitis_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "408906008", + "display": "Respiratory therapy (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "409002008", + "display": "Respiratory therapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "56251003", + "display": "Supportive care (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "11816003", + "display": "Increased fluid intake (regime/therapy)" + } + ], + "direct_transition": "End_Encounter" + }, + "End_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Recovery_Period" + }, + "Recovery_Period": { + "type": "Delay", + "range": { + "low": 10, + "high": 21, + "unit": "days" + }, + "direct_transition": "Bronchitis_Resolves" + }, + "Bronchitis_Resolves": { + "type": "ConditionEnd", + "referenced_by_attribute": "bronchitis_condition", + "direct_transition": "End_Bronchitis_Symptoms" + }, + "End_Bronchitis_Symptoms": { + "type": "Symptom", + "symptom": "Cough", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Sputum" + }, + "End_Sputum": { + "type": "Symptom", + "symptom": "Sputum production", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Fatigue" + }, + "End_Fatigue": { + "type": "Symptom", + "symptom": "Fatigue", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Fever" + }, + "End_Fever": { + "type": "Symptom", + "symptom": "Fever", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Chest_Discomfort" + }, + "End_Chest_Discomfort": { + "type": "Symptom", + "symptom": "Chest discomfort", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Shortness_Of_Breath" + }, + "End_Shortness_Of_Breath": { + "type": "Symptom", + "symptom": "Shortness of breath", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Wheezing" + }, + "End_Wheezing": { + "type": "Symptom", + "symptom": "Wheezing", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Medications" + }, + "End_Medications": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "1658139", + "display": "Azithromycin 250 MG Oral Tablet" + } + ] + }, + "transition": "End_Antibiotics" + }, + { + "transition": "End_Pain_Medication" + } + ] + }, + "End_Antibiotics": { + "type": "MedicationEnd", + "medication_order": { + "codes": [ + { + "system": "RxNorm", + "code": "1658139", + "display": "Azithromycin 250 MG Oral Tablet" + } + ] + }, + "direct_transition": "End_Pain_Medication" + }, + "End_Pain_Medication": { + "type": "MedicationEnd", + "medication_order": { + "codes": [ + { + "system": "RxNorm", + "code": "313782", + "display": "Acetaminophen 325 MG Oral Tablet" + } + ] + }, + "direct_transition": "End_CarePlan" + }, + "End_CarePlan": { + "type": "CarePlanEnd", + "referenced_by_attribute": "bronchitis_careplan", + "direct_transition": "Potential_Followup" + }, + "Potential_Followup": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.1, + "transition": "Followup_Encounter", + "remarks": "Only a small percentage of patients need followup for acute bronchitis" + }, + { + "distribution": 0.9, + "transition": "Potential_Onset" + } + ] + }, + "Followup_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "End_Followup" + }, + "End_Followup": { + "type": "EncounterEnd", + "direct_transition": "Potential_Onset" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/acute_myeloid_leukemia.json b/src/main/resources/modules/acute_myeloid_leukemia.json new file mode 100644 index 0000000..7486ac4 --- /dev/null +++ b/src/main/resources/modules/acute_myeloid_leukemia.json @@ -0,0 +1,879 @@ +{ + "name": "Acute Myeloid Leukemia for PCOR Research", + "states": { + "Initial": { + "type": "Initial", + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "Cancerous", + "distribution": 0.002 + }, + { + "transition": "Terminal", + "distribution": 0.998 + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "transition": "Cancerous", + "distribution": 0.003 + }, + { + "transition": "Terminal", + "distribution": 0.997 + } + ] + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Levofloxacin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 199885, + "display": "levofloxacin 500 MG Oral Tablet" + } + ], + "chronic": false, + "assign_to_attribute": "levofloxacin", + "administration": true, + "reason": "Acute_Myeloid_Leukemia_AML", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "days" + } + }, + "direct_transition": "Absolute_Neutrophil_Count_ANC" + }, + "No_Levofloxacin_Prophylaxis": { + "type": "Simple", + "direct_transition": "Absolute_Neutrophil_Count_ANC2" + }, + "Absolute_Neutrophil_Count_ANC": { + "type": "Observation", + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "751-8", + "display": "Neutrophils [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 250, + "high": 500 + }, + "direct_transition": "Check_Fever" + }, + "Febrile_Neutropenia": { + "type": "ConditionOnset", + "assign_to_attribute": "", + "target_encounter": "Chemotherapy_Inpatient_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "409089005", + "display": "Febrile neutropenia (disorder)" + } + ], + "direct_transition": "Check_Bacteremia" + }, + "Non-Febrile_Neutropenia": { + "type": "ConditionOnset", + "assign_to_attribute": "", + "target_encounter": "Chemotherapy_Inpatient_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "47318007", + "display": "Drug-induced neutropenia (disorder)" + } + ], + "direct_transition": "Transfer_to_Stepdown" + }, + "Bacteremia": { + "type": "ConditionOnset", + "assign_to_attribute": "bacteremia", + "target_encounter": "Chemotherapy_Inpatient_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "5758002", + "display": "Bacteremia (finding)" + } + ], + "distributed_transition": [ + { + "transition": "Transfer_to_ICU", + "distribution": 0.112 + }, + { + "transition": "Transfer_to_Stepdown", + "distribution": 0.8620000000000001 + }, + { + "transition": "Death_Event", + "distribution": 0.026 + } + ] + }, + "Check_Bacteremia": { + "type": "Delay", + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 90, + "standardDeviation": 30 + } + }, + "unit": "minutes", + "complex_transition": [ + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 199885, + "display": "levofloxacin 500 MG Oral Tablet" + } + ] + }, + "distributions": [ + { + "transition": "Bacteremia", + "distribution": 0.137 + }, + { + "transition": "No_Bacteremia", + "distribution": 0.863 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "levofloxacin", + "operator": "is nil" + }, + "distributions": [ + { + "transition": "Bacteremia", + "distribution": 0.33 + }, + { + "transition": "No_Bacteremia", + "distribution": 0.6699999999999999 + } + ] + } + ] + }, + "No_Bacteremia": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Transfer_to_ICU", + "distribution": 0.041 + }, + { + "transition": "Death_Event", + "distribution": 0.015 + }, + { + "transition": "Transfer_to_Stepdown", + "distribution": 0.944 + } + ] + }, + "Death": { + "type": "Death", + "direct_transition": "End_Encounter2", + "remarks": [ + "" + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "91861009", + "display": "Acute myeloid leukemia (disorder)" + } + ] + }, + "End_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal", + "discharge_disposition": { + "system": "NUBC", + "code": 1, + "display": "Discharge to Home" + } + }, + "Absolute_Neutrophil_Count_ANC2": { + "type": "Observation", + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "751-8", + "display": "Neutrophils [#/volume] in Blood by Automated count" + } + ], + "direct_transition": "Check_Fever2", + "range": { + "low": 250, + "high": 500 + } + }, + "Normal_Body_Temp": { + "type": "Observation", + "category": "vital-signs", + "unit": "[degF]", + "codes": [ + { + "system": "LOINC", + "code": "8310-5", + "display": "Body Temperature" + } + ], + "direct_transition": "Non-Febrile_Neutropenia", + "range": { + "low": 96, + "high": 99 + } + }, + "Fever": { + "type": "Observation", + "category": "vital-signs", + "unit": "[degF]", + "codes": [ + { + "system": "LOINC", + "code": "8310-5", + "display": "Body Temperature" + } + ], + "range": { + "low": 100.4, + "high": 103 + }, + "direct_transition": "Febrile_Neutropenia" + }, + "Check_Fever": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Fever", + "distribution": 0.656 + }, + { + "transition": "Normal_Body_Temp", + "distribution": 0.344 + } + ] + }, + "Check_Fever2": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Fever", + "distribution": 0.795 + }, + { + "transition": "Normal_Body_Temp", + "distribution": 0.20500000000000007 + } + ] + }, + "Chemotherapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "367336001", + "display": "Chemotherapy (procedure)" + } + ], + "duration": { + "low": 60, + "high": 120, + "unit": "minutes" + }, + "reason": "Acute_Myeloid_Leukemia_AML", + "direct_transition": "Determine_Levofloxacin_Prophylaxis" + }, + "Transfer_to_ICU": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305351004", + "display": "Admission to intensive care unit (procedure)" + } + ], + "duration": { + "low": 30, + "high": 120, + "unit": "minutes" + }, + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "5758002", + "display": "Bacteremia (finding)" + } + ] + }, + "distributions": [ + { + "transition": "Death_Event", + "distribution": 0.167 + }, + { + "transition": "Transfer_to_Stepdown", + "distribution": 0.833 + } + ] + }, + { + "distributions": [ + { + "transition": "Death_Event", + "distribution": 0.061 + }, + { + "transition": "Transfer_to_Stepdown", + "distribution": 0.9390000000000001 + } + ] + } + ], + "reason": "Febrile_Neutropenia" + }, + "Chemotherapy_Inpatient_Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "Acute_Myeloid_Leukemia_AML", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Wait for Treatment" + }, + "Death_Event": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "16983000", + "display": "Death in hospital (event)" + } + ], + "duration": { + "low": 30, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "Death", + "reason": "Acute_Myeloid_Leukemia_AML" + }, + "Determine_Levofloxacin_Prophylaxis": { + "type": "Delay", + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 90, + "standardDeviation": 30 + } + }, + "unit": "minutes", + "lookup_table_transition": [ + { + "transition": "Levofloxacin", + "default_probability": 0.2638, + "lookup_table_name": "AML.csv" + }, + { + "transition": "No_Levofloxacin_Prophylaxis", + "default_probability": 0.7362, + "lookup_table_name": "AML.csv" + } + ] + }, + "End_Encounter2": { + "type": "EncounterEnd", + "direct_transition": "Terminal", + "discharge_disposition": { + "system": "NUBC", + "code": 41, + "display": "Expired in medical facility" + } + }, + "Transfer_to_Stepdown": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "449214001", + "display": "Transfer to stepdown unit (procedure)" + } + ], + "duration": { + "low": 60, + "high": 120, + "unit": "minutes" + }, + "direct_transition": "Wait for Discharge", + "reason": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_1": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_2": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 2 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_3": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 3 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_4": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 4 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_5": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 5 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_6": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 6 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_7": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 7 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_8": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 8 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_9": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 9 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_10": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 10 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_11": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 11 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_12": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 12 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_13": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 13 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_14": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 14 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_15": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 15 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_16": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 16 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_17": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 17 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_18": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 18 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_19": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 19 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_20": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 20 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_21": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 21 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Delay_0": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 0 + } + }, + "unit": "years", + "direct_transition": "Acute_Myeloid_Leukemia_AML" + }, + "Acute_Myeloid_Leukemia_AML": { + "type": "ConditionOnset", + "assign_to_attribute": "", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91861009", + "display": "Acute myeloid leukemia (disorder)" + } + ], + "direct_transition": "Chemotherapy_Inpatient_Encounter" + }, + "End_Levofloxacin": { + "type": "MedicationEnd", + "direct_transition": "End_AML", + "medication_order": "Levofloxacin", + "codes": [ + { + "system": "RxNorm", + "code": 199885, + "display": "levofloxacin 500MG Oral tablet" + } + ] + }, + "End_Non-Febrile_Neutropenia": { + "type": "ConditionEnd", + "direct_transition": "End_Febrile_Neutropenia", + "condition_onset": "Non-Febrile_Neutropenia" + }, + "End_Febrile_Neutropenia": { + "type": "ConditionEnd", + "direct_transition": "End_Bacteremia", + "condition_onset": "Febrile_Neutropenia" + }, + "End_Bacteremia": { + "type": "ConditionEnd", + "direct_transition": "End_Encounter", + "condition_onset": "Bacteremia" + }, + "End_AML": { + "type": "ConditionEnd", + "direct_transition": "End_Non-Febrile_Neutropenia", + "condition_onset": "Acute_Myeloid_Leukemia_AML" + }, + "Cancerous": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Delay_1", + "distribution": 0.098 + }, + { + "transition": "Delay_2", + "distribution": 0.1264 + }, + { + "transition": "Delay_3", + "distribution": 0.1094 + }, + { + "transition": "Delay_4", + "distribution": 0.0645 + }, + { + "transition": "Delay_5", + "distribution": 0.0533 + }, + { + "transition": "Delay_6", + "distribution": 0.0345 + }, + { + "transition": "Delay_7", + "distribution": 0.0362 + }, + { + "transition": "Delay_8", + "distribution": 0.0318 + }, + { + "transition": "Delay_9", + "distribution": 0.0354 + }, + { + "transition": "Delay_10", + "distribution": 0.0346 + }, + { + "transition": "Delay_11", + "distribution": 0.0289 + }, + { + "transition": "Delay_12", + "distribution": 0.0312 + }, + { + "transition": "Delay_13", + "distribution": 0.033 + }, + { + "transition": "Delay_14", + "distribution": 0.03 + }, + { + "transition": "Delay_15", + "distribution": 0.0343 + }, + { + "transition": "Delay_16", + "distribution": 0.0289 + }, + { + "transition": "Delay_17", + "distribution": 0.0323 + }, + { + "transition": "Delay_18", + "distribution": 0.0323 + }, + { + "transition": "Delay_19", + "distribution": 0.0346 + }, + { + "transition": "Delay_20", + "distribution": 0.0315 + }, + { + "transition": "Delay_21", + "distribution": 0.0173 + }, + { + "transition": "Delay_0", + "distribution": 0.04159999999999997 + } + ] + }, + "Wait for Treatment": { + "type": "Delay", + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 180, + "standardDeviation": 60 + } + }, + "unit": "minutes", + "direct_transition": "Chemotherapy" + }, + "Wait for Discharge": { + "type": "Delay", + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 180, + "standardDeviation": 60 + } + }, + "unit": "minutes", + "direct_transition": "End_Levofloxacin" + } + }, + "remarks": [ + "Module Title: Acute Myeloid Leukemia for PCOR Research", + "Version Number: 1.0", + "Date Created: 8/12/2021", + "Module Steward: ONC", + "Module Developer: Clinovations Government + Health", + "Description: This module models Levofloxacin prophylaxis in patients age <=21 years of age. It is based on a microsimulation study to effectively test the utility of Synthea data for PCOR hypothesis testing. This module was designed with a microsimulation-based hypothesis from a study by McCormick et al., which provides an evaluation of the cost effectiveness of levofloxacin use in children with acute myeloid leukemia (AML). The McCormick study includes a decision-analysis model designed to evaluate the cost-effectiveness of levofloxacin prophylaxis compared to no prophylaxis in patients less than or equal to 21 years of age with AML during a single chemotherapy inpatient visit. The study reports outcomes, including the cost of bacterial infection, cost per ICU admission, and cost per death avoided. In order to replicate the costs within this study, costs within appropriate Synthea cost lookup files were updated. In addition, one city in the default demographics file within Synthea was updated with gender, race, and ethnicity parameters from the McCormick study in order to generate similar population characteristics. This module is not intended to include all possible clinical issues related to the patient with acute myeloid leukemia (AML) or represent a clinical care guideline of any kind.", + "", + "Reference: McCormick M, Friehling E, Kalpatthi R, Siripong N, Smith K. Cost‐effectiveness of levofloxacin prophylaxis against bacterial infection in pediatric patients with acute myeloid leukemia. Pediatric Blood & Cancer. 2020 Oct;67(10):e28469", + "", + "Update January 2023 -- inserted delays and changed population who get AML from everyone to 0.2% of the females and 0.3% of males, according to the American Cancer Society, Cancer Facts & Figures, 2022. https://www.cancer.org/content/dam/cancer-org/research/cancer-facts-and-statistics/annual-cancer-facts-and-figures/2022/2022-cancer-facts-and-figures.pdf", + "" + ], + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/acute_myocardial_infarction.json b/src/main/resources/modules/acute_myocardial_infarction.json new file mode 100644 index 0000000..9483d0f --- /dev/null +++ b/src/main/resources/modules/acute_myocardial_infarction.json @@ -0,0 +1,493 @@ +{ + "name": "Acute Myocardial Infarction", + "remarks": [ + "Acute myocardial infarction (AMI) is commonly known as a heart attack.", + "It occurs when blood flow to a part of the heart is blocked, causing damage to the heart muscle.", + "Risk factors include age, smoking, hypertension, diabetes, obesity, and family history.", + "This module models the onset, diagnosis, treatment, and potential complications of AMI.", + "Information sources:", + "https://www.heart.org/en/health-topics/heart-attack", + "https://www.ncbi.nlm.nih.gov/books/NBK537076/", + "https://www.ahajournals.org/doi/10.1161/CIR.0000000000000617" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + "AMI incidence increases with age and is higher in males than females.", + "Approximately 805,000 Americans have a heart attack each year.", + "About 605,000 are first heart attacks and 200,000 are recurrent attacks." + ], + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 35, + "unit": "years" + }, + "direct_transition": "AMI_Risk_Assessment" + }, + "AMI_Risk_Assessment": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "distribution": 0.08, + "transition": "AMI_Onset" + }, + { + "distribution": 0.92, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "distribution": 0.05, + "transition": "AMI_Onset" + }, + { + "distribution": 0.95, + "transition": "Terminal" + } + ] + } + ] + }, + "AMI_Onset": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "STEMI_Onset" + }, + { + "distribution": 0.3, + "transition": "NSTEMI_Onset" + } + ] + }, + "STEMI_Onset": { + "type": "ConditionOnset", + "target_encounter": "Emergency_Department_Visit", + "assign_to_attribute": "ami", + "codes": [ + { + "system": "SNOMED-CT", + "code": "401303003", + "display": "Acute ST segment elevation myocardial infarction (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I21.3", + "display": "ST elevation (STEMI) myocardial infarction of unspecified site" + } + ], + "direct_transition": "AMI_Symptoms" + }, + "NSTEMI_Onset": { + "type": "ConditionOnset", + "target_encounter": "Emergency_Department_Visit", + "assign_to_attribute": "ami", + "codes": [ + { + "system": "SNOMED-CT", + "code": "401314000", + "display": "Acute non-ST segment elevation myocardial infarction (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I21.4", + "display": "Non-ST elevation (NSTEMI) myocardial infarction" + } + ], + "direct_transition": "AMI_Symptoms" + }, + "AMI_Symptoms": { + "type": "Symptom", + "symptom": "Chest Pain", + "range": { + "low": 80, + "high": 100 + }, + "direct_transition": "Shortness_of_Breath" + }, + "Shortness_of_Breath": { + "type": "Symptom", + "symptom": "Shortness of Breath", + "range": { + "low": 60, + "high": 90 + }, + "direct_transition": "Nausea" + }, + "Nausea": { + "type": "Symptom", + "symptom": "Nausea", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "Diaphoresis" + }, + "Diaphoresis": { + "type": "Symptom", + "symptom": "Diaphoresis", + "range": { + "low": 40, + "high": 80 + }, + "direct_transition": "Arm_Pain" + }, + "Arm_Pain": { + "type": "Symptom", + "symptom": "Arm Pain", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "Jaw_Pain" + }, + "Jaw_Pain": { + "type": "Symptom", + "symptom": "Jaw Pain", + "range": { + "low": 20, + "high": 60 + }, + "direct_transition": "Emergency_Department_Visit" + }, + "Emergency_Department_Visit": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "ami", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "Vital_Signs" + }, + "Vital_Signs": { + "type": "Procedure", + "reason": "ami", + "codes": [ + { + "system": "SNOMED-CT", + "code": "5880005", + "display": "Physical examination procedure (procedure)" + } + ], + "direct_transition": "Blood_Pressure" + }, + "Blood_Pressure": { + "type": "Observation", + "category": "vital-signs", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic blood pressure" + } + ], + "range": { + "low": 90, + "high": 160 + }, + "direct_transition": "Heart_Rate" + }, + "Heart_Rate": { + "type": "Observation", + "category": "vital-signs", + "unit": "/min", + "codes": [ + { + "system": "LOINC", + "code": "8867-4", + "display": "Heart rate" + } + ], + "range": { + "low": 80, + "high": 120 + }, + "direct_transition": "ECG" + }, + "ECG": { + "type": "Procedure", + "reason": "ami", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29303009", + "display": "Electrocardiographic procedure (procedure)" + } + ], + "direct_transition": "Cardiac_Enzymes" + }, + "Cardiac_Enzymes": { + "type": "Procedure", + "reason": "ami", + "codes": [ + { + "system": "SNOMED-CT", + "code": "313791000", + "display": "Laboratory test (procedure)" + } + ], + "direct_transition": "Troponin_Test" + }, + "Troponin_Test": { + "type": "Observation", + "category": "laboratory", + "unit": "ng/mL", + "codes": [ + { + "system": "LOINC", + "code": "10839-9", + "display": "Troponin I [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.4, + "high": 10.0 + }, + "direct_transition": "CK_MB_Test" + }, + "CK_MB_Test": { + "type": "Observation", + "category": "laboratory", + "unit": "ng/mL", + "codes": [ + { + "system": "LOINC", + "code": "13969-1", + "display": "Creatine kinase.MB [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 10.0, + "high": 30.0 + }, + "direct_transition": "Initial_Treatment" + }, + "Initial_Treatment": { + "type": "Simple", + "direct_transition": "Aspirin" + }, + "Aspirin": { + "type": "MedicationOrder", + "reason": "ami", + "codes": [ + { + "system": "RxNorm", + "code": "1191", + "display": "Aspirin 325 MG Oral Tablet" + } + ], + "direct_transition": "Oxygen_Therapy" + }, + "Oxygen_Therapy": { + "type": "Procedure", + "reason": "ami", + "codes": [ + { + "system": "SNOMED-CT", + "code": "57485005", + "display": "Oxygen therapy (procedure)" + } + ], + "direct_transition": "Morphine" + }, + "Morphine": { + "type": "MedicationOrder", + "reason": "ami", + "codes": [ + { + "system": "RxNorm", + "code": "863671", + "display": "Morphine Sulfate 2 MG/ML Injectable Solution" + } + ], + "direct_transition": "Nitroglycerin" + }, + "Nitroglycerin": { + "type": "MedicationOrder", + "reason": "ami", + "codes": [ + { + "system": "RxNorm", + "code": "705129", + "display": "Nitroglycerin 0.4 MG Sublingual Tablet" + } + ], + "direct_transition": "Treatment_Decision" + }, + "Treatment_Decision": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "401303003", + "display": "Acute ST segment elevation myocardial infarction (disorder)" + } + ] + }, + "transition": "STEMI_Treatment_Decision" + }, + { + "transition": "NSTEMI_Treatment" + } + ] + }, + "STEMI_Treatment_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Primary_PCI" + }, + { + "distribution": 0.3, + "transition": "Thrombolytic_Therapy" + } + ] + }, + "Primary_PCI": { + "type": "Procedure", + "reason": "ami", + "codes": [ + { + "system": "SNOMED-CT", + "code": "415070008", + "display": "Percutaneous coronary intervention (procedure)" + } + ], + "duration": { + "low": 60, + "high": 120, + "unit": "minutes" + }, + "direct_transition": "Stent_Placement" + }, + "Stent_Placement": { + "type": "Procedure", + "reason": "ami", + "codes": [ + { + "system": "SNOMED-CT", + "code": "36969009", + "display": "Placement of stent in coronary artery (procedure)" + } + ], + "direct_transition": "Post_PCI_Care" + }, + "Post_PCI_Care": { + "type": "Procedure", + "reason": "ami", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305351004", + "display": "Admission to intensive care unit (procedure)" + } + ], + "direct_transition": "Dual_Antiplatelet_Therapy" + }, + "Dual_Antiplatelet_Therapy": { + "type": "MedicationOrder", + "reason": "ami", + "codes": [ + { + "system": "RxNorm", + "code": "1116632", + "display": "Clopidogrel 75 MG Oral Tablet" + } + ], + "direct_transition": "Beta_Blocker" + }, + "Thrombolytic_Therapy": { + "type": "Procedure", + "reason": "ami", + "codes": [ + { + "system": "SNOMED-CT", + "code": "75540009", + "display": "Thrombolytic therapy (procedure)" + } + ], + "direct_transition": "Alteplase" + }, + "Alteplase": { + "type": "MedicationOrder", + "reason": "ami", + "codes": [ + { + "system": "RxNorm", + "code": "308056", + "display": "Alteplase 50 MG Injection" + } + ], + "direct_transition": "Post_Thrombolytic_Care" + }, + "Post_Thrombolytic_Care": { + "type": "Procedure", + "reason": "ami", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305351004", + "display": "Admission to intensive care unit (procedure)" + } + ], + "direct_transition": "Dual_Antiplatelet_Therapy" + }, + "NSTEMI_Treatment": { + "type": "Procedure", + "reason": "ami", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305351004", + "display": "Admission to intensive care unit (procedure)" + } + ], + "direct_transition": "Anticoagulation" + }, + "Anticoagulation": { + "type": "MedicationOrder", + "reason": "ami", + "codes": [ + { + "system": "RxNorm", + "code": "1361493", + "display": "Heparin Sodium 5000 UNT/ML Injectable Solution" + } + ], + "direct_transition": "Dual_Antiplatelet_Therapy" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/acute_pharyngitis.json b/src/main/resources/modules/acute_pharyngitis.json new file mode 100644 index 0000000..3d1b555 --- /dev/null +++ b/src/main/resources/modules/acute_pharyngitis.json @@ -0,0 +1,183 @@ +{ + "name": "Acute pharyngitis", + "remarks": [ + "Acute pharyngitis is an inflammation of the pharynx (throat) that typically causes a sore throat and pain with swallowing. It is most commonly caused by viral infections, though bacterial infections (particularly group A Streptococcus) account for 5-15% of cases in adults and 20-30% in children. Acute pharyngitis is highly contagious and spreads through respiratory droplets or direct contact with infected individuals. Most cases resolve within 7-10 days, with or without treatment.", + "Category: Respiratory System", + "Risk factors: - Age: Most common in children aged 5-15 years - Season: More prevalent in winter and early spring - Exposure: Close contact with infected individuals - Environment: Crowded settings (schools, daycare centers, military barracks) - Smoking or exposure to secondhand smoke - Air pollution or irritants - Allergies - Weakened immune system - Chronic fatigue" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years" + }, + "direct_transition": "Delay_Until_Onset" + }, + "Delay_Until_Onset": { + "type": "Delay", + "range": { + "low": 0, + "high": 20, + "unit": "years" + }, + "direct_transition": "Onset" + }, + "Onset": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "64109004", + "display": "Acute pharyngitis" + } + ], + "direct_transition": "Diagnosis_Encounter" + }, + "Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Symptom_0" + }, + "Symptom_0": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418107008", + "display": "Sore throat" + } + ], + "direct_transition": "Symptom_1" + }, + "Symptom_1": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418107008", + "display": "Pain when swallowing" + } + ], + "direct_transition": "Symptom_2" + }, + "Symptom_2": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418107008", + "display": "Fever (typically higher in bacterial pharyngitis)" + } + ], + "direct_transition": "DiagnosticTest_0" + }, + "DiagnosticTest_0": { + "type": "Procedure", + "target_encounter": "Diagnosis_Encounter", + "reason": "Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386053000", + "display": "Physical examination of throat" + } + ], + "direct_transition": "DiagnosticTest_1" + }, + "DiagnosticTest_1": { + "type": "Procedure", + "target_encounter": "Diagnosis_Encounter", + "reason": "Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386053000", + "display": "Rapid strep test (rapid antigen detection test)" + } + ], + "direct_transition": "Prescribe_0" + }, + "Prescribe_0": { + "type": "MedicationOrder", + "target_encounter": "Diagnosis_Encounter", + "reason": "Onset", + "codes": [ + { + "system": "RxNorm", + "code": "308047", + "display": "Analgesics/antipyretics: acetaminophen" + } + ], + "direct_transition": "Prescribe_1" + }, + "Prescribe_1": { + "type": "MedicationOrder", + "target_encounter": "Diagnosis_Encounter", + "reason": "Onset", + "codes": [ + { + "system": "RxNorm", + "code": "308047", + "display": "ibuprofen" + } + ], + "direct_transition": "Prescribe_2" + }, + "Prescribe_2": { + "type": "MedicationOrder", + "target_encounter": "Diagnosis_Encounter", + "reason": "Onset", + "codes": [ + { + "system": "RxNorm", + "code": "308047", + "display": "Antibiotics" + } + ], + "direct_transition": "Follow_Up_Encounter" + }, + "Follow_Up_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter" + } + ], + "direct_transition": "End_Follow_Up_Encounter" + }, + "End_Follow_Up_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/acute_pharyngitis.json.details b/src/main/resources/modules/acute_pharyngitis.json.details new file mode 100644 index 0000000..8c6a75f --- /dev/null +++ b/src/main/resources/modules/acute_pharyngitis.json.details @@ -0,0 +1,84 @@ +# Acute Pharyngitis Disease Module Information + +## 1. DESCRIPTION +Acute pharyngitis is an inflammation of the pharynx (throat) that typically causes a sore throat and pain with swallowing. It is most commonly caused by viral infections, though bacterial infections (particularly group A Streptococcus) account for 5-15% of cases in adults and 20-30% in children. Acute pharyngitis is highly contagious and spreads through respiratory droplets or direct contact with infected individuals. Most cases resolve within 7-10 days, with or without treatment. + +## 2. RISK_FACTORS +- Age: Most common in children aged 5-15 years +- Season: More prevalent in winter and early spring +- Exposure: Close contact with infected individuals +- Environment: Crowded settings (schools, daycare centers, military barracks) +- Smoking or exposure to secondhand smoke +- Air pollution or irritants +- Allergies +- Weakened immune system +- Chronic fatigue + +## 3. SYMPTOMS +- Sore throat +- Pain when swallowing +- Fever (typically higher in bacterial pharyngitis) +- Headache +- Fatigue +- Swollen, tender lymph nodes in neck +- Red, inflamed throat and tonsils +- White or yellow patches on tonsils (in streptococcal pharyngitis) +- Hoarseness +- Cough (more common in viral pharyngitis) +- Runny nose (more common in viral pharyngitis) +- Body aches +- Loss of appetite + +## 4. DIAGNOSTIC_TESTS +- Physical examination of throat +- Rapid strep test (rapid antigen detection test) +- Throat culture +- Complete blood count (CBC) +- Monospot test (if mononucleosis is suspected) +- Respiratory viral panel (for viral causes) +- C-reactive protein or erythrocyte sedimentation rate (to assess inflammation) + +## 5. TREATMENTS +- Medications: + - Analgesics/antipyretics: acetaminophen, ibuprofen (for pain and fever relief) + - Antibiotics (for bacterial pharyngitis only): + - Penicillin V + - Amoxicillin + - Cephalexin (for penicillin-allergic patients) + - Azithromycin (for penicillin-allergic patients) + - Clindamycin (for penicillin-allergic patients) + - Throat lozenges or sprays containing local anesthetics (benzocaine, phenol) + - Corticosteroids (in severe cases): prednisone + +- Other interventions: + - Rest + - Increased fluid intake + - Warm salt water gargles + - Humidified air + - Soft, cool foods and avoiding irritating foods + - Honey for symptom relief (not for children under 1 year) + +## 6. COMPLICATIONS +- Peritonsillar abscess (quinsy) +- Retropharyngeal abscess +- Sinusitis +- Otitis media (middle ear infection) +- Rheumatic fever (rare complication of untreated strep throat) +- Post-streptococcal glomerulonephritis +- Scarlet fever (with certain strains of strep) +- Dehydration (due to painful swallowing) +- Airway obstruction (in severe cases with significant swelling) + +## 7. PROGRESSION +- Initial phase: Begins with throat irritation, progressing to pain within hours to days, often accompanied by fever and malaise +- Peak symptoms: Usually occur 2-3 days after onset, with throat pain, difficulty swallowing, and systemic symptoms +- Resolution: Viral pharyngitis typically resolves within 7-10 days without specific treatment; bacterial pharyngitis improves within 24-48 hours of starting antibiotics +- Outcomes: Most cases resolve completely without sequelae; recurrence is possible with new exposures; some patients may develop chronic or recurrent pharyngitis + +## 8. FOLLOW_UP +- Return visit if symptoms worsen or don't improve within expected timeframe +- Complete full course of antibiotics if prescribed (typically 10 days for penicillin) +- Follow-up throat culture may be needed in high-risk patients or recurrent cases +- No routine follow-up needed for uncomplicated cases that resolve +- Evaluation of household contacts may be considered in cases of streptococcal pharyngitis +- Tonsillectomy may be considered for patients with recurrent streptococcal pharyngitis (typically >7 episodes in one year or >5 episodes per year for two consecutive years) \ No newline at end of file diff --git a/src/main/resources/modules/acute_sinusitis.json b/src/main/resources/modules/acute_sinusitis.json new file mode 100644 index 0000000..26212a4 --- /dev/null +++ b/src/main/resources/modules/acute_sinusitis.json @@ -0,0 +1,183 @@ +{ + "name": "Acute sinusitis", + "remarks": [ + "Acute sinusitis is an inflammation of the paranasal sinuses lasting less than 4 weeks, typically caused by viral or bacterial infections. It often develops after an upper respiratory infection when mucus becomes trapped in the sinuses, creating an environment for pathogens to grow. Symptoms include facial pain, nasal congestion, and purulent nasal discharge. Most cases resolve spontaneously, but some require medical intervention.", + "Category: Respiratory System", + "Risk factors: - Age: All ages affected, but more common in adults 18-45 years - Gender: Slightly more common in women - Anatomical factors: Nasal polyps, deviated septum, nasal bone spurs - Environmental: Allergies, cigarette smoke exposure, air pollution - Medical conditions: Recent upper respiratory infections, dental infections, immunodeficiency - Seasonal: More common during cold and flu season (fall and winter)" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years" + }, + "direct_transition": "Delay_Until_Onset" + }, + "Delay_Until_Onset": { + "type": "Delay", + "range": { + "low": 0, + "high": 20, + "unit": "years" + }, + "direct_transition": "Onset" + }, + "Onset": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "64109004", + "display": "Acute sinusitis" + } + ], + "direct_transition": "Diagnosis_Encounter" + }, + "Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Symptom_0" + }, + "Symptom_0": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418107008", + "display": "Facial pain/pressure (particularly over affected sinuses)" + } + ], + "direct_transition": "Symptom_1" + }, + "Symptom_1": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418107008", + "display": "Nasal congestion" + } + ], + "direct_transition": "Symptom_2" + }, + "Symptom_2": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418107008", + "display": "Purulent nasal discharge" + } + ], + "direct_transition": "DiagnosticTest_0" + }, + "DiagnosticTest_0": { + "type": "Procedure", + "target_encounter": "Diagnosis_Encounter", + "reason": "Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386053000", + "display": "Physical examination (including nasal endoscopy)" + } + ], + "direct_transition": "DiagnosticTest_1" + }, + "DiagnosticTest_1": { + "type": "Procedure", + "target_encounter": "Diagnosis_Encounter", + "reason": "Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386053000", + "display": "Nasal swab culture (in persistent cases)" + } + ], + "direct_transition": "Prescribe_0" + }, + "Prescribe_0": { + "type": "MedicationOrder", + "target_encounter": "Diagnosis_Encounter", + "reason": "Onset", + "codes": [ + { + "system": "RxNorm", + "code": "308047", + "display": "Analgesics: acetaminophen" + } + ], + "direct_transition": "Prescribe_1" + }, + "Prescribe_1": { + "type": "MedicationOrder", + "target_encounter": "Diagnosis_Encounter", + "reason": "Onset", + "codes": [ + { + "system": "RxNorm", + "code": "308047", + "display": "ibuprofen" + } + ], + "direct_transition": "Prescribe_2" + }, + "Prescribe_2": { + "type": "MedicationOrder", + "target_encounter": "Diagnosis_Encounter", + "reason": "Onset", + "codes": [ + { + "system": "RxNorm", + "code": "308047", + "display": "Intranasal corticosteroids: fluticasone" + } + ], + "direct_transition": "Follow_Up_Encounter" + }, + "Follow_Up_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter" + } + ], + "direct_transition": "End_Follow_Up_Encounter" + }, + "End_Follow_Up_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/acute_sinusitis.json.details b/src/main/resources/modules/acute_sinusitis.json.details new file mode 100644 index 0000000..21a4329 --- /dev/null +++ b/src/main/resources/modules/acute_sinusitis.json.details @@ -0,0 +1,81 @@ +# Acute Sinusitis Disease Module Information + +## 1. DESCRIPTION +Acute sinusitis is an inflammation of the paranasal sinuses lasting less than 4 weeks, typically caused by viral or bacterial infections. It often develops after an upper respiratory infection when mucus becomes trapped in the sinuses, creating an environment for pathogens to grow. Symptoms include facial pain, nasal congestion, and purulent nasal discharge. Most cases resolve spontaneously, but some require medical intervention. + +## 2. RISK_FACTORS +- Age: All ages affected, but more common in adults 18-45 years +- Gender: Slightly more common in women +- Anatomical factors: Nasal polyps, deviated septum, nasal bone spurs +- Environmental: Allergies, cigarette smoke exposure, air pollution +- Medical conditions: Recent upper respiratory infections, dental infections, immunodeficiency +- Seasonal: More common during cold and flu season (fall and winter) + +## 3. SYMPTOMS +- Facial pain/pressure (particularly over affected sinuses) +- Nasal congestion +- Purulent nasal discharge +- Decreased sense of smell +- Fever (more common in bacterial sinusitis) +- Headache +- Fatigue +- Cough (often worse at night) +- Ear pressure +- Halitosis (bad breath) + +## 4. DIAGNOSTIC_TESTS +- Physical examination (including nasal endoscopy) +- Nasal swab culture (in persistent cases) +- Imaging studies (for complicated cases): + - CT scan of sinuses + - X-ray of sinuses +- Allergy testing (if allergic sinusitis suspected) +- Transillumination of sinuses + +## 5. TREATMENTS +- Medications: + - Analgesics: acetaminophen, ibuprofen (for pain relief) + - Intranasal corticosteroids: fluticasone, mometasone (reduce inflammation) + - Antibiotics: amoxicillin, amoxicillin-clavulanate, doxycycline (for bacterial sinusitis) + - Decongestants: pseudoephedrine (short-term relief of congestion) + - Antihistamines: loratadine, cetirizine (if allergic component) + - Saline nasal sprays (moisturize nasal passages) + +- Procedures: + - Nasal irrigation with saline solution + - Sinus drainage (in severe cases) + +- Other interventions: + - Increased fluid intake + - Warm compresses to face + - Humidification of air + - Elevation of head while sleeping + +## 6. COMPLICATIONS +- Chronic sinusitis (lasting >12 weeks) +- Orbital cellulitis (infection of eye socket) +- Osteomyelitis (bone infection) +- Meningitis +- Brain abscess +- Cavernous sinus thrombosis +- Mucocele formation +- Spread of infection to nearby structures + +## 7. PROGRESSION +- Starts: Usually begins after a viral upper respiratory infection (common cold), with initial symptoms of nasal congestion and discharge +- Development: If drainage is blocked, bacteria may grow in the sinuses, leading to bacterial sinusitis with worsening pain, pressure, and purulent discharge +- Outcomes: + - Most viral cases (>70%) resolve spontaneously within 7-10 days + - Bacterial cases typically improve with antibiotics within 10-14 days + - Some cases may progress to chronic sinusitis + - Rare cases develop serious complications requiring urgent intervention + +## 8. FOLLOW_UP +- Return visit if symptoms worsen or fail to improve after 7-10 days +- Follow-up visit after completing antibiotic course for bacterial sinusitis +- Referral to otolaryngologist (ENT) if: + - Symptoms persist despite treatment + - Recurrent episodes (>3-4 per year) + - Anatomical abnormalities suspected + - Complications develop +- Allergy evaluation if allergic triggers suspected \ No newline at end of file diff --git a/src/main/resources/modules/all_anxiety_disorders.json b/src/main/resources/modules/all_anxiety_disorders.json new file mode 100644 index 0000000..f4a7cbe --- /dev/null +++ b/src/main/resources/modules/all_anxiety_disorders.json @@ -0,0 +1,417 @@ +{ + "name": "All anxiety disorders", + "remarks": [ + "This module models the prevalence and progression of anxiety disorders based on epidemiological data", + "Anxiety disorders are the most common mental disorders in the US, affecting approximately 19.1% of adults annually", + "Women are more likely than men to experience anxiety disorders (23.4% vs 14.3%)", + "Sources: https://www.nimh.nih.gov/health/statistics/any-anxiety-disorder and https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5573566/" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Female", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "Male", + "condition": { + "condition_type": "Gender", + "gender": "M" + } + }, + { + "transition": "Terminal" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Female": { + "type": "Simple", + "remarks": [ + "Women have higher prevalence of anxiety disorders at 23.4%", + "Source: https://www.nimh.nih.gov/health/statistics/any-anxiety-disorder" + ], + "distributed_transition": [ + { + "transition": "Female_Anxiety_Onset", + "distribution": 0.234 + }, + { + "transition": "Terminal", + "distribution": 0.766 + } + ] + }, + "Male": { + "type": "Simple", + "remarks": [ + "Men have lower prevalence of anxiety disorders at 14.3%", + "Source: https://www.nimh.nih.gov/health/statistics/any-anxiety-disorder" + ], + "distributed_transition": [ + { + "transition": "Male_Anxiety_Onset", + "distribution": 0.143 + }, + { + "transition": "Terminal", + "distribution": 0.857 + } + ] + }, + "Female_Anxiety_Onset": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Childhood_Onset", + "distribution": 0.31 + }, + { + "transition": "Adolescent_Onset", + "distribution": 0.47 + }, + { + "transition": "Adult_Onset", + "distribution": 0.22 + } + ], + "remarks": [ + "Age of onset distribution based on epidemiological studies", + "Source: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3018839/" + ] + }, + "Male_Anxiety_Onset": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Childhood_Onset", + "distribution": 0.38 + }, + { + "transition": "Adolescent_Onset", + "distribution": 0.43 + }, + { + "transition": "Adult_Onset", + "distribution": 0.19 + } + ], + "remarks": [ + "Age of onset distribution based on epidemiological studies", + "Source: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3018839/" + ] + }, + "Childhood_Onset": { + "type": "Delay", + "range": { + "low": 5, + "high": 11, + "unit": "years" + }, + "direct_transition": "Anxiety_Disorder_Onset" + }, + "Adolescent_Onset": { + "type": "Delay", + "range": { + "low": 12, + "high": 19, + "unit": "years" + }, + "direct_transition": "Anxiety_Disorder_Onset" + }, + "Adult_Onset": { + "type": "Delay", + "range": { + "low": 20, + "high": 50, + "unit": "years" + }, + "direct_transition": "Anxiety_Disorder_Onset" + }, + "Anxiety_Disorder_Onset": { + "type": "ConditionOnset", + "target_encounter": "Anxiety_Diagnosis_Encounter", + "codes": [ + { + "system": "ICD-10-CM", + "code": "F41.9", + "display": "Anxiety disorder, unspecified" + }, + { + "system": "SNOMED-CT", + "code": "197480006", + "display": "Anxiety disorder" + } + ], + "direct_transition": "Symptom_Worry" + }, + "Symptom_Worry": { + "type": "Symptom", + "symptom": "Excessive worry", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Symptom_Restlessness" + }, + "Symptom_Restlessness": { + "type": "Symptom", + "symptom": "Restlessness", + "range": { + "low": 40, + "high": 90 + }, + "direct_transition": "Symptom_Fatigue" + }, + "Symptom_Fatigue": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 30, + "high": 80 + }, + "direct_transition": "Symptom_Concentration" + }, + "Symptom_Concentration": { + "type": "Symptom", + "symptom": "Difficulty concentrating", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "Symptom_Irritability" + }, + "Symptom_Irritability": { + "type": "Symptom", + "symptom": "Irritability", + "range": { + "low": 40, + "high": 90 + }, + "direct_transition": "Symptom_Tension" + }, + "Symptom_Tension": { + "type": "Symptom", + "symptom": "Muscle tension", + "range": { + "low": 30, + "high": 80 + }, + "direct_transition": "Symptom_Sleep" + }, + "Symptom_Sleep": { + "type": "Symptom", + "symptom": "Sleep disturbance", + "range": { + "low": 40, + "high": 90 + }, + "direct_transition": "Delay_Until_Diagnosis" + }, + "Delay_Until_Diagnosis": { + "type": "Delay", + "range": { + "low": 3, + "high": 24, + "unit": "months" + }, + "direct_transition": "Anxiety_Diagnosis_Encounter" + }, + "Anxiety_Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem" + } + ], + "direct_transition": "Anxiety_Diagnosis" + }, + "Anxiety_Diagnosis": { + "type": "ConditionOnset", + "assign_to_attribute": "anxiety_disorder", + "codes": [ + { + "system": "ICD-10-CM", + "code": "F5_ALLANXIOUS", + "display": "All anxiety disorders" + }, + { + "system": "SNOMED-CT", + "code": "197480006", + "display": "Anxiety disorder" + } + ], + "direct_transition": "Anxiety_CarePlan" + }, + "Anxiety_CarePlan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "304561007", + "display": "Anxiety management plan" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "183401009", + "display": "Stress management" + }, + { + "system": "SNOMED-CT", + "code": "304481008", + "display": "Psychotherapy" + } + ], + "direct_transition": "Treatment_Decision" + }, + "Treatment_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Medication_SSRI", + "distribution": 0.5 + }, + { + "transition": "Medication_SNRI", + "distribution": 0.2 + }, + { + "transition": "Medication_Benzodiazepine", + "distribution": 0.15 + }, + { + "transition": "Psychotherapy_Only", + "distribution": 0.15 + } + ] + }, + "Medication_SSRI": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "312940", + "display": "Sertraline 50 MG Oral Tablet" + } + ], + "direct_transition": "Anxiety_Followup" + }, + "Medication_SNRI": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "849727", + "display": "Venlafaxine 75 MG Oral Tablet" + } + ], + "direct_transition": "Anxiety_Followup" + }, + "Medication_Benzodiazepine": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "197319", + "display": "Lorazepam 0.5 MG Oral Tablet" + } + ], + "direct_transition": "Anxiety_Followup" + }, + "Psychotherapy_Only": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "304891004", + "display": "Cognitive behavioral therapy" + } + ], + "direct_transition": "Anxiety_Followup" + }, + "Anxiety_Followup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter" + } + ], + "direct_transition": "Anxiety_Progression" + }, + "Anxiety_Progression": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Anxiety_Remission", + "distribution": 0.4 + }, + { + "transition": "Anxiety_Chronic", + "distribution": 0.6 + } + ], + "remarks": [ + "About 40% of anxiety patients achieve remission within 1 year of treatment", + "Source: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5573566/" + ] + }, + "Anxiety_Remission": { + "type": "ConditionEnd", + "referenced_by_attribute": "anxiety_disorder", + "direct_transition": "End_Anxiety_CarePlan" + }, + "Anxiety_Chronic": { + "type": "Delay", + "range": { + "low": 2, + "high": 10, + "unit": "years" + }, + "direct_transition": "Anxiety_Recurrence_Chance" + }, + "Anxiety_Recurrence_Chance": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Anxiety_Remission", + "distribution": 0.3 + }, + { + "transition": "Anxiety_Chronic", + "distribution": 0.7 + } + ], + "remarks": [ + "Chronic anxiety often follows a relapsing-remitting course", + "Source: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5573566/" + ] + }, + "End_Anxiety_CarePlan": { + "type": "CarePlanEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "304561007", + "display": "Anxiety management plan" + } + ], + "direct_transition": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/allergic_rhinitis.json b/src/main/resources/modules/allergic_rhinitis.json new file mode 100644 index 0000000..b4d217a --- /dev/null +++ b/src/main/resources/modules/allergic_rhinitis.json @@ -0,0 +1,366 @@ +{ + "name": "Allergic Rhinitis", + "remarks": [ + "Better known as 'hay fever' or 'seasonal allergies'.", + "Statistics are from the American College of Allergy, Asthma, & Immunology (ACAAI):", + "http://acaai.org/news/facts-statistics/allergies", + "or the Allergy and Asthma Foundation of America (AAFA):", + "http://www.aafa.org/page/allergy-facts.aspx" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Delay_For_Atopy" + }, + "Delay_For_Atopy": { + "type": "Delay", + "remarks": [ + "The Atopy module must be processed before any of the allergy modules so ", + "atopy can appropriately influence allergies. Delaying the smallest possible ", + "time step to ensure this happens." + ], + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "transition": "Atopic" + }, + { + "transition": "Not_Atopic" + } + ] + }, + "Atopic": { + "type": "Simple", + "remarks": [ + "85% of all atopic patients develop allergic rhinitis. See the Atopy model for more info." + ], + "distributed_transition": [ + { + "distribution": 0.85, + "transition": "Delay_Until_Early_Mid_Childhood" + }, + { + "distribution": 0.15, + "transition": "Terminal" + } + ] + }, + "Not_Atopic": { + "type": "Simple", + "remarks": [ + "Estimated 50 million Americans affected by nasal allergies (ACAAI). 50M / 318.9M => 15.7%.", + "It makes more sense to wait until early-mid childhood (2-6 years old) for these ", + "symptoms to appear and to be diagnosed by a doctor." + ], + "distributed_transition": [ + { + "distribution": 0.029, + "transition": "Delay_Until_Early_Mid_Childhood" + }, + { + "distribution": 0.971, + "transition": "Terminal" + } + ] + }, + "Delay_Until_Early_Mid_Childhood": { + "type": "Delay", + "range": { + "low": 2, + "high": 6, + "unit": "years" + }, + "direct_transition": "Has_Allergic_Rhinitis" + }, + "Has_Allergic_Rhinitis": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.2, + "transition": "Has_Seasonal_Allergic_Rhinitis", + "remarks": [ + "Seasonal allergies occur only at a specific time of year. They can be more actue but ", + "are easily treated. 20% of Americans have just seasonal allergies.", + "source: http://www.neilmed.com/neilmedblog/2014/08/seasonal-and-perennial-allergic-rhinitis/" + ] + }, + { + "distribution": 0.4, + "transition": "Has_Perennial_Allergic_Rhinitis", + "remarks": [ + "Perennial allergies are not influenced by the seasons. They are typically tied to other ", + "allergens like pet dander, mold, and dust mites." + ] + }, + { + "distribution": 0.4, + "transition": "Has_Perennial_And_Seasonal_Allergic_Rhinitis", + "remarks": [ + "Perennial allergies flare up in the spring with additional allergies, like grass and ", + "tree pollens." + ] + } + ] + }, + "Has_Seasonal_Allergic_Rhinitis": { + "type": "ConditionOnset", + "assign_to_attribute": "allergic_rhinitis", + "target_encounter": "Allergic_Rhinitis_Diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "367498001", + "display": "Seasonal allergic rhinitis (disorder)" + } + ], + "direct_transition": "Allergic_Rhinitis_Symptom1" + }, + "Has_Perennial_Allergic_Rhinitis": { + "type": "ConditionOnset", + "assign_to_attribute": "allergic_rhinitis", + "target_encounter": "Allergic_Rhinitis_Diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "446096008", + "display": "Perennial allergic rhinitis (disorder)" + } + ], + "direct_transition": "Allergic_Rhinitis_Symptom1" + }, + "Has_Perennial_And_Seasonal_Allergic_Rhinitis": { + "type": "ConditionOnset", + "assign_to_attribute": "allergic_rhinitis", + "target_encounter": "Allergic_Rhinitis_Diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "232353008", + "display": "Perennial allergic rhinitis with seasonal variation (disorder)" + } + ], + "direct_transition": "Allergic_Rhinitis_Symptom1" + }, + "Allergic_Rhinitis_Diagnosis": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "allergic_rhinitis", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "direct_transition": "Prescribe_OTC_Antihistamine" + }, + "Allergic_Rhinitis_Symptom1": { + "type": "Symptom", + "symptom": "Nasal Congestion", + "range": { + "low": 0, + "high": 25 + }, + "direct_transition": "Allergic_Rhinitis_Symptom2" + }, + "Allergic_Rhinitis_Symptom2": { + "type": "Symptom", + "symptom": "Nasal Discharge", + "range": { + "low": 0, + "high": 25 + }, + "direct_transition": "Allergic_Rhinitis_Symptom3" + }, + "Allergic_Rhinitis_Symptom3": { + "type": "Symptom", + "symptom": "Itching", + "range": { + "low": 0, + "high": 25 + }, + "direct_transition": "Allergic_Rhinitis_Symptom4" + }, + "Allergic_Rhinitis_Symptom4": { + "type": "Symptom", + "symptom": "Sneezing Fits", + "range": { + "low": 0, + "high": 25 + }, + "direct_transition": "Allergic_Rhinitis_Symptom5" + }, + "Allergic_Rhinitis_Symptom5": { + "type": "Symptom", + "symptom": "Ear Pressure", + "range": { + "low": 0, + "high": 25 + }, + "direct_transition": "Symptom_Period" + }, + "Symptom_Period": { + "type": "Delay", + "range": { + "low": 2, + "high": 3, + "unit": "weeks" + }, + "direct_transition": "Allergic_Rhinitis_Diagnosis" + }, + "Prescribe_OTC_Antihistamine": { + "type": "CallSubmodule", + "remarks": [ + "This submodule will only prescribe an antihistamine if one is ", + "not already prescribed." + ], + "submodule": "medications/otc_antihistamine", + "direct_transition": "Advise_To_Visit_Allergist" + }, + "Advise_To_Visit_Allergist": { + "type": "SetAttribute", + "attribute": "visit_allergist", + "value": true, + "direct_transition": "End_Allergic_Rhinitis_Diagnosis" + }, + "End_Allergic_Rhinitis_Diagnosis": { + "type": "EncounterEnd", + "direct_transition": "Living_With_Allergic_Rhinitis" + }, + "Living_With_Allergic_Rhinitis": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">", + "quantity": 18, + "unit": "years" + }, + "direct_transition": "Outgrow_Allergic_Rhinitis?" + }, + "Outgrow_Allergic_Rhinitis?": { + "type": "Guard", + "remarks": [ + "It's very uncommon for a person to 'outgrow' allergic rhinitis, ", + "but symptoms can lessen or disappear as a child ages or if they ", + "are given immunotherapy (85%)." + ], + "allow": { + "condition_type": "Not", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "419263009", + "display": "Allergy to tree pollen (finding)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418689008", + "display": "Allergy to grass pollen (finding)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "717234006", + "display": "Allergy to animal protein (finding)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "232350006", + "display": "Allergy to dust mite protein (finding)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "419474003", + "display": "Allergy to mold (finding)" + } + ] + } + ] + } + }, + "direct_transition": "Allergic_Rhinitis_Subsides" + }, + "Allergic_Rhinitis_Subsides": { + "type": "ConditionEnd", + "referenced_by_attribute": "allergic_rhinitis", + "direct_transition": "Allergic_Rhinitis_Symptom1_Ends" + }, + "Allergic_Rhinitis_Symptom1_Ends": { + "type": "Symptom", + "symptom": "Nasal Congestion", + "exact": { + "quantity": 0 + }, + "direct_transition": "Allergic_Rhinitis_Symptom2_Ends" + }, + "Allergic_Rhinitis_Symptom2_Ends": { + "type": "Symptom", + "symptom": "Nasal Discharge", + "exact": { + "quantity": 0 + }, + "direct_transition": "Allergic_Rhinitis_Symptom3_Ends" + }, + "Allergic_Rhinitis_Symptom3_Ends": { + "type": "Symptom", + "symptom": "Itching", + "exact": { + "quantity": 0 + }, + "direct_transition": "Allergic_Rhinitis_Symptom4_Ends" + }, + "Allergic_Rhinitis_Symptom4_Ends": { + "type": "Symptom", + "symptom": "Sneezing Fits", + "exact": { + "quantity": 0 + }, + "direct_transition": "Allergic_Rhinitis_Symptom5_Ends" + }, + "Allergic_Rhinitis_Symptom5_Ends": { + "type": "Symptom", + "symptom": "Ear Pressure", + "exact": { + "quantity": 0 + }, + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/allergies.json b/src/main/resources/modules/allergies.json new file mode 100644 index 0000000..05a838c --- /dev/null +++ b/src/main/resources/modules/allergies.json @@ -0,0 +1,274 @@ +{ + "name": "Allergies and Treatment", + "remarks": [ + "This module onsets allergies and manages the treatment of allergies and ", + "allergic diseases. After the initial series of AllergyOnset states, the ", + "module waits for an allergic condition (as a result of a person's allergies)", + "to prompt treatment.", + "Primary reference for allergy statistics: ", + "https://web.archive.org/web/20100407195412/http://www.niaid.nih.gov/topics/foodAllergy/understanding/Pages/quickFacts.aspx" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Delay_For_Atopy" + }, + "Delay_For_Atopy": { + "type": "Delay", + "remarks": [ + "The Atopy module must be processed before any of the allergy modules so ", + "atopy can appropriately influence allergies. Delaying the smallest possible ", + "time step to ensure this happens." + ], + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "direct_transition": "Food_Allergy_Incidence_Submodule" + }, + "Food_Allergy_Incidence_Submodule": { + "type": "CallSubmodule", + "remarks": [ + "This submodule onsets the various food allergies that ", + "a person can get, with different incidences for atopic and non-atopic ", + "patients." + ], + "submodule": "allergies/food_allergy_incidence", + "direct_transition": "Drug_Allergy_Incidence_Submodule" + }, + "Drug_Allergy_Incidence_Submodule": { + "type": "CallSubmodule", + "remarks": [ + "This submodule onsets the various drug allergies that a person can get." + ], + "submodule": "allergies/drug_allergy_incidence", + "direct_transition": "Environmental_Allergy_Incidence_Submodule" + }, + "Environmental_Allergy_Incidence_Submodule": { + "type": "CallSubmodule", + "remarks": [ + "This submodule onsets the various environmental allergies that ", + "a person can get, with different incidences for atopic and non-atopic ", + "patients." + ], + "submodule": "allergies/environmental_allergy_incidence", + "direct_transition": "Allergist_Guard" + }, + "Allergist_Guard": { + "type": "Guard", + "remarks": [ + "======================================================================", + " ALLERGY TREATMENT/CARE ", + "======================================================================", + "Now that the patient is suspected to have an allergy, we refer them to ", + "an allergist for specialized treatment.", + "The following can prompt a visit to the allergist: ", + "- Asthma attack ", + "- Moderate to severe eczema ", + "- Any allergic reaction to food ", + "- Moderate to severe allergic rhinitis symptoms ", + "The asthma, eczema, and allergic rhinitis submodules set the 'visit_allergist' ", + "attribute to trigger the visit. At the first visit to an allergist an ", + "allergy panel is always performed." + ], + "allow": { + "condition_type": "Attribute", + "attribute": "visit_allergist", + "operator": "is not nil" + }, + "direct_transition": "Allergy_Unspecified" + }, + "Delay_For_Allergist_Initial_Visit": { + "type": "Delay", + "remarks": [ + "Other modules are not expected to make this delay after making a ", + "'visit_allergist' recommendation." + ], + "range": { + "low": 1, + "high": 7, + "unit": "days" + }, + "direct_transition": "Allergist_Initial_Visit" + }, + "Allergist_Initial_Visit": { + "type": "Encounter", + "remarks": [ + "This is the big one! Whatever allergies a patient has will be formally ", + "diagnosed at this encounter." + ], + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 1974 + }, + "transition": "Administer_Allergy_Test" + }, + { + "transition": "General_Allergy_CarePlan" + } + ], + "reason": "Allergy_Unspecified" + }, + "Administer_Allergy_Test": { + "type": "Procedure", + "duration": { + "low": 20, + "high": 40, + "unit": "minutes" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "395142003", + "display": "Allergy screening test (procedure)" + } + ], + "direct_transition": "Allergy_Panel" + }, + "Allergy_Panel": { + "type": "CallSubmodule", + "submodule": "allergies/allergy_panel", + "direct_transition": "Prescribe_OTC_Antihistamine" + }, + "Prescribe_OTC_Antihistamine": { + "type": "CallSubmodule", + "remarks": [ + "This submodule will only prescribe an antihistamine if one is ", + "not already prescribed." + ], + "submodule": "medications/otc_antihistamine", + "direct_transition": "General_Allergy_CarePlan" + }, + "General_Allergy_CarePlan": { + "type": "CarePlanStart", + "remarks": [ + "Allergy maintenance is all about self care." + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "384758001", + "display": "Self-care interventions (procedure)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "58332002", + "display": "Allergy education (procedure)" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 1987 + }, + "transition": "Prescribe_Epipen" + }, + { + "transition": "End_Allergist_Initial_Visit" + } + ] + }, + "Prescribe_Epipen": { + "type": "MedicationOrder", + "remarks": [ + "FDA approved in 1987. It's highly likely that this prescription ", + "will never end - it will just be periodically renewed during the ", + "patient's lifetime." + ], + "codes": [ + { + "system": "RxNorm", + "code": "1870230", + "display": "NDA020800 0.3 ML Epinephrine 1 MG/ML Auto-Injector" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "End_Allergist_Initial_Visit" + }, + "End_Allergist_Initial_Visit": { + "type": "EncounterEnd", + "direct_transition": "Living_With_Allergies" + }, + "Living_With_Allergies": { + "type": "Guard", + "remarks": [ + "======================================================================", + " LIVING WITH ALLERGIES ", + "======================================================================", + "Whatever allergies the patients have, they will continue to passively ", + "live with them until an allergic condition or a severe reaction ", + "prompts a visit to their PCP and a referral to an allergist. Allergies ", + "aren't officially diagnosed until after an allergy test is performed.", + "For patient's 12 or older we can consider immunotherapy. This will ", + "not work for everyone but it's worth discussing. Immunotherapy is not ", + "an option before 1990." + ], + "allow": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">", + "quantity": 12, + "unit": "years" + }, + { + "condition_type": "Date", + "operator": ">=", + "year": 1990 + }, + { + "condition_type": "Attribute", + "attribute": "immunotherapy_status", + "operator": "is nil" + } + ] + }, + "direct_transition": "Immunotherapy_Submodule" + }, + "Immunotherapy_Submodule": { + "type": "CallSubmodule", + "remarks": [ + "This submodule may or may not give the patient immunotherapy. If ", + "immunotherapy is given a series of 60 treatments will be provided ", + "over the course of 3-5 years." + ], + "submodule": "allergies/immunotherapy", + "direct_transition": "Living_With_Allergies" + }, + "Allergy_Unspecified": { + "allergy_type": "allergy", + "category": "environment", + "type": "AllergyOnset", + "target_encounter": "Allergist_Initial_Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": 419199007, + "display": "Allergy to substance (finding)" + } + ], + "reactions": [], + "direct_transition": "Delay_For_Allergist_Initial_Visit", + "assign_to_attribute": "allergy_unspecified" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/allergies/allergy_panel.json b/src/main/resources/modules/allergies/allergy_panel.json new file mode 100644 index 0000000..e8ffa46 --- /dev/null +++ b/src/main/resources/modules/allergies/allergy_panel.json @@ -0,0 +1,928 @@ +{ + "name": "Allergy Panel", + "remarks": [ + "This submodule explicity references states in the 'Allergies and Treatment' module. ", + "In the future an Active Condition test should be favored instead of PriorState once ", + "there's a distinction between an 'Active' and 'Diagnosed' condition.", + "Most of these tests measure the amount of IgE Ab antibody in serum. ", + "http://www.mayomedicallaboratories.com/interpretive-guide/?alpha=S&unit_code=82716", + "IgE Ab < 0.35 kU/L == Negative Result ", + "IgE Ab > 0.70 kU/L == Positive ", + "IgE Ab > 17.5 kU/L == Strongly Positive ", + "The following allergens are tested here, and expected to be onset in allergies.json: ", + "Peanut, Treenut, Fish, Shellfish, Wheat, Egg, Dairy, Tree Pollen, Grass Pollen, ", + "Pet Dander, Dust Mite, Mold, Bee, Latex" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Peanut_Test" + }, + "Peanut_Test": { + "type": "Simple", + "remarks": [ + "======================================================================", + " PEANUT ALLERGY TEST ", + "======================================================================" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91935009", + "display": "Allergy to peanut (finding)" + } + ] + }, + "transition": "Peanut_Test_Positive" + }, + { + "transition": "Peanut_Test_Negative" + } + ] + }, + "Peanut_Test_Positive": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6206-7", + "display": "Peanut IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0.7, + "high": 100 + }, + "direct_transition": "Nut_Test" + }, + "Peanut_Test_Negative": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6206-7", + "display": "Peanut IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0, + "high": 0.35 + }, + "direct_transition": "Nut_Test" + }, + "Nut_Test": { + "type": "Simple", + "remarks": [ + "======================================================================", + " NUT ALLERGY TEST ", + "======================================================================" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91934008", + "display": "Allergy to nut (finding)" + } + ] + }, + "transition": "Nut_Test_Positive" + }, + { + "transition": "Nut_Test_Negative" + } + ] + }, + "Nut_Test_Positive": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6273-7", + "display": "Walnut IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0.7, + "high": 100 + }, + "direct_transition": "Fish_Test" + }, + "Nut_Test_Negative": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6273-7", + "display": "Walnut IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0, + "high": 0.35 + }, + "direct_transition": "Fish_Test" + }, + "Fish_Test": { + "type": "Simple", + "remarks": [ + "======================================================================", + " FISH ALLERGY TEST ", + "======================================================================" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "417532002", + "display": "Allergy to fish (finding)" + } + ] + }, + "transition": "Fish_Test_Positive" + }, + { + "transition": "Fish_Test_Negative" + } + ] + }, + "Fish_Test_Positive": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6082-2", + "display": "Codfish IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0.7, + "high": 100 + }, + "direct_transition": "Shellfish_Test" + }, + "Fish_Test_Negative": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6082-2", + "display": "Codfish IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0, + "high": 0.35 + }, + "direct_transition": "Shellfish_Test" + }, + "Shellfish_Test": { + "type": "Simple", + "remarks": [ + "======================================================================", + " SHELLFISH ALLERGY TEST ", + "======================================================================", + "There were LOINC codes available for shrimp, scallops, and clam. ", + "I chose to include only the shrimp test at this time." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "300913006", + "display": "Allergy to shellfish (finding)" + } + ] + }, + "transition": "Shellfish_Test_Positive" + }, + { + "transition": "Shellfish_Test_Negative" + } + ] + }, + "Shellfish_Test_Positive": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6246-3", + "display": "Shrimp IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0.7, + "high": 100 + }, + "direct_transition": "Wheat_Test" + }, + "Shellfish_Test_Negative": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6246-3", + "display": "Shrimp IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0, + "high": 0.35 + }, + "direct_transition": "Wheat_Test" + }, + "Wheat_Test": { + "type": "Simple", + "remarks": [ + "======================================================================", + " WHEAT ALLERGY TEST ", + "======================================================================" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "420174000", + "display": "Allergy to wheat (finding)" + } + ] + }, + "transition": "Wheat_Test_Positive" + }, + { + "transition": "Wheat_Test_Negative" + } + ] + }, + "Wheat_Test_Positive": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6276-0", + "display": "Wheat IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0.7, + "high": 100 + }, + "direct_transition": "Egg_Test" + }, + "Wheat_Test_Negative": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6276-0", + "display": "Wheat IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0, + "high": 0.35 + }, + "direct_transition": "Egg_Test" + }, + "Egg_Test": { + "type": "Simple", + "remarks": [ + "======================================================================", + " EGG ALLERGY TEST ", + "======================================================================" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "213020009", + "display": "Allergy to egg protein (finding)" + } + ] + }, + "transition": "Egg_Test_Positive" + }, + { + "transition": "Egg_Test_Negative" + } + ] + }, + "Egg_Test_Positive": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6106-9", + "display": "Egg white IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0.7, + "high": 100 + }, + "direct_transition": "Soy_Test" + }, + "Egg_Test_Negative": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6106-9", + "display": "Egg white IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0, + "high": 0.35 + }, + "direct_transition": "Soy_Test" + }, + "Soy_Test": { + "type": "Simple", + "remarks": [ + "======================================================================", + " SOY ALLERGY TEST ", + "======================================================================" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "782594005", + "display": "Allergy to soy protein (finding)" + } + ] + }, + "transition": "Soy_Test_Positive" + }, + { + "transition": "Soy_Test_Negative" + } + ] + }, + "Soy_Test_Positive": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6248-9", + "display": "Soybean IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0.7, + "high": 100 + }, + "direct_transition": "Milk_Test" + }, + "Soy_Test_Negative": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6248-9", + "display": "Soybean IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0, + "high": 0.35 + }, + "direct_transition": "Milk_Test" + }, + "Milk_Test": { + "type": "Simple", + "remarks": [ + "======================================================================", + " DAIRY ALLERGY TEST ", + "======================================================================" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "414285001", + "display": "Allergy to food (finding)" + } + ] + }, + "transition": "Milk_Test_Positive" + }, + { + "transition": "Milk_Test_Negative" + } + ] + }, + "Milk_Test_Positive": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "7258-7", + "display": "Cow milk IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0.7, + "high": 100 + }, + "direct_transition": "Tree_Test" + }, + "Milk_Test_Negative": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "7258-7", + "display": "Cow milk IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0, + "high": 0.35 + }, + "direct_transition": "Tree_Test" + }, + "Tree_Test": { + "type": "Simple", + "remarks": [ + "======================================================================", + " TREE ALLERGY TEST ", + "======================================================================" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "419263009", + "display": "Allergy to tree pollen (finding)" + } + ] + }, + "transition": "Tree_Test_Positive" + }, + { + "transition": "Tree_Test_Negative" + } + ] + }, + "Tree_Test_Positive": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6189-5", + "display": "White oak IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0.7, + "high": 100 + }, + "direct_transition": "Grass_Test" + }, + "Tree_Test_Negative": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6189-5", + "display": "White oak IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0, + "high": 0.35 + }, + "direct_transition": "Grass_Test" + }, + "Grass_Test": { + "type": "Simple", + "remarks": [ + "======================================================================", + " GRASS ALLERGY TEST ", + "======================================================================" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418689008", + "display": "Allergy to grass pollen (finding)" + } + ] + }, + "transition": "Grass_Test_Positive" + }, + { + "transition": "Grass_Test_Negative" + } + ] + }, + "Grass_Test_Positive": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6085-5", + "display": "Common Ragweed IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0.7, + "high": 100 + }, + "direct_transition": "Dander_Test" + }, + "Grass_Test_Negative": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6085-5", + "display": "Common Ragweed IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0, + "high": 0.35 + }, + "direct_transition": "Dander_Test" + }, + "Dander_Test": { + "type": "Simple", + "remarks": [ + "======================================================================", + " PET DANDER ALLERGY TEST ", + "======================================================================" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "717234006", + "display": "Allergy to animal protein (finding)" + } + ] + }, + "transition": "Dander_Test_Positive" + }, + { + "transition": "Dander_Test_Negative" + } + ] + }, + "Dander_Test_Positive": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6833-8", + "display": "Cat dander IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0.7, + "high": 100 + }, + "direct_transition": "Mite_Test" + }, + "Dander_Test_Negative": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6833-8", + "display": "Cat dander IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0, + "high": 0.35 + }, + "direct_transition": "Mite_Test" + }, + "Mite_Test": { + "type": "Simple", + "remarks": [ + "======================================================================", + " MITE ALLERGY TEST ", + "======================================================================" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "232350006", + "display": "Allergy to dust mite protein (finding)" + } + ] + }, + "transition": "Mite_Test_Positive" + }, + { + "transition": "Mite_Test_Negative" + } + ] + }, + "Mite_Test_Positive": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6095-4", + "display": "American house dust mite IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0.7, + "high": 100 + }, + "direct_transition": "Mold_Test" + }, + "Mite_Test_Negative": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6095-4", + "display": "American house dust mite IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0, + "high": 0.35 + }, + "direct_transition": "Mold_Test" + }, + "Mold_Test": { + "type": "Simple", + "remarks": [ + "======================================================================", + " MOLD ALLERGY TEST ", + "======================================================================" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "419474003", + "display": "Allergy to mold (finding)" + } + ] + }, + "transition": "Mold_Test_Positive" + }, + { + "transition": "Mold_Test_Negative" + } + ] + }, + "Mold_Test_Positive": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6075-6", + "display": "Cladosporium herbarum IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0.7, + "high": 100 + }, + "direct_transition": "Bee_Test" + }, + "Mold_Test_Negative": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6075-6", + "display": "Cladosporium herbarum IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0, + "high": 0.35 + }, + "direct_transition": "Bee_Test" + }, + "Bee_Test": { + "type": "Simple", + "remarks": [ + "======================================================================", + " BEE ALLERGY TEST ", + "======================================================================" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424213003", + "display": "Allergy to bee venom (finding)" + } + ] + }, + "transition": "Bee_Test_Positive" + }, + { + "transition": "Bee_Test_Negative" + } + ] + }, + "Bee_Test_Positive": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6844-5", + "display": "Honey bee IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0.7, + "high": 100 + }, + "direct_transition": "Latex_Test" + }, + "Bee_Test_Negative": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6844-5", + "display": "Honey bee IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0, + "high": 0.35 + }, + "direct_transition": "Latex_Test" + }, + "Latex_Test": { + "type": "Simple", + "remarks": [ + "======================================================================", + " LATEX ALLERGY TEST ", + "======================================================================" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1003755004", + "display": "Allergy to Hevea brasiliensis latex protein (finding)" + } + ] + }, + "transition": "Latex_Test_Positive" + }, + { + "transition": "Latex_Test_Negative" + } + ] + }, + "Latex_Test_Positive": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6158-0", + "display": "Latex IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0.7, + "high": 100 + }, + "direct_transition": "Allergy_Test_Terminal" + }, + "Latex_Test_Negative": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6158-0", + "display": "Latex IgE Ab [Units/volume] in Serum" + } + ], + "unit": "kU/L", + "range": { + "low": 0, + "high": 0.35 + }, + "direct_transition": "Allergy_Test_Terminal" + }, + "Allergy_Test_Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/allergies/drug_allergy_incidence.json b/src/main/resources/modules/allergies/drug_allergy_incidence.json new file mode 100644 index 0000000..a6d1f61 --- /dev/null +++ b/src/main/resources/modules/allergies/drug_allergy_incidence.json @@ -0,0 +1,812 @@ +{ + "name": "Drug_Allergies", + "remarks": [ + "This submodule onsets various drug allergies and is intended to be called by the main allergies module." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Penicillin_Allergy" + }, + "Terminal": { + "type": "Terminal" + }, + "Penicillin_Allergy": { + "type": "Simple", + "remarks": [ + "Actual penicillin allergies happen in about 1% of individuals.", + "About 10% of people have a penicillin allergy listed in the medical record.", + "This will set an attribute indicating a real allergy on 1% of people, but ensure that 10% have allergies in their record.", + "https://www.cdc.gov/antibiotic-use/community/pdfs/penicillin-factsheet.pdf" + ], + "distributed_transition": [ + { + "transition": "True_Penicillin_Allergy", + "distribution": 0.01 + }, + { + "transition": "Penicillin_Allergy_Onset", + "distribution": 0.09 + }, + { + "transition": "Aspirin_Allergy_Intolerance", + "distribution": 0.9 + } + ] + }, + "True_Penicillin_Allergy": { + "type": "SetAttribute", + "attribute": "Penicillin_Allergy", + "direct_transition": "Penicillin_Allergy_Onset", + "value": true + }, + "Penicillin_Allergy_Onset": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "medication", + "target_encounter": "Allergist_Initial_Visit", + "codes": [ + { + "system": "RxNorm", + "code": 7984, + "display": "Penicillin V" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "49727002", + "display": "Cough (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.05 + }, + { + "level": "none", + "value": 0.95 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "402387002", + "display": "Allergic angioedema (disorder)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.11 + }, + { + "level": "none", + "value": 0.89 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "404640003", + "display": "Dizziness (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.01 + }, + { + "level": "none", + "value": 0.99 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "267036007", + "display": "Dyspnea (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.06 + }, + { + "level": "none", + "value": 0.94 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "247472004", + "display": "Wheal (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.52 + }, + { + "level": "none", + "value": 0.48 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "39579001", + "display": "Anaphylaxis (disorder)" + }, + "possible_severities": [ + { + "level": "severe", + "value": 0.03 + }, + { + "level": "none", + "value": 0.97 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "271807003", + "display": "Eruption of skin (disorder)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.34 + }, + { + "level": "none", + "value": 0.6599999999999999 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "878820003", + "display": "Rhinoconjunctivitis (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.04 + }, + { + "level": "none", + "value": 0.96 + } + ] + } + ], + "direct_transition": "Aspirin_Allergy_Intolerance" + }, + "Aspirin_Allergy_Intolerance": { + "type": "Simple", + "remarks": [ + "About 1% of individuals have an allergy to aspirin", + "About 20% of individuals have an intolerance", + "" + ], + "distributed_transition": [ + { + "transition": "Aspirin_Allergy_Onset", + "distribution": 0.2 + }, + { + "transition": "NSAID_Allergy", + "distribution": 0.8 + } + ] + }, + "Aspirin_Allergy_Onset": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "medication", + "target_encounter": "Allergist_Initial_Visit", + "codes": [ + { + "system": "RxNorm", + "code": 1191, + "display": "Aspirin" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "247472004", + "display": "Wheal (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.19 + }, + { + "level": "none", + "value": 0.81 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "402387002", + "display": "Allergic angioedema (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.05 + }, + { + "level": "none", + "value": 0.95 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "39579001", + "display": "Anaphylaxis (disorder)" + }, + "possible_severities": [ + { + "level": "severe", + "value": 0.028 + }, + { + "level": "none", + "value": 0.972 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "21522001", + "display": "Abdominal pain (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.32 + }, + { + "level": "none", + "value": 0.68 + } + ] + } + ], + "direct_transition": "NSAID_Allergy" + }, + "NSAID_Allergy": { + "type": "Simple", + "remarks": [ + "1.6% of people have a Non-steroidal anti-inflammatory drugs (NSAIDs), ibuprofen allergy.", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6004000/" + ], + "distributed_transition": [ + { + "transition": "Onset_Ibuprofen_Allergy", + "distribution": 0.016 + }, + { + "transition": "Sulfa_Drug_Allergy", + "distribution": 0.984 + } + ] + }, + "Sulfa_Drug_Allergy": { + "type": "Simple", + "remarks": [ + "Allergy to sulfa drugs occurs in 3% - 8% of the population. We will give it to 5% of individuals.", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6789825/", + "" + ], + "distributed_transition": [ + { + "transition": "Onset_Sulfa_Drug_Allergy", + "distribution": 0.05 + }, + { + "transition": "Cephalosporin_Allergy", + "distribution": 0.95 + } + ] + }, + "Onset_Ibuprofen_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "medication", + "target_encounter": "Allergist_Initial_Visit", + "codes": [ + { + "system": "RxNorm", + "code": "5640", + "display": "Ibuprofen" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "418290006", + "display": "Itching (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.4 + }, + { + "level": "none", + "value": 0.6 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "247472004", + "display": "Wheal (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.29 + }, + { + "level": "none", + "value": 0.71 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "271811009", + "display": "Face goes red (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.15 + }, + { + "level": "none", + "value": 0.85 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "878820003", + "display": "Rhinoconjunctivitis (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.3 + }, + { + "level": "none", + "value": 0.7 + } + ] + } + ], + "direct_transition": "Sulfa_Drug_Allergy" + }, + "Onset_Sulfa_Drug_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "medication", + "target_encounter": "Allergist_Initial_Visit", + "codes": [ + { + "system": "RxNorm", + "code": "10831", + "display": "Sulfamethoxazole / Trimethoprim" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "402387002", + "display": "Allergic angioedema (disorder)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.126 + }, + { + "level": "none", + "value": 0.874 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "247472004", + "display": "Wheal (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.46 + }, + { + "level": "none", + "value": 0.54 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "39579001", + "display": "Anaphylaxis (disorder)" + }, + "possible_severities": [ + { + "level": "severe", + "value": 0.01 + }, + { + "level": "none", + "value": 0.99 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "271807003", + "display": "Eruption of skin (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.63 + }, + { + "level": "none", + "value": 0.37 + } + ] + } + ], + "direct_transition": "Cephalosporin_Allergy" + }, + "Cephalosporin_Allergy": { + "type": "Simple", + "remarks": [ + "1% to 3% of individuals are allergic to cphalosporins. This module sets it fo 2% of people." + ], + "distributed_transition": [ + { + "transition": "Onset_Cephalosporin_Allergy", + "distribution": 0.02 + }, + { + "transition": "ACE_Inhibitor_Intolerance", + "distribution": 0.98 + } + ] + }, + "Onset_Cephalosporin_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "medication", + "target_encounter": "Allergist_Initial_Visit", + "codes": [ + { + "system": "RxNorm", + "code": "25037", + "display": "cefdinir" + }, + { + "system": "RxNorm", + "code": "25033", + "display": "Cefixime" + }, + { + "system": "RxNorm", + "code": "20489", + "display": "cefpodoxime" + }, + { + "system": "RxNorm", + "code": "2191", + "display": "Ceftazidime" + }, + { + "system": "RxNorm", + "code": "2193", + "display": "Ceftriaxone" + }, + { + "system": "RxNorm", + "code": "2180", + "display": "Cefazolin" + }, + { + "system": "RxNorm", + "code": "2231", + "display": "Cephalexin" + }, + { + "system": "RxNorm", + "code": "2176", + "display": "Cefaclor" + }, + { + "system": "RxNorm", + "code": "20481", + "display": "cefepime" + }, + { + "system": "RxNorm", + "code": "2189", + "display": "Cefoxitin" + }, + { + "system": "RxNorm", + "code": "2194", + "display": "Cefuroxime" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "402387002", + "display": "Allergic angioedema (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.08 + }, + { + "level": "none", + "value": 0.92 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "247472004", + "display": "Wheal (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.08 + }, + { + "level": "none", + "value": 0.92 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "39579001", + "display": "Anaphylaxis (disorder)" + }, + "possible_severities": [ + { + "level": "severe", + "value": 0.2 + }, + { + "level": "none", + "value": 0.8 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "271807003", + "display": "Eruption of skin (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.2 + }, + { + "level": "none", + "value": 0.8 + } + ] + } + ], + "direct_transition": "ACE_Inhibitor_Intolerance" + }, + "ACE_Inhibitor_Intolerance": { + "type": "Simple", + "remarks": [ + "11.48% of individuals have an intolerance to ACE inhibitors.", + "https://www.sciencedirect.com/science/article/pii/S0735109718304315?viewFullText=true" + ], + "distributed_transition": [ + { + "transition": "Onset_ACE_Inhibitor_Intolerance", + "distribution": 0.1148 + }, + { + "transition": "Terminal", + "distribution": 0.8852 + } + ] + }, + "Onset_ACE_Inhibitor_Intolerance": { + "type": "AllergyOnset", + "allergy_type": "intolerance", + "category": "medication", + "target_encounter": "Allergist_Initial_Visit", + "codes": [ + { + "system": "RxNorm", + "code": "29046", + "display": "Lisinopril" + }, + { + "system": "RxNorm", + "code": "1998", + "display": "Captopril" + }, + { + "system": "RxNorm", + "code": "3827", + "display": "Enalapril" + }, + { + "system": "RxNorm", + "code": "18867", + "display": "benazepril" + }, + { + "system": "RxNorm", + "code": "35208", + "display": "quinapril" + }, + { + "system": "RxNorm", + "code": "35296", + "display": "Ramipril" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "49727002", + "display": "Cough (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.2 + }, + { + "level": "none", + "value": 0.8 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "402387002", + "display": "Allergic angioedema (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.007 + }, + { + "level": "none", + "value": 0.993 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "404640003", + "display": "Dizziness (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.002 + }, + { + "level": "none", + "value": 0.998 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "236428007", + "display": "Acute kidney injury due to nephrotoxicity (disorder)" + }, + "possible_severities": [ + { + "level": "severe", + "value": 0.008 + }, + { + "level": "none", + "value": 0.992 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "267036007", + "display": "Dyspnea (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.06 + }, + { + "level": "none", + "value": 0.94 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "237849008", + "display": "Drug-induced hyperkalemia (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.04 + }, + { + "level": "none", + "value": 0.96 + } + ] + } + ], + "direct_transition": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/allergies/environmental_allergy_incidence.json b/src/main/resources/modules/allergies/environmental_allergy_incidence.json new file mode 100644 index 0000000..2d179c6 --- /dev/null +++ b/src/main/resources/modules/allergies/environmental_allergy_incidence.json @@ -0,0 +1,717 @@ +{ + "name": "Environmental Allergy Incidence", + "remarks": [ + "This submodule onsets various allergies and is intended to be called ", + "by the main allergies module." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Chance_of_Tree_Pollen_Allergy" + }, + "Chance_of_Tree_Pollen_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " TREE POLLEN ALLERGY ", + "======================================================================", + "At present, up to 20% of children are diagnosed with a tree pollen allergy. ", + "Source: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4098757/", + "In this model most of those children are also atopic, aligning with the ", + "prevalence of allergic rhinitis." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 0.85, + "transition": "Tree_Pollen_Allergy" + }, + { + "distribution": 0.15, + "transition": "Chance_of_Grass_Pollen_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.03, + "transition": "Tree_Pollen_Allergy" + }, + { + "distribution": 0.97, + "transition": "Chance_of_Grass_Pollen_Allergy" + } + ] + } + ] + }, + "Tree_Pollen_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "environment", + "target_encounter": "Allergist_Initial_Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "782576004", + "display": "Tree pollen (substance)" + } + ], + "direct_transition": "Chance_of_Grass_Pollen_Allergy" + }, + "Chance_of_Grass_Pollen_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " GRASS POLLEN ALLERGY ", + "======================================================================", + "At present, up to 20% of children are diagnosed with a grass pollen allergy. ", + "Source: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4098757/", + "In this model most of those children are also atopic, aligning with the ", + "prevalence of allergic rhinitis." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 0.85, + "transition": "Grass_Pollen_Allergy" + }, + { + "distribution": 0.15, + "transition": "Chance_of_Pet_Dander_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.03, + "transition": "Grass_Pollen_Allergy" + }, + { + "distribution": 0.97, + "transition": "Chance_of_Pet_Dander_Allergy" + } + ] + } + ] + }, + "Grass_Pollen_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "environment", + "target_encounter": "Allergist_Initial_Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "256277009", + "display": "Grass pollen (substance)" + } + ], + "direct_transition": "Chance_of_Pet_Dander_Allergy" + }, + "Chance_of_Pet_Dander_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " PET DANDER ALLERGY ", + "======================================================================", + "At present, up to 30% of people are diagnosed with a pet dander allergy. ", + "Source: http://allergicliving.com/2010/07/02/pet-allergies-a-gander-at-dander/", + "In this model most of these people are also atopic, aligning with the ", + "prevalence of allergic rhinitis and asthma." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 1, + "transition": "Pet_Dander_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.1, + "transition": "Pet_Dander_Allergy" + }, + { + "distribution": 0.9, + "transition": "Chance_of_Dust_Mite_Allergy" + } + ] + } + ] + }, + "Pet_Dander_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "environment", + "target_encounter": "Allergist_Initial_Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "264287008", + "display": "Animal dander (substance)" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "49727002", + "display": "Cough (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.23 + }, + { + "level": "none", + "value": 0.77 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "267036007", + "display": "Dyspnea (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.2 + }, + { + "level": "none", + "value": 0.8 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "247472004", + "display": "Wheal (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.36 + }, + { + "level": "none", + "value": 0.64 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "271807003", + "display": "Eruption of skin (disorder)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.53 + }, + { + "level": "none", + "value": 0.47 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "878820003", + "display": "Rhinoconjunctivitis (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.8 + }, + { + "level": "none", + "value": 0.19999999999999996 + } + ] + } + ], + "direct_transition": "Chance_of_Dust_Mite_Allergy" + }, + "Chance_of_Dust_Mite_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " DUST MITE ALLERGY ", + "======================================================================", + "About 85% of all atopic patients have mite allergies. ", + "Source: https://www.ncbi.nlm.nih.gov/pubmed/12190652" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 0.85, + "transition": "Dust_Mite_Allergy" + }, + { + "distribution": 0.15, + "transition": "Chance_of_Mold_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.02, + "transition": "Dust_Mite_Allergy" + }, + { + "distribution": 0.98, + "transition": "Chance_of_Mold_Allergy" + } + ] + } + ] + }, + "Dust_Mite_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "environment", + "target_encounter": "Allergist_Initial_Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "260147004", + "display": "House dust mite (organism)" + } + ], + "direct_transition": "Chance_of_Mold_Allergy" + }, + "Chance_of_Mold_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " MOLD ALLERGY ", + "======================================================================", + "Sensitization to mold is very common, but symptoms are usually mild.", + "Source: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1240910/" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 1, + "transition": "Mold_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.15, + "transition": "Mold_Allergy" + }, + { + "distribution": 0.85, + "transition": "Chance_of_Bee_Allergy" + } + ] + } + ] + }, + "Mold_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "environment", + "remarks": [ + "Back to the American English spelling of mold." + ], + "target_encounter": "Allergist_Initial_Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "84489001", + "display": "Mold (organism)" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "21626009", + "display": "Cutaneous hypersensitivity (disorder)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.292 + }, + { + "level": "none", + "value": 0.7 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "76067001", + "display": "Sneezing (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.139 + }, + { + "level": "none", + "value": 0.86 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "267101005", + "display": "Nasal discharge present (situation)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.183 + }, + { + "level": "none", + "value": 0.81 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "56018004", + "display": "Wheezing (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.075 + }, + { + "level": "none", + "value": 0.92 + } + ] + } + ], + "direct_transition": "Chance_of_Bee_Allergy" + }, + "Chance_of_Bee_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " BEE STING ALLERGY ", + "======================================================================", + "Estimates range from 1-7%. Source: ", + "http://www.worldallergy.org/professional/allergic_diseases_center/insect_allergy/" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 0.33, + "transition": "Bee_Allergy" + }, + { + "distribution": 0.67, + "transition": "Chance_of_Latex_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.01, + "transition": "Bee_Allergy" + }, + { + "distribution": 0.99, + "transition": "Chance_of_Latex_Allergy" + } + ] + } + ] + }, + "Bee_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "environment", + "target_encounter": "Allergist_Initial_Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "288328004", + "display": "Bee venom (substance)" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "39579001", + "display": "Anaphylaxis (disorder)" + }, + "possible_severities": [ + { + "level": "severe", + "value": 0.03 + }, + { + "level": "none", + "value": 0.96 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "271807003", + "display": "Eruption of skin (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.264 + }, + { + "level": "none", + "value": 0.73 + } + ] + } + ], + "direct_transition": "Chance_of_Latex_Allergy" + }, + "Chance_of_Latex_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " LATEX ALLERGY ", + "======================================================================", + "Estimates range from 4-9%. Prevalence is especially high in healthcare ", + "workers and those who had frequent surgeries during childhood.", + "https://www.ncbi.nlm.nih.gov/pubmed/27010091" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 0.33, + "transition": "Latex_Allergy" + }, + { + "distribution": 0.67, + "transition": "Environmental_Allergy_Incidence_Terminal" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.02, + "transition": "Latex_Allergy" + }, + { + "distribution": 0.98, + "transition": "Environmental_Allergy_Incidence_Terminal" + } + ] + } + ] + }, + "Latex_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "environment", + "target_encounter": "Allergist_Initial_Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "111088007", + "display": "Latex (substance)" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "402387002", + "display": "Allergic angioedema (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.17 + }, + { + "level": "none", + "value": 0.83 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "267036007", + "display": "Dyspnea (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.1 + }, + { + "level": "none", + "value": 0.9 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "247472004", + "display": "Wheal (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.8 + }, + { + "level": "none", + "value": 0.19999999999999996 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "39579001", + "display": "Anaphylaxis (disorder)" + }, + "possible_severities": [ + { + "level": "severe", + "value": 0.13 + }, + { + "level": "none", + "value": 0.87 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "271807003", + "display": "Eruption of skin (disorder)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.06 + }, + { + "level": "none", + "value": 0.94 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "878820003", + "display": "Rhinoconjunctivitis (disorder)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.16 + }, + { + "level": "none", + "value": 0.84 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "418290006", + "display": "Itching (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.11 + }, + { + "level": "none", + "value": 0.89 + } + ] + } + ], + "direct_transition": "Environmental_Allergy_Incidence_Terminal" + }, + "Environmental_Allergy_Incidence_Terminal": { + "type": "Terminal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/allergies/food_allergy_incidence.json b/src/main/resources/modules/allergies/food_allergy_incidence.json new file mode 100644 index 0000000..58dfc28 --- /dev/null +++ b/src/main/resources/modules/allergies/food_allergy_incidence.json @@ -0,0 +1,1357 @@ +{ + "name": "Allergy Incidence", + "remarks": [ + "This submodule onsets various allergies and is intended to be called ", + "by the main allergies module." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Chance_of_Peanut_Allergy" + }, + "Chance_of_Peanut_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " PEANUT ALLERGY ", + "======================================================================", + "Allergy to peanuts and tree nuts in the general population is, respectively, 0.6 percent and 0.4 percent, ", + "with the rate in children under age 18 (0.8 percent and 0.2 percent) slightly different from adults (0.6 percent and 0.5 percent respectively). " + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 0.25, + "transition": "Peanut_Allergy" + }, + { + "distribution": 0.75, + "transition": "Chance_of_TreeNut_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.006, + "transition": "Peanut_Allergy" + }, + { + "distribution": 0.994, + "transition": "Chance_of_TreeNut_Allergy" + } + ] + } + ] + }, + "Peanut_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "food", + "target_encounter": "Allergist_Initial_Visit", + "assign_to_attribute": "food_allergy", + "codes": [ + { + "system": "SNOMED-CT", + "code": "762952008", + "display": "Peanut (substance)" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "49727002", + "display": "Cough (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.21 + }, + { + "level": "none", + "value": 0.79 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "402387002", + "display": "Allergic angioedema (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.58 + }, + { + "level": "none", + "value": 0.42000000000000004 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "267036007", + "display": "Dyspnea (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.4 + }, + { + "level": "none", + "value": 0.6 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "247472004", + "display": "Wheal (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.67 + }, + { + "level": "none", + "value": 0.32999999999999996 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "39579001", + "display": "Anaphylaxis (disorder)" + }, + "possible_severities": [ + { + "level": "severe", + "value": 0.18 + }, + { + "level": "none", + "value": 0.8200000000000001 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "271807003", + "display": "Eruption of skin (disorder)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.32 + }, + { + "level": "none", + "value": 0.6799999999999999 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "300359004", + "display": "Finding of vomiting (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.27 + }, + { + "level": "none", + "value": 0.73 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "62315008", + "display": "Diarrhea (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.13 + }, + { + "level": "none", + "value": 0.87 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "56018004", + "display": "Wheezing (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.37 + }, + { + "level": "none", + "value": 0.63 + } + ] + } + ], + "direct_transition": "Chance_of_TreeNut_Allergy" + }, + "Chance_of_TreeNut_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " NUT ALLERGY ", + "======================================================================", + "Allergy to peanuts and tree nuts in the general population is, respectively, 0.6 percent and 0.4 percent, ", + "with the rate in children under age 18 (0.8 percent and 0.2 percent) slightly different from adults (0.6 percent and 0.5 percent respectively). " + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 0.25, + "transition": "TreeNut_Allergy" + }, + { + "distribution": 0.75, + "transition": "Chance_of_Fish_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.004, + "transition": "TreeNut_Allergy" + }, + { + "distribution": 0.996, + "transition": "Chance_of_Fish_Allergy" + } + ] + } + ] + }, + "TreeNut_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "food", + "target_encounter": "Allergist_Initial_Visit", + "assign_to_attribute": "food_allergy", + "codes": [ + { + "system": "SNOMED-CT", + "code": "442571000124108", + "display": "Tree nut (substance)" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "49727002", + "display": "Cough (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.4 + }, + { + "level": "none", + "value": 0.6 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "402387002", + "display": "Allergic angioedema (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.91 + }, + { + "level": "none", + "value": 0.08999999999999997 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "267036007", + "display": "Dyspnea (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.48 + }, + { + "level": "none", + "value": 0.52 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "247472004", + "display": "Wheal (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.98 + }, + { + "level": "none", + "value": 0.020000000000000018 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "39579001", + "display": "Anaphylaxis (disorder)" + }, + "possible_severities": [ + { + "level": "severe", + "value": 0.74 + }, + { + "level": "none", + "value": 0.26 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "271807003", + "display": "Eruption of skin (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.98 + }, + { + "level": "none", + "value": 0.020000000000000018 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "300359004", + "display": "Finding of vomiting (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.24 + }, + { + "level": "none", + "value": 0.76 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "878820003", + "display": "Rhinoconjunctivitis (disorder)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.33 + }, + { + "level": "none", + "value": 0.6699999999999999 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "418290006", + "display": "Itching (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.9 + }, + { + "level": "none", + "value": 0.09999999999999998 + } + ] + } + ], + "direct_transition": "Chance_of_Fish_Allergy" + }, + "Chance_of_Fish_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " FISH ALLERGY ", + "======================================================================", + "The prevalence of seafood allergy in the general population is 0.4 percent to fish, 2.0 percent to shellfish and 0.2 percent to both.", + "Seafood allergy is less common in children (0.6 percent) than adults (2.8 percent). " + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 0.25, + "transition": "Fish_Allergy" + }, + { + "distribution": 0.75, + "transition": "Chance_of_Shellfish_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.004, + "transition": "Fish_Allergy" + }, + { + "distribution": 0.996, + "transition": "Chance_of_Shellfish_Allergy" + } + ] + } + ] + }, + "Fish_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "food", + "target_encounter": "Allergist_Initial_Visit", + "assign_to_attribute": "food_allergy", + "codes": [ + { + "system": "SNOMED-CT", + "code": "735971005", + "display": "Fish (substance)" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "267036007", + "display": "Dyspnea (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.67 + }, + { + "level": "none", + "value": 0.32999999999999996 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "271807003", + "display": "Eruption of skin (disorder)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.83 + }, + { + "level": "none", + "value": 0.17000000000000004 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "300359004", + "display": "Finding of vomiting (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.33 + }, + { + "level": "none", + "value": 0.6699999999999999 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "878820003", + "display": "Rhinoconjunctivitis (disorder)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.5 + }, + { + "level": "none", + "value": 0.5 + } + ] + } + ], + "direct_transition": "Chance_of_Shellfish_Allergy" + }, + "Chance_of_Shellfish_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " SHELLFISH ALLERGY ", + "======================================================================", + "The prevalence of seafood allergy in the general population is 0.4 percent to fish, 2.0 percent to shellfish and 0.2 percent to both.", + "Seafood allergy is less common in children (0.6 percent) than adults (2.8 percent). " + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 0.25, + "transition": "Shellfish_Allergy" + }, + { + "distribution": 0.75, + "transition": "Chance_of_Wheat_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.02, + "transition": "Shellfish_Allergy" + }, + { + "distribution": 0.98, + "transition": "Chance_of_Wheat_Allergy" + } + ] + } + ] + }, + "Shellfish_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "food", + "target_encounter": "Allergist_Initial_Visit", + "assign_to_attribute": "food_allergy", + "codes": [ + { + "system": "SNOMED-CT", + "code": "735029006", + "display": "Shellfish (substance)" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "49727002", + "display": "Cough (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.58 + }, + { + "level": "none", + "value": 0.42000000000000004 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "402387002", + "display": "Allergic angioedema (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.55 + }, + { + "level": "none", + "value": 0.44999999999999996 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "267036007", + "display": "Dyspnea (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.27 + }, + { + "level": "none", + "value": 0.73 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "247472004", + "display": "Wheal (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.58 + }, + { + "level": "none", + "value": 0.42000000000000004 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "39579001", + "display": "Anaphylaxis (disorder)" + }, + "possible_severities": [ + { + "level": "severe", + "value": 0.35 + }, + { + "level": "none", + "value": 0.65 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "271807003", + "display": "Eruption of skin (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.82 + }, + { + "level": "none", + "value": 0.18000000000000005 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "878820003", + "display": "Rhinoconjunctivitis (disorder)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.04 + }, + { + "level": "none", + "value": 0.96 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "418290006", + "display": "Itching (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.57 + }, + { + "level": "none", + "value": 0.43000000000000005 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "62315008", + "display": "Diarrhea (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.5 + }, + { + "level": "none", + "value": 0.5 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "422587007", + "display": "Nausea (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.3 + }, + { + "level": "none", + "value": 0.7 + } + ] + } + ], + "direct_transition": "Chance_of_Wheat_Allergy" + }, + "Chance_of_Wheat_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " WHEAT ALLERGY ", + "======================================================================", + "Wheat allergy is different than celiac disease. There are few studies on prevalence of wheat allergy.", + "A recent study 0.4% of US adults reported an allergy to wheat diagnosed via a doctor [6]. The prevalence ", + "of wheat allergy is highest amongst children in the US, ranging from 0.4% to 1.0% of the population.", + "http://www.drschaer-institute.com/us/wheat-allergy/epidemiology-1043.html", + "Wheat allergy is typically outgrown by adulthood — about 65 percent of children with a wheat allergy ", + "will outgrow it by the time they are 12. Based on prevalences we assume that adult onset of ", + "the allergy is rare enough to ignore." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 0.25, + "transition": "Wheat_Allergy" + }, + { + "distribution": 0.75, + "transition": "Chance_of_Eggs_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.006, + "transition": "Wheat_Allergy" + }, + { + "distribution": 0.994, + "transition": "Chance_of_Eggs_Allergy" + } + ] + } + ] + }, + "Wheat_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "food", + "target_encounter": "Allergist_Initial_Visit", + "assign_to_attribute": "food_allergy", + "codes": [ + { + "system": "SNOMED-CT", + "code": "412071004", + "display": "Wheat (substance)" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "267036007", + "display": "Dyspnea (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.21 + }, + { + "level": "none", + "value": 0.79 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "39579001", + "display": "Anaphylaxis (disorder)" + }, + "possible_severities": [ + { + "level": "severe", + "value": 0.25 + }, + { + "level": "none", + "value": 0.75 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "271807003", + "display": "Eruption of skin (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.9 + }, + { + "level": "none", + "value": 0.1 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "62315008", + "display": "Diarrhea (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.21 + }, + { + "level": "none", + "value": 0.79 + } + ] + } + ], + "direct_transition": "Chance_of_Eggs_Allergy" + }, + "Chance_of_Eggs_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " EGG ALLERGY ", + "======================================================================", + "Experts estimate that as many as 2 percent of children are allergic to eggs. ", + "Fortunately, studies show that about 70 percent of children with an egg allergy ", + "will outgrow the condition by age 16.", + "http://acaai.org/allergies/types/food-allergies/types-food-allergy/egg-allergy", + "Based on prevalences we assume that adult onset of the allergy is rare enough to ignore." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 0.25, + "transition": "Eggs_Allergy" + }, + { + "distribution": 0.75, + "transition": "Chance_of_Soy_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.006, + "transition": "Eggs_Allergy" + }, + { + "distribution": 0.994, + "transition": "Chance_of_Soy_Allergy" + } + ] + } + ] + }, + "Eggs_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "food", + "target_encounter": "Allergist_Initial_Visit", + "assign_to_attribute": "food_allergy", + "codes": [ + { + "system": "SNOMED-CT", + "code": "102263004", + "display": "Eggs (edible) (substance)" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "39579001", + "display": "Anaphylaxis (disorder)" + }, + "possible_severities": [ + { + "level": "severe", + "value": 0.09 + }, + { + "level": "none", + "value": 0.91 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "271807003", + "display": "Eruption of skin (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.05 + }, + { + "level": "none", + "value": 0.95 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "402387002", + "display": "Allergic angioedema (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.12 + }, + { + "level": "none", + "value": 0.88 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "247472004", + "display": "Wheal (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.46 + }, + { + "level": "none", + "value": 0.54 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "300359004", + "display": "Finding of vomiting (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.05 + }, + { + "level": "none", + "value": 0.95 + } + ] + } + ], + "direct_transition": "Chance_of_Soy_Allergy" + }, + "Chance_of_Soy_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " SOY ALLERGY ", + "======================================================================", + "Soy allergies are uncommon but closely related to peanut and milk allergies. ", + "http://www.soyconnection.com/newsletters/soy-connection/health-nutrition/articles/Estimating-Prevalence-Of-Soy-Protein-Allergy" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 0.1, + "transition": "Soy_Allergy" + }, + { + "distribution": 0.9, + "transition": "Chance_of_Dairy_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.002, + "transition": "Soy_Allergy" + }, + { + "distribution": 0.998, + "transition": "Chance_of_Dairy_Allergy" + } + ] + } + ] + }, + "Soy_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "food", + "target_encounter": "Allergist_Initial_Visit", + "assign_to_attribute": "food_allergy", + "codes": [ + { + "system": "SNOMED-CT", + "code": "256355007", + "display": "Glycine max (substance)" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "247472004", + "display": "Wheal (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.07 + }, + { + "level": "none", + "value": 0.9299999999999999 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "300359004", + "display": "Finding of vomiting (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.5 + }, + { + "level": "none", + "value": 0.5 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "62315008", + "display": "Diarrhea (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.5 + }, + { + "level": "none", + "value": 0.5 + } + ] + } + ], + "direct_transition": "Chance_of_Dairy_Allergy" + }, + "Chance_of_Dairy_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " DAIRY ALLERGY ", + "======================================================================", + "The prevalence of dairy/milk allergy in the general population is 1-2% for young ", + "children and 0.2-0.4% in the general population. About 80 percent of children are ", + "likely to outgrow their milk allergy before they are 16. Based on prevalence we ", + "assume that adult onset of the allergy is rare enough to ignore." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 0.25, + "transition": "Dairy_Allergy" + }, + { + "distribution": 0.75, + "transition": "Food_Allergy_Incidence_Terminal" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.0015, + "transition": "Dairy_Allergy" + }, + { + "distribution": 0.9985, + "transition": "Food_Allergy_Incidence_Terminal" + } + ] + } + ] + }, + "Dairy_Allergy": { + "type": "AllergyOnset", + "allergy_type": "allergy", + "category": "food", + "target_encounter": "Allergist_Initial_Visit", + "assign_to_attribute": "food_allergy", + "codes": [ + { + "system": "SNOMED-CT", + "code": "3718001", + "display": "Cow's milk (substance)" + } + ], + "reactions": [ + { + "reaction": { + "system": "SNOMED-CT", + "code": "402387002", + "display": "Allergic angioedema (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.07 + }, + { + "level": "none", + "value": 0.9299999999999999 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "247472004", + "display": "Wheal (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.62 + }, + { + "level": "none", + "value": 0.38 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "39579001", + "display": "Anaphylaxis (disorder)" + }, + "possible_severities": [ + { + "level": "severe", + "value": 0.09 + }, + { + "level": "none", + "value": 0.91 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "271807003", + "display": "Eruption of skin (disorder)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.04 + }, + { + "level": "none", + "value": 0.96 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "300359004", + "display": "Finding of vomiting (finding)" + }, + "possible_severities": [ + { + "level": "moderate", + "value": 0.2 + }, + { + "level": "none", + "value": 0.8 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "62315008", + "display": "Diarrhea (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.3 + }, + { + "level": "none", + "value": 0.7 + } + ] + }, + { + "reaction": { + "system": "SNOMED-CT", + "code": "56018004", + "display": "Wheezing (finding)" + }, + "possible_severities": [ + { + "level": "mild", + "value": 0.1 + }, + { + "level": "none", + "value": 0.9 + } + ] + } + ], + "direct_transition": "Food_Allergy_Incidence_Terminal" + }, + "Food_Allergy_Incidence_Terminal": { + "type": "Terminal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/allergies/immunotherapy.json b/src/main/resources/modules/allergies/immunotherapy.json new file mode 100644 index 0000000..c8a28e2 --- /dev/null +++ b/src/main/resources/modules/allergies/immunotherapy.json @@ -0,0 +1,267 @@ +{ + "name": "Allergy Immunotherapy", + "remarks": [ + "This submodule is called by 'allergies.json'. This models a series of ", + "immunotherapy treatments designed to lessen the severity of allergy ", + "symptoms, or even eliminate the sensitivity altogether. ", + "Immunotherapy is most effective against outdoor allergens (trees, grass), ", + "and common indoor allergens (mold, mites, pet dander). Immunotherapy is ", + "minimally effective against food allergens." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Immunotherapy_Consultation" + }, + "Immunotherapy_Consultation": { + "type": "Encounter", + "remarks": [ + "======================================================================", + " IMMUNOTHERAPY ", + "======================================================================", + "Allergen immunotherapy for hay fever has been common practice since the ", + "1930's. It was first proven by scientists in the UK in 1911. It has since ", + "been expanded to include additional environmental and food allergens." + ], + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "170837001", + "display": "Allergic disorder initial assessment (regime/therapy)" + } + ], + "distributed_transition": [ + { + "distribution": 0.75, + "transition": "Immunotherapy_Given" + }, + { + "distribution": 0.25, + "transition": "Immunotherapy_Not_Given", + "remarks": [ + "The distribution here is somewhat arbitrary. I could not find reasonable stats for", + "what percentage of people are given immunotherapy but it's not everyone.", + "I went with a 75/25 split. Reasons to not give immunotherapy include fear of needles,", + "pre-existing immune conditions (like AIDS), and prohibitive cost." + ] + } + ], + "reason": "allergy_unspecified" + }, + "Immunotherapy_Given": { + "type": "SetAttribute", + "attribute": "immunotherapy_status", + "value": "given", + "direct_transition": "Immunotherapy_CarePlan" + }, + "Immunotherapy_Not_Given": { + "type": "SetAttribute", + "attribute": "immunotherapy_status", + "value": "not-given", + "direct_transition": "End_Consultation" + }, + "Immunotherapy_CarePlan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "170836005", + "display": "Allergic disorder monitoring (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "182678001", + "display": "Allergen immunotherapy (regime/therapy)" + } + ], + "direct_transition": "Benchmark_Allergy_Test" + }, + "Benchmark_Allergy_Test": { + "type": "Procedure", + "duration": { + "low": 20, + "high": 40, + "unit": "minutes" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "395142003", + "display": "Allergy screening test (procedure)" + } + ], + "direct_transition": "Benchmark_Allergy_Panel" + }, + "Benchmark_Allergy_Panel": { + "type": "CallSubmodule", + "submodule": "allergies/allergy_panel", + "direct_transition": "End_Consultation" + }, + "End_Consultation": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "immunotherapy_status", + "operator": "==", + "value": "not-given" + }, + "transition": "Terminal" + }, + { + "transition": "Initialize_Immunotherapy_Counter" + } + ] + }, + "Initialize_Immunotherapy_Counter": { + "type": "SetAttribute", + "attribute": "immunotherapy_counter", + "value": 0, + "direct_transition": "Undergoing_Immunotherapy_Treatment" + }, + "Undergoing_Immunotherapy_Treatment": { + "type": "Delay", + "remarks": [ + "Patients get immunotherapy treatments for an average of 5 years.", + "Given monthly appointments we count a total of 60 appointments before ", + "ending the immunotherapy." + ], + "range": { + "low": 3, + "high": 4, + "unit": "weeks" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "immunotherapy_counter", + "operator": "<", + "value": 60 + }, + "transition": "Immunotherapy_Treatment" + }, + { + "transition": "Immunotherapy_Treatment_Complete" + } + ] + }, + "Immunotherapy_Treatment": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "371883000", + "display": "Outpatient procedure (procedure)" + } + ], + "direct_transition": "Immunotherapy_Procedure", + "reason": "allergy_unspecified" + }, + "Immunotherapy_Procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "180256009", + "display": "Subcutaneous immunotherapy (procedure)" + } + ], + "duration": { + "low": 15, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "End_Treatment_Session" + }, + "End_Treatment_Session": { + "type": "EncounterEnd", + "direct_transition": "Count_A_Treatment" + }, + "Count_A_Treatment": { + "type": "Counter", + "action": "increment", + "attribute": "immunotherapy_counter", + "direct_transition": "Undergoing_Immunotherapy_Treatment" + }, + "Immunotherapy_Treatment_Complete": { + "type": "Simple", + "direct_transition": "Immunotherapy_Followup" + }, + "Immunotherapy_Followup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "170838006", + "display": "Allergic disorder follow-up assessment (regime/therapy)" + } + ], + "direct_transition": "Immunotherapy_CarePlan_Ends", + "reason": "allergy_unspecified" + }, + "Immunotherapy_CarePlan_Ends": { + "type": "CarePlanEnd", + "careplan": "Immunotherapy_CarePlan", + "direct_transition": "Immunotherapy_Success_Rate" + }, + "Immunotherapy_Success_Rate": { + "type": "Simple", + "remarks": [ + "My research has shown up to 85% of people respond positively to ", + "immunotherapy treatment. This allows patients to 'outgrow' their ", + "environmental allergies." + ], + "distributed_transition": [ + { + "distribution": 0.8, + "transition": "Outgrown_Environmental_Allergies" + }, + { + "distribution": 0.2, + "transition": "Followup_Test" + } + ] + }, + "Outgrown_Environmental_Allergies": { + "type": "CallSubmodule", + "submodule": "allergies/outgrow_env_allergies", + "direct_transition": "Followup_Test" + }, + "Followup_Test": { + "type": "Procedure", + "duration": { + "low": 20, + "high": 40, + "unit": "minutes" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "395142003", + "display": "Allergy screening test (procedure)" + } + ], + "direct_transition": "Followup_Allergy_Panel" + }, + "Followup_Allergy_Panel": { + "type": "CallSubmodule", + "submodule": "allergies/allergy_panel", + "direct_transition": "Followup_End" + }, + "Followup_End": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/allergies/outgrow_env_allergies.json b/src/main/resources/modules/allergies/outgrow_env_allergies.json new file mode 100644 index 0000000..3bdeedf --- /dev/null +++ b/src/main/resources/modules/allergies/outgrow_env_allergies.json @@ -0,0 +1,273 @@ +{ + "name": "Outgrow Environmental Allergies", + "remarks": [ + "When children reach adolescence or early adulthood, especially if they've ", + "undergone immunotherapy, the potential to outgrow environmental allergies ", + "is pretty high. Using the same general 'outgrow' percentage of 75%." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Tree_Allergy" + }, + "Tree_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " OUTGROW TREE ALLERGY ", + "======================================================================" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "419263009", + "display": "Allergy to tree pollen (finding)" + } + ] + }, + "distributions": [ + { + "distribution": 0.75, + "transition": "Outgrow_Tree_Allergy" + }, + { + "distribution": 0.25, + "transition": "Grass_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "Grass_Allergy" + } + ] + } + ] + }, + "Outgrow_Tree_Allergy": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "419263009", + "display": "Allergy to tree pollen (finding)" + } + ], + "direct_transition": "Grass_Allergy" + }, + "Grass_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " OUTGROW GRASS ALLERGY ", + "======================================================================" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418689008", + "display": "Allergy to grass pollen (finding)" + } + ] + }, + "distributions": [ + { + "distribution": 0.75, + "transition": "Outgrow_Grass_Allergy" + }, + { + "distribution": 0.25, + "transition": "Mold_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "Mold_Allergy" + } + ] + } + ] + }, + "Outgrow_Grass_Allergy": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418689008", + "display": "Allergy to grass pollen (finding)" + } + ], + "direct_transition": "Mold_Allergy" + }, + "Mold_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " OUTGROW MOLD ALLERGY ", + "======================================================================" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "419474003", + "display": "Allergy to mold (finding)" + } + ] + }, + "distributions": [ + { + "distribution": 0.75, + "transition": "Outgrow_Mold_Allergy" + }, + { + "distribution": 0.25, + "transition": "Pet_Dander_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "Pet_Dander_Allergy" + } + ] + } + ] + }, + "Outgrow_Mold_Allergy": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "419474003", + "display": "Allergy to mold (finding)" + } + ], + "direct_transition": "Pet_Dander_Allergy" + }, + "Pet_Dander_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " OUTGROW PET DANDER ALLERGY ", + "======================================================================" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "717234006", + "display": "Allergy to animal protein (finding)" + } + ] + }, + "distributions": [ + { + "distribution": 0.75, + "transition": "Outgrow_Pet_Dander_Allergy" + }, + { + "distribution": 0.25, + "transition": "Mite_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "Mite_Allergy" + } + ] + } + ] + }, + "Outgrow_Pet_Dander_Allergy": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "717234006", + "display": "Allergy to animal protein (finding)" + } + ], + "direct_transition": "Mite_Allergy" + }, + "Mite_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " OUTGROW DUST MITE ALLERGY ", + "======================================================================" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "232350006", + "display": "Allergy to dust mite protein (finding)" + } + ] + }, + "distributions": [ + { + "distribution": 0.75, + "transition": "Outgrow_Mite_Allergy" + }, + { + "distribution": 0.25, + "transition": "Terminal" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "Terminal" + } + ] + } + ] + }, + "Outgrow_Mite_Allergy": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "232350006", + "display": "Allergy to dust mite protein (finding)" + } + ], + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/allergies/outgrow_food_allergies.json b/src/main/resources/modules/allergies/outgrow_food_allergies.json new file mode 100644 index 0000000..8a431dd --- /dev/null +++ b/src/main/resources/modules/allergies/outgrow_food_allergies.json @@ -0,0 +1,341 @@ +{ + "name": "Outgrow Food Allergies", + "remarks": [ + "75% of children with food allergies outgrow their sensitivity to ", + "milk, soy, eggs, and wheat. However, allergies to peanuts, tree ", + "nuts, fish, and shellfish are rarely outgrown." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Wheat_Allergy" + }, + "Wheat_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " OUTGROW WHEAT ALLERGY ", + "======================================================================" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "420174000", + "display": "Allergy to wheat (finding)" + } + ] + }, + "distributions": [ + { + "distribution": 0.75, + "transition": "Outgrow_Wheat_Allergy" + }, + { + "distribution": 0.25, + "transition": "Dairy_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "Dairy_Allergy" + } + ] + } + ] + }, + "Outgrow_Wheat_Allergy": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "420174000", + "display": "Allergy to wheat (finding)" + } + ], + "direct_transition": "Dairy_Allergy" + }, + "Dairy_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " OUTGROW DAIRY ALLERGY ", + "======================================================================" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "414285001", + "display": "Allergy to food (finding)" + } + ] + }, + "distributions": [ + { + "distribution": 0.75, + "transition": "Outgrow_Dairy_Allergy" + }, + { + "distribution": 0.25, + "transition": "Eggs_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "Eggs_Allergy" + } + ] + } + ] + }, + "Outgrow_Dairy_Allergy": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "414285001", + "display": "Allergy to food (finding)" + } + ], + "direct_transition": "Eggs_Allergy" + }, + "Eggs_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " OUTGROW EGGS ALLERGY ", + "======================================================================" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "213020009", + "display": "Allergy to egg protein (finding)" + } + ] + }, + "distributions": [ + { + "distribution": 0.75, + "transition": "Outgrow_Eggs_Allergy" + }, + { + "distribution": 0.25, + "transition": "Soy_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "Soy_Allergy" + } + ] + } + ] + }, + "Outgrow_Eggs_Allergy": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "213020009", + "display": "Allergy to egg protein (finding)" + } + ], + "direct_transition": "Soy_Allergy" + }, + "Soy_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " OUTGROW SOY ALLERGY ", + "======================================================================" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "782594005", + "display": "Allergy to soy protein (finding)" + } + ] + }, + "distributions": [ + { + "distribution": 0.75, + "transition": "Outgrow_Soy_Allergy" + }, + { + "distribution": 0.25, + "transition": "Latex_Allergy" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "Latex_Allergy" + } + ] + } + ] + }, + "Outgrow_Soy_Allergy": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "782594005", + "display": "Allergy to soy protein (finding)" + } + ], + "direct_transition": "Latex_Allergy" + }, + "Latex_Allergy": { + "type": "Simple", + "remarks": [ + "======================================================================", + " OUTGROW LATEX ALLERGY ", + "======================================================================" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1003755004", + "display": "Allergy to Hevea brasiliensis latex protein (finding)" + } + ] + }, + "distributions": [ + { + "distribution": 0.75, + "transition": "Outgrow_Latex_Allergy" + }, + { + "distribution": 0.25, + "transition": "Check_For_Other_Food_Allergies" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "Check_For_Other_Food_Allergies" + } + ] + } + ] + }, + "Outgrow_Latex_Allergy": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1003755004", + "display": "Allergy to Hevea brasiliensis latex protein (finding)" + } + ], + "direct_transition": "Check_For_Other_Food_Allergies" + }, + "Check_For_Other_Food_Allergies": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91935009", + "display": "Allergy to peanut (finding)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91934008", + "display": "Allergy to nut (finding)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "417532002", + "display": "Allergy to fish (finding)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "300913006", + "display": "Allergy to shellfish (finding)" + } + ] + } + ] + }, + "transition": "Still_Has_Some_Food_Allergies" + }, + { + "transition": "No_Food_Allergies_Here" + } + ] + }, + "Still_Has_Some_Food_Allergies": { + "type": "SetAttribute", + "attribute": "outgrew_food_allergies", + "value": "false", + "direct_transition": "Terminal" + }, + "No_Food_Allergies_Here": { + "type": "SetAttribute", + "attribute": "outgrew_food_allergies", + "value": "true", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/allergies/severe_allergic_reaction.json b/src/main/resources/modules/allergies/severe_allergic_reaction.json new file mode 100644 index 0000000..c481162 --- /dev/null +++ b/src/main/resources/modules/allergies/severe_allergic_reaction.json @@ -0,0 +1,97 @@ +{ + "name": "Severe Allergic Reaction", + "remarks": [ + "A severe allergic reaction is characterized by: ", + "1. A visit to the ED ", + "2. Recording of 'Acute allergic reaction' ", + "3. A dose of adrenaline (epinephrine) to stop the reaction ", + "4. An observation period of 2-6 hours ", + "5. A short prescription for oral steroids, usually prednisone " + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Acute_Allergic_Reaction" + }, + "ED_Visit_For_Allergic_Reaction": { + "type": "Encounter", + "encounter_class": "emergency", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "Administer_Epinephrine", + "reason": "Acute_Allergic_Reaction" + }, + "Acute_Allergic_Reaction": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Allergic_Reaction", + "codes": [ + { + "system": "SNOMED-CT", + "code": "241929008", + "display": "Acute allergic reaction (disorder)" + } + ], + "direct_transition": "ED_Visit_For_Allergic_Reaction" + }, + "Administer_Epinephrine": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "313191000", + "display": "Injection of epinephrine (procedure)" + } + ], + "direct_transition": "Observation_Period" + }, + "Observation_Period": { + "type": "Delay", + "range": { + "low": 2, + "high": 6, + "unit": "hours" + }, + "direct_transition": "Mild_Steroid" + }, + "Mild_Steroid": { + "type": "MedicationOrder", + "remarks": [ + "Typically a mild steroid is given to reduce the chance of the ", + "reaction returning after the adrenaline wears off. Usually this is ", + "just one dose, administered at the hospital." + ], + "codes": [ + { + "system": "RxNorm", + "code": "312617", + "display": "predniSONE 5 MG Oral Tablet" + } + ], + "administration": true, + "direct_transition": "End_Mild_Steroid" + }, + "End_Mild_Steroid": { + "type": "MedicationEnd", + "medication_order": "Mild_Steroid", + "direct_transition": "End_Acute_Reaction" + }, + "End_Acute_Reaction": { + "type": "ConditionEnd", + "condition_onset": "Acute_Allergic_Reaction", + "direct_transition": "Discharge" + }, + "Discharge": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/anemia/anemia_sub.json b/src/main/resources/modules/anemia/anemia_sub.json new file mode 100644 index 0000000..5d2ed38 --- /dev/null +++ b/src/main/resources/modules/anemia/anemia_sub.json @@ -0,0 +1,1157 @@ +{ + "name": "anemia_sub", + "remarks": [ + "Anemia" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "End Any Active Encounter Just In Case" + }, + "Anemia": { + "type": "ConditionOnset", + "assign_to_attribute": "anemia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "271737000", + "display": "Anemia (disorder)" + } + ], + "direct_transition": "Anemia_Encounter" + }, + "Terminal": { + "type": "Terminal" + }, + "Review_Of_Systems": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "415300000", + "display": "Review of systems (procedure)" + } + ], + "duration": { + "low": 10, + "high": 20, + "unit": "minutes" + }, + "direct_transition": "Collect_Social_and_Nutrition_History", + "remarks": [ + "Future model: This should be a submodule that records social habits, nutrition, alcohol consumption." + ] + }, + "Brief_Examination": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "162676008", + "display": "Brief general examination (procedure)" + } + ], + "duration": { + "low": 10, + "high": 20, + "unit": "minutes" + }, + "remarks": [ + "Remarks:", + "- Percent of severe patients estimated (needs verification)", + "" + ], + "conditional_transition": [ + { + "transition": "Delay", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "20570-8", + "display": "Hematocrit" + } + ], + "operator": "<=", + "value": 28 + }, + { + "condition_type": "Gender", + "gender": "F" + } + ] + } + }, + { + "transition": "Delay", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Gender", + "gender": "M" + }, + { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "20570-8", + "display": "Hematocrit" + } + ], + "operator": "<=", + "value": 27 + } + ] + } + }, + { + "transition": "Administer_Medications" + } + ] + }, + "Male": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "CBC_Panel_M_Severe", + "distribution": 0.07 + }, + { + "transition": "CBC_Panel_M_Routine", + "distribution": 0.93 + } + ] + }, + "Female": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + "distributions": [ + { + "transition": "CBC_Panel_F_Severe", + "distribution": 0.28 + }, + { + "transition": "CBC_Panel_F_Routine", + "distribution": 0.72 + } + ] + }, + { + "distributions": [ + { + "transition": "CBC_Panel_F_Severe", + "distribution": 0.07 + }, + { + "transition": "CBC_Panel_F_Routine", + "distribution": 0.93 + } + ] + } + ] + }, + "Transfusion": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "180207008", + "display": "Intravenous blood transfusion of packed cells (procedure)" + } + ], + "duration": { + "low": 20, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "End Encounter After Transfusion" + }, + "Peripheral_Blood_Smear": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "14768001", + "display": "Peripheral blood smear interpretation (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Review_Of_Systems" + }, + "Medication_Reconciliation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "430193006", + "display": "Medication reconciliation (procedure)" + } + ], + "duration": { + "low": 5, + "high": 20, + "unit": "minutes" + }, + "direct_transition": "Brief_Examination" + }, + "Administer_Medications": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Iron_Supplement", + "distribution": 0.1 + }, + { + "transition": "Vitamin B12 Booster", + "distribution": 0.1 + }, + { + "transition": "End Encounter After Medication Rx", + "distribution": 0.8 + } + ] + }, + "Iron_Supplement": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 310325, + "display": "ferrous sulfate 325 MG Oral Tablet" + } + ], + "distributed_transition": [ + { + "transition": "Vitamin B12 Booster", + "distribution": 0.1 + }, + { + "transition": "End Encounter After Medication Rx", + "distribution": 0.9 + } + ] + }, + "Vitamin B12 Booster": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 2001499, + "display": "Vitamin B12 5 MG/ML Injectable Solution" + } + ], + "direct_transition": "End Encounter After Medication Rx" + }, + "Anemia_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "conditional_transition": [ + { + "transition": "Female", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "Male", + "condition": { + "condition_type": "Gender", + "gender": "M" + } + } + ], + "reason": "anemia" + }, + "CBC_Panel_F_Routine": { + "type": "DiagnosticReport", + "number_of_observations": 11, + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "direct_transition": "Peripheral_Blood_Smear", + "observations": [ + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "range": { + "low": 11, + "high": 11.9 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "20570-8", + "display": "Hematocrit [Volume Fraction] of Blood" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.5, + "high": 10.5 + } + }, + { + "category": "laboratory", + "unit": "10*6/uL", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.9, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 80, + "high": 95 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 27, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "21000-5", + "display": "Erythrocyte distribution width [Entitic volume] by Automated count" + } + ], + "range": { + "low": 39, + "high": 46 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32207-3", + "display": "Platelet distribution width [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 520 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32623-1", + "display": "Platelet mean volume [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 9.4, + "high": 12.3 + } + } + ] + }, + "CBC_Panel_M_Severe": { + "type": "DiagnosticReport", + "number_of_observations": 11, + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "range": { + "low": 6.7, + "high": 10 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "20570-8", + "display": "Hematocrit [Volume Fraction] of Blood" + } + ], + "range": { + "low": 20, + "high": 30 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.5, + "high": 10.5 + } + }, + { + "category": "laboratory", + "unit": "10*6/uL", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.9, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 80, + "high": 95 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 27, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "21000-5", + "display": "Erythrocyte distribution width [Entitic volume] by Automated count" + } + ], + "range": { + "low": 39, + "high": 46 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32207-3", + "display": "Platelet distribution width [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 520 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32623-1", + "display": "Platelet mean volume [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 9.4, + "high": 12.3 + } + } + ], + "direct_transition": "Peripheral_Blood_Smear" + }, + "CBC_Panel_F_Severe": { + "type": "DiagnosticReport", + "number_of_observations": 11, + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "range": { + "low": 7, + "high": 10.9 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "20570-8", + "display": "Hematocrit [Volume Fraction] of Blood" + } + ], + "range": { + "low": 21, + "high": 32.9 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.5, + "high": 10.5 + } + }, + { + "category": "laboratory", + "unit": "10*6/uL", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.9, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 80, + "high": 95 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 27, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "21000-5", + "display": "Erythrocyte distribution width [Entitic volume] by Automated count" + } + ], + "range": { + "low": 39, + "high": 46 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32207-3", + "display": "Platelet distribution width [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 520 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32623-1", + "display": "Platelet mean volume [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 9.4, + "high": 12.3 + } + } + ], + "direct_transition": "Peripheral_Blood_Smear" + }, + "CBC_Panel_M_Routine": { + "type": "DiagnosticReport", + "number_of_observations": 11, + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "direct_transition": "Peripheral_Blood_Smear", + "observations": [ + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "range": { + "low": 10, + "high": 11.9 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "20570-8", + "display": "Hematocrit [Volume Fraction] of Blood" + } + ], + "range": { + "low": 30.1, + "high": 35 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.5, + "high": 10.5 + } + }, + { + "category": "laboratory", + "unit": "10*6/uL", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.9, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 80, + "high": 95 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 27, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "21000-5", + "display": "Erythrocyte distribution width [Entitic volume] by Automated count" + } + ], + "range": { + "low": 39, + "high": 46 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32207-3", + "display": "Platelet distribution width [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 520 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32623-1", + "display": "Platelet mean volume [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 9.4, + "high": 12.3 + } + } + ] + }, + "Consult_Referral_to_Experts_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Anemia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "conditional_transition": [ + { + "transition": "Blood_Panel_F_Routine", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "Blood_Panel_M_Routine", + "condition": { + "condition_type": "Gender", + "gender": "M" + } + } + ] + }, + "Collect_Social_and_Nutrition_History": { + "type": "Simple", + "remarks": [ + "Done in review of systems. Document alcohol and tobacco use." + ], + "direct_transition": "Medication_Reconciliation" + }, + "Delay": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "hours" + }, + "direct_transition": "Transfusion" + }, + "Blood_Panel_M_Routine": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24360-0", + "display": "Hemoglobin and Hematocrit panel - Blood" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "range": { + "low": 10, + "high": 11.9 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "20570-8", + "display": "Hematocrit [Volume Fraction] of Blood" + } + ], + "range": { + "low": 30.1, + "high": 35 + } + } + ], + "direct_transition": "Administer_Medications" + }, + "Blood_Panel_F_Routine": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24360-0", + "display": "Hemoglobin and Hematocrit panel - Blood" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "range": { + "low": 11, + "high": 11.9 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "20570-8", + "display": "Hematocrit [Volume Fraction] of Blood" + } + ], + "range": { + "low": 33, + "high": 36 + } + } + ], + "direct_transition": "Administer_Medications" + }, + "Delay_One_Day": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "days" + }, + "direct_transition": "Consult_Referral_to_Experts_Encounter" + }, + "End Any Active Encounter Just In Case": { + "type": "EncounterEnd", + "direct_transition": "Anemia" + }, + "End Encounter After Transfusion": { + "type": "EncounterEnd", + "direct_transition": "Delay_One_Day" + }, + "End Encounter After Medication Rx": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/anemia___unknown_etiology.json b/src/main/resources/modules/anemia___unknown_etiology.json new file mode 100644 index 0000000..f90cdc2 --- /dev/null +++ b/src/main/resources/modules/anemia___unknown_etiology.json @@ -0,0 +1,391 @@ +{ + "name": "Anemia - Unknown Etiology", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "White_Males", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Gender", + "gender": "M" + }, + { + "condition_type": "Race", + "race": "White" + } + ] + } + }, + { + "transition": "White_Females", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Gender", + "gender": "F" + }, + { + "condition_type": "Race", + "race": "White" + } + ] + } + }, + { + "transition": "Black_Males", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Gender", + "gender": "M" + }, + { + "condition_type": "Race", + "race": "Black" + } + ] + } + }, + { + "transition": "Black_Females", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Gender", + "gender": "F" + }, + { + "condition_type": "Race", + "race": "Black" + } + ] + } + }, + { + "transition": "Hispanic_Males", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Gender", + "gender": "M" + }, + { + "condition_type": "Race", + "race": "Hispanic" + } + ] + } + }, + { + "transition": "Hispanic_Females", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Gender", + "gender": "F" + }, + { + "condition_type": "Race", + "race": "Hispanic" + } + ] + } + } + ] + }, + "White_Males": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.0031, + "transition": "Delay_0_14" + }, + { + "distribution": 0.0031, + "transition": "Delay_15-49" + }, + { + "distribution": 0.0215, + "transition": "Delay_50_79" + }, + { + "distribution": 0.0209, + "transition": "Delay_80_85" + }, + { + "transition": "Terminal", + "distribution": 0.9514 + } + ] + }, + "White_Females": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Delay_0_14", + "distribution": 0.0033 + }, + { + "distribution": 0.025, + "transition": "Delay_15-49" + }, + { + "distribution": 0.0216, + "transition": "Delay_50_79" + }, + { + "transition": "Delay_80_85", + "distribution": 0.0142 + }, + { + "transition": "Terminal", + "distribution": 0.9359 + } + ] + }, + "Black_Males": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.0218, + "transition": "Delay_0_14" + }, + { + "distribution": 0.0198, + "transition": "Delay_15-49" + }, + { + "transition": "Delay_50_79", + "distribution": 0.0422 + }, + { + "distribution": 0.0056, + "transition": "Delay_80_85" + }, + { + "transition": "Terminal", + "distribution": 0.9106 + } + ] + }, + "Black_Females": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Delay_0_14", + "distribution": 0.0351 + }, + { + "transition": "Delay_15-49", + "distribution": 0.1309 + }, + { + "distribution": 0.0586, + "transition": "Delay_50_79" + }, + { + "distribution": 0.0093, + "transition": "Delay_80_85" + }, + { + "transition": "Terminal", + "distribution": 0.7661 + } + ] + }, + "Hispanic_Males": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.007, + "transition": "Delay_0_14" + }, + { + "distribution": 0.003, + "transition": "Delay_15-49" + }, + { + "distribution": 0.0124, + "transition": "Delay_50_79" + }, + { + "distribution": 0.0024, + "transition": "Delay_80_85" + }, + { + "transition": "Terminal", + "distribution": 0.9752 + } + ] + }, + "Hispanic_Females": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.0116, + "transition": "Delay_0_14" + }, + { + "distribution": 0.0552, + "transition": "Delay_15-49" + }, + { + "distribution": 0.0217, + "transition": "Delay_50_79" + }, + { + "distribution": 0.004, + "transition": "Delay_80_85" + }, + { + "transition": "Terminal", + "distribution": 0.9075 + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Fatigue": { + "type": "Symptom", + "symptom": "Fatigue", + "cause": "", + "direct_transition": "Check_Anemia_Exist", + "exact": { + "quantity": 1 + } + }, + "SOB": { + "type": "Symptom", + "symptom": "Shortness of breath", + "cause": "", + "exact": { + "quantity": 1 + }, + "direct_transition": "Next_Symptom_2" + }, + "Anemia_Submodule": { + "type": "CallSubmodule", + "submodule": "anemia/anemia_sub", + "direct_transition": "Anemia_End" + }, + "Delay_0_14": { + "type": "Delay", + "direct_transition": "Anemia_Risk_Group", + "range": { + "low": 0, + "high": 14, + "unit": "years" + } + }, + "Delay_15-49": { + "type": "Delay", + "direct_transition": "Anemia_Risk_Group", + "range": { + "low": 15, + "high": 49, + "unit": "years" + } + }, + "Delay_50_79": { + "type": "Delay", + "direct_transition": "Anemia_Risk_Group", + "range": { + "low": 50, + "high": 79, + "unit": "years" + } + }, + "Delay_80_85": { + "type": "Delay", + "direct_transition": "Anemia_Risk_Group", + "range": { + "low": 80, + "high": 85, + "unit": "years" + } + }, + "Tachycardia": { + "type": "Symptom", + "symptom": "Tachycardia", + "cause": "", + "exact": { + "quantity": 1 + }, + "direct_transition": "Next_Symptom_1" + }, + "Anemia_Risk_Group": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Tachycardia", + "distribution": 0.15 + }, + { + "transition": "Next_Symptom_1", + "distribution": 0.85 + } + ] + }, + "Next_Symptom_1": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "SOB", + "distribution": 0.1 + }, + { + "transition": "Next_Symptom_2", + "distribution": 0.9 + } + ] + }, + "Next_Symptom_2": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Fatigue", + "distribution": 0.15 + }, + { + "transition": "Check_Anemia_Exist", + "distribution": 0.85 + } + ] + }, + "Check_Anemia_Exist": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Anemia_Submodule", + "condition": { + "condition_type": "Attribute", + "attribute": "anemia", + "operator": "is nil" + } + }, + { + "transition": "Terminal" + } + ] + }, + "Anemia_End": { + "type": "ConditionEnd", + "direct_transition": "Terminal", + "referenced_by_attribute": "anemia" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/angina_pectoris.json b/src/main/resources/modules/angina_pectoris.json new file mode 100644 index 0000000..f8dd48d --- /dev/null +++ b/src/main/resources/modules/angina_pectoris.json @@ -0,0 +1,598 @@ +{ + "name": "Angina Pectoris", + "remarks": [ + "Angina pectoris is a type of chest pain caused by reduced blood flow to the heart muscle.", + "It is a common symptom of coronary artery disease and often described as a feeling of", + "pressure, heaviness, tightness or pain in the chest.", + "Angina can be stable (predictable pain during exertion) or unstable (occurs at rest or worsening pattern).", + "Information on prevalence, risk factors and treatment obtained from:", + "https://www.ncbi.nlm.nih.gov/books/NBK430728/", + "https://www.ahajournals.org/doi/full/10.1161/CIR.0000000000000743" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + "Angina affects approximately 3.4% of the US population. The incidence increases with age", + "and is slightly higher in men than women until older ages, when rates equalize.", + "Annual incidence is approximately 0.1-0.2% with higher rates in older populations." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "distribution": 0.002, + "transition": "Delay_Until_Angina" + }, + { + "distribution": 0.998, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "distribution": 0.0015, + "transition": "Delay_Until_Angina" + }, + { + "distribution": 0.9985, + "transition": "Terminal" + } + ] + } + ] + }, + "Delay_Until_Angina": { + "type": "Delay", + "range": { + "low": 40, + "high": 85, + "unit": "years" + }, + "direct_transition": "Angina_Onset" + }, + "Angina_Onset": { + "type": "ConditionOnset", + "target_encounter": "Angina_Diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "194828000", + "display": "Angina pectoris (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I20.9", + "display": "Angina pectoris, unspecified" + } + ], + "direct_transition": "Angina_Type_Decision" + }, + "Angina_Type_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.8, + "transition": "Stable_Angina" + }, + { + "distribution": 0.2, + "transition": "Unstable_Angina" + } + ] + }, + "Stable_Angina": { + "type": "ConditionOnset", + "assign_to_attribute": "angina_type", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29562005", + "display": "Stable angina (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I20.8", + "display": "Other forms of angina pectoris" + } + ], + "direct_transition": "Angina_Symptom_Chest_Pain" + }, + "Unstable_Angina": { + "type": "ConditionOnset", + "assign_to_attribute": "angina_type", + "codes": [ + { + "system": "SNOMED-CT", + "code": "4557003", + "display": "Preinfarction syndrome (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I20.0", + "display": "Unstable angina" + } + ], + "direct_transition": "Angina_Symptom_Chest_Pain" + }, + "Angina_Symptom_Chest_Pain": { + "type": "Symptom", + "symptom": "Chest Pain", + "range": { + "low": 40, + "high": 90 + }, + "direct_transition": "Angina_Symptom_Shortness_of_Breath" + }, + "Angina_Symptom_Shortness_of_Breath": { + "type": "Symptom", + "symptom": "Shortness of Breath", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "Angina_Symptom_Fatigue" + }, + "Angina_Symptom_Fatigue": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 20, + "high": 60 + }, + "direct_transition": "Angina_Symptom_Nausea" + }, + "Angina_Symptom_Nausea": { + "type": "Symptom", + "symptom": "Nausea", + "range": { + "low": 0, + "high": 40 + }, + "direct_transition": "Angina_Symptom_Sweating" + }, + "Angina_Symptom_Sweating": { + "type": "Symptom", + "symptom": "Sweating", + "range": { + "low": 10, + "high": 50 + }, + "direct_transition": "Angina_Diagnosis" + }, + "Angina_Diagnosis": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Angina_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "angina_type", + "operator": "==", + "value": "Unstable_Angina" + }, + "transition": "Emergency_Encounter" + }, + { + "transition": "Angina_ECG" + } + ] + }, + "Emergency_Encounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "angina_type", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "Angina_ECG" + }, + "Angina_ECG": { + "type": "Procedure", + "reason": "Angina_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29303009", + "display": "Electrocardiographic procedure (procedure)" + } + ], + "duration": { + "low": 10, + "high": 15, + "unit": "minutes" + }, + "direct_transition": "Angina_Lab_Test" + }, + "Angina_Lab_Test": { + "type": "Procedure", + "reason": "Angina_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "275907003", + "display": "Cardiac enzyme measurement (procedure)" + } + ], + "duration": { + "low": 5, + "high": 10, + "unit": "minutes" + }, + "direct_transition": "Angina_Stress_Test_Decision" + }, + "Angina_Stress_Test_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Angina_Stress_Test" + }, + { + "distribution": 0.3, + "transition": "Angina_Treatment_Decision" + } + ] + }, + "Angina_Stress_Test": { + "type": "Procedure", + "reason": "Angina_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "13647002", + "display": "Coronary stress test using bicycle ergometer (procedure)" + } + ], + "duration": { + "low": 30, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "Angina_Treatment_Decision" + }, + "Angina_Treatment_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.85, + "transition": "Angina_Medical_Management" + }, + { + "distribution": 0.15, + "transition": "Angina_Advanced_Treatment" + } + ] + }, + "Angina_Medical_Management": { + "type": "CarePlanStart", + "assign_to_attribute": "angina_careplan", + "reason": "Angina_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "395144009", + "display": "Cardiac patient monitoring (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "229065009", + "display": "Exercise therapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "226234005", + "display": "Healthy diet (finding)" + }, + { + "system": "SNOMED-CT", + "code": "225323000", + "display": "Smoking cessation education (procedure)" + } + ], + "direct_transition": "Angina_Medication" + }, + "Angina_Medication": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.5, + "transition": "Angina_Nitrates" + }, + { + "distribution": 0.3, + "transition": "Angina_Beta_Blockers" + }, + { + "distribution": 0.2, + "transition": "Angina_Calcium_Channel_Blockers" + } + ] + }, + "Angina_Nitrates": { + "type": "MedicationOrder", + "assign_to_attribute": "angina_medication", + "reason": "Angina_Onset", + "codes": [ + { + "system": "RxNorm", + "code": "564666", + "display": "Nitroglycerin 0.4 MG/ACTUAT Mucosal Spray" + } + ], + "direct_transition": "Angina_Aspirin" + }, + "Angina_Beta_Blockers": { + "type": "MedicationOrder", + "assign_to_attribute": "angina_medication", + "reason": "Angina_Onset", + "codes": [ + { + "system": "RxNorm", + "code": "197361", + "display": "Atenolol 50 MG Oral Tablet" + } + ], + "direct_transition": "Angina_Aspirin" + }, + "Angina_Calcium_Channel_Blockers": { + "type": "MedicationOrder", + "assign_to_attribute": "angina_medication", + "reason": "Angina_Onset", + "codes": [ + { + "system": "RxNorm", + "code": "835605", + "display": "Amlodipine 5 MG Oral Tablet" + } + ], + "direct_transition": "Angina_Aspirin" + }, + "Angina_Aspirin": { + "type": "MedicationOrder", + "assign_to_attribute": "angina_aspirin", + "reason": "Angina_Onset", + "codes": [ + { + "system": "RxNorm", + "code": "313782", + "display": "Aspirin 81 MG Oral Tablet" + } + ], + "direct_transition": "Angina_Statin" + }, + "Angina_Statin": { + "type": "MedicationOrder", + "assign_to_attribute": "angina_statin", + "reason": "Angina_Onset", + "codes": [ + { + "system": "RxNorm", + "code": "617311", + "display": "Atorvastatin 10 MG Oral Tablet" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "Angina_Advanced_Treatment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.6, + "transition": "Angina_Cardiac_Catheterization" + }, + { + "distribution": 0.4, + "transition": "Angina_Coronary_Bypass_Assessment" + } + ] + }, + "Angina_Cardiac_Catheterization": { + "type": "Procedure", + "reason": "Angina_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "80146002", + "display": "Cardiac catheterization (procedure)" + } + ], + "duration": { + "low": 1, + "high": 2, + "unit": "hours" + }, + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Angina_PCI" + }, + { + "distribution": 0.3, + "transition": "Angina_Medical_Management" + } + ] + }, + "Angina_PCI": { + "type": "Procedure", + "reason": "Angina_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "415070008", + "display": "Percutaneous coronary intervention (procedure)" + } + ], + "duration": { + "low": 1, + "high": 3, + "unit": "hours" + }, + "direct_transition": "Angina_Medical_Management" + }, + "Angina_Coronary_Bypass_Assessment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.6, + "transition": "Angina_CABG" + }, + { + "distribution": 0.4, + "transition": "Angina_Medical_Management" + } + ] + }, + "Angina_CABG": { + "type": "Procedure", + "reason": "Angina_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "232717009", + "display": "Coronary artery bypass grafting (procedure)" + } + ], + "duration": { + "low": 3, + "high": 5, + "unit": "hours" + }, + "direct_transition": "Angina_Medical_Management" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Followup_Encounter_Delay" + }, + "Followup_Encounter_Delay": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "months" + }, + "direct_transition": "Angina_Followup" + }, + "Angina_Followup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Angina_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.85, + "transition": "Continue_Angina_Management" + }, + { + "distribution": 0.1, + "transition": "Worsen_To_Unstable_Angina" + }, + { + "distribution": 0.05, + "transition": "Progress_To_MI" + } + ] + }, + "Continue_Angina_Management": { + "type": "EncounterEnd", + "direct_transition": "Ongoing_Angina_Care" + }, + "Ongoing_Angina_Care": { + "type": "Delay", + "range": { + "low": 4, + "high": 8, + "unit": "months" + }, + "direct_transition": "Angina_Followup" + }, + "Worsen_To_Unstable_Angina": { + "type": "ConditionEnd", + "condition_onset": "angina_type", + "direct_transition": "Unstable_Angina_Transition" + }, + "Unstable_Angina_Transition": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "angina_type", + "operator": "==", + "value": "Stable_Angina" + }, + "transition": "Unstable_Angina" + }, + { + "transition": "End_Followup_Encounter" + } + ] + }, + "Progress_To_MI": { + "type": "ConditionEnd", + "condition_onset": "Angina_Onset", + "direct_transition": "End_Angina_Medications" + }, + "End_Angina_Medications": { + "type": "MedicationEnd", + "referenced_by_attribute": "angina_medication", + "direct_transition": "End_Angina_Aspirin" + }, + "End_Angina_Aspirin": { + "type": "MedicationEnd", + "referenced_by_attribute": "angina_aspirin", + "direct_transition": "End_Angina_Statin" + }, + "End_Angina_Statin": { + "type": "MedicationEnd", + "referenced_by_attribute": "angina_statin", + "direct_transition": "End_Angina_CarePlan" + }, + "End_Angina_CarePlan": { + "type": "CarePlanEnd", + "referenced_by_attribute": "angina_careplan", + "direct_transition": "End_Followup_Encounter" + }, + "End_Followup_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/anxiety_disorders.json b/src/main/resources/modules/anxiety_disorders.json new file mode 100644 index 0000000..c5cc896 --- /dev/null +++ b/src/main/resources/modules/anxiety_disorders.json @@ -0,0 +1,479 @@ +{ + "name": "Anxiety Disorders", + "gmf_version": 2, + "remarks": [ + "Anxiety disorders are the most common mental health disorders in the US, affecting approximately 19.1% of adults annually.", + "Women are more likely to be diagnosed with anxiety disorders than men (lifetime prevalence: 30.5% vs 19.2%).", + "References: https://www.nimh.nih.gov/health/statistics/any-anxiety-disorder", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3135672/", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4610617/" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "transition": "Female" + }, + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "transition": "Male" + }, + { + "transition": "Terminal" + } + ] + }, + "Female": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.305, + "transition": "Age_Onset_Determination" + }, + { + "distribution": 0.695, + "transition": "Terminal" + } + ], + "remarks": [ + "Lifetime prevalence of anxiety disorders in women is approximately 30.5%", + "Source: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4610617/" + ] + }, + "Male": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.192, + "transition": "Age_Onset_Determination" + }, + { + "distribution": 0.808, + "transition": "Terminal" + } + ], + "remarks": [ + "Lifetime prevalence of anxiety disorders in men is approximately 19.2%", + "Source: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4610617/" + ] + }, + "Age_Onset_Determination": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.25, + "transition": "Childhood_Onset" + }, + { + "distribution": 0.45, + "transition": "Young_Adult_Onset" + }, + { + "distribution": 0.2, + "transition": "Adult_Onset" + }, + { + "distribution": 0.1, + "transition": "Late_Adult_Onset" + } + ], + "remarks": [ + "Anxiety disorders often begin in childhood, adolescence, or early adulthood", + "Median age of onset is 11 years", + "Source: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3135672/" + ] + }, + "Childhood_Onset": { + "type": "Delay", + "range": { + "low": 5, + "high": 17, + "unit": "years" + }, + "direct_transition": "Anxiety_Symptoms_Begin" + }, + "Young_Adult_Onset": { + "type": "Delay", + "range": { + "low": 18, + "high": 30, + "unit": "years" + }, + "direct_transition": "Anxiety_Symptoms_Begin" + }, + "Adult_Onset": { + "type": "Delay", + "range": { + "low": 31, + "high": 50, + "unit": "years" + }, + "direct_transition": "Anxiety_Symptoms_Begin" + }, + "Late_Adult_Onset": { + "type": "Delay", + "range": { + "low": 51, + "high": 75, + "unit": "years" + }, + "direct_transition": "Anxiety_Symptoms_Begin" + }, + "Anxiety_Symptoms_Begin": { + "type": "Symptom", + "symptom": "Excessive Worry", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Anxiety_Symptom_Restlessness" + }, + "Anxiety_Symptom_Restlessness": { + "type": "Symptom", + "symptom": "Restlessness", + "range": { + "low": 40, + "high": 90 + }, + "direct_transition": "Anxiety_Symptom_Fatigue" + }, + "Anxiety_Symptom_Fatigue": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 30, + "high": 80 + }, + "direct_transition": "Anxiety_Symptom_Concentration" + }, + "Anxiety_Symptom_Concentration": { + "type": "Symptom", + "symptom": "Difficulty Concentrating", + "range": { + "low": 30, + "high": 80 + }, + "direct_transition": "Anxiety_Symptom_Irritability" + }, + "Anxiety_Symptom_Irritability": { + "type": "Symptom", + "symptom": "Irritability", + "range": { + "low": 40, + "high": 90 + }, + "direct_transition": "Anxiety_Symptom_Muscle_Tension" + }, + "Anxiety_Symptom_Muscle_Tension": { + "type": "Symptom", + "symptom": "Muscle Tension", + "range": { + "low": 30, + "high": 80 + }, + "direct_transition": "Anxiety_Symptom_Sleep_Problems" + }, + "Anxiety_Symptom_Sleep_Problems": { + "type": "Symptom", + "symptom": "Sleep Problems", + "range": { + "low": 40, + "high": 90 + }, + "direct_transition": "Symptom_Period" + }, + "Symptom_Period": { + "type": "Delay", + "range": { + "low": 2, + "high": 8, + "unit": "weeks" + }, + "direct_transition": "Seek_Care_Decision" + }, + "Seek_Care_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.6, + "transition": "Anxiety_Disorder_Diagnosis" + }, + { + "distribution": 0.4, + "transition": "Untreated_Anxiety" + } + ], + "remarks": [ + "Only about 60% of people with anxiety disorders seek treatment", + "Source: https://www.nimh.nih.gov/health/statistics/any-anxiety-disorder" + ] + }, + "Untreated_Anxiety": { + "type": "Delay", + "range": { + "low": 1, + "high": 10, + "unit": "years" + }, + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Anxiety_Disorder_Diagnosis" + }, + { + "distribution": 0.7, + "transition": "Living_With_Untreated_Anxiety" + } + ], + "remarks": [ + "Some patients may eventually seek care after prolonged symptoms" + ] + }, + "Living_With_Untreated_Anxiety": { + "type": "Simple", + "direct_transition": "Terminal" + }, + "Anxiety_Disorder_Diagnosis": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Excessive Worry", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Anxiety_Disorder_Onset" + }, + "Anxiety_Disorder_Onset": { + "type": "ConditionOnset", + "target_encounter": "Anxiety_Disorder_Diagnosis", + "assign_to_attribute": "anxiety_disorder", + "codes": [ + { + "system": "SNOMED-CT", + "code": "197480006", + "display": "Anxiety disorder (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "F41.9", + "display": "Anxiety disorder, unspecified" + } + ], + "direct_transition": "Anxiety_Screening" + }, + "Anxiety_Screening": { + "type": "Procedure", + "target_encounter": "Anxiety_Disorder_Diagnosis", + "reason": "anxiety_disorder", + "codes": [ + { + "system": "LOINC", + "code": "70274-6", + "display": "Generalized anxiety disorder 7 item (GAD-7) total score [Reported]" + } + ], + "direct_transition": "Treatment_Decision" + }, + "Treatment_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.5, + "transition": "Medication_Treatment" + }, + { + "distribution": 0.3, + "transition": "Therapy_Treatment" + }, + { + "distribution": 0.2, + "transition": "Combined_Treatment" + } + ], + "remarks": [ + "Treatment approaches vary based on severity, patient preference, and provider recommendation" + ] + }, + "Medication_Treatment": { + "type": "MedicationOrder", + "target_encounter": "Anxiety_Disorder_Diagnosis", + "reason": "anxiety_disorder", + "codes": [ + { + "system": "RxNorm", + "code": "866924", + "display": "Sertraline 50 MG Oral Tablet" + } + ], + "direct_transition": "Follow_Up_Encounter" + }, + "Therapy_Treatment": { + "type": "Procedure", + "target_encounter": "Anxiety_Disorder_Diagnosis", + "reason": "anxiety_disorder", + "codes": [ + { + "system": "SNOMED-CT", + "code": "304891004", + "display": "Cognitive behavioral therapy (procedure)" + } + ], + "direct_transition": "Follow_Up_Encounter" + }, + "Combined_Treatment": { + "type": "MedicationOrder", + "target_encounter": "Anxiety_Disorder_Diagnosis", + "reason": "anxiety_disorder", + "codes": [ + { + "system": "RxNorm", + "code": "866924", + "display": "Sertraline 50 MG Oral Tablet" + } + ], + "direct_transition": "Add_Therapy" + }, + "Add_Therapy": { + "type": "Procedure", + "target_encounter": "Anxiety_Disorder_Diagnosis", + "reason": "anxiety_disorder", + "codes": [ + { + "system": "SNOMED-CT", + "code": "304891004", + "display": "Cognitive behavioral therapy (procedure)" + } + ], + "direct_transition": "Follow_Up_Encounter" + }, + "Follow_Up_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "anxiety_disorder", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "End_Initial_Encounter" + }, + "End_Initial_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Anxiety_Symptom_Improvement" + }, + "Anxiety_Symptom_Improvement": { + "type": "Delay", + "range": { + "low": 4, + "high": 12, + "unit": "weeks" + }, + "direct_transition": "Reduce_Excessive_Worry" + }, + "Reduce_Excessive_Worry": { + "type": "Symptom", + "symptom": "Excessive Worry", + "range": { + "low": 10, + "high": 50 + }, + "direct_transition": "Reduce_Restlessness" + }, + "Reduce_Restlessness": { + "type": "Symptom", + "symptom": "Restlessness", + "range": { + "low": 10, + "high": 40 + }, + "direct_transition": "Reduce_Fatigue" + }, + "Reduce_Fatigue": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 10, + "high": 40 + }, + "direct_transition": "Reduce_Concentration_Issues" + }, + "Reduce_Concentration_Issues": { + "type": "Symptom", + "symptom": "Difficulty Concentrating", + "range": { + "low": 10, + "high": 40 + }, + "direct_transition": "Reduce_Irritability" + }, + "Reduce_Irritability": { + "type": "Symptom", + "symptom": "Irritability", + "range": { + "low": 10, + "high": 40 + }, + "direct_transition": "Reduce_Muscle_Tension" + }, + "Reduce_Muscle_Tension": { + "type": "Symptom", + "symptom": "Muscle Tension", + "range": { + "low": 10, + "high": 40 + }, + "direct_transition": "Reduce_Sleep_Problems" + }, + "Reduce_Sleep_Problems": { + "type": "Symptom", + "symptom": "Sleep Problems", + "range": { + "low": 10, + "high": 40 + }, + "direct_transition": "Ongoing_Care" + }, + "Ongoing_Care": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Maintenance_Phase" + }, + { + "distribution": 0.2, + "transition": "Relapse" + }, + { + "distribution": 0.1, + "transition": "Remission" + } + ], + "remarks": [ + "Most patients require ongoing treatment, some experience relapse, and a small percentage achieve full remission" + ] + }, + "Maintenance_Phase": { + "type": "Delay", + "range": { + "low": 6, + "high": 24, + "unit": "months" + }, + "direct_transition": "Maintenance_Encounter" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/appendicitis.json b/src/main/resources/modules/appendicitis.json new file mode 100644 index 0000000..06e1b84 --- /dev/null +++ b/src/main/resources/modules/appendicitis.json @@ -0,0 +1,402 @@ +{ + "name": "Appendicitis", + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "transition": "Male" + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "transition": "Female" + }, + { + "transition": "Terminal" + } + ] + }, + "Male": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.086, + "transition": "Pre_appendicitis" + }, + { + "distribution": 0.914, + "transition": "Terminal" + } + ], + "remarks": [ + "Men have an approx lifetime risk of appendicitis of 8.6%. Ref: http://www.ncbi.nlm.nih.gov/pubmed/2239906" + ] + }, + "Female": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.067, + "transition": "Pre_appendicitis" + }, + { + "distribution": 0.933, + "transition": "Terminal" + } + ], + "remarks": [ + "Women have an approx lifetime risk of appendicitis of 6.7%. Ref: http://www.ncbi.nlm.nih.gov/pubmed/2239906" + ] + }, + "Pre_appendicitis": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.263, + "transition": "Ages_1_17" + }, + { + "distribution": 0.423, + "transition": "Ages_18_44" + }, + { + "distribution": 0.221, + "transition": "Ages_45_64" + }, + { + "distribution": 0.093, + "transition": "Ages_65_Plus" + } + ], + "remarks": [ + "Age distribution of appendicitis from https://www.ncbi.nlm.nih.gov/books/NBK169006/ , Table 1" + ] + }, + "Ages_1_17": { + "type": "Delay", + "range": { + "low": 1, + "high": 17, + "unit": "years" + }, + "direct_transition": "Appendicitis_Symptom1" + }, + "Ages_18_44": { + "type": "Delay", + "range": { + "low": 18, + "high": 44, + "unit": "years" + }, + "direct_transition": "Appendicitis_Symptom1" + }, + "Ages_45_64": { + "type": "Delay", + "range": { + "low": 45, + "high": 64, + "unit": "years" + }, + "direct_transition": "Appendicitis_Symptom1" + }, + "Ages_65_Plus": { + "type": "Delay", + "range": { + "low": 65, + "high": 99, + "unit": "years" + }, + "direct_transition": "Appendicitis_Symptom1" + }, + "Appendicitis_Symptom1": { + "type": "Symptom", + "symptom": "Abdominal Pain", + "range": { + "low": 50, + "high": 150 + }, + "direct_transition": "Appendicitis_Symptom2" + }, + "Appendicitis_Symptom2": { + "type": "Symptom", + "symptom": "Fever", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Appendicitis_Symptom3" + }, + "Appendicitis_Symptom3": { + "type": "Symptom", + "symptom": "Loss of Appetite", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Appendicitis_Symptom4" + }, + "Appendicitis_Symptom4": { + "type": "Symptom", + "symptom": "Nausea/Vomiting", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Appendicitis_Symptom5" + }, + "Appendicitis_Symptom5": { + "type": "Symptom", + "symptom": "Diarrhea", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Appendicitis_Symptom6" + }, + "Appendicitis_Symptom6": { + "type": "Symptom", + "symptom": "Bloating/Gas", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Appendicitis_Symptom7" + }, + "Appendicitis_Symptom7": { + "type": "Symptom", + "symptom": "Constipation", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Symptom_Period" + }, + "Symptom_Period": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "days" + }, + "direct_transition": "Appendicitis" + }, + "Appendicitis": { + "type": "ConditionOnset", + "target_encounter": "Appendicitis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "74400008", + "display": "Appendicitis (disorder)" + } + ], + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Appendicitis_Encounter" + }, + { + "distribution": 0.3, + "transition": "Rupture" + } + ], + "remarks": [ + "The rate of perforation varies from 16% to 40%, with a higher frequency occurring in younger age groups (40-57%)", + "and in patients older than 50 years (55-70%), in whom misdiagnosis and delayed diagnosis are common.", + "(ref: http://emedicine.medscape.com/article/773895-overview#a7 )", + "From table 1 here: https://www.ncbi.nlm.nih.gov/books/NBK169006/ it's about 30%", + "For simplicity here I just round to 30% for all age groups." + ] + }, + "Rupture": { + "type": "ConditionOnset", + "target_encounter": "Appendicitis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "47693006", + "display": "Rupture of appendix (disorder)" + } + ], + "direct_transition": "Appendicitis_Encounter" + }, + "Appendicitis_Encounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "Appendicitis", + "remarks": [ + "Currently the GMF does not include Vital Signs, if we decide to add that then there are some lab tests we could add at this Encounter." + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "History_of_Appendectomy" + }, + "History_of_Appendectomy": { + "type": "ConditionOnset", + "target_encounter": "Appendectomy_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "428251008", + "display": "History of appendectomy (situation)" + } + ], + "direct_transition": "Transfer_To_Inpatient" + }, + "Appendectomy_Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "Appendicitis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Appendectomy" + }, + "Appendectomy": { + "type": "Procedure", + "reason": "Appendicitis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "80146002", + "display": "Excision of appendix (procedure)" + } + ], + "duration": { + "low": 40, + "high": 70, + "unit": "minutes" + }, + "remarks": [ + "Avg operative time is ~55 minutes", + "https://www.ncbi.nlm.nih.gov/pubmed/17658102" + ], + "direct_transition": "End_Appendicitis" + }, + "Appendicitis_Symptom1_Ends": { + "type": "Symptom", + "symptom": "Abdominal Pain", + "exact": { + "quantity": 0 + }, + "direct_transition": "Appendicitis_Symptom2_Ends" + }, + "Appendicitis_Symptom2_Ends": { + "type": "Symptom", + "symptom": "Fever", + "exact": { + "quantity": 0 + }, + "direct_transition": "Appendicitis_Symptom3_Ends" + }, + "Appendicitis_Symptom3_Ends": { + "type": "Symptom", + "symptom": "Loss of Appetite", + "exact": { + "quantity": 0 + }, + "direct_transition": "Appendicitis_Symptom4_Ends" + }, + "Appendicitis_Symptom4_Ends": { + "type": "Symptom", + "symptom": "Nausea/Vomiting", + "exact": { + "quantity": 0 + }, + "direct_transition": "Appendicitis_Symptom5_Ends" + }, + "Appendicitis_Symptom5_Ends": { + "type": "Symptom", + "symptom": "Diarrhea", + "exact": { + "quantity": 0 + }, + "direct_transition": "Appendicitis_Symptom6_Ends" + }, + "Appendicitis_Symptom6_Ends": { + "type": "Symptom", + "symptom": "Bloating/Gas", + "exact": { + "quantity": 0 + }, + "direct_transition": "Appendicitis_Symptom7_Ends" + }, + "Appendicitis_Symptom7_Ends": { + "type": "Symptom", + "symptom": "Constipation", + "exact": { + "quantity": 0 + }, + "direct_transition": "Recovery" + }, + "Recovery": { + "type": "Delay", + "range": { + "low": 1, + "high": 5, + "unit": "days" + }, + "remarks": [ + "Traditionally, patients are hospitalized for 24 hours after laparoscopic appendectomy. ", + "A retrospective review of 119 patients [...] ", + "Forty-two patients were dismissed on the day of surgery and 77 were admitted for 1 to 5 days postoperatively.", + "https://www.ncbi.nlm.nih.gov/pubmed/22369831" + ], + "direct_transition": "End_Appendectomy_Encounter" + }, + "End_Appendectomy_Encounter": { + "type": "EncounterEnd", + "discharge_disposition": { + "system": "NUBC", + "code": "01", + "display": "Discharged to home care or self care (routine discharge)" + }, + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + }, + "Transfer_To_Inpatient": { + "type": "EncounterEnd", + "direct_transition": "Appendectomy_Encounter" + }, + "End_Appendicitis": { + "type": "ConditionEnd", + "condition_onset": "Appendicitis", + "conditional_transition": [ + { + "transition": "End_Rupture", + "condition": { + "condition_type": "PriorState", + "name": "Rupture" + } + }, + { + "transition": "Appendicitis_Symptom1_Ends" + } + ] + }, + "End_Rupture": { + "type": "ConditionEnd", + "direct_transition": "Appendicitis_Symptom1_Ends", + "condition_onset": "Rupture" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/asthma.json b/src/main/resources/modules/asthma.json new file mode 100644 index 0000000..2e6e2b3 --- /dev/null +++ b/src/main/resources/modules/asthma.json @@ -0,0 +1,593 @@ +{ + "name": "Asthma", + "remarks": [ + "This module is mostly based on statistics from the AAAAI and CDC. See:", + "http://www.aaaai.org/about-aaaai/newsroom/asthma-statistics", + "http://www.cdc.gov/nchs/fastats/asthma.htm", + "http://www.cdc.gov/nchs/products/databriefs/db94.htm" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Delay_For_Atopy" + }, + "Delay_For_Atopy": { + "type": "Delay", + "remarks": [ + "The Atopy module must be processed before any of the allergy modules so ", + "atopy can appropriately influence allergies. Delaying the smallest possible ", + "time step to ensure this happens." + ], + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "transition": "Atopic" + }, + { + "transition": "Not_Atopic" + } + ] + }, + "Atopic": { + "type": "Simple", + "remarks": [ + "45% of all atopic patients develop asthma. See the Atopy model for more info." + ], + "distributed_transition": [ + { + "distribution": 0.45, + "transition": "Asthma_Incidence" + }, + { + "distribution": 0.55, + "transition": "Terminal" + } + ] + }, + "Not_Atopic": { + "type": "Simple", + "remarks": [ + "There is a possibility that non-atopic patients develop asthma. However, ", + "this asthma is likely more environmental and more likely to develop in ", + "adulthood. Overall, 8-9% of the population gets asthma. In this model 6.8% ", + "of those patients are atopic. The remaining 1.2-2% are not." + ], + "distributed_transition": [ + { + "distribution": 0.023, + "transition": "Asthma_Incidence" + }, + { + "distribution": 0.977, + "transition": "Terminal" + } + ] + }, + "Asthma_Incidence": { + "type": "Simple", + "remarks": [ + "8.6% of children have asthma, 7.4% of adults. To model childhood-only, lifetime, and adult-onset", + "asthma I try to distribute the patients in a reasonable (but slightly arbitrary) manner:", + " ,-> 1.6% childhood-only ", + " birth --> 7.0% lifetime = 8.6% childhood asthma", + " `-> 0.4% adult-onset = 7.4% adult asthma ", + "Collectively this sums to 9% of people getting asthma in their lifetime, which is consistent with", + "my extrapolation based on the AAAAI's estimates: (1/14 had asthma in 2001, 1/12 in 2009, so I extrapolate", + "1/11 for 2016)." + ], + "distributed_transition": [ + { + "distribution": 0.95, + "transition": "Delay_For_Childhood_Asthma" + }, + { + "distribution": 0.05, + "transition": "Delay_Until_Adulthood" + } + ] + }, + "Delay_For_Childhood_Asthma": { + "type": "Delay", + "remarks": [ + "Typically asthma symptoms don't appear until the child is at least 3." + ], + "range": { + "low": 2, + "high": 5, + "unit": "years" + }, + "direct_transition": "Childhood_Asthma_Begins" + }, + "Delay_Until_Adulthood": { + "type": "Delay", + "range": { + "low": 18, + "high": 40, + "unit": "years" + }, + "direct_transition": "Adult_Asthma_Begins" + }, + "Childhood_Asthma_Begins": { + "type": "ConditionOnset", + "target_encounter": "Asthma_Diagnosis", + "assign_to_attribute": "asthma_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "233678006", + "display": "Childhood asthma (disorder)" + } + ], + "direct_transition": "Set_Childhood_Asthma" + }, + "Set_Childhood_Asthma": { + "type": "SetAttribute", + "attribute": "asthma_type", + "value": "childhood", + "direct_transition": "Asthma_Diagnosis" + }, + "Adult_Asthma_Begins": { + "type": "ConditionOnset", + "target_encounter": "Asthma_Diagnosis", + "assign_to_attribute": "asthma_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "195967001", + "display": "Asthma (disorder)" + } + ], + "direct_transition": "Set_Adult_Asthma" + }, + "Set_Adult_Asthma": { + "type": "SetAttribute", + "attribute": "asthma_type", + "value": "lifelong", + "direct_transition": "Asthma_Diagnosis" + }, + "Asthma_Diagnosis": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "asthma_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "direct_transition": "Asthma_Symptom1" + }, + "Asthma_Symptom1": { + "type": "Symptom", + "symptom": "Wheezing", + "range": { + "low": 25, + "high": 75 + }, + "direct_transition": "Asthma_Symptom2" + }, + "Asthma_Symptom2": { + "type": "Symptom", + "symptom": "Shortness of Breath", + "range": { + "low": 25, + "high": 75 + }, + "direct_transition": "Asthma_Symptom3" + }, + "Asthma_Symptom3": { + "type": "Symptom", + "symptom": "Chest Pressure", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Asthma_Symptom4" + }, + "Asthma_Symptom4": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 0, + "high": 25 + }, + "direct_transition": "Asthma_Symptom5" + }, + "Asthma_Symptom5": { + "type": "Symptom", + "symptom": "Nasal Congestion", + "range": { + "low": 0, + "high": 25 + }, + "direct_transition": "Asthma_Symptom6" + }, + "Asthma_Symptom6": { + "type": "Symptom", + "symptom": "Mucus Secretion", + "range": { + "low": 0, + "high": 25 + }, + "direct_transition": "Asthma_Screening" + }, + "Asthma_Screening": { + "type": "Procedure", + "reason": "asthma_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "171231001", + "display": "Asthma screening (procedure)" + } + ], + "direct_transition": "Prescribe_Maintenance_Inhaler" + }, + "Prescribe_Maintenance_Inhaler": { + "type": "CallSubmodule", + "submodule": "medications/maintenance_inhaler", + "direct_transition": "Prescribe_Emergency_Inhaler" + }, + "Prescribe_Emergency_Inhaler": { + "type": "CallSubmodule", + "submodule": "medications/emergency_inhaler", + "direct_transition": "Asthma_CarePlan_Selector" + }, + "Asthma_CarePlan_Selector": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years" + }, + { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "==", + "value": true + } + ] + }, + "transition": "Smoker_CarePlan" + }, + { + "transition": "Nonsmoker_CarePlan" + } + ] + }, + "Smoker_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "asthma_careplan", + "reason": "asthma_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "699728000", + "display": "Asthma self management (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "710081004", + "display": "Smoking cessation therapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "710818004", + "display": "Inhaled steroid therapy (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "708409001", + "display": "Home nebulizer therapy (procedure)" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "Nonsmoker_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "asthma_careplan", + "reason": "asthma_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "699728000", + "display": "Asthma self management (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "710818004", + "display": "Inhaled steroid therapy (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "708409001", + "display": "Home nebulizer therapy (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "229298005", + "display": "Breathing control (regime/therapy)" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Maintaining_Asthma" + }, + "Maintaining_Asthma": { + "type": "Delay", + "exact": { + "quantity": 6, + "unit": "months" + }, + "conditional_transition": [ + { + "condition": { + "remarks": [ + "Childhood-only asthma ends" + ], + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">", + "quantity": 18, + "unit": "years" + }, + { + "condition_type": "Attribute", + "attribute": "asthma_type", + "operator": "==", + "value": "childhood" + } + ] + }, + "transition": "Childhood_Asthma_May_Subside" + }, + { + "transition": "Potential_Asthma_Attack" + } + ] + }, + "Childhood_Asthma_May_Subside": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.83, + "transition": "Childhood_Asthma_Becomes_Lifelong_Asthma" + }, + { + "distribution": 0.17, + "transition": "Next_Wellness_Encounter" + } + ], + "remarks": [ + "After a validation study, 248 children were identified as having asthma; these children were reassessed annually until age 19 years when 205 (83%) remained.", + "\"Remission and persistence of asthma followed from 7 to 19 years of age.\" Andersson M, Hedman L, Bjerg A, Forsberg B, Lundbäck B, Rönmark E. Pediatrics. 2013 Aug;132(2):e435-42. doi: 10.1542/peds.2013-0741.", + "https://www.ncbi.nlm.nih.gov/pubmed/23897917" + ] + }, + "Childhood_Asthma_Becomes_Lifelong_Asthma": { + "type": "ConditionEnd", + "referenced_by_attribute": "asthma_condition", + "direct_transition": "Lifelong_Asthma" + }, + "Lifelong_Asthma": { + "type": "SetAttribute", + "attribute": "asthma_type", + "value": "lifelong", + "direct_transition": "Next_Adult_Welness_Encounter" + }, + "Next_Adult_Welness_Encounter": { + "type": "Encounter", + "wellness": true, + "direct_transition": "Lifelong_Asthma_Begins", + "reason": "asthma_condition" + }, + "Lifelong_Asthma_Begins": { + "type": "ConditionOnset", + "target_encounter": "Next_Adult_Welness_Encounter", + "assign_to_attribute": "asthma_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "195967001", + "display": "Asthma (disorder)" + } + ], + "direct_transition": "End_Wellness_1" + }, + "Potential_Asthma_Attack": { + "type": "Simple", + "remarks": [ + "Once every 6 months we simulate whether or not the patient has an asthma attack", + "53% have an attack each year (57% children, 51% adults), source: AAAAI.", + "This means a 26.5% rate of attack per 6 month period." + ], + "distributed_transition": [ + { + "distribution": 0.735, + "transition": "Maintaining_Asthma", + "remarks": [ + "No asthma attack occured" + ] + }, + { + "distribution": 0.265, + "transition": "Asthma_Attack" + } + ] + }, + "Asthma_Attack": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.1885, + "transition": "Asthma_ED_Visit", + "remarks": [ + "The CDC documented 10 ED visits per 100 people with asthma each year.", + "http://www.cdc.gov/nchs/products/databriefs/db94.htm", + "Assuming hospitalization always comes from an attack, for those that have attacks each 6-month period (26.5%)", + "5/26.5 people (per 100) --> 18.85% rate of hospitalization from attack." + ] + }, + { + "distribution": 0.8115, + "transition": "Asthma_Attack_Followup", + "remarks": [ + "If the attack did not result in an ED visit the patient still visited his/her physician for a followup" + ] + } + ] + }, + "Asthma_ED_Visit": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "asthma_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183478001", + "display": "Emergency hospital admission for asthma (procedure)" + } + ], + "direct_transition": "End_Asthma_ED_Visit" + }, + "End_Asthma_ED_Visit": { + "type": "EncounterEnd", + "direct_transition": "Delay_For_Followup" + }, + "Delay_For_Followup": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "days" + }, + "direct_transition": "Asthma_Attack_Followup" + }, + "Asthma_Attack_Followup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "asthma_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "394701000", + "display": "Asthma follow-up (regime/therapy)" + } + ], + "direct_transition": "Followup_End" + }, + "Followup_End": { + "type": "EncounterEnd", + "direct_transition": "Maintaining_Asthma" + }, + "Next_Wellness_Encounter": { + "type": "Encounter", + "wellness": true, + "direct_transition": "Maintenance_Medication_End", + "reason": "asthma_condition" + }, + "Maintenance_Medication_End": { + "type": "MedicationEnd", + "referenced_by_attribute": "maintenance_inhaler", + "direct_transition": "Emergency_Medication_End" + }, + "Emergency_Medication_End": { + "type": "MedicationEnd", + "referenced_by_attribute": "emergency_inhaler", + "direct_transition": "Childhood_Asthma_Subsides" + }, + "Childhood_Asthma_Subsides": { + "type": "ConditionEnd", + "referenced_by_attribute": "asthma_condition", + "direct_transition": "Asthma_Symptom1_Ends" + }, + "Asthma_Symptom1_Ends": { + "type": "Symptom", + "symptom": "Wheezing", + "exact": { + "quantity": 0 + }, + "direct_transition": "Asthma_Symptom2_Ends" + }, + "Asthma_Symptom2_Ends": { + "type": "Symptom", + "symptom": "Shortness of Breath", + "exact": { + "quantity": 0 + }, + "direct_transition": "Asthma_Symptom3_Ends" + }, + "Asthma_Symptom3_Ends": { + "type": "Symptom", + "symptom": "Chest Pressure", + "exact": { + "quantity": 0 + }, + "direct_transition": "Asthma_Symptom4_Ends" + }, + "Asthma_Symptom4_Ends": { + "type": "Symptom", + "symptom": "Cough", + "exact": { + "quantity": 0 + }, + "direct_transition": "Asthma_Symptom5_Ends" + }, + "Asthma_Symptom5_Ends": { + "type": "Symptom", + "symptom": "Nasal Congestion", + "exact": { + "quantity": 0 + }, + "direct_transition": "Asthma_Symptom6_Ends" + }, + "Asthma_Symptom6_Ends": { + "type": "Symptom", + "symptom": "Mucus Secretion", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Asthma_CarePlan" + }, + "End_Asthma_CarePlan": { + "type": "CarePlanEnd", + "referenced_by_attribute": "asthma_careplan", + "direct_transition": "End_Wellness_2" + }, + "Terminal": { + "type": "Terminal" + }, + "End_Wellness_1": { + "type": "EncounterEnd", + "direct_transition": "Maintaining_Asthma" + }, + "End_Wellness_2": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/atopy.json b/src/main/resources/modules/atopy.json new file mode 100644 index 0000000..627077e --- /dev/null +++ b/src/main/resources/modules/atopy.json @@ -0,0 +1,196 @@ +{ + "name": "Atopy", + "remarks": [ + "'Atopy' specifically refers to the genetic tendency to develop allergic diseases.", + "https://www.aaaai.org/conditions-and-treatments/conditions-dictionary/atopy", + "Atopy is the most significant factor in the 'atopic triad' of: ", + "1. Atopic Dermatitis (Eczema) ", + "2. Asthma ", + "3. Environmental and Food Allergies ", + "4. Allergic Rhinitis (Hay Fever) ", + "Okay... so maybe the atopic triad could be a 'quartet'.", + "Up to 20% of children display signs of atopy, 50% by age 1 and 95% by age 5.", + "75% of children with atopic symptoms outgrow them by adolescence or early ", + "adulthood. However, 25% show symptoms for life. It is of course possible to be ", + "non-atopic and still develop allergies and asthma.", + "The prevalence of atopy and allergies has increased substantially in the 20th ", + "century, especially after the 1960's, typically at a rate of 0.15 - 0.3% per ", + "year. To model this historical increase in allergy prevalence atopy is the driving ", + "factor. In this model the incidence of atopy increases at 1.875% per decade, or about ", + "0.19% per year since 1940.", + "Source: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4629767/", + "There is a complex relationship between allergies, asthma, and eczema.", + "In a word, those with atopy have a significantly increased risk of severe ", + "and moderate allergies.", + "The final model: ", + " Total ,--> 85% Allergic Rhinitis (12.8% overall)", + " Population ---> 15% ATOPIC ---> 55% Atopic Dermatitis (8.25% overall)", + " |`--> 45% Asthma (6.75% overall)", + " `---> 25% Food & Environmental Allergies (3.75% overall)", + "Above, 15% of all people are atopic by 2010." + ], + "states": { + "Initial": { + "type": "Initial", + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1940 + }, + "distributions": [ + { + "distribution": 1, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1950 + }, + "distributions": [ + { + "distribution": 0.01875, + "transition": "Is_Atopic" + }, + { + "distribution": 0.98125, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1960 + }, + "distributions": [ + { + "distribution": 0.0375, + "transition": "Is_Atopic" + }, + { + "distribution": 0.9625, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1970 + }, + "distributions": [ + { + "distribution": 0.05625, + "transition": "Is_Atopic" + }, + { + "distribution": 0.94375, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1980 + }, + "distributions": [ + { + "distribution": 0.075, + "transition": "Is_Atopic" + }, + { + "distribution": 0.925, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1990 + }, + "distributions": [ + { + "distribution": 0.09375, + "transition": "Is_Atopic" + }, + { + "distribution": 0.90625, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2000 + }, + "distributions": [ + { + "distribution": 0.1125, + "transition": "Is_Atopic" + }, + { + "distribution": 0.8875, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2010 + }, + "distributions": [ + { + "distribution": 0.13125, + "transition": "Is_Atopic" + }, + { + "distribution": 0.86875, + "transition": "Terminal" + } + ] + }, + { + "remarks": [ + "After 2010, the overall prevalence of atopy settles at 15%." + ], + "distributions": [ + { + "distribution": 0.15, + "transition": "Is_Atopic" + }, + { + "distribution": 0.85, + "transition": "Terminal" + } + ] + } + ] + }, + "Is_Atopic": { + "type": "SetAttribute", + "attribute": "atopic", + "value": true, + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/atrial_fibrillation.json b/src/main/resources/modules/atrial_fibrillation.json new file mode 100644 index 0000000..70ea5e8 --- /dev/null +++ b/src/main/resources/modules/atrial_fibrillation.json @@ -0,0 +1,191 @@ +{ + "name": "Atrial Fibrillation", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "This module is not intended to model clinical workflow, it is intended to funnel eligible patients into heart surgery." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Chance_of_AFib" + }, + "Terminal": { + "type": "Terminal" + }, + "Chance_of_AFib": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "distributed_transition": [ + { + "transition": "Diagnosis", + "distribution": { + "attribute": "atrial_fibrillation_risk", + "default": 0 + } + }, + { + "transition": "Chance_of_AFib", + "distribution": 1 + } + ] + }, + "Diagnosis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "49436004", + "display": "Atrial fibrillation (disorder)" + } + ], + "direct_transition": "Next Wellness Visit", + "target_encounter": "Next Wellness Visit", + "assign_to_attribute": "atrial_fibrillation" + }, + "Next Wellness Visit": { + "type": "Encounter", + "reason": "Diagnosis", + "telemedicine_possibility": "none", + "wellness": true, + "conditional_transition": [ + { + "transition": "Verapamil", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 1981 + } + }, + { + "transition": "Warfarin", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 1954 + } + }, + { + "transition": "Procedure Check" + } + ] + }, + "Warfarin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 855332, + "display": "Warfarin Sodium 5 MG Oral Tablet" + } + ], + "direct_transition": "Digoxin", + "reason": "Diagnosis", + "chronic": true + }, + "Verapamil": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 897685, + "display": "verapamil hydrochloride 80 MG Oral Tablet" + } + ], + "direct_transition": "Warfarin", + "reason": "Diagnosis", + "chronic": true + }, + "Digoxin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 197604, + "display": "Digoxin 0.125 MG Oral Tablet" + } + ], + "reason": "Diagnosis", + "chronic": true, + "direct_transition": "Procedure Check" + }, + "Procedure Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Catheter Ablation", + "distribution": 0.2 + }, + { + "transition": "Electrical Cardioversion", + "distribution": 0.8 + } + ] + }, + "Catheter Ablation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "18286008", + "display": "Catheter ablation of tissue of heart (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "reason": "Diagnosis", + "distributed_transition": [ + { + "transition": "Pacemaker", + "distribution": 0.1 + }, + { + "transition": "End Encounter", + "distribution": 0.9 + } + ] + }, + "Electrical Cardioversion": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "180325003", + "display": "Direct current cardioversion (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "End Encounter", + "reason": "Diagnosis" + }, + "End Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Pacemaker": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "706004007", + "display": "Implantable cardiac pacemaker (physical object)" + }, + "direct_transition": "End Encounter" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/attention_deficit_disorder.json b/src/main/resources/modules/attention_deficit_disorder.json new file mode 100644 index 0000000..afe6792 --- /dev/null +++ b/src/main/resources/modules/attention_deficit_disorder.json @@ -0,0 +1,463 @@ +{ + "name": "Attention Deficit Disorder", + "remarks": [ + "The CDC estimates that 11% of children are diagnosed with ADHD. Althought ADHD ", + "is possible in adults we only model this in children. ", + "Source: http://www.cdc.gov/ncbddd/adhd/data.html" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "The CDC found that 13.2% of boys and 5.6% of girls were diagnosed with ADHD." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "distribution": 0.132, + "transition": "Delay_Until_ADHD" + }, + { + "distribution": 0.868, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "distribution": 0.056, + "transition": "Delay_Until_ADHD" + }, + { + "distribution": 0.944, + "transition": "Terminal" + } + ] + } + ] + }, + "Delay_Until_ADHD": { + "type": "Delay", + "range": { + "low": 7, + "high": 15, + "unit": "years" + }, + "direct_transition": "ADHD" + }, + "ADHD": { + "type": "ConditionOnset", + "target_encounter": "ADHD_Diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "192127007", + "display": "Child attention deficit disorder (disorder)" + } + ], + "direct_transition": "ADHD_Diagnosis" + }, + "ADHD_Diagnosis": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "ADHD", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "ADD_Symptom1" + }, + "ADD_Symptom1": { + "type": "Symptom", + "symptom": "Poor Eye Contact", + "range": { + "low": 0, + "high": 30 + }, + "direct_transition": "ADD_Symptom2" + }, + "ADD_Symptom2": { + "type": "Symptom", + "symptom": "Delayed Verbal/Language Skills", + "range": { + "low": 0, + "high": 30 + }, + "direct_transition": "ADD_Symptom3" + }, + "ADD_Symptom3": { + "type": "Symptom", + "symptom": "Hyperactive Behavior", + "range": { + "low": 0, + "high": 15 + }, + "direct_transition": "ADD_Symptom4" + }, + "ADD_Symptom4": { + "type": "Symptom", + "symptom": "Inability to Focus/Concentrate", + "range": { + "low": 0, + "high": 15 + }, + "direct_transition": "ADD_Symptom5" + }, + "ADD_Symptom5": { + "type": "Symptom", + "symptom": "Poor Socialization", + "range": { + "low": 0, + "high": 15 + }, + "direct_transition": "ADHD_CarePlan" + }, + "ADHD_CarePlan": { + "type": "CarePlanStart", + "reason": "ADHD", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386522008", + "display": "Overactivity/inattention behavior management (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "409063005", + "display": "Counseling (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "405783006", + "display": "Psychological assessment (procedure)" + } + ], + "remarks": [ + "The CDC found that as many as 17.5% of children were not receiving any form of treatment ", + "for their ADHD. Setting this at a round 15%." + ], + "distributed_transition": [ + { + "distribution": 0.15, + "transition": "End_Diagnosis_Encounter_without_BT", + "remarks": [ + "This will just wait until adulthood before ending the ADHD and terminating the module." + ] + }, + { + "distribution": 0.35, + "transition": "End_Diagnosis_Encounter_with_BT", + "remarks": [ + "Additionally 50% of those treated with medication will also receive behavioral ", + "therapy, for about 55% in total." + ] + }, + { + "distribution": 0.5, + "transition": "ADHD_Medication_Selection" + } + ] + }, + "Behavior_Therapy": { + "type": "Delay", + "remarks": [ + "Behavior therapy is favored over medication. We give behavior therapy for ", + "awhile, until the patient reaches adulthood or the condition subsides." + ], + "range": { + "low": 4, + "high": 6, + "unit": "weeks" + }, + "direct_transition": "Behavior_Treatment_Encounter" + }, + "Behavior_Treatment_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "ADHD", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Behavior_Treatment_Procedure" + }, + "Behavior_Treatment_Procedure": { + "type": "Procedure", + "reason": "ADHD", + "codes": [ + { + "system": "SNOMED-CT", + "code": "228557008", + "display": "Cognitive and behavioral therapy (regime/therapy)" + } + ], + "duration": { + "low": 1, + "high": 1, + "unit": "hours" + }, + "direct_transition": "End_Behavior_Treatment_Encounter" + }, + "End_Behavior_Treatment_Encounter": { + "type": "EncounterEnd", + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 18, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.05, + "transition": "ADHD_Ends", + "remarks": [ + "We give the ADHD a chance to subside (meaning the behavioral treatment ", + "has worked) during childhood. ADHD will eventually subside anyway once ", + "the patient reaches adulthood. " + ] + }, + { + "distribution": 0.95, + "transition": "Behavior_Therapy" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "ADHD_Ends" + } + ] + } + ] + }, + "ADHD_Medication_Selection": { + "type": "Simple", + "remarks": [ + "Ritalin was introduced in 1955. Strattera wasn't approved by the FDA for ", + "treating ADHD until 2006." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1955 + }, + "distributions": [ + { + "distribution": 0.4, + "transition": "End_Diagnosis_Encounter_with_BT", + "remarks": [ + "If no medication is available we defer additional patients to behavioral therapy. ", + "The rest get no form of treatment at all." + ] + }, + { + "distribution": 0.6, + "transition": "End_Diagnosis_Encounter_without_BT" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2006 + }, + "distributions": [ + { + "distribution": 0.6, + "transition": "Ritalin", + "remarks": [ + "Even with Ritalin available not all patients are ideal candidates. ADHD medication ", + "was also prescribed at much lower rates historically. Deferring some of the remaining ", + "patients to behavioral therapy, the rest to no form of treatment." + ] + }, + { + "distribution": 0.15, + "transition": "End_Diagnosis_Encounter_with_BT" + }, + { + "distribution": 0.25, + "transition": "End_Diagnosis_Encounter_without_BT" + } + ] + }, + { + "remarks": [ + "With both Ritalin and Strattera available, and ADHD medication prescribed at the higher ", + "rates of the 2000's all patients that reach this state are now directed to some form of ", + "medication." + ], + "distributions": [ + { + "distribution": 0.5, + "transition": "Ritalin" + }, + { + "distribution": 0.5, + "transition": "Strattera" + } + ] + } + ] + }, + "Ritalin": { + "type": "MedicationOrder", + "assign_to_attribute": "adhd_medication", + "reason": "ADHD", + "codes": [ + { + "system": "RxNorm", + "code": "1091392", + "display": "Methylphenidate Hydrochloride 20 MG Oral Tablet" + } + ], + "distributed_transition": [ + { + "distribution": 0.5, + "transition": "End_Diagnosis_Encounter_with_BT" + }, + { + "distribution": 0.5, + "transition": "End_Diagnosis_Encounter_without_BT" + } + ] + }, + "Strattera": { + "type": "MedicationOrder", + "assign_to_attribute": "adhd_medication", + "reason": "ADHD", + "codes": [ + { + "system": "RxNorm", + "code": "608139", + "display": "atomoxetine 100 MG Oral Capsule" + } + ], + "distributed_transition": [ + { + "distribution": 0.5, + "transition": "End_Diagnosis_Encounter_with_BT" + }, + { + "distribution": 0.5, + "transition": "End_Diagnosis_Encounter_without_BT" + } + ] + }, + "End_Diagnosis_Encounter_without_BT": { + "type": "EncounterEnd", + "direct_transition": "Age_Guard" + }, + "End_Diagnosis_Encounter_with_BT": { + "type": "EncounterEnd", + "direct_transition": "Behavior_Therapy" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years" + }, + "direct_transition": "ADHD_Ends" + }, + "ADHD_Ends": { + "type": "ConditionEnd", + "condition_onset": "ADHD", + "direct_transition": "ADD_Symptom1_Ends" + }, + "ADD_Symptom1_Ends": { + "type": "Symptom", + "symptom": "Poor Eye Contact", + "exact": { + "quantity": 0 + }, + "direct_transition": "ADD_Symptom2_Ends" + }, + "ADD_Symptom2_Ends": { + "type": "Symptom", + "symptom": "Delayed Verbal/Language Skills", + "exact": { + "quantity": 0 + }, + "direct_transition": "ADD_Symptom3_Ends" + }, + "ADD_Symptom3_Ends": { + "type": "Symptom", + "symptom": "Hyperactive Behavior", + "exact": { + "quantity": 0 + }, + "direct_transition": "ADD_Symptom4_Ends" + }, + "ADD_Symptom4_Ends": { + "type": "Symptom", + "symptom": "Inability to Focus/Concentrate", + "exact": { + "quantity": 0 + }, + "direct_transition": "ADD_Symptom5_Ends" + }, + "ADD_Symptom5_Ends": { + "type": "Symptom", + "symptom": "Poor Socialization", + "exact": { + "quantity": 0 + }, + "direct_transition": "ADHD_CarePlan_Ends" + }, + "ADHD_CarePlan_Ends": { + "type": "CarePlanEnd", + "careplan": "ADHD_CarePlan", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "adhd_medication", + "operator": "is not nil" + }, + "transition": "End_ADHD_Medication" + }, + { + "transition": "Terminal" + } + ] + }, + "End_ADHD_Medication": { + "type": "MedicationEnd", + "referenced_by_attribute": "adhd_medication", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/autism_asperger_s_or_autistic_spectrum_disorder.json b/src/main/resources/modules/autism_asperger_s_or_autistic_spectrum_disorder.json new file mode 100644 index 0000000..350d64c --- /dev/null +++ b/src/main/resources/modules/autism_asperger_s_or_autistic_spectrum_disorder.json @@ -0,0 +1,484 @@ +{ + "name": "Autism Spectrum Disorder", + "remarks": [ + "This module models the diagnosis and management of Autism Spectrum Disorder (ASD),", + "including what was previously known as Asperger's Syndrome before DSM-5 unified the diagnosis.", + "ASD is typically diagnosed in early childhood but can be diagnosed later.", + "The module includes screening, diagnosis, interventions, and ongoing management.", + "ICD-10 code: 20544_14", + "Category: Mental and Behavioral Disorders" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "age_years": { + "operator": "<", + "quantity": 3 + } + }, + "direct_transition": "Potential_ASD_Risk" + }, + "Potential_ASD_Risk": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.02, + "transition": "ASD_Prevalence_Gender_Split" + }, + { + "distribution": 0.98, + "transition": "Terminal" + } + ] + }, + "ASD_Prevalence_Gender_Split": { + "type": "Simple", + "remarks": [ + "ASD is approximately 4 times more common in males than females" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "transition": "Initial_Developmental_Concerns" + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "transition": "Female_Prevalence_Check" + } + ] + }, + "Female_Prevalence_Check": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.25, + "transition": "Initial_Developmental_Concerns" + }, + { + "distribution": 0.75, + "transition": "Terminal" + } + ] + }, + "Initial_Developmental_Concerns": { + "type": "Delay", + "range": { + "low": 12, + "high": 24, + "unit": "months" + }, + "direct_transition": "Initial_Pediatric_Visit" + }, + "Initial_Pediatric_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Developmental concerns", + "codes": [ + { + "system": "SNOMED-CT", + "code": "170258001", + "display": "Screening for developmental delay" + } + ], + "direct_transition": "M_CHAT_Screening" + }, + "M_CHAT_Screening": { + "type": "Procedure", + "target_encounter": "Initial_Pediatric_Visit", + "reason": "Developmental screening", + "codes": [ + { + "system": "SNOMED-CT", + "code": "710081004", + "display": "Autism screening using Modified Checklist for Autism in Toddlers" + } + ], + "direct_transition": "Refer_To_Specialist" + }, + "Refer_To_Specialist": { + "type": "Simple", + "direct_transition": "Specialist_Evaluation" + }, + "Specialist_Evaluation": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Autism spectrum disorder evaluation", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Child and Adolescent Psychiatry" + } + ], + "direct_transition": "Comprehensive_Assessment" + }, + "Comprehensive_Assessment": { + "type": "Procedure", + "target_encounter": "Specialist_Evaluation", + "reason": "Autism spectrum disorder evaluation", + "codes": [ + { + "system": "SNOMED-CT", + "code": "385991005", + "display": "Developmental assessment" + } + ], + "direct_transition": "ADOS_Assessment" + }, + "ADOS_Assessment": { + "type": "Procedure", + "target_encounter": "Specialist_Evaluation", + "reason": "Autism spectrum disorder evaluation", + "codes": [ + { + "system": "SNOMED-CT", + "code": "699690005", + "display": "Autism Diagnostic Observation Schedule" + } + ], + "direct_transition": "ASD_Diagnosis" + }, + "ASD_Diagnosis": { + "type": "ConditionOnset", + "target_encounter": "Specialist_Evaluation", + "assign_to_attribute": "asd_diagnosis", + "codes": [ + { + "system": "ICD-10-CM", + "code": "F84.0", + "display": "Autistic disorder" + }, + { + "system": "SNOMED-CT", + "code": "20544_14", + "display": "Autism spectrum disorder" + } + ], + "direct_transition": "ASD_CarePlan" + }, + "ASD_CarePlan": { + "type": "CarePlanStart", + "target_encounter": "Specialist_Evaluation", + "assign_to_attribute": "asd_care_plan", + "reason": "asd_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225337009", + "display": "Autism care plan" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "10298004", + "display": "Speech therapy" + }, + { + "system": "SNOMED-CT", + "code": "311401005", + "display": "Occupational therapy" + }, + { + "system": "SNOMED-CT", + "code": "310092004", + "display": "Behavioral therapy" + } + ], + "direct_transition": "Determine_Severity" + }, + "Determine_Severity": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Mild_ASD" + }, + { + "distribution": 0.4, + "transition": "Moderate_ASD" + }, + { + "distribution": 0.3, + "transition": "Severe_ASD" + } + ] + }, + "Mild_ASD": { + "type": "SetAttribute", + "attribute": "asd_severity", + "value": "mild", + "direct_transition": "Consider_Comorbidities" + }, + "Moderate_ASD": { + "type": "SetAttribute", + "attribute": "asd_severity", + "value": "moderate", + "direct_transition": "Consider_Comorbidities" + }, + "Severe_ASD": { + "type": "SetAttribute", + "attribute": "asd_severity", + "value": "severe", + "direct_transition": "Consider_Comorbidities" + }, + "Consider_Comorbidities": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "ADHD_Comorbidity" + }, + { + "distribution": 0.2, + "transition": "Anxiety_Comorbidity" + }, + { + "distribution": 0.1, + "transition": "Epilepsy_Comorbidity" + }, + { + "distribution": 0.4, + "transition": "End_Initial_Diagnosis" + } + ] + }, + "ADHD_Comorbidity": { + "type": "ConditionOnset", + "target_encounter": "Specialist_Evaluation", + "codes": [ + { + "system": "ICD-10-CM", + "code": "F90.0", + "display": "Attention-deficit hyperactivity disorder, predominantly inattentive type" + } + ], + "direct_transition": "End_Initial_Diagnosis" + }, + "Anxiety_Comorbidity": { + "type": "ConditionOnset", + "target_encounter": "Specialist_Evaluation", + "codes": [ + { + "system": "ICD-10-CM", + "code": "F41.9", + "display": "Anxiety disorder, unspecified" + } + ], + "direct_transition": "End_Initial_Diagnosis" + }, + "Epilepsy_Comorbidity": { + "type": "ConditionOnset", + "target_encounter": "Specialist_Evaluation", + "codes": [ + { + "system": "ICD-10-CM", + "code": "G40.909", + "display": "Epilepsy, unspecified, not intractable, without status epilepticus" + } + ], + "direct_transition": "End_Initial_Diagnosis" + }, + "End_Initial_Diagnosis": { + "type": "Simple", + "direct_transition": "Consider_Medication" + }, + "Consider_Medication": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "asd_severity", + "operator": "==", + "value": "severe" + }, + "transition": "Medication_Decision" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "asd_severity", + "operator": "==", + "value": "moderate" + }, + "transition": "Medication_Decision" + }, + { + "transition": "Ongoing_Therapy" + } + ] + }, + "Medication_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.4, + "transition": "Prescribe_Risperidone" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Aripiprazole" + }, + { + "distribution": 0.3, + "transition": "Ongoing_Therapy" + } + ] + }, + "Prescribe_Risperidone": { + "type": "MedicationOrder", + "reason": "asd_diagnosis", + "codes": [ + { + "system": "RxNorm", + "code": "85071", + "display": "Risperidone" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "years" + }, + "refills": 4 + }, + "direct_transition": "Ongoing_Therapy" + }, + "Prescribe_Aripiprazole": { + "type": "MedicationOrder", + "reason": "asd_diagnosis", + "codes": [ + { + "system": "RxNorm", + "code": "349484", + "display": "Aripiprazole" + } + ], + "prescription": { + "dosage": { + "amount": 5, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "years" + }, + "refills": 4 + }, + "direct_transition": "Ongoing_Therapy" + }, + "Ongoing_Therapy": { + "type": "Delay", + "range": { + "low": 3, + "high": 6, + "unit": "months" + }, + "direct_transition": "ABA_Therapy" + }, + "ABA_Therapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "412779008", + "display": "Applied behavior analysis" + } + ], + "reason": "asd_diagnosis", + "duration": { + "low": 1, + "high": 2, + "unit": "hours" + }, + "direct_transition": "Speech_Therapy" + }, + "Speech_Therapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "10298004", + "display": "Speech therapy" + } + ], + "reason": "asd_diagnosis", + "duration": { + "low": 30, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "Occupational_Therapy" + }, + "Occupational_Therapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "311401005", + "display": "Occupational therapy" + } + ], + "reason": "asd_diagnosis", + "duration": { + "low": 30, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "Follow_Up_Encounter" + }, + "Follow_Up_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "asd_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Child and Adolescent Psychiatry" + } + ], + "direct_transition": "Progress_Assessment" + }, + "Progress_Assessment": { + "type": "Procedure", + "target_encounter": "Follow_Up_Encounter", + "reason": "asd_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "385991005", + "display": "Developmental assessment" + } + ], + "direct_transition": "Ongoing_Care_Loop" + }, + "Ongoing_Care_Loop": { + "type": "Simple", + "direct_transition": "Ongoing_Therapy" + }, + "Terminal": { + "type": "Terminal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/bacterial_pneumonia.json.fixed.raw b/src/main/resources/modules/bacterial_pneumonia.json.fixed.raw new file mode 100644 index 0000000..7233b36 --- /dev/null +++ b/src/main/resources/modules/bacterial_pneumonia.json.fixed.raw @@ -0,0 +1,482 @@ +{ + "name": "Bacterial Pneumonia", + "remarks": [ + "This module simulates the onset, progression, diagnosis, treatment, and management of bacterial pneumonia.", + "Bacterial pneumonia is an infection of the lungs caused by various bacteria, most commonly Streptococcus pneumoniae.", + "Risk factors include age (very young and elderly), smoking, COPD, immunocompromised status, and other chronic conditions.", + "The module includes appropriate diagnostic tests, treatment options, and potential complications." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 1, + "unit": "years" + }, + "direct_transition": "Risk_Assessment" + }, + "Risk_Assessment": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "days" + }, + "distributed_transition": [ + { + "distribution": 0.4, + "transition": "High_Risk_Group" + }, + { + "distribution": 0.6, + "transition": "Normal_Risk_Group" + } + ] + }, + "High_Risk_Group": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Pneumonia_Onset" + }, + { + "distribution": 0.7, + "transition": "Terminal" + } + ] + }, + "Normal_Risk_Group": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.05, + "transition": "Pneumonia_Onset" + }, + { + "distribution": 0.95, + "transition": "Terminal" + } + ] + }, + "Pneumonia_Onset": { + "type": "ConditionOnset", + "target_encounter": "Pneumonia_Encounter", + "assign_to_attribute": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "53084003", + "display": "Bacterial pneumonia" + } + ], + "direct_transition": "Pneumonia_Symptoms" + }, + "Pneumonia_Symptoms": { + "type": "Symptom", + "symptom": "Cough", + "cause": "pneumonia", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Pneumonia_Symptom_Fever" + }, + "Pneumonia_Symptom_Fever": { + "type": "Symptom", + "symptom": "Fever", + "cause": "pneumonia", + "range": { + "low": 60, + "high": 100 + }, + "direct_transition": "Pneumonia_Symptom_Dyspnea" + }, + "Pneumonia_Symptom_Dyspnea": { + "type": "Symptom", + "symptom": "Shortness of Breath", + "cause": "pneumonia", + "range": { + "low": 40, + "high": 90 + }, + "direct_transition": "Pneumonia_Symptom_ChestPain" + }, + "Pneumonia_Symptom_ChestPain": { + "type": "Symptom", + "symptom": "Chest Pain", + "cause": "pneumonia", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "Delay_Before_Encounter" + }, + "Delay_Before_Encounter": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "days" + }, + "direct_transition": "Pneumonia_Encounter" + }, + "Pneumonia_Encounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom" + } + ], + "direct_transition": "Pneumonia_Diagnosis" + }, + "Pneumonia_Diagnosis": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24360-0", + "display": "Bacterial identification" + } + ], + "direct_transition": "Chest_Xray" + }, + "Chest_Xray": { + "type": "Procedure", + "target_encounter": "Pneumonia_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Chest X-ray" + } + ], + "direct_transition": "CBC_Test" + }, + "CBC_Test": { + "type": "Procedure", + "target_encounter": "Pneumonia_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "Complete blood count (CBC) panel - Blood by Automated count" + } + ], + "direct_transition": "Sputum_Culture" + }, + "Sputum_Culture": { + "type": "Procedure", + "target_encounter": "Pneumonia_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "269957009", + "display": "Sputum culture" + } + ], + "direct_transition": "Severity_Assessment" + }, + "Severity_Assessment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Mild_Pneumonia" + }, + { + "distribution": 0.2, + "transition": "Moderate_Pneumonia" + }, + { + "distribution": 0.1, + "transition": "Severe_Pneumonia" + } + ] + }, + "Mild_Pneumonia": { + "type": "SetAttribute", + "attribute": "pneumonia_severity", + "value": "mild", + "direct_transition": "Prescribe_Antibiotics_Mild" + }, + "Moderate_Pneumonia": { + "type": "SetAttribute", + "attribute": "pneumonia_severity", + "value": "moderate", + "direct_transition": "Prescribe_Antibiotics_Moderate" + }, + "Severe_Pneumonia": { + "type": "SetAttribute", + "attribute": "pneumonia_severity", + "value": "severe", + "direct_transition": "Hospital_Admission" + }, + "Prescribe_Antibiotics_Mild": { + "type": "MedicationOrder", + "target_encounter": "Pneumonia_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "RxNorm", + "code": "1658084", + "display": "Amoxicillin 500 MG Oral Tablet" + } + ], + "direct_transition": "Pneumonia_Followup_Encounter" + }, + "Prescribe_Antibiotics_Moderate": { + "type": "MedicationOrder", + "target_encounter": "Pneumonia_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "RxNorm", + "code": "1373737", + "display": "Azithromycin 250 MG Oral Tablet" + } + ], + "direct_transition": "Pneumonia_Followup_Encounter" + }, + "Hospital_Admission": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183495009", + "display": "Hospital admission" + } + ], + "direct_transition": "IV_Antibiotics" + }, + "IV_Antibiotics": { + "type": "MedicationOrder", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "RxNorm", + "code": "1665051", + "display": "Ceftriaxone 1000 MG Injection" + } + ], + "direct_transition": "Oxygen_Therapy" + }, + "Oxygen_Therapy": { + "type": "Procedure", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "57485005", + "display": "Oxygen therapy" + } + ], + "direct_transition": "Check_For_Complications" + }, + "Check_For_Complications": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.15, + "transition": "Develop_Complications" + }, + { + "distribution": 0.85, + "transition": "Hospital_Stay" + } + ] + }, + "Develop_Complications": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.4, + "transition": "Pleural_Effusion" + }, + { + "distribution": 0.3, + "transition": "Respiratory_Failure" + }, + { + "distribution": 0.3, + "transition": "Sepsis" + } + ] + }, + "Pleural_Effusion": { + "type": "ConditionOnset", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60046008", + "display": "Pleural effusion" + } + ], + "direct_transition": "Thoracentesis" + }, + "Thoracentesis": { + "type": "Procedure", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91602002", + "display": "Thoracentesis" + } + ], + "direct_transition": "Extended_Hospital_Stay" + }, + "Respiratory_Failure": { + "type": "ConditionOnset", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "409622000", + "display": "Respiratory failure" + } + ], + "direct_transition": "Mechanical_Ventilation" + }, + "Mechanical_Ventilation": { + "type": "Procedure", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40617009", + "display": "Mechanical ventilation" + } + ], + "direct_transition": "ICU_Stay" + }, + "Sepsis": { + "type": "ConditionOnset", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91302008", + "display": "Sepsis" + } + ], + "direct_transition": "Vasopressors" + }, + "Vasopressors": { + "type": "MedicationOrder", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "RxNorm", + "code": "1732136", + "display": "Norepinephrine 1 MG/ML Injectable Solution" + } + ], + "direct_transition": "ICU_Stay" + }, + "ICU_Stay": { + "type": "Delay", + "range": { + "low": 3, + "high": 10, + "unit": "days" + }, + "direct_transition": "ICU_Outcome" + }, + "ICU_Outcome": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Extended_Hospital_Stay" + }, + { + "distribution": 0.3, + "transition": "Death" + } + ] + }, + "Hospital_Stay": { + "type": "Delay", + "range": { + "low": 3, + "high": 7, + "unit": "days" + }, + "direct_transition": "Hospital_Discharge" + }, + "Extended_Hospital_Stay": { + "type": "Delay", + "range": { + "low": 7, + "high": 14, + "unit": "days" + }, + "direct_transition": "Hospital_Discharge" + }, + "Hospital_Discharge": { + "type": "EncounterEnd", + "direct_transition": "Pneumonia_Followup_Encounter" + }, + "Pneumonia_Followup_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter" + } + ], + "direct_transition": "Followup_Chest_Xray" + }, + "Followup_Chest_Xray": { + "type": "Procedure", + "target_encounter": "Pneumonia_Followup_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Chest X-ray" + } + ], + "direct_transition": "Recovery_Assessment" + }, + "Recovery_Assessment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.9, + "transition": "Pneumonia_Resolves" + }, + { + "distribution": 0.1, + "transition": "Pneumonia_Persists" + } + ] + }, + "Pneumonia_Resolves": { + "type": "ConditionEnd", + "referenced_by_attribute": "pneumonia", + "direct_transition": "End_Followup_Encounter" + }, + "Pneumonia_Pers \ No newline at end of file diff --git a/src/main/resources/modules/bacterial_pneumonia.json.raw b/src/main/resources/modules/bacterial_pneumonia.json.raw new file mode 100644 index 0000000..7233b36 --- /dev/null +++ b/src/main/resources/modules/bacterial_pneumonia.json.raw @@ -0,0 +1,482 @@ +{ + "name": "Bacterial Pneumonia", + "remarks": [ + "This module simulates the onset, progression, diagnosis, treatment, and management of bacterial pneumonia.", + "Bacterial pneumonia is an infection of the lungs caused by various bacteria, most commonly Streptococcus pneumoniae.", + "Risk factors include age (very young and elderly), smoking, COPD, immunocompromised status, and other chronic conditions.", + "The module includes appropriate diagnostic tests, treatment options, and potential complications." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 1, + "unit": "years" + }, + "direct_transition": "Risk_Assessment" + }, + "Risk_Assessment": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "days" + }, + "distributed_transition": [ + { + "distribution": 0.4, + "transition": "High_Risk_Group" + }, + { + "distribution": 0.6, + "transition": "Normal_Risk_Group" + } + ] + }, + "High_Risk_Group": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Pneumonia_Onset" + }, + { + "distribution": 0.7, + "transition": "Terminal" + } + ] + }, + "Normal_Risk_Group": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.05, + "transition": "Pneumonia_Onset" + }, + { + "distribution": 0.95, + "transition": "Terminal" + } + ] + }, + "Pneumonia_Onset": { + "type": "ConditionOnset", + "target_encounter": "Pneumonia_Encounter", + "assign_to_attribute": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "53084003", + "display": "Bacterial pneumonia" + } + ], + "direct_transition": "Pneumonia_Symptoms" + }, + "Pneumonia_Symptoms": { + "type": "Symptom", + "symptom": "Cough", + "cause": "pneumonia", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Pneumonia_Symptom_Fever" + }, + "Pneumonia_Symptom_Fever": { + "type": "Symptom", + "symptom": "Fever", + "cause": "pneumonia", + "range": { + "low": 60, + "high": 100 + }, + "direct_transition": "Pneumonia_Symptom_Dyspnea" + }, + "Pneumonia_Symptom_Dyspnea": { + "type": "Symptom", + "symptom": "Shortness of Breath", + "cause": "pneumonia", + "range": { + "low": 40, + "high": 90 + }, + "direct_transition": "Pneumonia_Symptom_ChestPain" + }, + "Pneumonia_Symptom_ChestPain": { + "type": "Symptom", + "symptom": "Chest Pain", + "cause": "pneumonia", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "Delay_Before_Encounter" + }, + "Delay_Before_Encounter": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "days" + }, + "direct_transition": "Pneumonia_Encounter" + }, + "Pneumonia_Encounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom" + } + ], + "direct_transition": "Pneumonia_Diagnosis" + }, + "Pneumonia_Diagnosis": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24360-0", + "display": "Bacterial identification" + } + ], + "direct_transition": "Chest_Xray" + }, + "Chest_Xray": { + "type": "Procedure", + "target_encounter": "Pneumonia_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Chest X-ray" + } + ], + "direct_transition": "CBC_Test" + }, + "CBC_Test": { + "type": "Procedure", + "target_encounter": "Pneumonia_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "Complete blood count (CBC) panel - Blood by Automated count" + } + ], + "direct_transition": "Sputum_Culture" + }, + "Sputum_Culture": { + "type": "Procedure", + "target_encounter": "Pneumonia_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "269957009", + "display": "Sputum culture" + } + ], + "direct_transition": "Severity_Assessment" + }, + "Severity_Assessment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Mild_Pneumonia" + }, + { + "distribution": 0.2, + "transition": "Moderate_Pneumonia" + }, + { + "distribution": 0.1, + "transition": "Severe_Pneumonia" + } + ] + }, + "Mild_Pneumonia": { + "type": "SetAttribute", + "attribute": "pneumonia_severity", + "value": "mild", + "direct_transition": "Prescribe_Antibiotics_Mild" + }, + "Moderate_Pneumonia": { + "type": "SetAttribute", + "attribute": "pneumonia_severity", + "value": "moderate", + "direct_transition": "Prescribe_Antibiotics_Moderate" + }, + "Severe_Pneumonia": { + "type": "SetAttribute", + "attribute": "pneumonia_severity", + "value": "severe", + "direct_transition": "Hospital_Admission" + }, + "Prescribe_Antibiotics_Mild": { + "type": "MedicationOrder", + "target_encounter": "Pneumonia_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "RxNorm", + "code": "1658084", + "display": "Amoxicillin 500 MG Oral Tablet" + } + ], + "direct_transition": "Pneumonia_Followup_Encounter" + }, + "Prescribe_Antibiotics_Moderate": { + "type": "MedicationOrder", + "target_encounter": "Pneumonia_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "RxNorm", + "code": "1373737", + "display": "Azithromycin 250 MG Oral Tablet" + } + ], + "direct_transition": "Pneumonia_Followup_Encounter" + }, + "Hospital_Admission": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183495009", + "display": "Hospital admission" + } + ], + "direct_transition": "IV_Antibiotics" + }, + "IV_Antibiotics": { + "type": "MedicationOrder", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "RxNorm", + "code": "1665051", + "display": "Ceftriaxone 1000 MG Injection" + } + ], + "direct_transition": "Oxygen_Therapy" + }, + "Oxygen_Therapy": { + "type": "Procedure", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "57485005", + "display": "Oxygen therapy" + } + ], + "direct_transition": "Check_For_Complications" + }, + "Check_For_Complications": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.15, + "transition": "Develop_Complications" + }, + { + "distribution": 0.85, + "transition": "Hospital_Stay" + } + ] + }, + "Develop_Complications": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.4, + "transition": "Pleural_Effusion" + }, + { + "distribution": 0.3, + "transition": "Respiratory_Failure" + }, + { + "distribution": 0.3, + "transition": "Sepsis" + } + ] + }, + "Pleural_Effusion": { + "type": "ConditionOnset", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60046008", + "display": "Pleural effusion" + } + ], + "direct_transition": "Thoracentesis" + }, + "Thoracentesis": { + "type": "Procedure", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91602002", + "display": "Thoracentesis" + } + ], + "direct_transition": "Extended_Hospital_Stay" + }, + "Respiratory_Failure": { + "type": "ConditionOnset", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "409622000", + "display": "Respiratory failure" + } + ], + "direct_transition": "Mechanical_Ventilation" + }, + "Mechanical_Ventilation": { + "type": "Procedure", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40617009", + "display": "Mechanical ventilation" + } + ], + "direct_transition": "ICU_Stay" + }, + "Sepsis": { + "type": "ConditionOnset", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91302008", + "display": "Sepsis" + } + ], + "direct_transition": "Vasopressors" + }, + "Vasopressors": { + "type": "MedicationOrder", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "RxNorm", + "code": "1732136", + "display": "Norepinephrine 1 MG/ML Injectable Solution" + } + ], + "direct_transition": "ICU_Stay" + }, + "ICU_Stay": { + "type": "Delay", + "range": { + "low": 3, + "high": 10, + "unit": "days" + }, + "direct_transition": "ICU_Outcome" + }, + "ICU_Outcome": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Extended_Hospital_Stay" + }, + { + "distribution": 0.3, + "transition": "Death" + } + ] + }, + "Hospital_Stay": { + "type": "Delay", + "range": { + "low": 3, + "high": 7, + "unit": "days" + }, + "direct_transition": "Hospital_Discharge" + }, + "Extended_Hospital_Stay": { + "type": "Delay", + "range": { + "low": 7, + "high": 14, + "unit": "days" + }, + "direct_transition": "Hospital_Discharge" + }, + "Hospital_Discharge": { + "type": "EncounterEnd", + "direct_transition": "Pneumonia_Followup_Encounter" + }, + "Pneumonia_Followup_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter" + } + ], + "direct_transition": "Followup_Chest_Xray" + }, + "Followup_Chest_Xray": { + "type": "Procedure", + "target_encounter": "Pneumonia_Followup_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Chest X-ray" + } + ], + "direct_transition": "Recovery_Assessment" + }, + "Recovery_Assessment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.9, + "transition": "Pneumonia_Resolves" + }, + { + "distribution": 0.1, + "transition": "Pneumonia_Persists" + } + ] + }, + "Pneumonia_Resolves": { + "type": "ConditionEnd", + "referenced_by_attribute": "pneumonia", + "direct_transition": "End_Followup_Encounter" + }, + "Pneumonia_Pers \ No newline at end of file diff --git a/src/main/resources/modules/bone_marrow_transplant.json b/src/main/resources/modules/bone_marrow_transplant.json new file mode 100644 index 0000000..07e7550 --- /dev/null +++ b/src/main/resources/modules/bone_marrow_transplant.json @@ -0,0 +1,807 @@ +{ + "name": "Bone Marrow Transplant", + "remarks": [ + "Bone marrow transplants are sometimes used to treat patients with cancer or other immune deficiencies.", + "", + "Recipients may spend a few weeks in the hospital or nearby, undergoing frequent blood tests and appointments to monitor response to the transplant.", + "", + "Post transplant complications are not modeled.", + "", + "In a study of 2017 data, 60% of transplants were autologous, and 40% were allogeneic. This can be further refined based on the root cause -- i.e., why the patient is receiving a bone marrow transplant, but that is not modeled here.", + "", + "The use of peripheral-blood stem cells has increased and now accounts for 75% of stem-cell transplants from unrelated adult donors.", + "", + "References", + "- https://www.mayoclinic.org/tests-procedures/bone-marrow-transplant/about/pac-20384854", + "- https://www.ncbi.nlm.nih.gov/books/NBK536951", + "- https://doi.org/10.1038/s41409-019-0465-9", + "- https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3816375/", + "- https://bloodstemcell.hrsa.gov/data/donation-and-transplantation-statistics", + "" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Guard Until Bone Marrow Transplant" + }, + "Donor Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "from own body (autologous transplant)", + "distribution": 0.6 + }, + { + "transition": "from a donor (allogeneic marrow)", + "distribution": 0.1 + }, + { + "transition": "from a donor (allogeneic stem cells)", + "distribution": 0.3 + } + ] + }, + "from own body (autologous transplant)": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "58776007", + "display": "Autologous bone marrow transplant (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 120, + "low": 60 + } + }, + "unit": "minutes", + "direct_transition": "History of autologous bone marrow transplant" + }, + "History of allotransplantation of bone marrow": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "152621000119105", + "display": "History of allotransplantation of bone marrow (situation)" + } + ], + "direct_transition": "End Wait", + "assign_to_attribute": "history_of_bone_marrow_transplant" + }, + "History of autologous bone marrow transplant": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "108631000119101", + "display": "History of autologous bone marrow transplant (situation)" + } + ], + "assign_to_attribute": "history_of_bone_marrow_transplant", + "direct_transition": "End Wait" + }, + "Set Recovery LOS": { + "type": "SetAttribute", + "attribute": "bone_marrow_transplant_los", + "direct_transition": "Recovery", + "distribution": { + "kind": "EXPONENTIAL", + "round": false, + "parameters": { + "mean": 14 + } + } + }, + "Recovery": { + "type": "Counter", + "attribute": "bone_marrow_transplant_los", + "action": "decrement", + "direct_transition": "Postoperative care" + }, + "Continue": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "unit": "days", + "conditional_transition": [ + { + "transition": "Recovery", + "condition": { + "condition_type": "Attribute", + "attribute": "bone_marrow_transplant_los", + "operator": ">", + "value": 0 + } + }, + { + "transition": "End Transplant Encounter" + } + ] + }, + "Record_CBC_Panel": { + "type": "DiagnosticReport", + "number_of_observations": 4, + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*3/uL", + "range": { + "low": 3.5, + "high": 10.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*6/uL", + "range": { + "low": 3.9, + "high": 5.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "unit": "g/dL", + "range": { + "low": 12, + "high": 17.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "4544-3", + "display": "Hematocrit [Volume Fraction] of Blood by Automated count" + } + ], + "unit": "%", + "range": { + "low": 35, + "high": 50 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 80, + "high": 95 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 27, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "21000-5", + "display": "Erythrocyte distribution width [Entitic volume] by Automated count" + } + ], + "range": { + "low": 39, + "high": 46 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32207-3", + "display": "Platelet distribution width [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 520 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32623-1", + "display": "Platelet mean volume [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 9.4, + "high": 12.3 + } + } + ], + "direct_transition": "Hematologic disorder medication review" + }, + "Hematologic disorder medication review": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "473220001", + "display": "Hematologic disorder medication review (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 15, + "low": 10 + } + }, + "unit": "minutes", + "reason": "history_of_bone_marrow_transplant", + "direct_transition": "Continue" + }, + "Postoperative care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "133899007", + "display": "Postoperative care (regime/therapy)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "Record_CBC_Panel", + "reason": "history_of_bone_marrow_transplant" + }, + "Wait_for_Consultation": { + "type": "Delay", + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 3, + "standardDeviation": 1 + } + }, + "unit": "months", + "direct_transition": "Consultation" + }, + "Consultation": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Awaiting transplantation of bone marrow", + "telemedicine_possibility": "none", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386395000", + "display": "Preoperative coordination (regime/therapy)" + } + ], + "direct_transition": "Record_CBC_Preop" + }, + "Hematologic_disorder_medication_review": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "473220001", + "display": "Hematologic disorder medication review (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 20 + } + }, + "unit": "minutes", + "reason": "Awaiting transplantation of bone marrow", + "direct_transition": "Treatment failure risk education" + }, + "Awaiting transplantation of bone marrow": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698303004", + "display": "Awaiting transplantation of bone marrow (situation)" + } + ], + "direct_transition": "Wait_for_Consultation", + "target_encounter": "Consultation", + "assign_to_attribute": "bone_marrow_dental_reason" + }, + "Treatment failure risk education": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "304532001", + "display": "Treatment failure risk education (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 15, + "low": 10 + } + }, + "unit": "minutes", + "direct_transition": "Treatment side effects education", + "reason": "Awaiting transplantation of bone marrow" + }, + "Treatment side effects education": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "304531008", + "display": "Treatment side effects education (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 15, + "low": 10 + } + }, + "unit": "minutes", + "reason": "Awaiting transplantation of bone marrow", + "direct_transition": "Pre-operative chemotherapy" + }, + "Referral": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "306316000", + "display": "Referral to transplant surgeon (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 15, + "low": 10 + } + }, + "unit": "minutes", + "reason": "Awaiting transplantation of bone marrow", + "direct_transition": "End Consultation" + }, + "End Consultation": { + "type": "EncounterEnd", + "direct_transition": "Initiate_Dental_Cleaning" + }, + "Transplant Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "Awaiting transplantation of bone marrow", + "telemedicine_possibility": "none", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305432006", + "display": "Admission to surgical transplant department (procedure)" + } + ], + "direct_transition": "Donor Check" + }, + "End Wait": { + "type": "ConditionEnd", + "direct_transition": "Set Recovery LOS", + "condition_onset": "Awaiting transplantation of bone marrow" + }, + "Initiate_Dental_Cleaning": { + "type": "SetAttribute", + "attribute": "dental_referral", + "value_attribute": "bone_marrow_dental_reason", + "direct_transition": "Wait_for_Cleaning" + }, + "Wait_for_Cleaning": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 7, + "low": 1 + } + }, + "unit": "days", + "direct_transition": "Check_Cleaning_Status" + }, + "Check_Cleaning_Status": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Wait_for_Cleaning", + "condition": { + "condition_type": "Attribute", + "attribute": "dental_referral", + "operator": "is not nil" + } + }, + { + "transition": "Wait_for_Transplant" + } + ] + }, + "End Transplant Encounter": { + "type": "EncounterEnd", + "direct_transition": "End Bone Marrow" + }, + "Guard Until Bone Marrow Transplant": { + "type": "Guard", + "allow": { + "condition_type": "Attribute", + "attribute": "bone_marrow", + "operator": "is not nil" + }, + "direct_transition": "Awaiting transplantation of bone marrow" + }, + "End Bone Marrow": { + "type": "SetAttribute", + "attribute": "bone_marrow", + "value": null, + "direct_transition": "Guard Until Bone Marrow Transplant" + }, + "Wait_for_Transplant": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 21, + "low": 3 + } + }, + "unit": "days", + "direct_transition": "Transplant Encounter" + }, + "Pre-operative chemotherapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "394894008", + "display": "Pre-operative chemotherapy (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 120, + "low": 60 + } + }, + "unit": "minutes", + "direct_transition": "Referral", + "reason": "Awaiting transplantation of bone marrow" + }, + "History of peripheral stem cell transplant": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "153351000119102", + "display": "History of peripheral stem cell transplant (situation)" + } + ], + "direct_transition": "End Wait", + "assign_to_attribute": "history_of_bone_marrow_transplant" + }, + "from a donor (allogeneic stem cells)": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "234336002", + "display": "Hemopoietic stem cell transplant (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 120, + "low": 60 + } + }, + "unit": "minutes", + "direct_transition": "History of peripheral stem cell transplant", + "reason": "Awaiting transplantation of bone marrow" + }, + "from a donor (allogeneic marrow)": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "58390007", + "display": "Allogeneic bone marrow transplantation (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 120, + "low": 60 + } + }, + "unit": "minutes", + "direct_transition": "History of allotransplantation of bone marrow" + }, + "Record_CBC_Preop": { + "type": "DiagnosticReport", + "number_of_observations": 4, + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*3/uL", + "range": { + "low": 0.5, + "high": 5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*6/uL", + "range": { + "low": 3.9, + "high": 5.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "unit": "g/dL", + "range": { + "low": 6, + "high": 15 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "4544-3", + "display": "Hematocrit [Volume Fraction] of Blood by Automated count" + } + ], + "unit": "%", + "range": { + "low": 25, + "high": 35 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 80, + "high": 95 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 27, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "21000-5", + "display": "Erythrocyte distribution width [Entitic volume] by Automated count" + } + ], + "range": { + "low": 39, + "high": 46 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32207-3", + "display": "Platelet distribution width [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 520 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32623-1", + "display": "Platelet mean volume [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 9.4, + "high": 12.3 + } + } + ], + "direct_transition": "Hematologic_disorder_medication_review" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/breast_cancer.json b/src/main/resources/modules/breast_cancer.json new file mode 100644 index 0000000..723bfbd --- /dev/null +++ b/src/main/resources/modules/breast_cancer.json @@ -0,0 +1,2197 @@ +{ + "name": "Breast_cancer", + "remarks": [ + "The main pathway for breast_cancer. Starts from initial and goes to obtaining breast cancer, screening, diagnosis, treatments, and final followup followed by potential death. ", + "", + "Information was primarily sourced from:", + "", + "1) Susan G. Komen: https://ww5.komen.org/", + "2) American Cancer Society: https://www.cancer.org/cancer/breast-cancer.html", + "3) National Comprehensive Cancer Network: https://www.nccn.org/professionals/physician_gls/default.aspx#site", + "4) Center for Disease Control: https://gis.cdc.gov/Cancer/USCS/DataViz.html", + "5) AJCC Cancer Staging Manual 8th Edition (Physical Textbook)", + "6) Conversations with Jim O'Connor, Breast Cancer Clinician", + "", + "" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Female", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "Male", + "condition": { + "condition_type": "Gender", + "gender": "M" + } + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Female": { + "type": "Simple", + "remarks": [ + "Race and ethnicity - Lifetime risk of breast cancer ", + "White", + "13%", + "Black", + "12%", + "Asian/Pacific Islander", + "11%", + "Hispanic", + "10%", + "American Indian/Alaska Native", + "8%", + "", + "https://ww5.komen.org/BreastCancer/RaceampEthnicity.html", + "", + "For an American woman, the lifetime risk of developing breast cancer is 12.38% or 1 in 8[4]:", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4127601/pdf/WJCO-5-283.pdf" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Race", + "race": "White" + }, + "distributions": [ + { + "transition": "Pre_breastCancer", + "distribution": 0.13 + }, + { + "transition": "Terminal", + "distribution": 0.8700000000000001 + } + ] + }, + { + "distributions": [ + { + "transition": "Pre_breastCancer", + "distribution": 0.12 + }, + { + "transition": "Terminal", + "distribution": 0.88 + } + ], + "condition": { + "condition_type": "Race", + "race": "Black" + } + }, + { + "distributions": [ + { + "transition": "Pre_breastCancer", + "distribution": 0.11 + }, + { + "transition": "Terminal", + "distribution": 0.89 + } + ], + "condition": { + "condition_type": "Race", + "race": "Asian" + } + }, + { + "distributions": [ + { + "transition": "Pre_breastCancer", + "distribution": 0.1 + }, + { + "transition": "Terminal", + "distribution": 0.9 + } + ], + "condition": { + "condition_type": "Race", + "race": "Hispanic" + } + }, + { + "distributions": [ + { + "transition": "Pre_breastCancer", + "distribution": 0.08 + }, + { + "transition": "Terminal", + "distribution": 0.92 + } + ], + "condition": { + "condition_type": "Race", + "race": "Native" + } + }, + { + "distributions": [ + { + "transition": "Pre_breastCancer", + "distribution": 0.125 + }, + { + "transition": "Terminal", + "distribution": 0.875 + } + ] + } + ] + }, + "Male": { + "type": "Simple", + "remarks": [ + "Breast cancer in men is a rare disease. Less than 1% of all breast cancers occur in men:", + "https://www.breastcancer.org/symptoms/types/male_bc", + "", + "All people, whether male or female, are born with some breast cells and tissue. Even though males do not develop milk-producing breasts, a man’s breast cells and tissue can still develop cancer. Even so, male breast cancer is very rare. Less than one percent of all breast cancer cases develop in men, and only one in a thousand men will ever be diagnosed with breast cancer.", + "https://www.nationalbreastcancer.org/male-breast-cancer", + "", + "Most breast cancers happen to men between ages 60 and 70:", + "https://www.webmd.com/breast-cancer/breast-cancer-men" + ], + "distributed_transition": [ + { + "transition": "Terminal", + "distribution": 0.99 + }, + { + "transition": "Age 60-69", + "distribution": 0.001 + } + ] + }, + "Pre_breastCancer": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Age 0-39", + "distribution": 0.0454 + }, + { + "transition": "Age 39-59", + "distribution": 0.3549 + }, + { + "transition": "Age 60-69", + "distribution": 0.28800000000000003 + }, + { + "transition": "Age 69-85", + "distribution": 0.2591 + }, + { + "transition": "Age 85-140", + "distribution": 0.0526 + } + ], + "remarks": [ + "https://gis.cdc.gov/Cancer/USCS/DataViz.html", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4127601/pdf/WJCO-5-283.pdf" + ] + }, + "BreastCancer_Symptom1": { + "type": "Symptom", + "symptom": "Lump/mass", + "cause": "", + "probability": 0.83, + "direct_transition": "BreastCancer_Symptom2", + "remarks": [ + "https://www.cancer.org/cancer/breast-cancer/about/breast-cancer-signs-and-symptoms.html", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5482318/" + ], + "range": { + "low": 0, + "high": 5 + } + }, + "BreastCancer_Symptom2": { + "type": "Symptom", + "symptom": "Swelling", + "cause": "", + "probability": 0.006, + "direct_transition": "BreastCancer_Symptom3", + "remarks": [ + "https://www.cancer.org/cancer/breast-cancer/about/breast-cancer-signs-and-symptoms.html", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5482318/" + ], + "range": { + "low": 20, + "high": 30 + } + }, + "BreastCancer_Symptom4": { + "type": "Symptom", + "symptom": "Breast/Nipple Pain", + "cause": "", + "probability": 0.06, + "direct_transition": "BreastCancer_Symptom5", + "remarks": [ + "https://www.cancer.org/cancer/breast-cancer/about/breast-cancer-signs-and-symptoms.html", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5482318/" + ], + "range": { + "low": 20, + "high": 60 + } + }, + "BreastCancer_Symptom3": { + "type": "Symptom", + "symptom": "Skin Irritation/Dimpling", + "cause": "", + "probability": 0.02, + "direct_transition": "BreastCancer_Symptom4", + "remarks": [ + "https://www.cancer.org/cancer/breast-cancer/about/breast-cancer-signs-and-symptoms.html", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5482318/" + ], + "range": { + "low": 0, + "high": 35 + } + }, + "BreastCancer_Symptom5": { + "type": "Symptom", + "symptom": "Nipple Retraction", + "cause": "", + "probability": 0.07, + "direct_transition": "BreastCancer_Symptom6", + "remarks": [ + "https://www.cancer.org/cancer/breast-cancer/about/breast-cancer-signs-and-symptoms.html" + ], + "range": { + "low": 0, + "high": 10 + } + }, + "BreastCancer_Symptom6": { + "type": "Symptom", + "symptom": "Nipple Discharge", + "cause": "", + "probability": 0.1, + "direct_transition": "Breast Cancer", + "remarks": [ + "https://www.cancer.org/cancer/breast-cancer/about/breast-cancer-signs-and-symptoms.html" + ], + "range": { + "low": 0, + "high": 5 + } + }, + "Breast Cancer": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "254837009", + "display": "Malignant neoplasm of breast (disorder)" + } + ], + "direct_transition": "Time Before Initial Doctor Visit", + "target_encounter": "Breast Cancer Encounter", + "assign_to_attribute": "breast_cancer_condition" + }, + "Mammogram": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "241055006", + "display": "Mammogram - symptomatic (procedure)" + } + ], + "duration": { + "low": 15, + "high": 25, + "unit": "minutes" + }, + "distributed_transition": [ + { + "transition": "MRI", + "distribution": 0.25 + }, + { + "transition": "Ultrasound", + "distribution": 0.75 + } + ], + "remarks": [ + "Mammogram", + "A mammogram is an x-ray that allows a qualified specialist to examine the breast tissue for any suspicious areas. In a diagnostic mammogram, more x-rays are taken, providing views of the breast from multiple vantage points.", + "https://www.nationalbreastcancer.org/breast-cancer-diagnosis", + "", + "https://www.breastcancer.org/research-news/20091204b" + ] + }, + "Ultrasound": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1571000087109", + "display": "Ultrasonography of bilateral breasts (procedure)" + } + ], + "duration": { + "low": 15, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Breast Biopsy", + "remarks": [ + "Ultrasound", + "A breast ultrasound is a scan that uses penetrating sound waves that do not affect or damage the tissue and cannot be heard by humans.", + "https://www.nationalbreastcancer.org/breast-cancer-diagnosis" + ] + }, + "Breast Cancer Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "direct_transition": "Mammogram", + "reason": "Breast Cancer" + }, + "MRI": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "241615005", + "display": "Magnetic resonance imaging of breast (procedure)" + } + ], + "duration": { + "low": 45, + "high": 90, + "unit": "minutes" + }, + "direct_transition": "Breast Biopsy", + "remarks": [ + "MRI", + "During a breast MRI, a magnet connected to a computer transmits magnetic energy and radio waves (not radiation) through the breast tissue. It scans the tissue, making detailed pictures of areas within the breast.", + "https://www.nationalbreastcancer.org/breast-cancer-diagnosis" + ] + }, + "Diagnose_TNM_Markers": { + "type": "CallSubmodule", + "submodule": "breast_cancer/tnm_diagnosis", + "direct_transition": "Diagnose Hormone Receptors" + }, + "Diagnose Hormone Receptors": { + "type": "CallSubmodule", + "submodule": "breast_cancer/hormone_diagnosis", + "direct_transition": "Staging" + }, + "Staging": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Stage IV", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_M", + "operator": "==", + "value": "M1" + } + }, + { + "transition": "Nonmetastatic", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_M", + "operator": "==", + "value": "M0" + } + } + ], + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition" + ] + }, + "Stage IV": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21908-9", + "display": "Stage group.clinical Cancer" + } + ], + "direct_transition": "End the Initial Encounter", + "value_code": { + "system": "SNOMED-CT", + "code": "258228008", + "display": "Stage 4 (qualifier value)" + } + }, + "Nonmetastatic": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "IIIC", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_N", + "operator": "==", + "value": "N3" + } + }, + { + "transition": "IIIB", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_T", + "operator": "==", + "value": "T4" + } + }, + { + "transition": "IIIA", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "breast_cancer_N", + "operator": "==", + "value": "N2" + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "breast_cancer_N", + "operator": "==", + "value": "N1" + }, + { + "condition_type": "Attribute", + "attribute": "breast_cancer_T", + "operator": "==", + "value": "T3" + } + ] + } + ] + } + }, + { + "transition": "Nonaggressive" + } + ] + }, + "Stage IV Treatment": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Treatment Successful", + "distribution": 0.22 + }, + { + "transition": "Treatment Unsuccessful", + "distribution": 0.78 + } + ], + "remarks": [ + "The American Cancer Society report that 5-year survival rates break down by stage as follows:", + "Stage 0-1: Close to 100 percent survival rate. Approximately 61 percent of all breast cancers are diagnosed at this stage.", + "Stage 2: Relative survival rate of 93 percent.", + "Stage 3: Relative survival rate of 72 percent. Many women with this stage breast cancer are treated successfully.", + "Stage 4: Relative survival rate of 22 percent. Many different treatment options are available:", + "https://www.medicalnewstoday.com/articles/316867.php" + ] + }, + "Stage III": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21908-9", + "display": "Stage group.clinical Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "258224005", + "display": "Stage 3 (qualifier value)" + }, + "direct_transition": "End the Initial Encounter" + }, + "Stage I": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21908-9", + "display": "Stage group.clinical Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "258215001", + "display": "Stage 1 (qualifier value)" + }, + "direct_transition": "End the Initial Encounter" + }, + "IIIB": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21908-9", + "display": "Stage group.clinical Cancer" + } + ], + "direct_transition": "Stage III", + "value_code": { + "system": "SNOMED-CT", + "code": 261639007, + "display": "Stage 3B (qualifier value)" + } + }, + "IIIA": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21908-9", + "display": "Stage group.clinical Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "1222802001", + "display": "American Joint Committee on Cancer stage IIIA (qualifier value)" + }, + "direct_transition": "Stage III" + }, + "Stage III Treatment": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Treatment Successful", + "distribution": 0.72 + }, + { + "transition": "Treatment Unsuccessful", + "distribution": 0.28 + } + ], + "remarks": [ + "The American Cancer Society report that 5-year survival rates break down by stage as follows:", + "Stage 0-1: Close to 100 percent survival rate. Approximately 61 percent of all breast cancers are diagnosed at this stage.", + "Stage 2: Relative survival rate of 93 percent.", + "Stage 3: Relative survival rate of 72 percent. Many women with this stage breast cancer are treated successfully.", + "Stage 4: Relative survival rate of 22 percent. Many different treatment options are available:", + "https://www.medicalnewstoday.com/articles/316867.php" + ] + }, + "Nonaggressive": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "breast_cancer_T", + "operator": "==", + "value": "T3" + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "breast_cancer_T", + "operator": "==", + "value": "T2" + }, + { + "condition_type": "Attribute", + "attribute": "breast_cancer_N", + "operator": "==", + "value": "N1" + } + ] + } + ] + }, + "distributions": [ + { + "transition": "IIB", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_T", + "operator": "==", + "value": "T2" + }, + "distributions": [ + { + "transition": "IIA", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "breast_cancer_T", + "operator": "==", + "value": "T1" + }, + { + "condition_type": "Attribute", + "attribute": "breast_cancer_N", + "operator": "==", + "value": "N1" + } + ] + }, + "distributions": [ + { + "transition": "IIA", + "distribution": 0.5 + }, + { + "transition": "Early_Stage", + "distribution": 0.5 + } + ] + }, + { + "distributions": [ + { + "transition": "Early_Stage", + "distribution": 1 + } + ] + } + ], + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition" + ] + }, + "IIIC": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21908-9", + "display": "Stage group.clinical Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": 261640009, + "display": "Stage 3C (qualifier value)" + }, + "direct_transition": "Stage III" + }, + "IIB": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21908-9", + "display": "Stage group.clinical Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": 261615002, + "display": "Stage 2B (qualifier value)" + }, + "direct_transition": "Stage II" + }, + "IIA": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21908-9", + "display": "Stage group.clinical Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": 261614003, + "display": "Stage 2A (qualifier value)" + }, + "direct_transition": "Stage II" + }, + "IA": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21908-9", + "display": "Stage group.clinical Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": 261634002, + "display": "Stage 1A (qualifier value)" + }, + "direct_transition": "Stage I" + }, + "IB": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21908-9", + "display": "Stage group.clinical Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": 261635001, + "display": "Stage 1B (qualifier value)" + }, + "direct_transition": "Stage I" + }, + "Early_Stage": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "IA", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_T", + "operator": "==", + "value": "T1" + } + }, + { + "transition": "IB", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_N", + "operator": "==", + "value": "N1" + } + } + ], + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition" + ] + }, + "Stage II": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21908-9", + "display": "Stage group.clinical Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "258219007", + "display": "Stage 2 (qualifier value)" + }, + "direct_transition": "End the Initial Encounter" + }, + "Stage II Treatment": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Treatment Successful", + "distribution": 0.93 + }, + { + "transition": "Treatment Unsuccessful", + "distribution": 0.07 + } + ], + "remarks": [ + "The American Cancer Society report that 5-year survival rates break down by stage as follows:", + "Stage 0-1: Close to 100 percent survival rate. Approximately 61 percent of all breast cancers are diagnosed at this stage.", + "Stage 2: Relative survival rate of 93 percent.", + "Stage 3: Relative survival rate of 72 percent. Many women with this stage breast cancer are treated successfully.", + "Stage 4: Relative survival rate of 22 percent. Many different treatment options are available:", + "https://www.medicalnewstoday.com/articles/316867.php" + ] + }, + "End Initial Follow-Up Doctor Visit": { + "type": "EncounterEnd", + "direct_transition": "Initial Follow-Up Counter" + }, + "4 Months between Initial Follow-Ups": { + "type": "Delay", + "direct_transition": "Initial Follow-Up Doctor Visit", + "range": { + "low": 14, + "high": 18, + "unit": "weeks" + }, + "remarks": [ + "Doctor visits: At first, your follow-up doctor visits will probably be scheduled for every few months. The longer you have been free of cancer, the less often the appointments are needed. After 5 years, they are typically done about once a year:", + "https://www.cancer.org/cancer/breast-cancer/living-as-a-breast-cancer-survivor/follow-up-care-after-breast-cancer-treatment.html" + ] + }, + "Initial Follow-Up Counter": { + "type": "Counter", + "attribute": "breast_cancer_init_followup_counter", + "action": "increment", + "conditional_transition": [ + { + "transition": "4 Months between Initial Follow-Ups", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "breast_cancer_init_followup_counter", + "operator": "<", + "value": 3 + }, + { + "condition_type": "Attribute", + "attribute": "breast_cancer_years_after_treatment", + "operator": "<", + "value": 5 + } + ] + } + }, + { + "transition": "Mammogram Followup" + } + ], + "remarks": [ + "1 unit of the counter indicates 4 months. Patients within 5 years of surgery will typically go to the doctors about every 4 months." + ] + }, + "Initialize Initial Follow-Up Counter": { + "type": "SetAttribute", + "attribute": "breast_cancer_init_followup_counter", + "direct_transition": "Initialize Years After Treatment Counter", + "value": 0, + "remarks": [ + "1 unit of the counter indicates 4 months. Patients within 5 years of surgery will typically go to the doctors about every 4 months." + ] + }, + "Mammogram Followup": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Mammogram Followup Visit", + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "21908-9", + "display": "Stage group.clinical Cancer" + } + ], + "operator": "!=", + "value_code": { + "system": "SNOMED-CT", + "code": 261635001, + "display": "Stage 1B (qualifier value)" + } + } + }, + { + "transition": "Pelvic Followup" + } + ], + "remarks": [ + "Mammograms: If you had breast-conserving surgery, you will get a mammogram about 6-12 months after surgery and radiation are completed, and then at least every year after that. Depending on the type of mastectomy you had, you may still need to have yearly mammograms on the remaining breast:", + "https://www.cancer.org/cancer/breast-cancer/living-as-a-breast-cancer-survivor/follow-up-care-after-breast-cancer-treatment.html" + ] + }, + "Post-Surgery Mammogram": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "71651007", + "display": "Mammography (procedure)" + } + ], + "duration": { + "low": 15, + "high": 25, + "unit": "minutes" + }, + "direct_transition": "End Mammogram Followup Visit", + "reason": "breast_cancer_condition", + "remarks": [ + "Mammogram", + "A mammogram is an x-ray that allows a qualified specialist to examine the breast tissue for any suspicious areas. In a diagnostic mammogram, more x-rays are taken, providing views of the breast from multiple vantage points.", + "https://www.nationalbreastcancer.org/breast-cancer-diagnosis:", + "https://www.breastcancer.org/research-news/20091204b" + ] + }, + "Mammogram Followup Visit": { + "type": "Encounter", + "reason": "breast_cancer_condition", + "direct_transition": "Post-Surgery Mammogram", + "codes": [ + { + "system": "SNOMED-CT", + "code": "410410006", + "display": "Screening surveillance (regime/therapy)" + } + ], + "encounter_class": "ambulatory" + }, + "End Mammogram Followup Visit": { + "type": "EncounterEnd", + "direct_transition": "Pelvic Followup" + }, + "Pelvic Followup": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Gynecologist Visit", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "198240", + "display": "Tamoxifen 10 MG Oral Tablet" + } + ] + }, + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "313428", + "display": "Toremifene 60 MG Oral Tablet" + } + ] + } + ] + } + }, + { + "transition": "Gynecologist Visit", + "condition": { + "condition_type": "Symptom", + "symptom": "Unusual Vaginal Bleeding", + "operator": ">", + "value": 0 + } + }, + { + "transition": "Gynecologist Visit", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_tamoxifen", + "operator": "==", + "value": true + } + }, + { + "transition": "Bone Followup" + } + ], + "remarks": [ + "Pelvic exams: If you are taking either of the hormone drugs tamoxifen or toremifene and still have your uterus, you should have pelvic exams every year because these drugs can increase your risk of uterine cancer. This risk is highest in women who have gone through menopause. Be sure to tell your doctor right away about any unusual vaginal bleeding, such as vaginal bleeding or spotting after menopause, bleeding or spotting between periods, or a change in your periods. Although this is usually caused by something that isn’t cancer, it can also be the first sign of uterine cancer.", + "https://www.cancer.org/cancer/breast-cancer/living-as-a-breast-cancer-survivor/follow-up-care-after-breast-cancer-treatment.html", + "", + "https://www.hopkinsmedicine.org/kimmel_cancer_center/centers/breast_cancer_program/treatment_and_services/survivorship/follow_up/pelvic_exams.html" + ] + }, + "Gynecologist Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "breast_cancer_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "310061009", + "display": "Gynecology service (qualifier value)" + } + ], + "direct_transition": "Pelvic Exam" + }, + "Bone Followup": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Bone Exam Visit", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "310261", + "display": "exemestane 25 MG Oral Tablet" + } + ] + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "199224", + "display": "anastrozole 1 MG Oral Tablet" + } + ] + }, + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "200064", + "display": "letrozole 2.5 MG Oral Tablet" + } + ] + } + ] + } + ] + } + }, + { + "transition": "Bone Exam Visit", + "condition": { + "condition_type": "Symptom", + "symptom": "Early menopause due to treatment", + "operator": ">", + "value": 0 + } + }, + { + "transition": "Bone Exam Visit", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_aromatase_inhibitors", + "operator": "==", + "value": true + } + }, + { + "transition": "Reset Initial Follow-Up Counter" + } + ], + "remarks": [ + "Bone density tests: If you are taking an aromatase inhibitor (anastrozole, letrozole, or exemestane) for early stage breast cancer, or if you go through menopause as a result of treatment, your doctor will want to monitor your bone health and may consider testing your bone density.", + "https://www.cancer.org/cancer/breast-cancer/living-as-a-breast-cancer-survivor/follow-up-care-after-breast-cancer-treatment.html" + ] + }, + "End Gynecologist Visit": { + "type": "EncounterEnd", + "direct_transition": "Bone Followup" + }, + "Pelvic Exam": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "35025007", + "display": "Manual pelvic examination (procedure)" + } + ], + "duration": { + "low": 10, + "high": 15, + "unit": "minutes" + }, + "direct_transition": "Pap Smear", + "remarks": [ + "What Can I Expect During a Pelvic Exam?", + "You can expect to feel a little discomfort, but you should not feel pain during a pelvic exam. The exam itself takes about 10 minutes. If you have any questions during the exam, be sure to ask your doctor.", + "https://www.webmd.com/women/guide/pelvic-examination#1" + ], + "reason": "breast_cancer_condition" + }, + "Pap Smear": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "90226004", + "display": "Cytopathology procedure, preparation of smear, genital source (procedure)" + } + ], + "duration": { + "low": 10, + "high": 20, + "unit": "minutes" + }, + "direct_transition": "End Gynecologist Visit", + "remarks": [ + "A routine gynecological exam with a pap smear should be performed yearly for cervical cancer screening. Any abnormal vaginal spotting or bleeding should be reported to your primary care provider or gynecologist to evaluate for the possibility of uterine (endometrial) cancer, especially in women over the age of 50 and on tamoxifen. Although unusual vaginal bleeding can occur with menopause, any kind of vaginal bleeding after menopause should be checked out by your gynecologist or primary care provider.", + "https://www.hopkinsmedicine.org/kimmel_cancer_center/centers/breast_cancer_program/treatment_and_services/survivorship/follow_up/pelvic_exams.html", + "", + "If you take tamoxifen, tell your doctor about any unusual vaginal bleeding. If you take it and still have your uterus, you need an annual Pap smear, regardless of age.", + "https://www.webmd.com/breast-cancer/guide/breast-cancer-follow-up-care" + ], + "reason": "breast_cancer_condition" + }, + "Bone Exam": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "312681000", + "display": "Bone density scan (procedure)" + } + ], + "duration": { + "low": 10, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "End Bone Exam Visit", + "remarks": [ + "If you have your bone density test done at a hospital, it'll probably be done on a central device, where you lie on a padded platform while a mechanical arm passes over your body. The amount of radiation you're exposed to is very low, much less than the amount emitted during a chest X-ray. The test usually takes about 10 to 30 minutes.", + "https://www.mayoclinic.org/tests-procedures/bone-density-test/about/pac-20385273" + ], + "reason": "breast_cancer_condition" + }, + "Bone Exam Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "breast_cancer_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185389009", + "display": "Follow-up visit (procedure)" + } + ], + "direct_transition": "Bone Exam" + }, + "End Bone Exam Visit": { + "type": "EncounterEnd", + "direct_transition": "Reset Initial Follow-Up Counter" + }, + "Years After Treatment Counter": { + "type": "Counter", + "attribute": "breast_cancer_years_after_treatment", + "action": "increment", + "conditional_transition": [ + { + "transition": "Post-Op Cancer Status", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_years_after_treatment", + "operator": "<", + "value": 5 + } + }, + { + "transition": "1 Year Passed" + } + ], + "remarks": [ + "Indicate that a year has passed" + ] + }, + "Initialize Years After Treatment Counter": { + "type": "SetAttribute", + "attribute": "breast_cancer_years_after_treatment", + "direct_transition": "4 Months between Initial Follow-Ups", + "value": 0, + "remarks": [ + "1 unit of the counter represents around 1 year after completing treatment." + ] + }, + "Reset Initial Follow-Up Counter": { + "type": "SetAttribute", + "attribute": "breast_cancer_init_followup_counter", + "direct_transition": "Years After Treatment Counter", + "value": 0 + }, + "1 Year Passed": { + "type": "Delay", + "direct_transition": "Initial Follow-Up Doctor Visit", + "range": { + "low": 11, + "high": 13, + "unit": "months" + } + }, + "Initial Follow-Up Doctor Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "breast_cancer_condition", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "439740005", + "display": "Postoperative follow-up visit (procedure)" + } + ], + "direct_transition": "Follow up examination", + "remarks": [ + "Doctor visits: At first, your follow-up doctor visits will probably be scheduled for every few months. The longer you have been free of cancer, the less often the appointments are needed. After 5 years, they are typically done about once a year.", + "https://www.cancer.org/cancer/breast-cancer/living-as-a-breast-cancer-survivor/follow-up-care-after-breast-cancer-treatment.html" + ] + }, + "Treatment Unsuccessful": { + "type": "SetAttribute", + "attribute": "breast_cancer_survival", + "direct_transition": "Impending Death from Cancer Complications", + "value": "no" + }, + "Treatment Successful": { + "type": "SetAttribute", + "attribute": "breast_cancer_survival", + "direct_transition": "Sit-Down with Oncologist to Discuss Treatment Options", + "value": "yes" + }, + "Regular Mammogram Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "86013001", + "display": "Periodic reevaluation and management of healthy individual (procedure)" + } + ], + "direct_transition": "Screening Mammogram", + "reason": "breast_cancer_screening_due" + }, + "Breast Cancer Found": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "254837009", + "display": "Malignant neoplasm of breast (disorder)" + } + ], + "direct_transition": "Diagnose_TNM_Markers", + "assign_to_attribute": "breast_cancer_condition" + }, + "Breast Biopsy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "122548005", + "display": "Biopsy of breast (procedure)" + } + ], + "duration": { + "low": 20, + "high": 60, + "unit": "minutes" + }, + "conditional_transition": [ + { + "transition": "Breast Cancer Found", + "condition": { + "condition_type": "PriorState", + "name": "Screening Mammogram" + } + }, + { + "transition": "Diagnose_TNM_Markers" + } + ], + "remarks": [ + "https://www.breastcancer.org/research-news/20091204b" + ] + }, + "Time Before Initial Doctor Visit": { + "type": "Delay", + "direct_transition": "Breast Cancer Encounter", + "range": { + "low": 0, + "high": 1, + "unit": "weeks" + } + }, + "Delay for Analysis of Possible Treatments": { + "type": "Delay", + "range": { + "low": 1, + "high": 7, + "unit": "days" + }, + "direct_transition": "Breast Cancer Treatment Success Rate" + }, + "Sit-Down with Oncologist to Discuss Treatment Options": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "breast_cancer_condition", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "223484005", + "display": "Discussion about treatment (procedure)" + } + ], + "direct_transition": "Discussion", + "remarks": [ + "Treatment Options:", + "https://www.cancer.net/cancer-types/breast-cancer/types-treatment" + ] + }, + "End Meeting with Oncologist": { + "type": "EncounterEnd", + "direct_transition": "Choose_Treatment_Option" + }, + "Stage I Treatment": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Treatment Successful", + "distribution": 0.99 + }, + { + "transition": "Treatment Unsuccessful", + "distribution": 0.01 + } + ], + "remarks": [ + "The American Cancer Society report that 5-year survival rates break down by stage as follows:", + "Stage 0-1: Close to 100 percent survival rate. Approximately 61 percent of all breast cancers are diagnosed at this stage.", + "Stage 2: Relative survival rate of 93 percent.", + "Stage 3: Relative survival rate of 72 percent. Many women with this stage breast cancer are treated successfully.", + "Stage 4: Relative survival rate of 22 percent. Many different treatment options are available:", + "https://www.medicalnewstoday.com/articles/316867.php" + ] + }, + "Choose_Treatment_Option": { + "type": "Delay", + "range": { + "low": 1, + "high": 7, + "unit": "days" + }, + "conditional_transition": [ + { + "transition": "Set pre-surgery chemo counter", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "breast_cancer_triple_negative", + "operator": "==", + "value": true + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "PriorState", + "name": "Stage III" + }, + { + "condition_type": "PriorState", + "name": "Stage IV" + } + ] + } + ] + } + }, + { + "transition": "Begin Surgery and Radiation Treatment" + } + ], + "remarks": [ + "Decision for Neoadjuvant Chemotherapy based upon conversations with Doctor Jim O'Connor" + ] + }, + "End Treatment": { + "type": "Observation", + "category": "procedure", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "59557-9", + "display": "Treatment status Cancer" + } + ], + "conditional_transition": [ + { + "transition": "Improvement After Surgery/Therapy", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_survival", + "operator": "==", + "value": "yes" + } + }, + { + "transition": "Worsening After Surgery/Therapy", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_survival", + "operator": "==", + "value": "no" + } + } + ], + "remarks": [ + "The American Cancer Society report that 5-year survival rates break down by stage as follows:", + "Stage 0-1: Close to 100 percent survival rate. Approximately 61 percent of all breast cancers are diagnosed at this stage.", + "Stage 2: Relative survival rate of 93 percent.", + "Stage 3: Relative survival rate of 72 percent. Many women with this stage breast cancer are treated successfully.", + "Stage 4: Relative survival rate of 22 percent. Many different treatment options are available:", + "https://www.medicalnewstoday.com/articles/316867.php" + ], + "value_code": { + "system": "SNOMED-CT", + "code": "445528004", + "display": "Treatment changed (situation)" + } + }, + "End Neodjuvant Medication in Preparation for Surgery": { + "type": "MedicationEnd", + "direct_transition": "End_Neoadjuvant_Chemo_Treatment", + "referenced_by_attribute": "breast_cancer_neoMed" + }, + "Neoadjuvant Chemo Before Surgery": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Chemotherapy Drugs", + "reason": "breast_cancer_condition" + }, + "End Chemo Treatment": { + "type": "Delay", + "direct_transition": "Improvement After Neoadjuvant Chemotherapy", + "range": { + "low": 2, + "high": 5, + "unit": "weeks" + }, + "remarks": [ + "This issue of time interval between completion of neoadjuvant chemotherapy and surgery has also not been well addressed in large randomized clinical trials on neoadjuvant systemic therapy and many do not even specify the recommended interval (8-10). But when mentioned, a surgery between 2 and 5 weeks after the last chemotherapy cycle was recommended (11-13):", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5293647/" + ] + }, + "Doxorubicin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1790099, + "display": "10 ML Doxorubicin Hydrochloride 2 MG/ML Injection" + } + ], + "remarks": [ + "- Doxorubicin (Adriamycin)", + "- Epriubicin (Ellence) ", + "https://www.cancer.org/cancer/breast-cancer/treatment/chemotherapy-for-breast-cancer.html" + ], + "direct_transition": "Neoadjuvant chemotherapy procedure", + "assign_to_attribute": "breast_cancer_neoMed", + "reason": "breast_cancer_condition", + "administration": true + }, + "Epirubicin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1732186, + "display": "100 ML Epirubicin Hydrochloride 2 MG/ML Injection" + } + ], + "direct_transition": "Neoadjuvant chemotherapy procedure", + "assign_to_attribute": "breast_cancer_neoMed", + "reason": "breast_cancer_condition", + "administration": true + }, + "Paclitaxel": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 583214, + "display": "Paclitaxel 100 MG Injection" + } + ], + "direct_transition": "Neoadjuvant chemotherapy procedure", + "assign_to_attribute": "breast_cancer_neoMed", + "reason": "breast_cancer_condition", + "administration": true + }, + "Anthracyclines": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Doxorubicin", + "distribution": 0.5 + }, + { + "transition": "Epirubicin", + "distribution": 0.5 + } + ], + "remarks": [ + "The most common drugs used for adjuvant and neoadjuvant chemo include:", + "Anthracyclines, such as doxorubicin (Adriamycin) and epirubicin (Ellence)", + "Taxanes, such as paclitaxel (Taxol) and docetaxel (Taxotere)", + "5-fluorouracil (5-FU)", + "Cyclophosphamide (Cytoxan)", + "Carboplatin (Paraplatin)", + "Most often, combinations of 2 or 3 of these drugs are used:", + "https://www.cancer.org/cancer/breast-cancer/treatment/chemotherapy-for-breast-cancer.html" + ] + }, + "Taxanes": { + "type": "Simple", + "direct_transition": "Paclitaxel", + "remarks": [ + "The most common drugs used for adjuvant and neoadjuvant chemo include:", + "Anthracyclines, such as doxorubicin (Adriamycin) and epirubicin (Ellence)", + "Taxanes, such as paclitaxel (Taxol) and docetaxel (Taxotere)", + "5-fluorouracil (5-FU)", + "Cyclophosphamide (Cytoxan)", + "Carboplatin (Paraplatin)", + "Most often, combinations of 2 or 3 of these drugs are used:", + "https://www.cancer.org/cancer/breast-cancer/treatment/chemotherapy-for-breast-cancer.html" + ] + }, + "End_Neoadjuvant_Chemo_Treatment": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Increment pre-surgery chemo counter", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_neoCount", + "operator": "<", + "value": 7 + } + }, + { + "transition": "End Chemo Treatment" + } + ] + }, + "Chemotherapy Drugs": { + "type": "Simple", + "remarks": [ + "The most common drugs used for adjuvant and neoadjuvant chemo include:", + "Anthracyclines, such as doxorubicin (Adriamycin) and epirubicin (Ellence)", + "Taxanes, such as paclitaxel (Taxol) and docetaxel (Taxotere)", + "5-fluorouracil (5-FU)", + "Cyclophosphamide (Cytoxan)", + "Carboplatin (Paraplatin)", + "Most often, combinations of 2 or 3 of these drugs are used:", + "https://www.cancer.org/cancer/breast-cancer/treatment/chemotherapy-for-breast-cancer.html" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Doxorubicin" + }, + "distributions": [ + { + "transition": "Doxorubicin", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "PriorState", + "name": "Epirubicin" + }, + "distributions": [ + { + "transition": "Epirubicin", + "distribution": 1 + } + ] + }, + { + "distributions": [ + { + "transition": "Paclitaxel", + "distribution": 1 + } + ], + "condition": { + "condition_type": "PriorState", + "name": "Paclitaxel" + } + }, + { + "distributions": [ + { + "transition": "Anthracyclines", + "distribution": 0.5 + }, + { + "transition": "Taxanes", + "distribution": 0.5 + } + ] + } + ] + }, + "Set pre-surgery chemo counter": { + "type": "SetAttribute", + "attribute": "breast_cancer_neoCount", + "value": 0, + "distributed_transition": [ + { + "transition": "Stem Cell Treatment", + "distribution": 0.01 + }, + { + "transition": "Neoadjuvant Chemo Before Surgery", + "distribution": 0.99 + } + ] + }, + "Neoadjuvant chemotherapy procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "367336001", + "display": "Chemotherapy (procedure)" + } + ], + "duration": { + "low": 30, + "high": 240, + "unit": "minutes" + }, + "direct_transition": "End Neodjuvant Medication in Preparation for Surgery", + "remarks": [ + "Some last as long as three or four hours, while others may only take a half-hour:", + "https://www.cancercarenorthwest.com/frequently-asked-questions/" + ], + "reason": "breast_cancer_condition" + }, + "Increment pre-surgery chemo counter": { + "type": "Counter", + "attribute": "breast_cancer_neoCount", + "action": "increment", + "direct_transition": "Delay Until Next Cycle" + }, + "Delay Until Next Cycle": { + "type": "Delay", + "direct_transition": "Start New Chemo Cycle", + "range": { + "low": 19, + "high": 23, + "unit": "days" + }, + "remarks": [ + "Doctors give chemo in cycles, with each period of treatment followed by a rest period to give you time to recover from the effects of the drugs. Cycles are most often 2 or 3 weeks long. The schedule varies depending on the drugs used:", + "https://www.cancer.org/cancer/breast-cancer/treatment/chemotherapy-for-breast-cancer.html" + ] + }, + "Start New Chemo Cycle": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "breast_cancer_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Chemotherapy Drugs" + }, + "Begin Hormone Therapy Treatment": { + "type": "CallSubmodule", + "submodule": "breast_cancer/hormonetherapy_breast", + "direct_transition": "End Treatment", + "remarks": [ + "Order of hormone therapy after surgery and radiation was based off of a conversation with Doctor Jim O'Connor." + ] + }, + "Begin Surgery and Radiation Treatment": { + "type": "CallSubmodule", + "submodule": "breast_cancer/surgery_therapy_breast", + "direct_transition": "Begin Hormone Therapy Treatment", + "remarks": [ + "Order of hormone therapy after surgery and radiation was based off of a conversation with Doctor Jim O'Connor." + ] + }, + "Screening Mammogram": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "24623002", + "display": "Screening mammography (procedure)" + } + ], + "duration": { + "low": 15, + "high": 25, + "unit": "minutes" + }, + "distributed_transition": [ + { + "transition": "Ultrasound", + "distribution": 0.75 + }, + { + "transition": "MRI", + "distribution": 0.25 + } + ], + "remarks": [ + "Mammogram", + "A mammogram is an x-ray that allows a qualified specialist to examine the breast tissue for any suspicious areas. In a diagnostic mammogram, more x-rays are taken, providing views of the breast from multiple vantage points.", + "https://www.nationalbreastcancer.org/breast-cancer-diagnosis" + ] + }, + "Post-Treatment Surveillance": { + "type": "Simple", + "direct_transition": "Initialize Initial Follow-Up Counter" + }, + "Age 85-140": { + "type": "Delay", + "range": { + "low": 85, + "high": 140, + "unit": "years" + }, + "distributed_transition": [ + { + "transition": "Breast Cancer Screening Due", + "distribution": 0.48 + }, + { + "transition": "BreastCancer_Symptom1", + "distribution": 0.52 + } + ], + "remarks": [ + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4127601/pdf/WJCO-5-283.pdf" + ] + }, + "Age 0-39": { + "type": "Delay", + "remarks": [ + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4127601/pdf/WJCO-5-283.pdf" + ], + "range": { + "low": 0, + "high": 39, + "unit": "years" + }, + "direct_transition": "BreastCancer_Symptom1" + }, + "Age 69-85": { + "type": "Delay", + "range": { + "low": 70, + "high": 85, + "unit": "years" + }, + "distributed_transition": [ + { + "transition": "Breast Cancer Screening Due", + "distribution": 0.69 + }, + { + "transition": "BreastCancer_Symptom1", + "distribution": 0.31 + } + ], + "remarks": [ + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4127601/pdf/WJCO-5-283.pdf" + ] + }, + "Age 39-59": { + "type": "Delay", + "range": { + "low": 39, + "high": 59, + "unit": "years" + }, + "remarks": [ + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4127601/pdf/WJCO-5-283.pdf" + ], + "distributed_transition": [ + { + "transition": "Breast Cancer Screening Due", + "distribution": 0.63 + }, + { + "transition": "BreastCancer_Symptom1", + "distribution": 0.37 + } + ] + }, + "Age 60-69": { + "type": "Delay", + "range": { + "low": 60, + "high": 69, + "unit": "years" + }, + "remarks": [ + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4127601/pdf/WJCO-5-283.pdf" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "transition": "BreastCancer_Symptom1", + "distribution": 1 + } + ] + }, + { + "distributions": [ + { + "transition": "Breast Cancer Screening Due", + "distribution": 0.7 + }, + { + "transition": "BreastCancer_Symptom1", + "distribution": 0.3 + } + ] + } + ] + }, + "Improvement After Neoadjuvant Chemotherapy": { + "type": "Observation", + "category": "therapy", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88040-1", + "display": "Response to cancer treatment" + } + ], + "direct_transition": "Begin Surgery and Radiation Treatment", + "remarks": [ + "http://standardhealthrecord.org/guides/mcode/ValueSet-shr-core-ConditionStatusTrendVS.html" + ], + "value_code": { + "system": "SNOMED-CT", + "code": "385633008", + "display": "Improving (qualifier value)" + } + }, + "Improvement After Surgery/Therapy": { + "type": "Observation", + "category": "therapy", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88040-1", + "display": "Response to cancer treatment" + } + ], + "remarks": [ + "http://standardhealthrecord.org/guides/mcode/ValueSet-shr-core-ConditionStatusTrendVS.html" + ], + "value_code": { + "system": "SNOMED-CT", + "code": "385633008", + "display": "Improving (qualifier value)" + }, + "direct_transition": "Post-Treatment Surveillance" + }, + "Worsening After Surgery/Therapy": { + "type": "Observation", + "category": "therapy", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88040-1", + "display": "Response to cancer treatment" + } + ], + "remarks": [ + "http://standardhealthrecord.org/guides/mcode/ValueSet-shr-core-ConditionStatusTrendVS.html" + ], + "value_code": { + "system": "SNOMED-CT", + "code": "230993007", + "display": "Worsening (qualifier value)" + }, + "direct_transition": "Post-Treatment Surveillance" + }, + "Post-Op Cancer Status": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Ineffective Treatment", + "condition": { + "condition_type": "PriorState", + "name": "Treatment Unsuccessful" + } + }, + { + "transition": "Effective Treatment", + "condition": { + "condition_type": "PriorState", + "name": "Treatment Successful" + } + } + ] + }, + "Ineffective Treatment": { + "type": "Observation", + "category": "therapy", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88040-1", + "display": "Response to cancer treatment" + } + ], + "remarks": [ + "http://standardhealthrecord.org/guides/mcode/ValueSet-shr-core-ConditionStatusTrendVS.html" + ], + "value_code": { + "system": "SNOMED-CT", + "code": "230993007", + "display": "Worsening (qualifier value)" + }, + "direct_transition": "4 Months between Initial Follow-Ups" + }, + "Effective Treatment": { + "type": "Observation", + "category": "therapy", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88040-1", + "display": "Response to cancer treatment" + } + ], + "remarks": [ + "http://standardhealthrecord.org/guides/mcode/ValueSet-shr-core-ConditionStatusTrendVS.html" + ], + "value_code": { + "system": "SNOMED-CT", + "code": "385633008", + "display": "Improving (qualifier value)" + }, + "direct_transition": "4 Months between Initial Follow-Ups" + }, + "Breast Cancer Treatment Success Rate": { + "type": "Simple", + "remarks": [ + "The American Cancer Society report that 5-year survival rates break down by stage as follows:", + "Stage 0-1: Close to 100 percent survival rate. Approximately 61 percent of all breast cancers are diagnosed at this stage.", + "Stage 2: Relative survival rate of 93 percent.", + "Stage 3: Relative survival rate of 72 percent. Many women with this stage breast cancer are treated successfully.", + "Stage 4: Relative survival rate of 22 percent. Many different treatment options are available:", + "https://www.medicalnewstoday.com/articles/316867.php" + ], + "conditional_transition": [ + { + "transition": "Stage I Treatment", + "condition": { + "condition_type": "PriorState", + "name": "Stage I" + } + }, + { + "transition": "Stage II Treatment", + "condition": { + "condition_type": "PriorState", + "name": "Stage II" + } + }, + { + "transition": "Stage III Treatment", + "condition": { + "condition_type": "PriorState", + "name": "Stage III" + } + }, + { + "transition": "Stage IV Treatment", + "condition": { + "condition_type": "PriorState", + "name": "Stage IV" + } + } + ] + }, + "Impending Death from Cancer Complications": { + "type": "Death", + "referenced_by_attribute": "breast_cancer_condition", + "range": { + "low": 0, + "high": 5, + "unit": "years" + }, + "distributed_transition": [ + { + "transition": "Will Use Hospice", + "distribution": 0.3 + }, + { + "transition": "Sit-Down with Oncologist to Discuss Treatment Options", + "distribution": 0.7 + } + ] + }, + "Will Use Hospice": { + "type": "SetAttribute", + "attribute": "hospice", + "direct_transition": "Hospice Reason", + "value": true + }, + "Hospice Reason": { + "type": "SetAttribute", + "attribute": "hospice_reason", + "direct_transition": "Sit-Down with Oncologist to Discuss Treatment Options", + "value_attribute": "breast_cancer_condition" + }, + "End the Initial Encounter": { + "type": "EncounterEnd", + "direct_transition": "Delay for Analysis of Possible Treatments" + }, + "Discussion": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "223487003", + "display": "Discussion about options (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 45 + } + }, + "unit": "minutes", + "direct_transition": "End Meeting with Oncologist", + "reason": "breast_cancer_condition" + }, + "Follow up examination": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "25656009", + "display": "Physical examination, complete (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 45, + "low": 30 + } + }, + "unit": "minutes", + "reason": "breast_cancer_condition", + "direct_transition": "End Initial Follow-Up Doctor Visit" + }, + "Breast Cancer Screening Due": { + "type": "SetAttribute", + "attribute": "breast_cancer_screening_due", + "direct_transition": "Regular Mammogram Visit", + "value_code": { + "system": "SNOMED-CT", + "code": "268547008", + "display": "Screening for malignant neoplasm of breast (procedure)" + } + }, + "Stem Cell Treatment": { + "type": "SetAttribute", + "attribute": "bone_marrow", + "direct_transition": "Neoadjuvant Chemo Before Surgery", + "value": true + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/breast_cancer/chemotherapy_breast.json b/src/main/resources/modules/breast_cancer/chemotherapy_breast.json new file mode 100644 index 0000000..acfc987 --- /dev/null +++ b/src/main/resources/modules/breast_cancer/chemotherapy_breast.json @@ -0,0 +1,323 @@ +{ + "name": "chemotherapy_breast", + "remarks": [ + "This module consists of the different chemo drugs and goes through the adjuvant chemo cycle after surgery. " + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Set chemo counter" + }, + "Cyclophosphamide": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1734919, + "display": "Cyclophosphamide 1000 MG Injection" + } + ], + "direct_transition": "Adjuvant Chemotherapy Procedure", + "assign_to_attribute": "chemoMed", + "reason": "breast_cancer_condition", + "administration": true + }, + "Anthracyclines": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Doxorubicin", + "distribution": 0.5 + }, + { + "transition": "Epirubicin", + "distribution": 0.5 + } + ] + }, + "Carboplatin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 597195, + "display": "Carboplatin 10 MG/ML Injectable Solution" + } + ], + "direct_transition": "Adjuvant Chemotherapy Procedure", + "assign_to_attribute": "chemoMed", + "reason": "breast_cancer_condition", + "administration": true + }, + "Taxanes": { + "type": "Simple", + "direct_transition": "Paclitaxel" + }, + "5-fluorouracil": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1791701, + "display": "10 ML Fluorouracil 50 MG/ML Injection" + } + ], + "direct_transition": "Adjuvant Chemotherapy Procedure", + "assign_to_attribute": "chemoMed", + "reason": "breast_cancer_condition", + "administration": true + }, + "Doxorubicin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1790099, + "display": "10 ML Doxorubicin Hydrochloride 2 MG/ML Injection" + } + ], + "direct_transition": "Adjuvant Chemotherapy Procedure", + "remarks": [ + "- Doxorubicin (Adriamycin)", + "- Epriubicin (Ellence) ", + "https://www.cancer.org/cancer/breast-cancer/treatment/chemotherapy-for-breast-cancer.html" + ], + "assign_to_attribute": "chemoMed", + "reason": "breast_cancer_condition", + "administration": true + }, + "Epirubicin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1732186, + "display": "100 ML Epirubicin Hydrochloride 2 MG/ML Injection" + } + ], + "direct_transition": "Adjuvant Chemotherapy Procedure", + "assign_to_attribute": "chemoMed", + "reason": "breast_cancer_condition", + "administration": true + }, + "Paclitaxel": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 583214, + "display": "Paclitaxel 100 MG Injection" + } + ], + "direct_transition": "Adjuvant Chemotherapy Procedure", + "assign_to_attribute": "chemoMed", + "reason": "breast_cancer_condition", + "administration": true + }, + "Adjuvant Chemotherapy Procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "367336001", + "display": "Chemotherapy (procedure)" + } + ], + "duration": { + "low": 0, + "high": 2, + "unit": "hours" + }, + "direct_transition": "End Current Adjuvant Chemo Medication" + }, + "Terminal": { + "type": "Terminal" + }, + "End Current Chemo Treatment": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Increment Chemo Counter", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_chemoCount", + "operator": "<", + "value": 7 + } + }, + { + "transition": "Terminal" + } + ] + }, + "Increment Chemo Counter": { + "type": "Counter", + "attribute": "breast_cancer_chemoCount", + "action": "increment", + "direct_transition": "Delay Until Next Cycle (3 Weeks)" + }, + "Start New Cycle": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Breast Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Choose Chemo Drug" + }, + "Set chemo counter": { + "type": "SetAttribute", + "attribute": "breast_cancer_chemoCount", + "value": 0, + "remarks": [ + "https://www.cancer.org/cancer/breast-cancer/treatment/chemotherapy-for-breast-cancer.html", + "", + "Which chemotherapy drugs are used for breast cancer?", + "In most cases (especially as adjuvant or neoadjuvant treatment), chemo is most effective when combinations of drugs are used. Today, doctors use many different combinations, and it's not clear that any single combination is clearly the best.", + "", + "The most common drugs used for adjuvant and neoadjuvant chemo include:", + "Anthracyclines, such as doxorubicin (Adriamycin) and epirubicin (Ellence)", + "Taxanes, such as paclitaxel (Taxol) and docetaxel (Taxotere)", + "5-fluorouracil (5-FU)", + "Cyclophosphamide (Cytoxan)", + "Carboplatin (Paraplatin)", + "Most often, combinations of 2 or 3 of these drugs are used." + ], + "direct_transition": "Choose Chemo Drug" + }, + "Delay Until Next Cycle (3 Weeks)": { + "type": "Delay", + "direct_transition": "Start New Cycle", + "range": { + "low": 19, + "high": 23, + "unit": "days" + } + }, + "Choose Chemo Drug": { + "type": "Simple", + "remarks": [ + "https://www.cancer.org/cancer/breast-cancer/treatment/chemotherapy-for-breast-cancer.html", + "", + "Which chemotherapy drugs are used for breast cancer?", + "In most cases (especially as adjuvant or neoadjuvant treatment), chemo is most effective when combinations of drugs are used. Today, doctors use many different combinations, and it's not clear that any single combination is clearly the best.", + "", + "The most common drugs used for adjuvant and neoadjuvant chemo include:", + "Anthracyclines, such as doxorubicin (Adriamycin) and epirubicin (Ellence)", + "Taxanes, such as paclitaxel (Taxol) and docetaxel (Taxotere)", + "5-fluorouracil (5-FU)", + "Cyclophosphamide (Cytoxan)", + "Carboplatin (Paraplatin)", + "Most often, combinations of 2 or 3 of these drugs are used." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Cyclophosphamide" + }, + "distributions": [ + { + "transition": "Cyclophosphamide", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "PriorState", + "name": "Doxorubicin" + }, + "distributions": [ + { + "transition": "Doxorubicin", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "PriorState", + "name": "Epirubicin" + }, + "distributions": [ + { + "transition": "Epirubicin", + "distribution": 1 + } + ] + }, + { + "distributions": [ + { + "transition": "Carboplatin", + "distribution": 1 + } + ], + "condition": { + "condition_type": "PriorState", + "name": "Carboplatin" + } + }, + { + "condition": { + "condition_type": "PriorState", + "name": "Paclitaxel" + }, + "distributions": [ + { + "transition": "Paclitaxel", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "PriorState", + "name": "5-fluorouracil" + }, + "distributions": [ + { + "transition": "5-fluorouracil", + "distribution": 1 + } + ] + }, + { + "distributions": [ + { + "transition": "Cyclophosphamide", + "distribution": 0.3 + }, + { + "transition": "Anthracyclines", + "distribution": 0.3 + }, + { + "transition": "Carboplatin", + "distribution": 0.05 + }, + { + "transition": "Taxanes", + "distribution": 0.3 + }, + { + "transition": "5-fluorouracil", + "distribution": 0.05 + } + ] + } + ] + }, + "End Current Adjuvant Chemo Medication": { + "type": "MedicationEnd", + "direct_transition": "End Current Chemo Treatment", + "referenced_by_attribute": "chemoMed" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/breast_cancer/hormone_diagnosis.json b/src/main/resources/modules/breast_cancer/hormone_diagnosis.json new file mode 100644 index 0000000..a30b449 --- /dev/null +++ b/src/main/resources/modules/breast_cancer/hormone_diagnosis.json @@ -0,0 +1,431 @@ +{ + "name": "Hormone_Diagnosis", + "remarks": [ + "This module checks for HER2 and then assigns either HER2 positive/negative. This follows suit for ER and PR. Finally, it accounts for the Triple negative factor at the end. " + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Human_Epidermal_Growth_Factor_Receptor_2__HER2__Detection___Fluorescence_in_situ_Hybridization__FISH_" + }, + "Terminal": { + "type": "Terminal" + }, + "Human_Epidermal_Growth_Factor_Receptor_2__HER2__Detection___Fluorescence_in_situ_Hybridization__FISH_": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "434363004", + "display": "Human epidermal growth factor receptor 2 gene detection by fluorescence in situ hybridization (procedure)" + } + ], + "duration": { + "low": 1, + "high": 2, + "unit": "days" + }, + "remarks": [ + "Fluorescence in situ hybridization (FISH), which detects the number of HER2 genes in the cancer cells:", + "https://ww5.komen.org/BreastCancer/TumorCharacteristics.html", + "", + "FISH results are usually available from the lab within a few days:", + "https://www.verywellhealth.com/fish-test-2252457" + ], + "direct_transition": "Human_Epidermal_Growth_Factor_Receptor_2_HER2_Detection_Immunochemistry", + "reason": "breast_cancer_condition" + }, + "HER2_negative": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "85319-2", + "display": "HER2 [Presence] in Breast cancer specimen by Immune stain" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + }, + "direct_transition": "HER2 ratio less than 1point8" + }, + "HER2_positive": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "85319-2", + "display": "HER2 [Presence] in Breast cancer specimen by Immune stain" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "10828004", + "display": "Positive (qualifier value)" + }, + "direct_transition": "HER2_ratio_greater_than_2point2" + }, + "Tumor_Biopsy_to_Test_Estrogen_Receptor_Status": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "ER_negative", + "distribution": 0.2 + }, + { + "transition": "ER_positive", + "distribution": 0.8 + } + ], + "remarks": [ + "About 80% of all breast cancers are “ER-positive.” That means the cancer cells grow in response to the hormone estrogen.:", + "https://www.webmd.com/breast-cancer/breast-cancer-types-er-positive-her2-positive#1" + ] + }, + "ER_negative": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "85337-4", + "display": "Estrogen receptor Ag [Presence] in Breast cancer specimen by Immune stain" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + }, + "direct_transition": "ER-" + }, + "ER_positive": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "85337-4", + "display": "Estrogen receptor Ag [Presence] in Breast cancer specimen by Immune stain" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "10828004", + "display": "Positive (qualifier value)" + }, + "direct_transition": "ER+" + }, + "Tumor_Biopsy_to_Test_Progesterone_Receptor_Status": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "PR_negative", + "distribution": 0.35 + }, + { + "transition": "PR_positive", + "distribution": 0.65 + } + ], + "remarks": [ + "About 80% of all breast cancers are “ER-positive.” That means the cancer cells grow in response to the hormone estrogen. About 65% of these are also “PR-positive.” They grow in response to another hormone, progesterone.:", + "https://www.webmd.com/breast-cancer/breast-cancer-types-er-positive-her2-positive#1" + ] + }, + "PR_negative": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "85339-0", + "display": "Progesterone receptor Ag [Presence] in Breast cancer specimen by Immune stain" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + }, + "direct_transition": "PR-" + }, + "PR_positive": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "85339-0", + "display": "Progesterone receptor Ag [Presence] in Breast cancer specimen by Immune stain" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "10828004", + "display": "Positive (qualifier value)" + }, + "direct_transition": "PR+" + }, + "Overall_Receptor_Analysis": { + "type": "Simple", + "remarks": [ + "If all hormones are negative transition to triple negative" + ], + "conditional_transition": [ + { + "transition": "Hormone Receptor Negative", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "breast_cancer_ER", + "operator": "==", + "value": "ER-negative" + }, + { + "condition_type": "Attribute", + "attribute": "breast_cancer_PR", + "operator": "==", + "value": "PR-negative" + } + ] + } + }, + { + "transition": "Hormone Receptor Positive", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "breast_cancer_ER", + "operator": "==", + "value": "ER-positive" + }, + { + "condition_type": "Attribute", + "attribute": "breast_cancer_PR", + "operator": "==", + "value": "PR-positive" + } + ] + } + }, + { + "transition": "Terminal" + } + ] + }, + "HER2-": { + "type": "SetAttribute", + "attribute": "breast_cancer_HER2", + "direct_transition": "Tumor_Biopsy_to_Test_Estrogen_Receptor_Status", + "value": "HER2-negative" + }, + "HER2+": { + "type": "SetAttribute", + "attribute": "breast_cancer_HER2", + "value": "HER2-positive", + "direct_transition": "Tumor_Biopsy_to_Test_Estrogen_Receptor_Status" + }, + "ER-": { + "type": "SetAttribute", + "attribute": "breast_cancer_ER", + "direct_transition": "Tumor_Biopsy_to_Test_Progesterone_Receptor_Status", + "value": "ER-negative" + }, + "ER+": { + "type": "SetAttribute", + "attribute": "breast_cancer_ER", + "direct_transition": "Tumor_Biopsy_to_Test_Progesterone_Receptor_Status", + "value": "ER-positive" + }, + "PR-": { + "type": "SetAttribute", + "attribute": "breast_cancer_PR", + "direct_transition": "Overall_Receptor_Analysis", + "value": "PR-negative" + }, + "PR+": { + "type": "SetAttribute", + "attribute": "breast_cancer_PR", + "direct_transition": "Overall_Receptor_Analysis", + "value": "PR-positive" + }, + "Triple_Negative": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21924-6", + "display": "Tumor marker Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + }, + "direct_transition": "Triple_Negative_Patient", + "remarks": [ + "In women with triple-negative breast cancer, the malignant cells do not contain receptors for estrogen, progesterone or HER2. Breast cancer that is ER-, PR- and HER2-negative cannot be treated with hormone therapy or medications that work by blocking HER2, such as trastuzumab." + ] + }, + "Hormone Receptor Positive": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "10480-2", + "display": "Estrogen+Progesterone receptor Ag [Presence] in Tissue by Immune stain" + } + ], + "direct_transition": "Terminal", + "value_code": { + "system": "SNOMED-CT", + "code": "10828004", + "display": "Positive (qualifier value)" + }, + "remarks": [ + "Hormone receptor-positive (estrogen receptor-positive (ER-positive)/progesterone receptor-positive (PR-positive)) tumors express (have a lot of) hormone receptors.:", + "https://ww5.komen.org/BreastCancer/TumorCharacteristics.html" + ] + }, + "Hormone Receptor Negative": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "10480-2", + "display": "Estrogen+Progesterone receptor Ag [Presence] in Tissue by Immune stain" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + }, + "conditional_transition": [ + { + "transition": "Triple_Negative", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_HER2", + "operator": "==", + "value": "HER2-negative" + } + }, + { + "transition": "Terminal" + } + ], + "remarks": [ + "Hormone receptor-negative (estrogen receptor-negative (ER-negative)/progesterone receptor-negative (PR- negative)) tumors do not express (have few or no) hormone receptors.:", + "https://ww5.komen.org/BreastCancer/TumorCharacteristics.html" + ] + }, + "Human_Epidermal_Growth_Factor_Receptor_2_HER2_Detection_Immunochemistry": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "433114000", + "display": "Human epidermal growth factor receptor 2 gene detection by immunohistochemistry (procedure)" + } + ], + "duration": { + "low": 2, + "high": 4, + "unit": "hours" + }, + "remarks": [ + "Immunohistochemistry (IHC), which detects the number of HER2 protein receptors in the cancer cells:", + "https://ww5.komen.org/BreastCancer/TumorCharacteristics.html", + "", + "In about 20% of breast cancers, the cells make too much of a protein known as HER2. These cancers tend to be aggressive and fast-growing:", + "https://www.webmd.com/breast-cancer/breast-cancer-types-er-positive-her2-positive#1", + "", + "All antibody-antigen interactions investigated in this study, both the primary antibody binding to its target and the secondary antibody binding to the primary, require several hours to reach equilibrium at the concentrations used:", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3878317/" + ], + "distributed_transition": [ + { + "transition": "HER2_negative", + "distribution": 0.8 + }, + { + "transition": "HER2_positive", + "distribution": 0.2 + } + ], + "reason": "breast_cancer_condition" + }, + "Triple_Negative_Patient": { + "type": "SetAttribute", + "attribute": "breast_cancer_triple_negative", + "direct_transition": "Terminal", + "value": true + }, + "HER2 ratio less than 1point8": { + "type": "Observation", + "category": "laboratory", + "unit": "ratio", + "codes": [ + { + "system": "LOINC", + "code": "85318-4", + "display": "HER2 [Presence] in Breast cancer specimen by FISH" + } + ], + "direct_transition": "HER2-", + "remarks": [ + "Title of the article: HER2 Evaluation and Its Impact on Breast Cancer Treatment Decisions", + "", + "https://wwwncbinlmnihgov/pmc/articles/PMC3225235/" + ], + "exact": { + "quantity": "less than 1.8" + } + }, + "HER2_ratio_greater_than_2point2": { + "type": "Observation", + "category": "laboratory", + "unit": "ratio", + "codes": [ + { + "system": "LOINC", + "code": "85318-4", + "display": "HER2 [Presence] in Breast cancer specimen by FISH" + } + ], + "direct_transition": "HER2+", + "remarks": [ + "Title of the article: HER2 Evaluation and Its Impact on Breast Cancer Treatment Decisions", + "", + "https://wwwncbinlmnihgov/pmc/articles/PMC3225235/" + ], + "exact": { + "quantity": "greater than 2.2" + } + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/breast_cancer/hormonetherapy_breast.json b/src/main/resources/modules/breast_cancer/hormonetherapy_breast.json new file mode 100644 index 0000000..8f7c415 --- /dev/null +++ b/src/main/resources/modules/breast_cancer/hormonetherapy_breast.json @@ -0,0 +1,544 @@ +{ + "name": "hormonetherapy_breast", + "remarks": [ + "This module has ER/PR and HER2 treatments depending on whether each receptor is positive or negative. There is also treatment for if ER/PR are both positive. " + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "ER-encounter" + }, + "Fulvestrant": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 727762, + "display": "5 ML fulvestrant 50 MG/ML Prefilled Syringe" + } + ], + "direct_transition": "ER_medication_end", + "assign_to_attribute": "ER_medication", + "remarks": [ + "https://www.cancer.org/cancer/breast-cancer/treatment/hormone-therapy-for-breast-cancer.html", + "", + "Fulvestrant (Faslodex)", + "Fulvestrant is a drug that blocks and damages estrogen receptors.This drug is not a SERM – it acts like an anti-estrogen throughout the body. It is also known as a selective estrogen receptor degrader (SERD).", + "", + "Fulvestrant is used to treat metastatic breast cancer, most often after other hormone drugs (like tamoxifen and often an aromatase inhibitor) have stopped working.", + "", + "It is given by injections into the buttocks. For the first month, the shots are given 2 weeks apart. After that, they are given once a month. Common short-term side effects can include:", + "", + "Hot flashes and/or night sweats", + "Headache", + "Mild nausea", + "Bone pain", + "Injection site pain", + "Because fulvestrant blocks estrogen, in theory it could cause weakened bones (osteoporosis) if taken for a long time. Fulvestrant is currently approved only for use in post-menopausal women. It is sometimes used “off-label” in pre-menopausal women, often combined with a luteinizing-hormone releasing hormone (LHRH) agonist to turn off the ovaries (see the section on Ovarian Ablation below)." + ], + "reason": "breast_cancer_condition", + "administration": true + }, + "Aromatase Inhibitors (AI)": { + "type": "SetAttribute", + "attribute": "breast_cancer_aromatase_inhibitors", + "distributed_transition": [ + { + "transition": "Letrozole", + "distribution": 0.33 + }, + { + "transition": "Anastrozole", + "distribution": 0.33 + }, + { + "transition": "Exemestane", + "distribution": 0.34 + } + ], + "value": true, + "remarks": [ + "https://www.cancer.org/cancer/breast-cancer/treatment/hormone-therapy-for-breast-cancer.html", + "", + "Aromatase inhibitors (AIs)", + "Aromatase inhibitors (AIs) are drugs that stop estrogen production. Before menopause, most estrogen is made by the ovaries. But for women whose ovaries aren’t working, either due to menopause or certain treatments, a small amount of estrogen is still made in the fat tissue by an enzyme (called aromatase). AIs work by blocking aromatase from making estrogen.", + "", + "These drugs are useful in women who are past menopause, although they can also be used in premenopausal women in combination with ovarian suppression (see below).", + "", + "There are 3 AIs that seem to work about equally well in treating breast cancer:", + "", + "Letrozole (Femara)", + "Anastrozole (Arimidex)", + "Exemestane (Aromasin)", + "These drugs are pills taken daily.", + "", + "Use in adjuvant therapy: After surgery, taking an AI, either alone or after tamoxifen, has been shown to work better than taking just tamoxifen for 5 years to reduce the risk of the cancer coming back .", + "", + "Schedules that are known to be helpful include:", + "", + "Tamoxifen for 2 to 3 years, followed by an AI to complete 5 years of treatment", + "An AI for 2 to 3 years followed by Tamoxifen to complete 5 years of treatment", + "Tamoxifen for 5 years, followed by an AI for 5 years", + "An AI for 5 years", + "Tamoxifen for 5 to 10 years (if you are unable to take an AI)", + "For most post-menopausal women whose cancers are hormone receptor-positive, most doctors recommend taking an AI at some point during adjuvant therapy. Right now, standard treatment is to take these drugs for about 5 years, or to alternate with tamoxifen for a total of at least 5 years, or to take in sequence with tamoxifen for at least 3 years. Studies are now being done to see if taking an AI for more than 5 years would be more helpful. Tamoxifen is an option for some women who cannot take an AI. Taking tamoxifen for 10 years is considered more effective than taking it for 5 years, but you and your doctor will decide the best schedule of treatment for you.", + "", + "If you have early-stage breast cancer and had not gone through menopause when you were first diagnosed, your doctor might recommend taking tamoxifen first, and then taking an AI later if you go through menopause during treatment. Another option is taking a drug called a luteinizing hormone-releasing hormone (LHRH) analog, which turns off the ovaries, along with an AI. An AI should not be taken alone for breast cancer treatment in pre-menopausal women because it is unsafe and can increase hormone levels.", + "", + "Use in cancer that comes back or has spread: AIs can also be used to treat more advanced hormone-positive breast cancers, especially in post-menopausal women. They are often continued for as long as they are helpful.", + "", + "Possible side effects: The AIs tend to have fewer serious side effects than tamoxifen. They don't cause uterine cancers and very rarely cause blood clots. They can, however, cause muscle pain and joint stiffness and/or pain. The joint pain may be similar to a feeling of having arthritis in many different joints at one time. Switching to a different AI may improve this side effect, but it has led some women to stop treatment. If this happens, most doctors recommend using tamoxifen to complete 5 to 10 years of hormone treatment.", + "", + "Because AIs drastically lower the estrogen level in women after menopause, they can also cause bone thinning, sometimes leading to osteoporosis and even fractures. If you are taking an AI, your bone density may be tested and you may also be given drugs, such as bisphosphonates or denosumab (Xgeva, Prolia), to strengthen your bones.", + "", + "" + ] + }, + "Letrozole": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 200064, + "display": "letrozole 2.5 MG Oral Tablet" + } + ], + "direct_transition": "ER_medication_end", + "assign_to_attribute": "ER_medication", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 7, + "unit": "years" + } + }, + "reason": "breast_cancer_condition", + "administration": true + }, + "Anastrozole": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 199224, + "display": "anastrozole 1 MG Oral Tablet" + } + ], + "direct_transition": "ER_medication_end", + "assign_to_attribute": "ER_medication", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 7, + "unit": "years" + } + }, + "reason": "breast_cancer_condition", + "administration": true + }, + "Exemestane": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 310261, + "display": "exemestane 25 MG Oral Tablet" + } + ], + "direct_transition": "ER_medication_end", + "assign_to_attribute": "ER_medication", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 7, + "unit": "years" + } + }, + "reason": "breast_cancer_condition", + "administration": true + }, + "ER-Treatments": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Estrogen Blocking Receptors", + "distribution": 0.6 + }, + { + "transition": "Fulvestrant", + "distribution": 0.1 + }, + { + "transition": "Aromatase Inhibitors (AI)", + "distribution": 0.3 + } + ], + "remarks": [ + "https://www.breastcancer.org/research-news/5-more-years-of-ais-no-better-than-2-more", + "" + ] + }, + "HER2-Treatment": { + "type": "Simple", + "remarks": [ + "https://www.cancer.org/cancer/breast-cancer/treatment/targeted-therapy-for-breast-cancer.html", + "", + "For about 1 in 5 women with breast cancer, the cancer cells have too much of a growth-promoting protein known as HER2/neu (or just HER2) on their surface. These cancers, known as HER2-positive breast cancers, tend to grow and spread more aggressively. A number of drugs have been developed that target this protein:", + "", + "Trastuzumab (Herceptin): This is a monoclonal antibody, which is a man-made version of a very specific immune system protein. It is often given along with chemo, but it might also be used alone (especially if chemo alone has already been tried). Trastuzumab can be used to treat both early- and late-stage breast cancer. When started before or after surgery to treat early breast cancer, this drug is usually given for a total of 6 months to a year. For advanced breast cancer, treatment is often given for as long as the drug is helpful. This drug is given into a vein (IV) and is infused over 30-90 minutes. Another type of trastuzumab called trastuzumab and hyaluronidase-oysk injection (Herceptin Hylecta) is also available. It is given as a subcutaneous (under the skin) shot that takes about 2 to 5 minutes to inject.", + "Pertuzumab (Perjeta): This monoclonal antibody can be given with trastuzumab and chemo, either before surgery to treat early-stage breast cancer, or to treat advanced breast cancer. This drug is given into a vein (IV).", + "Ado-trastuzumab emtansine (Kadcyla, also known as TDM-1): This is a monoclonal antibody attached to a chemotherapy drug. It is used by itself to treat advanced breast cancer in women who have already been treated with trastuzumab and chemo. This drug is also given in a vein (IV).", + "Lapatinib (Tykerb): This is a kinase inhibitor. It is a pill taken daily. Lapatinib is used to treat advanced breast cancer, and might be used along with certain chemotherapy drugs, trastuzumab, or hormone therapy drugs.", + "Neratinib (Nerlynx): This is another kinase inhibitor. It is a pill that is taken daily. Neratinib is used to treat early-stage breast cancer after a woman has completed one year of trastuzumab and is usually given for one year. Some clinical trials show that it may also be effective in advanced breast cancer, as well.", + "Side effects of targeted therapy for HER2-positive breast cancer", + "The side effects of these drugs are often mild, but some can be serious. Discuss what you can expect with your doctor.", + "", + "Some women develop heart damage during or after treatment with trastuzumab, pertuzumab, or ado-trastuzumab emtansine. This can lead to congestive heart failure. For most (but not all) women, this effect lasts a short time and gets better when the drug is stopped. The risk of heart problems is higher when these drugs are given with certain chemo drugs that also can cause heart damage, such as doxorubicin (Adriamycin) and epirubicin (Ellence). Because these drugs can cause heart damage, doctors often check your heart function (with an echocardiogram or a MUGA scan) before treatment, and again while you are taking the drug. Let your doctor know if you develop symptoms such as shortness of breath, leg swelling, and severe fatigue.", + "", + "Lapatinib and neratinib can cause severe diarrhea, so it’s very important to let your health care team know about any changes in bowel habits as soon as they happen. Lapatinib can also cause hand-foot syndrome, in which the hands and feet become sore and red, and may blister and peel. Pertuzumab can also cause diarrhea. ", + "", + "If you are pregnant, you should not take these drugs. They can harm and even cause death to the fetus. If you could become pregnant, talk to your doctor about using effective birth control while taking these drugs.", + "", + "Targeted therapy for hormone receptor-positive breast cancer", + "About 2 of 3 breast cancers are hormone receptor-positive (ER-positive or PR-positive). For women with these cancers, treatment with hormone therapy is often helpful. Certain targeted therapy drugs can make hormone therapy even more effective, although these targeted drugs might also add to the side effects." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_HER2", + "operator": "==", + "value": "HER2-positive" + }, + "distributions": [ + { + "transition": "Trastuzumab_her2", + "distribution": 0.9 + }, + { + "transition": "Ado_trastuzumab_emtansine", + "distribution": 0.03 + }, + { + "transition": "Lapatinib", + "distribution": 0.03 + }, + { + "transition": "Neratinib", + "distribution": 0.04 + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "Hormone_Receptor_Positive_Treatments" + } + ] + } + ] + }, + "Ado_trastuzumab_emtansine": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1658084, + "display": "ado-trastuzumab emtansine 100 MG Injection" + } + ], + "direct_transition": "HER2_medication_end", + "assign_to_attribute": "HER2_medication", + "reason": "breast_cancer_condition", + "administration": true + }, + "Lapatinib": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 672149, + "display": "lapatinib 250 MG Oral Tablet" + } + ], + "direct_transition": "HER2_medication_end", + "assign_to_attribute": "HER2_medication", + "reason": "breast_cancer_condition", + "administration": true + }, + "Neratinib": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1940648, + "display": "neratinib 40 MG Oral Tablet" + } + ], + "direct_transition": "HER2_medication_end", + "assign_to_attribute": "HER2_medication", + "reason": "breast_cancer_condition", + "administration": true + }, + "Trastuzumab_her2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 2119714, + "display": "5 ML hyaluronidase-oysk 2000 UNT/ML / trastuzumab 120 MG/ML Injection" + } + ], + "direct_transition": "HER2_medication_end", + "assign_to_attribute": "HER2_medication", + "reason": "breast_cancer_condition", + "administration": true + }, + "CDK4/6 Inhibitors": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Abemaciclib", + "distribution": 0.33 + }, + { + "transition": "Palbociclib", + "distribution": 0.33 + }, + { + "transition": "Ribociclib", + "distribution": 0.34 + } + ], + "remarks": [ + "https://www.cancer.org/cancer/breast-cancer/treatment/targeted-therapy-for-breast-cancer.html", + "", + "CDK4/6 inhibitors", + "Palbociclib (Ibrance), ribociclib (Kisqali), and abemaciclib (Verzenio) are drugs that block proteins in the cell called cyclin-dependent kinases (CDKs), particularly CDK4 and CDK6. Blocking these proteins in hormone receptor-positive breast cancer cells helps stop the cells from dividing. This can slow cancer growth.", + "", + "These drugs are approved for women with advanced hormone receptor-positive, HER2-negative breast cancer and are taken as pills, typically once or twice a day.", + "", + "There are different ways to use these drugs.", + "", + "Any of the three drugs can be given along with an aromatase inhibitor (such as letrozole) or fulvestrant to women who have gone through menopause.", + "Palbociclib or abemaciclib can be given with fulvestrant to women who are still having regular periods (premenopausal) or are almost in menopause (perimenopausal). These women, however, must also be on medicines, such as luteinizing hormone-releasing hormone (LHRH) analogs, that stop the ovaries from making estrogen.", + "Ribociclib can be given with an aromatase inhibitor to women who have not gone through menopause. Again, these women must also be on medicines that suppress the ovaries, such as a luteinizing hormone-releasing hormone (LHRH) analogs. ", + "Abemaciclib can also be used by itself in women who have previously been treated with hormone therapy and chemotherapy.", + "", + "Side effects of these drugs tend to be mild. The most common side effects are low blood cell counts and fatigue. Nausea and vomiting, mouth sores, hair loss, diarrhea, and headache are less common side effects. Very low white blood cell counts can increase the risk of serious infection.", + "", + "" + ] + }, + "Abemaciclib": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1946840, + "display": "Verzenio 100 MG Oral Tablet" + } + ], + "direct_transition": "ER_PR_medication_end", + "assign_to_attribute": "ER_PR_medication", + "reason": "breast_cancer_condition", + "administration": true + }, + "Palbociclib": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1601380, + "display": "palbociclib 100 MG Oral Capsule" + } + ], + "direct_transition": "ER_PR_medication_end", + "assign_to_attribute": "ER_PR_medication", + "reason": "breast_cancer_condition", + "administration": true + }, + "Ribociclib": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1873983, + "display": "ribociclib 200 MG Oral Tablet" + } + ], + "direct_transition": "ER_PR_medication_end", + "assign_to_attribute": "ER_PR_medication", + "reason": "breast_cancer_condition", + "administration": true + }, + "ER-encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "breast_cancer_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "conditional_transition": [ + { + "transition": "ER-Treatments", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "breast_cancer_PR", + "operator": "==", + "value": "PR-positive" + }, + { + "condition_type": "Attribute", + "attribute": "breast_cancer_ER", + "operator": "==", + "value": "ER-positive" + } + ] + } + }, + { + "transition": "Upper Stage Treatment" + } + ] + }, + "Upper Stage Treatment": { + "type": "Simple", + "direct_transition": "HER2-Treatment" + }, + "Terminal": { + "type": "Terminal" + }, + "end_encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Hormone_Receptor_Positive_Treatments": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "CDK4/6 Inhibitors", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "breast_cancer_ER", + "operator": "==", + "value": "ER-positive" + }, + { + "condition_type": "Attribute", + "attribute": "breast_cancer_PR", + "operator": "==", + "value": "PR-positive" + } + ] + } + }, + { + "transition": "end_encounter" + } + ] + }, + "Tamoxifen": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 198240, + "display": "Tamoxifen 10 MG Oral Tablet" + } + ], + "direct_transition": "ER_medication_end", + "assign_to_attribute": "ER_medication", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "years" + } + }, + "reason": "breast_cancer_condition", + "administration": true + }, + "Estrogen Blocking Receptors": { + "type": "SetAttribute", + "attribute": "breast_cancer_tamoxifen", + "direct_transition": "Tamoxifen", + "value": true, + "remarks": [ + "https://www.cancer.org/cancer/breast-cancer/treatment/hormone-therapy-for-breast-cancer.html", + "", + "Tamoxifen", + "This drug blocks estrogen receptors on breast cancer cells. It stops estrogen from connecting to the cancer cells and telling them to grow and divide. While tamoxifen acts like an anti-estrogen in breast cells, it acts like an estrogen in other tissues, like the uterus and the bones. Because of this, it is called a selective estrogen receptor modulator (SERM).", + "", + "Tamoxifen can be used in several ways:", + "", + "For women with hormone receptor-positive breast cancer treated with surgery, tamoxifen can help lower the chances of the cancer coming back and raise the chances of living longer. It can also lower the risk of getting a new cancer in the other breast. Tamoxifen can be started either after surgery (adjuvant therapy) or before surgery (neoadjuvant therapy) and is usually taken for 5 to 10 years. For early- stage breast cancer, this drug is mainly used for women who have not yet gone through menopause. (If you have gone through menopause, aromatase inhibitors are usually used instead.)", + "For women who have been treated for ductal carcinoma in situ (DCIS) that is hormone receptor-positive, taking tamoxifen for 5 years lowers the chance of the DCIS coming back. It also lowers the chance of getting an invasive breast cancer.", + "For women with hormone-positive breast cancer that has spread to other parts of the body, tamoxifen can often help slow or stop the growth of the cancer, and might even shrink some tumors.", + "In women at high risk of breast cancer, tamoxifen can be used to help lower the risk of developing breast cancer.", + "Toremifene (Fareston) is another SERM that works in a similar way, but it is used less often and is only approved to treat metastatic breast cancer. It is not likely to work if tamoxifen has already been used and has stopped working. These drugs are taken by mouth as a pill. The most common side effects of tamoxifen and toremifene are:", + "", + "Hot flashes", + "Vaginal dryness or discharge", + "Mood swings", + "Some women with cancer spread to the bones may have a tumor flare with pain and swelling in the muscles and bones. This usually decreases quickly, but in some rare cases a woman may also develop a high calcium level in the blood that is hard to control. If this happens, the treatment may need to be stopped for a time.", + "", + "Rare, but more serious side effects are also possible:", + "", + "If a woman has gone through menopause, these drugs can increase her risk of developing uterine cancer . Tell your doctor right away about any unusual vaginal bleeding (a common symptom of both of these cancers). Most uterine bleeding is not from cancer, but this symptom always needs prompt attention.", + "Blood clots are another uncommon, but serious side effect. They usually form in the legs (called deep vein thrombosis or DVT), but sometimes a piece of clot may break off and end up blocking an artery in the lungs (pulmonary embolism or PE). Call your doctor or nurse right away if you develop pain, redness, or swelling in your lower leg (calf), shortness of breath, or chest pain, because these can be symptoms of a DVT or PE.", + "Rarely, tamoxifen has been associated with strokes in post-menopausal women, so tell your doctor if you have severe headaches, confusion, or trouble speaking or moving.", + "Depending on a woman's menopausal status, tamoxifen can have different effects on the bones. In pre-menopausal women, tamoxifen can cause some bone thinning, but in post-menopausal women it is often good to strengthen bone. The benefits of taking these drugs outweigh the risks for almost all women with hormone receptor-positive breast cancer.", + "", + "" + ] + }, + "ER_medication_end": { + "type": "MedicationEnd", + "direct_transition": "Upper Stage Treatment", + "referenced_by_attribute": "ER_medication" + }, + "HER2_medication_end": { + "type": "MedicationEnd", + "direct_transition": "Hormone_Receptor_Positive_Treatments", + "referenced_by_attribute": "HER2_medication" + }, + "ER_PR_medication_end": { + "type": "MedicationEnd", + "referenced_by_attribute": "ER_PR_medication", + "direct_transition": "end_encounter" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/breast_cancer/surgery_therapy_breast.json b/src/main/resources/modules/breast_cancer/surgery_therapy_breast.json new file mode 100644 index 0000000..94ce57c --- /dev/null +++ b/src/main/resources/modules/breast_cancer/surgery_therapy_breast.json @@ -0,0 +1,1129 @@ +{ + "name": "Surgery_Therapy_Breast", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Surgery encounter" + }, + "Terminal": { + "type": "Terminal" + }, + "Mastectomy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": 69031006, + "display": "Excision of breast tissue (procedure)" + } + ], + "duration": { + "low": 2, + "high": 3, + "unit": "hours" + }, + "remarks": [ + "https://www.breastcancer.org/treatment/surgery/mastectomy/expectations", + "", + "https://www.cancer.org/cancer/breast-cancer/treatment/surgery-for-breast-cancer.html", + "", + "Surgery to remove breast cancer", + "There are two main types of surgery to remove breast cancer:", + "", + "Breast-conserving surgery (also called a lumpectomy, quadrantectomy, partial mastectomy, or segmental mastectomy) – A surgery in which only the part of the breast containing the cancer is removed. The goal is to remove the cancer as well as some surrounding normal tissue. How much of the breast is removed depends on the size and location of the tumor and other factors.", + "Mastectomy – A surgery in which the entire breast is removed, including all of the breast tissue and sometimes other nearby tissues. There are several different types of mastectomies. Some women may also get a double mastectomy, in which both breasts are removed.", + "Choosing between breast-conserving surgery and mastectomy", + "Many women with early-stage cancers can choose between breast-conserving surgery (BCS) and mastectomy. The main advantage of BCS is that a woman keeps most of her breast. But in most cases she will also need radiation. Women who have mastectomy for early stage cancers are less likely to need radiation.", + "", + "For some women, mastectomy may be a better option, because of the type of breast cancer, the large size of the tumor, previous treatment history, or certain other factors.", + "", + "Some women might be worried that having a less extensive surgery might raise their risk of the cancer coming back. But the fact is, in most cases, mastectomy does not give you any better chance of long-term survival or a better outcome from treatment. Studies following thousands of women for more than 20 years show that when BCS can be done along with radiation, having a mastectomy instead does not provide any better chance of survival." + ], + "direct_transition": "Post_Surgical_Recovery", + "reason": "breast_cancer_condition" + }, + "Breast-conserving surgery (BCS)": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "392021009", + "display": "Lumpectomy of breast (procedure)" + } + ], + "duration": { + "low": 15, + "high": 40, + "unit": "minutes" + }, + "remarks": [ + "https://www.breastcancer.org/treatment/surgery/lumpectomy/expectations", + "", + "https://www.breastcancer.org/treatment/surgery/mastectomy/expectations", + "", + "https://www.cancer.org/cancer/breast-cancer/treatment/surgery-for-breast-cancer.html", + "", + "Surgery to remove breast cancer", + "There are two main types of surgery to remove breast cancer:", + "", + "Breast-conserving surgery (also called a lumpectomy, quadrantectomy, partial mastectomy, or segmental mastectomy) – A surgery in which only the part of the breast containing the cancer is removed. The goal is to remove the cancer as well as some surrounding normal tissue. How much of the breast is removed depends on the size and location of the tumor and other factors.", + "Mastectomy – A surgery in which the entire breast is removed, including all of the breast tissue and sometimes other nearby tissues. There are several different types of mastectomies. Some women may also get a double mastectomy, in which both breasts are removed.", + "Choosing between breast-conserving surgery and mastectomy", + "Many women with early-stage cancers can choose between breast-conserving surgery (BCS) and mastectomy. The main advantage of BCS is that a woman keeps most of her breast. But in most cases she will also need radiation. Women who have mastectomy for early stage cancers are less likely to need radiation.", + "", + "For some women, mastectomy may be a better option, because of the type of breast cancer, the large size of the tumor, previous treatment history, or certain other factors.", + "", + "Some women might be worried that having a less extensive surgery might raise their risk of the cancer coming back. But the fact is, in most cases, mastectomy does not give you any better chance of long-term survival or a better outcome from treatment. Studies following thousands of women for more than 20 years show that when BCS can be done along with radiation, having a mastectomy instead does not provide any better chance of survival." + ], + "direct_transition": "Post Surgical Recovery", + "reason": "breast_cancer_condition" + }, + "External Beam Radiation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "33195004", + "display": "External beam radiation therapy procedure (procedure)" + } + ], + "duration": { + "low": 15, + "high": 40, + "unit": "minutes" + }, + "direct_transition": "End Current Radiation Visit", + "remarks": [ + "https://www.cancer.org/cancer/breast-cancer/treatment/radiation-for-breast-cancer.html" + ], + "reason": "breast_cancer_condition" + }, + "Hypofractionated radiation therapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "385798007", + "display": "Radiation therapy care (regime/therapy)" + } + ], + "duration": { + "low": 15, + "high": 40, + "unit": "minutes" + }, + "direct_transition": "End Current Radiation Visit", + "remarks": [ + "https://www.breastcancer.org/research-news/accelerated-whole-breast-radiation-new-standard" + ], + "reason": "breast_cancer_condition" + }, + "Intraoperative radiation therapy (IORT)": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1287742003", + "display": "Radiotherapy (procedure)" + } + ], + "duration": { + "low": 15, + "high": 40, + "unit": "minutes" + }, + "direct_transition": "End Current Radiation Visit", + "remarks": [ + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5493441/", + "https://uihc.org/health-topics/intraoperative-radiation-therapy-iort" + ], + "reason": "breast_cancer_condition" + }, + "Brachytherapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "447759004", + "display": "Brachytherapy of breast (procedure)" + } + ], + "duration": { + "low": 15, + "high": 50, + "unit": "minutes" + }, + "remarks": [ + "https://www.cancer.org/cancer/breast-cancer/treatment/radiation-for-breast-cancer.html", + "https://www.mayoclinic.org/tests-procedures/brachytherapy/about/pac-20385159" + ], + "distributed_transition": [ + { + "transition": "Interstitial Brachytherapy", + "distribution": 0.5 + }, + { + "transition": "Intracavitary brachytherapy", + "distribution": 0.5 + } + ], + "reason": "breast_cancer_condition" + }, + "Interstitial Brachytherapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "113120007", + "display": "Interstitial brachytherapy (procedure)" + } + ], + "duration": { + "low": 15, + "high": 40, + "unit": "minutes" + }, + "direct_transition": "End Brachytherapy Implant", + "remarks": [ + "https://www.mayoclinic.org/tests-procedures/brachytherapy/about/pac-20385159" + ], + "reason": "breast_cancer_condition" + }, + "Intracavitary brachytherapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "384692006", + "display": "Intracavitary brachytherapy (procedure)" + } + ], + "duration": { + "low": 15, + "high": 40, + "unit": "minutes" + }, + "remarks": [ + "https://www.mayoclinic.org/tests-procedures/brachytherapy/about/pac-20385159" + ], + "direct_transition": "End Brachytherapy Implant", + "reason": "breast_cancer_condition" + }, + "chemo": { + "type": "CallSubmodule", + "submodule": "breast_cancer/chemotherapy_breast", + "conditional_transition": [ + { + "transition": "External Beam Radiation", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_triple_negative", + "operator": "==", + "value": true + } + }, + { + "transition": "End Breast Surgery" + } + ], + "remarks": [ + "https://www.breastcancer.org/research-news/20110925b" + ] + }, + "Advanced_drugs": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Denosumab" + }, + "distributions": [ + { + "transition": "Denosumab", + "distribution": 1 + } + ] + }, + { + "distributions": [ + { + "transition": "Zoledronic_Acid", + "distribution": 1 + } + ], + "condition": { + "condition_type": "PriorState", + "name": "Zoledronic_Acid" + } + }, + { + "distributions": [ + { + "transition": "Denosumab", + "distribution": 0.34 + }, + { + "transition": "Zoledronic_Acid", + "distribution": 0.33 + }, + { + "transition": "Pamidronate", + "distribution": 0.33 + } + ] + } + ], + "remarks": [ + "https://www.breastcancer.org/research-news/prolia-reduces-recurrence-risk-for-some" + ] + }, + "Zoledronic_Acid": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1114085, + "display": "100 ML zoledronic acid 0.04 MG/ML Injection" + } + ], + "direct_transition": "Advanced Drugs IV Injection", + "assign_to_attribute": "adv_drug", + "reason": "breast_cancer_condition", + "administration": true + }, + "Denosumab": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 993452, + "display": "1 ML denosumab 60 MG/ML Prefilled Syringe" + } + ], + "direct_transition": "Advanced Drugs IV Injection", + "assign_to_attribute": "adv_drug", + "reason": "breast_cancer_condition", + "administration": true + }, + "Pamidronate": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1737449, + "display": "10 ML Pamidronate Disodium 3 MG/ML Injection" + } + ], + "direct_transition": "Pamidronate IV Injection", + "assign_to_attribute": "adv_drug", + "reason": "breast_cancer_condition", + "administration": true + }, + "Breast_Surgery": { + "type": "Simple", + "remarks": [ + "https://www.cooperhealth.org/services/radiation-oncology/questions-you-may-have-about-radiation-therapy" + ], + "direct_transition": "Initialize Breast Surgery Treatment Counter" + }, + "Sentinel_Lymph_Node_Biopsy__SLNB_": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "396487001", + "display": "Sentinel lymph node biopsy (procedure)" + } + ], + "direct_transition": "Excision_Of_Sentinel_Lymph_Node", + "duration": { + "low": 40, + "high": 50, + "unit": "minutes" + }, + "reason": "breast_cancer_condition" + }, + "Axillary_Lymph_Node_Dissection__ALND_": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "234262008", + "display": "Excision of axillary lymph node (procedure)" + } + ], + "duration": { + "low": 40, + "high": 50, + "unit": "minutes" + }, + "direct_transition": "End_Lymph_Node_Surgery", + "reason": "breast_cancer_condition" + }, + "End Breast Surgery": { + "type": "Simple", + "direct_transition": "Delay After Treatment" + }, + "Lymph_Node Surgery": { + "type": "Delay", + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 60, + "standardDeviation": 90 + } + }, + "unit": "minutes", + "distributed_transition": [ + { + "transition": "Sentinel_Lymph_Node_Biopsy__SLNB_", + "distribution": 0.5 + }, + { + "transition": "Axillary_Lymph_Node_Dissection__ALND_", + "distribution": 0.5 + } + ], + "remarks": [ + "https://www.cancer.org/cancer/breast-cancer/treatment/surgery-for-breast-cancer.html", + "", + "https://www.cancer.org/cancer/breast-cancer/treatment/surgery-for-breast-cancer/lymph-node-surgery-for-breast-cancer.html", + "", + "Surgery to remove nearby lymph nodes", + "To find out if the breast cancer has spread to axillary (underarm) lymph nodes, one or more of these lymph nodes will be removed and looked at under the microscope. This is an important part of figuring out the stage (extent) of the cancer. Lymph nodes may be removed either as part of the surgery to remove the breast cancer or as a separate operation.", + "", + "The two main types of surgery to remove lymph nodes are:", + "", + "Sentinel lymph node biopsy (SLNB) – A procedure in which the surgeon removes only the lymph node(s) under the arm to which the cancer would likely spread first. Removing only one or a few lymph nodes lowers the risk of side effects from the surgery.", + "Axillary lymph node dissection (ALND) – A procedure in which the surgeon removes many (usually less than 20) lymph nodes from under the arm. ALND is not done as often as it was in the past, but it might still be the best way to look at the lymph nodes in some situations.", + "To learn more about these procedures and when they might be done, see Lymph Node Surgery for Breast Cancer. ", + "", + "" + ] + }, + "End_Lymph_Node_Surgery": { + "type": "Delay", + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 90, + "standardDeviation": 30 + } + }, + "unit": "minutes", + "conditional_transition": [ + { + "transition": "External Beam Radiation", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_T", + "operator": "==", + "value": "T0" + } + }, + { + "transition": "Breast_Surgery" + } + ] + }, + "Surgery encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "breast_cancer_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "conditional_transition": [ + { + "transition": "End_Lymph_Node_Surgery", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_N", + "operator": "==", + "value": "N0" + } + }, + { + "transition": "Lymph_Node Surgery" + } + ] + }, + "End Surgery encounter": { + "type": "EncounterEnd", + "remarks": [ + "https://www.breastcancer.org/treatment/surgery/mastectomy/expectations" + ], + "direct_transition": "Delay after Mastectomy" + }, + "BCS end surgery": { + "type": "EncounterEnd", + "remarks": [ + "https://www.breastcancer.org/treatment/surgery/lumpectomy/expectations" + ], + "direct_transition": "Delay After BCS" + }, + "Delay After BCS": { + "type": "Delay", + "remarks": [ + "https://www.breastcancer.org/treatment/surgery/lumpectomy/expectations" + ], + "range": { + "low": 5, + "high": 14, + "unit": "days" + }, + "direct_transition": "BCS Follow-Up Treatment" + }, + "Delay after Mastectomy": { + "type": "Delay", + "remarks": [ + "https://www.breastcancer.org/treatment/surgery/mastectomy/expectations" + ], + "range": { + "low": 5, + "high": 14, + "unit": "days" + }, + "direct_transition": "Mastectomy Follow-Up Therapy" + }, + "Mastectomy Follow-Up Therapy": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_triple_negative", + "operator": "==", + "value": true + }, + "transition": "chemo" + }, + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "21908-9", + "display": "Stage group.clinical Cancer" + } + ], + "operator": "==", + "value_code": { + "system": "SNOMED-CT", + "code": "258215001", + "display": "Stage 1 (qualifier value)" + } + }, + "distributions": [ + { + "distribution": 1, + "transition": "External Beam Radiation" + } + ] + }, + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "21908-9", + "display": "Stage group.clinical Cancer" + } + ], + "operator": "==", + "value_code": { + "system": "SNOMED-CT", + "code": "258228008", + "display": "Stage 4 (qualifier value)" + } + }, + "distributions": [ + { + "distribution": 0.01, + "transition": "External Beam Radiation" + }, + { + "distribution": 0.33, + "transition": "chemo" + }, + { + "distribution": 0.66, + "transition": "Advanced_drugs" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.5, + "transition": "External Beam Radiation" + }, + { + "distribution": 0.5, + "transition": "chemo" + } + ] + } + ], + "remarks": [ + "https://www.breastcancer.org/treatment/surgery/mastectomy/expectations", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4493381/", + "", + "https://www.cancer.org/cancer/breast-cancer/treatment/radiation-for-breast-cancer.html", + "", + "Radiation for Breast Cancer", + "Some women with breast cancer will need radiation, often in addition to other treatments. The need for radiation depends on what type of surgery you had, whether your cancer has spread to the lymph nodes or somewhere else in your body, and in some cases, your age. Tumors that are large or involve the skin might also need radiation. You could have just one type of radiation, or a combination of different types.", + "", + "Radiation therapy is treatment with high-energy rays (such as x-rays) or particles that destroy cancer cells. Two main types of radiation therapy can be used to treat breast cancer:", + "", + "External beam radiation: This type of radiation comes from a machine outside the body.", + "Internal radiation (brachytherapy): For this treatment, a radioactive source is put inside the body for a short time.", + "When might radiation therapy be used?", + "Not all women with breast cancer need radiation therapy, but it may be used in several situations:", + "", + "After breast-conserving surgery (BCS), to help lower the chance that the cancer will come back in the breast or nearby lymph nodes.", + "After a mastectomy, especially if the cancer was larger than 5 cm (about 2 inches), or if cancer is found in the lymph nodes.", + "If cancer has spread to other parts of the body, such as the bones or brain.", + "External beam radiation", + "This is the most common type of radiation therapy for women with breast cancer. A machine focuses the radiation on the area affected by the cancer.", + "", + "Which areas need radiation depends on whether you had a mastectomy or breast-conserving surgery (BCS) and whether or not the cancer has reached nearby lymph nodes.", + "", + "If you had a mastectomy and no lymph nodes had cancer, radiation is focused on the chest wall, the mastectomy scar, and the places where any drains exited the body after surgery.", + "If you had BCS, you will most likely have radiation to the entire breast (called whole breast radiation), and an extra boost of radiation to the area in the breast where the cancer was removed (called the tumor bed) to help prevent it from coming back in that area. The boost is often given after the treatments to the whole breast have ended. It uses the same machine, with lower amounts of radiation, but the beams are aimed at the tumor bed. Most women don’t notice different side effects from boost radiation than from whole breast radiation.", + "If cancer was found in the lymph nodes under the arm (axillary lymph nodes), this area may be given radiation, as well. In some cases, the area treated might also include the nodes above the collarbone (supraclavicular lymph nodes) and the nodes beneath the breast bone in the center of the chest (internal mammary lymph nodes).", + "When will I get radiation therapy?", + "If you will need external radiation therapy after surgery, it is usually not started until your surgery site has healed , which is often a month or longer. If you are getting chemotherapy as well, radiation treatments are usually delayed until chemotherapy is complete.", + "", + "Preparing for external beam radiation therapy", + "Before your treatment starts, the radiation team will carefully figure out the correct angles for aiming the radiation beams and the proper dose of radiation. They will make some ink marks or small tattoos on your skin to focus the radiation on the right area. Check with your health care team whether the marks they use will be permanent.", + "", + "External radiation therapy is much like getting an x-ray, but the radiation is stronger. The procedure itself is painless. Each treatment lasts only a few minutes, but the setup time—getting you into place for treatment—usually takes longer.", + "", + "Types and schedules of external beam radiation", + "The traditional schedule for getting whole breast radiation has been 5 days a week (Monday through Friday) for about 5 to 6 weeks. But many doctors are now using accelerated breast irradiation in select patients to give larger doses over a shorter time. There are several different types of accelerated breast irradiation:", + "", + "Hypofractionated radiation therapy: In this approach, radiation is given in larger doses using fewer treatments – typically for only 3 weeks. In women treated with breast-conserving surgery (BCS) and without cancer spread to underarm lymph nodes, this schedule has been shown to be just as good at keeping the cancer from coming back in the same breast as giving the radiation over 5 weeks. It might also lead to fewer short-term side effects.", + "Intraoperative radiation therapy (IORT): In this approach, a single large dose of radiation is given in the operating room right after BCS (before the breast incision is closed). IORT requires special equipment and is not widely available.", + "3D-conformal radiotherapy: In this technique, the radiation is given with special machines so that it is better aimed at the area where the tumor was removed (tumor bed). This allows more of the healthy breast to be spared. Treatments are given twice a day for 5 days. Because only part of the breast is treated, this is considered to be a form of accelerated partial breast irradiation. (Other forms of accelerated partial breast irradiation are described under Brachytherapy.)", + "Since more research is needed to know if all of the newer methods will have the same long-term results as standard radiation, not all doctors use them. Women who are interested in these approaches may want to ask their doctor about taking part in clinical trials of accelerated breast irradiation going on now.", + "", + "Possible side effects of external radiation", + "The main short-term side effects of external beam radiation therapy to the breast are:", + "", + "Swelling in the breast", + "Skin changes in the treated area similar to a sunburn (redness, skin peeling, darkening of the skin)", + "Fatigue", + "Your health care team may advise you to avoid exposing the treated skin to the sun because it could make the skin changes worse. Most skin changes get better within a few months. Changes to the breast tissue usually go away in 6 to 12 months, but it can take longer.", + "", + "External beam radiation therapy can also cause side effects later on:", + "", + "Some women may find that radiation therapy causes the breast to become smaller and firmer.", + "Radiation may affect your options for breast reconstruction later on. It can also raise the risk of problems if it’s given after reconstruction, especially tissue flap procedures.", + "Women who have had breast radiation may have problems breastfeeding later on.", + "Radiation to the breast can sometimes damage some of the nerves to the arm. This is called brachial plexopathy and can lead to numbness, pain, and weakness in the shoulder, arm, and hand.", + "Radiation to the underarm lymph nodes can cause lymphedema, a type of pain and swelling in the arm or chest.", + "In rare cases, radiation therapy may weaken the ribs, which could lead to a fracture.", + "In the past, parts of the lungs and heart were more likely to get some radiation, which could lead to long-term damage of these organs in some women. Modern radiation therapy equipment allows doctors to better focus the radiation beams, so these problems are rare today.", + "A very rare complication of radiation to the breast is the development of another cancer called an angiosarcoma.", + "Brachytherapy", + "Brachytherapy, also known as internal radiation, is another way to deliver radiation therapy. Instead of aiming radiation beams from outside the body, a device containing radioactive seeds or pellets is placed into the breast tissue for a short time in the area where the cancer had been removed.", + "", + "For women who had breast-conserving surgery (BCS), brachytherapy can be used along with external beam radiation as a way to add an extra boost of radiation to the tumor site. It may also be used by itself (instead of radiation to the whole breast) as a form of accelerated partial breast irradiation. Tumor size, location, and other factors may limit who can get brachytherapy.", + "", + "Types of brachytherapy", + "There are different types of brachytherapy:", + "", + "Interstitial brachytherapy: In this approach, several small, hollow tubes called catheters are inserted into the breast around the area where the cancer was removed and are left in place for several days. Radioactive pellets are inserted into the catheters for short periods of time each day and then removed. This method of brachytherapy has been around longer (and has more evidence to support it), but it is not used as much anymore.", + "Intracavitary brachytherapy: This is the most common type of brachytherapy for women with breast cancer. A device is put into the space left from BCS and is left in place until treatment is complete. There are several different devices available (including MammoSite, SAVI, Axxent, and Contura), most of which require surgical training for proper placement . They all go into the breast as a small catheter (tube). The end of the device inside the breast is then expanded so that it stays securely in place for the entire treatment. The other end of the catheter sticks out of the breast. For each treatment, one or more sources of radiation (often pellets) are placed down through the tube and into the device for a short time and then removed. Treatments are typically given twice a day for 5 days as an outpatient. After the last treatment, the device is collapsed down again and removed.", + "Early studies of intracavitary brachytherapy as the only radiation after BCS have had promising results as far as having at least equal cancer control compared with standard whole breast radiation, but may have more complications including poor cosmetic results. Studies of this treatment are being done and more follow-up is needed. ", + "", + "Possible side effects of intracavitary brachytherapy", + "As with external beam radiation, intracavitary brachytherapy can have side effects, including:", + "", + "Redness at the treatment site", + "Bruising at the treatment site", + "Breast pain", + "Infection", + "Damage to fatty tissue in the breast", + "Weakness and fracture of the ribs in rare cases", + "Fluid collecting in the breast (seroma) ", + " " + ], + "reason": "breast_cancer_condition" + }, + "BCS Follow-Up Treatment": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "breast_cancer_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_triple_negative", + "operator": "==", + "value": true + }, + "transition": "chemo" + }, + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "21908-9", + "display": "Stage group.clinical Cancer" + } + ], + "operator": "==", + "value_code": { + "system": "SNOMED-CT", + "code": "258215001", + "display": "Stage 1 (qualifier value)" + } + }, + "distributions": [ + { + "distribution": 0.4, + "transition": "External Beam Radiation" + }, + { + "distribution": 0.1, + "transition": "Intraoperative radiation therapy (IORT)" + }, + { + "distribution": 0.4, + "transition": "Hypofractionated radiation therapy" + }, + { + "distribution": 0.1, + "transition": "Brachytherapy" + } + ] + }, + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "21908-9", + "display": "Stage group.clinical Cancer" + } + ], + "operator": "==", + "value_code": { + "system": "SNOMED-CT", + "code": "258228008", + "display": "Stage 4 (qualifier value)" + } + }, + "distributions": [ + { + "distribution": 0.02, + "transition": "External Beam Radiation" + }, + { + "distribution": 0.04, + "transition": "Hypofractionated radiation therapy" + }, + { + "distribution": 0.04, + "transition": "Intraoperative radiation therapy (IORT)" + }, + { + "distribution": 0.1, + "transition": "Brachytherapy" + }, + { + "distribution": 0.1, + "transition": "chemo" + }, + { + "distribution": 0.7, + "transition": "Advanced_drugs" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.3, + "transition": "External Beam Radiation" + }, + { + "distribution": 0.3, + "transition": "Hypofractionated radiation therapy" + }, + { + "distribution": 0.1, + "transition": "Intraoperative radiation therapy (IORT)" + }, + { + "distribution": 0.1, + "transition": "Brachytherapy" + }, + { + "distribution": 0.2, + "transition": "chemo" + } + ] + } + ], + "remarks": [ + "https://www.breastcancer.org/treatment/surgery/lumpectomy/expectations", + "", + "https://www.cancer.org/cancer/breast-cancer/treatment/radiation-for-breast-cancer.html", + "", + "Radiation for Breast Cancer", + "Some women with breast cancer will need radiation, often in addition to other treatments. The need for radiation depends on what type of surgery you had, whether your cancer has spread to the lymph nodes or somewhere else in your body, and in some cases, your age. Tumors that are large or involve the skin might also need radiation. You could have just one type of radiation, or a combination of different types.", + "", + "Radiation therapy is treatment with high-energy rays (such as x-rays) or particles that destroy cancer cells. Two main types of radiation therapy can be used to treat breast cancer:", + "", + "External beam radiation: This type of radiation comes from a machine outside the body.", + "Internal radiation (brachytherapy): For this treatment, a radioactive source is put inside the body for a short time.", + "When might radiation therapy be used?", + "Not all women with breast cancer need radiation therapy, but it may be used in several situations:", + "", + "After breast-conserving surgery (BCS), to help lower the chance that the cancer will come back in the breast or nearby lymph nodes.", + "After a mastectomy, especially if the cancer was larger than 5 cm (about 2 inches), or if cancer is found in the lymph nodes.", + "If cancer has spread to other parts of the body, such as the bones or brain.", + "External beam radiation", + "This is the most common type of radiation therapy for women with breast cancer. A machine focuses the radiation on the area affected by the cancer.", + "", + "Which areas need radiation depends on whether you had a mastectomy or breast-conserving surgery (BCS) and whether or not the cancer has reached nearby lymph nodes.", + "", + "If you had a mastectomy and no lymph nodes had cancer, radiation is focused on the chest wall, the mastectomy scar, and the places where any drains exited the body after surgery.", + "If you had BCS, you will most likely have radiation to the entire breast (called whole breast radiation), and an extra boost of radiation to the area in the breast where the cancer was removed (called the tumor bed) to help prevent it from coming back in that area. The boost is often given after the treatments to the whole breast have ended. It uses the same machine, with lower amounts of radiation, but the beams are aimed at the tumor bed. Most women don’t notice different side effects from boost radiation than from whole breast radiation.", + "If cancer was found in the lymph nodes under the arm (axillary lymph nodes), this area may be given radiation, as well. In some cases, the area treated might also include the nodes above the collarbone (supraclavicular lymph nodes) and the nodes beneath the breast bone in the center of the chest (internal mammary lymph nodes).", + "When will I get radiation therapy?", + "If you will need external radiation therapy after surgery, it is usually not started until your surgery site has healed , which is often a month or longer. If you are getting chemotherapy as well, radiation treatments are usually delayed until chemotherapy is complete.", + "", + "Preparing for external beam radiation therapy", + "Before your treatment starts, the radiation team will carefully figure out the correct angles for aiming the radiation beams and the proper dose of radiation. They will make some ink marks or small tattoos on your skin to focus the radiation on the right area. Check with your health care team whether the marks they use will be permanent.", + "", + "External radiation therapy is much like getting an x-ray, but the radiation is stronger. The procedure itself is painless. Each treatment lasts only a few minutes, but the setup time—getting you into place for treatment—usually takes longer.", + "", + "Types and schedules of external beam radiation", + "The traditional schedule for getting whole breast radiation has been 5 days a week (Monday through Friday) for about 5 to 6 weeks. But many doctors are now using accelerated breast irradiation in select patients to give larger doses over a shorter time. There are several different types of accelerated breast irradiation:", + "", + "Hypofractionated radiation therapy: In this approach, radiation is given in larger doses using fewer treatments – typically for only 3 weeks. In women treated with breast-conserving surgery (BCS) and without cancer spread to underarm lymph nodes, this schedule has been shown to be just as good at keeping the cancer from coming back in the same breast as giving the radiation over 5 weeks. It might also lead to fewer short-term side effects.", + "Intraoperative radiation therapy (IORT): In this approach, a single large dose of radiation is given in the operating room right after BCS (before the breast incision is closed). IORT requires special equipment and is not widely available.", + "3D-conformal radiotherapy: In this technique, the radiation is given with special machines so that it is better aimed at the area where the tumor was removed (tumor bed). This allows more of the healthy breast to be spared. Treatments are given twice a day for 5 days. Because only part of the breast is treated, this is considered to be a form of accelerated partial breast irradiation. (Other forms of accelerated partial breast irradiation are described under Brachytherapy.)", + "Since more research is needed to know if all of the newer methods will have the same long-term results as standard radiation, not all doctors use them. Women who are interested in these approaches may want to ask their doctor about taking part in clinical trials of accelerated breast irradiation going on now.", + "", + "Possible side effects of external radiation", + "The main short-term side effects of external beam radiation therapy to the breast are:", + "", + "Swelling in the breast", + "Skin changes in the treated area similar to a sunburn (redness, skin peeling, darkening of the skin)", + "Fatigue", + "Your health care team may advise you to avoid exposing the treated skin to the sun because it could make the skin changes worse. Most skin changes get better within a few months. Changes to the breast tissue usually go away in 6 to 12 months, but it can take longer.", + "", + "External beam radiation therapy can also cause side effects later on:", + "", + "Some women may find that radiation therapy causes the breast to become smaller and firmer.", + "Radiation may affect your options for breast reconstruction later on. It can also raise the risk of problems if it’s given after reconstruction, especially tissue flap procedures.", + "Women who have had breast radiation may have problems breastfeeding later on.", + "Radiation to the breast can sometimes damage some of the nerves to the arm. This is called brachial plexopathy and can lead to numbness, pain, and weakness in the shoulder, arm, and hand.", + "Radiation to the underarm lymph nodes can cause lymphedema, a type of pain and swelling in the arm or chest.", + "In rare cases, radiation therapy may weaken the ribs, which could lead to a fracture.", + "In the past, parts of the lungs and heart were more likely to get some radiation, which could lead to long-term damage of these organs in some women. Modern radiation therapy equipment allows doctors to better focus the radiation beams, so these problems are rare today.", + "A very rare complication of radiation to the breast is the development of another cancer called an angiosarcoma.", + "Brachytherapy", + "Brachytherapy, also known as internal radiation, is another way to deliver radiation therapy. Instead of aiming radiation beams from outside the body, a device containing radioactive seeds or pellets is placed into the breast tissue for a short time in the area where the cancer had been removed.", + "", + "For women who had breast-conserving surgery (BCS), brachytherapy can be used along with external beam radiation as a way to add an extra boost of radiation to the tumor site. It may also be used by itself (instead of radiation to the whole breast) as a form of accelerated partial breast irradiation. Tumor size, location, and other factors may limit who can get brachytherapy.", + "", + "Types of brachytherapy", + "There are different types of brachytherapy:", + "", + "Interstitial brachytherapy: In this approach, several small, hollow tubes called catheters are inserted into the breast around the area where the cancer was removed and are left in place for several days. Radioactive pellets are inserted into the catheters for short periods of time each day and then removed. This method of brachytherapy has been around longer (and has more evidence to support it), but it is not used as much anymore.", + "Intracavitary brachytherapy: This is the most common type of brachytherapy for women with breast cancer. A device is put into the space left from BCS and is left in place until treatment is complete. There are several different devices available (including MammoSite, SAVI, Axxent, and Contura), most of which require surgical training for proper placement . They all go into the breast as a small catheter (tube). The end of the device inside the breast is then expanded so that it stays securely in place for the entire treatment. The other end of the catheter sticks out of the breast. For each treatment, one or more sources of radiation (often pellets) are placed down through the tube and into the device for a short time and then removed. Treatments are typically given twice a day for 5 days as an outpatient. After the last treatment, the device is collapsed down again and removed.", + "Early studies of intracavitary brachytherapy as the only radiation after BCS have had promising results as far as having at least equal cancer control compared with standard whole breast radiation, but may have more complications including poor cosmetic results. Studies of this treatment are being done and more follow-up is needed. ", + "", + "Possible side effects of intracavitary brachytherapy", + "As with external beam radiation, intracavitary brachytherapy can have side effects, including:", + "", + "Redness at the treatment site", + "Bruising at the treatment site", + "Breast pain", + "Infection", + "Damage to fatty tissue in the breast", + "Weakness and fracture of the ribs in rare cases", + "Fluid collecting in the breast (seroma) ", + " " + ] + }, + "Pamidronate IV Injection": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "43060002", + "display": "Intravenous injection (procedure)" + } + ], + "duration": { + "low": 2, + "high": 24, + "unit": "hours" + }, + "direct_transition": "End Pamidronate Infusion Encounter", + "reason": "breast_cancer_condition" + }, + "End Pamidronate Infusion Encounter": { + "type": "EncounterEnd", + "direct_transition": "End Pamidronate Medication" + }, + "Advanced Drugs IV Injection": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "43060002", + "display": "Intravenous injection (procedure)" + } + ], + "duration": { + "low": 15, + "high": 120, + "unit": "minutes" + }, + "direct_transition": "End Advanced Drug Medication", + "reason": "breast_cancer_condition" + }, + "End Current Advanced Drug Infusion": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Increment treatment counter", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_treat_count", + "operator": "<", + "value": 7 + } + }, + { + "transition": "End Breast Surgery" + } + ] + }, + "End Advanced Drug Medication": { + "type": "MedicationEnd", + "direct_transition": "End Current Advanced Drug Infusion", + "referenced_by_attribute": "adv_drug" + }, + "End Pamidronate Medication": { + "type": "MedicationEnd", + "direct_transition": "End Breast Surgery", + "referenced_by_attribute": "adv_drug" + }, + "Increment treatment counter": { + "type": "Counter", + "attribute": "breast_cancer_treat_count", + "action": "increment", + "direct_transition": "6 Month Delay" + }, + "6 Month Delay": { + "type": "Delay", + "direct_transition": "Start New Advanced Drug Cycle", + "range": { + "low": 5, + "high": 7, + "unit": "months" + }, + "remarks": [ + "Prolia (chemical name: denosumab) is a targeted therapy used to treat bone loss in women taking aromatase inhibitors as part of their breast cancer treatment. Prolia is given as an injection under the skin every 6 months at a dose of 60 mg:", + "https://www.breastcancer.org/research-news/prolia-reduces-recurrence-risk-for-some" + ] + }, + "Start New Advanced Drug Cycle": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "breast_cancer_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Advanced_drugs" + }, + "Delay After Treatment": { + "type": "Delay", + "direct_transition": "Terminal", + "range": { + "low": 2, + "high": 7, + "unit": "days" + } + }, + "Radiation_Buffer_After_Brachytherapy": { + "type": "Delay", + "range": { + "low": 2, + "high": 8, + "unit": "weeks" + }, + "direct_transition": "End Breast Surgery" + }, + "End Brachytherapy Implant": { + "type": "EncounterEnd", + "direct_transition": "Radiation_Buffer_After_Brachytherapy" + }, + "End Current Radiation Visit": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Increment Radiation Treatment Count", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_treat_count", + "operator": "<", + "value": 33 + } + }, + { + "transition": "End Breast Surgery" + } + ] + }, + "Increment Radiation Treatment Count": { + "type": "Counter", + "attribute": "breast_cancer_treat_count", + "action": "increment", + "direct_transition": "Delay Until Next Cycle" + }, + "Delay Until Next Cycle": { + "type": "Delay", + "direct_transition": "Next Day Radiation Treatment", + "range": { + "low": 24, + "high": 36, + "unit": "hours" + } + }, + "Next Day Radiation Treatment": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "conditional_transition": [ + { + "transition": "External Beam Radiation", + "condition": { + "condition_type": "PriorState", + "name": "External Beam Radiation" + } + }, + { + "transition": "Intraoperative radiation therapy (IORT)", + "condition": { + "condition_type": "PriorState", + "name": "Intraoperative radiation therapy (IORT)" + } + }, + { + "transition": "Hypofractionated radiation therapy", + "condition": { + "condition_type": "PriorState", + "name": "Hypofractionated radiation therapy" + } + } + ], + "reason": "breast_cancer_condition" + }, + "Excision_Of_Sentinel_Lymph_Node": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "443497002", + "display": "Excision of sentinel lymph node (procedure)" + } + ], + "duration": { + "low": 40, + "high": 50, + "unit": "minutes" + }, + "direct_transition": "End_Lymph_Node_Surgery", + "reason": "breast_cancer_condition" + }, + "Initialize Breast Surgery Treatment Counter": { + "type": "SetAttribute", + "attribute": "breast_cancer_treat_count", + "distributed_transition": [ + { + "transition": "Breast-conserving surgery (BCS)", + "distribution": 0.6 + }, + { + "transition": "Mastectomy", + "distribution": 0.4 + } + ], + "remarks": [ + "https://www.cooperhealth.org/services/radiation-oncology/questions-you-may-have-about-radiation-therapy" + ], + "value": 0 + }, + "Post Surgical Recovery": { + "type": "Delay", + "distribution": { + "kind": "EXPONENTIAL", + "parameters": { + "mean": 2 + } + }, + "unit": "days", + "direct_transition": "BCS end surgery" + }, + "Post_Surgical_Recovery": { + "type": "Delay", + "distribution": { + "kind": "EXPONENTIAL", + "parameters": { + "mean": 2 + } + }, + "unit": "days", + "direct_transition": "End Surgery encounter" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/breast_cancer/tnm_diagnosis.json b/src/main/resources/modules/breast_cancer/tnm_diagnosis.json new file mode 100644 index 0000000..5e3325d --- /dev/null +++ b/src/main/resources/modules/breast_cancer/tnm_diagnosis.json @@ -0,0 +1,657 @@ +{ + "name": "TNM_Diagnosis", + "remarks": [ + "This module goes through and diagnoses which T, N, and M stage a person would encounter through the screening. " + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "M Marker" + }, + "Terminal": { + "type": "Terminal" + }, + "M Marker": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "No Evidence of Distant Metastasis ", + "distribution": 0.94 + }, + { + "transition": "Distant Metastases Detected", + "distribution": 0.06 + } + ], + "remarks": [ + "About 6% of women have metastatic cancer when they are first diagnosed with breast cancer:", + "https://www.cancer.net/cancer-types/breast-cancer/statistics" + ] + }, + "N Marker": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_Location", + "operator": "==", + "value": "local" + }, + "transition": "No Regional Lymph Node Metastasis" + }, + { + "distributions": [ + { + "distribution": 0.34, + "transition": "Micrometastasis in 1 - 3 Lymph Nodes" + }, + { + "distribution": 0.33, + "transition": "Macrometastases in 4 - 9 Lymph Nodes" + }, + { + "distribution": 0.33, + "transition": "Macrometastases in 10+ Lymph Nodes" + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_M", + "operator": "==", + "value": "M1" + } + }, + { + "distributions": [ + { + "transition": "Micrometastasis in 1 - 3 Lymph Nodes", + "distribution": 0.6 + }, + { + "transition": "Macrometastases in 4 - 9 Lymph Nodes", + "distribution": 0.3 + }, + { + "transition": "Macrometastases in 10+ Lymph Nodes", + "distribution": 0.10000000000000009 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_Location", + "operator": "==", + "value": "regional" + } + } + ], + "remarks": [ + "Lymph node status shows whether or not the lymph nodes in the underarm area (axillary lymph nodes) contain cancer:", + "Lymph node-negative means the axillary lymph nodes do not contain cancer.", + "Lymph node-positive means the axillary lymph nodes contain cancer.", + "Prognosis is better when cancer has not spread to the lymph nodes (lymph node-negative) [13].", + "The more lymph nodes that contain cancer, the poorer prognosis tends to be [13].", + "The number of positive nodes guides treatment and helps predict prognosis (chances for survival).", + "See Figure 4.4 for an illustration of the breast and lymph nodes.", + "https://ww5.komen.org/BreastCancer/LymphNodeStatusandStaging.html" + ] + }, + "T4": { + "type": "SetAttribute", + "attribute": "breast_cancer_T", + "direct_transition": "T4_Diagnosed", + "value": "T4", + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition" + ] + }, + "N1": { + "type": "SetAttribute", + "attribute": "breast_cancer_N", + "direct_transition": "N1_Diagnosed", + "value": "N1" + }, + "N2": { + "type": "SetAttribute", + "attribute": "breast_cancer_N", + "direct_transition": "N2_Diagnosed", + "value": "N2" + }, + "N3": { + "type": "SetAttribute", + "attribute": "breast_cancer_N", + "direct_transition": "N3_Diagnosed", + "value": "N3" + }, + "Distant Breast Cancer": { + "type": "SetAttribute", + "attribute": "breast_cancer_Location", + "direct_transition": "Tumor Size Any", + "value": "distant" + }, + "Regional Breast Cancer": { + "type": "SetAttribute", + "attribute": "breast_cancer_Location", + "distributed_transition": [ + { + "transition": "Tumor Size Less than 2 cm", + "distribution": 0.3011 + }, + { + "transition": "Tumor Size 2 -5 cm", + "distribution": 0.5053 + }, + { + "transition": "Tumor Size Greater Than 5 cm", + "distribution": 0.1398 + }, + { + "transition": "No Evidence of Primary Tumor in Breast", + "distribution": 0.0538 + } + ], + "remarks": [ + "Adjusted Tumor Data for Regional Breast Cancer:", + "https://onlinelibrary.wiley.com/doi/full/10.1002/cncr.21285" + ], + "value": "regional" + }, + "Local Breast Cancer": { + "type": "SetAttribute", + "attribute": "breast_cancer_Location", + "distributed_transition": [ + { + "transition": "Tumor Size Less than 2 cm", + "distribution": 0.7052 + }, + { + "transition": "Tumor Size 2 -5 cm", + "distribution": 0.2632 + }, + { + "transition": "Tumor Size Greater Than 5 cm", + "distribution": 0.0316 + } + ], + "remarks": [ + "Adjusted Tumor Data for Local Breast Cancer:", + "https://onlinelibrary.wiley.com/doi/full/10.1002/cncr.21285" + ], + "value": "local" + }, + "M1_Diagnosed": { + "type": "Observation", + "category": "imaging", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21907-1", + "display": "Distant metastases.clinical [Class] Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": 55440008, + "display": "M1 category (finding)" + }, + "direct_transition": "Distant Breast Cancer" + }, + "M0_Diagnosed": { + "type": "Observation", + "category": "imaging", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21907-1", + "display": "Distant metastases.clinical [Class] Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": 30893008, + "display": "M0 category (finding)" + }, + "distributed_transition": [ + { + "transition": "Local Breast Cancer", + "distribution": 0.62 + }, + { + "transition": "Regional Breast Cancer", + "distribution": 0.38 + } + ], + "remarks": [ + "If the cancer is located only in the breast, the 5-year survival rate of women with breast cancer is 99%. Sixty-two percent (62%) of cases are diagnosed at this stage:", + "https://www.cancer.net/cancer-types/breast-cancer/statistics" + ] + }, + "T0_Diagnosed": { + "type": "Observation", + "category": "imaging", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21905-5", + "display": "Primary tumor.clinical [Class] Cancer" + } + ], + "direct_transition": "N Marker", + "value_code": { + "system": "SNOMED-CT", + "code": 58790005, + "display": "T0 category (finding)" + } + }, + "T1_Diagnosed": { + "type": "Observation", + "category": "imaging", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21905-5", + "display": "Primary tumor.clinical [Class] Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": 23351008, + "display": "T1 category (finding)" + }, + "direct_transition": "N Marker" + }, + "T2_Diagnosed": { + "type": "Observation", + "category": "imaging", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21905-5", + "display": "Primary tumor.clinical [Class] Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": 67673008, + "display": "T2 category (finding)" + }, + "direct_transition": "N Marker" + }, + "T3_Diagnosed": { + "type": "Observation", + "category": "imaging", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21905-5", + "display": "Primary tumor.clinical [Class] Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": 14410001, + "display": "T3 category (finding)" + }, + "direct_transition": "N Marker", + "remarks": [ + "https://www.cancer.net/cancer-types/breast-cancer/statistics" + ] + }, + "T4_Diagnosed": { + "type": "Observation", + "category": "imaging", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21905-5", + "display": "Primary tumor.clinical [Class] Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": 65565005, + "display": "T4 category (finding)" + }, + "direct_transition": "N Marker" + }, + "N1_Diagnosed": { + "type": "Observation", + "category": "imaging", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21906-3", + "display": "Regional lymph nodes.clinical [Class] Cancer" + } + ], + "direct_transition": "Terminal", + "value_code": { + "system": "SNOMED-CT", + "code": 53623008, + "display": "N1 category (finding)" + } + }, + "N0_Diagnosed": { + "type": "Observation", + "category": "imaging", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21906-3", + "display": "Regional lymph nodes.clinical [Class] Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": 62455006, + "display": "N0 category (finding)" + }, + "direct_transition": "Terminal" + }, + "N2_Diagnosed": { + "type": "Observation", + "category": "imaging", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21906-3", + "display": "Regional lymph nodes.clinical [Class] Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": 46059003, + "display": "N2 category (finding)" + }, + "direct_transition": "Terminal" + }, + "N3_Diagnosed": { + "type": "Observation", + "category": "imaging", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "21906-3", + "display": "Regional lymph nodes.clinical [Class] Cancer" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": 5856006, + "display": "N3 category (finding)" + }, + "direct_transition": "Terminal" + }, + "T1": { + "type": "SetAttribute", + "attribute": "breast_cancer_T", + "value": "T1", + "direct_transition": "T1_Diagnosed", + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition" + ] + }, + "No Evidence of Primary Tumor in Breast": { + "type": "Simple", + "direct_transition": "T0", + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition" + ] + }, + "T0": { + "type": "SetAttribute", + "attribute": "breast_cancer_T", + "value": "T0", + "direct_transition": "T0_Diagnosed" + }, + "Tumor Size 2 -5 cm": { + "type": "Observation", + "category": "imaging", + "unit": "cm", + "codes": [ + { + "system": "LOINC", + "code": "33728-7", + "display": "Size.maximum dimension in Tumor" + } + ], + "direct_transition": "T2", + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition" + ], + "range": { + "low": 2, + "high": 5 + } + }, + "T2": { + "type": "SetAttribute", + "attribute": "breast_cancer_T", + "value": "T2", + "direct_transition": "T2_Diagnosed", + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition" + ] + }, + "Tumor Size Greater Than 5 cm": { + "type": "Observation", + "category": "imaging", + "unit": "cm", + "codes": [ + { + "system": "LOINC", + "code": "33728-7", + "display": "Size.maximum dimension in Tumor" + } + ], + "direct_transition": "T3", + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition" + ], + "range": { + "low": 5, + "high": 6 + } + }, + "Tumor Size Less than 2 cm": { + "type": "Observation", + "category": "imaging", + "unit": "cm", + "codes": [ + { + "system": "LOINC", + "code": "33728-7", + "display": "Size.maximum dimension in Tumor" + } + ], + "direct_transition": "T1", + "range": { + "low": 0, + "high": 2 + }, + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition" + ] + }, + "T3": { + "type": "SetAttribute", + "attribute": "breast_cancer_T", + "value": "T3", + "direct_transition": "T3_Diagnosed", + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition" + ] + }, + "Tumor Size Any": { + "type": "Observation", + "category": "imaging", + "unit": "cm", + "codes": [ + { + "system": "LOINC", + "code": "33728-7", + "display": "Size.maximum dimension in Tumor" + } + ], + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition" + ], + "range": { + "low": 0, + "high": 6 + }, + "direct_transition": "T4" + }, + "No Evidence of Distant Metastasis ": { + "type": "Observation", + "category": "imaging", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "44667-4", + "display": "Site of distant metastasis in Breast tumor" + } + ], + "direct_transition": "M0", + "remarks": [ + "https://www.cancer.net/cancer-types/breast-cancer/statistics", + "AJCC Cancer Staging Manual; 8th Edition" + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260413007", + "display": "None (qualifier value)" + } + }, + "M0": { + "type": "SetAttribute", + "attribute": "breast_cancer_M", + "value": "M0", + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition", + "Cancer has either spread beyond the breast and nearby lymph nodes to other areas of the body (M1) or it has not (MO):", + "https://ww5.komen.org/BreastCancer/MetastasesandStaging.html" + ], + "direct_transition": "M0_Diagnosed" + }, + "Distant Metastases Detected": { + "type": "Simple", + "direct_transition": "M1", + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition" + ] + }, + "M1": { + "type": "SetAttribute", + "attribute": "breast_cancer_M", + "value": "M1", + "direct_transition": "M1_Diagnosed", + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition" + ] + }, + "No Regional Lymph Node Metastasis": { + "type": "Observation", + "category": "imaging", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "85352-3", + "display": "Lymph nodes with isolated tumor cells [#] in Cancer specimen by Light microscopy" + } + ], + "exact": { + "quantity": 0 + }, + "direct_transition": "N0", + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition", + "https://ww5.komen.org/BreastCancer/LymphNodeStatusandStaging.html" + ] + }, + "N0": { + "type": "SetAttribute", + "attribute": "breast_cancer_N", + "value": "N0", + "direct_transition": "N0_Diagnosed" + }, + "Micrometastasis in 1 - 3 Lymph Nodes": { + "type": "Observation", + "category": "imaging", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "85344-0", + "display": "Lymph nodes with micrometastases [#] in Cancer specimen by Light microscopy" + } + ], + "direct_transition": "N1", + "range": { + "low": 1, + "high": 3 + }, + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition", + "https://ww5.komen.org/BreastCancer/LymphNodeStatusandStaging.html" + ] + }, + "Macrometastases in 4 - 9 Lymph Nodes": { + "type": "Observation", + "category": "imaging", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "85343-2", + "display": "Lymph nodes with macrometastases [#] in Cancer specimen by Light microscopy" + } + ], + "direct_transition": "N2", + "range": { + "low": 4, + "high": 9 + }, + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition", + "https://ww5.komen.org/BreastCancer/LymphNodeStatusandStaging.html" + ] + }, + "Macrometastases in 10+ Lymph Nodes": { + "type": "Observation", + "category": "imaging", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "85343-2", + "display": "Lymph nodes with macrometastases [#] in Cancer specimen by Light microscopy" + } + ], + "direct_transition": "N3", + "range": { + "low": 10, + "high": 30 + }, + "remarks": [ + "AJCC Cancer Staging Manual; 8th Edition", + "https://ww5.komen.org/BreastCancer/LymphNodeStatusandStaging.html", + "https://www.medicalnewstoday.com/articles/319713.php" + ] + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/bronchitis.json b/src/main/resources/modules/bronchitis.json new file mode 100644 index 0000000..fb534bd --- /dev/null +++ b/src/main/resources/modules/bronchitis.json @@ -0,0 +1,541 @@ +{ + "name": "Bronchitis", + "remarks": [ + "For now this covers only acute bronchitis. Chronic bronchitis is one of the conditions included in chronic obstructive pulmonary disease (COPD).", + "Acute bronchitis is the fifth most common reason why adults see their GP; 5% of the adult population seeks medical advice for bronchitis each year.", + "Most of the data here comes from the following sources: ", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2278319/", + "http://www.aafp.org/afp/1998/0315/p1270.html" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Potential_Infection" + }, + "Potential_Infection": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 18, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.005, + "transition": "Bronchitis_Infection", + "remarks": [ + "6% of children get bronchitis each year.", + "6% / year == ~ .5% per month?" + ] + }, + { + "distribution": 0.995, + "transition": "Potential_Infection" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.00416, + "transition": "Bronchitis_Infection", + "remarks": [ + "5% of the adult population seeks medical advice for bronchitis each year.", + "5% / year == ~ .42% per month?" + ] + }, + { + "distribution": 0.99584, + "transition": "Potential_Infection" + } + ] + } + ] + }, + "Bronchitis_Infection": { + "type": "ConditionOnset", + "target_encounter": "Doctor_Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "10509002", + "display": "Acute bronchitis (disorder)" + } + ], + "direct_transition": "Bronchitis_Symptom1" + }, + "Bronchitis_Symptom1": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 25, + "high": 75 + }, + "direct_transition": "Bronchitis_Symptom2" + }, + "Bronchitis_Symptom2": { + "type": "Symptom", + "symptom": "Mucus", + "range": { + "low": 25, + "high": 50 + }, + "direct_transition": "Bronchitis_Symptom3" + }, + "Bronchitis_Symptom3": { + "type": "Symptom", + "symptom": "Shortness of Breath", + "range": { + "low": 25, + "high": 75 + }, + "direct_transition": "Bronchitis_Symptom4" + }, + "Bronchitis_Symptom4": { + "type": "Symptom", + "symptom": "Sore Throat", + "range": { + "low": 25, + "high": 50 + }, + "direct_transition": "Bronchitis_Symptom5" + }, + "Bronchitis_Symptom5": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 25, + "high": 75 + }, + "direct_transition": "Bronchitis_Symptom6" + }, + "Bronchitis_Symptom6": { + "type": "Symptom", + "symptom": "Fever", + "range": { + "low": 25, + "high": 50 + }, + "direct_transition": "Bronchitis_Symptom7" + }, + "Bronchitis_Symptom7": { + "type": "Symptom", + "symptom": "Body Aches", + "range": { + "low": 0, + "high": 25 + }, + "direct_transition": "Bronchitis_Symptom8" + }, + "Bronchitis_Symptom8": { + "type": "Symptom", + "symptom": "Nasal Congestion", + "range": { + "low": 25, + "high": 50 + }, + "direct_transition": "Bronchitis_Symptom9" + }, + "Bronchitis_Symptom9": { + "type": "Symptom", + "symptom": "Nausea/Vomiting", + "range": { + "low": 0, + "high": 25 + }, + "direct_transition": "Bronchitis_Symptom10" + }, + "Bronchitis_Symptom10": { + "type": "Symptom", + "symptom": "Diarrhea", + "range": { + "low": 0, + "high": 25 + }, + "direct_transition": "Symptoms_Dont_improve" + }, + "Symptoms_Dont_improve": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "days" + }, + "direct_transition": "Doctor_Visit" + }, + "Doctor_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Bronchitis_Infection", + "remarks": [ + "There are no reliable diagnostic signs or laboratory tests, so the diagnosis of acute bronchitis is essentially a clinical one. ", + "The most important condition to rule out is acute pneumonia. " + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.05, + "transition": "Chest_Xray" + }, + { + "distribution": 0.2, + "transition": "Sputum_Test" + }, + { + "distribution": 0.5, + "transition": "Lung_Function_Test" + }, + { + "distribution": 0.2, + "transition": "Bronchitis_CarePlan_Selector" + } + ] + }, + "Chest_Xray": { + "type": "Procedure", + "reason": "Bronchitis_Infection", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain X-ray of chest (procedure)" + } + ], + "duration": { + "low": 10, + "high": 25, + "unit": "minutes" + }, + "direct_transition": "Bronchitis_CarePlan_Selector" + }, + "Sputum_Test": { + "type": "Procedure", + "reason": "Bronchitis_Infection", + "codes": [ + { + "system": "SNOMED-CT", + "code": "269911007", + "display": "Sputum examination (procedure)" + } + ], + "duration": { + "low": 3, + "high": 15, + "unit": "minutes" + }, + "direct_transition": "Bronchitis_CarePlan_Selector" + }, + "Lung_Function_Test": { + "type": "Procedure", + "reason": "Bronchitis_Infection", + "codes": [ + { + "system": "SNOMED-CT", + "code": "23426006", + "display": "Measurement of respiratory function (procedure)" + } + ], + "duration": { + "low": 10, + "high": 25, + "unit": "minutes" + }, + "direct_transition": "Bronchitis_CarePlan_Selector" + }, + "Bronchitis_CarePlan_Selector": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years" + }, + { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "==", + "value": true + } + ] + }, + "transition": "Smoker_CarePlan" + }, + { + "transition": "Nonsmoker_CarePlan" + } + ] + }, + "Smoker_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "bronchitis_careplan", + "reason": "Bronchitis_Infection", + "codes": [ + { + "system": "SNOMED-CT", + "code": "53950000", + "display": "Respiratory therapy (procedure)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "710081004", + "display": "Smoking cessation therapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "304510005", + "display": "Recommendation to avoid exercise (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "371605008", + "display": "Deep breathing and coughing exercises (regime/therapy)" + } + ], + "direct_transition": "OTC_Medicine" + }, + "Nonsmoker_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "bronchitis_careplan", + "reason": "Bronchitis_Infection", + "codes": [ + { + "system": "SNOMED-CT", + "code": "53950000", + "display": "Respiratory therapy (procedure)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "304510005", + "display": "Recommendation to avoid exercise (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "371605008", + "display": "Deep breathing and coughing exercises (regime/therapy)" + } + ], + "direct_transition": "OTC_Medicine" + }, + "OTC_Medicine": { + "type": "Simple", + "remarks": [ + "Up to 95% of bronchitis cases are viral so antibiotics are rarely prescribed", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2278319/" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Symptom", + "symptom": "Mucus", + "operator": "<", + "value": 30 + }, + "distributions": [ + { + "distribution": 0.8, + "transition": "Cough_suppressant" + }, + { + "distribution": 0.2, + "transition": "Acetaminophen" + } + ], + "remarks": [ + "cough suppressants shouldn't be given if the cough brings up mucus" + ] + }, + { + "distributions": [ + { + "distribution": 0.1, + "transition": "Cough_suppressant" + }, + { + "distribution": 0.9, + "transition": "Acetaminophen" + } + ] + } + ] + }, + "Cough_suppressant": { + "type": "MedicationOrder", + "assign_to_attribute": "OTC_Bronchitis_Med", + "reason": "Bronchitis_Infection", + "codes": [ + { + "system": "RxNorm", + "code": "1043400", + "display": "Acetaminophen 21.7 MG/ML / Dextromethorphan Hydrobromide 1 MG/ML / doxylamine succinate 0.417 MG/ML Oral Solution" + } + ], + "direct_transition": "End_Doctor_Visit" + }, + "Acetaminophen": { + "type": "MedicationOrder", + "assign_to_attribute": "OTC_Bronchitis_Med", + "reason": "Bronchitis_Infection", + "codes": [ + { + "system": "RxNorm", + "code": "313782", + "display": "Acetaminophen 325 MG Oral Tablet" + } + ], + "direct_transition": "End_Doctor_Visit" + }, + "End_Doctor_Visit": { + "type": "EncounterEnd", + "direct_transition": "Wait_for_condition_to_resolve" + }, + "Wait_for_condition_to_resolve": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "weeks" + }, + "direct_transition": "Bronchitis_Subsides" + }, + "Bronchitis_Subsides": { + "type": "ConditionEnd", + "condition_onset": "Bronchitis_Infection", + "direct_transition": "Bronchitis_Symptom1_Subsides" + }, + "Bronchitis_Symptom1_Subsides": { + "type": "Symptom", + "symptom": "Cough", + "exact": { + "quantity": 0 + }, + "direct_transition": "Bronchitis_Symptom2_Subsides" + }, + "Bronchitis_Symptom2_Subsides": { + "type": "Symptom", + "symptom": "Mucus", + "exact": { + "quantity": 0 + }, + "direct_transition": "Bronchitis_Symptom4_Subsides" + }, + "Bronchitis_Symptom4_Subsides": { + "type": "Symptom", + "symptom": "Sore Throat", + "exact": { + "quantity": 0 + }, + "direct_transition": "Bronchitis_Symptom5_Subsides" + }, + "Bronchitis_Symptom5_Subsides": { + "type": "Symptom", + "symptom": "Fatigue", + "exact": { + "quantity": 0 + }, + "direct_transition": "Bronchitis_Symptom6_Subsides" + }, + "Bronchitis_Symptom6_Subsides": { + "type": "Symptom", + "symptom": "Fever", + "exact": { + "quantity": 0 + }, + "direct_transition": "Bronchitis_Symptom7_Subsides" + }, + "Bronchitis_Symptom7_Subsides": { + "type": "Symptom", + "symptom": "Body Aches", + "exact": { + "quantity": 0 + }, + "direct_transition": "Bronchitis_Symptom8_Subsides" + }, + "Bronchitis_Symptom8_Subsides": { + "type": "Symptom", + "symptom": "Nasal Congestion", + "exact": { + "quantity": 0 + }, + "direct_transition": "Bronchitis_Symptom9_Subsides" + }, + "Bronchitis_Symptom9_Subsides": { + "type": "Symptom", + "symptom": "Nausea/Vomiting", + "exact": { + "quantity": 0 + }, + "direct_transition": "Bronchitis_Symptom10_Subsides" + }, + "Bronchitis_Symptom10_Subsides": { + "type": "Symptom", + "symptom": "Diarrhea", + "exact": { + "quantity": 0 + }, + "direct_transition": "Bronchitis_Symptom3_Subsides" + }, + "Bronchitis_Symptom3_Subsides": { + "type": "Symptom", + "symptom": "Shortness of Breath", + "exact": { + "quantity": 0 + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "OTC_Bronchitis_Med", + "operator": "is not nil" + }, + "transition": "End_OTC_Medication" + }, + { + "transition": "Next_Well_Visit" + } + ] + }, + "End_OTC_Medication": { + "type": "MedicationEnd", + "referenced_by_attribute": "OTC_Bronchitis_Med", + "direct_transition": "Next_Well_Visit" + }, + "Next_Well_Visit": { + "type": "Encounter", + "wellness": true, + "direct_transition": "End_Bronchitis_CarePlan", + "reason": "Bronchitis_Infection" + }, + "End_Bronchitis_CarePlan": { + "type": "CarePlanEnd", + "referenced_by_attribute": "bronchitis_careplan", + "direct_transition": "End_Wellness_Visit" + }, + "End_Wellness_Visit": { + "type": "EncounterEnd", + "direct_transition": "Potential_Infection" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/cerebral_palsy.json b/src/main/resources/modules/cerebral_palsy.json new file mode 100644 index 0000000..97d6eb4 --- /dev/null +++ b/src/main/resources/modules/cerebral_palsy.json @@ -0,0 +1,1551 @@ +{ + "name": "Cerebral Palsy", + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "Prevalence was higher for males than females (prevalence ratio 1.5:1; 95% CI 1.2–1.8), higher for black non‐Hispanic children than for white non‐Hispanic children (prevalence ratio 1.5:1; 95% CI 1.2–1.8), and similar for Hispanic children compared with White non‐Hispanic children (prevalence ratio 0.9:1; 95% CI 0.6–1.3). Ref: https://onlinelibrary.wiley.com/doi/full/10.1111/dmcn.12268" + ], + "direct_transition": "Age_and_Applicable_Time_Guard" + }, + "Oral_Appliance_Fitting": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": 234817001, + "display": "Insertion of oral appliance for the handicapped (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Pharmacologic_Interventions", + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Rx_Glycopyrrolate": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1437975, + "display": "Glycopyrrolate 1.5 MG Oral Tablet [Glycate]" + } + ], + "direct_transition": "End_Cerebral_Palsy_Encounter1", + "assign_to_attribute": "Rx_Glycopyrrolate", + "remarks": [ + "Patient will receive prescription for Glycopyrrolate. No prevalence data is available to determine distribution probability. Assigned 40% of CP population based on TEP member expert feedback received which states this may be the currently most prescribed anticholinergic for sialorrhea . " + ], + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Rx_Scopolamine": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 351875, + "display": "72 HR Scopolamine 0.0139 MG/HR Transdermal System [Transdermal Scop]" + } + ], + "direct_transition": "End_Cerebral_Palsy_Encounter1", + "remarks": [ + "It has been suggested that anticholinergic drugs such as benztropine, glycopyrrolate and scopolamine could be useful in the treatment of drooling. However, to date it has not been shown that any one anticholinergic is more effective than another. Scopolamine skin patches for transdermal administration could be a useful alternative in the treatment of these patients, and a number of studies have detected a reduction in saliva secretion with this treatment, although efficacy varies between patients Ref: Mato A, Limeres J, Tomas I, Munos M, Abuin C, Feijoo J,Diz P. Management of drooling in disabled patients withscopolamine patches. British Journal of Clinical Pharmacology2010;69:684-688." + ], + "assign_to_attribute": "Rx_Scopolamine", + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Rx_Benztropine": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 885219, + "display": "Benztropine mesylate 0.5 MG Oral Tablet" + } + ], + "direct_transition": "End_Cerebral_Palsy_Encounter1", + "remarks": [ + "A significant decrease in drooling during the benztropine condition relative to placebo was demonstrated and conservative response rates (calculated by deleting placebo responders), ranged up to 65 to 70 per cent. Ref: Camp-Bruno JA, Winsberg BG, Green-Parsons AP, Abrams JP.Efficacy of benztropine therapy for drooling. DevelopmentalMedicine and Child Neurology 1989;31:309-319." + ], + "assign_to_attribute": "Rx_Benztropine" + }, + "Male": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Pre-Cerebral Palsy", + "distribution": 0.0034 + }, + { + "transition": "Terminal", + "distribution": 0.9966 + } + ] + }, + "Female": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Pre-Cerebral Palsy", + "distribution": 0.003 + }, + { + "transition": "Terminal", + "distribution": 0.997 + } + ] + }, + "Age_and_Applicable_Time_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": "<=", + "quantity": 18, + "unit": "years", + "value": 0 + }, + "remarks": [ + "Since 2000, MADDSP and research has focused on 8-year-old children for all developmental disabilities monitored by the CDC. Previous studies have shown that, by this age, most children with developmental disabilities had been identified for services. Ref: https://www.cdc.gov/ncbddd/developmentaldisabilities/maddsp.html" + ], + "conditional_transition": [ + { + "transition": "Female", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "Male", + "condition": { + "condition_type": "Gender", + "gender": "M" + } + } + ] + }, + "Condition_Onset_Cerebral Palsy": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "128188000", + "display": "Cerebral palsy (disorder)" + } + ], + "direct_transition": "Cerebral_Palsy_Encounter1", + "target_encounter": "Cerebral_Palsy_Encounter1" + }, + "Cerebral_Palsy_Encounter1": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "108219001", + "display": "Physician visit with evaluation AND/OR management service (procedure)" + } + ], + "reason": "Condition_Onset_Cerebral Palsy", + "direct_transition": "Check_Dystonia" + }, + "Flexible _Fiberoptic_Endoscopic_Evaluation_of_Swallowing_FEES": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "311834001", + "display": "Fiberoptic endoscopic evaluation of swallowing (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Posterior_Drooling", + "reason": "Condition_Onset_Cerebral Palsy" + }, + "Posterior_Drooling": { + "type": "ConditionOnset", + "assign_to_attribute": "Posterior_Drooling", + "codes": [ + { + "system": "SNOMED-CT", + "code": "288959006", + "display": "Unable to swallow saliva (finding)" + } + ], + "direct_transition": "Medication_Review2" + }, + "Medication_Review2": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "182836005", + "display": "Review of medication (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Oral_Hygiene2", + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Oral_Hygiene2": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "717778001", + "display": "Mouth care (regime/therapy)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Posture_Training2", + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Posture_Training2": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "229069003", + "display": "Posture training (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Pharmacologic_Interventions", + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Pharmacologic_Interventions": { + "type": "Simple", + "remarks": [ + "It has been suggested that anticholinergic drugs such as benztropine, glycopyrrolate and scopolamine could be useful in the treatment of drooling. However, to date it has not been shown that any one anticholinergic is more effective than another. Ref: \tMato A, Limeres J, Tomás I, et al. Management of drooling in disabled patients with scopolamine patches. Br J Clin Pharmacol. 2010;69(6):684-688. doi:10.1111/j.1365-2125.2010.03659.x. Technical Expert Panel (TEP) Feedback provided in June 2020 suggested Glycopyrrolate is prescribed more often than other anticholinergics, so probabilities were set at 40% Glycopyrrolate and 20% for each of the others. ", + "" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "asthma_condition", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "Rx_Glycopyrrolate", + "distribution": 0.3 + }, + { + "transition": "Rx_Scopolamine", + "distribution": 0.2 + }, + { + "transition": "Rx_Benztropine", + "distribution": 0.25 + }, + { + "transition": "Rx_Benzhexol_Hydrochloride", + "distribution": 0.25 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "asthma_condition", + "operator": "is nil" + }, + "distributions": [ + { + "transition": "Monitoring", + "distribution": 0.25 + }, + { + "transition": "Rx_Glycopyrrolate", + "distribution": 0.25 + }, + { + "transition": "Rx_Scopolamine", + "distribution": 0.15 + }, + { + "transition": "Rx_Benztropine", + "distribution": 0.15 + }, + { + "transition": "Rx_Benzhexol_Hydrochloride", + "distribution": 0.15 + }, + { + "transition": "Rx_Atropine", + "distribution": 0.05 + } + ] + }, + { + "distributions": [ + { + "transition": "Rx_Glycopyrrolate", + "distribution": 0.35 + }, + { + "transition": "Rx_Scopolamine", + "distribution": 0.3 + }, + { + "transition": "Rx_Benztropine", + "distribution": 0.15 + }, + { + "transition": "Rx_Benzhexol_Hydrochloride", + "distribution": 0.25 + } + ], + "condition": { + "condition_type": "Symptom", + "symptom": "Cerebral_Palsy_Pneumonia", + "operator": "==", + "value": 1 + } + }, + { + "distributions": [ + { + "transition": "Monitoring", + "distribution": 0.4 + }, + { + "transition": "Rx_Glycopyrrolate", + "distribution": 0.2 + }, + { + "transition": "Rx_Benztropine", + "distribution": 0.1 + }, + { + "transition": "Rx_Benzhexol_Hydrochloride", + "distribution": 0.1 + }, + { + "transition": "Rx_Scopolamine", + "distribution": 0.2 + } + ], + "condition": { + "condition_type": "Symptom", + "symptom": "Cerebral_Palsy_Pneumonia", + "operator": "==", + "value": 0 + } + } + ] + }, + "Behavioral_Therapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "166001", + "display": "Behavioral therapy (regime/therapy)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Pharmacologic_Interventions", + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Behavioral_and_Non_Pharmacologic_Interventions": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Oromotor_Exercises", + "distribution": 0.33 + }, + { + "transition": "Behavioral_Therapy", + "distribution": 0.33 + }, + { + "transition": "Oral_Appliance_Fitting", + "distribution": 0.33999999999999986 + } + ] + }, + "Oromotor_Exercises": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "311707005", + "display": "Oral motor exercises (regime/therapy)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Pharmacologic_Interventions", + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Salivagram_Radionuclide_Imaging": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "312421008", + "display": "Radionuclide imaging - action (qualifier value)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Posterior_Drooling", + "reason": "Condition_Onset_Cerebral Palsy" + }, + "Anterior_Drooling": { + "type": "ConditionOnset", + "assign_to_attribute": "Anterior_Drooling", + "codes": [ + { + "system": "SNOMED-CT", + "code": "62718007", + "display": "Dribbling from mouth (finding)" + } + ], + "direct_transition": "Medication_Review1" + }, + "Medication_Review1": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "182836005", + "display": "Review of medication (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Oral_Hygiene1", + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Oral_Hygiene1": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "717778001", + "display": "Mouth care (regime/therapy)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Posture_Training1", + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Posture_Training1": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "229069003", + "display": "Posture training (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Behavioral_and_Non_Pharmacologic_Interventions", + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "End_Cerebral_Palsy_Encounter1": { + "type": "EncounterEnd", + "direct_transition": "Living_with_CP" + }, + "Surgical_Interventions": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "Posterior_Drooling", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "Duct_Ligation_Surgery", + "distribution": 0.5 + }, + { + "transition": "Submandibular_Gland_Excision_Surgery", + "distribution": 0.5 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "Anterior_Drooling", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "Submandibular_Duct_Relocation_Surgery", + "distribution": 0.33 + }, + { + "transition": "Submandibular_Gland_Excision_Surgery", + "distribution": 0.33 + }, + { + "transition": "Duct_Ligation_Surgery", + "distribution": 0.33999999999999986 + } + ] + } + ] + }, + "Submandibular_Duct_Relocation_Surgery": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "173521004", + "display": "Transposition of submandibular duct (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "End_Surgical_Encounter2", + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Submandibular_Gland_Excision_Surgery": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "47227006", + "display": "Excision of submandibular gland (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "End_Surgical_Encounter2", + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Duct_Ligation_Surgery": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "302351005", + "display": "Ligation of salivary duct (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "End_Surgical_Encounter2", + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Rx_Benzhexol_Hydrochloride": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 905269, + "display": "Trihexyphenidyl Hydrochloride 2 MG Oral Tablet" + } + ], + "direct_transition": "End_Cerebral_Palsy_Encounter1", + "assign_to_attribute": "Rx_Benzhexol_Hydrochloride", + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Cerebral_Palsy_Sialorrhea": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "53827007", + "display": "Excessive salivation (disorder)" + } + ], + "target_encounter": "Cerebral_Palsy_Encounter1", + "distributed_transition": [ + { + "distribution": 0.05, + "transition": "Videofluoroscopic_Swallowing_Study_VFSS" + }, + { + "transition": "Anterior_Drooling", + "distribution": 0.4 + }, + { + "transition": "Salivagram_Radionuclide_Imaging", + "distribution": 0.05 + }, + { + "transition": "Flexible _Fiberoptic_Endoscopic_Evaluation_of_Swallowing_FEES", + "distribution": 0.05 + }, + { + "transition": "Posterior_Drooling", + "distribution": 0.25 + }, + { + "transition": "Anterior_and_Posterior_Drooling", + "distribution": 0.2 + } + ] + }, + "End_Followup_Encounter": { + "type": "EncounterEnd", + "distributed_transition": [ + { + "transition": "Living_with_CP", + "distribution": 0.8 + }, + { + "transition": "Delay_Surgical Encounter", + "distribution": 0.2 + } + ] + }, + "Followup_Cerebral_Palsy_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "conditional_transition": [ + { + "transition": "Constipation", + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 905269, + "display": "trihexyphenidyl hydrochloride 2 MG Oral Tablet" + } + ] + } + }, + { + "transition": "Urinary_Retention", + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 351875, + "display": "72 HR scopolamine 0.0139 MG/HR Transdermal System [Transderm Scop]" + } + ] + } + }, + { + "transition": "Constipation", + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 885219, + "display": "benztropine mesylate 0.5 MG Oral Tablet" + } + ] + } + }, + { + "transition": "Monitoring2", + "condition": { + "condition_type": "PriorState", + "name": "Monitoring" + } + } + ], + "reason": "Condition_Onset_Cerebral Palsy" + }, + "Delay_Surgical Encounter": { + "type": "Delay", + "range": { + "low": 7, + "high": 10, + "unit": "days" + }, + "conditional_transition": [ + { + "transition": "Living_with_CP", + "condition": { + "condition_type": "PriorState", + "name": "Submandibular_Duct_Relocation_Surgery" + } + }, + { + "transition": "Living_with_CP", + "condition": { + "condition_type": "PriorState", + "name": "Submandibular_Gland_Excision_Surgery" + } + }, + { + "transition": "Living_with_CP", + "condition": { + "condition_type": "PriorState", + "name": "Duct_Ligation_Surgery" + } + }, + { + "transition": "Surgical_Encounter2", + "condition": { + "condition_type": "Age", + "operator": ">", + "quantity": 4, + "unit": "years" + } + }, + { + "transition": "Surgical_Encounter1", + "condition": { + "condition_type": "Age", + "operator": ">", + "quantity": 0, + "unit": "years" + } + }, + { + "transition": "Living_with_CP", + "condition": { + "condition_type": "PriorState", + "name": "Monitoring2" + } + }, + { + "transition": "Living_with_CP", + "condition": { + "condition_type": "PriorState", + "name": "Monitoring" + } + } + ] + }, + "Urinary_Retention": { + "type": "ConditionOnset", + "assign_to_attribute": "Urinary Retention", + "target_encounter": "Followup_Cerebral_Palsy_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "267064002", + "display": "Retention of urine (disorder)" + } + ], + "conditional_transition": [ + { + "transition": "End_Rx_Scopolamine", + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 351875, + "display": "72 HR scopolamine 0.0139 MG/HR Transdermal System" + } + ] + } + } + ] + }, + "Constipation": { + "type": "ConditionOnset", + "assign_to_attribute": "Constipation", + "target_encounter": "Followup_Cerebral_Palsy_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "14760008", + "display": "Constipation (finding)" + } + ], + "conditional_transition": [ + { + "transition": "End_Rx_Benzhexol", + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 905269, + "display": "trihexyphenidyl hydrochloride 2 MG Oral Tablet" + } + ] + } + }, + { + "transition": "End_ Rx_Benztropine", + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 885219, + "display": "benztropine mesylate 0.5 MG Oral Tablet" + } + ] + } + } + ] + }, + "Care_Plan_Constipation": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "389082000", + "display": "Constipation care (regime/therapy)" + } + ], + "assign_to_attribute": "Care_Plan_Constipation", + "conditional_transition": [ + { + "transition": "Rx_Glycopyrrolate2", + "condition": { + "condition_type": "Not", + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 1437975, + "display": "glycopyrrolate 1.5 MG Oral Tablet [Glycate]" + } + ] + } + } + }, + { + "transition": "Care_Plan_Constipation_End", + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 1437975, + "display": "glycopyrrolate 1.5 MG Oral Tablet [Glycate]" + } + ] + } + } + ], + "reason": "Constipation" + }, + "Care_Plan_Urinary_Retention": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386490009", + "display": "Urinary retention care (regime/therapy)" + } + ], + "assign_to_attribute": "Care_Plan_Urinary_Retention", + "conditional_transition": [ + { + "transition": "Care_Plan_Urinary Retention_End", + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 1437975, + "display": "glycopyrrolate 1.5 MG Oral Tablet [Glycate]" + } + ] + } + }, + { + "transition": "Rx_Glycopyrrolate2", + "condition": { + "condition_type": "Not", + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 1437975, + "display": "glycopyrrolate 1.5 MG Oral Tablet [Glycate]" + } + ] + } + } + } + ], + "reason": "Urinary_Retention" + }, + "Rx_Glycopyrrolate2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1437975, + "display": "glycopyrrolate 1.5 MG Oral Tablet [Glycate]" + } + ], + "reason": "Cerebral_Palsy_Sialorrhea", + "conditional_transition": [ + { + "transition": "Care_Plan_Urinary Retention_End", + "condition": { + "condition_type": "Attribute", + "attribute": "Care_Plan_Urinary_Retention", + "operator": "is not nil" + } + }, + { + "transition": "Care_Plan_Constipation_End", + "condition": { + "condition_type": "Attribute", + "attribute": "Care_Plan_Constipation", + "operator": "is not nil" + } + } + ], + "chronic": false + }, + "Surgical_Encounter1": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40274000", + "display": "General outpatient clinic admission (procedure)" + } + ], + "distributed_transition": [ + { + "transition": "Rx_Botulinum_Toxin_A", + "distribution": 0.75 + }, + { + "transition": "Rx_Botulinum_Toxin_B", + "distribution": 0.25 + } + ], + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "End_Surgical_Encounter1": { + "type": "EncounterEnd", + "direct_transition": "Living_with_CP" + }, + "Postoperative_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Cerebral_Palsy_Sialorrhea", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183646003", + "display": "Postoperative visit (finding)" + } + ], + "direct_transition": "End_Postoperative_Visit" + }, + "Delay_Postoperative Visit": { + "type": "Delay", + "direct_transition": "Postoperative_Visit", + "range": { + "low": 2, + "high": 7, + "unit": "days" + } + }, + "Care_Plan_Urinary Retention_End": { + "type": "CarePlanEnd", + "direct_transition": "End_Followup_Encounter", + "careplan": "Care_Plan_Urinary_Retention" + }, + "Care_Plan_Constipation_End": { + "type": "CarePlanEnd", + "direct_transition": "End_Followup_Encounter", + "careplan": "Care_Plan_Constipation" + }, + "End_Rx_Benzhexol": { + "type": "MedicationEnd", + "direct_transition": "Care_Plan_Constipation", + "medication_order": "Rx_Benzhexol_Hydrochloride" + }, + "End_ Rx_Benztropine": { + "type": "MedicationEnd", + "direct_transition": "Care_Plan_Constipation", + "medication_order": "Rx_Benztropine" + }, + "End_Rx_Scopolamine": { + "type": "MedicationEnd", + "medication_order": "Rx_Scopolamine", + "direct_transition": "Care_Plan_Urinary_Retention" + }, + "Cerebral_Palsy_Dystonia": { + "type": "ConditionOnset", + "target_encounter": "Cerebral_Palsy_Encounter1", + "codes": [ + { + "system": "SNOMED-CT", + "code": "15802004", + "display": "Dystonia (disorder)" + } + ], + "direct_transition": "Check_Pain", + "remarks": [ + "In around one in six cases, cerebral palsy causes involuntary muscle spasms and unwanted movement - this is described as dystonic cerebral palsy (or alternatively dyskinetic or choreoathetoid cerebral palsy). Ref: https://www.dystonia.org.uk/dystonic-cerebral-palsy" + ] + }, + "Cerebral_Palsy_Pain": { + "type": "ConditionOnset", + "target_encounter": "Cerebral_Palsy_Encounter1", + "codes": [ + { + "system": "SNOMED-CT", + "code": "22253000", + "display": "Pain (finding)" + } + ], + "direct_transition": "Check_Central_Hypotonia", + "remarks": [ + "We included 2777 children (57% boys) at a median age of 7 years; 32.4% reported pain, with significantly more girls than boys experiencing pain Ref: Alriksson-Schmidt A, Hägglund G. Pain in children and adolescents with cerebral palsy: a population-based registry study. Acta Paediatr. 2016;105(6):665‐670. doi:10.1111/apa.13368" + ] + }, + "Cerebral_Palsy_Central_Hypotonia": { + "type": "ConditionOnset", + "target_encounter": "Cerebral_Palsy_Encounter1", + "codes": [ + { + "system": "SNOMED-CT", + "code": "398152000", + "display": "Poor muscle tone (finding)" + } + ], + "direct_transition": "Check_Spasticity", + "remarks": [ + "Hypotonic CP is marked by extremely loose and floppy muscle tone. This type of CP accounts for less than half of all cases. Ref: https://www.birthinjuryguide.org/cerebral-palsy/types/hypertonic-and-hypotonic-cerebral-palsy/" + ] + }, + "Cerebral_Palsy_Spasticity": { + "type": "ConditionOnset", + "target_encounter": "Cerebral_Palsy_Encounter1", + "codes": [ + { + "system": "SNOMED-CT", + "code": "221360009", + "display": "Spasticity (finding)" + } + ], + "direct_transition": "Check_Osteoporosis", + "remarks": [ + "Most (77.4%) of the children identified with CP had spastic CP. Ref: https://www.cdc.gov/ncbddd/cp/data.html" + ] + }, + "Cerebral_Palsy_Osteoporosis": { + "type": "ConditionOnset", + "target_encounter": "Cerebral_Palsy_Encounter1", + "codes": [ + { + "system": "SNOMED-CT", + "code": "64859006", + "display": "Osteoporosis (disorder)" + } + ], + "direct_transition": "Check_Epilepsy", + "remarks": [ + "Low bone mineral density is found in more than 50% of adults with a variety of disabilities, including CP. Numbers of children with osteoporosis from CP is still being evaluated, but preventative measures are recommended due to the high number of adults with CP and Osteoporosis. Ref: https://www.ncbi.nlm.nih.gov/pubmed/19740209. " + ] + }, + "Cerebral_Palsy_Epilepsy": { + "type": "ConditionOnset", + "target_encounter": "Cerebral_Palsy_Encounter1", + "codes": [ + { + "system": "SNOMED-CT", + "code": "84757009", + "display": "Epilepsy (disorder)" + } + ], + "direct_transition": "Check_Intellectual_Disability", + "remarks": [ + "As many as half of all children with CP have one or more seizures. Children with both cerebral palsy and epilepsy are more likely to have intellectual disability. Ref: https://www.ninds.nih.gov/Disorders/Patient-Caregiver-Education/Hope-Through-Research/Cerebral-Palsy-Hope-Through-Research" + ] + }, + "Cerebral_Palsy_Intellectual_Disability": { + "type": "ConditionOnset", + "target_encounter": "Cerebral_Palsy_Encounter1", + "codes": [ + { + "system": "SNOMED-CT", + "code": "110359009", + "display": "Intellectual disability (disorder)" + } + ], + "remarks": [ + "1 in 2 people with cerebral palsy have an intellectual disability. 1 in 5 people have a moderate to severe intellectual disability. Generally, the greater the level of a person’s physical impairment, the more likely it is that they will have an intellectual disability. However, there are people who have a profound level of physical impairment, who do not have an intellectual disability. Conversely, there can be others with a mild physical impairment who have an intellectual disability. Ref: https://cerebralpalsy.org.au/our-research/about-cerebral-palsy/what-is-cerebral-palsy/how-cerebral-palsy-affects-people/#:~:text=1%20in%202%20people%20with,will%20have%20an%20intellectual%20disability." + ], + "direct_transition": "Check_GERD" + }, + "Cerebral_Palsy_GERD": { + "type": "ConditionOnset", + "target_encounter": "Cerebral_Palsy_Encounter1", + "codes": [ + { + "system": "SNOMED-CT", + "code": "235595009", + "display": "Gastroesophageal reflux disease (disorder)" + } + ], + "direct_transition": "Hip_Surveillance", + "remarks": [ + "Gastroesophageal reflux (GERD) is an involuntary passage of the gastric contents into the esophagus. It has been found in a higher prevalence (up to 75 percent) in cerebral palsy patients. ", + "Reference: https://pubmed.ncbi.nlm.nih.gov/12886578/#:~:text=Gastroesophageal%20reflux%20(GER)%20is%20an,and%20can%20cause%20dental%20erosion." + ] + }, + "Surgical_Encounter2": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Cerebral_Palsy_Sialorrhea", + "codes": [ + { + "system": "SNOMED-CT", + "code": "371883000", + "display": "Outpatient procedure (procedure)" + } + ], + "direct_transition": "Surgical_Interventions" + }, + "End_Surgical_Encounter2": { + "type": "EncounterEnd", + "direct_transition": "Delay_Postoperative Visit" + }, + "End_Postoperative_Visit": { + "type": "EncounterEnd", + "direct_transition": "Living_with_CP" + }, + "Botulinum_Toxin_B_Injection": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "404909007", + "display": "Injection of botulinum toxin (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "End_Rx_Botulinum_Toxin_B", + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Botulinum_Toxin_A_Injection": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "404909007", + "display": "Injection of botulinum toxin (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "End_Rx_Botulinum_Toxin_A", + "remarks": [ + "Botulinum toxin A (BoNT-A) is the most common neurotoxin used to treat drooling. Some researchers have also used Botulinum Toxin B (BoNT-B) (Berweck 2007; Witherow 2008). Botulinum toxins act by inhibiting the release of acetylcholine at the neuromuscular junction and reducing the amount of saliva produced by the salivary glands. Ref: Walshe M, Smith M, Pennington L. Interventions for drooling in children with cerebral palsy. Cochrane Database of Systematic Reviews 2012, Issue 11. Art. No.: CD008624. DOI: 10.1002/14651858.CD008624.pub3" + ], + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Rx_Botulinum_Toxin_A": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1789958, + "display": "Dysport botulinum toxin A 300 UNT Injection" + } + ], + "direct_transition": "Botulinum_Toxin_A_Injection", + "administration": true, + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Rx_Botulinum_Toxin_B": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 860182, + "display": "rimabotulinumtoxinB 5000 UNT/ML [Myobloc]" + } + ], + "direct_transition": "Botulinum_Toxin_B_Injection", + "administration": true, + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Living_with_CP": { + "type": "Delay", + "direct_transition": "Followup_Cerebral_Palsy_Encounter", + "range": { + "low": 3, + "high": 12, + "unit": "months" + } + }, + "Anterior_and_Posterior_Drooling": { + "type": "ConditionOnset", + "assign_to_attribute": "Anterior_Drooling", + "codes": [ + { + "system": "SNOMED-CT", + "code": "62718007", + "display": "Dribbling from mouth (finding)" + } + ], + "direct_transition": "Anterior_and_Posterior_Drooling2" + }, + "Anterior_and_Posterior_Drooling2": { + "type": "ConditionOnset", + "assign_to_attribute": "Posterior_Drooling", + "codes": [ + { + "system": "SNOMED-CT", + "code": "288959006", + "display": "Unable to swallow saliva (finding)" + } + ], + "direct_transition": "Medication_Review1" + }, + "Pre-Cerebral Palsy": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "direct_transition": "Condition_Onset_Cerebral Palsy", + "remarks": [ + "The delay is set to one month so the initial encounter does not collide with other module encounters. ", + "", + "" + ] + }, + "Videofluoroscopic_Swallowing_Study_VFSS": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "241149003", + "display": "Videofluoroscopy swallow (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Posterior_Drooling", + "reason": "Condition_Onset_Cerebral Palsy" + }, + "Monitoring": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "182777000", + "display": "Monitoring of patient (regime/therapy)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "End_Cerebral_Palsy_Encounter1" + }, + "Cerebral_Palsy_Pneumonia": { + "type": "ConditionOnset", + "target_encounter": "Cerebral_Palsy_Encounter1", + "codes": [ + { + "system": "SNOMED-CT", + "code": "233604007", + "display": "Pneumonia (disorder)" + } + ], + "direct_transition": "Check_Sialorrhea", + "remarks": [ + "Ref: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5297954/#:~:text=In%20a%20survey%20performed%20in,%25%20had%20wound%2Drelated%20issues." + ] + }, + "Rx_Atropine": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1190766, + "display": "atropine sulfate 0.31 MG/ML Ophthalmic Solution (used Sublingual)" + } + ], + "direct_transition": "End_Cerebral_Palsy_Encounter1", + "remarks": [ + "In conclusion, intraoral sublingual administration of atropine eyedrops decreased drooling and reduced salivary secretion rate in children with disabilities. A majority of the parents considered the method to be efficient but sometimes not practical. No irreversible side effects were noted. Ref: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5324542/ " + ], + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "Monitoring2": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "182777000", + "display": "Monitoring of patient (regime/therapy)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "End_Followup_Encounter", + "reason": "Cerebral_Palsy_Sialorrhea" + }, + "End_Rx_Botulinum_Toxin_A": { + "type": "MedicationEnd", + "direct_transition": "End_Surgical_Encounter1", + "medication_order": "Rx_Botulinum_Toxin_A" + }, + "End_Rx_Botulinum_Toxin_B": { + "type": "MedicationEnd", + "direct_transition": "End_Surgical_Encounter1", + "medication_order": "Rx_Botulinum_Toxin_B" + }, + "Check_Dystonia": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Cerebral_Palsy_Dystonia", + "distribution": 0.166 + }, + { + "transition": "Check_Pain", + "distribution": 0.8340000000000001 + } + ] + }, + "Check_Pain": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Cerebral_Palsy_Pain", + "distribution": 0.324 + }, + { + "transition": "Check_Central_Hypotonia", + "distribution": 0.6759999999999999 + } + ] + }, + "Check_Central_Hypotonia": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Cerebral_Palsy_Central_Hypotonia", + "distribution": 0.45 + }, + { + "transition": "Check_Spasticity", + "distribution": 0.55 + } + ] + }, + "Check_Spasticity": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Cerebral_Palsy_Spasticity", + "distribution": 0.774 + }, + { + "transition": "Check_Osteoporosis", + "distribution": 0.22599999999999998 + } + ] + }, + "Check_Osteoporosis": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Cerebral_Palsy_Osteoporosis", + "distribution": 0.5 + }, + { + "transition": "Check_Epilepsy", + "distribution": 0.5 + } + ] + }, + "Check_Epilepsy": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Cerebral_Palsy_Epilepsy", + "distribution": 0.5 + }, + { + "transition": "Check_Intellectual_Disability", + "distribution": 0.5 + } + ] + }, + "Check_Intellectual_Disability": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Cerebral_Palsy_Intellectual_Disability", + "distribution": 0.5 + }, + { + "transition": "Check_GERD", + "distribution": 0.5 + } + ] + }, + "Check_GERD": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Cerebral_Palsy_GERD", + "distribution": 0.75 + }, + { + "transition": "Hip_Surveillance", + "distribution": 0.25 + } + ] + }, + "Hip_Surveillance": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Cerebral_Palsy_Hip_Dislocation", + "distribution": 0.175 + }, + { + "transition": "Check_Pneumonia", + "distribution": 0.825 + } + ] + }, + "Cerebral_Palsy_Hip_Dislocation": { + "type": "ConditionOnset", + "target_encounter": "Cerebral_Palsy_Encounter1", + "codes": [ + { + "system": "SNOMED-CT", + "code": "157265008", + "display": "Dislocation of hip joint (disorder)" + } + ], + "direct_transition": "Check_Pneumonia", + "remarks": [ + "The risk of progression to hip dislocation is 15–20% in the total population of children with CP. Ref: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2194677/ " + ] + }, + "Check_Pneumonia": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Cerebral_Palsy_Pneumonia", + "distribution": 0.5 + }, + { + "transition": "Check_Sialorrhea", + "distribution": 0.5 + } + ] + }, + "Check_Sialorrhea": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Cerebral_Palsy_Sialorrhea", + "distribution": 0.4 + }, + { + "transition": "End Encounter and Exit", + "distribution": 0.6000000000000001 + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "End Encounter and Exit": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + } + }, + "remarks": [ + "Module Title: Treatment of Sialorrhea in Cerebral Palsy", + "Version Number: 1.0", + "Date Created: 10/28/2020", + "Module Steward: ONC", + "Module Developer: Clinovations Government + Health", + "Description: This module models the treatment of Sialorrhea in Cerebral Palsy in patients age <=18 years of age. It is based on the American Academy for Cerebral Palsy and Developmental Medicine (AACPDM) clinical care pathway for Sialorrhea. This guideline provides recommendations for treatment of Sialorrhea in outpatient settings for the pediatric patient with cerebral palsy. ", + "While this module contains other conditions, which may occur in the cerebral palsy patient such as dystonia, pain, spasticity, central hypotonia and osteoporosis, treatments for these conditions is not yet modeled in the module. ", + "", + "Reference: AACPDM Clinical Care Pathway for Sialorrhea in Cerebral Palsy (September 2017, AACPDM Care Pathways, for review 2020) https://www.aacpdm.org/publications/care-pathways/sialorrhea", + "", + "" + ], + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/chronic_ischaemic_heart_disease.json b/src/main/resources/modules/chronic_ischaemic_heart_disease.json new file mode 100644 index 0000000..3d96814 --- /dev/null +++ b/src/main/resources/modules/chronic_ischaemic_heart_disease.json @@ -0,0 +1,491 @@ +{ + "name": "Chronic Ischaemic Heart Disease", + "remarks": [ + "Chronic ischaemic heart disease (IHD) refers to reduced blood supply to the heart muscle due to coronary artery disease.", + "It is characterized by atherosclerotic plaque buildup in coronary arteries, leading to myocardial ischemia.", + "This module models the onset, progression, and management of chronic IHD, including stable angina and its complications.", + "Information on prevalence, progression, and treatment obtained from:", + "https://www.ncbi.nlm.nih.gov/books/NBK507846/", + "https://www.ahajournals.org/doi/10.1161/CIR.0000000000000757", + "https://www.nice.org.uk/guidance/ng185" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + "Chronic ischaemic heart disease affects approximately 3-4% of the general population.", + "It is more common in males, older adults, and those with risk factors like hypertension,", + "diabetes, hyperlipidemia, smoking, and family history of premature CAD." + ], + "direct_transition": "Risk_Factor_Check" + }, + "Risk_Factor_Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Gender", + "gender": "M" + }, + { + "condition_type": "Age", + "operator": ">=", + "quantity": 45, + "unit": "years" + } + ] + }, + "distributions": [ + { + "distribution": 0.08, + "transition": "Delay_For_IHD_Onset" + }, + { + "distribution": 0.92, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Gender", + "gender": "F" + }, + { + "condition_type": "Age", + "operator": ">=", + "quantity": 55, + "unit": "years" + } + ] + }, + "distributions": [ + { + "distribution": 0.06, + "transition": "Delay_For_IHD_Onset" + }, + { + "distribution": 0.94, + "transition": "Terminal" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.02, + "transition": "Delay_For_IHD_Onset" + }, + { + "distribution": 0.98, + "transition": "Terminal" + } + ] + } + ] + }, + "Delay_For_IHD_Onset": { + "type": "Delay", + "range": { + "low": 1, + "high": 10, + "unit": "years" + }, + "direct_transition": "Chronic_IHD_Onset" + }, + "Chronic_IHD_Onset": { + "type": "ConditionOnset", + "target_encounter": "IHD_Diagnosis_Encounter", + "assign_to_attribute": "ihd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "413838009", + "display": "Chronic ischemic heart disease (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I25.9", + "display": "Chronic ischemic heart disease, unspecified" + } + ], + "direct_transition": "Set_Angina_Status" + }, + "Set_Angina_Status": { + "type": "SetAttribute", + "attribute": "angina_status", + "value": "asymptomatic", + "direct_transition": "IHD_Diagnosis_Encounter" + }, + "IHD_Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "ihd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Chest_Pain_Symptom" + }, + "Chest_Pain_Symptom": { + "type": "Symptom", + "symptom": "chest pain", + "cause": "ihd", + "range": { + "low": 0, + "high": 30 + }, + "direct_transition": "Dyspnea_Symptom" + }, + "Dyspnea_Symptom": { + "type": "Symptom", + "symptom": "dyspnea", + "cause": "ihd", + "range": { + "low": 0, + "high": 30 + }, + "direct_transition": "Fatigue_Symptom" + }, + "Fatigue_Symptom": { + "type": "Symptom", + "symptom": "fatigue", + "cause": "ihd", + "range": { + "low": 0, + "high": 40 + }, + "direct_transition": "BP_Measurement" + }, + "BP_Measurement": { + "type": "Observation", + "category": "vital-signs", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic blood pressure" + } + ], + "range": { + "low": 120, + "high": 160 + }, + "direct_transition": "ECG" + }, + "ECG": { + "type": "Procedure", + "reason": "ihd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29303009", + "display": "Electrocardiogram (procedure)" + } + ], + "direct_transition": "ECG_Findings" + }, + "ECG_Findings": { + "type": "Observation", + "category": "procedure", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "76547-9", + "display": "EKG impression narrative" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "164865005", + "display": "ECG: ischaemic changes (finding)" + }, + "direct_transition": "Lipid_Panel" + }, + "Lipid_Panel": { + "type": "Procedure", + "reason": "ihd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "14698002", + "display": "Lipid panel (procedure)" + } + ], + "direct_transition": "LDL_Test" + }, + "LDL_Test": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "18262-6", + "display": "Cholesterol in LDL [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 120, + "high": 190 + }, + "direct_transition": "HDL_Test" + }, + "HDL_Test": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "2085-9", + "display": "Cholesterol in HDL [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 30, + "high": 50 + }, + "direct_transition": "Stress_Test_Decision" + }, + "Stress_Test_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.8, + "transition": "Exercise_Stress_Test" + }, + { + "distribution": 0.2, + "transition": "Coronary_Angiography_Decision" + } + ] + }, + "Exercise_Stress_Test": { + "type": "Procedure", + "reason": "ihd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "251269002", + "display": "Exercise stress test (procedure)" + } + ], + "duration": { + "low": 30, + "high": 45, + "unit": "minutes" + }, + "direct_transition": "Stress_Test_Results" + }, + "Stress_Test_Results": { + "type": "Observation", + "category": "procedure", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "69066-4", + "display": "Exercise stress test Study observation" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "164873001", + "display": "Exercise ECG positive (finding)" + }, + "direct_transition": "Coronary_Angiography_Decision" + }, + "Coronary_Angiography_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.6, + "transition": "Coronary_Angiography" + }, + { + "distribution": 0.4, + "transition": "Treatment_Plan" + } + ] + }, + "Coronary_Angiography": { + "type": "Procedure", + "reason": "ihd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "33367005", + "display": "Coronary arteriography (procedure)" + } + ], + "duration": { + "low": 45, + "high": 90, + "unit": "minutes" + }, + "direct_transition": "Angiography_Results" + }, + "Angiography_Results": { + "type": "Observation", + "category": "procedure", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "79378-6", + "display": "Coronary angiography Narrative" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "233817007", + "display": "Coronary artery stenosis (disorder)" + }, + "direct_transition": "Update_IHD_Condition" + }, + "Update_IHD_Condition": { + "type": "ConditionEnd", + "condition_onset": "ihd", + "direct_transition": "Specific_IHD_Diagnosis" + }, + "Specific_IHD_Diagnosis": { + "type": "ConditionOnset", + "target_encounter": "IHD_Diagnosis_Encounter", + "assign_to_attribute": "ihd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "413838009", + "display": "Chronic ischemic heart disease (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I25.1", + "display": "Atherosclerotic heart disease of native coronary artery" + } + ], + "direct_transition": "Treatment_Plan" + }, + "Treatment_Plan": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.9, + "transition": "Medical_Management" + }, + { + "distribution": 0.1, + "transition": "Revascularization_Decision" + } + ] + }, + "Medical_Management": { + "type": "Simple", + "direct_transition": "Aspirin_Therapy" + }, + "Aspirin_Therapy": { + "type": "MedicationOrder", + "assign_to_attribute": "aspirin", + "reason": "ihd", + "codes": [ + { + "system": "RxNorm", + "code": "1191", + "display": "Aspirin 81 MG Oral Tablet" + } + ], + "direct_transition": "Statin_Therapy" + }, + "Statin_Therapy": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "reason": "ihd", + "codes": [ + { + "system": "RxNorm", + "code": "617311", + "display": "Atorvastatin 20 MG Oral Tablet" + } + ], + "direct_transition": "Beta_Blocker_Decision" + }, + "Beta_Blocker_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Beta_Blocker_Therapy" + }, + { + "distribution": 0.3, + "transition": "ACE_Inhibitor_Decision" + } + ] + }, + "Beta_Blocker_Therapy": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "reason": "ihd", + "codes": [ + { + "system": "RxNorm", + "code": "866924", + "display": "Metoprolol Tartrate 25 MG Oral Tablet" + } + ], + "direct_transition": "ACE_Inhibitor_Decision" + }, + "ACE_Inhibitor_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.6, + "transition": "ACE_Inhibitor_Therapy" + }, + { + "distribution": 0.4, + "transition": "Nitrate_Decision" + } + ] + }, + "ACE_Inhibitor_Therapy": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_inhibitor", + "reason": "ihd", + "codes": [ + { + "system": "RxNorm", + "code": "1299896", + "display": "Lisinopril 10 MG Oral Tablet" + } + ], + "direct_transition": "Nitrate_Decision" + }, + "Nitrate_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.5, + "transition": "Nitrate_Therapy" + }, + { + "distribution": 0.5, + "transition": "IHD_CarePlan" + } + ] + }}} \ No newline at end of file diff --git a/src/main/resources/modules/chronic_kidney_disease.json b/src/main/resources/modules/chronic_kidney_disease.json new file mode 100644 index 0000000..78dd55d --- /dev/null +++ b/src/main/resources/modules/chronic_kidney_disease.json @@ -0,0 +1,464 @@ +{ + "name": "Chronic Kidney Disease", + "remarks": [], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Initial_Kidney_Health" + }, + "Initial_Kidney_Health": { + "type": "SetAttribute", + "attribute": "ckd", + "value": 0, + "distributed_transition": [ + { + "transition": "Guard_for_Htn_or_DM", + "distribution": 0.998 + }, + { + "transition": "Nephropathy_Progression", + "distribution": 0.001 + }, + { + "transition": "Renal Dysplasia", + "distribution": 0.001 + } + ] + }, + "Guard_for_Htn_or_DM": { + "type": "Guard", + "allow": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "hypertension", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "diabetes", + "operator": "is not nil" + } + ] + }, + "direct_transition": "Nephropathy_Progression" + }, + "Nephropathy_Progression": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "remarks": [ + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4727808/", + "There are 5 defined stages of kidney disease; stage 5 is End-stage where dialysis is necessary", + "Prevalence of Nephropathy is 34.5% - http://link.springer.com/chapter/10.1007%2F978-1-4939-0793-9_2", + "Prevalence of microalbuminuria is ~ 28.8% - https://www.ncbi.nlm.nih.gov/pubmed/11877563", + "Prevalence of End stage renal disease is ~ .78% - ", + "https://www.cdc.gov/diabetes/pdfs/data/2014-report-estimates-of-diabetes-and-its-burden-in-the-united-states.pdf" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 0 + } + ] + }, + "distributions": [ + { + "distribution": 0.99, + "transition": "Nephropathy_Progression" + }, + { + "distribution": 0.01, + "transition": "Set_CKD_1 Damage" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 0 + }, + "distributions": [ + { + "distribution": 0.9982, + "transition": "Nephropathy_Progression" + }, + { + "distribution": 0.0018, + "transition": "Set_CKD_1 Damage" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 1 + }, + "distributions": [ + { + "distribution": 0.98, + "transition": "Set_CKD_1 Damage" + }, + { + "distribution": 0.02, + "transition": "Set_CKD_2 Damage" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 2 + }, + "distributions": [ + { + "distribution": 0.99, + "transition": "Set_CKD_2 Damage" + }, + { + "distribution": 0.01, + "transition": "Set_CKD_3 Damage" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 3 + }, + "distributions": [ + { + "distribution": 0.99, + "transition": "Set_CKD_3 Damage" + }, + { + "distribution": 0.01, + "transition": "Set_CKD_4 Damage" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 4 + }, + "distributions": [ + { + "distribution": 0.99, + "transition": "Set_CKD_4 Damage" + }, + { + "distribution": 0.01, + "transition": "Expected_Lifespan_for_ESRD" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 5 + }, + "transition": "Expected_Lifespan_for_ESRD" + } + ] + }, + "Set_Nephropathy": { + "type": "SetAttribute", + "attribute": "nephropathy", + "value": true, + "direct_transition": "CKD1_Symptom_1" + }, + "Set_Microalbuminuria": { + "type": "SetAttribute", + "attribute": "microalbuminuria", + "value": true, + "direct_transition": "CKD2_Symptom_1" + }, + "Set_Proteinuria": { + "type": "SetAttribute", + "attribute": "proteinuria", + "value": true, + "direct_transition": "CKD3_Symptom_1" + }, + "Expected_Lifespan_for_ESRD": { + "type": "Death", + "range": { + "low": 4, + "high": 10, + "unit": "years" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "46177005", + "display": "End-stage renal disease (disorder)" + } + ], + "remarks": [ + "Life expectency depends on many factors, but for patients > 40 it's generally less than 10 years with dialysis", + "http://link.springer.com/article/10.1007/s00467-016-3383-8 (Table 2" + ], + "direct_transition": "Set_CKD_5 Damage" + }, + "Loop_back_to_Start": { + "type": "Simple", + "direct_transition": "Nephropathy_Progression" + }, + "Set_CKD_1 Damage": { + "type": "SetAttribute", + "attribute": "ckd", + "direct_transition": "Set_Nephropathy", + "value": 1 + }, + "Set_CKD_2 Damage": { + "type": "SetAttribute", + "attribute": "ckd", + "direct_transition": "Set_Microalbuminuria", + "value": 2 + }, + "Set_CKD_3 Damage": { + "type": "SetAttribute", + "attribute": "ckd", + "value": 3, + "direct_transition": "Set_Proteinuria" + }, + "Set_CKD_4 Damage": { + "type": "SetAttribute", + "attribute": "ckd", + "value": 4, + "direct_transition": "CKD4_Symptom_1" + }, + "Set_CKD_5 Damage": { + "type": "SetAttribute", + "attribute": "ckd", + "direct_transition": "CKD5_Symptom_1", + "value": 5 + }, + "CKD1_Symptom_1": { + "type": "Symptom", + "symptom": "Hunger", + "range": { + "low": 1, + "high": 100 + }, + "direct_transition": "CKD1_Symptom_2" + }, + "CKD2_Symptom_1": { + "type": "Symptom", + "symptom": "Hunger", + "range": { + "low": 20, + "high": 100 + }, + "direct_transition": "CKD2_Symptom_2" + }, + "CKD2_Symptom_2": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 20, + "high": 100 + }, + "direct_transition": "CKD2_Symptom_3" + }, + "CKD2_Symptom_3": { + "type": "Symptom", + "symptom": "Frequent Urination", + "range": { + "low": 20, + "high": 100 + }, + "direct_transition": "CKD2_Symptom_4" + }, + "CKD2_Symptom_4": { + "type": "Symptom", + "symptom": "Thirst", + "range": { + "low": 20, + "high": 100 + }, + "direct_transition": "Loop_back_to_Start" + }, + "CKD1_Symptom_2": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 1, + "high": 100 + }, + "direct_transition": "CKD1_Symptom_3" + }, + "CKD1_Symptom_3": { + "type": "Symptom", + "symptom": "Frequent Urination", + "range": { + "low": 1, + "high": 100 + }, + "direct_transition": "CKD1_Symptom_4" + }, + "CKD1_Symptom_4": { + "type": "Symptom", + "symptom": "Thirst", + "range": { + "low": 1, + "high": 100 + }, + "direct_transition": "Loop_back_to_Start" + }, + "CKD3_Symptom_1": { + "type": "Symptom", + "symptom": "Hunger", + "range": { + "low": 40, + "high": 100 + }, + "direct_transition": "CKD3_Symptom_2" + }, + "CKD3_Symptom_2": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 40, + "high": 100 + }, + "direct_transition": "CKD3_Symptom_3" + }, + "CKD3_Symptom_3": { + "type": "Symptom", + "symptom": "Frequent Urination", + "range": { + "low": 40, + "high": 100 + }, + "direct_transition": "CKD3_Symptom_4" + }, + "CKD3_Symptom_4": { + "type": "Symptom", + "symptom": "Thirst", + "range": { + "low": 40, + "high": 100 + }, + "direct_transition": "Loop_back_to_Start" + }, + "CKD5_Symptom_1": { + "type": "Symptom", + "symptom": "Hunger", + "range": { + "low": 50, + "high": 100 + }, + "remarks": [ + "Without intervention, 20-40 percent of patients with type 2 diabetes/microalbuminuria, will evolve to macroalbuminuria.", + "Shlipak, Michael. 'Clinical Evidence Handbook: Diabetic Nephropathy: Preventing Progression - American Family Physician'. www.aafp.org." + ], + "direct_transition": "CKD5_Symptom_2" + }, + "CKD5_Symptom_2": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "CKD5_Symptom_3" + }, + "CKD5_Symptom_3": { + "type": "Symptom", + "symptom": "Frequent Urination", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "CKD5_Symptom_4" + }, + "CKD5_Symptom_4": { + "type": "Symptom", + "symptom": "Thirst", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Loop_back_to_Start" + }, + "CKD4_Symptom_1": { + "type": "Symptom", + "symptom": "Hunger", + "cause": "", + "direct_transition": "CKD4_Symptom_2", + "range": { + "low": 45, + "high": 2 + } + }, + "CKD4_Symptom_2": { + "type": "Symptom", + "symptom": "Fatigue", + "cause": "", + "direct_transition": "CKD4_Symptom_3", + "range": { + "low": 45, + "high": 100 + } + }, + "CKD4_Symptom_3": { + "type": "Symptom", + "symptom": "Frequent Urination", + "cause": "", + "direct_transition": "CKD4_Symptom_4", + "range": { + "low": 45, + "high": 100 + } + }, + "CKD4_Symptom_4": { + "type": "Symptom", + "symptom": "Thirst", + "cause": "", + "direct_transition": "Loop_back_to_Start", + "range": { + "low": 45, + "high": 100 + } + }, + "Renal Dysplasia": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "204949001", + "display": "Renal dysplasia (disorder)" + } + ], + "direct_transition": "Expected_Lifespan_for_ESRD" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/colorectal_cancer.json b/src/main/resources/modules/colorectal_cancer.json new file mode 100644 index 0000000..2f12d9b --- /dev/null +++ b/src/main/resources/modules/colorectal_cancer.json @@ -0,0 +1,2188 @@ +{ + "name": "Colorectal Cancer", + "remarks": [ + "Colorectal cancer typically starts as benign polyps on the lining of the colon ", + "or rectum that slowly become cancerous over a period of 10-15 years. Annually 136,000 new cases are diagnosed and 51,300 people die from colorectal cancer in the U.S. The lifetime risk of developing colorectal cancer is 4.7% for men, 4.4% for women.", + "source: http://www.cancer.org/cancer/colonandrectumcancer/detailedguide/colorectal-cancer-key-statistics", + "Some things not modeled in this module: ", + "1. Colorectal cancer in children. Although possible it's highly unlikely. ", + "2. Diabetes, obesity, and poor diet as risk factors. I could not find any conclusive statistics or reports linking these to an increased incidence of colorectal cancer. ", + "3. The progression of cancer from one stage to another. Whatever stage the patient is initially diagnosed at they remain at." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Delay_For_Smoking_History" + }, + "Delay_For_Smoking_History": { + "type": "Delay", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + "About 1/3 of people over age 50 still do not get regular colonoscopies. ", + "These people develop more advanced colorectal cancer before it's detected.", + "Smoking increases your risk of colorectal cancer by 1.5x.", + "Wait for smoking history (possibly none) to accumulate." + ], + "exact": { + "quantity": 30, + "unit": "years" + }, + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "==", + "value": true + }, + "distributions": [ + { + "distribution": 0.7, + "transition": "Routine_Colonoscopy_Guard" + }, + { + "distribution": 0.285, + "transition": "Terminal" + }, + { + "distribution": 0.015, + "transition": "Delay_Until_Symptoms_Start" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.7, + "transition": "Routine_Colonoscopy_Guard" + }, + { + "distribution": 0.29, + "transition": "Terminal" + }, + { + "distribution": 0.01, + "transition": "Delay_Until_Symptoms_Start" + } + ] + } + ] + }, + "Delay_Until_Symptoms_Start": { + "type": "Delay", + "remarks": [ + "These patients do not get regular colonscopies or get colorectal cancer ", + "before they reach age 50. The median age for early-onset colorectal cancer ", + "is 44. See the 'Colorectal Cancer Symptoms' section." + ], + "range": { + "low": 5, + "high": 40, + "unit": "years" + }, + "direct_transition": "Colorectal_Cancer_Symptom_1" + }, + "Routine_Colonoscopy_Guard": { + "type": "Guard", + "remarks": [ + "======================================================================", + " ROUTINE COLONOSCOPY ", + "======================================================================" + ], + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 50, + "unit": "years" + }, + "direct_transition": "Colon Cancer Screening Reason" + }, + "Routine_Colonoscopy_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "direct_transition": "Routine_Colonoscopy_Procedure", + "reason": "colon_cancer_screening" + }, + "Routine_Colonoscopy_Procedure": { + "type": "Procedure", + "remarks": [ + "NIH study on the epidemiology of colorectal adenomas (polyps): ", + "https://www.ncbi.nlm.nih.gov/pubmed/15666099 ", + "10-20% of sigmoidoscopy and colonoscopy patients are found to have adenomas.", + "To make this more realistic I slowly increase the rate that adenomas are found ", + "as patients age. Colonoscopies are generally not recommended for those over 75-80." + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "73761001", + "display": "Colonoscopy (procedure)" + } + ], + "duration": { + "low": 25, + "high": 45, + "unit": "minutes" + }, + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 60, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.9, + "transition": "End_Routine_Colonoscopy_Encounter" + }, + { + "distribution": 0.1, + "transition": "Detect_Adenoma" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 70, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.85, + "transition": "End_Routine_Colonoscopy_Encounter" + }, + { + "distribution": 0.15, + "transition": "Detect_Adenoma" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 80, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.8, + "transition": "End_Routine_Colonoscopy_Encounter" + }, + { + "distribution": 0.2, + "transition": "Detect_Adenoma" + } + ] + } + ] + }, + "End_Routine_Colonoscopy_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Wait_For_Next_Routine_Colonoscopy" + }, + "Wait_For_Next_Routine_Colonoscopy": { + "type": "Delay", + "remarks": [ + "If no anomalies are detected at age 50 colonoscopies are scheduled at ", + "5-year intervals from here on out. Based on these CDC guidelines: ", + "http://www.cdc.gov/cancer/colorectal/basic_info/screening/guidelines.htm" + ], + "exact": { + "quantity": 5, + "unit": "years" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 80, + "unit": "years" + }, + "transition": "Terminal" + }, + { + "transition": "Routine_Colonoscopy_Encounter" + } + ] + }, + "Detect_Adenoma": { + "type": "ConditionOnset", + "remarks": [ + "======================================================================", + " COLORECTAL ADENOMA DIAGNOSIS ", + "======================================================================", + "Although the incidence of colorectal polyps is 10-20% only about 10% of these polyps become cancerous. Source: ", + "http://www.hopkinscoloncancercenter.org/CMS/CMS_Page.aspx?CurrentUDV=59&CMS_Page_ID=0B34E9BE-5DE6-4CB4-B387-4158CC924084" + ], + "target_encounter": "Routine_Colonoscopy_Encounter", + "assign_to_attribute": "colorectal_adenoma", + "codes": [ + { + "system": "SNOMED-CT", + "code": "68496003", + "display": "Polyp of colon (disorder)" + } + ], + "distributed_transition": [ + { + "distribution": 0.9, + "transition": "Benign_Adenoma" + }, + { + "distribution": 0.1, + "transition": "Malignant_Adenoma" + } + ] + }, + "Benign_Adenoma": { + "type": "Observation", + "category": "procedure", + "range": { + "low": 2, + "high": 7 + }, + "unit": "mm", + "codes": [ + { + "system": "LOINC", + "code": "33756-8", + "display": "Polyp size greatest dimension" + } + ], + "direct_transition": "Fecal_Test" + }, + "Malignant_Adenoma": { + "type": "Observation", + "category": "procedure", + "range": { + "low": 10, + "high": 25 + }, + "unit": "mm", + "codes": [ + { + "system": "LOINC", + "code": "33756-8", + "display": "Polyp size greatest dimension" + } + ], + "direct_transition": "Fecal_Test" + }, + "Fecal_Test": { + "type": "Procedure", + "remarks": [ + "======================================================================", + " FECAL IMMUNOCHEMICAL TEST ", + "======================================================================", + "This test is used to detect trace amounts of blood in the stool that ", + "is indicative of colorectal cancer. The estimated cutoff level for this ", + "test is 100 ng/mL. Source: http://cebp.aacrjournals.org/content/20/2/272", + "Interestingly, if the patient previously had a positive test result (from ", + "a malignant adenoma) the 'Malignant_Adenoma' PriorState will remain true. ", + "If the patient is then later diagnosed with a benign adenoma the fecal test ", + "will still return postive. This aligns with the likelihood of recurrent ", + "adenomas being cancerous." + ], + "reason": "colorectal_adenoma", + "codes": [ + { + "system": "SNOMED-CT", + "code": "104435004", + "display": "Screening for occult blood in feces (procedure)" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Malignant_Adenoma" + }, + "transition": "Fecal_Test_Positive_Result" + }, + { + "transition": "Fecal_Test_Negative_Result" + } + ] + }, + "Fecal_Test_Positive_Result": { + "type": "Observation", + "category": "laboratory", + "range": { + "low": 150, + "high": 500 + }, + "unit": "ng/mL", + "codes": [ + { + "system": "LOINC", + "code": "57905-2", + "display": "Hemoglobin.gastrointestinal.lower [Presence] in Stool by Immunoassay --1st specimen" + } + ], + "direct_transition": "Adenoma_Removal" + }, + "Fecal_Test_Negative_Result": { + "type": "Observation", + "category": "laboratory", + "range": { + "low": 0, + "high": 25 + }, + "unit": "ng/mL", + "codes": [ + { + "system": "LOINC", + "code": "57905-2", + "display": "Hemoglobin.gastrointestinal.lower [Presence] in Stool by Immunoassay --1st specimen" + } + ], + "direct_transition": "Adenoma_Removal" + }, + "Adenoma_Removal": { + "type": "Procedure", + "remarks": [ + "======================================================================", + " COLORECTAL ADENOMA TREATMENT ", + "======================================================================", + "When found these polyps are almost always removed. If the polyps are ", + "large and potentially cancerous a biopsy is then performed. For simplicity ", + "all large colorectal adenomas found in this module are also cancerous." + ], + "reason": "colorectal_adenoma", + "codes": [ + { + "system": "SNOMED-CT", + "code": "274031008", + "display": "Rectal polypectomy (procedure)" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Malignant_Adenoma" + }, + "transition": "Adenoma_Biopsy" + }, + { + "transition": "End_Routine_Colonoscopy_with_Benign_Adenoma" + } + ] + }, + "End_Routine_Colonoscopy_with_Benign_Adenoma": { + "type": "EncounterEnd", + "direct_transition": "Wait_For_Followup_Colonoscopy" + }, + "Adenoma_Biopsy": { + "type": "Procedure", + "reason": "colorectal_adenoma", + "codes": [ + { + "system": "SNOMED-CT", + "code": "76164006", + "display": "Biopsy of colon (procedure)" + } + ], + "direct_transition": "End_Routine_Colonoscopy_with_Malignant_Adenoma" + }, + "End_Routine_Colonoscopy_with_Malignant_Adenoma": { + "type": "EncounterEnd", + "direct_transition": "Wait_For_Biopsy_Followup" + }, + "Wait_For_Biopsy_Followup": { + "type": "Delay", + "range": { + "low": 2, + "high": 7, + "unit": "days" + }, + "direct_transition": "Biopsy_Followup" + }, + "Biopsy_Followup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "colorectal_adenoma", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "End_Biopsy_Followup" + }, + "End_Biopsy_Followup": { + "type": "EncounterEnd", + "distributed_transition": [ + { + "distribution": 0.4, + "transition": "Colorectal_Cancer_Diagnose_Stage_I" + }, + { + "distribution": 0.2, + "transition": "Colorectal_Cancer_Diagnose_Stage_II" + }, + { + "distribution": 0.4, + "transition": "Wait_For_Followup_Colonoscopy" + } + ] + }, + "Wait_For_Followup_Colonoscopy": { + "type": "Delay", + "remarks": [ + "======================================================================", + " FOLLOWUP COLONOSCOPY ", + "======================================================================", + "If colorectal adenomas are found a followup colonoscopy is scheduled ", + "for one year later. If the adenomas recur there's a good chance the ", + "patient will get cancer." + ], + "range": { + "low": 12, + "high": 18, + "unit": "months" + }, + "direct_transition": "Followup_Colonoscopy_Encounter" + }, + "Followup_Colonoscopy_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "direct_transition": "Followup_Colonoscopy_Procedure", + "reason": "colorectal_adenoma" + }, + "Followup_Colonoscopy_Procedure": { + "type": "Procedure", + "remarks": [ + "Colorectal polyps recur at about 20-30% over a lifetime.", + "Source: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2780113/" + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "73761001", + "display": "Colonoscopy (procedure)" + } + ], + "duration": { + "low": 25, + "high": 45, + "unit": "minutes" + }, + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "713197008", + "display": "Recurrent rectal polyp (disorder)" + } + ], + "remarks": [ + "For variety, if the patient was referred to a followup and not ", + "immediately diagnosed with colorectal cancer that means his/her ", + "recurrent adenomas were on the fence. We give these patients a ", + "break and return them back to the general pool." + ] + }, + "distributions": [ + { + "distribution": 1, + "transition": "End_Recurrent_Adenoma" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.75, + "transition": "End_Colorectal_Adenoma" + }, + { + "distribution": 0.25, + "transition": "Recurrent_Colorectal_Adenoma" + } + ] + } + ] + }, + "End_Colorectal_Adenoma": { + "type": "ConditionEnd", + "remarks": [ + "If the patient's colorectal adenoma does not return after a year ", + "we return them to the regular 5-year pattern. However, they will ", + "still have the option for their adenoma to recur later in the future." + ], + "referenced_by_attribute": "colorectal_adenoma", + "direct_transition": "End_Followup_Encounter_Clean" + }, + "End_Followup_Encounter_Clean": { + "type": "EncounterEnd", + "direct_transition": "Wait_For_Next_Routine_Colonoscopy" + }, + "Recurrent_Colorectal_Adenoma": { + "type": "ConditionOnset", + "remarks": [ + "======================================================================", + " RECURRENT COLORECTAL ADENOMA ", + "======================================================================", + "Survival after recurrent colorectal adenoma is much lower, anywhere ", + "in the range of 15-40%. If we detect recurent colorectal adenoma ", + "we move the patient along to stage III cancer. ", + "Source: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2780113/" + ], + "target_encounter": "Followup_Colonoscopy_Encounter", + "assign_to_attribute": "recurrent_colorectal_adenoma", + "codes": [ + { + "system": "SNOMED-CT", + "code": "713197008", + "display": "Recurrent rectal polyp (disorder)" + } + ], + "direct_transition": "Recurrent_Adenoma_Removal" + }, + "Recurrent_Adenoma_Removal": { + "type": "Procedure", + "reason": "recurrent_colorectal_adenoma", + "codes": [ + { + "system": "SNOMED-CT", + "code": "274031008", + "display": "Rectal polypectomy (procedure)" + } + ], + "direct_transition": "Pain_Vital" + }, + "End_Followup_Encounter_After_Adenoma_Removal": { + "type": "EncounterEnd", + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Colorectal_Cancer_Diagnose_Stage_II" + }, + { + "distribution": 0.3, + "transition": "Colorectal_Cancer_Diagnose_Stage_III" + }, + { + "distribution": 0.4, + "transition": "Wait_For_Followup_Colonoscopy" + } + ] + }, + "End_Recurrent_Adenoma": { + "type": "ConditionEnd", + "referenced_by_attribute": "recurrent_colorectal_adenoma", + "direct_transition": "End_Colorectal_Adenoma" + }, + "Colorectal_Cancer_Symptom_1": { + "type": "ConditionOnset", + "remarks": [ + "======================================================================", + " COLORECTAL CANCER SYMPTOMS ", + "======================================================================", + "If the patient begins experiencing the symptoms of colorectal cancer ", + "before ever having a colonoscopy usually the cancer is further along." + ], + "target_encounter": "Symptom_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "236077008", + "display": "Protracted diarrhea (finding)" + } + ], + "direct_transition": "Colorectal_Cancer_Symptom_2" + }, + "Colorectal_Cancer_Symptom_2": { + "type": "ConditionOnset", + "target_encounter": "Symptom_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "6072007", + "display": "Bleeding from anus (disorder)" + } + ], + "direct_transition": "Symptom_Encounter" + }, + "Symptom_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Colorectal_Cancer_Symptom_2", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "direct_transition": "End_Symptom_Encounter" + }, + "End_Symptom_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Colorectal_Cancer_Symptom_3" + }, + "Colorectal_Cancer_Symptom_3": { + "type": "Symptom", + "symptom": "Constipation", + "range": { + "low": 50, + "high": 150 + }, + "direct_transition": "Colorectal_Cancer_Symptom_4" + }, + "Colorectal_Cancer_Symptom_4": { + "type": "Symptom", + "symptom": "Cramping", + "range": { + "low": 50, + "high": 150 + }, + "direct_transition": "Colorectal_Cancer_Symptom_5" + }, + "Colorectal_Cancer_Symptom_5": { + "type": "Symptom", + "symptom": "Abdominal Pain", + "range": { + "low": 50, + "high": 150 + }, + "direct_transition": "Colorectal_Cancer_Symptom_6" + }, + "Colorectal_Cancer_Symptom_6": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Colorectal_Cancer_Symptom_7" + }, + "Colorectal_Cancer_Symptom_7": { + "type": "Symptom", + "symptom": "Weight Loss", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Wait_For_Diagnostic_Colonoscopy" + }, + "Wait_For_Diagnostic_Colonoscopy": { + "type": "Delay", + "remarks": [ + "The patient needs to wait for a couple of days for his/her colon ", + "to clear out before the colonoscopy can be performed." + ], + "range": { + "low": 3, + "high": 5, + "unit": "days" + }, + "direct_transition": "Diagnostic_Colonoscopy_Encounter" + }, + "Diagnostic_Colonoscopy_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "direct_transition": "Diagnostic_Colonoscopy_Procedure", + "reason": "Colorectal_Cancer_Symptom_2" + }, + "Diagnostic_Colonoscopy_Procedure": { + "type": "Procedure", + "remarks": [ + "The patient is showing all signs of advanced colorectal cancer. ", + "The prognosis will not be good." + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "73761001", + "display": "Colonoscopy (procedure)" + } + ], + "duration": { + "low": 25, + "high": 45, + "unit": "minutes" + }, + "direct_transition": "End_Diagnostic_Colonoscopy_Encounter" + }, + "End_Diagnostic_Colonoscopy_Encounter": { + "type": "EncounterEnd", + "distributed_transition": [ + { + "distribution": 0.5, + "transition": "Colorectal_Cancer_Diagnose_Stage_III" + }, + { + "distribution": 0.5, + "transition": "Colorectal_Cancer_Diagnose_Stage_IV" + } + ] + }, + "Colorectal_Cancer_Diagnose_Stage_I": { + "type": "SetAttribute", + "attribute": "colorectal_cancer_stage", + "value": 1, + "direct_transition": "Colorectal_Cancer" + }, + "Colorectal_Cancer_Diagnose_Stage_II": { + "type": "SetAttribute", + "attribute": "colorectal_cancer_stage", + "value": 2, + "direct_transition": "Colorectal_Cancer" + }, + "Colorectal_Cancer_Diagnose_Stage_III": { + "type": "SetAttribute", + "attribute": "colorectal_cancer_stage", + "value": 3, + "direct_transition": "Colorectal_Cancer" + }, + "Colorectal_Cancer_Diagnose_Stage_IV": { + "type": "SetAttribute", + "attribute": "colorectal_cancer_stage", + "value": 4, + "direct_transition": "Colorectal_Cancer" + }, + "Colorectal_Cancer": { + "type": "Simple", + "remarks": [ + "This state mainly exists to isolate the colonoscopy and diagnosis ", + "portion of the module from the portion devoted to cancer treatment.", + "======================================================================", + " COLORECTAL CANCER ", + "======================================================================", + "| Stage | Survival Rate | Treatments |", + "----------------------------------------------------------------------", + "| I | 92% | Polypectomy, Parial colectomy |", + "| II | 75% | Partial colectomy, colectomy, chemo |", + "| III | 65% | Colectomy, chemo |", + "| IV | 11% | Chemo, radiotherapy |", + "----------------------------------------------------------------------" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "colorectal_cancer_stage", + "operator": "==", + "value": 1 + }, + "transition": "Colorectal_Cancer_Stage_I" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "colorectal_cancer_stage", + "operator": "==", + "value": 2 + }, + "transition": "Colorectal_Cancer_Stage_II" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "colorectal_cancer_stage", + "operator": "==", + "value": 3 + }, + "transition": "Colorectal_Cancer_Stage_III" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "colorectal_cancer_stage", + "operator": "==", + "value": 4 + }, + "transition": "Colorectal_Cancer_Stage_IV" + } + ] + }, + "Colorectal_Cancer_Stage_I": { + "type": "ConditionOnset", + "target_encounter": "Oncologist_Encounter", + "assign_to_attribute": "colorectal_cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "93761005", + "display": "Primary malignant neoplasm of colon (disorder)" + } + ], + "distributed_transition": [ + { + "distribution": 0.08, + "transition": "Eventual_Death" + }, + { + "distribution": 0.92, + "transition": "Wait_For_Oncologist_Encounter" + } + ] + }, + "Colorectal_Cancer_Stage_II": { + "type": "ConditionOnset", + "target_encounter": "Oncologist_Encounter", + "assign_to_attribute": "colorectal_cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "109838007", + "display": "Overlapping malignant neoplasm of colon (disorder)" + } + ], + "distributed_transition": [ + { + "distribution": 0.25, + "transition": "Eventual_Death" + }, + { + "distribution": 0.75, + "transition": "Wait_For_Oncologist_Encounter" + } + ] + }, + "Colorectal_Cancer_Stage_III": { + "type": "ConditionOnset", + "target_encounter": "Oncologist_Encounter", + "assign_to_attribute": "colorectal_cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "363406005", + "display": "Malignant neoplasm of colon (disorder)" + } + ], + "distributed_transition": [ + { + "distribution": 0.35, + "transition": "Eventual_Death" + }, + { + "distribution": 0.65, + "transition": "Wait_For_Oncologist_Encounter" + } + ] + }, + "Colorectal_Cancer_Stage_IV": { + "type": "ConditionOnset", + "target_encounter": "Oncologist_Encounter", + "assign_to_attribute": "colorectal_cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "94260004", + "display": "Metastatic malignant neoplasm to colon (disorder)" + } + ], + "distributed_transition": [ + { + "distribution": 0.89, + "transition": "Eventual_Death" + }, + { + "distribution": 0.11, + "transition": "Wait_For_Oncologist_Encounter" + } + ] + }, + "Eventual_Death": { + "type": "Death", + "referenced_by_attribute": "colorectal_cancer", + "remarks": [ + "These patients will eventually die from their colorectal cancer." + ], + "range": { + "low": 2, + "high": 5, + "unit": "years" + }, + "distributed_transition": [ + { + "transition": "Will Use Hospice", + "distribution": 0.3 + }, + { + "transition": "Wait_For_Oncologist_Encounter", + "distribution": 0.7 + } + ] + }, + "Wait_For_Oncologist_Encounter": { + "type": "Delay", + "range": { + "low": 3, + "high": 7, + "unit": "days" + }, + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "colorectal_cancer_stage", + "operator": "==", + "value": 1 + }, + "distributions": [ + { + "transition": "Check_Anemia_Exist", + "distribution": 0.4 + }, + { + "transition": "Oncologist_Encounter", + "distribution": 0.6 + } + ] + }, + { + "distributions": [ + { + "transition": "Check_Anemia_Exist", + "distribution": 0.53 + }, + { + "transition": "Oncologist_Encounter", + "distribution": 0.47 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "colorectal_cancer_stage", + "operator": "==", + "value": 2 + } + }, + { + "distributions": [ + { + "transition": "Check_Anemia_Exist", + "distribution": 0.66 + }, + { + "transition": "Oncologist_Encounter", + "distribution": 0.34 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "colorectal_cancer_stage", + "operator": "==", + "value": 3 + } + }, + { + "distributions": [ + { + "transition": "Check_Anemia_Exist", + "distribution": 0.8 + }, + { + "transition": "Oncologist_Encounter", + "distribution": 0.2 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "colorectal_cancer_stage", + "operator": "==", + "value": 4 + } + } + ], + "remarks": [ + "40% of patients with early-stage colon tumors and nearly 80% of patients with advanced disease had anemia - " + ] + }, + "Oncologist_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "colorectal_cancer", + "remarks": [ + "Annual incidence of progression: ", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2095643/" + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Colorectal_Cancer_CarePlan" + }, + "Colorectal_Cancer_CarePlan": { + "type": "CarePlanStart", + "remarks": [ + "======================================================================", + " COLORECTAL CANCER TREATMENTS ", + "======================================================================", + "Caring for colorectal cancer differs by stage. Source for all treatment information: ", + "http://www.cancer.org/cancer/colonandrectumcancer/detailedguide/colorectal-cancer-treating-by-stage-colon" + ], + "reason": "colorectal_cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736252007", + "display": "Cancer care plan (record artifact)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "226234005", + "display": "Healthy diet (finding)" + }, + { + "system": "SNOMED-CT", + "code": "703993001", + "display": "Colonoscopy planned (situation)" + }, + { + "system": "SNOMED-CT", + "code": "243072006", + "display": "Cancer education (procedure)" + } + ], + "direct_transition": "End_Oncologist_Encounter" + }, + "End_Oncologist_Encounter": { + "type": "EncounterEnd", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "colorectal_cancer_stage", + "operator": "==", + "value": 1 + }, + "remarks": [ + "The treatment for stage 1 typically requires only a polypectomy (already performed ", + "as part of the last colonoscopy) or occasionally a partial colectomy of the affected ", + "portion of the colon." + ], + "distributions": [ + { + "distribution": 0.3, + "transition": "Wait_For_Partial_Colectomy" + }, + { + "distribution": 0.7, + "transition": "Remission_Period" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "colorectal_cancer_stage", + "operator": "==", + "value": 2 + }, + "remarks": [ + "The treatment for stage 2 typically requires a partial colectomy. Additional ", + "chemotherapy treatment is sometimes used post-surgery if the cancer is likely ", + "to recur." + ], + "distributions": [ + { + "distribution": 1, + "transition": "Wait_For_Partial_Colectomy" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "colorectal_cancer_stage", + "operator": "==", + "value": 3 + }, + "remarks": [ + "The treatment for stage 3 is a partial colectomy followed by chemo. Additional ", + "radiation therapy is sometimes used, especially for patients that are not healthy ", + "enough for surgery." + ], + "distributions": [ + { + "distribution": 1, + "transition": "Wait_For_Partial_Colectomy" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "colorectal_cancer_stage", + "operator": "==", + "value": 4 + }, + "remarks": [ + "The treatment for stage 4 is chemo an occasionally surgery. However, surgery is ", + "only recommended to relieve symptoms or in rare cases where chemo has shrunk the ", + "tumors enough to make surgery viable. Survival from stage 4 is unlikely." + ], + "distributions": [ + { + "distribution": 0.15, + "transition": "Wait_For_Diverting_Colostomy" + }, + { + "distribution": 0.85, + "transition": "Wait_For_Initial_Chemotherapy_Treatment" + } + ] + } + ] + }, + "Wait_For_Partial_Colectomy": { + "type": "Delay", + "remarks": [ + "======================================================================", + " PARTIAL COLECTOMY ", + "======================================================================", + "Surgical removal of the affected portion of the colon." + ], + "range": { + "low": 1, + "high": 2, + "unit": "weeks" + }, + "direct_transition": "Partial_Colectomy_Encounter" + }, + "Partial_Colectomy_Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "colorectal_cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Partial_Colectomy_Procedure" + }, + "Partial_Colectomy_Procedure": { + "type": "Procedure", + "reason": "colorectal_cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "43075005", + "display": "Partial resection of colon (procedure)" + } + ], + "direct_transition": "Pain_Vital_3", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "low": 30, + "high": 60 + } + }, + "unit": "minutes" + }, + "Partial_Colectomy_CarePlan": { + "type": "CarePlanStart", + "reason": "colorectal_cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "737567002", + "display": "Major surgery care management (procedure)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "10888001", + "display": "Liquid diet (finding)" + }, + { + "system": "SNOMED-CT", + "code": "103744005", + "display": "Administration of intravenous fluids (procedure)" + } + ], + "direct_transition": "Postoperative Care" + }, + "End_Partial_Colectomy_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Delay_For_Partial_Colectomy_Recovery" + }, + "Delay_For_Partial_Colectomy_Recovery": { + "type": "Delay", + "range": { + "low": 7, + "high": 21, + "unit": "days" + }, + "direct_transition": "End_Partial_Colectomy_CarePlan" + }, + "End_Partial_Colectomy_CarePlan": { + "type": "CarePlanEnd", + "careplan": "Partial_Colectomy_CarePlan", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "colorectal_cancer_stage", + "operator": "==", + "value": 2 + }, + "distributions": [ + { + "distribution": 0.33, + "transition": "Wait_For_Initial_Chemotherapy_Treatment" + }, + { + "distribution": 0.67, + "transition": "Remission_Period" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "colorectal_cancer_stage", + "operator": "==", + "value": 3 + }, + "distributions": [ + { + "distribution": 1, + "transition": "Wait_For_Initial_Chemotherapy_Treatment" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "Remission_Period" + } + ] + } + ] + }, + "Wait_For_Diverting_Colostomy": { + "type": "Delay", + "remarks": [ + "======================================================================", + " DIVERTING COLECTOMY ", + "======================================================================", + "Used to treat advanced colorectal cancer. Bypasses blockage of the colon ", + "to an external bag that collects waste. This is mainly a treatment of ", + "symptoms rather than a treatment of the cancer itself." + ], + "range": { + "low": 1, + "high": 2, + "unit": "weeks" + }, + "direct_transition": "Diverting_Colostomy_Encounter" + }, + "Diverting_Colostomy_Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "colorectal_cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Diverting_Colostomy_Procedure" + }, + "Diverting_Colostomy_Procedure": { + "type": "Procedure", + "reason": "colorectal_cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "387607004", + "display": "Construction of diverting colostomy" + } + ], + "direct_transition": "Pain_Vital_2", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "low": 30, + "high": 60 + } + }, + "unit": "minutes" + }, + "Diverting_Colostomy_CarePlan": { + "type": "CarePlanStart", + "reason": "colorectal_cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "737567002", + "display": "Major surgery care management (procedure)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "10888001", + "display": "Liquid diet (finding)" + }, + { + "system": "SNOMED-CT", + "code": "103744005", + "display": "Administration of intravenous fluids (procedure)" + } + ], + "direct_transition": "Postoperative_Care" + }, + "End_Diverting_Colostomy_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Delay_For_Diverting_Colostomy_Recovery" + }, + "Delay_For_Diverting_Colostomy_Recovery": { + "type": "Delay", + "range": { + "low": 7, + "high": 21, + "unit": "days" + }, + "direct_transition": "End_Diverting_Colostomy_CarePlan" + }, + "End_Diverting_Colostomy_CarePlan": { + "type": "CarePlanEnd", + "careplan": "Diverting_Colostomy_CarePlan", + "remarks": [ + "TODO: Chemo for stage II" + ], + "direct_transition": "Wait_For_Initial_Chemotherapy_Treatment" + }, + "Wait_For_Initial_Chemotherapy_Treatment": { + "type": "Delay", + "range": { + "low": 1, + "high": 2, + "unit": "weeks" + }, + "direct_transition": "Initialize_Chemo_Counter" + }, + "Initialize_Chemo_Counter": { + "type": "SetAttribute", + "attribute": "cr_chemo_count", + "value": 0, + "distributed_transition": [ + { + "transition": "Stem Cell Treatment", + "distribution": 0.01 + }, + { + "transition": "Chemotherapy_Treatment_Path", + "distribution": 0.99 + } + ] + }, + "Chemotherapy_Treatment_Path": { + "type": "Simple", + "remarks": [ + "======================================================================", + " CHEMOTHERAPY ", + "======================================================================", + "Chemotherapy of the affected areas using one of: ", + "FOLFOX: leucovorin, 5-FU, and oxaliplatin (Eloxatin) ", + "FOLFIRI: leucovorin, 5-FU, and irinotecan (Camptosar) ", + "CapeOX: capecitabine (Xeloda) and oxaliplatin", + "Chemotherapy treatment is typically given for about 6 months. This ", + "equates to 6 chemo treatments." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "cr_chemo_count", + "operator": ">=", + "value": 6 + }, + "transition": "Remission_Period" + }, + { + "transition": "Chemotherapy_Encounter" + } + ] + }, + "Chemotherapy_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "colorectal_cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Pain_Vital_4" + }, + "Chemotherapy_Drugs_I": { + "type": "MedicationOrder", + "reason": "colorectal_cancer", + "codes": [ + { + "system": "RxNorm", + "code": "1803932", + "display": "Leucovorin 100 MG Injection" + } + ], + "direct_transition": "Chemotherapy_Drugs_II", + "administration": true + }, + "Chemotherapy_Drugs_II": { + "type": "MedicationOrder", + "reason": "colorectal_cancer", + "codes": [ + { + "system": "RxNorm", + "code": "1736776", + "display": "10 ML oxaliplatin 5 MG/ML Injection" + } + ], + "direct_transition": "Chemotherapy_Procedure", + "administration": true + }, + "Chemotherapy_Procedure": { + "type": "Procedure", + "reason": "colorectal_cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "703423002", + "display": "Combined chemotherapy and radiation therapy (procedure)" + } + ], + "direct_transition": "End_Chemotherapy_Encounter" + }, + "End_Chemotherapy_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Count_A_Chemo_Treatment" + }, + "Count_A_Chemo_Treatment": { + "type": "Counter", + "action": "increment", + "attribute": "cr_chemo_count", + "direct_transition": "Chemotherapy_Treatment_Delay" + }, + "Chemotherapy_Treatment_Delay": { + "type": "Delay", + "range": { + "low": 28, + "high": 35, + "unit": "days" + }, + "direct_transition": "Chemotherapy_Treatment_Path" + }, + "Remission_Period": { + "type": "Delay", + "remarks": [ + "If the patient isn't going to die at a later date we give them some time to ", + "go into remission following treatment. For those that achieve remission they ", + "are returned back to the general pool of candidates for colorectal cancer." + ], + "range": { + "low": 12, + "high": 24, + "unit": "months" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Eventual_Death" + }, + "transition": "Terminal" + }, + { + "transition": "Remission_Encounter" + } + ] + }, + "Remission_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "colorectal_cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "direct_transition": "End_Colorectal_Cancer_CarePlan" + }, + "End_Colorectal_Cancer_CarePlan": { + "type": "CarePlanEnd", + "careplan": "Colorectal_Cancer_CarePlan", + "direct_transition": "End_Colorectal_Cancer" + }, + "End_Colorectal_Cancer": { + "type": "ConditionEnd", + "referenced_by_attribute": "colorectal_cancer", + "direct_transition": "End_Remission_Encounter" + }, + "End_Remission_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Colorectal_Cancer_Symptom3_Ends" + }, + "Colorectal_Cancer_Symptom3_Ends": { + "type": "Symptom", + "symptom": "Constipation", + "exact": { + "quantity": 0 + }, + "direct_transition": "Colorectal_Cancer_Symptom4_Ends" + }, + "Colorectal_Cancer_Symptom4_Ends": { + "type": "Symptom", + "symptom": "Cramping", + "exact": { + "quantity": 0 + }, + "direct_transition": "Colorectal_Cancer_Symptom5_Ends" + }, + "Colorectal_Cancer_Symptom5_Ends": { + "type": "Symptom", + "symptom": "Abdominal Pain", + "exact": { + "quantity": 0 + }, + "direct_transition": "Colorectal_Cancer_Symptom6_Ends" + }, + "Colorectal_Cancer_Symptom6_Ends": { + "type": "Symptom", + "symptom": "Fatigue", + "exact": { + "quantity": 0 + }, + "direct_transition": "Colorectal_Cancer_Symptom7_Ends" + }, + "Colorectal_Cancer_Symptom7_Ends": { + "type": "Symptom", + "symptom": "Weight Loss", + "exact": { + "quantity": 0 + }, + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + }, + "Record_CMP": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2339-0", + "display": "Glucose [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "6299-2", + "display": "Urea nitrogen [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "38483-4", + "display": "Creatinine [Mass/volume] in Blood" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.5, + "high": 3.5 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "49765-1", + "display": "Calcium [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2947-0", + "display": "Sodium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "6298-4", + "display": "Potassium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2069-3", + "display": "Chloride [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "20565-8", + "display": "Carbon dioxide, total [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 4, + "high": 29 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 3.5, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "g/L", + "codes": [ + { + "system": "LOINC", + "code": "10834-0", + "display": "Globulin [Mass/volume] in Serum by calculation" + } + ], + "range": { + "low": 2, + "high": 3.5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.1, + "high": 1.2 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 20, + "high": 140 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 20, + "high": 60 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 40 + } + } + ], + "direct_transition": "Record_CBC_Panel" + }, + "Record_CBC_Panel": { + "type": "DiagnosticReport", + "number_of_observations": 4, + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*3/uL", + "range": { + "low": 0.5, + "high": 5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*6/uL", + "range": { + "low": 3.9, + "high": 5.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "unit": "g/dL", + "range": { + "low": 6, + "high": 15 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "4544-3", + "display": "Hematocrit [Volume Fraction] of Blood by Automated count" + } + ], + "unit": "%", + "range": { + "low": 25, + "high": 35 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 80, + "high": 95 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 27, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "21000-5", + "display": "Erythrocyte distribution width [Entitic volume] by Automated count" + } + ], + "range": { + "low": 39, + "high": 46 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32207-3", + "display": "Platelet distribution width [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 520 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32623-1", + "display": "Platelet mean volume [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 9.4, + "high": 12.3 + } + } + ], + "direct_transition": "Chemotherapy_Drugs_I" + }, + "Pain_Vital": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported" + } + ], + "range": { + "decimals": 0, + "low": 5, + "high": 8 + }, + "direct_transition": "End_Followup_Encounter_After_Adenoma_Removal" + }, + "Pain_Vital_2": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported" + } + ], + "range": { + "decimals": 0, + "low": 5, + "high": 10 + }, + "direct_transition": "Diverting_Colostomy_CarePlan" + }, + "Pain_Vital_3": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported" + } + ], + "range": { + "decimals": 0, + "low": 5, + "high": 10 + }, + "direct_transition": "Partial_Colectomy_CarePlan" + }, + "Pain_Vital_4": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported" + } + ], + "range": { + "decimals": 0, + "low": 2, + "high": 8 + }, + "direct_transition": "Record_CMP" + }, + "Anemia_Submodule": { + "type": "CallSubmodule", + "submodule": "anemia/anemia_sub", + "direct_transition": "Oncologist_Encounter" + }, + "Check_Anemia_Exist": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Anemia_Submodule", + "condition": { + "condition_type": "Attribute", + "attribute": "anemia", + "operator": "is nil" + } + }, + { + "transition": "Oncologist_Encounter" + } + ] + }, + "Will Use Hospice": { + "type": "SetAttribute", + "attribute": "hospice", + "direct_transition": "Hospice Reason", + "value": true + }, + "Hospice Reason": { + "type": "SetAttribute", + "attribute": "hospice_reason", + "direct_transition": "Wait_For_Oncologist_Encounter", + "value_attribute": "colorectal_cancer" + }, + "Postoperative Care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "133899007", + "display": "Postoperative care (regime/therapy)" + } + ], + "distribution": { + "kind": "EXPONENTIAL", + "parameters": { + "mean": 5 + } + }, + "unit": "days", + "direct_transition": "End_Partial_Colectomy_Encounter", + "reason": "colorectal_cancer" + }, + "Postoperative_Care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "133899007", + "display": "Postoperative care (regime/therapy)" + } + ], + "distribution": { + "kind": "EXPONENTIAL", + "parameters": { + "mean": 3 + } + }, + "unit": "days", + "reason": "colorectal_cancer", + "direct_transition": "End_Diverting_Colostomy_Encounter" + }, + "Colon Cancer Screening Reason": { + "type": "SetAttribute", + "attribute": "colon_cancer_screening", + "direct_transition": "Routine_Colonoscopy_Encounter", + "value_code": { + "system": "SNOMED-CT", + "code": "275978004", + "display": "Screening for malignant neoplasm of colon (procedure)" + } + }, + "Stem Cell Treatment": { + "type": "SetAttribute", + "attribute": "bone_marrow", + "direct_transition": "Chemotherapy_Treatment_Path", + "value": true + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/common_cold.json b/src/main/resources/modules/common_cold.json new file mode 100644 index 0000000..bdaf97c --- /dev/null +++ b/src/main/resources/modules/common_cold.json @@ -0,0 +1,401 @@ +{ + "name": "Common Cold", + "remarks": [ + "This module simulates the progression of the common cold (acute nasopharyngitis).", + "The common cold is a viral infectious disease of the upper respiratory tract that primarily affects the nose.", + "Symptoms include coughing, sore throat, runny nose, sneezing, headache, and fever.", + "Most people recover within 7-10 days, though some symptoms can last up to three weeks.", + "This module includes risk factors, diagnosis, treatment, and potential complications.", + "ICD-10 code: J00", + "Category: Respiratory" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 0, + "unit": "years" + }, + "distributed_transition": [ + { + "distribution": 0.95, + "transition": "Potential_Cold_Onset" + }, + { + "distribution": 0.05, + "transition": "Terminal" + } + ] + }, + "Potential_Cold_Onset": { + "type": "Delay", + "remarks": [ + "Common colds are more frequent in fall and winter seasons" + ], + "range": { + "low": 3, + "high": 12, + "unit": "months" + }, + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Cold_Onset" + }, + { + "distribution": 0.3, + "transition": "Potential_Cold_Onset" + } + ] + }, + "Cold_Onset": { + "type": "ConditionOnset", + "target_encounter": "Cold_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "82272006", + "display": "Common cold (disorder)" + } + ], + "direct_transition": "Cold_Symptoms" + }, + "Cold_Symptoms": { + "type": "Symptom", + "symptom": "Nasal Congestion", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Sore_Throat_Symptom" + }, + "Sore_Throat_Symptom": { + "type": "Symptom", + "symptom": "Sore Throat", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "Cough_Symptom" + }, + "Cough_Symptom": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 40, + "high": 90 + }, + "direct_transition": "Headache_Symptom" + }, + "Headache_Symptom": { + "type": "Symptom", + "symptom": "Headache", + "range": { + "low": 20, + "high": 60 + }, + "direct_transition": "Fever_Symptom" + }, + "Fever_Symptom": { + "type": "Symptom", + "symptom": "Fever", + "range": { + "low": 0, + "high": 40 + }, + "direct_transition": "Fatigue_Symptom" + }, + "Fatigue_Symptom": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "Decide_To_Visit_Doctor" + }, + "Decide_To_Visit_Doctor": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "days" + }, + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Cold_Encounter" + }, + { + "distribution": 0.7, + "transition": "Self_Care" + } + ] + }, + "Self_Care": { + "type": "Delay", + "range": { + "low": 5, + "high": 10, + "unit": "days" + }, + "direct_transition": "Cold_Recovery" + }, + "Cold_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Cold_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom" + } + ], + "direct_transition": "Cold_Diagnosis" + }, + "Cold_Diagnosis": { + "type": "Procedure", + "target_encounter": "Cold_Encounter", + "reason": "Cold_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "162673000", + "display": "General examination of patient (procedure)" + } + ], + "direct_transition": "Record_Cold_Diagnosis" + }, + "Record_Cold_Diagnosis": { + "type": "DiagnosticReport", + "number_of_observations": 0, + "codes": [ + { + "system": "SNOMED-CT", + "code": "162673000", + "display": "General examination of patient (procedure)" + } + ], + "direct_transition": "Prescribe_Treatment" + }, + "Prescribe_Treatment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.5, + "transition": "Prescribe_Acetaminophen" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Ibuprofen" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Decongestant" + } + ] + }, + "Prescribe_Acetaminophen": { + "type": "MedicationOrder", + "target_encounter": "Cold_Encounter", + "reason": "Cold_Onset", + "codes": [ + { + "system": "RxNorm", + "code": "313782", + "display": "Acetaminophen 325 MG Oral Tablet" + } + ], + "direct_transition": "Cold_Encounter_End" + }, + "Prescribe_Ibuprofen": { + "type": "MedicationOrder", + "target_encounter": "Cold_Encounter", + "reason": "Cold_Onset", + "codes": [ + { + "system": "RxNorm", + "code": "197806", + "display": "Ibuprofen 200 MG Oral Tablet" + } + ], + "direct_transition": "Cold_Encounter_End" + }, + "Prescribe_Decongestant": { + "type": "MedicationOrder", + "target_encounter": "Cold_Encounter", + "reason": "Cold_Onset", + "codes": [ + { + "system": "RxNorm", + "code": "1020137", + "display": "Pseudoephedrine Hydrochloride 30 MG Oral Tablet" + } + ], + "direct_transition": "Cold_Encounter_End" + }, + "Cold_Encounter_End": { + "type": "EncounterEnd", + "direct_transition": "Check_For_Complications" + }, + "Check_For_Complications": { + "type": "Delay", + "range": { + "low": 3, + "high": 7, + "unit": "days" + }, + "distributed_transition": [ + { + "distribution": 0.05, + "transition": "Develop_Sinusitis" + }, + { + "distribution": 0.03, + "transition": "Develop_Ear_Infection" + }, + { + "distribution": 0.92, + "transition": "Cold_Recovery" + } + ] + }, + "Develop_Sinusitis": { + "type": "ConditionOnset", + "target_encounter": "Complication_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "36971009", + "display": "Sinusitis (disorder)" + } + ], + "direct_transition": "Complication_Encounter" + }, + "Develop_Ear_Infection": { + "type": "ConditionOnset", + "target_encounter": "Complication_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65363002", + "display": "Otitis media (disorder)" + } + ], + "direct_transition": "Complication_Encounter" + }, + "Complication_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom" + } + ], + "direct_transition": "Treat_Complication" + }, + "Treat_Complication": { + "type": "MedicationOrder", + "target_encounter": "Complication_Encounter", + "codes": [ + { + "system": "RxNorm", + "code": "1658139", + "display": "Amoxicillin 500 MG Oral Tablet" + } + ], + "direct_transition": "Complication_Encounter_End" + }, + "Complication_Encounter_End": { + "type": "EncounterEnd", + "direct_transition": "Complication_Recovery" + }, + "Complication_Recovery": { + "type": "Delay", + "range": { + "low": 7, + "high": 14, + "unit": "days" + }, + "direct_transition": "End_Complication" + }, + "End_Complication": { + "type": "ConditionEnd", + "direct_transition": "Cold_Recovery" + }, + "Cold_Recovery": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "days" + }, + "direct_transition": "End_Cold_Symptoms" + }, + "End_Cold_Symptoms": { + "type": "Symptom", + "symptom": "Nasal Congestion", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Sore_Throat" + }, + "End_Sore_Throat": { + "type": "Symptom", + "symptom": "Sore Throat", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Cough" + }, + "End_Cough": { + "type": "Symptom", + "symptom": "Cough", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Headache" + }, + "End_Headache": { + "type": "Symptom", + "symptom": "Headache", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Fever" + }, + "End_Fever": { + "type": "Symptom", + "symptom": "Fever", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Fatigue" + }, + "End_Fatigue": { + "type": "Symptom", + "symptom": "Fatigue", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Cold" + }, + "End_Cold": { + "type": "ConditionEnd", + "condition_onset": "Cold_Onset", + "direct_transition": "Potential_Cold_Onset" + }, + "Terminal": { + "type": "Terminal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/common_cold.json.fixed.raw b/src/main/resources/modules/common_cold.json.fixed.raw new file mode 100644 index 0000000..7d8fcef --- /dev/null +++ b/src/main/resources/modules/common_cold.json.fixed.raw @@ -0,0 +1,485 @@ +{ + "name": "Common Cold", + "remarks": [ + "This module simulates the onset, progression, and management of the common cold (acute nasopharyngitis).", + "The common cold is a viral infection of the upper respiratory tract that primarily affects the nose and throat.", + "It is one of the most frequent infectious diseases in humans with most adults experiencing 2-3 colds per year.", + "While generally self-limiting, it can occasionally lead to complications, especially in vulnerable populations." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 0, + "unit": "years" + }, + "direct_transition": "Cold_Incidence" + }, + "Cold_Incidence": { + "type": "Delay", + "range": { + "low": 3, + "high": 24, + "unit": "months" + }, + "direct_transition": "Season_Check" + }, + "Season_Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": "in", + "month_range": [10, 11, 12, 1, 2, 3] + }, + "distributions": [ + { + "distribution": 0.7, + "transition": "Cold_Onset" + }, + { + "distribution": 0.3, + "transition": "No_Cold" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.3, + "transition": "Cold_Onset" + }, + { + "distribution": 0.7, + "transition": "No_Cold" + } + ] + } + ] + }, + "No_Cold": { + "type": "Simple", + "direct_transition": "Cold_Incidence" + }, + "Cold_Onset": { + "type": "ConditionOnset", + "target_encounter": "Cold_Encounter", + "assign_to_attribute": "active_cold", + "codes": [ + { + "system": "SNOMED-CT", + "code": "82272006", + "display": "Common cold (disorder)" + } + ], + "direct_transition": "Cold_Symptoms" + }, + "Cold_Symptoms": { + "type": "Symptom", + "symptom": "Nasal Congestion", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Sore_Throat_Symptom" + }, + "Sore_Throat_Symptom": { + "type": "Symptom", + "symptom": "Sore Throat", + "range": { + "low": 30, + "high": 90 + }, + "direct_transition": "Cough_Symptom" + }, + "Cough_Symptom": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 20, + "high": 80 + }, + "direct_transition": "Headache_Symptom" + }, + "Headache_Symptom": { + "type": "Symptom", + "symptom": "Headache", + "range": { + "low": 10, + "high": 60 + }, + "direct_transition": "Fatigue_Symptom" + }, + "Fatigue_Symptom": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 20, + "high": 70 + }, + "direct_transition": "Fever_Check" + }, + "Fever_Check": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Fever_Symptom" + }, + { + "distribution": 0.7, + "transition": "Decide_Seek_Care" + } + ] + }, + "Fever_Symptom": { + "type": "Symptom", + "symptom": "Fever", + "range": { + "low": 20, + "high": 60 + }, + "direct_transition": "Decide_Seek_Care" + }, + "Decide_Seek_Care": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Cold_Encounter" + }, + { + "distribution": 0.7, + "transition": "Self_Care" + } + ] + }, + "Self_Care": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "OTC_Medication" + }, + { + "distribution": 0.3, + "transition": "No_Treatment" + } + ] + }, + "OTC_Medication": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.4, + "transition": "Acetaminophen" + }, + { + "distribution": 0.3, + "transition": "Ibuprofen" + }, + { + "distribution": 0.3, + "transition": "Cold_Medicine" + } + ] + }, + "Acetaminophen": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "313782", + "display": "Acetaminophen 325 MG Oral Tablet" + } + ], + "direct_transition": "Recovery_Period" + }, + "Ibuprofen": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "197806", + "display": "Ibuprofen 200 MG Oral Tablet" + } + ], + "direct_transition": "Recovery_Period" + }, + "Cold_Medicine": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "1049630", + "display": "Acetaminophen 325 MG / Dextromethorphan Hydrobromide 10 MG / Phenylephrine Hydrochloride 5 MG Oral Tablet" + } + ], + "direct_transition": "Recovery_Period" + }, + "No_Treatment": { + "type": "Simple", + "direct_transition": "Recovery_Period" + }, + "Cold_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "active_cold", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom" + } + ], + "direct_transition": "Cold_Diagnosis" + }, + "Cold_Diagnosis": { + "type": "Procedure", + "target_encounter": "Cold_Encounter", + "reason": "active_cold", + "codes": [ + { + "system": "SNOMED-CT", + "code": "162673000", + "display": "General examination of patient (procedure)" + } + ], + "direct_transition": "Check_Complications" + }, + "Check_Complications": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.05, + "transition": "Sinusitis_Complication" + }, + { + "distribution": 0.03, + "transition": "Ear_Infection_Complication" + }, + { + "distribution": 0.92, + "transition": "Prescribe_Treatment" + } + ] + }, + "Sinusitis_Complication": { + "type": "ConditionOnset", + "target_encounter": "Cold_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "36971009", + "display": "Sinusitis (disorder)" + } + ], + "direct_transition": "Prescribe_Antibiotics" + }, + "Ear_Infection_Complication": { + "type": "ConditionOnset", + "target_encounter": "Cold_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65363002", + "display": "Otitis media (disorder)" + } + ], + "direct_transition": "Prescribe_Antibiotics" + }, + "Prescribe_Antibiotics": { + "type": "MedicationOrder", + "target_encounter": "Cold_Encounter", + "codes": [ + { + "system": "RxNorm", + "code": "1658139", + "display": "Amoxicillin 500 MG Oral Tablet" + } + ], + "direct_transition": "Prescribe_Treatment" + }, + "Prescribe_Treatment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.5, + "transition": "Prescribe_Acetaminophen" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Ibuprofen" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Cold_Medicine" + } + ] + }, + "Prescribe_Acetaminophen": { + "type": "MedicationOrder", + "target_encounter": "Cold_Encounter", + "codes": [ + { + "system": "RxNorm", + "code": "313782", + "display": "Acetaminophen 325 MG Oral Tablet" + } + ], + "direct_transition": "Cold_Encounter_End" + }, + "Prescribe_Ibuprofen": { + "type": "MedicationOrder", + "target_encounter": "Cold_Encounter", + "codes": [ + { + "system": "RxNorm", + "code": "197806", + "display": "Ibuprofen 200 MG Oral Tablet" + } + ], + "direct_transition": "Cold_Encounter_End" + }, + "Prescribe_Cold_Medicine": { + "type": "MedicationOrder", + "target_encounter": "Cold_Encounter", + "codes": [ + { + "system": "RxNorm", + "code": "1049630", + "display": "Acetaminophen 325 MG / Dextromethorphan Hydrobromide 10 MG / Phenylephrine Hydrochloride 5 MG Oral Tablet" + } + ], + "direct_transition": "Cold_Encounter_End" + }, + "Cold_Encounter_End": { + "type": "EncounterEnd", + "direct_transition": "Recovery_Period" + }, + "Recovery_Period": { + "type": "Delay", + "range": { + "low": 5, + "high": 14, + "unit": "days" + }, + "direct_transition": "Resolve_Cold" + }, + "Resolve_Cold": { + "type": "ConditionEnd", + "referenced_by_attribute": "active_cold", + "direct_transition": "Symptom_Resolve" + }, + "Symptom_Resolve": { + "type": "Symptom", + "symptom": "Nasal Congestion", + "exact": { + "quantity": 0 + }, + "direct_transition": "Sore_Throat_Resolve" + }, + "Sore_Throat_Resolve": { + "type": "Symptom", + "symptom": "Sore Throat", + "exact": { + "quantity": 0 + }, + "direct_transition": "Cough_Resolve" + }, + "Cough_Resolve": { + "type": "Symptom", + "symptom": "Cough", + "exact": { + "quantity": 0 + }, + "direct_transition": "Headache_Resolve" + }, + "Headache_Resolve": { + "type": "Symptom", + "symptom": "Headache", + "exact": { + "quantity": 0 + }, + "direct_transition": "Fatigue_Resolve" + }, + "Fatigue_Resolve": { + "type": "Symptom", + "symptom": "Fatigue", + "exact": { + "quantity": 0 + }, + "direct_transition": "Fever_Resolve" + }, + "Fever_Resolve": { + "type": "Symptom", + "symptom": "Fever", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Medications" + }, + "End_Medications": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "313782", + "display": "Acetaminophen 325 MG Oral Tablet" + } + ] + }, + "transition": "End_Acetaminophen" + }, + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "197806", + "display": "Ibuprofen 200 MG Oral Tablet" + } + ] + }, + "transition": "End_Ibuprofen" + }, + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "1049630", + "display": "Acetaminophen 325 MG / Dextromethorphan Hydrobromide 10 MG / Phenylephrine Hydrochloride 5 MG Oral Tablet" + } + ] + }, + "transition": "End_Cold_Medicine" + }, + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "1658139", + "display": "Amoxicillin 500 MG Oral Tablet" + } + ] + }, + "transition": "End_Antibiotics" + }, + { + "transition": " \ No newline at end of file diff --git a/src/main/resources/modules/common_cold.json.raw b/src/main/resources/modules/common_cold.json.raw new file mode 100644 index 0000000..7095bea --- /dev/null +++ b/src/main/resources/modules/common_cold.json.raw @@ -0,0 +1,399 @@ +{ + "name": "Common Cold", + "remarks": [ + "This module simulates the progression of the common cold (acute nasopharyngitis).", + "The common cold is a viral infectious disease of the upper respiratory tract that primarily affects the nose.", + "Symptoms include coughing, sore throat, runny nose, sneezing, headache, and fever.", + "Most people recover within 7-10 days, though some symptoms can last up to three weeks.", + "This module includes risk factors, diagnosis, treatment, and potential complications." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 0, + "unit": "years" + }, + "distributed_transition": [ + { + "distribution": 0.95, + "transition": "Potential_Cold_Onset" + }, + { + "distribution": 0.05, + "transition": "Terminal" + } + ] + }, + "Potential_Cold_Onset": { + "type": "Delay", + "remarks": [ + "Common colds are more frequent in fall and winter seasons" + ], + "range": { + "low": 3, + "high": 12, + "unit": "months" + }, + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Cold_Onset" + }, + { + "distribution": 0.3, + "transition": "Potential_Cold_Onset" + } + ] + }, + "Cold_Onset": { + "type": "ConditionOnset", + "target_encounter": "Cold_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "82272006", + "display": "Common cold (disorder)" + } + ], + "direct_transition": "Cold_Symptoms" + }, + "Cold_Symptoms": { + "type": "Symptom", + "symptom": "Nasal Congestion", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Sore_Throat_Symptom" + }, + "Sore_Throat_Symptom": { + "type": "Symptom", + "symptom": "Sore Throat", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "Cough_Symptom" + }, + "Cough_Symptom": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 40, + "high": 90 + }, + "direct_transition": "Headache_Symptom" + }, + "Headache_Symptom": { + "type": "Symptom", + "symptom": "Headache", + "range": { + "low": 20, + "high": 60 + }, + "direct_transition": "Fever_Symptom" + }, + "Fever_Symptom": { + "type": "Symptom", + "symptom": "Fever", + "range": { + "low": 0, + "high": 40 + }, + "direct_transition": "Fatigue_Symptom" + }, + "Fatigue_Symptom": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "Decide_To_Visit_Doctor" + }, + "Decide_To_Visit_Doctor": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "days" + }, + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Cold_Encounter" + }, + { + "distribution": 0.7, + "transition": "Self_Care" + } + ] + }, + "Self_Care": { + "type": "Delay", + "range": { + "low": 5, + "high": 10, + "unit": "days" + }, + "direct_transition": "Cold_Recovery" + }, + "Cold_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Cold_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom" + } + ], + "direct_transition": "Cold_Diagnosis" + }, + "Cold_Diagnosis": { + "type": "Procedure", + "target_encounter": "Cold_Encounter", + "reason": "Cold_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "162673000", + "display": "General examination of patient (procedure)" + } + ], + "direct_transition": "Record_Cold_Diagnosis" + }, + "Record_Cold_Diagnosis": { + "type": "DiagnosticReport", + "number_of_observations": 0, + "codes": [ + { + "system": "SNOMED-CT", + "code": "162673000", + "display": "General examination of patient (procedure)" + } + ], + "direct_transition": "Prescribe_Treatment" + }, + "Prescribe_Treatment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.5, + "transition": "Prescribe_Acetaminophen" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Ibuprofen" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Decongestant" + } + ] + }, + "Prescribe_Acetaminophen": { + "type": "MedicationOrder", + "target_encounter": "Cold_Encounter", + "reason": "Cold_Onset", + "codes": [ + { + "system": "RxNorm", + "code": "313782", + "display": "Acetaminophen 325 MG Oral Tablet" + } + ], + "direct_transition": "Cold_Encounter_End" + }, + "Prescribe_Ibuprofen": { + "type": "MedicationOrder", + "target_encounter": "Cold_Encounter", + "reason": "Cold_Onset", + "codes": [ + { + "system": "RxNorm", + "code": "197806", + "display": "Ibuprofen 200 MG Oral Tablet" + } + ], + "direct_transition": "Cold_Encounter_End" + }, + "Prescribe_Decongestant": { + "type": "MedicationOrder", + "target_encounter": "Cold_Encounter", + "reason": "Cold_Onset", + "codes": [ + { + "system": "RxNorm", + "code": "1020137", + "display": "Pseudoephedrine Hydrochloride 30 MG Oral Tablet" + } + ], + "direct_transition": "Cold_Encounter_End" + }, + "Cold_Encounter_End": { + "type": "EncounterEnd", + "direct_transition": "Check_For_Complications" + }, + "Check_For_Complications": { + "type": "Delay", + "range": { + "low": 3, + "high": 7, + "unit": "days" + }, + "distributed_transition": [ + { + "distribution": 0.05, + "transition": "Develop_Sinusitis" + }, + { + "distribution": 0.03, + "transition": "Develop_Ear_Infection" + }, + { + "distribution": 0.92, + "transition": "Cold_Recovery" + } + ] + }, + "Develop_Sinusitis": { + "type": "ConditionOnset", + "target_encounter": "Complication_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "36971009", + "display": "Sinusitis (disorder)" + } + ], + "direct_transition": "Complication_Encounter" + }, + "Develop_Ear_Infection": { + "type": "ConditionOnset", + "target_encounter": "Complication_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65363002", + "display": "Otitis media (disorder)" + } + ], + "direct_transition": "Complication_Encounter" + }, + "Complication_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom" + } + ], + "direct_transition": "Treat_Complication" + }, + "Treat_Complication": { + "type": "MedicationOrder", + "target_encounter": "Complication_Encounter", + "codes": [ + { + "system": "RxNorm", + "code": "1658139", + "display": "Amoxicillin 500 MG Oral Tablet" + } + ], + "direct_transition": "Complication_Encounter_End" + }, + "Complication_Encounter_End": { + "type": "EncounterEnd", + "direct_transition": "Complication_Recovery" + }, + "Complication_Recovery": { + "type": "Delay", + "range": { + "low": 7, + "high": 14, + "unit": "days" + }, + "direct_transition": "End_Complication" + }, + "End_Complication": { + "type": "ConditionEnd", + "direct_transition": "Cold_Recovery" + }, + "Cold_Recovery": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "days" + }, + "direct_transition": "End_Cold_Symptoms" + }, + "End_Cold_Symptoms": { + "type": "Symptom", + "symptom": "Nasal Congestion", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Sore_Throat" + }, + "End_Sore_Throat": { + "type": "Symptom", + "symptom": "Sore Throat", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Cough" + }, + "End_Cough": { + "type": "Symptom", + "symptom": "Cough", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Headache" + }, + "End_Headache": { + "type": "Symptom", + "symptom": "Headache", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Fever" + }, + "End_Fever": { + "type": "Symptom", + "symptom": "Fever", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Fatigue" + }, + "End_Fatigue": { + "type": "Symptom", + "symptom": "Fatigue", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Cold" + }, + "End_Cold": { + "type": "ConditionEnd", + "condition_onset": "Cold_Onset", + "direct_transition": "Potential_Cold_Onset" + }, + "Terminal": { + "type": "Terminal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/complications_and_ill_defined_descriptions_of_heart_disease.json b/src/main/resources/modules/complications_and_ill_defined_descriptions_of_heart_disease.json new file mode 100644 index 0000000..d9f8421 --- /dev/null +++ b/src/main/resources/modules/complications_and_ill_defined_descriptions_of_heart_disease.json @@ -0,0 +1,492 @@ +{ + "name": "Complications and ill-defined descriptions of heart disease", + "remarks": [ + "This module models complications and ill-defined descriptions of heart disease (ICD-10 code I51).", + "This category includes various cardiac complications and conditions that don't fit into more specific categories.", + "Common conditions include cardiac tamponade, myocardial fibrosis, and other ill-defined heart disorders.", + "Information on prevalence, progression, and treatment obtained from:", + "https://www.ahajournals.org/doi/10.1161/CIRCULATIONAHA.121.056856", + "https://www.ncbi.nlm.nih.gov/books/NBK559228/", + "https://www.heart.org/en/health-topics/heart-failure/what-is-heart-failure" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + "Ill-defined heart conditions affect approximately 1-3% of the general population.", + "Risk increases with age, particularly after 60 years old.", + "Often occurs as a complication of other cardiac conditions or systemic diseases." + ], + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 40, + "unit": "years" + }, + "direct_transition": "Risk_Assessment" + }, + "Risk_Assessment": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 70, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.08, + "transition": "Cardiac_Complication_Onset" + }, + { + "distribution": 0.92, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 60, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.05, + "transition": "Cardiac_Complication_Onset" + }, + { + "distribution": 0.95, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 50, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.03, + "transition": "Cardiac_Complication_Onset" + }, + { + "distribution": 0.97, + "transition": "Terminal" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.01, + "transition": "Cardiac_Complication_Onset" + }, + { + "distribution": 0.99, + "transition": "Terminal" + } + ] + } + ] + }, + "Cardiac_Complication_Onset": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Myocardial_Fibrosis_Onset" + }, + { + "distribution": 0.2, + "transition": "Cardiac_Tamponade_Onset" + }, + { + "distribution": 0.5, + "transition": "Other_Heart_Disorder_Onset" + } + ] + }, + "Myocardial_Fibrosis_Onset": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "assign_to_attribute": "cardiac_complication", + "codes": [ + { + "system": "SNOMED-CT", + "code": "233917008", + "display": "Myocardial fibrosis (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I51.5", + "display": "Myocardial degeneration" + } + ], + "direct_transition": "Set_Complication_Type_Fibrosis" + }, + "Set_Complication_Type_Fibrosis": { + "type": "SetAttribute", + "attribute": "complication_type", + "value": "fibrosis", + "direct_transition": "Diagnosis_Encounter" + }, + "Cardiac_Tamponade_Onset": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "assign_to_attribute": "cardiac_complication", + "codes": [ + { + "system": "SNOMED-CT", + "code": "42251007", + "display": "Cardiac tamponade (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I31.9", + "display": "Disease of pericardium, unspecified" + } + ], + "direct_transition": "Set_Complication_Type_Tamponade" + }, + "Set_Complication_Type_Tamponade": { + "type": "SetAttribute", + "attribute": "complication_type", + "value": "tamponade", + "direct_transition": "Diagnosis_Encounter" + }, + "Other_Heart_Disorder_Onset": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "assign_to_attribute": "cardiac_complication", + "codes": [ + { + "system": "SNOMED-CT", + "code": "84114007", + "display": "Heart disorder (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I51.9", + "display": "Heart disease, unspecified" + } + ], + "direct_transition": "Set_Complication_Type_Other" + }, + "Set_Complication_Type_Other": { + "type": "SetAttribute", + "attribute": "complication_type", + "value": "other", + "direct_transition": "Diagnosis_Encounter" + }, + "Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "cardiac_complication", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Symptom_Selection" + }, + "Symptom_Selection": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "complication_type", + "operator": "==", + "value": "fibrosis" + }, + "transition": "Fibrosis_Symptoms" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "complication_type", + "operator": "==", + "value": "tamponade" + }, + "transition": "Tamponade_Symptoms" + }, + { + "transition": "Other_Cardiac_Symptoms" + } + ] + }, + "Fibrosis_Symptoms": { + "type": "Symptom", + "symptom": "Dyspnea", + "cause": "cardiac_complication", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "Fibrosis_Fatigue" + }, + "Fibrosis_Fatigue": { + "type": "Symptom", + "symptom": "Fatigue", + "cause": "cardiac_complication", + "range": { + "low": 40, + "high": 80 + }, + "direct_transition": "Fibrosis_Palpitations" + }, + "Fibrosis_Palpitations": { + "type": "Symptom", + "symptom": "Palpitations", + "cause": "cardiac_complication", + "range": { + "low": 20, + "high": 60 + }, + "direct_transition": "Vital_Signs" + }, + "Tamponade_Symptoms": { + "type": "Symptom", + "symptom": "Chest Pain", + "cause": "cardiac_complication", + "range": { + "low": 60, + "high": 90 + }, + "direct_transition": "Tamponade_Dyspnea" + }, + "Tamponade_Dyspnea": { + "type": "Symptom", + "symptom": "Dyspnea", + "cause": "cardiac_complication", + "range": { + "low": 70, + "high": 95 + }, + "direct_transition": "Tamponade_Tachycardia" + }, + "Tamponade_Tachycardia": { + "type": "Symptom", + "symptom": "Tachycardia", + "cause": "cardiac_complication", + "range": { + "low": 50, + "high": 90 + }, + "direct_transition": "Vital_Signs" + }, + "Other_Cardiac_Symptoms": { + "type": "Symptom", + "symptom": "Fatigue", + "cause": "cardiac_complication", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "Other_Dyspnea" + }, + "Other_Dyspnea": { + "type": "Symptom", + "symptom": "Dyspnea", + "cause": "cardiac_complication", + "range": { + "low": 20, + "high": 60 + }, + "direct_transition": "Other_Edema" + }, + "Other_Edema": { + "type": "Symptom", + "symptom": "Peripheral Edema", + "cause": "cardiac_complication", + "range": { + "low": 10, + "high": 50 + }, + "direct_transition": "Vital_Signs" + }, + "Vital_Signs": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "complication_type", + "operator": "==", + "value": "tamponade" + }, + "transition": "Tamponade_BP" + }, + { + "transition": "Normal_BP" + } + ] + }, + "Tamponade_BP": { + "type": "Observation", + "category": "vital-signs", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic blood pressure" + } + ], + "range": { + "low": 70, + "high": 100 + }, + "direct_transition": "Tamponade_HR" + }, + "Tamponade_HR": { + "type": "Observation", + "category": "vital-signs", + "unit": "/min", + "codes": [ + { + "system": "LOINC", + "code": "8867-4", + "display": "Heart rate" + } + ], + "range": { + "low": 100, + "high": 140 + }, + "direct_transition": "Diagnostic_Tests" + }, + "Normal_BP": { + "type": "Observation", + "category": "vital-signs", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic blood pressure" + } + ], + "range": { + "low": 110, + "high": 140 + }, + "direct_transition": "Normal_HR" + }, + "Normal_HR": { + "type": "Observation", + "category": "vital-signs", + "unit": "/min", + "codes": [ + { + "system": "LOINC", + "code": "8867-4", + "display": "Heart rate" + } + ], + "range": { + "low": 70, + "high": 100 + }, + "direct_transition": "Diagnostic_Tests" + }, + "Diagnostic_Tests": { + "type": "Simple", + "direct_transition": "ECG" + }, + "ECG": { + "type": "Procedure", + "reason": "cardiac_complication", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29303009", + "display": "Electrocardiogram (procedure)" + } + ], + "duration": { + "low": 10, + "high": 15, + "unit": "minutes" + }, + "direct_transition": "Echocardiogram" + }, + "Echocardiogram": { + "type": "Procedure", + "reason": "cardiac_complication", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40701008", + "display": "Echocardiography (procedure)" + } + ], + "duration": { + "low": 20, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Cardiac_Biomarkers" + }, + "Cardiac_Biomarkers": { + "type": "Procedure", + "reason": "cardiac_complication", + "codes": [ + { + "system": "SNOMED-CT", + "code": "252275004", + "display": "Cardiac enzyme measurement (procedure)" + } + ], + "direct_transition": "Troponin_Test" + }, + "Troponin_Test": { + "type": "Observation", + "category": "laboratory", + "unit": "ng/mL", + "codes": [ + { + "system": "LOINC", + "code": "6598-7", + "display": "Troponin T [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.01, + "high": 0.1 + }, + "direct_transition": "BNP_Test" + }, + "BNP_Test": { + "type": "Observation", + "category": "laboratory", + "unit": "pg/mL", + "codes": [ + { + "system": "LOINC", + "code": "33762-6", + "display": "Natriuretic peptide B [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 100, + "high": 500 + }, + "direct_transition": "Treatment_Decision" + }}} \ No newline at end of file diff --git a/src/main/resources/modules/congestive_heart_failure.json b/src/main/resources/modules/congestive_heart_failure.json new file mode 100644 index 0000000..7909607 --- /dev/null +++ b/src/main/resources/modules/congestive_heart_failure.json @@ -0,0 +1,1892 @@ +{ + "name": "Congestive Heart Failure", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age Guard" + }, + "CHF symptom onset 1": { + "type": "Symptom", + "symptom": "Dyspnea on exertion (finding)", + "cause": "", + "exact": { + "quantity": 1 + }, + "direct_transition": "CHF symptom onset 2" + }, + "CHF symptom onset 2": { + "type": "Symptom", + "symptom": "Dyspnea (finding)", + "cause": "", + "exact": { + "quantity": 1 + }, + "direct_transition": "CHF symptom onset 3" + }, + "CHF symptom onset 3": { + "type": "Symptom", + "symptom": "Paroxysmal dyspnea (finding)", + "cause": "", + "exact": { + "quantity": 1 + }, + "direct_transition": "CHF symptom onset 4" + }, + "CHF Condition Start": { + "type": "ConditionOnset", + "assign_to_attribute": "chf", + "target_encounter": "CHF initial workup encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "88805009", + "display": "Chronic congestive heart failure (disorder)" + } + ], + "direct_transition": "Eventual Hospice Reason" + }, + "CHF initial workup encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "chf", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Recorded Symptom 1" + }, + "CHF careplan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "735984001", + "display": "Heart failure self management plan (record artifact)" + } + ], + "direct_transition": "Wrap up follow-up encounter", + "reason": "chf", + "activities": [ + { + "system": "SNOMED-CT", + "code": "183063000", + "display": "Low salt diet education (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "183301007", + "display": "Physical exercises (regime/therapy)" + } + ] + }, + "end_followup_encounter": { + "type": "EncounterEnd", + "direct_transition": "Maintaining CHF" + }, + "Maintaining CHF": { + "type": "Delay", + "exact": { + "quantity": 6, + "unit": "months" + }, + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "chf_stage_d", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "chf_admissions", + "operator": ">=", + "value": 2 + } + ] + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "nyha_class", + "operator": ">=", + "value": 3 + }, + { + "condition_type": "Vital Sign", + "vital_sign": "Left ventricular Ejection fraction", + "operator": "<=", + "value": 35 + } + ] + } + ] + }, + "distributions": [ + { + "transition": "Progress to Stage D", + "distribution": 0.065 + }, + { + "transition": "Potential CHF Flare", + "distribution": 0.5 + }, + { + "transition": "Followup CHF Encounter", + "distribution": 0.43500000000000005 + } + ] + }, + { + "condition": { + "condition_type": "PriorState", + "name": "Followup CHF Encounter", + "within": { + "quantity": 1, + "unit": "years" + } + }, + "transition": "Potential CHF Flare" + }, + { + "transition": "Followup CHF Encounter" + } + ] + }, + "Potential CHF Flare": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "acute CHF flare", + "distribution": 0.5 + }, + { + "transition": "Followup CHF Encounter", + "distribution": 0.5 + } + ] + }, + "CHF ED Visit": { + "type": "Encounter", + "encounter_class": "emergency", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Oxygen_Saturation", + "reason": "CHF Condition Start" + }, + "CXR_ED": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain X-ray of chest (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "51185008", + "display": "Thoracic structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "CR", + "display": "Computed Radiography" + }, + "instances": [ + { + "title": "Title of this image", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.1", + "display": "Digital X-Ray Image Storage – for Presentation" + } + } + ] + } + ], + "distributed_transition": [ + { + "transition": "ED_End", + "distribution": 0.95 + }, + { + "transition": "Shock Disorder", + "distribution": 0.05 + } + ] + }, + "ED_End": { + "type": "EncounterEnd", + "direct_transition": "Admit_Discharge Transition" + }, + "Admit_Discharge Transition": { + "type": "Simple", + "remarks": [ + "Different studies suggest numbers from 74% to 84% for inpatient admittance." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Vital Sign", + "vital_sign": "Systolic Blood Pressure", + "operator": "<", + "value": 90 + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "PriorState", + "name": "Oxygen", + "within": { + "quantity": 1, + "unit": "days" + } + }, + { + "condition_type": "PriorState", + "name": "Shock Disorder", + "within": { + "quantity": 1, + "unit": "days" + } + } + ] + } + ] + }, + "transition": "ICU Admission" + }, + { + "distributions": [ + { + "transition": "Inpatient Admission", + "distribution": 0.84 + }, + { + "transition": "Maintaining CHF", + "distribution": 0.16 + } + ] + } + ] + }, + "Inpatient CarePlan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736353004", + "display": "Inpatient care plan (record artifact)" + } + ], + "direct_transition": "Med_Rec_2", + "activities": [ + { + "system": "SNOMED-CT", + "code": "385715006", + "display": "Cardiac care (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "386619000", + "display": "Low sodium diet (finding)" + } + ], + "goals": [ + { + "addresses": [ + "chf" + ], + "text": "Decongestion" + }, + { + "addresses": [ + "chf" + ], + "text": "Assess goals of care" + } + ], + "reason": "chf" + }, + "Furosemide": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1719286, + "display": "10 ML Furosemide 10 MG/ML Injection" + } + ], + "reason": "chf", + "administration": true, + "direct_transition": "Oxygen_Saturation_Admission" + }, + "Inpatient Daily Transition": { + "type": "Delay", + "exact": { + "quantity": 12, + "unit": "hours" + }, + "direct_transition": "Inpatient Death decision" + }, + "Inpatient Discharge": { + "type": "Simple", + "direct_transition": "Heart Failure Education" + }, + "End Inpatient Care Plan": { + "type": "CarePlanEnd", + "direct_transition": "Check Outcome", + "careplan": "Inpatient CarePlan" + }, + "End Inpatient Encounter": { + "type": "EncounterEnd", + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2005 + }, + "distributions": [ + { + "transition": "Maintaining CHF", + "distribution": 1 + } + ] + }, + { + "distributions": [ + { + "transition": "Maintaining CHF with Telemedicine", + "distribution": 0.7 + }, + { + "transition": "Maintaining CHF", + "distribution": 0.30000000000000004 + } + ] + } + ], + "remarks": [ + "Discharge the patient. Starting since the early 2000s this has a likelihood of being an enrollment into a telemedical home monitoring program, designed to prevent readmissions." + ] + }, + "Age Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 20, + "unit": "years", + "value": 0 + }, + "direct_transition": "Determine CHF" + }, + "CHF careplan for smokers": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "735984001", + "display": "Heart failure self management plan (record artifact)" + } + ], + "reason": "chf", + "activities": [ + { + "system": "SNOMED-CT", + "code": "183063000", + "display": "Low salt diet education (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "183301007", + "display": "Physical exercises (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "225323000", + "display": "Smoking cessation education (procedure)" + } + ], + "direct_transition": "Wrap up follow-up encounter" + }, + "Assign CHF care plan": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Wrap up follow-up encounter", + "condition": { + "condition_type": "Active CarePlan", + "codes": [ + { + "system": "SNOMED-CT", + "code": "735984001", + "display": "Heart failure self management plan (record artifact)" + } + ] + } + }, + { + "transition": "CHF careplan for smokers", + "condition": { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "==", + "value": true + } + }, + { + "transition": "CHF careplan" + } + ] + }, + "Wrap up follow-up encounter": { + "type": "Simple", + "direct_transition": "end_followup_encounter" + }, + "Order medications": { + "type": "CallSubmodule", + "submodule": "heart/chf_meds", + "direct_transition": "Med_Rec" + }, + "Report workup imaging": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "55405-5", + "display": "Heart failure tracking panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "10230-1", + "display": "Left ventricular Ejection fraction" + } + ], + "vital_sign": "Left ventricular Ejection fraction" + } + ], + "direct_transition": "Record_MetabolicPanel" + }, + "Count inpatient stays": { + "type": "Counter", + "attribute": "chf_inpatient_admissions", + "action": "increment", + "direct_transition": "Inpatient LOS" + }, + "Inpatient LOS": { + "type": "SetAttribute", + "attribute": "inpatient-los", + "direct_transition": "Inpatient CarePlan", + "value": 0, + "distribution": { + "kind": "EXPONENTIAL", + "round": true, + "parameters": { + "mean": 5.8 + } + } + }, + "Reset inpatient count": { + "type": "SetAttribute", + "attribute": "chf_inpatient_admissions", + "direct_transition": "Reset emergency count", + "value": 0 + }, + "Inpatient daily routine": { + "type": "Simple", + "direct_transition": "Furosemide" + }, + "Death": { + "type": "Death", + "direct_transition": "Terminal", + "referenced_by_attribute": "chf", + "range": { + "low": 1, + "high": 12, + "unit": "hours" + } + }, + "Terminal": { + "type": "Terminal" + }, + "Inpatient Discharge decision": { + "type": "Counter", + "attribute": "inpatient-los", + "action": "decrement", + "conditional_transition": [ + { + "transition": "Inpatient daily routine", + "condition": { + "condition_type": "Attribute", + "attribute": "inpatient-los", + "operator": ">", + "value": 0 + } + }, + { + "transition": "Inpatient Discharge" + } + ] + }, + "Inpatient Death decision": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "chf_admissions", + "operator": ">=", + "value": 4 + }, + "distributions": [ + { + "transition": "Death", + "distribution": 0.8 + }, + { + "transition": "Inpatient Discharge decision", + "distribution": 0.2 + } + ] + }, + { + "distributions": [ + { + "distribution": 0.03, + "transition": "Death" + }, + { + "transition": "Inpatient Discharge decision", + "distribution": 0.97 + } + ] + } + ], + "remarks": [ + "A high number of previous inpatient encounters increases the likelihood of death." + ] + }, + "Maintaining CHF with Telemedicine": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "days" + }, + "distributed_transition": [ + { + "transition": "Daily Self-Measurement Encounter", + "distribution": 0.6 + }, + { + "transition": "Skip daily measurement", + "distribution": 0.39 + }, + { + "transition": "Potential CHF Flare", + "distribution": 0.010000000000000009 + } + ] + }, + "Skip daily measurement": { + "type": "Simple", + "direct_transition": "Maintaining CHF with Telemedicine" + }, + "Daily self-measurement": { + "type": "MultiObservation", + "category": "vital-signs", + "number_of_observations": 2, + "codes": [ + { + "system": "LOINC", + "code": "85354-9", + "display": "Blood pressure panel with all children optional" + } + ], + "direct_transition": "End self-measurement", + "observations": [ + { + "category": "vital-signs", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic Blood Pressure" + } + ], + "vital_sign": "Systolic Blood Pressure" + }, + { + "category": "vital-signs", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "8462-4", + "display": "Diastolic Blood Pressure" + } + ], + "vital_sign": "Diastolic Blood Pressure" + } + ] + }, + "End self-measurement": { + "type": "EncounterEnd", + "direct_transition": "Maintaining CHF with Telemedicine" + }, + "Daily Self-Measurement Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "448337001", + "display": "Telemedicine consultation with patient (procedure)" + } + ], + "direct_transition": "Daily self-measurement", + "reason": "chf" + }, + "Determine CHF": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "Age 20-39", + "distribution": 0.002 + }, + { + "transition": "Age 40-59", + "distribution": 0.017 + }, + { + "transition": "Age 50-79", + "distribution": 0.048 + }, + { + "transition": "Age 80+", + "distribution": 0.12 + }, + { + "transition": "Terminal", + "distribution": 0.813 + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "transition": "Age 20-39", + "distribution": 0.003 + }, + { + "transition": "Age 40-59", + "distribution": 0.012 + }, + { + "transition": "Age 50-79", + "distribution": 0.069 + }, + { + "transition": "Age 80+", + "distribution": 0.128 + }, + { + "transition": "Terminal", + "distribution": 0.788 + } + ] + } + ] + }, + "Age 20-39": { + "type": "Delay", + "range": { + "low": 0, + "high": 19, + "unit": "years" + }, + "direct_transition": "Determine Type" + }, + "Age 40-59": { + "type": "Delay", + "range": { + "low": 20, + "high": 39, + "unit": "years" + }, + "direct_transition": "Determine Type" + }, + "Age 50-79": { + "type": "Delay", + "range": { + "low": 30, + "high": 59, + "unit": "years" + }, + "direct_transition": "Determine Type" + }, + "Age 80+": { + "type": "Delay", + "range": { + "low": 60, + "high": 65, + "unit": "years" + }, + "direct_transition": "Determine Type" + }, + "CHF symptom onset 4": { + "type": "Symptom", + "symptom": "Orthopnea (finding)", + "cause": "", + "exact": { + "quantity": 1 + }, + "direct_transition": "CHF symptom onset 5" + }, + "CHF symptom onset 5": { + "type": "Symptom", + "symptom": "Edema (finding)", + "cause": "", + "exact": { + "quantity": 1 + }, + "direct_transition": "CHF symptom onset 6" + }, + "CHF symptom onset 6": { + "type": "Symptom", + "symptom": "Rales (finding)", + "cause": "", + "exact": { + "quantity": 1 + }, + "direct_transition": "CHF Condition Start" + }, + "Recorded Symptom 1": { + "type": "Observation", + "category": "exam", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "75325-1", + "display": "Symptom" + } + ], + "direct_transition": "Recorded Symptom 2", + "value_code": { + "system": "SNOMED-CT", + "code": "60845006", + "display": "Dyspnea on exertion (finding)" + } + }, + "Recorded Symptom 2": { + "type": "Observation", + "category": "exam", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "75325-1", + "display": "Symptom" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "267036007", + "display": "Dyspnea (finding)" + }, + "direct_transition": "Recorded Symptom 3" + }, + "Recorded Symptom 3": { + "type": "Observation", + "category": "exam", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "75325-1", + "display": "Symptom" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "59265000", + "display": "Paroxysmal dyspnea (finding)" + }, + "direct_transition": "Recorded Symptom 4" + }, + "Recorded Symptom 4": { + "type": "Observation", + "category": "exam", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "75325-1", + "display": "Symptom" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "62744007", + "display": "Orthopnea (finding)" + }, + "direct_transition": "Recorded Symptom 5" + }, + "Recorded Symptom 5": { + "type": "Observation", + "category": "exam", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "75325-1", + "display": "Symptom" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "267038008", + "display": "Edema (finding)" + }, + "direct_transition": "Recorded Symptom 6" + }, + "Recorded Symptom 6": { + "type": "Observation", + "category": "exam", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "75325-1", + "display": "Symptom" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": 19283009, + "display": "Rales (finding)" + }, + "direct_transition": "Initial Lab Work" + }, + "Initial Lab Work": { + "type": "CallSubmodule", + "submodule": "heart/chf_lab_work", + "direct_transition": "ECG" + }, + "Initial Encounter End": { + "type": "EncounterEnd", + "remarks": [ + "Anemia prevalence for CHF - https://www.ncbi.nlm.nih.gov/pubmed/20630401", + "" + ], + "direct_transition": "Intra Encounter Time Gate" + }, + "Intra Encounter Time Gate": { + "type": "Delay", + "direct_transition": "Followup CHF Encounter", + "range": { + "low": 2, + "high": 3, + "unit": "weeks" + } + }, + "Followup CHF Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "chf", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Echocardiography" + }, + "CHF onset": { + "type": "Simple", + "direct_transition": "Reset inpatient count" + }, + "HFrEF": { + "type": "SetAttribute", + "attribute": "chf_type", + "value": "HFrEF", + "distributed_transition": [ + { + "transition": "LVEF HFrEF Low", + "distribution": 0.2 + }, + { + "transition": "LVEF HFrEF Mid", + "distribution": 0.4 + }, + { + "transition": "LVEF HFrEF High", + "distribution": 0.4 + } + ] + }, + "HFpEF": { + "type": "SetAttribute", + "attribute": "chf_type", + "direct_transition": "LVEF HFpEF", + "value": "HFpEF" + }, + "Determine Type": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "HFrEF", + "distribution": 0.39 + }, + { + "transition": "HFmEF", + "distribution": 0.13 + }, + { + "transition": "HFpEF", + "distribution": 0.48 + } + ] + }, + "LVEF HFpEF": { + "type": "VitalSign", + "vital_sign": "Left ventricular Ejection fraction", + "unit": "", + "range": { + "low": 50, + "high": 100 + }, + "distributed_transition": [ + { + "transition": "NYHA Class 1", + "distribution": 0.2 + }, + { + "transition": "NYHA Class 2", + "distribution": 0.55 + }, + { + "transition": "NYHA Class 3", + "distribution": 0.2 + }, + { + "transition": "NYHA Class 4", + "distribution": 0.05 + } + ] + }, + "NYHA Class 1": { + "type": "SetAttribute", + "attribute": "nyha_class", + "direct_transition": "CHF onset", + "value": 1 + }, + "NYHA Class 2": { + "type": "SetAttribute", + "attribute": "nyha_class", + "value": 2, + "direct_transition": "CHF onset" + }, + "NYHA Class 3": { + "type": "SetAttribute", + "attribute": "nyha_class", + "value": 3, + "direct_transition": "CHF onset" + }, + "NYHA Class 4": { + "type": "SetAttribute", + "attribute": "nyha_class", + "value": 4, + "direct_transition": "CHF onset" + }, + "Echocardiography": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "40701008", + "display": "Echocardiography (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "80891009", + "display": "Heart structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "US", + "display": "Ultrasound" + }, + "instances": [ + { + "title": "Ultrasound Multiframe Image Storage", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.3.1", + "display": "Ultrasound Multiframe Image Storage" + } + } + ] + } + ], + "direct_transition": "Report workup imaging" + }, + "HFmEF": { + "type": "SetAttribute", + "attribute": "chf_type", + "direct_transition": "LVEF HFmEF", + "value": "HFmEF" + }, + "LVEF HFmEF": { + "type": "VitalSign", + "vital_sign": "Left ventricular Ejection fraction", + "unit": "", + "range": { + "low": 41, + "high": 49 + }, + "distributed_transition": [ + { + "transition": "NYHA Class 1", + "distribution": 0.2 + }, + { + "transition": "NYHA Class 2", + "distribution": 0.55 + }, + { + "transition": "NYHA Class 3", + "distribution": 0.2 + }, + { + "transition": "NYHA Class 4", + "distribution": 0.05 + } + ] + }, + "LVEF HFrEF Low": { + "type": "VitalSign", + "vital_sign": "Left ventricular Ejection fraction", + "unit": "", + "range": { + "low": 5, + "high": 19 + }, + "distributed_transition": [ + { + "transition": "NYHA Class 3", + "distribution": 0.75 + }, + { + "transition": "NYHA Class 4", + "distribution": 0.25 + } + ] + }, + "LVEF HFrEF Mid": { + "type": "VitalSign", + "vital_sign": "Left ventricular Ejection fraction", + "unit": "", + "range": { + "low": 20, + "high": 35 + }, + "distributed_transition": [ + { + "transition": "NYHA Class 2", + "distribution": 0.65 + }, + { + "transition": "NYHA Class 3", + "distribution": 0.35 + } + ] + }, + "LVEF HFrEF High": { + "type": "VitalSign", + "vital_sign": "Left ventricular Ejection fraction", + "unit": "", + "range": { + "low": 36, + "high": 40 + }, + "distributed_transition": [ + { + "transition": "NYHA Class 1", + "distribution": 0.25 + }, + { + "transition": "NYHA Class 2", + "distribution": 0.75 + } + ] + }, + "Stop Ibuprofen": { + "type": "MedicationEnd", + "direct_transition": "Assign CHF care plan", + "codes": [ + { + "system": "RxNorm", + "code": 198405, + "display": "Ibuprofen 100 MG Oral Tablet" + }, + { + "system": "RxNorm", + "code": 310965, + "display": "Ibuprofen 200 MG Oral Tablet" + } + ] + }, + "Med_Rec": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "430193006", + "display": "Medication reconciliation (procedure)" + } + ], + "direct_transition": "Stop Ibuprofen" + }, + "Record_MetabolicPanel": { + "type": "DiagnosticReport", + "number_of_observations": 8, + "codes": [ + { + "system": "LOINC", + "code": "51990-0", + "display": "Basic metabolic panel - Blood" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2339-0", + "display": "Glucose [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "6299-2", + "display": "Urea nitrogen [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Creatinine", + "codes": [ + { + "system": "LOINC", + "code": "38483-4", + "display": "Creatinine [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "49765-1", + "display": "Calcium [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2947-0", + "display": "Sodium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "6298-4", + "display": "Potassium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2069-3", + "display": "Chloride [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "20565-8", + "display": "Carbon dioxide, total [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + } + ], + "direct_transition": "Order medications" + }, + "Repeat Lab Work": { + "type": "CallSubmodule", + "submodule": "heart/chf_lab_work", + "direct_transition": "CXR_ED" + }, + "Progress to Stage D": { + "type": "SetAttribute", + "attribute": "chf_stage_d", + "value": true, + "distributed_transition": [ + { + "transition": "Stage D Hospice", + "distribution": 0.04 + }, + { + "transition": "Stage D LVAD", + "distribution": 0.04 + }, + { + "transition": "Stage D Transplant", + "distribution": 0.04 + }, + { + "transition": "Potential CHF Flare", + "distribution": 0.88 + } + ] + }, + "ICU Admission": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305351004", + "display": "Admission to intensive care unit (procedure)" + } + ], + "reason": "chf", + "direct_transition": "Count ICU stays" + }, + "Inpatient Admission": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308540004", + "display": "Inpatient stay (finding)" + } + ], + "direct_transition": "Count inpatient stays", + "reason": "chf" + }, + "Wait 12 hours": { + "type": "Delay", + "exact": { + "quantity": 12, + "unit": "hours" + }, + "direct_transition": "Repeat_Lab_Work" + }, + "Furosemide_2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1719286, + "display": "10 ML Furosemide 10 MG/ML Injection" + } + ], + "reason": "chf", + "administration": true, + "direct_transition": "Inpatient Daily Transition" + }, + "Repeat_Lab_Work": { + "type": "CallSubmodule", + "submodule": "heart/chf_lab_work", + "direct_transition": "Furosemide_2" + }, + "Dead within 28 days": { + "type": "Death", + "direct_transition": "End Inpatient Encounter", + "range": { + "low": 1, + "high": 28, + "unit": "days" + }, + "referenced_by_attribute": "chf" + }, + "Dead within 1 year": { + "type": "Death", + "direct_transition": "End Inpatient Encounter", + "range": { + "low": 29, + "high": 364, + "unit": "days" + }, + "referenced_by_attribute": "chf" + }, + "Reset ICU count": { + "type": "SetAttribute", + "attribute": "chf_icu_admissions", + "value": 0, + "direct_transition": "Reset admission count" + }, + "Reset emergency count": { + "type": "SetAttribute", + "attribute": "chf_emergency_admissions", + "value": 0, + "direct_transition": "Reset ICU count" + }, + "Reset admission count": { + "type": "SetAttribute", + "attribute": "chf_admissions", + "value": 0, + "direct_transition": "CHF symptom onset 1" + }, + "acute CHF flare": { + "type": "Counter", + "attribute": "chf_admissions", + "action": "increment", + "direct_transition": "acute_CHF_flare", + "remarks": [ + "Pregnant patients and patients with Acute myocardial infarction should be excluded and moved down an alternative pathway. " + ] + }, + "acute_CHF_flare": { + "type": "Counter", + "attribute": "chf_emergency_admissions", + "action": "increment", + "remarks": [ + "Pregnant patients and patients with Acute myocardial infarction should be excluded and moved down an alternative pathway. " + ], + "direct_transition": "CHF ED Visit" + }, + "Count ICU stays": { + "type": "Counter", + "attribute": "chf_icu_admissions", + "action": "increment", + "direct_transition": "Inpatient LOS" + }, + "Oxygen_Saturation": { + "type": "Observation", + "category": "vital-signs", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "2708-6", + "display": "Oxygen saturation in Arterial blood" + }, + { + "system": "LOINC", + "code": "59408-5", + "display": "Oxygen saturation in Arterial blood by Pulse oximetry" + } + ], + "vital_sign": "Oxygen Saturation", + "conditional_transition": [ + { + "transition": "Oxygen", + "condition": { + "condition_type": "Vital Sign", + "vital_sign": "Oxygen Saturation", + "operator": "<", + "value": 90 + } + }, + { + "transition": "Repeat Lab Work" + } + ] + }, + "Oxygen": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "371908008", + "display": "Oxygen administration by mask (procedure)" + } + ], + "remarks": [ + "Oxygen administration by mask refers to supplemental O2 via nasal cannula or mask, continuous positive airway pressure (CPAP), high flow nasal cannula (HFNC), or non-invasive ventilation (NIV)." + ], + "direct_transition": "Move_to_Prone_Position" + }, + "Move_to_Prone_Position": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "431182000", + "display": "Placing subject in prone position (procedure)" + } + ], + "direct_transition": "Repeat Lab Work" + }, + "Shock Disorder": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "27942005", + "display": "Shock (disorder)" + } + ], + "direct_transition": "ED_End" + }, + "Oxygen_Saturation_Admission": { + "type": "Observation", + "category": "vital-signs", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "2708-6", + "display": "Oxygen saturation in Arterial blood" + }, + { + "system": "LOINC", + "code": "59408-5", + "display": "Oxygen saturation in Arterial blood by Pulse oximetry" + } + ], + "vital_sign": "Oxygen Saturation", + "conditional_transition": [ + { + "transition": "Oxygen_Admission", + "condition": { + "condition_type": "Vital Sign", + "vital_sign": "Oxygen Saturation", + "operator": "<", + "value": 90 + } + }, + { + "transition": "Wait 12 hours" + } + ] + }, + "Oxygen_Admission": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "371908008", + "display": "Oxygen administration by mask (procedure)" + } + ], + "remarks": [ + "Oxygen administration by mask refers to supplemental O2 via nasal cannula or mask, continuous positive airway pressure (CPAP), high flow nasal cannula (HFNC), or non-invasive ventilation (NIV)." + ], + "direct_transition": "Move_to_Prone_Position_Admission" + }, + "Move_to_Prone_Position_Admission": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "431182000", + "display": "Placing subject in prone position (procedure)" + } + ], + "direct_transition": "Wait 12 hours" + }, + "ECG": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29303009", + "display": "Electrocardiographic procedure (procedure)" + } + ], + "duration": { + "low": 5, + "high": 10, + "unit": "minutes" + }, + "direct_transition": "ECG_Data", + "reason": "chf" + }, + "ECG_Data": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Cardiovascular_Stress_Test", + "distribution": 0.25 + }, + { + "distribution": 0.75, + "transition": "Chest X-Ray Check" + } + ] + }, + "Cardiovascular_Stress_Test": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "76746007", + "display": "Cardiovascular stress testing (procedure)" + } + ], + "duration": { + "low": 30, + "high": 60, + "unit": "minutes" + }, + "reason": "chf", + "direct_transition": "Chest X-Ray Check" + }, + "Chest X-Ray Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Chest X-Ray", + "distribution": 0.5 + }, + { + "transition": "Assessment Procedure", + "distribution": 0.5 + } + ] + }, + "Chest X-Ray": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain X-ray of chest (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "51185008", + "display": "Thoracic structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "CR", + "display": "Computed Radiography" + }, + "instances": [ + { + "title": "Title of this image", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.1", + "display": "Digital X-Ray Image Storage – for Presentation" + } + } + ] + } + ], + "direct_transition": "Assessment Procedure" + }, + "Inpatient_Echocardiography": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "40701008", + "display": "Echocardiography (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "80891009", + "display": "Heart structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "US", + "display": "Ultrasound" + }, + "instances": [ + { + "title": "Ultrasound Multiframe Image Storage", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.3.1", + "display": "Ultrasound Multiframe Image Storage" + } + } + ] + } + ], + "direct_transition": "Report_workup_imaging" + }, + "Report_workup_imaging": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "55405-5", + "display": "Heart failure tracking panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "10230-1", + "display": "Left ventricular Ejection fraction" + } + ], + "vital_sign": "Left ventricular Ejection fraction" + } + ], + "direct_transition": "Inpatient daily routine" + }, + "Inpatient_ECG": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29303009", + "display": "Electrocardiographic procedure (procedure)" + } + ], + "duration": { + "low": 5, + "high": 10, + "unit": "minutes" + }, + "reason": "chf", + "distributed_transition": [ + { + "transition": "Inpatient_Echocardiography", + "distribution": 0.25 + }, + { + "transition": "Inpatient daily routine", + "distribution": 0.75 + } + ] + }, + "Check Outcome": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Dead within 28 days", + "distribution": 0.1 + }, + { + "transition": "Dead within 1 year", + "distribution": 0.3 + }, + { + "transition": "End Inpatient Encounter", + "distribution": 0.6 + } + ] + }, + "Med_Rec_2": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "430193006", + "display": "Medication reconciliation (procedure)" + } + ], + "direct_transition": "Inpatient_ECG" + }, + "Heart Failure Education": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "423475008", + "display": "Heart failure education (procedure)" + } + ], + "duration": { + "low": 30, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "End Inpatient Care Plan", + "reason": "CHF Condition Start" + }, + "Assessment Procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "762998009", + "display": "Assessment using New York Heart Association Classification (procedure)" + } + ], + "duration": { + "low": 15, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Assessment Result", + "reason": "chf" + }, + "Assessment Result": { + "type": "CallSubmodule", + "submodule": "heart/chf_nyha_panel", + "direct_transition": "Initial Encounter End" + }, + "Stage D Transplant": { + "type": "CallSubmodule", + "submodule": "heart/chf_transplant", + "direct_transition": "Followup CHF Encounter" + }, + "Stage D LVAD": { + "type": "CallSubmodule", + "submodule": "heart/chf_lvad", + "direct_transition": "Followup CHF Encounter" + }, + "Stage D Hospice": { + "type": "Encounter", + "encounter_class": "hospice", + "reason": "chf", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305336008", + "display": "Admission to hospice (procedure)" + } + ], + "direct_transition": "Hospice Death" + }, + "Hospice Death": { + "type": "Death", + "range": { + "low": 3, + "high": 60, + "unit": "days" + }, + "referenced_by_attribute": "chf", + "direct_transition": "Terminal" + }, + "Eventual Hospice Reason": { + "type": "SetAttribute", + "attribute": "hospice_reason", + "direct_transition": "CHF initial workup encounter", + "value_attribute": "chf" + } + }, + "remarks": [ + "This module was last updated in 2020 based on the existing Synthea congestive_heartfailure_module. ", + "The goal of the module is to simulate the life cycle of heart failure (HF) from onset to death, including hospitalizations for acute decompensations and procedural/interventions. ", + "", + "The module includes the following representations: ", + "- HF ACC/AHA Stages C & D", + "- NYHA Functional Classification I, II, III, and IV ", + "- HF definitions of HF reduced ejection fraction (HFrEF), HF midrange/borderline EF (HFmEF), and HF preserved EF (HFpEF), defined as an EF of <=40, 41-49, and >=50 respectively. For treatment and disease progression purposes, HFrEF is divided into subcategories of EF <20, EF 20-35, and EF 36-40. ", + "- Goal directed medical therapy with diuretics, ACE inhibitors, ARBs, ARNIs, beta-blockers, mineralocorticoid receptor agonists (MRA), hydralazine-isosorbide, ivabradine, and digoxin, with treatment based on EF and evidence for use in the NYHA class. ", + "- Non-pharmacological interventions for HF management (e.g., exercise, sodium restriction, smoking cessation etc.)", + "- Procedural interventions based on clinical indications: ICD, CRT, LVAD, CABG, PCI, transplant", + "", + "This following model assumptions apply: ", + "", + "Prevalence: HF prevalence is informed by the Heart disease and stroke statistics—2020 update: a report from the American Heart Association. https://doi.org/10.1161/CIR.0000000000000757 , Circulation 2020;141:e139–e596 ", + "", + "Pharmacotherapy: A single drug is used to represent a pharmacologic category (e.g., lisinopril for ACE inhibitors). The medication dose represented in the module is inclusive of all medication dosages, including titration to the maximum dose based on HF treatment recommendations. Although hydralazine-isosorbide has been recommended for individuals who identify as African American, we did not make this distinction in the module in light of recent discussions regarding the use of race—a sociological construct—to guide medication therapy, as well as clinical observations/discussions with frontline physicians noting that this medication is used across races. Additionally, the module at present does not reflect the use of SGLT-2 inhibitors (i.e., dapagliflozin) for patients with HFrEF and Type 2 diabetes mellitus (DM); however, individuals with Type 2 DM and HFrEF may receive an SGLT-2 as part of the metabolic disease module in Synthea. Medication utilization represented in the module is reflective of undertreatment and medication adherence observed in clinical practice. ", + "", + "Clinical Population Exclusions: The module care pathway excludes pregnant individuals and individuals <18 years of age. While treatment options for HF therapy during pregnancy are similar to non-pregnant individuals, certain treatments are avoided due to risk of teratogenicity and/or certain treatment considerations are made to prevent the risk of poor fetal outcomes. Individuals <18 patients were excluded considering the impact of congenital heart disease on disease prevalence and treatment options. ", + "", + "Module references: ", + "", + "1. The previous existing synthea congestive_heartfailure_module", + "2. Heart disease and stroke statistics—2020 update: a report from the American Heart Association. https://doi.org/10.1161/CIR.0000000000000757", + "3. Savarese G, Lund LH. Global Public Health Burden of Heart Failure. Card Fail Rev. 2017 Apr;3(1):7-11. doi:10.15420/cfr.2016:25:2. PMID: 28785469; PMCID: PMC5494150.", + "4. https://r.details.loinc.org/LOINC/55405-5.html?sections=Comprehensive", + "5. Yancy, C.W., Jessup, M., Bozkurt, B., Butler, J., Casey, D.E., Drazner, M.H., Fonarow, G.C., Geraci, S.A., Horwich, T., Januzzi, J.L. and Johnson, M.R., 2013. 2013 ACCF/AHA guideline for the management of heart failure: a report of the American College of Cardiology Foundation/American Heart Association Task Force on Practice Guidelines. Journal of the American College of Cardiology, 62(16), pp.e147-e239, DOI: 10.1016/j.jacc.2013.05.019", + "6. Yancy, C.W., Jessup, M., Bozkurt, B., Butler, J., Casey, D.E., Colvin, M.M., Drazner, M.H., Filippatos, G.S., Fonarow, G.C., Givertz, M.M. and Hollenberg, S.M., 2017. 2017 ACC/AHA/HFSA focused update of the 2013 ACCF/AHA guideline for the management of heart failure: a report of the American College of Cardiology/American Heart Association Task Force on Clinical Practice Guidelines and the Heart Failure Society of America. Journal of the American College of Cardiology, 70(6), pp.776-803, DOI: 10.1016/j.jacc.2017.04.025.", + "7. Hollenberg, S.M., Stevenson, L.W., Ahmad, T., Amin, V.J., Bozkurt, B., Butler, J., Davis, L.L., Drazner, M.H., Kirkpatrick, J.N., Peterson, P.N. and Reed, B.N., 2019. 2019 ACC expert consensus decision pathway on risk assessment, management, and clinical trajectory of patients hospitalized with heart failure: a report of the American College of Cardiology Solution Set Oversight Committee. Journal of the American College of Cardiology, 74(15), pp.1966-2011, DOI: 10.1016/j.jacc.2019.08.001.", + "8. Blecker, S., Ladapo, J.A., Doran, K.M., Goldfeld, K.S. and Katz, S., 2014. Emergency department visits for heart failure and subsequent hospitalization or observation unit admission. American heart journal, 168(6), pp.901-908.", + "9. Chang, P.P., Wruck, L.M., Shahar, E., Rossi, J.S., Loehr, L.R., Russell, S.D., Agarwal, S.K., Konety, S.H., Rodriguez, C.J. and Rosamond, W.D., 2018. Trends in hospitalizations and survival of acute decompensated heart failure in four US communities (2005–2014) ARIC study community surveillance. Circulation, 138(1), pp.12-24, https://doi.org/10.1161/CIRCULATIONAHA.117.027551", + "10. Kalogeropoulos, A.P., Samman-Tahhan, A., Hedley, J.S., McCue, A.A., Bjork, J.B., Markham, D.W., Bhatt, K.N., Georgiopoulou, V.V., Smith, A.L. and Butler, J., 2017. Progression to stage D heart failure among outpatients with stage C heart failure and reduced ejection fraction. JACC: Heart Failure, 5(7), pp.528-537, DOI: 10.1016/j.jchf.2017.02.020.", + "11. CHAMP-HF Registry studies", + "12. Get With The Guidelines–Heart Failure Registry studies", + "" + ], + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/contraceptive_maintenance.json b/src/main/resources/modules/contraceptive_maintenance.json new file mode 100644 index 0000000..939c6a0 --- /dev/null +++ b/src/main/resources/modules/contraceptive_maintenance.json @@ -0,0 +1,517 @@ +{ + "name": "Contraceptive Maintenance", + "remarks": [ + "Three types of contraceptives require periodic renewal to be effective: ", + "1. 'iud' - requires replacement every 5-10 years ", + "2. 'implant' - requires replacement every 3-4 years ", + "3. 'injectable' - requires another injection every 3 months ", + "Each of these contraceptives is initially implanted/injected by the prescribing ", + "submodule. Subsequent renewal or removal of these contraceptives is handled ", + "by this maintenance module.", + "Contraceptive maintenance automatically cancelled if either: ", + "1. 'pregnant' == true ", + "2. 'contraceptive_type' == nil " + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "transition": "Terminal" + }, + { + "transition": "Contraception_Care_Reason" + } + ] + }, + "Clear_Contraceptive": { + "type": "CallSubmodule", + "submodule": "contraceptives/clear_contraceptive", + "direct_transition": "Contraceptive_Type_Guard" + }, + "Contraceptive_Type_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "==", + "value": "iud" + }, + { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "==", + "value": "implant" + }, + { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "==", + "value": "injectable" + } + ] + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "==", + "value": "iud" + }, + "transition": "IUD_Maintenance" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "==", + "value": "implant" + }, + "transition": "Implant_Maintenance" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "==", + "value": "injectable" + }, + "transition": "Injectable_Maintenance" + } + ] + }, + "IUD_Maintenance": { + "type": "Guard", + "remarks": [ + "======================================================================", + " IUD CONTRACEPTIVE MAINTENANCE ", + "======================================================================", + "Allow module progression if the IUD's lifetime is up (~4 years) ", + "or if the patient becomes pregnant." + ], + "allow": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "is nil" + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "Contraceptive_Type_Guard", + "within": { + "quantity": 5, + "unit": "years" + } + } + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "IUD_Replacement", + "within": { + "quantity": 5, + "unit": "years" + } + } + } + ] + } + ] + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "is nil" + } + ] + }, + "transition": "Remove_IUD_Encounter" + }, + { + "transition": "Renew_IUD_Encounter" + } + ] + }, + "Renew_IUD_Encounter": { + "type": "Encounter", + "encounter_class": "outpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308335008", + "display": "Patient encounter procedure (procedure)" + } + ], + "direct_transition": "IUD_Replacement", + "reason": "contraception_care_reason" + }, + "IUD_Replacement": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "46706006", + "display": "Replacement of contraceptive intrauterine device (procedure)" + } + ], + "duration": { + "low": 40, + "high": 70, + "unit": "minutes" + }, + "direct_transition": "End_IUD_Replacement_Encounter" + }, + "End_IUD_Replacement_Encounter": { + "type": "EncounterEnd", + "direct_transition": "IUD_Maintenance" + }, + "Remove_IUD_Encounter": { + "type": "Encounter", + "encounter_class": "outpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308335008", + "display": "Patient encounter procedure (procedure)" + } + ], + "direct_transition": "IUD_Removal", + "reason": "contraception_care_reason" + }, + "IUD_Removal": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1263416007", + "display": "Removal of intrauterine contraceptive device (procedure)" + } + ], + "duration": { + "low": 40, + "high": 70, + "unit": "minutes" + }, + "direct_transition": "End_IUD_Removal_Encounter" + }, + "End_IUD_Removal_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Clear_Contraceptive" + }, + "Implant_Maintenance": { + "type": "Guard", + "remarks": [ + "======================================================================", + " IMPLANT CONTRACEPTIVE MAINTENANCE ", + "======================================================================", + "Every 3-4 years the implant must be removed or replaced." + ], + "allow": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "is nil" + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "Contraceptive_Type_Guard", + "within": { + "quantity": 4, + "unit": "years" + } + } + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "Replace_Contraceptive_Implant", + "within": { + "quantity": 4, + "unit": "years" + } + } + } + ] + } + ] + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "is nil" + } + ] + }, + "transition": "Remove_Implant_Encounter" + }, + { + "transition": "Renew_Implant_Encounter" + } + ] + }, + "Renew_Implant_Encounter": { + "type": "Encounter", + "encounter_class": "outpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308335008", + "display": "Patient encounter procedure (procedure)" + } + ], + "direct_transition": "Remove_Implant_Before_Replacement", + "reason": "contraception_care_reason" + }, + "End_Renew_Implant_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Implant_Maintenance" + }, + "Remove_Implant_Encounter": { + "type": "Encounter", + "encounter_class": "outpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308335008", + "display": "Patient encounter procedure (procedure)" + } + ], + "direct_transition": "Remove_Implant", + "reason": "contraception_care_reason" + }, + "Remove_Implant": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "301807007", + "display": "Removal of subcutaneous contraceptive (procedure)" + } + ], + "duration": { + "low": 20, + "high": 40, + "unit": "minutes" + }, + "direct_transition": "End_Remove_Implant_Encounter" + }, + "End_Remove_Implant_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Clear_Contraceptive" + }, + "Injectable_Maintenance": { + "type": "Guard", + "remarks": [ + "======================================================================", + " INJECTABLE CONTRACEPTIVE MAINTENANCE ", + "======================================================================", + "Every 3 months an additional dose is given. If the age limit for the current ", + "age bracket is reached, no more additional doses are given." + ], + "allow": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "is nil" + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "Contraceptive_Type_Guard", + "within": { + "quantity": 3, + "unit": "months" + } + } + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "Regular_Injection_Encounter", + "within": { + "quantity": 3, + "unit": "months" + } + } + } + ] + } + ] + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "is nil" + } + ] + }, + "transition": "Clear_Contraceptive" + }, + { + "transition": "Regular_Injection_Encounter" + } + ] + }, + "Regular_Injection_Encounter": { + "type": "Encounter", + "encounter_class": "outpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308335008", + "display": "Patient encounter procedure (procedure)" + } + ], + "direct_transition": "Regular_Contraceptive_Injection", + "reason": "contraception_care_reason" + }, + "Regular_Contraceptive_Injection": { + "type": "Procedure", + "duration": { + "low": 10, + "high": 20, + "unit": "minutes" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "76601001", + "display": "Intramuscular injection (procedure)" + } + ], + "direct_transition": "End_Regular_Injection_Encounter" + }, + "End_Regular_Injection_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Injectable_Maintenance" + }, + "Terminal": { + "type": "Terminal" + }, + "Replace_Contraceptive_Implant": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "169553002", + "display": "Insertion of subcutaneous contraceptive (procedure)" + } + ], + "duration": { + "low": 20, + "high": 40, + "unit": "minutes" + }, + "direct_transition": "End_Renew_Implant_Encounter" + }, + "Remove_Implant_Before_Replacement": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "301807007", + "display": "Removal of subcutaneous contraceptive (procedure)" + } + ], + "duration": { + "low": 20, + "high": 40, + "unit": "minutes" + }, + "direct_transition": "Replace_Contraceptive_Implant" + }, + "Contraception_Care_Reason": { + "type": "SetAttribute", + "attribute": "contraception_care_reason", + "direct_transition": "Contraceptive_Type_Guard", + "value_code": { + "system": "SNOMED-CT", + "code": "408969000", + "display": "Contraception care management (procedure)" + } + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/contraceptives.json b/src/main/resources/modules/contraceptives.json new file mode 100644 index 0000000..25264d7 --- /dev/null +++ b/src/main/resources/modules/contraceptives.json @@ -0,0 +1,567 @@ +{ + "name": "Contraceptives", + "remarks": [ + "This module prescribes many types of contraceptives to all potentially reproductive ", + "age groups. The availablility of different medicines and methods is historically ", + "accurate by year, based on these articles: ", + "http://www.ourbodiesourselves.org/health-info/a-brief-history-of-birth-control/", + "http://www.pbs.org/wnet/need-to-know/health/a-brief-history-of-the-birth-control-pill/480/", + "Hormonal contraceptives cause a slightly elevated risk of blood clots, heart attack, and ", + "stroke (1.6x) in females, especially in heavy smokers over the age of 35. No change was ", + "made to the existing cardiovascular disease module.", + "While male sterilization is used as a contraceptive method (8%), it's not modeled here. ", + "Instead, the 8% is folded into the female sterilization incidence. However, 6% of males ", + "age 30 - 55 are selected for sterilization to create accurate male patient records.", + "The use of a diaphragm and emergency contraceptives (e.g. Plan B) is not modeled here. ", + "Diaphragms are not modeled due to a lack of usage data and popularity, and emergency ", + "contraceptives are out-of-scope." + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "transition": "Delay_Until_Reproductive_Age" + }, + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "transition": "Select_For_Male_Sterilization" + } + ] + }, + "Delay_Until_Reproductive_Age": { + "type": "Delay", + "exact": { + "quantity": 14, + "unit": "years" + }, + "direct_transition": "Female_Contraceptive_Use" + }, + "Select_For_Male_Sterilization": { + "type": "Simple", + "remarks": [ + "======================================================================", + " MALE STERLIZATION ", + "======================================================================", + "Male sterilization accounts for 8% of all contraceptive use, predominantly ", + "in older males. However, this does not mean 8% of all males are sterilized. ", + "According to the NIH, 6% of males have had a vasectomy. Source: ", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2784091/", + "The percentage of males seeking vasectomies has remained approximately the ", + "same for the last 40 years. Vasectomies were first used as a form of ", + "contraceptive starting around WWII." + ], + "distributed_transition": [ + { + "distribution": 0.06, + "transition": "Delay_For_Male_Sterilization" + }, + { + "distribution": 0.94, + "transition": "Terminal" + } + ] + }, + "Delay_For_Male_Sterilization": { + "type": "Delay", + "range": { + "low": 30, + "high": 55, + "unit": "years" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 1945 + }, + "transition": "Male_Sterilization_Procedure" + }, + { + "transition": "Terminal" + } + ] + }, + "Male_Sterilization_Procedure": { + "type": "CallSubmodule", + "submodule": "contraceptives/male_sterilization", + "direct_transition": "Terminal" + }, + "Female_Contraceptive_Use": { + "type": "SetAttribute", + "attribute": "contraception_care_reason", + "conditional_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 25, + "unit": "years" + }, + "transition": "Young_Contraceptive_Use" + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 35, + "unit": "years" + }, + "transition": "Mid_Contraceptive_Use" + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 50, + "unit": "years" + }, + "transition": "Mature_Contraceptive_Use" + }, + { + "transition": "Terminal" + } + ], + "remarks": [ + "======================================================================", + " FEMALE CONTRACEPTIVE USE ", + "======================================================================", + "Female use of contraceptives is recomputed 3 times in a patient's life, ", + "once for each major reproductive age bracket: ", + "1. Young (teen/20's) contraceptive users, age 14 - 24 ", + "2. Mid-age contraceptive users, age 25 - 34 ", + "3. Mature contraceptive users, age 35+ (limited by menopause at age 50) ", + "Combined with sexual_activity, this yields a full range of contraceptive ", + "users and outcomes, from those who never use contraceptives (and who likely ", + "have several children as a result), to lifetime contraceptive users with ", + "no children.", + "Whenever a woman becomes pregnancy her current contraceptive method is stopped. ", + "After the pregnancy terminates, she is re-routed here to re-up her contraceptive ", + "(or not)." + ], + "value_code": { + "system": "SNOMED-CT", + "code": "389095005", + "display": "Contraception care (regime/therapy)" + } + }, + "Young_Contraceptive_Use": { + "type": "Simple", + "remarks": [ + "======================================================================", + " TEEN/20'S CONTRACEPTIVE USE ", + "======================================================================", + "18% of teens do not use any contraceptive method. The majority use a ", + "short-term solution such as withdrawal, condoms, or the pill. A select ", + "few use an IUD or long-acting contraceptive like an implant. A statistically ", + "insignificant number use sterilization, so it's omitted for this age group. ", + "Source: https://www.guttmacher.org/fact-sheet/contraceptive-use-united-states", + "There is significant overlap between those using a condom and those ", + "using a hormonal method (e.g. pill, patch, ring). The incidence of ", + "condom use below therefore represents those using ONLY a condom." + ], + "distributed_transition": [ + { + "distribution": 0.35, + "transition": "Using_Oral_Contraceptive" + }, + { + "distribution": 0.2, + "transition": "Using_Withdrawal" + }, + { + "distribution": 0.18, + "transition": "Using_No_Contraceptive" + }, + { + "distribution": 0.18, + "transition": "Using_Condom_Only" + }, + { + "distribution": 0.03, + "transition": "Using_Injectable" + }, + { + "distribution": 0.02, + "transition": "Using_Ring" + }, + { + "distribution": 0.02, + "transition": "Using_IUD" + }, + { + "distribution": 0.01, + "transition": "Using_Implant" + }, + { + "distribution": 0.01, + "transition": "Using_Patch" + } + ] + }, + "Mid_Contraceptive_Use": { + "type": "Simple", + "remarks": [ + "======================================================================", + " MID-LIFE CONTRACEPTIVE USE ", + "======================================================================", + "In the 25 - 35 age bracket, more women are intentionally trying to get ", + "pregnant as they start families. For those not trying to become pregnant, ", + "long-acting contraceptives or sterilization are favored. Source: ", + "https://www.cdc.gov/nchs/data/databriefs/db173.pdf" + ], + "distributed_transition": [ + { + "distribution": 0.283, + "transition": "Using_No_Contraceptive" + }, + { + "distribution": 0.169, + "transition": "Using_Oral_Contraceptive" + }, + { + "distribution": 0.146, + "transition": "Using_Sterilization" + }, + { + "distribution": 0.115, + "transition": "Using_Condom_Only" + }, + { + "distribution": 0.099, + "transition": "Using_Withdrawal" + }, + { + "distribution": 0.07, + "transition": "Using_IUD" + }, + { + "distribution": 0.047, + "transition": "Using_Implant" + }, + { + "distribution": 0.045, + "transition": "Using_Injectable" + }, + { + "distribution": 0.016, + "transition": "Using_Ring" + }, + { + "distribution": 0.01, + "transition": "Using_Patch" + } + ] + }, + "Mature_Contraceptive_Use": { + "type": "Simple", + "remarks": [ + "======================================================================", + " MATURE CONTRACEPTIVE USE ", + "======================================================================", + "Most women in this age bracket are done having children and are seeking ", + "a long-term or permanent solution. The highest percentage of sterilization ", + "is in this category. (Again, note that 8% of the sterilization incidence ", + "in this category is male sterilization folded into female)." + ], + "distributed_transition": [ + { + "distribution": 0.39, + "transition": "Using_Sterilization" + }, + { + "distribution": 0.209, + "transition": "Using_Oral_Contraceptive" + }, + { + "distribution": 0.113, + "transition": "Using_Condom_Only" + }, + { + "distribution": 0.052, + "transition": "Using_No_Contraceptive" + }, + { + "distribution": 0.048, + "transition": "Using_Withdrawal" + }, + { + "distribution": 0.07, + "transition": "Using_IUD" + }, + { + "distribution": 0.047, + "transition": "Using_Implant" + }, + { + "distribution": 0.045, + "transition": "Using_Injectable" + }, + { + "distribution": 0.016, + "transition": "Using_Ring" + }, + { + "distribution": 0.01, + "transition": "Using_Patch" + } + ] + }, + "Using_No_Contraceptive": { + "type": "SetAttribute", + "remarks": [ + "======================================================================", + " CONTRACEPTIVE PRESCRIPTIONS ", + "======================================================================", + "These contraceptive prescriptions do not require maintenance. Fire and forget." + ], + "attribute": "contraceptive_type", + "value": "none", + "direct_transition": "Route_To_Guard" + }, + "Using_Withdrawal": { + "type": "SetAttribute", + "attribute": "contraceptive_type", + "value": "withdrawal", + "direct_transition": "Route_To_Guard" + }, + "Using_Condom_Only": { + "type": "SetAttribute", + "attribute": "contraceptive_type", + "value": "condom", + "direct_transition": "Route_To_Guard" + }, + "Using_Oral_Contraceptive": { + "type": "CallSubmodule", + "submodule": "contraceptives/oral_contraceptive", + "direct_transition": "Contraceptive_Prescribed?" + }, + "Using_Sterilization": { + "type": "Simple", + "remarks": [ + "This is the combination male-female sterilization incidence.", + "While only female patients are routed to this state, a portion ", + "are identified as using sterilization as a contraceptive method ", + "even though they are not given the sterilization procedure.", + "The ratio of female:male sterilization is 3:1.", + "NOTE: Only do this if age is at a transition year to avoid resampling after pregnancy.", + " Otherwise, go back to Female_Contraceptive_Use and sample again." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Age", + "operator": "==", + "quantity": 25, + "unit": "years" + }, + { + "condition_type": "Age", + "operator": "==", + "quantity": 35, + "unit": "years" + } + ] + }, + "distributions": [ + { + "distribution": 0.75, + "transition": "Using_Female_Sterilization" + }, + { + "distribution": 0.25, + "transition": "Using_Male_Sterilization" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "Female_Contraceptive_Use" + } + ] + } + ] + }, + "Using_Male_Sterilization": { + "type": "SetAttribute", + "remarks": [ + "No female sterilization procedure is performed in this case." + ], + "attribute": "contraceptive_type", + "value": "sterilization", + "direct_transition": "Route_To_Guard" + }, + "Using_Female_Sterilization": { + "type": "CallSubmodule", + "submodule": "contraceptives/female_sterilization", + "direct_transition": "Terminal" + }, + "Using_Ring": { + "type": "CallSubmodule", + "submodule": "contraceptives/ring_contraceptive", + "direct_transition": "Contraceptive_Prescribed?" + }, + "Using_Patch": { + "type": "CallSubmodule", + "submodule": "contraceptives/patch_contraceptive", + "direct_transition": "Contraceptive_Prescribed?" + }, + "Using_IUD": { + "type": "CallSubmodule", + "remarks": [ + "======================================================================", + " CONTRACEPTIVES REQUIRING MAINTENANCE ", + "======================================================================", + "IUDs, implants, and injectables require periodic maintenance during a ", + "given age bracket. IUDs must be replaced every 5-10 years, implants every ", + "3 years, and injectables every 3 months. Maintenance is handled internally ", + "within the submodules.", + "These submodules are also 'self guarded', meaning they do not need the ", + "regular age guards to ensure the correct timing for the next age bracket ", + "(since they do so internally)." + ], + "submodule": "contraceptives/intrauterine_device", + "direct_transition": "Contraceptive_Prescribed?" + }, + "Using_Implant": { + "type": "CallSubmodule", + "submodule": "contraceptives/implant_contraceptive", + "direct_transition": "Contraceptive_Prescribed?" + }, + "Using_Injectable": { + "type": "CallSubmodule", + "submodule": "contraceptives/injectable_contraceptive", + "direct_transition": "Contraceptive_Prescribed?" + }, + "Contraceptive_Prescribed?": { + "type": "Simple", + "remarks": [ + "If a contraceptive wasn't prescribed by the submodule (for example, because ", + "none was available for the current year of the simulation) both contraceptive ", + "attributes will be nill. ", + "Since no contraceptive was prescribed, default to the historically avaialable ", + "set of contraceptives." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "contraceptive", + "operator": "is nil" + }, + { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "is nil" + } + ] + }, + "transition": "Historical_Contraceptive_Use" + }, + { + "transition": "Route_To_Guard" + } + ] + }, + "Historical_Contraceptive_Use": { + "type": "Simple", + "remarks": [ + "These were available methods prior to the 1960's." + ], + "distributed_transition": [ + { + "distribution": 0.2, + "transition": "Using_No_Contraceptive" + }, + { + "distribution": 0.4, + "transition": "Using_Withdrawal" + }, + { + "distribution": 0.4, + "transition": "Using_Condom_Only" + } + ] + }, + "Route_To_Guard": { + "exact": { + "quantity": 12, + "unit": "months" + }, + "type": "Delay", + "direct_transition": "Reset_Contraceptive_Use", + "remarks": [ + "Using an annual delay causes resampling of contraception more frequently", + "and distributes the babies more evenly across the female population" + ] + }, + "Reset_Contraceptive_Use": { + "type": "CallSubmodule", + "remarks": [ + "Prior to setting a new contraceptive, the previous contraceptive ", + "method is cleared." + ], + "submodule": "contraceptives/clear_contraceptive", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + "transition": "Pregnant_Guard" + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 50, + "unit": "years" + }, + "transition": "Menopause_Reached" + }, + { + "transition": "Female_Contraceptive_Use" + } + ] + }, + "Pregnant_Guard": { + "type": "Guard", + "remarks": [ + "Once a female is no longer pregnant, she will re-select a contraceptive type." + ], + "allow": { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": false + }, + "direct_transition": "Female_Contraceptive_Use" + }, + "Menopause_Reached": { + "type": "Simple", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/contraceptives/clear_contraceptive.json b/src/main/resources/modules/contraceptives/clear_contraceptive.json new file mode 100644 index 0000000..9f47bdb --- /dev/null +++ b/src/main/resources/modules/contraceptives/clear_contraceptive.json @@ -0,0 +1,53 @@ +{ + "name": "Clear Contraceptive", + "remarks": [ + "This submodule ends any active contraceptive medication assigned to the ", + "'contraceptive' attribute and clears the 'contraceptive_type' attribute ", + "for reassignment." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Clear_Contraceptive_Med" + }, + "Clear_Contraceptive_Med": { + "type": "Simple", + "remarks": [ + "If the 'contraceptive' attribute is currently set, the medication it ", + "references will be active." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "contraceptive", + "operator": "is not nil" + }, + "transition": "End_Contraceptive_Med" + }, + { + "transition": "Clear_Contraceptive_Type" + } + ] + }, + "End_Contraceptive_Med": { + "type": "MedicationEnd", + "referenced_by_attribute": "contraceptive", + "direct_transition": "Clear_Contraceptive" + }, + "Clear_Contraceptive": { + "type": "SetAttribute", + "attribute": "contraceptive", + "direct_transition": "Clear_Contraceptive_Type" + }, + "Clear_Contraceptive_Type": { + "type": "SetAttribute", + "attribute": "contraceptive_type", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/contraceptives/female_sterilization.json b/src/main/resources/modules/contraceptives/female_sterilization.json new file mode 100644 index 0000000..9e59ed0 --- /dev/null +++ b/src/main/resources/modules/contraceptives/female_sterilization.json @@ -0,0 +1,194 @@ +{ + "name": "Female Sterilization", + "remarks": [ + "This submodule performs a female sterilization procedure. This procedure ", + "is not reversible." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Set_Contraceptive_Type" + }, + "Set_Contraceptive_Type": { + "type": "SetAttribute", + "attribute": "contraceptive_type", + "value": "sterilization", + "direct_transition": "Sterilization Requested" + }, + "Consultation_Encounter": { + "type": "Encounter", + "encounter_class": "outpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698314001", + "display": "Consultation for treatment (procedure)" + } + ], + "direct_transition": "Consultation", + "reason": "Sterilization Requested" + }, + "End_Consultation": { + "type": "EncounterEnd", + "direct_transition": "Delay_For_Procedure" + }, + "Delay_For_Procedure": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "weeks" + }, + "direct_transition": "Tubal_Ligation_Surgery_Encounter" + }, + "Tubal_Ligation_Surgery_Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305408004", + "display": "Admission to surgical department (procedure)" + } + ], + "direct_transition": "Tubal_Ligation_Procedure", + "reason": "Sterilization Requested" + }, + "Tubal_Ligation_Procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "287664005", + "display": "Ligation of bilateral fallopian tubes (procedure)" + } + ], + "duration": { + "low": 2, + "high": 3, + "unit": "hours" + }, + "direct_transition": "Sterilization Complete", + "reason": "Sterilization Requested" + }, + "Become_Infertile": { + "type": "SetAttribute", + "attribute": "infertile", + "value": true, + "direct_transition": "Post_Surgery_Care" + }, + "Post_Surgery_Care": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "737471002", + "display": "Minor surgery care management (procedure)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "183051005", + "display": "Recommendation to rest (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "243077000", + "display": "Recommendation to limit sexual activity (procedure)" + } + ], + "direct_transition": "Postoperative Care", + "reason": "History_of_Tubal_Ligation" + }, + "End_Surgery_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Recovery_Period" + }, + "Recovery_Period": { + "type": "Delay", + "range": { + "low": 2, + "high": 3, + "unit": "weeks" + }, + "direct_transition": "End_Post_Surgery_Care" + }, + "End_Post_Surgery_Care": { + "type": "CarePlanEnd", + "careplan": "Post_Surgery_Care", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + }, + "Consultation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "268533009", + "display": "Sterilization education (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 45 + } + }, + "unit": "minutes", + "direct_transition": "End_Consultation" + }, + "Postoperative Care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "133899007", + "display": "Postoperative care (regime/therapy)" + } + ], + "distribution": { + "kind": "EXPONENTIAL", + "parameters": { + "mean": 5 + } + }, + "unit": "hours", + "direct_transition": "End_Surgery_Encounter", + "reason": "History_of_Tubal_Ligation" + }, + "History_of_Tubal_Ligation": { + "type": "ConditionOnset", + "target_encounter": "Tubal_Ligation_Surgery_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "267020005", + "display": "History of tubal ligation (situation)" + } + ], + "direct_transition": "Become_Infertile" + }, + "Sterilization Requested": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183996000", + "display": "Sterilization requested (situation)" + } + ], + "direct_transition": "Consultation_Encounter", + "target_encounter": "Consultation_Encounter" + }, + "Sterilization Complete": { + "type": "ConditionEnd", + "direct_transition": "History_of_Tubal_Ligation", + "condition_onset": "Sterilization Requested" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/contraceptives/implant_contraceptive.json b/src/main/resources/modules/contraceptives/implant_contraceptive.json new file mode 100644 index 0000000..1b1b05d --- /dev/null +++ b/src/main/resources/modules/contraceptives/implant_contraceptive.json @@ -0,0 +1,205 @@ +{ + "name": "Implant Contraceptive", + "remarks": [ + "This submodule prescribes a long-acting, implanted contraceptive if one is ", + "available for the current year of the simulation. The first implanted ", + "contraceptive was available in 1990, marketed as Norplant. Norplant was ", + "discontinued in 2002 in favor of newer alternatives, but implants remain ", + "available today.", + "Implants must be readministered once every 3-4 years. The Contraceptive ", + "Maintenance module handles that.", + "Sources for historical availability: ", + "http://www.ourbodiesourselves.org/health-info/a-brief-history-of-birth-control/", + "http://www.pbs.org/wnet/need-to-know/health/a-brief-history-of-the-birth-control-pill/480/" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "Males, pregnant females, and those arriving here before the year 1991 ", + "do not get implant contraceptives." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "transition": "Terminal" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + "transition": "Terminal" + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1991 + }, + "transition": "Terminal" + }, + { + "transition": "Set_Contraceptive_Type" + } + ] + }, + "Set_Contraceptive_Type": { + "type": "SetAttribute", + "attribute": "contraceptive_type", + "value": "implant", + "direct_transition": "Implant_Contraceptive_Encounter" + }, + "Implant_Contraceptive_Encounter": { + "type": "Encounter", + "remarks": [ + "======================================================================", + " NEW IMPLANT PRESCRIPTION ", + "======================================================================" + ], + "encounter_class": "outpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698314001", + "display": "Consultation for treatment (procedure)" + } + ], + "direct_transition": "Prescribe_Implant_Contraceptive", + "reason": "contraception_care_reason" + }, + "Prescribe_Implant_Contraceptive": { + "type": "Simple", + "remarks": [ + "Norplant was available in January 1991. The original production ended ", + "in 2002, with supplies available until 2004-ish. Implanon became available ", + "in 2006 and an improvement, Nexplanon, in 2011. Implanon was taken off the ", + "market in 2012, so Nexplanon remains the only currently available implant ", + "in the United States.", + "While not *technically* historically accurate, the use of Norplant is stretched ", + "until 2006 to maintain continuity." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2006 + }, + "distributions": [ + { + "distribution": 1, + "transition": "Prescribe_Norplant" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2011 + }, + "distributions": [ + { + "distribution": 1, + "transition": "Prescribe_Implanon" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2012 + }, + "distributions": [ + { + "distribution": 0.8, + "transition": "Prescribe_Nexplanon" + }, + { + "distribution": 0.8, + "transition": "Prescribe_Implanon" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "Prescribe_Nexplanon" + } + ] + } + ] + }, + "Prescribe_Norplant": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "1366343", + "display": "Levonorgestrel 0.00354 MG/HR Drug Implant" + } + ], + "direct_transition": "Initial_Implant", + "administration": true + }, + "Prescribe_Implanon": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "389221", + "display": "Etonogestrel 68 MG Drug Implant" + } + ], + "direct_transition": "Initial_Implant", + "administration": true + }, + "Prescribe_Nexplanon": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "389221", + "display": "Etonogestrel 68 MG Drug Implant" + } + ], + "direct_transition": "Initial_Implant", + "administration": true + }, + "Initial_Implant": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "169553002", + "display": "Insertion of subcutaneous contraceptive (procedure)" + } + ], + "duration": { + "low": 20, + "high": 40, + "unit": "minutes" + }, + "direct_transition": "End_Initial_Encounter" + }, + "End_Initial_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/contraceptives/injectable_contraceptive.json b/src/main/resources/modules/contraceptives/injectable_contraceptive.json new file mode 100644 index 0000000..8e0eceb --- /dev/null +++ b/src/main/resources/modules/contraceptives/injectable_contraceptive.json @@ -0,0 +1,161 @@ +{ + "name": "Injectable Contraceptive", + "remarks": [ + "This submodule prescribes a long-acting, injectable contraceptive if one is ", + "available for the current year of the simulation. The first injectable ", + "contraceptive was available in 1992, marketed as Depo-Provera. Depo remains ", + "the only available injectable option in the U.S.", + "Injectables must be readministered once every 3 months. The Contraceptive ", + "Maintenance module handles that.", + "Sources for historical availability: ", + "http://www.ourbodiesourselves.org/health-info/a-brief-history-of-birth-control/", + "http://www.pbs.org/wnet/need-to-know/health/a-brief-history-of-the-birth-control-pill/480/" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "Males, pregnant females, and those arriving here before the year 1992 ", + "do not get injectable contraceptives." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "transition": "Terminal" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + "transition": "Terminal" + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1992 + }, + "transition": "Terminal" + }, + { + "transition": "Set_Contraceptive_Type" + } + ] + }, + "Set_Contraceptive_Type": { + "type": "SetAttribute", + "attribute": "contraceptive_type", + "value": "injectable", + "direct_transition": "Injectable_Contraceptive_Encounter" + }, + "Injectable_Contraceptive_Encounter": { + "type": "Encounter", + "remarks": [ + "======================================================================", + " NEW PRESCRIPTION ", + "======================================================================" + ], + "encounter_class": "outpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698314001", + "display": "Consultation for treatment (procedure)" + } + ], + "direct_transition": "Prescribe_Injectable_Contraceptive", + "reason": "contraception_care_reason" + }, + "Prescribe_Injectable_Contraceptive": { + "type": "Simple", + "remarks": [ + "Depo-Provera (150 mg/mL MPA) became available in 1992. A lower-dose, ", + "subcutaneous version became available in Dec. 2004 as Depo-SubQ Provera ", + "(104 mg/0.65 mL MPA)." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2005 + }, + "distributions": [ + { + "distribution": 1, + "transition": "Prescribe_Depo_Provera" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.7, + "transition": "Prescribe_Depo_Provera" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Depo_SubQ" + } + ] + } + ] + }, + "Prescribe_Depo_Provera": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "1000126", + "display": "1 ML medroxyprogesterone acetate 150 MG/ML Injection" + } + ], + "direct_transition": "Initial_Injection_By_Physician", + "administration": true + }, + "Prescribe_Depo_SubQ": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "1000126", + "display": "1 ML medroxyPROGESTERone acetate 150 MG/ML Injection" + } + ], + "direct_transition": "Initial_Injection_By_Physician", + "administration": true + }, + "Initial_Injection_By_Physician": { + "type": "Procedure", + "duration": { + "low": 10, + "high": 20, + "unit": "minutes" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "76601001", + "display": "Intramuscular injection (procedure)" + } + ], + "direct_transition": "End_Consultation_Encounter" + }, + "End_Consultation_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/contraceptives/intrauterine_device.json b/src/main/resources/modules/contraceptives/intrauterine_device.json new file mode 100644 index 0000000..b7a75a2 --- /dev/null +++ b/src/main/resources/modules/contraceptives/intrauterine_device.json @@ -0,0 +1,337 @@ +{ + "name": "Intrauterine Device", + "remarks": [ + "This submodule prescribes an intrauterine device (IUD) for contraception.", + "FDA approval of IUDs in the U.S. was in 1968. Early designs were flexible ", + "thermoplastic. Copper IUDs were introduced in the 1970's. One IUD in particular ", + "was problematic - the Dalkon Shield caused infections in 200k women and 10 ", + "deaths. It was discontinued in 1974. This caused widespread abandonment and ", + "distrust of IUDs in the 1980's.", + "Modern IUDs are again becoming popular. They are copper or combine low-dose ", + "hormones with plastic.", + "IUDs must be removed or replaced every 5-10 years. This is handled by the ", + "Contraceptive Maintenance module.", + "Sources for availability: ", + "https://www.wired.com/2011/07/ff_iud/", + "http://kff.org/womens-health-policy/fact-sheet/intrauterine-devices-iuds-access-for-women-in-the-u-s/" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "Males, pregnant females, and those arriving here before the year 1968 ", + "do not get IUDs." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "transition": "Terminal" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + "transition": "Terminal" + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1968 + }, + "transition": "Terminal" + }, + { + "transition": "Set_Contraceptive_Type" + } + ] + }, + "Set_Contraceptive_Type": { + "type": "SetAttribute", + "attribute": "contraceptive_type", + "value": "iud", + "direct_transition": "IUD_Consultation_Encounter" + }, + "IUD_Consultation_Encounter": { + "type": "Encounter", + "remarks": [ + "======================================================================", + " NEW PRESCRIPTION ", + "======================================================================" + ], + "encounter_class": "outpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698314001", + "display": "Consultation for treatment (procedure)" + } + ], + "direct_transition": "Prescribe_IUD", + "reason": "contraception_care_reason" + }, + "Prescribe_IUD": { + "type": "Simple", + "remarks": [ + "Unfortunately, RxNorm codes are not available for: ", + "Lippes Lopp, Safe-T-Coil, Copper 7, Dalkon Shield, or Paragard ", + "However, the contraceptive_type attribute remains set and the ", + "incidence of pregnancy will reflect that the woman is using an IUD." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1971 + }, + "distributions": [ + { + "distribution": 0.5, + "transition": "Prescribe_Lippes_Loop" + }, + { + "distribution": 0.5, + "transition": "Prescribe_Safe_T_Coil" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1975 + }, + "distributions": [ + { + "distribution": 0.34, + "transition": "Prescribe_Lippes_Loop" + }, + { + "distribution": 0.33, + "transition": "Prescribe_Safe_T_Coil" + }, + { + "distribution": 0.33, + "transition": "Prescribe_Dalkon_Shield" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1986 + }, + "distributions": [ + { + "distribution": 0.3, + "transition": "Prescribe_Lippes_Loop" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Safe_T_Coil" + }, + { + "distribution": 0.4, + "transition": "Prescribe_Copper_7" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2001 + }, + "remarks": [ + "Because of the Dalkon Shield scare, all IUDs but one (Paragard) ", + "were taken off the market by 1986." + ], + "distributions": [ + { + "distribution": 1, + "transition": "Prescribe_Paragard" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2015 + }, + "distributions": [ + { + "distribution": 0.4, + "transition": "Prescribe_Paragard" + }, + { + "distribution": 0.6, + "transition": "Prescribe_Mirena" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2016 + }, + "remarks": [ + "Hormonal, plastic IUDs were introduced in 2001." + ], + "distributions": [ + { + "distribution": 0.3, + "transition": "Prescribe_Paragard" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Mirena" + }, + { + "distribution": 0.4, + "transition": "Prescribe_Liletta" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.25, + "transition": "Prescribe_Paragard" + }, + { + "distribution": 0.25, + "transition": "Prescribe_Mirena" + }, + { + "distribution": 0.25, + "transition": "Prescribe_Liletta" + }, + { + "distribution": 0.25, + "transition": "Prescribe_Kyleena" + } + ] + } + ] + }, + "Prescribe_Lippes_Loop": { + "type": "Simple", + "direct_transition": "End_Consultation_Encounter" + }, + "Prescribe_Safe_T_Coil": { + "type": "Simple", + "direct_transition": "End_Consultation_Encounter" + }, + "Prescribe_Dalkon_Shield": { + "type": "Simple", + "direct_transition": "End_Consultation_Encounter" + }, + "Prescribe_Copper_7": { + "type": "Simple", + "direct_transition": "End_Consultation_Encounter" + }, + "Prescribe_Paragard": { + "type": "Simple", + "direct_transition": "End_Consultation_Encounter" + }, + "Prescribe_Mirena": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "807283", + "display": "Mirena 52 MG Intrauterine System" + } + ], + "direct_transition": "End_Consultation_Encounter", + "administration": true + }, + "Prescribe_Liletta": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "1605257", + "display": "Liletta 52 MG Intrauterine System" + } + ], + "direct_transition": "End_Consultation_Encounter", + "administration": true + }, + "Prescribe_Kyleena": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "1856546", + "display": "Kyleena 19.5 MG Intrauterine System" + } + ], + "direct_transition": "End_Consultation_Encounter", + "administration": true + }, + "End_Consultation_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Delay_For_IUD_Insertion" + }, + "Delay_For_IUD_Insertion": { + "type": "Delay", + "range": { + "low": 2, + "high": 5, + "unit": "days" + }, + "direct_transition": "Initial_IUD_Insertion_Encounter" + }, + "Initial_IUD_Insertion_Encounter": { + "type": "Encounter", + "encounter_class": "outpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308335008", + "display": "Patient encounter procedure (procedure)" + } + ], + "direct_transition": "IUD_Insertion", + "reason": "contraception_care_reason" + }, + "IUD_Insertion": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65200003", + "display": "Insertion of intrauterine contraceptive device (procedure)" + } + ], + "duration": { + "low": 40, + "high": 70, + "unit": "minutes" + }, + "direct_transition": "End_IUD_Insertion_Encounter" + }, + "End_IUD_Insertion_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/contraceptives/male_sterilization.json b/src/main/resources/modules/contraceptives/male_sterilization.json new file mode 100644 index 0000000..9fcd404 --- /dev/null +++ b/src/main/resources/modules/contraceptives/male_sterilization.json @@ -0,0 +1,140 @@ +{ + "name": "Male Sterilization", + "remarks": [ + "This submodule performs a male sterilization (vasectomy) procedure." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Sterilization_Requested" + }, + "Consultation_Encounter": { + "type": "Encounter", + "encounter_class": "outpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698314001", + "display": "Consultation for treatment (procedure)" + } + ], + "direct_transition": "End_Consultation", + "reason": "Sterilization_Requested" + }, + "End_Consultation": { + "type": "EncounterEnd", + "direct_transition": "Delay_For_Procedure" + }, + "Delay_For_Procedure": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "weeks" + }, + "direct_transition": "Vasectomy_Encounter" + }, + "Vasectomy_Encounter": { + "type": "Encounter", + "encounter_class": "outpatient", + "remarks": [ + "Male vasectomies are typically performed right in the doctor's office. ", + "Unlike female sterilization, male sterilization is a relatively simple ", + "procedure." + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "308335008", + "display": "Patient encounter procedure (procedure)" + } + ], + "direct_transition": "Vasectomy", + "reason": "Sterilization_Requested" + }, + "Vasectomy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "22523008", + "display": "Vasectomy (procedure)" + } + ], + "duration": { + "low": 1, + "high": 2, + "unit": "hours" + }, + "direct_transition": "Become_Infertile" + }, + "Become_Infertile": { + "type": "SetAttribute", + "attribute": "infertile", + "value": true, + "direct_transition": "Post_Procedure_Care" + }, + "Post_Procedure_Care": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "737471002", + "display": "Minor surgery care management (procedure)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "183051005", + "display": "Recommendation to rest (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "243077000", + "display": "Recommendation to limit sexual activity (procedure)" + } + ], + "direct_transition": "End_Sterilization_Requested" + }, + "End_Vasectomy_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Delay_For_Recovery" + }, + "Delay_For_Recovery": { + "type": "Delay", + "range": { + "low": 1, + "high": 2, + "unit": "weeks" + }, + "direct_transition": "End_Vasectomy_Care" + }, + "End_Vasectomy_Care": { + "type": "CarePlanEnd", + "careplan": "Post_Procedure_Care", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + }, + "Sterilization_Requested": { + "type": "ConditionOnset", + "target_encounter": "Consultation_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183996000", + "display": "Sterilization requested (situation)" + } + ], + "direct_transition": "Consultation_Encounter" + }, + "End_Sterilization_Requested": { + "type": "ConditionEnd", + "direct_transition": "End_Vasectomy_Encounter", + "condition_onset": "Sterilization_Requested" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/contraceptives/oral_contraceptive.json b/src/main/resources/modules/contraceptives/oral_contraceptive.json new file mode 100644 index 0000000..2d2f61e --- /dev/null +++ b/src/main/resources/modules/contraceptives/oral_contraceptive.json @@ -0,0 +1,511 @@ +{ + "name": "Oral Contraceptive", + "remarks": [ + "This module prescribes an oral, hormonal contraceptive if one is available ", + "for the current year of the simulation. There are 2 classes of oral contraceptives: ", + "1. Combination (estrogen, progestin), either monophasic and triphasic ", + "2. Minipill (progestin-only)", + "Combination pills may be either monophasic (same dosage, all month long) or triphasic ", + "(dosage increases progressively throughout the month). Potential side-effects of oral ", + "contraceptives include nausea, breast tenderness, mood swings, headaches, weight gain, ", + "spotting, and decreased libido. None of these side-effects are currently modeled.", + "Smoking, especially over the age of 35, significantly increases the risk of: ", + "1. Blood clots (1.6x with minipill, 2x with estrogen) ", + "2. Myocardial Infarction (1.6x) ", + "3. Ischemic Stroke (1.7x) ", + "Source: https://www.ncbi.nlm.nih.gov/pubmedhealth/PMH0079002/", + "No changes were made to the cardiovascular disease module.", + "Minipill (progestin-only) contraceptives are safe for smokers, those at risk of ", + "heart disease, and new mothers who are breastfeeding. They carry a slightly elevated ", + "risk of ectopic pregnancy, are less effective than combination pills (91 - 99% effective), ", + "and must be taken very consistently to be effective. Source: ", + "http://www.feministcenter.org/en/health-wellness-services/comprehensive-gyn/birth-control-options/birth-control-information/101-mini-pills", + "The majority of women taking oral contraceptives take the combination pill.", + "Sources for historical availability: ", + "http://www.ourbodiesourselves.org/health-info/a-brief-history-of-birth-control/", + "http://www.pbs.org/wnet/need-to-know/health/a-brief-history-of-the-birth-control-pill/480/" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "Males, pregnant females, and those arriving here before the year 1960 ", + "do not get oral contraceptives." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "transition": "Terminal" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + "transition": "Terminal" + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1960 + }, + "transition": "Terminal" + }, + { + "transition": "Set_Contraceptive_Type" + } + ] + }, + "Set_Contraceptive_Type": { + "type": "SetAttribute", + "attribute": "contraceptive_type", + "value": "pill", + "direct_transition": "Encounter_For_Oral_Contraceptive" + }, + "Encounter_For_Oral_Contraceptive": { + "type": "Encounter", + "encounter_class": "outpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698314001", + "display": "Consultation for treatment (procedure)" + } + ], + "direct_transition": "Combination_Or_Minipill", + "reason": "contraception_care_reason" + }, + "Combination_Or_Minipill": { + "type": "Simple", + "remarks": [ + "If the patient has a high BMI (>30), was recently pregnant (w/in 6 months), smokes, ", + "or has high blood pressure (systolic > 130) the minipill is prescribed. Otherwise, a ", + "combination pill is prescribed.", + "TODO: Check if the patient was recently pregnant. We need a 'Prior Condition', or ", + "'Prior Event' condition to check for this. If the mother is breastfeeding, the ", + "combination pill should not be used." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "==", + "value": true + }, + { + "condition_type": "Vital Sign", + "vital_sign": "BMI", + "operator": ">", + "value": 30 + }, + { + "condition_type": "Vital Sign", + "vital_sign": "Systolic Blood Pressure", + "operator": ">", + "value": 130 + } + ] + }, + "transition": "Prescribe_Minipill" + }, + { + "transition": "Prescribe_Combination_Pill" + } + ] + }, + "Prescribe_Minipill": { + "type": "Simple", + "remarks": [ + "======================================================================", + " MINIPILL ", + "======================================================================", + "What type of pill is prescribed (if any) depends on the current year ", + "of the simulation." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2002 + }, + "remarks": [ + "If before 2002, the patient instead gets prescribed a combination pill.", + "This will have averse affects on that patient's health if they meet one ", + "of the conditions above." + ], + "distributions": [ + { + "distribution": 1, + "transition": "Prescribe_Combination_Pill" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2003 + }, + "distributions": [ + { + "distribution": 1, + "transition": "Prescribe_Camila" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.3, + "transition": "Prescribe_Camila" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Errin" + }, + { + "distribution": 0.4, + "transition": "Prescribe_Jolivette" + } + ] + } + ] + }, + "Prescribe_Camila": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "748962", + "display": "Camila 28 Day Pack" + } + ], + "direct_transition": "End_Encounter" + }, + "Prescribe_Errin": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "831533", + "display": "Errin 28 Day Pack" + } + ], + "direct_transition": "End_Encounter" + }, + "Prescribe_Jolivette": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "757594", + "display": "Jolivette 28 Day Pack" + } + ], + "direct_transition": "End_Encounter" + }, + "Prescribe_Combination_Pill": { + "type": "Simple", + "remarks": [ + "======================================================================", + " COMBINATION PILL ", + "======================================================================", + "What type of pill is prescribed (if any) depends on the current year ", + "of the simulation." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1974 + }, + "remarks": [ + "Enovid got FDA approval in May, 1960 for contraceptive use.", + "10mg mestranol/noretynodrel, high-dose hormone pill." + ], + "distributions": [ + { + "distribution": 1, + "transition": "Prescribe_Enovid" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1988 + }, + "remarks": [ + "Use of the high dose 10mg mestranol/noretynodrel (Enovid) steadily grew. ", + "The first documented case of blood clots (likely in a smoker), were in ", + "1961. Norinyl (norethindrone-ethinyl estradiol) was introduced in 1974." + ], + "distributions": [ + { + "distribution": 0.5, + "transition": "Prescribe_Enovid" + }, + { + "distribution": 0.5, + "transition": "Prescribe_Norinyl" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1989 + }, + "remarks": [ + "Enovid was taken off the market in 1988 in favor of low-dose alternatives." + ], + "distributions": [ + { + "distribution": 1, + "transition": "Prescribe_Norinyl" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1998 + }, + "remarks": [ + "Ortho-Tri Cyclen was introduced in 1989." + ], + "distributions": [ + { + "distribution": 0.4, + "transition": "Prescribe_Norinyl" + }, + { + "distribution": 0.6, + "transition": "Prescribe_Ortho_Tri_Cyclen" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2003 + }, + "remarks": [ + "Estrostep introduced in 1997, Ortho-Novum 1998 (same composition as Norinyl)." + ], + "distributions": [ + { + "distribution": 0.3, + "transition": "Prescribe_Norinyl" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Ortho_Tri_Cyclen" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Estrostep" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2010 + }, + "remarks": [ + "Trinessa and Seasonique (2003), Yaz (2006)." + ], + "distributions": [ + { + "distribution": 0.2, + "transition": "Prescribe_Ortho_Tri_Cyclen" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Estrostep" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Trinessa" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Seasonique" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Yaz" + } + ] + }, + { + "remarks": [ + "Natazia (2010), Levora (2016)." + ], + "distributions": [ + { + "distribution": 0.2, + "transition": "Prescribe_Trinessa" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Seasonique" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Yaz" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Natazia" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Levora" + } + ] + } + ] + }, + "Prescribe_Enovid": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "235389", + "display": "Mestranol / Norethynodrel" + } + ], + "direct_transition": "End_Encounter" + }, + "Prescribe_Norinyl": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "749882", + "display": "Norinyl 1+50 28 Day Pack" + } + ], + "direct_transition": "End_Encounter" + }, + "Prescribe_Estrostep": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "1359133", + "display": "Estrostep Fe 28 Day Pack" + } + ], + "direct_transition": "End_Encounter" + }, + "Prescribe_Ortho_Tri_Cyclen": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "749785", + "display": "Ortho Tri-Cyclen 28 Day Pack" + } + ], + "direct_transition": "End_Encounter" + }, + "Prescribe_Trinessa": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "751905", + "display": "Trinessa 28 Day Pack" + } + ], + "direct_transition": "End_Encounter" + }, + "Prescribe_Seasonique": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "remarks": [ + "These are long-term, low-dose hormones that cause only 4 menstruations per year." + ], + "codes": [ + { + "system": "RxNorm", + "code": "749762", + "display": "Seasonique 91 Day Pack" + } + ], + "direct_transition": "End_Encounter" + }, + "Prescribe_Yaz": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "748856", + "display": "Yaz 28 Day Pack" + } + ], + "direct_transition": "End_Encounter" + }, + "Prescribe_Natazia": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "978950", + "display": "Natazia 28 Day Pack" + } + ], + "direct_transition": "End_Encounter" + }, + "Prescribe_Levora": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "748879", + "display": "Levora 0.15/30 28 Day Pack" + } + ], + "direct_transition": "End_Encounter" + }, + "End_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/contraceptives/patch_contraceptive.json b/src/main/resources/modules/contraceptives/patch_contraceptive.json new file mode 100644 index 0000000..5047d4d --- /dev/null +++ b/src/main/resources/modules/contraceptives/patch_contraceptive.json @@ -0,0 +1,87 @@ +{ + "name": "Patch Contraceptive", + "remarks": [ + "This module prescribes a hormonal patch if one is available ", + "for the current year of the simulation.", + "Sources for historical availability: ", + "http://www.ourbodiesourselves.org/health-info/a-brief-history-of-birth-control/", + "http://www.pbs.org/wnet/need-to-know/health/a-brief-history-of-the-birth-control-pill/480/" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "Males, pregnant females, and those arriving here before the year 2002 ", + "do not get patch contraceptives." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "transition": "Terminal" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + "transition": "Terminal" + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2002 + }, + "transition": "Terminal" + }, + { + "transition": "Set_Contraceptive_Type" + } + ] + }, + "Set_Contraceptive_Type": { + "type": "SetAttribute", + "attribute": "contraceptive_type", + "value": "patch", + "direct_transition": "Patch_Contraceptive_Consultation" + }, + "Patch_Contraceptive_Consultation": { + "type": "Encounter", + "encounter_class": "outpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698314001", + "display": "Consultation for treatment (procedure)" + } + ], + "direct_transition": "Prescribe_Xulane", + "reason": "contraception_care_reason" + }, + "Prescribe_Xulane": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "1534809", + "display": "168 HR Ethinyl Estradiol 0.00146 MG/HR / norelgestromin 0.00625 MG/HR Transdermal System" + } + ], + "direct_transition": "End_Consultation_Encounter" + }, + "End_Consultation_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/contraceptives/ring_contraceptive.json b/src/main/resources/modules/contraceptives/ring_contraceptive.json new file mode 100644 index 0000000..7c4d557 --- /dev/null +++ b/src/main/resources/modules/contraceptives/ring_contraceptive.json @@ -0,0 +1,86 @@ +{ + "name": "Vaginal Ring Contraceptive", + "remarks": [ + "This submodule prescribes a hormonal contraceptive ring if one ", + "is available for the current year of the simulation. The ring is ", + "inserted into the vagina and may be removed at will, or for short ", + "periods of time during sexual intercourse." + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "Males, pregnant females, and those arriving here before the year 2001 ", + "do not get ring contraceptives." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "transition": "Terminal" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + "transition": "Terminal" + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2001 + }, + "transition": "Terminal" + }, + { + "transition": "Set_Contraceptive_Type" + } + ] + }, + "Set_Contraceptive_Type": { + "type": "SetAttribute", + "attribute": "contraceptive_type", + "value": "ring", + "direct_transition": "Ring_Contraceptive_Consultation" + }, + "Ring_Contraceptive_Consultation": { + "type": "Encounter", + "encounter_class": "outpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698314001", + "display": "Consultation for treatment (procedure)" + } + ], + "direct_transition": "Prescribe_Nuvaring", + "reason": "contraception_care_reason" + }, + "Prescribe_Nuvaring": { + "type": "MedicationOrder", + "assign_to_attribute": "contraceptive", + "codes": [ + { + "system": "RxNorm", + "code": "1367439", + "display": "NuvaRing 0.12/0.015 MG per 24HR 21 Day Vaginal System" + } + ], + "direct_transition": "End_Consultation_Encounter" + }, + "End_Consultation_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/copd.json b/src/main/resources/modules/copd.json new file mode 100644 index 0000000..aa1d4a5 --- /dev/null +++ b/src/main/resources/modules/copd.json @@ -0,0 +1,1264 @@ +{ + "name": "COPD", + "remarks": [ + "COPD stands for Chronic Obstructive Pulmonary Disease", + "COPD is a blanket term for 2 types of lung diseases: ", + "Chronic Bronchitis (inflammation of bronchi) and Emphysema (damage to alveoli)", + "2011 prevalence stats: http://www.cdc.gov/mmwr/preview/mmwrhtml/mm6146a2.htm?s_cid=mm6146a2_w", + "Some #s that stand out: MA overall % = 5.4%,", + "By age (US overall) 18-44 = 3.2%, 45-54 = 6.6%, 55-64 = 9.2%, 65-74 = 12.1%, 75+ = 11.6%", + "By education (US) some HS or less = 9.5%, HS = 6.8%, some college or more = 4.6%", + "By income (US) <25k = 9.9%, <50k = 5.7%, <75k = 4.2%, >75k = 2.8%", + "By whether they ever had asthma: Yes = 20.3%, No = 3.8%", + "The National Health Interview Survey reports the prevalence of emphysema", + "at 18 cases per 1000 persons and chronic bronchitis at 34 cases per 1000 persons", + "The term COPD was first used in the 1960s https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2706597/ ", + "the terms bronchitis and emphysema have been around longer", + "Oxygen Concentrators: \"States also varied significantly in the number of oxygen concentrators prescribed, ranging from 0.51% to 8.20% of the local Medicare population.\" -- doi:10.1001/jamanetworkopen.2021.29967", + "DME based on analysis of 898K oxygen-related claim lines." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "==", + "value": true + }, + "transition": "Potential_COPD_Smoker" + }, + { + "transition": "Potential_COPD_Nonsmoker" + } + ] + }, + "Potential_COPD_Nonsmoker": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "years" + }, + "remarks": [ + "the key cause of both variants of COPD is smoking; prevalence of COPD among nonsmokers is not well-defined", + "per https://www.ncbi.nlm.nih.gov/pubmed/22498109 we use 3.5% prevalence (lifetime) among non-smokers", + "assuming a 60 yr lifespan (starting at age 18), we take the yearly incidence to be .05% split between emphysema and bronchitis" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "==", + "value": true + }, + "transition": "Potential_COPD_Smoker" + }, + { + "distributions": [ + { + "distribution": 0.0003, + "transition": "Emphysema" + }, + { + "distribution": 0.0002, + "transition": "Chronic_Bronchitis" + }, + { + "distribution": 0.9995, + "transition": "Potential_COPD_Nonsmoker" + } + ] + } + ] + }, + "Potential_COPD_Smoker": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "years" + }, + "remarks": [ + "the key cause of both variants of COPD is smoking. ", + "15-20% of 1pack/day smokers develop COPD, 25% of 2 pack/day", + "http://emedicine.medscape.com/article/298283-overview", + "we assume that roughly 20% of smokers will get COPD in their lifetime", + "we break this down further by Socioeconomic status" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Socioeconomic Status", + "category": "Low" + }, + "distributions": [ + { + "distribution": 0.008, + "transition": "Emphysema" + }, + { + "distribution": 0.004, + "transition": "Chronic_Bronchitis" + }, + { + "distribution": 0.987, + "transition": "Potential_COPD_Smoker" + } + ], + "remarks": [ + "people of low SES are the most likely to get COPD", + "by education or income, ~10% of all people of low SES get COPD", + "this is ~2x the rate of the general population, so we assume that ~40% of low SES smokers will get COPD", + "assuming a reduced 40 yr lifespan (starting at age 18), we take the yearly incidence to be 1.2%", + "leaning toward emphysema because emphysema can be worsened by poor air quality (occupational hazards)" + ] + }, + { + "condition": { + "condition_type": "Socioeconomic Status", + "category": "Middle" + }, + "distributions": [ + { + "distribution": 0.004, + "transition": "Emphysema" + }, + { + "distribution": 0.004, + "transition": "Chronic_Bronchitis" + }, + { + "distribution": 0.992, + "transition": "Potential_COPD_Smoker" + } + ], + "remarks": [ + "people of middle SES are representative of the population as a whole", + "~5.5% of people overall get COPD, so we assume 20% of middle SES smokers will get COPD", + "assuming a reduced 40 yr lifespan (starting at age 18), we take the yearly incidence to be .8%" + ] + }, + { + "condition": { + "condition_type": "Socioeconomic Status", + "category": "High" + }, + "distributions": [ + { + "distribution": 0.0018, + "transition": "Emphysema" + }, + { + "distribution": 0.0022, + "transition": "Chronic_Bronchitis" + }, + { + "distribution": 0.996, + "transition": "Potential_COPD_Smoker" + } + ], + "remarks": [ + "people of high SES are the least likely to get COPD", + "by income, < 3% of people of high SES get COPD, which is about 1/2 the rate of the general pop", + "we assume that 10% of high SES smokers will get COPD", + "assuming a reduced 40 yr lifespan (starting at age 18), we take the yearly incidence to be .4%", + "leaning toward bronchitis (to offset the high emphysema of low SES)" + ] + } + ] + }, + "Emphysema": { + "type": "ConditionOnset", + "target_encounter": "DiagnosisEncounter", + "assign_to_attribute": "copd_variant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "87433001", + "display": "Pulmonary emphysema (disorder)" + } + ], + "direct_transition": "Emphysema_Symptom1" + }, + "Chronic_Bronchitis": { + "type": "ConditionOnset", + "target_encounter": "DiagnosisEncounter", + "assign_to_attribute": "copd_variant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185086009", + "display": "Chronic obstructive bronchitis (disorder)" + } + ], + "direct_transition": "Bronchitis_Symptom1" + }, + "Emphysema_Symptom1": { + "type": "Symptom", + "symptom": "Shortness of Breath", + "range": { + "low": 50, + "high": 550 + }, + "direct_transition": "Emphysema_Symptom2" + }, + "Emphysema_Symptom2": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 50, + "high": 150 + }, + "direct_transition": "Common_Symptom1" + }, + "Bronchitis_Symptom1": { + "type": "Symptom", + "symptom": "Shortness of Breath", + "range": { + "low": 0, + "high": 250 + }, + "direct_transition": "Bronchitis_Symptom2" + }, + "Bronchitis_Symptom2": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 150, + "high": 250 + }, + "direct_transition": "Common_Symptom1" + }, + "Common_Symptom1": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 70, + "high": 100 + }, + "direct_transition": "Common_Symptom2" + }, + "Common_Symptom2": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 70, + "high": 100 + }, + "direct_transition": "Common_Symptom3" + }, + "Common_Symptom3": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 70, + "high": 100 + }, + "direct_transition": "DiagnosisEncounter" + }, + "DiagnosisEncounter": { + "type": "Encounter", + "wellness": true, + "direct_transition": "Initial_FEV_Test", + "reason": "copd_variant" + }, + "Initial_FEV_Test": { + "type": "Procedure", + "reason": "copd_variant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "127783003", + "display": "Spirometry (procedure)" + } + ], + "direct_transition": "Initial_FEV_Result" + }, + "Initial_FEV_Result": { + "type": "Observation", + "category": "procedure", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "range": { + "low": 45, + "high": 81 + }, + "remarks": [ + "early diagnosis for COPD is the exception not the rule. assume that most people will be stage 2 at diagnosis" + ], + "unit": "%", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "==", + "value": true + }, + "transition": "Smoker_CarePlan" + }, + { + "transition": "Nonsmoker_CarePlan" + } + ] + }, + "Nonsmoker_CarePlan": { + "type": "CarePlanStart", + "reason": "copd_variant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736283006", + "display": "Chronic obstructive pulmonary disease clinical management plan (record artifact)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "229065009", + "display": "Exercise therapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "15081005", + "display": "Pulmonary rehabilitation (regime/therapy)" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "Smoker_CarePlan": { + "type": "CarePlanStart", + "reason": "copd_variant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736283006", + "display": "Chronic obstructive pulmonary disease clinical management plan (record artifact)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "710081004", + "display": "Smoking cessation therapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "426990007", + "display": "Home oxygen therapy (procedure)" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "distributed_transition": [ + { + "transition": "Check_Anemia_Exist", + "distribution": 0.21 + }, + { + "transition": "Living_with_COPD", + "distribution": 0.79 + } + ], + "remarks": [ + "The prevalence of anemia in patients with COPD varies from 7.5% to 33% - https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4372868/", + "" + ] + }, + "Living_with_COPD": { + "type": "Simple", + "remarks": [ + "Stopping smoking, even after a COPD diagnosis, will increase expected lifespan", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2672796/", + "note that these states do not use a delay and instead use the inherent delay of wellness encounters" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "==", + "value": true + }, + "transition": "Living_with_COPD_Active_Smoker" + }, + { + "transition": "Living_with_COPD_Nonsmoker" + } + ] + }, + "Living_with_COPD_Active_Smoker": { + "type": "Simple", + "remarks": [ + "transition %s are based on data from https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2672796/", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2672796/table/t4-copd-4-137/" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "operator": ">=", + "value": 80 + }, + "remarks": [ + "people with an FEV1 of >= 80% are in the 'Mild' or 'At Risk' stage of COPD", + "Life expectancy of someone with stage 1 copd can be as high as 18 years", + "we'll assume that people will transition to later stages before dying" + ], + "transition": "COPD_Followup_Encounter" + }, + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "operator": ">=", + "value": 50 + }, + "distributions": [ + { + "distribution": 0.9576, + "transition": "COPD_Followup_Encounter" + }, + { + "distribution": 0.0424, + "transition": "Hospice Check" + } + ] + }, + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "operator": ">=", + "value": 30 + }, + "remarks": [ + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2672796/table/t4-copd-4-137/ doesn't distinguish between stages 3 + 4", + "assume stage 3 has lower mortality and stage 4 has higher" + ], + "distributions": [ + { + "distribution": 0.94, + "transition": "COPD_Followup_Encounter" + }, + { + "distribution": 0.06, + "transition": "Hospice Check" + } + ] + }, + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "operator": "<", + "value": 30 + }, + "distributions": [ + { + "distribution": 0.92, + "transition": "COPD_Followup_Encounter" + }, + { + "distribution": 0.08, + "transition": "Hospice Check" + } + ] + } + ] + }, + "Living_with_COPD_Nonsmoker": { + "type": "Simple", + "remarks": [ + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2672796/table/t4-copd-4-137/", + "using the #s for never smokers" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "operator": ">=", + "value": 80 + }, + "transition": "COPD_Followup_Encounter" + }, + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "operator": ">=", + "value": 50 + }, + "distributions": [ + { + "distribution": 0.99, + "transition": "COPD_Followup_Encounter" + }, + { + "distribution": 0.01, + "transition": "Hospice Check" + } + ] + }, + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "operator": ">=", + "value": 30 + }, + "distributions": [ + { + "distribution": 0.98, + "transition": "COPD_Followup_Encounter" + }, + { + "distribution": 0.02, + "transition": "Hospice Check" + } + ] + }, + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "operator": "<", + "value": 30 + }, + "distributions": [ + { + "distribution": 0.98, + "transition": "COPD_Followup_Encounter" + }, + { + "distribution": 0.02, + "transition": "Hospice Check" + } + ] + } + ] + }, + "COPD_Followup_Encounter": { + "type": "Encounter", + "wellness": true, + "direct_transition": "Followup_FEV_Test", + "reason": "copd_variant" + }, + "Followup_FEV_Test": { + "type": "Procedure", + "reason": "copd_variant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "127783003", + "display": "Spirometry (procedure)" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "operator": ">=", + "value": 80 + }, + "remarks": [ + "people with an FEV1 of >= 80% are in the 'Mild' or 'At Risk' stage of COPD" + ], + "transition": "Stage1_FEV_Result" + }, + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "operator": ">=", + "value": 50 + }, + "remarks": [ + "people with 80% > FEV1 >= 50% are in the 'Moderate' stage of COPD" + ], + "transition": "Stage2_FEV_Result" + }, + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "operator": ">=", + "value": 30 + }, + "remarks": [ + "people with 50% > FEV1 >= 30% are in the 'Severe' stage of COPD" + ], + "transition": "Stage3_FEV_Result" + }, + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "operator": "<", + "value": 30 + }, + "remarks": [ + "people with an FEV1 of < 80% are in the 'Very Severe' or end stage of COPD" + ], + "transition": "Stage4_FEV_Result" + } + ] + }, + "Stage1_FEV_Result": { + "type": "Observation", + "category": "procedure", + "range": { + "low": 75, + "high": 90 + }, + "remarks": [ + "currently in stage 1 so they can stay in 1 or drop to 2" + ], + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "direct_transition": "End_COPD_Followup_Enc2" + }, + "Stage2_FEV_Result": { + "type": "Observation", + "category": "procedure", + "range": { + "low": 48, + "high": 79 + }, + "remarks": [ + "currently in stage 2 so they can stay in 2 or drop to 3" + ], + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "direct_transition": "Check_Medication" + }, + "Stage3_FEV_Result": { + "type": "Observation", + "category": "procedure", + "range": { + "low": 26, + "high": 49 + }, + "remarks": [ + "currently in stage 3 so they can stay in 3 or drop to 4" + ], + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "direct_transition": "Check_Medication" + }, + "Stage4_FEV_Result": { + "type": "Observation", + "category": "procedure", + "range": { + "low": 10, + "high": 29 + }, + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "direct_transition": "Pulmonary_Rehab" + }, + "Check_Medication": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "896209", + "display": "60 ACTUAT Fluticasone propionate 0.25 MG/ACTUAT / salmeterol 0.05 MG/ACTUAT Dry Powder Inhaler" + } + ] + }, + "transition": "Check Oxygen" + }, + { + "transition": "Prescribe_Corticosteroid" + } + ] + }, + "Consider_Surgery": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "PriorState", + "name": "Surgery_Encounter", + "remarks": [ + "only allow people to have surgery once" + ] + }, + { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "operator": ">", + "value": 30, + "remarks": [ + "surgery is only considered for severe COPD - https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4608618/" + ] + }, + { + "condition_type": "Age", + "operator": ">", + "quantity": 65, + "unit": "years", + "remarks": [ + "surgery in older patients is not recommended due to the risk to the patient" + ] + }, + { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "==", + "value": true, + "remarks": [ + "patients must quit smoking to be considered" + ] + } + ] + }, + "transition": "Loop_back_to_Living_with_COPD" + }, + { + "distributions": [ + { + "distribution": 0.15, + "transition": "Wait_for_Surgery" + }, + { + "distribution": 0.85, + "transition": "Loop_back_to_Living_with_COPD" + } + ], + "remarks": [ + "there is little data about what % of eligible patients actually have surgery - these #s are guesses" + ] + } + ] + }, + "Wait_for_Surgery": { + "type": "Delay", + "range": { + "low": 6, + "high": 12, + "unit": "weeks" + }, + "direct_transition": "Surgery_Encounter" + }, + "Surgery_Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "copd_variant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305411003", + "display": "Admission to thoracic surgery department (procedure)" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "19926-5", + "display": "FEV1/FVC" + } + ], + "operator": ">", + "value": 20, + "remarks": [ + "LVRS is more common for patients with FEV1 > 20% - http://www.medscape.com/viewarticle/502203_7" + ] + }, + "transition": "Lung_Volume_Reduction" + }, + { + "transition": "Lung_Transplant" + } + ] + }, + "Lung_Transplant": { + "type": "Procedure", + "reason": "copd_variant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "88039007", + "display": "Transplant of lung (procedure)" + } + ], + "duration": { + "low": 5, + "high": 7, + "unit": "hours" + }, + "direct_transition": "Postoperative_Observation" + }, + "Lung_Volume_Reduction": { + "type": "Procedure", + "reason": "copd_variant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "429609002", + "display": "Lung volume reduction surgery (procedure)" + } + ], + "direct_transition": "Postoperative_Care" + }, + "End_Surgery_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Loop_back_to_Living_with_COPD" + }, + "Pulmonary_Rehab": { + "type": "Procedure", + "reason": "copd_variant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "15081005", + "display": "Pulmonary rehabilitation (regime/therapy)" + } + ], + "direct_transition": "Check_Medication" + }, + "Loop_back_to_Living_with_COPD": { + "type": "Simple", + "remarks": [ + "this state only exists to make the graphviz look cleaner" + ], + "direct_transition": "Living_with_COPD" + }, + "Death": { + "type": "Death", + "referenced_by_attribute": "copd_variant", + "direct_transition": "Terminal", + "range": { + "low": 10, + "high": 30, + "unit": "days" + } + }, + "Terminal": { + "type": "Terminal" + }, + "Anemia_Submodule": { + "type": "CallSubmodule", + "submodule": "anemia/anemia_sub", + "direct_transition": "Living_with_COPD" + }, + "Check_Anemia_Exist": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Anemia_Submodule", + "condition": { + "condition_type": "Attribute", + "attribute": "anemia", + "operator": "is nil" + } + }, + { + "transition": "Living_with_COPD" + } + ] + }, + "End_COPD_Followup_Enc2": { + "type": "EncounterEnd", + "direct_transition": "Loop_back_to_Living_with_COPD" + }, + "End_COPD_Followup_Enc1": { + "type": "EncounterEnd", + "direct_transition": "Consider_Surgery" + }, + "Hospice Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Hospice", + "distribution": 0.4 + }, + { + "transition": "Death", + "distribution": 0.6 + } + ] + }, + "Hospice": { + "type": "SetAttribute", + "attribute": "hospice", + "direct_transition": "Hospice Reason", + "value": true + }, + "Hospice Reason": { + "type": "SetAttribute", + "attribute": "hospice_reason", + "value_attribute": "copd_variant", + "direct_transition": "Death" + }, + "Check Oxygen": { + "type": "Simple", + "remarks": [ + "Ardestani ME, Abbaszadeh M. The association between forced expiratory volume in one second (FEV1) and pulse oximetric measurements of arterial oxygen saturation (SpO2) in the patients with COPD: A preliminary study. J Res Med Sci. 2014;19(3):257-261.", + "The study may demonstrate that oxygen saturation measured by pulse oximetry appears to be independent of the degree of airways obstruction as quantified by the FEV1; although further evidence needs to be assessed these preliminary findings." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "==", + "value": true + }, + "transition": "Oxygen Systems" + }, + { + "distributions": [ + { + "transition": "Oxygen Systems", + "distribution": 0.08 + }, + { + "transition": "End_COPD_Followup_Enc1", + "distribution": 0.9199999999999999 + } + ] + } + ] + }, + "Prescribe_Corticosteroid": { + "type": "MedicationOrder", + "reason": "copd_variant", + "codes": [ + { + "system": "RxNorm", + "code": "896209", + "display": "60 ACTUAT Fluticasone propionate 0.25 MG/ACTUAT / salmeterol 0.05 MG/ACTUAT Dry Powder Inhaler" + } + ], + "direct_transition": "Prescribe_Bronchodilator", + "chronic": true + }, + "Prescribe_Bronchodilator": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 245314, + "display": "albuterol 5 MG/ML Inhalation Solution" + } + ], + "direct_transition": "End Previous Nebulizer", + "reason": "copd_variant", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + }, + "as_needed": true + } + }, + "Nebulizer": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "170615005", + "display": "Home nebulizer (physical object)" + }, + "direct_transition": "Check Oxygen" + }, + "Oxygen System": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "336621006", + "display": "Oxygen concentrator (physical object)" + }, + "distributed_transition": [ + { + "transition": "End_Portable_Oxygen_System", + "distribution": 0.13 + }, + { + "transition": "End_Previous_Gaseous_Oxygen", + "distribution": 0.35 + }, + { + "transition": "Wheelchair Check", + "distribution": 0.52 + } + ] + }, + "Portable_Oxygen_System": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "464173000", + "display": "Portable oxygen concentrator (physical object)" + }, + "direct_transition": "Wheelchair Check" + }, + "Portable_Gaseous_Oxygen": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "261323006", + "display": "Portable oxygen cylinder (physical object)" + }, + "direct_transition": "Wheelchair Check" + }, + "Oxygen Systems": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "End_Previous_Gaseous_Oxygen", + "distribution": 0.073 + }, + { + "transition": "End Previous Oxygen System", + "distribution": 0.927 + } + ] + }, + "End Previous Oxygen System": { + "type": "DeviceEnd", + "direct_transition": "Oxygen System", + "codes": [ + { + "system": "SNOMED-CT", + "code": "336621006", + "display": "Oxygen concentrator (physical object)" + } + ] + }, + "End_Previous_Gaseous_Oxygen": { + "type": "DeviceEnd", + "direct_transition": "Portable_Gaseous_Oxygen", + "codes": [ + { + "system": "SNOMED-CT", + "code": "261323006", + "display": "Portable oxygen cylinder (physical object)" + } + ] + }, + "End_Portable_Oxygen_System": { + "type": "DeviceEnd", + "direct_transition": "Portable_Oxygen_System", + "codes": [ + { + "system": "SNOMED-CT", + "code": "464173000", + "display": "Portable oxygen concentrator (physical object)" + } + ] + }, + "End Previous Nebulizer": { + "type": "DeviceEnd", + "direct_transition": "Nebulizer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "170615005", + "display": "Home nebulizer (physical object)" + } + ] + }, + "Wheelchair Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Wheelchair", + "distribution": 0.02 + }, + { + "transition": "End_COPD_Followup_Enc1", + "distribution": 0.98 + } + ] + }, + "Wheelchair": { + "type": "CallSubmodule", + "submodule": "dme/wheelchair", + "direct_transition": "End_COPD_Followup_Enc1" + }, + "Postoperative_Care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "133899007", + "display": "Postoperative care (regime/therapy)" + } + ], + "distribution": { + "kind": "EXPONENTIAL", + "parameters": { + "mean": 10 + } + }, + "unit": "days", + "direct_transition": "End_Surgery_Encounter", + "reason": "copd_variant" + }, + "Postoperative_Observation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225415001", + "display": "Close observation (regime/therapy)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 36, + "low": 24 + } + }, + "unit": "hours", + "direct_transition": "Postoperative_Care", + "reason": "colorectal_cancer" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19.json b/src/main/resources/modules/covid19.json new file mode 100644 index 0000000..eba1ddc --- /dev/null +++ b/src/main/resources/modules/covid19.json @@ -0,0 +1,75 @@ +{ + "name": "covid19", + "remarks": [ + "This is module for the treatment of COVID-19 has estimates for rates of infection, rates of admission, and probabilities.", + "", + "Treatments are based on many sources, many of which are updating. Many pathways are missing.", + "", + "Daily lab values and measurements are missing." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Wait Until Exposure" + }, + "Terminal": { + "type": "Terminal" + }, + "Wait Until Exposure": { + "type": "Delay", + "exact": { + "quantity": 4, + "unit": "days" + }, + "lookup_table_transition": [ + { + "transition": "Wait Until Exposure", + "default_probability": 1, + "lookup_table_name": "covid19_prob.csv" + }, + { + "transition": "Check Vaccine Status", + "default_probability": 0, + "lookup_table_name": "covid19_prob.csv" + }, + { + "transition": "Terminal", + "default_probability": 0, + "lookup_table_name": "covid19_prob.csv" + } + ] + }, + "Call Infection Submodule": { + "submodule": "covid19/infection", + "type": "CallSubmodule", + "direct_transition": "Terminal" + }, + "Check Vaccine Status": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "C19_FULLY_VACCINATED", + "operator": "==", + "value": true + }, + "distributions": [ + { + "transition": "Call Infection Submodule", + "distribution": 0.01 + }, + { + "transition": "Wait Until Exposure", + "distribution": 0.99 + } + ] + }, + { + "transition": "Call Infection Submodule" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/admission.json b/src/main/resources/modules/covid19/admission.json new file mode 100644 index 0000000..cbe02fa --- /dev/null +++ b/src/main/resources/modules/covid19/admission.json @@ -0,0 +1,1156 @@ +{ + "name": "admission", + "remarks": [ + "Hospitalization and ICU admission for survivors and non-survivors. Timelines from Table 1 and Table 2, and outcomes and complications according to Table 2, from https://doi.org/10.1016/S0140-6736(20)30566-3" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Hospital Inpatient Admission" + }, + "Terminal": { + "type": "Terminal" + }, + "Hospital Inpatient Admission": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1505002", + "display": "Hospital admission for isolation (procedure)" + } + ], + "conditional_transition": [ + { + "transition": "Non Survivor Stay", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_death", + "operator": "==", + "value": true + } + }, + { + "transition": "Survivor Stay" + } + ], + "reason": "covid19" + }, + "Survivor Stay": { + "type": "SetAttribute", + "attribute": "covid19_hospitalization_days", + "direct_transition": "Admission Days", + "range": { + "low": 9, + "high": 15 + } + }, + "Non Survivor Stay": { + "type": "SetAttribute", + "attribute": "covid19_hospitalization_days", + "direct_transition": "Admission Days", + "range": { + "low": 5, + "high": 11 + } + }, + "ICU Admission": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "covid19", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305351004", + "display": "Admission to intensive care unit (procedure)" + } + ], + "conditional_transition": [ + { + "transition": "Non Survivor ICU Stay", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_death", + "operator": "==", + "value": true + } + }, + { + "transition": "Survivor ICU Stay" + } + ] + }, + "End Symptoms": { + "type": "CallSubmodule", + "submodule": "covid19/end_symptoms", + "direct_transition": "End_Outcomes" + }, + "Survivor ICU Stay": { + "type": "SetAttribute", + "attribute": "covid19_icu_days", + "direct_transition": "ICU First Day", + "range": { + "low": 2, + "high": 9 + } + }, + "Non Survivor ICU Stay": { + "type": "SetAttribute", + "attribute": "covid19_icu_days", + "range": { + "low": 4, + "high": 12 + }, + "direct_transition": "ICU First Day" + }, + "Death": { + "type": "Death", + "direct_transition": "Terminal", + "referenced_by_attribute": "covid19" + }, + "Hospitalization Day End": { + "type": "Counter", + "attribute": "covid19_hospitalization_days", + "action": "decrement", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_hospitalization_days", + "operator": ">", + "value": 0 + }, + "transition": "Hospitalization Next Day" + }, + { + "transition": "Determine Discharge" + } + ] + }, + "Hospitalization Day Begin": { + "type": "Counter", + "attribute": "covid19_admission_days", + "action": "increment", + "direct_transition": "Hospitalization Set Daily Labs" + }, + "ICU Day Begin": { + "type": "Counter", + "attribute": "covid19_admission_days", + "action": "increment", + "direct_transition": "ICU Set Daily Labs" + }, + "ICU Day End": { + "type": "Counter", + "attribute": "covid19_icu_days", + "action": "decrement", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_icu_days", + "operator": ">", + "value": 0 + }, + "transition": "ICU Next Day" + }, + { + "transition": "Extubation_Check", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_death", + "operator": "==", + "value": false + } + }, + { + "transition": "Wait For End" + } + ] + }, + "Hospitalization Daily Lab Values Non-Survivor": { + "type": "CallSubmodule", + "submodule": "covid19/nonsurvivor_lab_values", + "direct_transition": "Hospitalization Daily Labs" + }, + "Hospitalization Daily Lab Values Survivor": { + "type": "CallSubmodule", + "submodule": "covid19/survivor_lab_values", + "direct_transition": "Hospitalization Daily Labs" + }, + "ICU Labs": { + "type": "CallSubmodule", + "submodule": "covid19/measurements_daily", + "conditional_transition": [ + { + "transition": "ICU Frequent Labs", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_all_labs", + "operator": "==", + "value": true + } + }, + { + "transition": "Next_Time" + } + ] + }, + "Hospitalization Set Daily Labs": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Hospitalization Daily Lab Values Non-Survivor", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_death", + "operator": "==", + "value": true + } + }, + { + "transition": "Hospitalization Daily Lab Values Survivor" + } + ] + }, + "ICU Set Daily Labs": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "ICU Daily Lab Values Non Survivor", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_death", + "operator": "==", + "value": true + } + }, + { + "transition": "ICU Daily Lab Values Survivor" + } + ] + }, + "ICU Daily Lab Values Non Survivor": { + "type": "CallSubmodule", + "submodule": "covid19/nonsurvivor_lab_values", + "direct_transition": "ICU Labs" + }, + "ICU Daily Lab Values Survivor": { + "type": "CallSubmodule", + "submodule": "covid19/survivor_lab_values", + "direct_transition": "ICU Labs" + }, + "Hospitalization First Day": { + "type": "SetAttribute", + "attribute": "covid19_all_labs", + "direct_transition": "Chest_X_Ray", + "value": true + }, + "Chest_X_Ray": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain X-ray of chest (procedure)" + } + ], + "duration": { + "low": 15, + "high": 45, + "unit": "minutes" + }, + "direct_transition": "Determine Outcomes" + }, + "Determine Outcomes": { + "type": "CallSubmodule", + "submodule": "covid19/outcomes", + "direct_transition": "Hospitalization Day Begin" + }, + "Hospitalization Medications": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Metered_Dose_Inhaler", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "asthma_condition", + "operator": "is not nil" + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "copd_variant", + "operator": "is not nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "56018004", + "display": "Wheezing (finding)" + } + ] + } + ] + } + ] + } + }, + { + "transition": "Daily_Acetaminophen_for_Fever" + } + ] + }, + "Hospitalization Supplies": { + "type": "CallSubmodule", + "submodule": "covid19/supplies_hospitalization", + "direct_transition": "Hospitalization Day End" + }, + "Hospitalization Next Day": { + "type": "Delay", + "direct_transition": "Hospitalization Day Begin", + "exact": { + "quantity": 1, + "unit": "days" + } + }, + "ICU Next Day": { + "type": "Delay", + "direct_transition": "ICU Day Begin", + "exact": { + "quantity": 1, + "unit": "days" + } + }, + "ICU Procedures": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Ventilation", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65710008", + "display": "Acute respiratory failure (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "76571007", + "display": "Septic shock (disorder)" + } + ] + } + ] + } + }, + { + "transition": "ICU Oxygen" + } + ] + }, + "ICU Medications": { + "type": "Simple", + "direct_transition": "Clinical_Trial_Medications" + }, + "ICU Supplies": { + "type": "CallSubmodule", + "submodule": "covid19/supplies_icu", + "direct_transition": "ICU Day End" + }, + "Metered_Dose_Inhaler": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "2123111", + "display": "NDA020503 200 ACTUAT Albuterol 0.09 MG/ACTUAT Metered Dose Inhaler" + } + ], + "administration": true, + "reason": "Hypoxemia", + "direct_transition": "Daily_Acetaminophen_for_Fever", + "prescription": { + "dosage": { + "amount": 4, + "frequency": 1, + "period": 4, + "unit": "hours" + }, + "duration": { + "quantity": 1, + "unit": "days" + } + } + }, + "Oxygen": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "371908008", + "display": "Oxygen administration by mask (procedure)" + } + ], + "reason": "Hypoxemia", + "direct_transition": "Move to Prone Position", + "remarks": [ + "Oxygen administration by mask refers to supplemental O2 via nasal cannula or mask, continuous positive airway pressure (CPAP), high flow nasal cannula (HFNC), or non-invasive ventilation (NIV)." + ] + }, + "Daily_Acetaminophen_for_Fever": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "198440", + "display": "Acetaminophen 500 MG Oral Tablet" + } + ], + "administration": true, + "direct_transition": "Clinical Trial Medications" + }, + "Ventilation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "243150007", + "display": "Assist control ventilation (regime/therapy)" + } + ], + "reason": "Ventilator Reason", + "direct_transition": "Dialysis Check" + }, + "ICU First Day": { + "type": "Simple", + "direct_transition": "Intubation Check" + }, + "Intubation Supplies": { + "type": "CallSubmodule", + "submodule": "covid19/supplies_intubation", + "direct_transition": "Intubation" + }, + "Intubation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "112798008", + "display": "Insertion of endotracheal tube (procedure)" + } + ], + "duration": { + "low": 20, + "high": 30, + "unit": "minutes" + }, + "reason": "Ventilator Reason", + "direct_transition": "Remove_Laryngoscope" + }, + "ICU Oxygen": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "371908008", + "display": "Oxygen administration by mask (procedure)" + } + ], + "reason": "Hypoxemia", + "direct_transition": "Dialysis Check" + }, + "Daily_Acetaminophen_for_Fever_ICU": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "198440", + "display": "Acetaminophen 500 MG Oral Tablet" + } + ], + "administration": true, + "direct_transition": "ICU Supplies" + }, + "Extubation_Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Extubation", + "condition": { + "condition_type": "PriorState", + "name": "Intubation" + } + }, + { + "transition": "Discharge from ICU" + } + ] + }, + "Extubation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "271280005", + "display": "Removal of endotracheal tube (procedure)" + } + ], + "duration": { + "low": 20, + "high": 40, + "unit": "minutes" + }, + "direct_transition": "Reclaim Ventilator" + }, + "Wait For End": { + "type": "Delay", + "direct_transition": "Reclaim Ventilator at Death", + "range": { + "low": 1, + "high": 8, + "unit": "hours" + } + }, + "End_Outcomes": { + "type": "CallSubmodule", + "submodule": "covid19/end_outcomes", + "direct_transition": "End_Encounter" + }, + "Transfer": { + "type": "EncounterEnd", + "direct_transition": "ICU Admission" + }, + "Determine Discharge": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_death", + "operator": "==", + "value": true + }, + "distributions": [ + { + "transition": "Transfer", + "distribution": 0.72 + }, + { + "transition": "Wait For End", + "distribution": 0.28 + } + ] + }, + { + "distributions": [ + { + "transition": "Transfer", + "distribution": 0.08 + }, + { + "transition": "End Symptoms", + "distribution": 0.9199999999999999 + } + ] + } + ] + }, + "Admission Days": { + "type": "SetAttribute", + "attribute": "covid19_admission_days", + "direct_transition": "Hospitalization First Day", + "value": 0 + }, + "Vasopressor A": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "242969", + "display": "4 ML Norepinephrine 1 MG/ML Injection" + } + ], + "direct_transition": "Vasopressor B", + "administration": true, + "reason": "Septic Shock" + }, + "Vasopressor B": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "2103182", + "display": "1 ML Vasopressin (USP) 20 UNT/ML Injection" + } + ], + "administration": true, + "direct_transition": "Daily_Acetaminophen_for_Fever_ICU", + "reason": "Septic Shock" + }, + "Hospitalization Daily Labs": { + "type": "CallSubmodule", + "submodule": "covid19/measurements_daily", + "conditional_transition": [ + { + "transition": "Hospitalization Frequent Labs", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_all_labs", + "operator": "==", + "value": true + } + }, + { + "transition": "Next Time" + } + ] + }, + "Hospitalization Frequent Labs": { + "type": "CallSubmodule", + "submodule": "covid19/measurements_frequent", + "direct_transition": "Skip Next Time" + }, + "Next Time": { + "type": "SetAttribute", + "attribute": "covid19_all_labs", + "direct_transition": "Check for Clots", + "value": true + }, + "Skip Next Time": { + "type": "SetAttribute", + "attribute": "covid19_all_labs", + "direct_transition": "Check for Clots", + "value": false + }, + "ICU Frequent Labs": { + "type": "CallSubmodule", + "submodule": "covid19/measurements_frequent", + "direct_transition": "Skip_Next_Time" + }, + "Next_Time": { + "type": "SetAttribute", + "attribute": "covid19_all_labs", + "value": true, + "direct_transition": "Check for Clots ICU" + }, + "Skip_Next_Time": { + "type": "SetAttribute", + "attribute": "covid19_all_labs", + "value": true, + "direct_transition": "Check for Clots ICU" + }, + "ICU_Oxygen": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "371908008", + "display": "Oxygen administration by mask (procedure)" + } + ], + "direct_transition": "Recovery", + "reason": "Hypoxemia" + }, + "Recovery": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "days" + }, + "direct_transition": "Recovery Next Day" + }, + "Recovery Days": { + "type": "SetAttribute", + "attribute": "covid19_extubation_recovery_days", + "direct_transition": "Recovery Oxygen Check", + "range": { + "low": 1, + "high": 3 + } + }, + "Recovery Next Day": { + "type": "Counter", + "attribute": "covid19_extubation_recovery_days", + "action": "decrement", + "conditional_transition": [ + { + "transition": "Recovery Oxygen Check", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_extubation_recovery_days", + "operator": ">", + "value": 0 + } + }, + { + "transition": "End Symptoms" + } + ] + }, + "Reclaim Ventilator": { + "type": "DeviceEnd", + "direct_transition": "Discharge from ICU", + "referenced_by_attribute": "covid19_ventilator" + }, + "Reclaim Ventilator at Death": { + "type": "DeviceEnd", + "direct_transition": "End Encounter at Death", + "referenced_by_attribute": "covid19_ventilator" + }, + "End Encounter at Death": { + "type": "EncounterEnd", + "direct_transition": "Death" + }, + "Clinical Trial Medications": { + "type": "CallSubmodule", + "submodule": "covid19/medications", + "direct_transition": "Hospitalization Supplies" + }, + "Clinical_Trial_Medications": { + "type": "CallSubmodule", + "submodule": "covid19/medications", + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "asthma_condition", + "operator": "is not nil" + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "copd_variant", + "operator": "is not nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "267036007", + "display": "Dyspnea (finding)" + } + ] + } + ] + } + ] + }, + "transition": "Albuterol Administration" + }, + { + "transition": "Treat Bacterial Infection" + } + ] + }, + "Remove_Laryngoscope": { + "type": "DeviceEnd", + "direct_transition": "Chest X Ray to confirm intubation", + "referenced_by_attribute": "covid19_laryngoscope" + }, + "Hospitalization Procedures": { + "type": "Simple", + "direct_transition": "Oxygen" + }, + "Check for Clots": { + "type": "CallSubmodule", + "submodule": "covid19/diagnose_blood_clot", + "direct_transition": "Treat Clots" + }, + "Check for Clots ICU": { + "type": "CallSubmodule", + "submodule": "covid19/diagnose_blood_clot", + "direct_transition": "Treat Clots ICU" + }, + "Treat Clots": { + "type": "CallSubmodule", + "submodule": "covid19/treat_blood_clot", + "direct_transition": "Hospitalization Procedures" + }, + "Treat Clots ICU": { + "type": "CallSubmodule", + "submodule": "covid19/treat_blood_clot", + "direct_transition": "Check for Bacterial Infection" + }, + "Dialysis Check": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 4 + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40095003", + "display": "Injury of kidney (disorder)" + } + ] + } + ] + }, + "transition": "Dialysis Machine" + }, + { + "transition": "ICU Medications" + } + ] + }, + "Hemodialysis": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "302497006", + "display": "Hemodialysis (procedure)" + } + ], + "duration": { + "low": 2, + "high": 4, + "unit": "hours" + }, + "direct_transition": "Dialysis Machine Stop" + }, + "Dialysis Machine": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "36965003", + "display": "Hemodialysis machine, device (physical object)" + }, + "direct_transition": "Hemodialysis" + }, + "Dialysis Machine Stop": { + "type": "DeviceEnd", + "direct_transition": "ICU Medications", + "device": "Dialysis Machine" + }, + "Discharge from ICU": { + "type": "EncounterEnd", + "direct_transition": "Back into Inpatient" + }, + "Back into Inpatient": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "76464004", + "display": "Hospital admission, for observation (procedure)" + } + ], + "reason": "covid19", + "direct_transition": "Recovery Days" + }, + "Albuterol Administration": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Albuterol Nebulizer on Ventilation", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65710008", + "display": "Acute respiratory failure (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "76571007", + "display": "Septic shock (disorder)" + } + ] + } + ] + } + }, + { + "transition": "Metered_Dose_Inhaler_ICU" + } + ] + }, + "Metered_Dose_Inhaler_ICU": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "2123111", + "display": "NDA020503 200 ACTUAT Albuterol 0.09 MG/ACTUAT Metered Dose Inhaler" + } + ], + "administration": true, + "reason": "Hypoxemia", + "prescription": { + "dosage": { + "amount": 4, + "frequency": 1, + "period": 4, + "unit": "hours" + }, + "duration": { + "quantity": 1, + "unit": "days" + } + }, + "direct_transition": "Treat Bacterial Infection" + }, + "Albuterol Nebulizer on Ventilation": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 245314, + "display": "Albuterol 5 MG/ML Inhalation Solution" + } + ], + "administration": true, + "reason": "Hypoxemia", + "direct_transition": "Treat Bacterial Infection", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 4, + "unit": "hours" + }, + "duration": { + "quantity": 1, + "unit": "days" + } + } + }, + "Recovery Oxygen Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "ICU_Oxygen", + "condition": { + "condition_type": "PriorState", + "name": "Intubation" + } + }, + { + "transition": "Recovery" + } + ] + }, + "Move to Prone Position": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "431182000", + "display": "Placing subject in prone position (procedure)" + } + ], + "direct_transition": "Hospitalization Medications", + "reason": "Hypoxemia" + }, + "Intubation Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Intubation Supplies", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65710008", + "display": "Acute respiratory failure (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "76571007", + "display": "Septic shock (disorder)" + } + ] + } + ] + } + }, + { + "transition": "ICU Day Begin" + } + ] + }, + "Chest X Ray to confirm intubation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain X-ray of chest (procedure)" + } + ], + "duration": { + "low": 15, + "high": 45, + "unit": "minutes" + }, + "direct_transition": "ICU Day Begin" + }, + "Check for Bacterial Infection": { + "type": "CallSubmodule", + "submodule": "covid19/diagnose_bacterial_infection", + "direct_transition": "ICU Procedures" + }, + "Treat Bacterial Infection": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Vancomycin", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_bacterial_infection", + "operator": "is not nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "76571007", + "display": "Septic shock (disorder)" + } + ] + } + ] + } + }, + { + "transition": "Check for Septic Shock" + } + ] + }, + "Check for Septic Shock": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Vasopressor A", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "76571007", + "display": "Septic shock (disorder)" + } + ] + } + }, + { + "transition": "Daily_Acetaminophen_for_Fever_ICU" + } + ] + }, + "Vancomycin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1807513, + "display": "vancomycin 1000 MG Injection" + } + ], + "direct_transition": "piperacillin-tazobactam", + "reason": "covid19_bacterial_infection", + "administration": true + }, + "piperacillin-tazobactam": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1659149, + "display": "piperacillin 4000 MG / tazobactam 500 MG Injection" + } + ], + "reason": "covid19_bacterial_infection", + "direct_transition": "Check for Septic Shock", + "administration": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "days" + }, + "refills": 4 + }, + "remarks": [ + "Every 6 hours." + ] + }, + "End_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/determine_risk.json b/src/main/resources/modules/covid19/determine_risk.json new file mode 100644 index 0000000..e255346 --- /dev/null +++ b/src/main/resources/modules/covid19/determine_risk.json @@ -0,0 +1,272 @@ +{ + "name": "determine_risk", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Determine Risk", + "remarks": [ + "Assess patient comorbidities and set attribute (covid19_risk):", + " - (high) if patient has comorbidity impacting risks", + " - (low) if patient has no comorbidity impacting risks" + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Determine Risk": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "High Risk of Severe Disease", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "diabetes", + "operator": "==", + "value": true + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "hypertension", + "operator": "==", + "value": true + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "copd_variant", + "operator": "is not nil" + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "Cystic_Fibrosis", + "operator": "is not nil" + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "asthma_condition", + "operator": "is not nil" + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "==", + "value": true + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "coronary_heart_disease", + "operator": "==", + "value": true + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "chf", + "operator": "is not nil" + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "homelessness_category", + "operator": "==", + "value": "chronic" + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "lung_cancer", + "operator": "==", + "value": true + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "colorectal_cancer_stage", + "operator": "is not nil" + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "breast_cancer_condition", + "operator": "is not nil" + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "lupus_careplan", + "operator": "is not nil" + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "ra_careplan", + "operator": "is not nil" + }, + { + "condition_type": "Vital Sign", + "vital_sign": "BMI", + "operator": ">=", + "value": 40 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + }, + { + "transition": "Low Risk of Severe Disease" + } + ] + }, + "High Risk of Severe Disease": { + "type": "SetAttribute", + "attribute": "covid19_risk", + "direct_transition": "Determine Severity", + "value": "high" + }, + "Low Risk of Severe Disease": { + "type": "SetAttribute", + "attribute": "covid19_risk", + "direct_transition": "Determine Severity", + "value": "low" + }, + "Determine Severity": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Negative Severity", + "lookup_table_name": "covid-19-severity-outcomes.csv", + "default_probability": 0.85 + }, + { + "transition": "General Severity", + "lookup_table_name": "covid-19-severity-outcomes.csv", + "default_probability": 0.05 + }, + { + "transition": "Severe Severity", + "lookup_table_name": "covid-19-severity-outcomes.csv", + "default_probability": 0.05 + }, + { + "transition": "Critical Severity", + "default_probability": 0.05, + "lookup_table_name": "covid-19-severity-outcomes.csv" + } + ] + }, + "Negative Severity": { + "type": "SetAttribute", + "attribute": "covid19_severity", + "direct_transition": "Survival: Survivor", + "value": "negative" + }, + "Severe Severity": { + "type": "SetAttribute", + "attribute": "covid19_severity", + "direct_transition": "Determine Survival", + "value": "severe" + }, + "Determine Survival": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Survival: Survivor", + "lookup_table_name": "covid-19-survival-outcomes.csv", + "default_probability": 0.8 + }, + { + "transition": "Survival: Non-Survivor", + "lookup_table_name": "covid-19-survival-outcomes.csv", + "default_probability": 0.2 + } + ] + }, + "Survival: Survivor": { + "type": "SetAttribute", + "attribute": "covid19_death", + "direct_transition": "Terminal", + "value": false + }, + "Survival: Non-Survivor": { + "type": "SetAttribute", + "attribute": "covid19_death", + "direct_transition": "Terminal", + "value": true + }, + "General Severity": { + "type": "SetAttribute", + "attribute": "covid19_severity", + "direct_transition": "Determine Survival", + "value": "general" + }, + "Critical Severity": { + "type": "SetAttribute", + "attribute": "covid19_severity", + "direct_transition": "Determine Survival", + "value": "critical" + } + }, + "remarks": [ + "This submodule determines covid19 risk, severity, and death." + ], + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/diagnose_bacterial_infection.json b/src/main/resources/modules/covid19/diagnose_bacterial_infection.json new file mode 100644 index 0000000..47eb6fb --- /dev/null +++ b/src/main/resources/modules/covid19/diagnose_bacterial_infection.json @@ -0,0 +1,69 @@ +{ + "name": "diagnose_bacterial_infection", + "remarks": [ + "Zhou shows that only 15% (survivors + non-survivors) of patients had a secondary bacterial infection (positive culture). Given a daily probability of 2.5%, this should result around 13% for survivors and 18% for non-survivors, based on length of stay." + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Check for Bacterial Infection", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_bacterial_infection", + "operator": "is nil" + } + }, + { + "transition": "Terminal" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Check for Bacterial Infection": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.025, + "transition": "Take Culture" + }, + { + "transition": "Terminal", + "distribution": 0.9750000000000001 + } + ] + }, + "Bacterial Infection": { + "type": "ConditionOnset", + "assign_to_attribute": "covid19_bacterial_infection", + "codes": [ + { + "system": "SNOMED-CT", + "code": "87628006", + "display": "Bacterial infectious disease (disorder)" + } + ], + "direct_transition": "Terminal" + }, + "Take Culture": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "61594008", + "display": "Microbial culture (procedure)" + } + ], + "duration": { + "low": 5, + "high": 10, + "unit": "minutes" + }, + "direct_transition": "Bacterial Infection" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/diagnose_blood_clot.json b/src/main/resources/modules/covid19/diagnose_blood_clot.json new file mode 100644 index 0000000..74b12d7 --- /dev/null +++ b/src/main/resources/modules/covid19/diagnose_blood_clot.json @@ -0,0 +1,117 @@ +{ + "name": "diagnose_blood_clot", + "remarks": [ + "At some point, both patients on the floor and ICU should develop a clot (i.e. the following diagnoses)", + "•\tAcute pulmonary embolism (PE) ", + "•\tAcute deep venous thrombosis (VT)", + "**Coagulopathy is not sufficient, see discussion below. ", + "", + "Suggestion would be to have individuals with higher d-dimers develop clots since d-dimer increases are associated with clot formation. Normal d-dimer range is 0.0 - 0.49.", + "" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Initialize", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_diagnosed_clot", + "operator": "is nil" + } + }, + { + "transition": "Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_diagnosed_clot", + "operator": "==", + "value": true + } + }, + { + "transition": "Check D-Dimer" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Initialize": { + "type": "Simple", + "direct_transition": "No Diagnosed Clots" + }, + "Check D-Dimer": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Diagnose Clot", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_ddimer", + "operator": ">=", + "value": 0.5 + } + }, + { + "transition": "Terminal" + } + ] + }, + "Diagnose Clot": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Diagnose Acute Pulmonary Embolism", + "distribution": 0.1 + }, + { + "transition": "Diagnose Acute Deep Venous Thrombosis", + "distribution": 0.1 + }, + { + "transition": "Terminal", + "distribution": 0.8 + } + ] + }, + "Diagnose Acute Pulmonary Embolism": { + "type": "ConditionOnset", + "assign_to_attribute": "covid19_clot", + "codes": [ + { + "system": "SNOMED-CT", + "code": "706870000", + "display": "Acute pulmonary embolism (disorder)" + } + ], + "direct_transition": "Diagnosed Clots" + }, + "Diagnose Acute Deep Venous Thrombosis": { + "type": "ConditionOnset", + "assign_to_attribute": "covid19_clot", + "codes": [ + { + "system": "SNOMED-CT", + "code": "132281000119108", + "display": "Acute deep venous thrombosis (disorder)" + } + ], + "direct_transition": "Diagnosed Clots" + }, + "Diagnosed Clots": { + "type": "SetAttribute", + "attribute": "covid19_diagnosed_clot", + "direct_transition": "Terminal", + "value": true + }, + "No Diagnosed Clots": { + "type": "SetAttribute", + "attribute": "covid19_diagnosed_clot", + "value": false, + "direct_transition": "Check D-Dimer" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/end_outcomes.json b/src/main/resources/modules/covid19/end_outcomes.json new file mode 100644 index 0000000..7c7b1b0 --- /dev/null +++ b/src/main/resources/modules/covid19/end_outcomes.json @@ -0,0 +1,167 @@ +{ + "name": "end_outcomes", + "remarks": [ + "This module ends patient outcomes from covid19 according to Table 2 from https://doi.org/10.1016/S0140-6736(20)30566-3" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "End ARDS" + }, + "Terminal": { + "type": "Terminal" + }, + "End Pneumonia": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "233604007", + "display": "Pneumonia (disorder)" + } + ], + "direct_transition": "End Hypoxemia" + }, + "End ARDS": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "67782005", + "display": "Acute respiratory distress syndrome (disorder)" + } + ], + "direct_transition": "End Acute Cardiac Injury" + }, + "End Sepsis": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "770349000", + "display": "Sepsis caused by virus (disorder)" + } + ], + "direct_transition": "End Septic Shock" + }, + "End Septic Shock": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "76571007", + "display": "Septic shock (disorder)" + } + ], + "direct_transition": "End Covid19" + }, + "End Heart Failure": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "84114007", + "display": "Heart failure (disorder)" + } + ], + "direct_transition": "End Pneumonia" + }, + "End Acute Cardiac Injury": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "86175003", + "display": "Injury of heart (disorder)" + } + ], + "direct_transition": "End Acute Kidney Injury" + }, + "End Acute Kidney Injury": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40095003", + "display": "Injury of kidney (disorder)" + } + ], + "direct_transition": "End Coagulopathy" + }, + "End Coagulopathy": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "234466008", + "display": "Acquired coagulation disorder (disorder)" + } + ], + "direct_transition": "End Pulmonary Embolism" + }, + "End Mild Respiratory Distress": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "271825005", + "display": "Respiratory distress (finding)" + } + ], + "direct_transition": "End Respiratory Failure" + }, + "End Respiratory Failure": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65710008", + "display": "Acute respiratory failure (disorder)" + } + ], + "remarks": [ + "67 of 173 (38.7% round up to 40%) severe patients required mechanical ventilation." + ], + "direct_transition": "End Sepsis" + }, + "End Covid19": { + "type": "ConditionEnd", + "direct_transition": "Terminal", + "referenced_by_attribute": "covid19" + }, + "End Pulmonary Embolism": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "706870000", + "display": "Acute pulmonary embolism (disorder)" + } + ], + "direct_transition": "End Venous Thrombosis" + }, + "End Venous Thrombosis": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "132281000119108", + "display": "Acute deep venous thrombosis (disorder)" + } + ], + "direct_transition": "End Heart Failure" + }, + "End Hypoxemia": { + "type": "ConditionEnd", + "direct_transition": "End Mild Respiratory Distress", + "codes": [ + { + "system": "SNOMED-CT", + "code": "389087006", + "display": "Hypoxemia (disorder)" + } + ] + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/end_symptoms.json b/src/main/resources/modules/covid19/end_symptoms.json new file mode 100644 index 0000000..7a5415e --- /dev/null +++ b/src/main/resources/modules/covid19/end_symptoms.json @@ -0,0 +1,217 @@ +{ + "name": "end_symptoms", + "remarks": [ + "This submodule ends symptoms of COVID19 according to the rates documented in Table 1 of https://www.nejm.org/doi/full/10.1056/NEJMoa2002032", + "", + "Loss of taste from Table 2 of ", + "https://jamanetwork.com/journals/jama/fullarticle/2765183" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Chills End" + }, + "Terminal": { + "type": "Terminal" + }, + "Conjunctival Congestion End": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "246677007", + "display": "Passive conjunctival congestion (finding)" + } + ], + "direct_transition": "Cough End" + }, + "Nasal Congestion End": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "68235000", + "display": "Nasal congestion (finding)" + } + ], + "direct_transition": "Nausea End" + }, + "Headache End": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "25064002", + "display": "Headache (finding)" + } + ], + "direct_transition": "Hemoptysis End" + }, + "Cough End": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "49727002", + "display": "Cough (finding)" + } + ], + "direct_transition": "Diarrhea End" + }, + "Sore Throat End": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "267102003", + "display": "Sore throat (finding)" + } + ], + "direct_transition": "Sputum Production End" + }, + "Sputum Production End": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "248595008", + "display": "Sputum finding (finding)" + } + ], + "direct_transition": "Vomiting End" + }, + "Fatigue End": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "84229001", + "display": "Fatigue (finding)" + } + ], + "direct_transition": "Fever End" + }, + "Hemoptysis End": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "66857006", + "display": "Hemoptysis (finding)" + } + ], + "direct_transition": "Joint Pain End" + }, + "Shortness of Breath End": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "267036007", + "display": "Dyspnea (finding)" + } + ], + "direct_transition": "Wheezing End" + }, + "Nausea End": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "422587007", + "display": "Nausea (finding)" + } + ], + "direct_transition": "Shortness of Breath End" + }, + "Vomiting End": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "249497008", + "display": "Vomiting symptom (finding)" + } + ], + "direct_transition": "Loss of Taste End" + }, + "Diarrhea End": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "267060006", + "display": "Diarrhea symptom (finding)" + } + ], + "direct_transition": "Fatigue End" + }, + "Muscle Pain End": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "68962001", + "display": "Muscle pain (finding)" + } + ], + "direct_transition": "Nasal Congestion End" + }, + "Joint Pain End": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "57676002", + "display": "Joint pain (finding)" + } + ], + "direct_transition": "Muscle Pain End" + }, + "Chills End": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "43724002", + "display": "Chill (finding)" + } + ], + "direct_transition": "Conjunctival Congestion End" + }, + "Fever End": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386661006", + "display": "Fever (finding)" + } + ], + "direct_transition": "Headache End" + }, + "Loss of Taste End": { + "type": "ConditionEnd", + "direct_transition": "Terminal", + "codes": [ + { + "system": "SNOMED-CT", + "code": "36955009", + "display": "Loss of taste (finding)" + } + ] + }, + "Wheezing End": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "56018004", + "display": "Wheezing (finding)" + } + ], + "direct_transition": "Sore Throat End" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/infection.json b/src/main/resources/modules/covid19/infection.json new file mode 100644 index 0000000..e7fc743 --- /dev/null +++ b/src/main/resources/modules/covid19/infection.json @@ -0,0 +1,1253 @@ +{ + "name": "infection", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Determine Risk" + }, + "Terminal": { + "type": "Terminal" + }, + "Encounter for Test": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Suspected COVID", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "direct_transition": "Catalog Symptoms" + }, + "End Exposure": { + "type": "ConditionEnd", + "condition_onset": "Suspected COVID", + "conditional_transition": [ + { + "transition": "Administer COVID-19 Test Negative", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "negative" + } + }, + { + "transition": "Administer COVID-19 Test Positive" + } + ] + }, + "Diagnosed COVID": { + "type": "ConditionOnset", + "assign_to_attribute": "covid19", + "codes": [ + { + "system": "SNOMED-CT", + "code": "840539006", + "display": "Disease caused by severe acute respiratory syndrome coronavirus 2 (disorder)" + } + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + ] + }, + "distributions": [ + { + "transition": "End Encounter and Admit Immediately", + "distribution": 0.97 + }, + { + "transition": "Self Isolation At Home", + "distribution": 0.03 + } + ] + }, + { + "transition": "Self Isolation At Home" + } + ] + }, + "Suspected COVID": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "840544004", + "display": "Suspected disease caused by Severe acute respiratory coronavirus 2 (situation)" + } + ], + "direct_transition": "Encounter for Test" + }, + "Admission": { + "type": "CallSubmodule", + "submodule": "covid19/admission", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_death", + "operator": "==", + "value": true + } + }, + { + "transition": "Take Normal Temperature" + } + ] + }, + "Death": { + "type": "Death", + "direct_transition": "Terminal", + "referenced_by_attribute": "covid19" + }, + "Wait for Admission": { + "type": "Delay", + "direct_transition": "Admission", + "range": { + "low": 5, + "high": 8, + "unit": "days" + } + }, + "Discharge": { + "type": "EncounterEnd", + "direct_transition": "End Self Isolation At Home" + }, + "Apply Face Mask to Patient": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "261352009", + "display": "Face mask (physical object)" + } + ], + "duration": { + "low": 10, + "high": 15, + "unit": "minutes" + }, + "remarks": [ + "This should really be a \"Device\" or \"Supply\" state." + ], + "reason": "Suspected COVID", + "conditional_transition": [ + { + "transition": "Child or Immunocompromised", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_risk", + "operator": "==", + "value": "high" + }, + { + "condition_type": "Age", + "operator": "<=", + "quantity": 18, + "unit": "years", + "value": 0 + } + ] + } + }, + { + "transition": "Co-Infection Rate" + } + ] + }, + "Isolation in Negative Pressure": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736376001", + "display": "Infectious disease care plan (record artifact)" + } + ], + "direct_transition": "Wait for Test", + "reason": "Suspected COVID", + "activities": [ + { + "system": "SNOMED-CT", + "code": "444908001", + "display": "Isolation nursing in negative pressure isolation environment (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "409524006", + "display": "Airborne precautions (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "409526008", + "display": "Personal protective equipment (physical object)" + } + ], + "assign_to_attribute": "covid19_careplan" + }, + "Self Isolation At Home": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736376001", + "display": "Infectious disease care plan (record artifact)" + } + ], + "reason": "Diagnosed COVID", + "activities": [ + { + "system": "SNOMED-CT", + "code": "409524006", + "display": "Airborne precautions (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "361235007", + "display": "Isolation of infected patient (procedure)" + } + ], + "goals": [ + { + "addresses": [ + "covid19" + ], + "text": "Self isolation and social distancing for 14 days." + } + ], + "assign_to_attribute": "covid19_careplan", + "direct_transition": "End Encounter and Discharge Home" + }, + "End Self Isolation At Home": { + "type": "CarePlanEnd", + "direct_transition": "Terminal", + "referenced_by_attribute": "covid19_careplan" + }, + "Self Isolation Delay": { + "type": "Delay", + "direct_transition": "End Symptoms", + "range": { + "low": 14, + "high": 37, + "unit": "days" + }, + "remarks": [ + "Median duration of viral shedding was 20 days, and longest observed duration of viral shedding was 37 days.", + "https://doi.org/10.1016/S0140-6736(20)30566-3" + ] + }, + "Wait for Death": { + "type": "Delay", + "direct_transition": "Death", + "range": { + "low": 5, + "high": 8, + "unit": "days" + } + }, + "End Encounter and Admit Immediately": { + "type": "EncounterEnd", + "direct_transition": "Admission" + }, + "End Encounter and Discharge Home": { + "type": "EncounterEnd", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_death", + "operator": "==", + "value": true + }, + "distributions": [ + { + "transition": "Wait for Admission", + "distribution": 0.95 + }, + { + "transition": "Wait for Death", + "distribution": 0.05 + } + ] + }, + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + ] + }, + "transition": "Wait for Admission" + }, + { + "transition": "Self Isolation Delay" + } + ], + "remarks": [ + "Transition probabilities need adjustment." + ] + }, + "Retest Negative": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "94531-1", + "display": "SARS-CoV-2 RNA Pnl Resp NAA+probe" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "94531-1", + "display": "SARS-CoV-2 RNA Pnl Resp NAA+probe" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260415000", + "display": "Not detected (qualifier value)" + } + } + ], + "direct_transition": "Wait for retest" + }, + "Second Negative Test": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "94531-1", + "display": "SARS-CoV-2 RNA Pnl Resp NAA+probe" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "94531-1", + "display": "SARS-CoV-2 RNA Pnl Resp NAA+probe" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260415000", + "display": "Not detected (qualifier value)" + } + } + ], + "direct_transition": "Discharge" + }, + "Wait for retest": { + "type": "Delay", + "direct_transition": "Second Normal Temperature", + "range": { + "low": 18, + "high": 30, + "unit": "hours" + } + }, + "Take Normal Temperature": { + "type": "Observation", + "category": "vital-signs", + "unit": "Cel", + "codes": [ + { + "system": "LOINC", + "code": "8310-5", + "display": "Body temperature" + }, + { + "system": "LOINC", + "code": "8331-1", + "display": "Oral temperature" + } + ], + "direct_transition": "Retest Negative", + "range": { + "low": 36.1, + "high": 37.2 + } + }, + "Second Normal Temperature": { + "type": "Observation", + "category": "vital-signs", + "unit": "Cel", + "codes": [ + { + "system": "LOINC", + "code": "8310-5", + "display": "Body temperature" + }, + { + "system": "LOINC", + "code": "8331-1", + "display": "Oral temperature" + } + ], + "range": { + "low": 36.1, + "high": 37.2 + }, + "direct_transition": "Second Negative Test" + }, + "Determine Risk": { + "submodule": "covid19/determine_risk", + "type": "CallSubmodule", + "direct_transition": "Suspected COVID", + "remarks": [ + "Assess patient comorbidities and set attribute (covid19_risk):", + " - (high) if patient has comorbidity impacting risks", + " - (low) if patient has no comorbidity impacting risks" + ] + }, + "Severity Assessment": { + "type": "Simple", + "remarks": [ + "Does patient need negative pressure room?", + "Stable patients go into regular room with mask, contact and droplet precautions.", + "Risky patients with tracheostomy or will require procedures with aerosolation (high flow nasal canula, immediate intubation, or non-invasive positive pressure ventilation, or immediate nebulizer).", + "Risky patients: if no negative pressure rooms available, then staff need to wear PPE (N95 or PAPR)" + ], + "conditional_transition": [ + { + "transition": "Isolation in Negative Pressure", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + ] + } + }, + { + "transition": "Isolation" + } + ] + }, + "Isolation": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736376001", + "display": "Infectious disease care plan (record artifact)" + } + ], + "reason": "Suspected COVID", + "activities": [ + { + "system": "SNOMED-CT", + "code": "409524006", + "display": "Airborne precautions (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "409526008", + "display": "Personal protective equipment (physical object)" + } + ], + "assign_to_attribute": "covid19_careplan", + "direct_transition": "Wait for Test" + }, + "Wait for Test": { + "type": "Delay", + "range": { + "low": 30, + "high": 90, + "unit": "minutes" + }, + "direct_transition": "End Plan" + }, + "Administer COVID-19 Test Negative": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "94531-1", + "display": "SARS-CoV-2 RNA Pnl Resp NAA+probe" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "94531-1", + "display": "SARS-CoV-2 RNA Pnl Resp NAA+probe" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260415000", + "display": "Not detected (qualifier value)" + } + } + ], + "direct_transition": "End Encounter Testing Negative" + }, + "Administer COVID-19 Test Positive": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "94531-1", + "display": "SARS-CoV-2 RNA Pnl Resp NAA+probe" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "94531-1", + "display": "SARS-CoV-2 RNA Pnl Resp NAA+probe" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260373001", + "display": "Detected (qualifier value)" + } + } + ], + "direct_transition": "Diagnosed COVID" + }, + "End Plan": { + "type": "CarePlanEnd", + "direct_transition": "End Exposure", + "referenced_by_attribute": "covid19_careplan" + }, + "End Encounter Testing Negative": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Influenza B Detected": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "80381-7", + "display": "Influenza virus A and B Ag panel - Upper respiratory specimen by Rapid immunoassay" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "80382-5", + "display": "Influenza virus A Ag [Presence] in Upper respiratory specimen by Rapid immunoassay" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260415000", + "display": "Not detected (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "80383-3", + "display": "Influenza virus B Ag [Presence] in Upper respiratory specimen by Rapid immunoassay" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260373001", + "display": "Detected (qualifier value)" + } + } + ], + "direct_transition": "Severity Assessment" + }, + "Influenza A Detected": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "80381-7", + "display": "Influenza virus A and B Ag panel - Upper respiratory specimen by Rapid immunoassay" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "80382-5", + "display": "Influenza virus A Ag [Presence] in Upper respiratory specimen by Rapid immunoassay" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260373001", + "display": "Detected (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "80383-3", + "display": "Influenza virus B Ag [Presence] in Upper respiratory specimen by Rapid immunoassay" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260415000", + "display": "Not detected (qualifier value)" + } + } + ], + "direct_transition": "Severity Assessment" + }, + "Influenza Not Detected": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "80381-7", + "display": "Influenza virus A and B Ag panel - Upper respiratory specimen by Rapid immunoassay" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "80382-5", + "display": "Influenza virus A Ag [Presence] in Upper respiratory specimen by Rapid immunoassay" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260415000", + "display": "Not detected (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "80383-3", + "display": "Influenza virus B Ag [Presence] in Upper respiratory specimen by Rapid immunoassay" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260415000", + "display": "Not detected (qualifier value)" + } + } + ], + "direct_transition": "Severity Assessment" + }, + "Child or Immunocompromised": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Respiratory Virus Panel Not Detected", + "distribution": 0.92 + }, + { + "transition": "Respiratory Virus Panel Influenza A Detected", + "distribution": 0.04 + }, + { + "transition": "Respiratory Virus Panel Influenza B Detected", + "distribution": 0.04 + } + ] + }, + "Co-Infection Rate": { + "type": "Simple", + "remarks": [ + "Approximately 8% co-infection rate with influenza." + ], + "distributed_transition": [ + { + "transition": "Influenza Not Detected", + "distribution": 0.92 + }, + { + "transition": "Influenza A Detected", + "distribution": 0.04 + }, + { + "transition": "Influenza B Detected", + "distribution": 0.04 + } + ] + }, + "Respiratory Virus Panel Not Detected": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "92143-7", + "display": "Respiratory pathogens DNA and RNA panel - Respiratory specimen by NAA with probe detection" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92142-9", + "display": "Influenza virus A RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92141-1", + "display": "Influenza virus B RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92131-2", + "display": "Respiratory syncytial virus RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92140-3", + "display": "Parainfluenza virus 1 RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92139-5", + "display": "Parainfluenza virus 2 RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92138-7", + "display": "Parainfluenza virus 3 RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92130-4", + "display": "Rhinovirus RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92134-6", + "display": "Human metapneumovirus RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "94040-3", + "display": "Adenovirus A+B+C+D+E DNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + } + ], + "direct_transition": "Severity Assessment" + }, + "Respiratory Virus Panel Influenza A Detected": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "92143-7", + "display": "Respiratory pathogens DNA and RNA panel - Respiratory specimen by NAA with probe detection" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92142-9", + "display": "Influenza virus A RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "10828004", + "display": "Positive (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92141-1", + "display": "Influenza virus B RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92131-2", + "display": "Respiratory syncytial virus RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92140-3", + "display": "Parainfluenza virus 1 RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92139-5", + "display": "Parainfluenza virus 2 RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92138-7", + "display": "Parainfluenza virus 3 RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92130-4", + "display": "Rhinovirus RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92134-6", + "display": "Human metapneumovirus RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "94040-3", + "display": "Adenovirus A+B+C+D+E DNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + } + ], + "direct_transition": "Severity Assessment" + }, + "Respiratory Virus Panel Influenza B Detected": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "92143-7", + "display": "Respiratory pathogens DNA and RNA panel - Respiratory specimen by NAA with probe detection" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92142-9", + "display": "Influenza virus A RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92141-1", + "display": "Influenza virus B RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "10828004", + "display": "Positive (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92131-2", + "display": "Respiratory syncytial virus RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92140-3", + "display": "Parainfluenza virus 1 RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92139-5", + "display": "Parainfluenza virus 2 RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92138-7", + "display": "Parainfluenza virus 3 RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92130-4", + "display": "Rhinovirus RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "92134-6", + "display": "Human metapneumovirus RNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "94040-3", + "display": "Adenovirus A+B+C+D+E DNA [Presence] in Respiratory specimen by NAA with probe detection" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + } + ], + "direct_transition": "Severity Assessment" + }, + "Catalog Symptoms": { + "type": "CallSubmodule", + "submodule": "covid19/symptoms", + "direct_transition": "Poor Oxygen Saturation" + }, + "End Symptoms": { + "type": "CallSubmodule", + "submodule": "covid19/end_symptoms", + "direct_transition": "End Outcomes" + }, + "End Outcomes": { + "type": "CallSubmodule", + "submodule": "covid19/end_outcomes", + "direct_transition": "End Self Isolation At Home" + }, + "Poor Oxygen Saturation": { + "type": "VitalSign", + "vital_sign": "Oxygen Saturation", + "unit": "%", + "range": { + "low": 75, + "high": 89 + }, + "direct_transition": "Record Vitals" + }, + "Record Vitals": { + "type": "CallSubmodule", + "submodule": "covid19/measurements_vitals", + "direct_transition": "Apply Face Mask to Patient" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/measurements_daily.json b/src/main/resources/modules/covid19/measurements_daily.json new file mode 100644 index 0000000..40a14c0 --- /dev/null +++ b/src/main/resources/modules/covid19/measurements_daily.json @@ -0,0 +1,932 @@ +{ + "name": "measurements_daily", + "remarks": [ + "Daily observations and labs during hospitalization and ICU." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Record Vitals" + }, + "Terminal": { + "type": "Terminal" + }, + "CBC": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3, + "high": 4 + } + }, + { + "category": "laboratory", + "unit": "10*6/uL", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.77, + "high": 5.8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "range": { + "low": 11.1, + "high": 14.1 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "4544-3", + "display": "Hematocrit [Volume Fraction] of Blood by Automated count" + } + ], + "range": { + "low": 37.5, + "high": 46.6 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 79, + "high": 97 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 26.6, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 31.5, + "high": 35.7 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "788-0", + "display": "Erythrocyte distribution width [Ratio] by Automated count" + } + ], + "range": { + "low": 12.3, + "high": 15.4 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 99, + "high": 150 + } + } + ], + "remarks": [ + "In the most severe patients, white-cell counts should be less than 4000 per mm3", + "In the most severe patients, platelet counts should also trend towards being less than 150K per mm3", + "In the most severe patients, median hemoglobin should be around 12.8 g/dL" + ], + "direct_transition": "CBC_Differential" + }, + "CBC_Differential": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "57023-4", + "display": "Auto Differential panel - Blood" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "770-8", + "display": "Neutrophils/100 leukocytes in Blood by Automated count" + } + ], + "range": { + "low": 10, + "high": 45 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "736-9", + "display": "Lymphocytes/100 leukocytes in Blood by Automated count" + } + ], + "range": { + "low": 5, + "high": 25 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "5905-5", + "display": "Monocytes/100 leukocytes in Blood by Automated count" + } + ], + "range": { + "low": 5, + "high": 15 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "713-8", + "display": "Eosinophils/100 leukocytes in Blood by Automated count" + } + ], + "range": { + "low": 3, + "high": 6 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "706-2", + "display": "Basophils/100 leukocytes in Blood by Automated count" + } + ], + "range": { + "low": 2, + "high": 4 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "751-8", + "display": "Neutrophils [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 1.4, + "high": 4 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "731-0", + "display": "Lymphocytes [#/volume] in Blood by Automated count" + } + ], + "attribute": "covid19_lymphocytes" + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "742-7", + "display": "Monocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 0.5, + "high": 1.4 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "711-2", + "display": "Eosinophils [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 0.2, + "high": 0.6 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "704-7", + "display": "Basophils [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 0.2, + "high": 0.4 + } + } + ], + "remarks": [ + "Viral infection should show DECREASES in neutro and lymph, and INCREASES in mono, eosino, and baso." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "is not nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40095003", + "display": "Injury of kidney (disorder)" + } + ] + } + ] + }, + "transition": "Comprehensive Metabolic Panel with Kidney Damage" + }, + { + "transition": "Comprehensive Metabolic Panel with Normal Kidney" + } + ] + }, + "Ventilation Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Arterial Blood Gas", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65710008", + "display": "Acute respiratory failure (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "76571007", + "display": "Septic shock (disorder)" + } + ] + } + ] + } + }, + { + "transition": "Terminal" + } + ] + }, + "Arterial Blood Gas": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24336-0", + "display": "Gas panel - Arterial blood" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "[pH]", + "codes": [ + { + "system": "LOINC", + "code": "2744-1", + "display": "pH of Arterial blood" + } + ], + "range": { + "low": 6.8, + "high": 7.3 + } + }, + { + "category": "laboratory", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "2019-8", + "display": "Carbon dioxide [Partial pressure] in Arterial blood" + } + ], + "range": { + "low": 35, + "high": 45 + } + }, + { + "category": "laboratory", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "2703-7", + "display": "Oxygen [Partial pressure] in Arterial blood" + } + ], + "attribute": "covid19_pao2" + }, + { + "category": "laboratory", + "unit": "mmol/L", + "codes": [ + { + "system": "LOINC", + "code": "1960-4", + "display": "Bicarbonate [Moles/volume] in Arterial blood" + } + ], + "range": { + "low": 22, + "high": 27 + } + }, + { + "category": "vital-signs", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "2708-6", + "display": "Oxygen saturation in Arterial blood" + }, + { + "system": "LOINC", + "code": "59408-5", + "display": "Oxygen saturation in Arterial blood by Pulse oximetry" + } + ], + "vital_sign": "Oxygen Saturation" + } + ], + "direct_transition": "Record FiO2" + }, + "Comprehensive Metabolic Panel with Normal Kidney": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "vital_sign": "Creatinine" + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "vital_sign": "EGFR" + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 5.5, + "high": 8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 3.5, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.3, + "high": 1.2 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 39, + "high": 117 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 44 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 40 + } + } + ], + "direct_transition": "Ventilation Check" + }, + "Comprehensive Metabolic Panel with Kidney Damage": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.5, + "high": 3 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 5, + "high": 14 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 5.5, + "high": 8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 3.5, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 15 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 39, + "high": 117 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 44 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 40 + } + } + ], + "direct_transition": "Ventilation Check" + }, + "Record FiO2": { + "type": "Observation", + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "19994-3", + "display": "Oxygen/Total gas setting [Volume Fraction] Ventilator" + } + ], + "direct_transition": "Terminal", + "range": { + "low": 30, + "high": 100 + } + }, + "Record Vitals": { + "type": "CallSubmodule", + "submodule": "covid19/measurements_vitals", + "direct_transition": "CBC" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/measurements_frequent.json b/src/main/resources/modules/covid19/measurements_frequent.json new file mode 100644 index 0000000..8a44146 --- /dev/null +++ b/src/main/resources/modules/covid19/measurements_frequent.json @@ -0,0 +1,222 @@ +{ + "name": "measurements_frequent", + "remarks": [ + "Frequent observations and labs during hospitalization and ICU." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "D_Dimer" + }, + "Terminal": { + "type": "Terminal" + }, + "D_Dimer": { + "type": "Observation", + "category": "laboratory", + "unit": "ug/mL", + "codes": [ + { + "system": "LOINC", + "code": "48065-7", + "display": "Fibrin D-dimer FEU [Mass/volume] in Platelet poor plasma" + } + ], + "attribute": "covid19_ddimer", + "conditional_transition": [ + { + "transition": "Interleukin_6_Rarely_Used_Clinical_Trial_Patients_Only", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "toclizumab" + } + }, + { + "transition": "Serum_Ferritin" + } + ] + }, + "Interleukin_6_Rarely_Used_Clinical_Trial_Patients_Only": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "82335-1", + "display": "Cytokines panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "pg/mL", + "codes": [ + { + "system": "LOINC", + "code": "26881-3", + "display": "Interleukin 6 [Mass/volume] in Serum or Plasma" + } + ], + "attribute": "covid19_interleukin6" + } + ], + "remarks": [ + "Small percentage of patients will have this. 3%" + ], + "direct_transition": "Serum_Ferritin" + }, + "Serum_Ferritin": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "75689-0", + "display": "Iron panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "ug/L", + "codes": [ + { + "system": "LOINC", + "code": "2276-4", + "display": "Ferritin [Mass/volume] in Serum or Plasma" + } + ], + "attribute": "covid19_ferritin" + } + ], + "direct_transition": "High_Sensitivity_Cardiac_Troponin_I" + }, + "High_Sensitivity_Cardiac_Troponin_I": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "89577-1", + "display": "Troponin I.cardiac panel - Serum or Plasma by High sensitivity method" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "pg/mL", + "codes": [ + { + "system": "LOINC", + "code": "89579-7", + "display": "Troponin I.cardiac [Mass/volume] in Serum or Plasma by High sensitivity method" + } + ], + "attribute": "covid19_cardiac_troponin" + } + ], + "direct_transition": "Lactate_Dehydrogenase" + }, + "Lactate_Dehydrogenase": { + "type": "Observation", + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "14804-9", + "display": "Lactate dehydrogenase [Enzymatic activity/volume] in Serum or Plasma by Lactate to pyruvate reaction" + }, + { + "system": "LOINC", + "code": "2532-0", + "display": "Lactate dehydrogenase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "attribute": "covid19_lactate_dehydrogenase", + "remarks": [ + "TODO: Should be part of the Panel 42929-0 Lactate dehydrogenase panel - Serum or Plasma, but there are too many other required values that we do not know the ranges for." + ], + "direct_transition": "Creatine Kinase" + }, + "C-Reactive Protein": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/L", + "codes": [ + { + "system": "LOINC", + "code": "1988-5", + "display": "C reactive protein [Mass/volume] in Serum or Plasma" + } + ], + "direct_transition": "Prothrombin_Time", + "attribute": "covid19_c_reactive_protein" + }, + "Creatine Kinase": { + "type": "Observation", + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "2157-6", + "display": "Creatine kinase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "direct_transition": "C-Reactive Protein", + "attribute": "covid19_creatine_kinase" + }, + "Prothrombin_Time": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "34528-0", + "display": "PT panel - Platelet poor plasma by Coagulation assay" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "s", + "codes": [ + { + "system": "LOINC", + "code": "5902-2", + "display": "Prothrombin time (PT)" + } + ], + "attribute": "covid19_pt" + }, + { + "category": "laboratory", + "unit": "{INR}", + "codes": [ + { + "system": "LOINC", + "code": "6301-6", + "display": "INR in Platelet poor plasma by Coagulation assay" + } + ], + "attribute": "covid19_inr" + } + ], + "direct_transition": "Procalcitonin" + }, + "Procalcitonin": { + "type": "Observation", + "category": "laboratory", + "unit": "ng/mL", + "codes": [ + { + "system": "LOINC", + "code": "33959-8", + "display": "Procalcitonin [Mass/volume] in Serum or Plasma" + } + ], + "direct_transition": "Terminal", + "attribute": "covid19_procalcitonin" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/measurements_vitals.json b/src/main/resources/modules/covid19/measurements_vitals.json new file mode 100644 index 0000000..eacdd20 --- /dev/null +++ b/src/main/resources/modules/covid19/measurements_vitals.json @@ -0,0 +1,143 @@ +{ + "name": "measurements_vitals", + "remarks": [ + "Vitals taken in the covid19 module." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Temperature" + }, + "Terminal": { + "type": "Terminal" + }, + "Temperature": { + "type": "Observation", + "category": "vital-signs", + "unit": "Cel", + "codes": [ + { + "system": "LOINC", + "code": "8310-5", + "display": "Body temperature" + }, + { + "system": "LOINC", + "code": "8331-1", + "display": "Oral temperature" + } + ], + "range": { + "low": 37.7, + "high": 42.2 + }, + "direct_transition": "Respiratory Rate" + }, + "Oxygen Saturation": { + "type": "Observation", + "category": "vital-signs", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "2708-6", + "display": "Oxygen saturation in Arterial blood" + }, + { + "system": "LOINC", + "code": "59408-5", + "display": "Oxygen saturation in Arterial blood by Pulse oximetry" + } + ], + "vital_sign": "Oxygen Saturation", + "direct_transition": "Blood Pressure" + }, + "Blood Pressure": { + "type": "MultiObservation", + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "85354-9", + "display": "Blood pressure panel with all children optional" + } + ], + "observations": [ + { + "category": "vital-signs", + "vital_sign": "Systolic Blood Pressure", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic Blood Pressure" + } + ], + "unit": "mm[Hg]" + }, + { + "category": "vital-signs", + "vital_sign": "Diastolic Blood Pressure", + "codes": [ + { + "system": "LOINC", + "code": "8462-4", + "display": "Diastolic Blood Pressure" + } + ], + "unit": "mm[Hg]" + } + ], + "direct_transition": "Body Weight" + }, + "Body Weight": { + "type": "Observation", + "category": "vital-signs", + "vital_sign": "Weight", + "codes": [ + { + "system": "LOINC", + "code": "29463-7", + "display": "Body Weight" + } + ], + "unit": "kg", + "direct_transition": "Terminal" + }, + "Respiratory Rate": { + "type": "Observation", + "category": "vital-signs", + "unit": "/min", + "codes": [ + { + "system": "LOINC", + "code": "9279-1", + "display": "Respiratory rate" + } + ], + "direct_transition": "Heart Rate", + "range": { + "low": 12, + "high": 40 + } + }, + "Heart Rate": { + "type": "Observation", + "category": "vital-signs", + "unit": "/min", + "codes": [ + { + "system": "LOINC", + "code": "8867-4", + "display": "Heart rate" + } + ], + "direct_transition": "Oxygen Saturation", + "range": { + "low": 50, + "high": 200 + } + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/medications.json b/src/main/resources/modules/covid19/medications.json new file mode 100644 index 0000000..c156100 --- /dev/null +++ b/src/main/resources/modules/covid19/medications.json @@ -0,0 +1,1054 @@ +{ + "name": "medications", + "remarks": [ + "This submodule determines clinical trial medication treatments for covid19.", + "These treatments were selected on location (EU, Canada, US), clinicaltrials.gov, and:", + "", + "Sanders JM, Monogue ML, Jodlowski TZ, Cutrell JB. Pharmacologic Treatments for Coronavirus Disease 2019 (COVID-19): A Review. JAMA. Published online April 13, 2020. doi:10.1001/jama.2020.6019", + "", + "Some of these medications do not have RXNORM codes.", + "", + "In light of the significant number of therapeutic agents currently being tested via clinical research trials, the team opted to include one agent representative of a potential drug target (e.g., IL-6) therapeutic class (e.g., antimalarial), or pharmacologic class (e.g., JAK inhibitor) based on limited knowledge of SARS-CoV-2 virology and potential drug targets. The agent selected for inclusion in the model is the agent with the earliest posting date on clinical trials.gov. As protocols differ across clinical trials, treatment dose does not denote a specific protocol but rather the minimum ordering dose at the time of review (April 2020). Additionally, treatment duration denotes the maximum duration noted among protocols that were available to the public. We anticipate updating the submodule as clinical trial results become available." + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Determine Clinical Trial Eligibility", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "is nil" + } + }, + { + "transition": "Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "none" + } + }, + { + "transition": "Administer Medications" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Determine Clinical Trial Eligibility": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Determine Clinical Trial Enrollment", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years", + "value": 0 + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "is nil" + }, + { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": false + } + ] + } + ] + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "is nil" + }, + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "<", + "value": 4 + } + ] + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "lung_cancer", + "operator": "is nil" + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "colorectal_cancer_stage", + "operator": "is nil" + }, + { + "condition_type": "Attribute", + "attribute": "breast_cancer_condition", + "operator": "is nil" + } + ] + } + ] + } + ] + } + ] + } + }, + { + "transition": "No Clinical Trial" + } + ] + }, + "Severity Breakdown": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "General", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "general" + } + }, + { + "transition": "Severe", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + } + }, + { + "transition": "Critical", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + } + ] + }, + "Determine Clinical Trial Enrollment": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Severity Breakdown", + "distribution": 0.1 + }, + { + "transition": "No Clinical Trial", + "distribution": 0.9 + } + ] + }, + "General": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Losartan Trial", + "distribution": 0.1 + }, + { + "transition": "Hydroxychloroquine Trial", + "distribution": 0.1 + }, + { + "transition": "Hydroxychloroquine and Azithromycin Trial", + "distribution": 0.1 + }, + { + "transition": "Chloroquine Phosphate Trial", + "distribution": 0.1 + }, + { + "transition": "Chloroquine Phosphate and Azithromycin Trial", + "distribution": 0.1 + }, + { + "transition": "Anakinra Trial", + "distribution": 0.1 + }, + { + "transition": "Sirolimus Trial", + "distribution": 0.1 + }, + { + "transition": "Tranexamic Acid Trial", + "distribution": 0.1 + }, + { + "transition": "CM4620 Trial", + "distribution": 0.1 + }, + { + "transition": "CD24Fc Trial", + "distribution": 0.1 + } + ] + }, + "Hydroxychloroquine": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "979092", + "display": "Hydroxychloroquine Sulfate 200 MG Oral Tablet" + } + ], + "administration": true, + "reason": "covid19", + "direct_transition": "Subtract Dose", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "days" + }, + "refills": 2 + } + }, + "Azithromycin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 308460, + "display": "Azithromycin 250 MG Oral Tablet" + } + ], + "administration": true, + "reason": "covid19", + "remarks": [ + "Really this is only administered if there is an additional bacterial infection in the lungs." + ], + "direct_transition": "Hydroxychloroquine" + }, + "Administer Medications": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial_duration", + "operator": ">", + "value": 0 + }, + "transition": "Check Clinical Trial" + }, + { + "transition": "Terminal" + } + ] + }, + "No Clinical Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "direct_transition": "Terminal", + "value": "none" + }, + "Severe": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Losartan Trial", + "distribution": 0.067 + }, + { + "transition": "Hydroxychloroquine Trial", + "distribution": 0.067 + }, + { + "transition": "Hydroxychloroquine and Azithromycin Trial", + "distribution": 0.067 + }, + { + "transition": "Plasma Trial", + "distribution": 0.067 + }, + { + "transition": "Lopinavir Ritonavir Trial", + "distribution": 0.067 + }, + { + "transition": "Remdesivir Trial", + "distribution": 0.067 + }, + { + "transition": "Toclizumab Trial", + "distribution": 0.067 + }, + { + "transition": "Leronlimab Trial", + "distribution": 0.067 + }, + { + "transition": "Baricitinib Trial", + "distribution": 0.067 + }, + { + "transition": "Chloroquine Phosphate Trial", + "distribution": 0.067 + }, + { + "transition": "Chloroquine Phosphate and Azithromycin Trial", + "distribution": 0.067 + }, + { + "transition": "Anakinra Trial", + "distribution": 0.067 + }, + { + "transition": "Lenzilumab Trial", + "distribution": 0.067 + }, + { + "transition": "CM4620 Trial", + "distribution": 0.067 + }, + { + "transition": "CD24Fc Trial", + "distribution": 0.067 + } + ] + }, + "Critical": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Plasma Trial", + "distribution": 0.167 + }, + { + "transition": "Remdesivir Trial", + "distribution": 0.167 + }, + { + "transition": "Toclizumab Trial", + "distribution": 0.167 + }, + { + "transition": "Leronlimab Trial", + "distribution": 0.167 + }, + { + "transition": "Baricitinib Trial", + "distribution": 0.167 + }, + { + "transition": "Aviptadil Trial", + "distribution": 0.167 + } + ] + }, + "Losartan Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "value": "losartan", + "conditional_transition": [ + { + "transition": "Hydroxychloroquine Trial", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension", + "operator": "is not nil" + } + }, + { + "transition": "Duration 14 days" + } + ] + }, + "Hydroxychloroquine Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "value": "hydroxychloroquine", + "direct_transition": "Duration 14 days" + }, + "Hydroxychloroquine and Azithromycin Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "value": "hydroxychloroquine+azithromycin", + "direct_transition": "Duration 14 days" + }, + "Duration 14 days": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial_duration", + "direct_transition": "Administer Medications", + "value": 14 + }, + "Duration 10 days": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial_duration", + "value": 10, + "direct_transition": "Administer Medications" + }, + "Plasma Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "direct_transition": "Single Dose", + "value": "convalescent_plasma" + }, + "Lopinavir Ritonavir Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "value": "lopinavir_ritonavir", + "direct_transition": "Duration 14 days" + }, + "Remdesivir Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "value": "remdesivir", + "direct_transition": "Duration 10 days" + }, + "Toclizumab Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "value": "toclizumab", + "direct_transition": "Double Dose" + }, + "Leronlimab Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "value": "leronlimab", + "direct_transition": "Double Dose" + }, + "Baricitinib Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "value": "baricitinib", + "direct_transition": "Duration 14 days" + }, + "Single Dose": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial_duration", + "value": 1, + "direct_transition": "Administer Medications" + }, + "Double Dose": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial_duration", + "value": 2, + "direct_transition": "Administer Medications" + }, + "Subtract Dose": { + "type": "Counter", + "attribute": "covid19_clinical_trial_duration", + "action": "decrement", + "direct_transition": "Terminal" + }, + "Check Clinical Trial": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Losartan", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "losartan" + } + }, + { + "transition": "Hydroxychloroquine", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "hydroxychloroquine" + } + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "hydroxychloroquine+azithromycin" + }, + "transition": "First Five Days" + }, + { + "transition": "Human Plasma", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "convalescent_plasma" + } + }, + { + "transition": "Lopinavir Rotinavir", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "lopinavir_rotinavir" + } + }, + { + "transition": "Remdesivir", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "remdesivir" + } + }, + { + "transition": "Toclizumab", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "toclizumab" + } + }, + { + "transition": "Leronlimab", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "leronlimab" + } + }, + { + "transition": "Baricitinib", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "baricitinib" + } + }, + { + "transition": "Chloroquine Phosphate", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "chloroquine_phosphate" + } + }, + { + "transition": "Azithromycin_2", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "chloroquine_phosphate+azithromycin" + } + }, + { + "transition": "Anakinra", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "anakinra" + } + }, + { + "transition": "Lenzilumab", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "lenzilumab" + } + }, + { + "transition": "Sirolimus", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "sirolimus" + } + }, + { + "transition": "Tranexamic Acid", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "tranexamic_acid" + } + }, + { + "transition": "CM4620", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "cm4620" + } + }, + { + "transition": "Aviptadil", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "aviptadil" + } + }, + { + "transition": "CD24Fc", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial", + "operator": "==", + "value": "cd24fc" + } + }, + { + "transition": "Subtract Dose" + } + ] + }, + "Lopinavir Rotinavir": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 597730, + "display": "lopinavir 200 MG / Ritonavir 50 MG Oral Tablet" + } + ], + "administration": true, + "reason": "covid19", + "direct_transition": "Subtract Dose", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "days" + }, + "refills": 2 + } + }, + "Losartan": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 979485, + "display": "Losartan Potassium 25 MG Oral Tablet" + } + ], + "administration": true, + "reason": "covid19", + "direct_transition": "Subtract Dose" + }, + "Plasma Transfusion": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "13569004", + "display": "Transfusion of plasma (procedure)" + } + ], + "duration": { + "low": 30, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "Subtract Dose", + "reason": "covid19" + }, + "Human Plasma": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "84879009", + "display": "Human plasma, blood product (product)" + } + } + ], + "direct_transition": "Plasma Transfusion" + }, + "Remdesivir": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 2284960, + "display": "remdesivir 100 MG Injection" + } + ], + "administration": true, + "reason": "covid19", + "direct_transition": "Subtract Dose" + }, + "Toclizumab": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "1657981", + "display": "20 ML tocilizumab 20 MG/ML Injection" + } + ], + "remarks": [ + "Tocilizumab injection to prevent cytokine storms." + ], + "administration": true, + "reason": "covid19", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 8, + "unit": "hours" + }, + "duration": { + "quantity": 24, + "unit": "hours" + } + }, + "direct_transition": "Subtract Dose" + }, + "Leronlimab": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 999998, + "display": "Leronlimab 700 MG Injection" + } + ], + "administration": true, + "reason": "covid19", + "direct_transition": "Subtract Dose" + }, + "Baricitinib": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 2047241, + "display": "baricitinib 2 MG Oral Tablet" + } + ], + "administration": true, + "reason": "covid19", + "direct_transition": "Subtract Dose" + }, + "First Five Days": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Azithromycin", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_clinical_trial_duration", + "operator": ">=", + "value": 9 + } + }, + { + "transition": "Hydroxychloroquine" + } + ] + }, + "Chloroquine Phosphate and Azithromycin Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "direct_transition": "Duration 5 days", + "value": "chloroquine_phosphate+azithromycin" + }, + "Chloroquine Phosphate Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "direct_transition": "Duration 5 days", + "value": "chloroquine_phosphate" + }, + "Duration 5 days": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial_duration", + "direct_transition": "Administer Medications", + "value": 5 + }, + "Chloroquine Phosphate": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1116758, + "display": "chloroquine phosphate 500 MG Oral Tablet" + } + ], + "administration": true, + "reason": "covid19", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "days" + }, + "refills": 2 + }, + "direct_transition": "Subtract Dose" + }, + "Azithromycin_2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 308460, + "display": "Azithromycin 250 MG Oral Tablet" + } + ], + "administration": true, + "reason": "covid19", + "remarks": [ + "Really this is only administered if there is an additional bacterial infection in the lungs." + ], + "direct_transition": "Chloroquine Phosphate" + }, + "Duration 15 days": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial_duration", + "direct_transition": "Administer Medications", + "value": 15 + }, + "Anakinra Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "direct_transition": "Duration 15 days", + "value": "anakinra" + }, + "Anakinra": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 727711, + "display": "0.67 ML anakinra 149 MG/ML Prefilled Syringe" + } + ], + "administration": true, + "reason": "covid19", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "days" + }, + "refills": 4 + }, + "direct_transition": "Subtract Dose" + }, + "Lenzilumab Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "direct_transition": "Single Dose", + "value": "lenzilumab" + }, + "Lenzilumab": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 999999, + "display": "Lenzilumab 200 MG IV" + } + ], + "administration": true, + "reason": "covid19", + "direct_transition": "Subtract Dose" + }, + "Sirolimus Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "value": "sirolimus", + "direct_transition": "Duration 14 days" + }, + "Sirolimus": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 360110, + "display": "Sirolimus 2 MG Oral Tablet" + } + ], + "administration": true, + "reason": "covid19", + "direct_transition": "Subtract Dose" + }, + "Tranexamic Acid Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "direct_transition": "Duration 5 days", + "value": "tranexamic_acid" + }, + "Tranexamic Acid": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 883826, + "display": "Tranexamic Acid 650 MG Oral Tablet" + } + ], + "administration": true, + "reason": "covid19", + "direct_transition": "Subtract Dose", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "days" + }, + "refills": 6 + } + }, + "CM4620": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 999999, + "display": "CM4620 Injectable Emulsion" + } + ], + "administration": true, + "reason": "covid19", + "direct_transition": "Subtract Dose" + }, + "Duration 3 days": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial_duration", + "direct_transition": "Administer Medications", + "value": 3 + }, + "CM4620 Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "direct_transition": "Duration 3 days", + "value": "cm4620" + }, + "Aviptadil": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 999999, + "display": "Aviptadil Infusion" + } + ], + "administration": true, + "reason": "covid19", + "direct_transition": "Subtract Dose", + "prescription": { + "dosage": { + "amount": 150, + "frequency": 1, + "period": 1, + "unit": "hours" + }, + "duration": { + "quantity": 1, + "unit": "days" + }, + "as_needed": true, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "261754007", + "display": "Continuous infusion (qualifier value)" + } + ] + } + }, + "Aviptadil Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "direct_transition": "Duration 5 days", + "value": "aviptadil" + }, + "CD24Fc Trial": { + "type": "SetAttribute", + "attribute": "covid19_clinical_trial", + "value": "cd24fc", + "direct_transition": "Single Dose" + }, + "CD24Fc": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 999999, + "display": "CD24Fc 480 MG IV" + } + ], + "administration": true, + "reason": "covid19", + "direct_transition": "Subtract Dose" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/nonsurvivor_lab_values.json b/src/main/resources/modules/covid19/nonsurvivor_lab_values.json new file mode 100644 index 0000000..87e1a65 --- /dev/null +++ b/src/main/resources/modules/covid19/nonsurvivor_lab_values.json @@ -0,0 +1,514 @@ +{ + "name": "nonsurvivor_lab_values", + "remarks": [ + "Based on Figure 2 from https://doi.org/10.1016/S0140-6736(20)30566-3" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Set Creatine Kinase" + }, + "Terminal": { + "type": "Terminal" + }, + "Day": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "DDimer_4", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_admission_days", + "operator": "<", + "value": 7 + } + }, + { + "transition": "DDimer_7", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_admission_days", + "operator": "<", + "value": 10 + } + }, + { + "transition": "DDimer_10", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_admission_days", + "operator": "<", + "value": 13 + } + }, + { + "transition": "DDimer_13", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_admission_days", + "operator": "<", + "value": 16 + } + }, + { + "transition": "DDimer_16", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_admission_days", + "operator": "<", + "value": 19 + } + }, + { + "transition": "DDimer_19", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_admission_days", + "operator": "==", + "value": 22 + } + }, + { + "transition": "DDimer_22" + } + ] + }, + "DDimer_4": { + "type": "SetAttribute", + "attribute": "covid19_ddimer", + "range": { + "low": 1, + "high": 2 + }, + "direct_transition": "Lymphocytes_4" + }, + "DDimer_7": { + "type": "SetAttribute", + "attribute": "covid19_ddimer", + "range": { + "low": 2, + "high": 3 + }, + "direct_transition": "Lymphocytes_7" + }, + "DDimer_10": { + "type": "SetAttribute", + "attribute": "covid19_ddimer", + "range": { + "low": 12, + "high": 16 + }, + "direct_transition": "Lymphocytes_10" + }, + "DDimer_13": { + "type": "SetAttribute", + "attribute": "covid19_ddimer", + "range": { + "low": 14, + "high": 19 + }, + "direct_transition": "Lymphocytes_13" + }, + "DDimer_16": { + "type": "SetAttribute", + "attribute": "covid19_ddimer", + "range": { + "low": 20, + "high": 26 + }, + "direct_transition": "Lymphocytes_16" + }, + "DDimer_19": { + "type": "SetAttribute", + "attribute": "covid19_ddimer", + "range": { + "low": 33, + "high": 38 + }, + "direct_transition": "Lymphocytes_19" + }, + "DDimer_22": { + "type": "SetAttribute", + "attribute": "covid19_ddimer", + "range": { + "low": 39, + "high": 45 + }, + "direct_transition": "Lymphocytes_22" + }, + "Lymphocytes_4": { + "type": "SetAttribute", + "attribute": "covid19_lymphocytes", + "direct_transition": "Interleukin6_4", + "range": { + "low": 0.4, + "high": 0.8 + } + }, + "Lymphocytes_19": { + "type": "SetAttribute", + "attribute": "covid19_lymphocytes", + "range": { + "low": 0.3, + "high": 0.6 + }, + "direct_transition": "Interleukin6_19" + }, + "Lymphocytes_16": { + "type": "SetAttribute", + "attribute": "covid19_lymphocytes", + "range": { + "low": 0.3, + "high": 0.6 + }, + "direct_transition": "Interleukin6_16" + }, + "Lymphocytes_13": { + "type": "SetAttribute", + "attribute": "covid19_lymphocytes", + "range": { + "low": 0.4, + "high": 0.6 + }, + "direct_transition": "Interleukin6_13" + }, + "Lymphocytes_10": { + "type": "SetAttribute", + "attribute": "covid19_lymphocytes", + "range": { + "low": 0.4, + "high": 0.7 + }, + "direct_transition": "Interleukin6_10" + }, + "Lymphocytes_7": { + "type": "SetAttribute", + "attribute": "covid19_lymphocytes", + "range": { + "low": 0.5, + "high": 0.8 + }, + "direct_transition": "Interleukin6_7" + }, + "Interleukin6_4": { + "type": "SetAttribute", + "attribute": "covid19_interleukin6", + "direct_transition": "Ferritin_4", + "range": { + "low": 7.5, + "high": 11.5 + } + }, + "Lymphocytes_22": { + "type": "SetAttribute", + "attribute": "covid19_lymphocytes", + "range": { + "low": 0.3, + "high": 0.5 + }, + "direct_transition": "Interleukin6_22" + }, + "Interleukin6_22": { + "type": "SetAttribute", + "attribute": "covid19_interleukin6", + "range": { + "low": 26, + "high": 30 + }, + "direct_transition": "Ferritin_22" + }, + "Interleukin6_19": { + "type": "SetAttribute", + "attribute": "covid19_interleukin6", + "range": { + "low": 24, + "high": 28 + }, + "direct_transition": "Ferritin_19" + }, + "Interleukin6_16": { + "type": "SetAttribute", + "attribute": "covid19_interleukin6", + "range": { + "low": 15, + "high": 19 + }, + "direct_transition": "Ferritin_16" + }, + "Interleukin6_13": { + "type": "SetAttribute", + "attribute": "covid19_interleukin6", + "range": { + "low": 9, + "high": 13 + }, + "direct_transition": "Ferritin_13" + }, + "Interleukin6_10": { + "type": "SetAttribute", + "attribute": "covid19_interleukin6", + "range": { + "low": 8, + "high": 12 + }, + "direct_transition": "Ferritin_10" + }, + "Interleukin6_7": { + "type": "SetAttribute", + "attribute": "covid19_interleukin6", + "range": { + "low": 10, + "high": 14 + }, + "direct_transition": "Ferritin_7" + }, + "Ferritin_4": { + "type": "SetAttribute", + "attribute": "covid19_ferritin", + "direct_transition": "Cardiac_Troponin_4", + "range": { + "low": 800, + "high": 1200 + } + }, + "Ferritin_22": { + "type": "SetAttribute", + "attribute": "covid19_ferritin", + "value": 2000, + "direct_transition": "Cardiac_Troponin_22" + }, + "Ferritin_19": { + "type": "SetAttribute", + "attribute": "covid19_ferritin", + "value": 2000, + "direct_transition": "Cardiac_Troponin_19" + }, + "Ferritin_16": { + "type": "SetAttribute", + "attribute": "covid19_ferritin", + "range": { + "low": 1800, + "high": 2000 + }, + "direct_transition": "Cardiac_Troponin_16" + }, + "Ferritin_13": { + "type": "SetAttribute", + "attribute": "covid19_ferritin", + "range": { + "low": 1500, + "high": 1900 + }, + "direct_transition": "Cardiac_Troponin_13" + }, + "Ferritin_10": { + "type": "SetAttribute", + "attribute": "covid19_ferritin", + "range": { + "low": 1400, + "high": 1800 + }, + "direct_transition": "Cardiac_Troponin_10" + }, + "Ferritin_7": { + "type": "SetAttribute", + "attribute": "covid19_ferritin", + "range": { + "low": 1400, + "high": 1800 + }, + "direct_transition": "Cardiac_Troponin_7" + }, + "Cardiac_Troponin_4": { + "type": "SetAttribute", + "attribute": "covid19_cardiac_troponin", + "direct_transition": "Lactate_Dehydrogenase_4", + "range": { + "low": 6, + "high": 10 + } + }, + "Cardiac_Troponin_22": { + "type": "SetAttribute", + "attribute": "covid19_cardiac_troponin", + "range": { + "low": 250, + "high": 350 + }, + "direct_transition": "Lactate_Dehydrogenase_22" + }, + "Cardiac_Troponin_19": { + "type": "SetAttribute", + "attribute": "covid19_cardiac_troponin", + "range": { + "low": 130, + "high": 160 + }, + "direct_transition": "Lactate_Dehydrogenase_19" + }, + "Cardiac_Troponin_16": { + "type": "SetAttribute", + "attribute": "covid19_cardiac_troponin", + "range": { + "low": 55, + "high": 65 + }, + "direct_transition": "Lactate_Dehydrogenase_16" + }, + "Cardiac_Troponin_13": { + "type": "SetAttribute", + "attribute": "covid19_cardiac_troponin", + "range": { + "low": 50, + "high": 60 + }, + "direct_transition": "Lactate_Dehydrogenase_13" + }, + "Cardiac_Troponin_10": { + "type": "SetAttribute", + "attribute": "covid19_cardiac_troponin", + "range": { + "low": 20, + "high": 24 + }, + "direct_transition": "Lactate_Dehydrogenase_10" + }, + "Cardiac_Troponin_7": { + "type": "SetAttribute", + "attribute": "covid19_cardiac_troponin", + "range": { + "low": 22, + "high": 26 + }, + "direct_transition": "Lactate_Dehydrogenase_7" + }, + "Lactate_Dehydrogenase_4": { + "type": "SetAttribute", + "attribute": "covid19_lactate_dehydrogenase", + "direct_transition": "Terminal", + "range": { + "low": 315, + "high": 345 + } + }, + "Lactate_Dehydrogenase_22": { + "type": "SetAttribute", + "attribute": "covid19_lactate_dehydrogenase", + "range": { + "low": 500, + "high": 600 + }, + "direct_transition": "Terminal" + }, + "Lactate_Dehydrogenase_19": { + "type": "SetAttribute", + "attribute": "covid19_lactate_dehydrogenase", + "range": { + "low": 390, + "high": 430 + }, + "direct_transition": "Terminal" + }, + "Lactate_Dehydrogenase_16": { + "type": "SetAttribute", + "attribute": "covid19_lactate_dehydrogenase", + "range": { + "low": 370, + "high": 390 + }, + "direct_transition": "Terminal" + }, + "Lactate_Dehydrogenase_13": { + "type": "SetAttribute", + "attribute": "covid19_lactate_dehydrogenase", + "range": { + "low": 390, + "high": 410 + }, + "direct_transition": "Terminal" + }, + "Lactate_Dehydrogenase_10": { + "type": "SetAttribute", + "attribute": "covid19_lactate_dehydrogenase", + "range": { + "low": 380, + "high": 400 + }, + "direct_transition": "Terminal" + }, + "Lactate_Dehydrogenase_7": { + "type": "SetAttribute", + "attribute": "covid19_lactate_dehydrogenase", + "range": { + "low": 300, + "high": 330 + }, + "direct_transition": "Terminal" + }, + "Set Creatine Kinase": { + "type": "SetAttribute", + "attribute": "covid19_creatine_kinase", + "direct_transition": "Set C-Reactive Protein", + "range": { + "low": 20, + "high": 204 + } + }, + "Set C-Reactive Protein": { + "type": "SetAttribute", + "attribute": "covid19_c_reactive_protein", + "direct_transition": "Set PT", + "range": { + "low": 8, + "high": 18 + } + }, + "Set PT": { + "type": "SetAttribute", + "attribute": "covid19_pt", + "range": { + "low": 11, + "high": 14 + }, + "direct_transition": "Set INR" + }, + "Set INR": { + "type": "SetAttribute", + "attribute": "covid19_inr", + "range": { + "low": 3, + "high": 5 + }, + "direct_transition": "Set Procalitonin" + }, + "Set Procalitonin": { + "type": "SetAttribute", + "attribute": "covid19_procalcitonin", + "direct_transition": "Poor Oxygen Saturation", + "range": { + "low": 0, + "high": 0.5 + } + }, + "Poor Oxygen Saturation": { + "type": "VitalSign", + "vital_sign": "Oxygen Saturation", + "unit": "%", + "range": { + "low": 75, + "high": 89 + }, + "direct_transition": "Set PaO2" + }, + "Set PaO2": { + "type": "SetAttribute", + "attribute": "covid19_pao2", + "direct_transition": "Day", + "range": { + "low": 37, + "high": 60 + } + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/outcomes.json b/src/main/resources/modules/covid19/outcomes.json new file mode 100644 index 0000000..05bad3a --- /dev/null +++ b/src/main/resources/modules/covid19/outcomes.json @@ -0,0 +1,421 @@ +{ + "name": "outcomes", + "remarks": [ + "This module determines patient outcomes from covid19 according to Table 2 from https://doi.org/10.1016/S0140-6736(20)30566-3" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Pneumonia" + }, + "Terminal": { + "type": "Terminal" + }, + "Pneumonia": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "233604007", + "display": "Pneumonia (disorder)" + } + ], + "direct_transition": "Hypoxemia", + "target_encounter": "Hospital Inpatient Admission" + }, + "ARDS": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "67782005", + "display": "Acute respiratory distress syndrome (disorder)" + } + ], + "direct_transition": "Check Heart Failure", + "target_encounter": "ICU Admission" + }, + "Sepsis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "770349000", + "display": "Sepsis caused by virus (disorder)" + } + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_death", + "operator": "==", + "value": true + }, + "distributions": [ + { + "transition": "Septic Shock", + "distribution": 0.7 + }, + { + "transition": "Terminal", + "distribution": 0.3 + } + ] + }, + { + "transition": "Terminal" + } + ], + "target_encounter": "Hospital Inpatient Admission" + }, + "Septic Shock": { + "assign_to_attribute": "Ventilator Reason", + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "76571007", + "display": "Septic shock (disorder)" + } + ], + "direct_transition": "Terminal", + "target_encounter": "ICU Admission" + }, + "Check Heart Failure": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_death", + "operator": "==", + "value": true + }, + "distributions": [ + { + "transition": "Heart Failure", + "distribution": 0.52 + }, + { + "transition": "Check Acute Cardiac Injury", + "distribution": 0.48 + } + ] + }, + { + "distributions": [ + { + "transition": "Heart Failure", + "distribution": 0.12 + }, + { + "transition": "Check Acute Cardiac Injury", + "distribution": 0.88 + } + ] + } + ] + }, + "Heart Failure": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "84114007", + "display": "Heart failure (disorder)" + } + ], + "direct_transition": "Check Acute Cardiac Injury", + "target_encounter": "ICU Admission" + }, + "Acute Cardiac Injury": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "86175003", + "display": "Injury of heart (disorder)" + } + ], + "direct_transition": "Check Acute Kidney Injury", + "target_encounter": "ICU Admission" + }, + "Check Acute Cardiac Injury": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_death", + "operator": "==", + "value": true + }, + "distributions": [ + { + "transition": "Acute Cardiac Injury", + "distribution": 0.5 + }, + { + "transition": "Check Acute Kidney Injury", + "distribution": 0.5 + } + ] + }, + { + "distributions": [ + { + "transition": "Acute Cardiac Injury", + "distribution": 0.01 + }, + { + "transition": "Check Acute Kidney Injury", + "distribution": 1 + } + ] + } + ] + }, + "Check Acute Kidney Injury": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_death", + "operator": "==", + "value": true + }, + "distributions": [ + { + "transition": "Acute Kidney Injury", + "distribution": 0.5 + }, + { + "transition": "Check Coagulopathy", + "distribution": 0.5 + } + ] + }, + { + "distributions": [ + { + "transition": "Acute Kidney Injury", + "distribution": 0.01 + }, + { + "transition": "Check Coagulopathy", + "distribution": 0.99 + } + ] + } + ] + }, + "Check Coagulopathy": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_death", + "operator": "==", + "value": true + }, + "distributions": [ + { + "transition": "Coagulopathy", + "distribution": 0.5 + }, + { + "transition": "Determine Sepsis", + "distribution": 0.5 + } + ] + }, + { + "distributions": [ + { + "transition": "Coagulopathy", + "distribution": 0.07 + }, + { + "transition": "Determine Sepsis", + "distribution": 0.9299999999999999 + } + ] + } + ] + }, + "Acute Kidney Injury": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40095003", + "display": "Injury of kidney (disorder)" + } + ], + "direct_transition": "Check Coagulopathy", + "target_encounter": "ICU Admission" + }, + "Coagulopathy": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "234466008", + "display": "Acquired coagulation disorder (disorder)" + } + ], + "direct_transition": "Determine Sepsis", + "target_encounter": "ICU Admission" + }, + "Determine Sepsis": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Sepsis", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_death", + "operator": "==", + "value": true + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "PriorState", + "name": "ARDS" + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "PriorState", + "name": "Heart Failure" + }, + { + "condition_type": "PriorState", + "name": "Coagulopathy" + } + ] + } + ] + } + ] + } + }, + { + "transition": "Terminal" + } + ] + }, + "Respiratory Failure": { + "assign_to_attribute": "Ventilator Reason", + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65710008", + "display": "Acute respiratory failure (disorder)" + } + ], + "remarks": [ + "67 of 173 (38.7% round up to 40%) severe patients required mechanical ventilation." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_death", + "operator": "==", + "value": true + }, + "distributions": [ + { + "transition": "ARDS", + "distribution": 0.94 + }, + { + "transition": "Check Heart Failure", + "distribution": 0.06 + } + ] + }, + { + "distributions": [ + { + "transition": "ARDS", + "distribution": 0.18 + }, + { + "transition": "Check Heart Failure", + "distribution": 0.8200000000000001 + } + ] + } + ], + "target_encounter": "Hospital Inpatient Admission" + }, + "Mild Respiratory Distress": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "271825005", + "display": "Respiratory distress (finding)" + } + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_death", + "operator": "==", + "value": true + }, + "distributions": [ + { + "transition": "Respiratory Failure", + "distribution": 0.98 + }, + { + "transition": "Check Heart Failure", + "distribution": 0.02 + } + ] + }, + { + "distributions": [ + { + "transition": "Respiratory Failure", + "distribution": 0.36 + }, + { + "transition": "Check Heart Failure", + "distribution": 0.64 + } + ] + } + ], + "target_encounter": "Hospital Inpatient Admission" + }, + "Hypoxemia": { + "type": "ConditionOnset", + "target_encounter": "Hospital Inpatient Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "389087006", + "display": "Hypoxemia (disorder)" + } + ], + "direct_transition": "Mild Respiratory Distress" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/supplies_hospitalization.json b/src/main/resources/modules/covid19/supplies_hospitalization.json new file mode 100644 index 0000000..129c880 --- /dev/null +++ b/src/main/resources/modules/covid19/supplies_hospitalization.json @@ -0,0 +1,100 @@ +{ + "name": "Supplies - Hospitalization", + "remarks": [ + "This module includes the supplies needed during daily treatment of COVID-19 in a basic hospital inpatient setting, not the ICU.", + "", + "Daily Hospitalization Assumptions: For continency capacity for the daily hospitalization, the following assumptions apply per patient per 24-hour period: ", + "•\tBasic strategy:", + "o\tAdministrative and engineering measures have already been implemented (e.g. reducing visitors, excluding non-essential personnel, and cohorting patients, etc.)", + "o\tNursing staff uses a bundling care model (e.g. vitals/assessments, etc. done at once) and assists with meal tray delivery and basic environmental services to reduce room entry. ", + "o\tConsulting physicians/APPs rely on the physical examination of the primary physician/APP to reduce room entry.", + "•\tPPE Strategy for encounters with all COVID/PUI patients:", + "o\tSingle-use isolation gowns: changed with each room entry", + "o\tGloves: changed with each room entry", + "o\tFace shields: approved for extended wear with a max of 1 per physician/APP and nurse per 24 hours. ", + "o\tN95s: approved for extended wear with a max of 1 per physician/APP and nurse per 24 hours. ", + "•\tRoom entry assumptions: ", + "o\tPhysician/APP staff maximum room entry per 24 hours is 3.", + "o\tPrimary nurse maximum room entry per 24 hours is 6.", + "o\tAdditional nursing staff maximum room entry per 24 hours is 2.", + "o\tAllied staff maximum room entry per 24 hours is 1", + "", + "", + "| Staff Type | Assumed Ratios* | N95Mask** | Face shield** | Gowns*** | Wipes*** | Gloves*** | Alcohol*** |", + "|-----------------------------------------|-----------------|------------|----------------|----------|-----------|-----------|------------|", + "| Primary Physician or APP | 16:1 | 2 | 2 | 3 | 2 | 6 | |", + "| Primary Nurse | 4:1 | 2 | 2 | 6 | 2 | 12 | |", + "| Additional Nursing Staff | 6:1 | 2 | 2 | 2 | 2 | 4 | |", + "| Other allied health and ancillary staff | 25:1 | 2 | 2 | 1 | 2 | 2 | |", + "| Quantity for supply list | N/A | 2 | 2 | 12 | 8 | 24 | 1 |", + "", + "*Ratios crowdsourced with colleagues across the country (MD, RNs, CNA, Nurse Techs)", + "** When calculating total PPE use, these items are not 1:1 with patients, but are determined based on the number of each staff present caring for COVID/PUI patients each 24 hours. (i.e. # staff type X 2)", + "*** When calculating total PPE use, these items are 1:1 for patients for every 24 hours (i.e. every COVID patient uses 8 gowns, 4 wipes, etc. every 24 hours)", + "" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Precautions_Baseline" + }, + "Precautions_Baseline": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 2, + "code": { + "system": "SNOMED-CT", + "code": "409533008", + "display": "Air-purifying respirator (physical object)" + } + }, + { + "quantity": 24, + "code": { + "system": "SNOMED-CT", + "code": "713779008", + "display": "Nitrile examination/treatment glove, non-powdered, sterile (physical object)" + } + }, + { + "quantity": 12, + "code": { + "system": "SNOMED-CT", + "code": "1141679000", + "display": "Isolation gown (physical object)" + } + }, + { + "quantity": 2, + "code": { + "system": "SNOMED-CT", + "code": "706724001", + "display": "Face shield (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "419343004", + "display": "Alcohol disinfectant (substance)" + } + }, + { + "quantity": 8, + "code": { + "system": "SNOMED-CT", + "code": "470618009", + "display": "Antiseptic towelette (physical object)" + } + } + ], + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/supplies_icu.json b/src/main/resources/modules/covid19/supplies_icu.json new file mode 100644 index 0000000..8e5edba --- /dev/null +++ b/src/main/resources/modules/covid19/supplies_icu.json @@ -0,0 +1,99 @@ +{ + "name": "Supplies - ICU", + "remarks": [ + "This module includes the supplies needed during daily treatment of COVID-19 in an intensive care setting. These supplies offer a higher level of protection to the health care provider than the general inpatient setting. ", + "", + "Daily ICU Assumptions:", + "•\tBasic strategy = Same as hospitalization", + "•\tPPE strategy = Same as hospitalization, with the exception of gowns. ", + "o\tReusable isolation gowns are approved for extended wear with a max of 2 per patient per 24 hours (i.e. one for day shift nurse and one for night shift nurse) ", + "•\tRoom entry assumptions:", + "o\tICU physician maximum room entry per 24 hours is 4", + "o\tICU nurse maximum room entry per 24 hours is 12", + "o\tRespiratory therapist maximum room entry per 24 hours is 4", + "o\tAllied health/support maximum room entry per 24 hours is 2", + "", + "| Staff Type | Assumed Ratios | N95 Mask** | Face shield** | Gowns Reusable*** | Gowns single use*** | Wipes*** | Gloves*** | Alcohol*** |", + "|---------------------------------|-----------------|------------|---------------|-------------------|---------------------|----------|------------|------------|", + "| ICU physician | 1:10 | 2 | 2 | 0 | 4 | 4 | 8 | |", + "| ICU Nurse | 2:1 | 2 | 2 | 2 | 0 | 5 | 24 | |", + "| Respiratory Therapist | 5:1 | 2 | 2 | 0 | 4 | 5 | 8 | |", + "| Allied Health/care team support | 24:1 | 2 | 2 | 0 | 2 | 2 | 4 | |", + "| Quantity for supply list | | 2 | 2 | 2 | 10 | 16 | 44 | 2 |", + "", + "** When calculating total PPE use, these items are not 1:1 with patients, but are determined based on the number of each staff present caring for COVID/PUI patients each 24 hours. (i.e. # staff type X 2)", + "*** When calculating total PPE use, these items are 1:1 for patients for every 24 hours (i.e. every COVID patient uses 8 gowns, 4 wipes, etc. every 24 hours)" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Precautions_Aerosol" + }, + "Precautions_Aerosol": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 44, + "code": { + "system": "SNOMED-CT", + "code": "713779008", + "display": "Nitrile examination/treatment glove, non-powdered, sterile (physical object)" + } + }, + { + "quantity": 2, + "code": { + "system": "SNOMED-CT", + "code": "1141679000", + "display": "Isolation gown (physical object)" + } + }, + { + "quantity": 10, + "code": { + "system": "SNOMED-CT", + "code": "1141679000", + "display": "Isolation gown (physical object)" + } + }, + { + "quantity": 2, + "code": { + "system": "SNOMED-CT", + "code": "409533008", + "display": "Air-purifying respirator (physical object)" + } + }, + { + "quantity": 2, + "code": { + "system": "SNOMED-CT", + "code": "706724001", + "display": "Face shield (physical object)" + } + }, + { + "quantity": 2, + "code": { + "system": "SNOMED-CT", + "code": "419343004", + "display": "Alcohol disinfectant (substance)" + } + }, + { + "quantity": 16, + "code": { + "system": "SNOMED-CT", + "code": "470618009", + "display": "Antiseptic towelette (physical object)" + } + } + ], + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/supplies_intubation.json b/src/main/resources/modules/covid19/supplies_intubation.json new file mode 100644 index 0000000..21b5101 --- /dev/null +++ b/src/main/resources/modules/covid19/supplies_intubation.json @@ -0,0 +1,201 @@ +{ + "name": "Supplies - Intubation", + "remarks": [ + "This module includes the supplies needed during an intubation (i.e, an aerosolizing procedures) in support of the treatment of COVID-19. These are the supplies offering the highest level of protection to the health care provider, as well as the required supplies for the procedure itself. This submodule should be considered additional to the other supplies submodules as it only considers a single procedure, not the entire day. This also considers the inclusion of a respiratory therapist in addition to the 1 doctor and 1 nurse.", + "", + "Patient", + "- no additional supplies", + "", + "HCP", + " - Nurse and RT wear same as ICU PPE:", + " - gloves", + " - isolation gown", + " - glasses/goggles/shield", + "- physician:", + " - wears OR gown instead of isolation gown", + " - surgical cap", + " - extra set of gloves", + "", + "" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Ventilator" + }, + "Supplies_Intubation": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 8, + "code": { + "system": "SNOMED-CT", + "code": "713779008", + "display": "Nitrile examination/treatment glove, non-powdered, sterile (physical object)" + } + }, + { + "quantity": 2, + "code": { + "system": "SNOMED-CT", + "code": "1141679000", + "display": "Isolation gown (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "463696005", + "display": "Operating room laundry bag (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "736143005", + "display": "Radial surgical retractor seal cap (physical object)" + } + }, + { + "quantity": 3, + "code": { + "system": "SNOMED-CT", + "code": "409533008", + "display": "Air-purifying respirator (physical object)" + } + }, + { + "quantity": 3, + "code": { + "system": "SNOMED-CT", + "code": "38126007", + "display": "Protective glasses, device (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "419343004", + "display": "Alcohol disinfectant (substance)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "470618009", + "display": "Antiseptic towelette (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "285698002", + "display": "Laryngoscope blade (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "26412008", + "display": "Endotracheal tube, device (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "725095003", + "display": "Endotracheal tube introducer (physical object)" + } + }, + { + "quantity": 2, + "code": { + "system": "SNOMED-CT", + "code": "61968008", + "display": "Syringe, device (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "706092000", + "display": "Suction system (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "706774004", + "display": "Lubricant (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "468601005", + "display": "Endotracheal tube holder (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "701434005", + "display": "Viral filter (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "827149008", + "display": "Carbon dioxide breath analyzer (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "17102003", + "display": "Nasogastric tube, device (physical object)" + } + } + ], + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + }, + "Ventilator": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "449071006", + "display": "Mechanical ventilator (physical object)" + }, + "direct_transition": "Laryngoscope", + "assign_to_attribute": "covid19_ventilator" + }, + "Laryngoscope": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "448907002", + "display": "Videolaryngoscope (physical object)" + }, + "direct_transition": "Supplies_Intubation", + "assign_to_attribute": "covid19_laryngoscope" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/survivor_lab_values.json b/src/main/resources/modules/covid19/survivor_lab_values.json new file mode 100644 index 0000000..3353619 --- /dev/null +++ b/src/main/resources/modules/covid19/survivor_lab_values.json @@ -0,0 +1,562 @@ +{ + "name": "survivor_lab_values", + "remarks": [ + "Based on Figure 2 from https://doi.org/10.1016/S0140-6736(20)30566-3" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Set_Creatine_Kinase" + }, + "Terminal": { + "type": "Terminal" + }, + "Day": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "DDimer_4", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_admission_days", + "operator": "<", + "value": 7 + } + }, + { + "transition": "DDimer_7", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_admission_days", + "operator": "<", + "value": 10 + } + }, + { + "transition": "DDimer_10", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_admission_days", + "operator": "<", + "value": 13 + } + }, + { + "transition": "DDimer_13", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_admission_days", + "operator": "<", + "value": 16 + } + }, + { + "transition": "DDimer_16", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_admission_days", + "operator": "<", + "value": 19 + } + }, + { + "transition": "DDimer_19", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_admission_days", + "operator": "==", + "value": 22 + } + }, + { + "transition": "DDimer_22" + } + ] + }, + "DDimer_4": { + "type": "SetAttribute", + "attribute": "covid19_ddimer", + "range": { + "low": 0.2, + "high": 0.4 + }, + "direct_transition": "Lymphocytes_4" + }, + "DDimer_7": { + "type": "SetAttribute", + "attribute": "covid19_ddimer", + "range": { + "low": 0.4, + "high": 0.6 + }, + "direct_transition": "Lymphocytes_7" + }, + "DDimer_10": { + "type": "SetAttribute", + "attribute": "covid19_ddimer", + "range": { + "low": 0.5, + "high": 0.7 + }, + "direct_transition": "Lymphocytes_10" + }, + "DDimer_13": { + "type": "SetAttribute", + "attribute": "covid19_ddimer", + "range": { + "low": 0.5, + "high": 0.7 + }, + "direct_transition": "Lymphocytes_13" + }, + "DDimer_16": { + "type": "SetAttribute", + "attribute": "covid19_ddimer", + "range": { + "low": 0.6, + "high": 0.8 + }, + "direct_transition": "Lymphocytes_16" + }, + "DDimer_19": { + "type": "SetAttribute", + "attribute": "covid19_ddimer", + "range": { + "low": 0.9, + "high": 1.1 + }, + "direct_transition": "Lymphocytes_19" + }, + "DDimer_22": { + "type": "SetAttribute", + "attribute": "covid19_ddimer", + "range": { + "low": 0.4, + "high": 0.6 + }, + "direct_transition": "Lymphocytes_22" + }, + "Lymphocytes_4": { + "type": "SetAttribute", + "attribute": "covid19_lymphocytes", + "direct_transition": "Interleukin6_4", + "range": { + "low": 1, + "high": 1.1 + } + }, + "Lymphocytes_19": { + "type": "SetAttribute", + "attribute": "covid19_lymphocytes", + "range": { + "low": 1.3, + "high": 1.5 + }, + "direct_transition": "Interleukin6_19" + }, + "Lymphocytes_16": { + "type": "SetAttribute", + "attribute": "covid19_lymphocytes", + "range": { + "low": 1.1, + "high": 1.3 + }, + "direct_transition": "Interleukin6_16" + }, + "Lymphocytes_13": { + "type": "SetAttribute", + "attribute": "covid19_lymphocytes", + "range": { + "low": 1.1, + "high": 1.2 + }, + "direct_transition": "Interleukin6_13" + }, + "Lymphocytes_10": { + "type": "SetAttribute", + "attribute": "covid19_lymphocytes", + "range": { + "low": 0.9, + "high": 1.1 + }, + "direct_transition": "Interleukin6_10" + }, + "Lymphocytes_7": { + "type": "SetAttribute", + "attribute": "covid19_lymphocytes", + "range": { + "low": 0.8, + "high": 1 + }, + "direct_transition": "Interleukin6_7" + }, + "Interleukin6_4": { + "type": "SetAttribute", + "attribute": "covid19_interleukin6", + "direct_transition": "Ferritin_4", + "range": { + "low": 4, + "high": 6 + } + }, + "Lymphocytes_22": { + "type": "SetAttribute", + "attribute": "covid19_lymphocytes", + "range": { + "low": 1.3, + "high": 1.5 + }, + "direct_transition": "Interleukin6_22" + }, + "Interleukin6_22": { + "type": "SetAttribute", + "attribute": "covid19_interleukin6", + "range": { + "low": 5, + "high": 7 + }, + "direct_transition": "Ferritin_22" + }, + "Interleukin6_19": { + "type": "SetAttribute", + "attribute": "covid19_interleukin6", + "range": { + "low": 5, + "high": 7 + }, + "direct_transition": "Ferritin_19" + }, + "Interleukin6_16": { + "type": "SetAttribute", + "attribute": "covid19_interleukin6", + "range": { + "low": 5, + "high": 7 + }, + "direct_transition": "Ferritin_16" + }, + "Interleukin6_13": { + "type": "SetAttribute", + "attribute": "covid19_interleukin6", + "range": { + "low": 5, + "high": 7 + }, + "direct_transition": "Ferritin_13" + }, + "Interleukin6_10": { + "type": "SetAttribute", + "attribute": "covid19_interleukin6", + "range": { + "low": 5, + "high": 7 + }, + "direct_transition": "Ferritin_10" + }, + "Interleukin6_7": { + "type": "SetAttribute", + "attribute": "covid19_interleukin6", + "range": { + "low": 5, + "high": 7 + }, + "direct_transition": "Ferritin_7" + }, + "Ferritin_4": { + "type": "SetAttribute", + "attribute": "covid19_ferritin", + "direct_transition": "Cardiac_Troponin_4", + "range": { + "low": 300, + "high": 500 + } + }, + "Ferritin_22": { + "type": "SetAttribute", + "attribute": "covid19_ferritin", + "range": { + "low": 300, + "high": 450 + }, + "direct_transition": "Cardiac_Troponin_22" + }, + "Ferritin_19": { + "type": "SetAttribute", + "attribute": "covid19_ferritin", + "range": { + "low": 400, + "high": 500 + }, + "direct_transition": "Cardiac_Troponin_19" + }, + "Ferritin_16": { + "type": "SetAttribute", + "attribute": "covid19_ferritin", + "range": { + "low": 400, + "high": 500 + }, + "direct_transition": "Cardiac_Troponin_16" + }, + "Ferritin_13": { + "type": "SetAttribute", + "attribute": "covid19_ferritin", + "range": { + "low": 550, + "high": 650 + }, + "direct_transition": "Cardiac_Troponin_13" + }, + "Ferritin_10": { + "type": "SetAttribute", + "attribute": "covid19_ferritin", + "range": { + "low": 450, + "high": 600 + }, + "direct_transition": "Cardiac_Troponin_10" + }, + "Ferritin_7": { + "type": "SetAttribute", + "attribute": "covid19_ferritin", + "range": { + "low": 450, + "high": 550 + }, + "direct_transition": "Cardiac_Troponin_7" + }, + "Cardiac_Troponin_4": { + "type": "SetAttribute", + "attribute": "covid19_cardiac_troponin", + "direct_transition": "Lactate_Dehydrogenase_4", + "range": { + "low": 1.5, + "high": 3.5 + } + }, + "Cardiac_Troponin_22": { + "type": "SetAttribute", + "attribute": "covid19_cardiac_troponin", + "range": { + "low": 3, + "high": 4 + }, + "direct_transition": "Lactate_Dehydrogenase_22" + }, + "Cardiac_Troponin_19": { + "type": "SetAttribute", + "attribute": "covid19_cardiac_troponin", + "range": { + "low": 2, + "high": 3 + }, + "direct_transition": "Lactate_Dehydrogenase_19" + }, + "Cardiac_Troponin_16": { + "type": "SetAttribute", + "attribute": "covid19_cardiac_troponin", + "range": { + "low": 2, + "high": 3 + }, + "direct_transition": "Lactate_Dehydrogenase_16" + }, + "Cardiac_Troponin_13": { + "type": "SetAttribute", + "attribute": "covid19_cardiac_troponin", + "range": { + "low": 4, + "high": 5 + }, + "direct_transition": "Lactate_Dehydrogenase_13" + }, + "Cardiac_Troponin_10": { + "type": "SetAttribute", + "attribute": "covid19_cardiac_troponin", + "range": { + "low": 3, + "high": 5 + }, + "direct_transition": "Lactate_Dehydrogenase_10" + }, + "Cardiac_Troponin_7": { + "type": "SetAttribute", + "attribute": "covid19_cardiac_troponin", + "range": { + "low": 2, + "high": 4 + }, + "direct_transition": "Lactate_Dehydrogenase_7" + }, + "Lactate_Dehydrogenase_4": { + "type": "SetAttribute", + "attribute": "covid19_lactate_dehydrogenase", + "direct_transition": "Terminal", + "range": { + "low": 200, + "high": 250 + } + }, + "Lactate_Dehydrogenase_22": { + "type": "SetAttribute", + "attribute": "covid19_lactate_dehydrogenase", + "range": { + "low": 180, + "high": 220 + }, + "direct_transition": "Terminal" + }, + "Lactate_Dehydrogenase_19": { + "type": "SetAttribute", + "attribute": "covid19_lactate_dehydrogenase", + "range": { + "low": 200, + "high": 250 + }, + "direct_transition": "Terminal" + }, + "Lactate_Dehydrogenase_16": { + "type": "SetAttribute", + "attribute": "covid19_lactate_dehydrogenase", + "range": { + "low": 200, + "high": 300 + }, + "direct_transition": "Terminal" + }, + "Lactate_Dehydrogenase_13": { + "type": "SetAttribute", + "attribute": "covid19_lactate_dehydrogenase", + "range": { + "low": 250, + "high": 350 + }, + "direct_transition": "Terminal" + }, + "Lactate_Dehydrogenase_10": { + "type": "SetAttribute", + "attribute": "covid19_lactate_dehydrogenase", + "range": { + "low": 250, + "high": 350 + }, + "direct_transition": "Terminal" + }, + "Lactate_Dehydrogenase_7": { + "type": "SetAttribute", + "attribute": "covid19_lactate_dehydrogenase", + "range": { + "low": 225, + "high": 250 + }, + "direct_transition": "Terminal" + }, + "Set_Creatine_Kinase": { + "type": "SetAttribute", + "attribute": "covid19_creatine_kinase", + "range": { + "low": 12, + "high": 53 + }, + "direct_transition": "Set_C_Reactive_Protein" + }, + "Set_C_Reactive_Protein": { + "type": "SetAttribute", + "attribute": "covid19_c_reactive_protein", + "range": { + "low": 8, + "high": 12 + }, + "direct_transition": "Set_PT" + }, + "Set_PT": { + "type": "SetAttribute", + "attribute": "covid19_pt", + "range": { + "low": 10, + "high": 13 + }, + "direct_transition": "Set_INR" + }, + "Set_INR": { + "type": "SetAttribute", + "attribute": "covid19_inr", + "range": { + "low": 1, + "high": 3 + }, + "direct_transition": "Set_Procalitonin" + }, + "Set_Procalitonin": { + "type": "SetAttribute", + "attribute": "covid19_procalcitonin", + "range": { + "low": 0, + "high": 0.2 + }, + "conditional_transition": [ + { + "transition": "Recovered Oxygen Saturation", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_icu_days", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_icu_days", + "operator": "<", + "value": 2 + } + ] + } + }, + { + "transition": "Poor Oxygen Saturation" + } + ] + }, + "Poor Oxygen Saturation": { + "type": "VitalSign", + "vital_sign": "Oxygen Saturation", + "unit": "%", + "direct_transition": "Set Poor PaO2", + "range": { + "low": 75, + "high": 89 + } + }, + "Recovered Oxygen Saturation": { + "type": "VitalSign", + "vital_sign": "Oxygen Saturation", + "unit": "%", + "direct_transition": "Set Recovered PaO2", + "range": { + "low": 90, + "high": 100 + } + }, + "Set Poor PaO2": { + "type": "SetAttribute", + "attribute": "covid19_pao2", + "range": { + "low": 37, + "high": 60 + }, + "direct_transition": "Day" + }, + "Set Recovered PaO2": { + "type": "SetAttribute", + "attribute": "covid19_pao2", + "range": { + "low": 60, + "high": 98 + }, + "direct_transition": "Day" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/symptoms.json b/src/main/resources/modules/covid19/symptoms.json new file mode 100644 index 0000000..d962060 --- /dev/null +++ b/src/main/resources/modules/covid19/symptoms.json @@ -0,0 +1,1050 @@ +{ + "name": "symptoms", + "remarks": [ + "This submodule sets symptoms of COVID19 according to the rates documented in Table 1 of https://www.nejm.org/doi/full/10.1056/NEJMoa2002032" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Determine Conjunctival Congestion" + }, + "Terminal": { + "type": "Terminal" + }, + "Determine Headache": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + ] + }, + "distributions": [ + { + "transition": "Headache", + "distribution": 0.15 + }, + { + "transition": "Determine Cough", + "distribution": 0.8500000000000001 + } + ] + }, + { + "distributions": [ + { + "transition": "Headache", + "distribution": 0.134 + }, + { + "transition": "Determine Cough", + "distribution": 0.866 + } + ] + } + ] + }, + "Determine Cough": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + ] + }, + "distributions": [ + { + "transition": "Cough", + "distribution": 0.705 + }, + { + "transition": "Determine Sore Throat", + "distribution": 0.29500000000000004 + } + ] + }, + { + "distributions": [ + { + "transition": "Cough", + "distribution": 0.673 + }, + { + "transition": "Determine Sore Throat", + "distribution": 0.32699999999999996 + } + ] + } + ] + }, + "Determine Sore Throat": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + ] + }, + "distributions": [ + { + "transition": "Sore Throat", + "distribution": 0.133 + }, + { + "transition": "Determine Sputum Production", + "distribution": 0.867 + } + ] + }, + { + "distributions": [ + { + "transition": "Sore Throat", + "distribution": 0.14 + }, + { + "transition": "Determine Sputum Production", + "distribution": 0.86 + } + ] + } + ] + }, + "Determine Sputum Production": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + ] + }, + "distributions": [ + { + "transition": "Sputum Production", + "distribution": 0.353 + }, + { + "transition": "Determine Fatigue", + "distribution": 0.647 + } + ] + }, + { + "distributions": [ + { + "transition": "Sputum Production", + "distribution": 0.334 + }, + { + "transition": "Determine Fatigue", + "distribution": 0.6659999999999999 + } + ] + } + ] + }, + "Determine Fatigue": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + ] + }, + "distributions": [ + { + "transition": "Fatigue", + "distribution": 0.399 + }, + { + "transition": "Determine Hemoptysis", + "distribution": 0.601 + } + ] + }, + { + "distributions": [ + { + "transition": "Fatigue", + "distribution": 0.378 + }, + { + "transition": "Determine Hemoptysis", + "distribution": 0.6219999999999999 + } + ] + } + ] + }, + "Determine Hemoptysis": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + ] + }, + "distributions": [ + { + "transition": "Hemoptysis", + "distribution": 0.023 + }, + { + "transition": "Determine Shortness of Breath", + "distribution": 0.9770000000000001 + } + ] + }, + { + "distributions": [ + { + "transition": "Hemoptysis", + "distribution": 0.006 + }, + { + "transition": "Determine Shortness of Breath", + "distribution": 0.994 + } + ] + } + ] + }, + "Determine Shortness of Breath": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + ] + }, + "distributions": [ + { + "transition": "Shortness of Breath", + "distribution": 0.376 + }, + { + "transition": "Determine Nausea or Vomiting", + "distribution": 0.6240000000000001 + } + ] + }, + { + "distributions": [ + { + "transition": "Shortness of Breath", + "distribution": 0.151 + }, + { + "transition": "Determine Nausea or Vomiting", + "distribution": 0.849 + } + ] + } + ] + }, + "Determine Nausea or Vomiting": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + ] + }, + "distributions": [ + { + "transition": "Nausea", + "distribution": 0.069 + }, + { + "transition": "Determine Diarrhea", + "distribution": 0.931 + } + ] + }, + { + "distributions": [ + { + "transition": "Nausea", + "distribution": 0.046 + }, + { + "transition": "Determine Diarrhea", + "distribution": 0.954 + } + ] + } + ] + }, + "Determine Diarrhea": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + ] + }, + "distributions": [ + { + "transition": "Diarrhea", + "distribution": 0.058 + }, + { + "transition": "Determine Myalgia or Arthralgia", + "distribution": 0.942 + } + ] + }, + { + "distributions": [ + { + "transition": "Diarrhea", + "distribution": 0.035 + }, + { + "transition": "Determine Myalgia or Arthralgia", + "distribution": 0.9650000000000001 + } + ] + } + ] + }, + "Determine Myalgia or Arthralgia": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + ] + }, + "distributions": [ + { + "transition": "Muscle Pain", + "distribution": 0.173 + }, + { + "transition": "Determine Chills", + "distribution": 0.827 + } + ] + }, + { + "distributions": [ + { + "transition": "Muscle Pain", + "distribution": 0.145 + }, + { + "transition": "Determine Chills", + "distribution": 0.855 + } + ] + } + ] + }, + "Determine Chills": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + ] + }, + "distributions": [ + { + "transition": "Chills", + "distribution": 0.15 + }, + { + "transition": "Determine Fever", + "distribution": 0.8500000000000001 + } + ] + }, + { + "distributions": [ + { + "transition": "Chills", + "distribution": 0.108 + }, + { + "transition": "Determine Fever", + "distribution": 0.8919999999999999 + } + ] + } + ] + }, + "Determine Conjunctival Congestion": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + ] + }, + "distributions": [ + { + "transition": "Conjunctival Congestion", + "distribution": 0.023 + }, + { + "transition": "Determine Nasal Congestion", + "distribution": 0.977 + } + ] + }, + { + "distributions": [ + { + "transition": "Conjunctival Congestion", + "distribution": 0.005 + }, + { + "transition": "Determine Nasal Congestion", + "distribution": 0.995 + } + ] + } + ] + }, + "Conjunctival Congestion": { + "type": "Symptom", + "symptom": "conjunctival congestion", + "cause": "covid19", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Conjunctival Congestion Onset" + }, + "Conjunctival Congestion Onset": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "246677007", + "display": "Passive conjunctival congestion (finding)" + } + ], + "direct_transition": "Determine Nasal Congestion" + }, + "Determine Nasal Congestion": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + ] + }, + "distributions": [ + { + "transition": "Nasal Congestion", + "distribution": 0.035 + }, + { + "transition": "Determine Headache", + "distribution": 0.965 + } + ] + }, + { + "distributions": [ + { + "transition": "Nasal Congestion", + "distribution": 0.051 + }, + { + "transition": "Determine Headache", + "distribution": 0.9490000000000001 + } + ] + } + ] + }, + "Nasal Congestion": { + "type": "Symptom", + "symptom": "nasal congestion", + "cause": "covid19", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Nasal Congestion Onset" + }, + "Nasal Congestion Onset": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "68235000", + "display": "Nasal congestion (finding)" + } + ], + "direct_transition": "Determine Headache" + }, + "Headache": { + "type": "Symptom", + "symptom": "headache", + "cause": "covid19", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Headache Onset" + }, + "Headache Onset": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "25064002", + "display": "Headache (finding)" + } + ], + "direct_transition": "Determine Cough" + }, + "Cough": { + "type": "Symptom", + "symptom": "cough", + "cause": "covid19", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Cough Onset" + }, + "Cough Onset": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "49727002", + "display": "Cough (finding)" + } + ], + "direct_transition": "Determine Sore Throat" + }, + "Sore Throat": { + "type": "Symptom", + "symptom": "sore throat", + "cause": "covid19", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Sore Throat Onset" + }, + "Sore Throat Onset": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "267102003", + "display": "Sore throat (finding)" + } + ], + "direct_transition": "Determine Sputum Production" + }, + "Sputum Production": { + "type": "Symptom", + "symptom": "sputum production", + "cause": "covid19", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Sputum Production Onset" + }, + "Sputum Production Onset": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "248595008", + "display": "Sputum finding (finding)" + } + ], + "direct_transition": "Determine Fatigue" + }, + "Fatigue": { + "type": "Symptom", + "symptom": "fatigue", + "cause": "covid19", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Fatigue Onset" + }, + "Fatigue Onset": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "84229001", + "display": "Fatigue (finding)" + } + ], + "direct_transition": "Determine Hemoptysis" + }, + "Hemoptysis": { + "type": "Symptom", + "symptom": "hemoptysis", + "cause": "covid19", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Hemoptysis Onset" + }, + "Hemoptysis Onset": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "66857006", + "display": "Hemoptysis (finding)" + } + ], + "direct_transition": "Determine Shortness of Breath" + }, + "Shortness of Breath": { + "type": "Symptom", + "symptom": "dyspnea", + "cause": "covid19", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Shortness of Breath Onset" + }, + "Shortness of Breath Onset": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "267036007", + "display": "Dyspnea (finding)" + } + ], + "direct_transition": "Wheezing" + }, + "Nausea": { + "type": "Symptom", + "symptom": "nausea", + "cause": "covid19", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Nausea Onset" + }, + "Nausea Onset": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "422587007", + "display": "Nausea (finding)" + } + ], + "direct_transition": "Vomiting" + }, + "Vomiting": { + "type": "Symptom", + "symptom": "vomiting", + "cause": "covid19", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Vomiting Onset" + }, + "Vomiting Onset": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "249497008", + "display": "Vomiting symptom (finding)" + } + ], + "direct_transition": "Determine Diarrhea" + }, + "Diarrhea": { + "type": "Symptom", + "symptom": "diarrhea", + "cause": "covid19", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Diarrhea Onset" + }, + "Diarrhea Onset": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "267060006", + "display": "Diarrhea symptom (finding)" + } + ], + "direct_transition": "Determine Myalgia or Arthralgia" + }, + "Muscle Pain": { + "type": "Symptom", + "symptom": "myalgia", + "cause": "covid19", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Muscle Pain Onset" + }, + "Muscle Pain Onset": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "68962001", + "display": "Muscle pain (finding)" + } + ], + "direct_transition": "Joint Pain" + }, + "Joint Pain": { + "type": "Symptom", + "symptom": "arthralgia", + "cause": "covid19", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Joint Pain Onset" + }, + "Joint Pain Onset": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "57676002", + "display": "Joint pain (finding)" + } + ], + "direct_transition": "Determine Chills" + }, + "Chills": { + "type": "Symptom", + "symptom": "chills", + "cause": "covid19", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Chills Onset" + }, + "Chills Onset": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "43724002", + "display": "Chill (finding)" + } + ], + "direct_transition": "Determine Fever" + }, + "Determine Fever": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "severe" + }, + { + "condition_type": "Attribute", + "attribute": "covid19_severity", + "operator": "==", + "value": "critical" + } + ] + }, + "distributions": [ + { + "transition": "Fever", + "distribution": 0.919 + }, + { + "transition": "Determine Loss of Taste", + "distribution": 0.08099999999999996 + } + ] + }, + { + "distributions": [ + { + "transition": "Fever", + "distribution": 0.881 + }, + { + "transition": "Determine Loss of Taste", + "distribution": 0.119 + } + ] + } + ] + }, + "Fever": { + "type": "Symptom", + "symptom": "fever", + "cause": "covid19", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Fever Onset" + }, + "Fever Onset": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386661006", + "display": "Fever (finding)" + } + ], + "direct_transition": "Determine Loss of Taste" + }, + "Determine Loss of Taste": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Loss of Taste", + "distribution": 0.506 + }, + { + "transition": "Terminal", + "distribution": 0.494 + } + ], + "remarks": [ + "In a survey, 50.6% of patients reported loss of taste as moderate, severe, or As bad as it can be, from Table 2 in Spinato G, Fabbris C, Polesel J, et al. Alterations in Smell or Taste in Mildly Symptomatic Outpatients With SARS-CoV-2 Infection. JAMA. Published online April 22, 2020. doi:10.1001/jama.2020.6771" + ] + }, + "Loss of Taste": { + "type": "Symptom", + "symptom": "loss_of_taste", + "cause": "", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Loss of Taste Onset", + "remarks": [ + "In a survey, 50.6% of patients reported loss of taste as moderate, severe, or As bad as it can be, from Table 2 in Spinato G, Fabbris C, Polesel J, et al. Alterations in Smell or Taste in Mildly Symptomatic Outpatients With SARS-CoV-2 Infection. JAMA. Published online April 22, 2020. doi:10.1001/jama.2020.6771" + ] + }, + "Loss of Taste Onset": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "36955009", + "display": "Loss of taste (finding)" + } + ], + "direct_transition": "Terminal", + "remarks": [ + "In a survey, 50.6% of patients reported loss of taste as moderate, severe, or As bad as it can be, from Table 2 in Spinato G, Fabbris C, Polesel J, et al. Alterations in Smell or Taste in Mildly Symptomatic Outpatients With SARS-CoV-2 Infection. JAMA. Published online April 22, 2020. doi:10.1001/jama.2020.6771" + ] + }, + "Wheezing": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "56018004", + "display": "Wheezing (finding)" + } + ], + "direct_transition": "Determine Nausea or Vomiting" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/covid19/treat_blood_clot.json b/src/main/resources/modules/covid19/treat_blood_clot.json new file mode 100644 index 0000000..2617aa2 --- /dev/null +++ b/src/main/resources/modules/covid19/treat_blood_clot.json @@ -0,0 +1,259 @@ +{ + "name": "treat_blood_clot", + "remarks": [ + "All patients admitted to the hospital should be placed on prophylaxis for venous thromboembolism (blood clots).", + "", + "At some point, both patients on the floor and ICU should develop a clot (see the diagnose_blood_clot submodule), at which point they should be treated differently." + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_diagnosed_clot", + "operator": "is nil" + } + }, + { + "transition": "Blood Clot Treatment", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_diagnosed_clot", + "operator": "==", + "value": true + } + }, + { + "transition": "Blood Clot Prophylaxis", + "condition": { + "condition_type": "Attribute", + "attribute": "covid19_diagnosed_clot", + "operator": "==", + "value": false + } + }, + { + "transition": "Terminal" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Blood Clot Prophylaxis": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Heparin", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 4 + } + ] + } + }, + { + "transition": "Enoxaparin 30", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40095003", + "display": "Injury of kidney (disorder)" + } + ] + } + }, + { + "transition": "Enoxaparin 40" + } + ] + }, + "Blood Clot Treatment": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Heparin Single Dose", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 4 + } + ] + } + }, + { + "transition": "Enoxaparin", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40095003", + "display": "Injury of kidney (disorder)" + } + ] + } + }, + { + "transition": "Enoxaparin Double" + } + ] + }, + "Heparin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1659263, + "display": "1 ML heparin sodium, porcine 5000 UNT/ML Injection" + } + ], + "direct_transition": "Terminal", + "administration": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "days" + }, + "refills": 2 + } + }, + "Enoxaparin 30": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 854228, + "display": "0.3 ML Enoxaparin sodium 100 MG/ML Prefilled Syringe" + } + ], + "direct_transition": "Terminal", + "administration": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "days" + }, + "refills": 2 + } + }, + "Enoxaparin 40": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 854235, + "display": "0.4 ML Enoxaparin sodium 100 MG/ML Prefilled Syringe" + } + ], + "administration": true, + "direct_transition": "Terminal" + }, + "Heparin Infusion": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "103746007", + "display": "Heparin therapy (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "36576007", + "display": "Infusion (procedure)" + } + ], + "direct_transition": "Terminal", + "reason": "covid19_clot" + }, + "Heparin Single Dose": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1659263, + "display": "1 ML heparin sodium, porcine 5000 UNT/ML Injection" + } + ], + "direct_transition": "Heparin Infusion", + "administration": true, + "reason": "covid19_clot" + }, + "Enoxaparin Double": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 854252, + "display": "1 ML Enoxaparin sodium 150 MG/ML Prefilled Syringe" + } + ], + "direct_transition": "Terminal", + "administration": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "days" + }, + "refills": 2 + }, + "reason": "covid19_clot" + }, + "Enoxaparin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 854252, + "display": "1 ML Enoxaparin sodium 150 MG/ML Prefilled Syringe" + } + ], + "administration": true, + "reason": "covid19_clot", + "direct_transition": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/cystic_fibrosis.json b/src/main/resources/modules/cystic_fibrosis.json new file mode 100644 index 0000000..ba4afb4 --- /dev/null +++ b/src/main/resources/modules/cystic_fibrosis.json @@ -0,0 +1,1769 @@ +{ + "name": "Cystic Fibrosis", + "remarks": [ + "Cystic Fibrosis, or mucoviscidosis, is an autosomal recessive genetic disorder which is named after that scarring (fibrosis) and cyst formation in the pancreas. It is characterized by thick, viscous secretions such as thickening of mucus which causes many respiratory problems. Statistics and information were gathered from the pages and information available at:\nhttps://www.cff.org\n\nSome data and statistic came from:\nhttps://www.sciencedirect.com/science/article/pii/S1569199315002106?viewFullText=true#f0015\n\n\n\n\n\n" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Potential_Onset" + }, + "Terminal": { + "type": "Terminal" + }, + "Potential_Onset": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Race", + "race": "white" + }, + "distributions": [ + { + "transition": "Cystic_Fibrosis", + "distribution": 0.0003333333 + }, + { + "transition": "Terminal", + "distribution": 0.9996666667 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "black" + }, + "distributions": [ + { + "transition": "Cystic_Fibrosis", + "distribution": 0.000066225 + }, + { + "transition": "Terminal", + "distribution": 0.999933775 + } + ] + }, + { + "distributions": [ + { + "transition": "Cystic_Fibrosis", + "distribution": 0.000028571 + }, + { + "transition": "Terminal", + "distribution": 0.999971429 + } + ], + "condition": { + "condition_type": "Race", + "race": "asian" + } + } + ], + "remarks": [ + "https://ghr.nlm.nih.gov/condition/cystic-fibrosis#statistics", + "", + "The frequency dropdown shows statistics about fibrosis prevalence by race." + ] + }, + "Cystic_Fibrosis": { + "type": "ConditionOnset", + "target_encounter": "Fibrosis_Screening", + "assign_to_attribute": "Cystic_Fibrosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "190905008", + "display": "Cystic fibrosis (disorder)" + } + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "transition": "Male_Infertility", + "distribution": 0.98 + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "Female_Infertility", + "distribution": 0.5 + } + ] + }, + { + "transition": "chronic_cough" + } + ] + }, + "Age Less Than 1": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "distributed_transition": [ + { + "transition": "symptoms_dont_improve", + "distribution": 0.82 + }, + { + "transition": "Meconium Ileus", + "distribution": 0.18 + } + ] + }, + "Age 1": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "years" + }, + "direct_transition": "symptoms_dont_improve" + }, + "Ages_2_15": { + "type": "Delay", + "range": { + "low": 2, + "high": 15, + "unit": "years" + }, + "direct_transition": "symptoms_dont_improve" + }, + "16_plus": { + "type": "Delay", + "range": { + "low": 16, + "high": 50, + "unit": "years" + }, + "direct_transition": "symptoms_dont_improve" + }, + "Fibrosis_Screening": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "67799006", + "display": "Cystic fibrosis, prenatal detection (procedure)" + } + ], + "conditional_transition": [ + { + "transition": "Neonatal_screening", + "condition": { + "condition_type": "PriorState", + "name": "Age Less Than 1" + } + }, + { + "transition": "Sweat_Test" + } + ], + "remarks": [ + "https://www.cff.org/What-is-CF/Testing/" + ], + "reason": "Cystic_Fibrosis" + }, + "Sweat_Test": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "86964003", + "display": "Cystic fibrosis sweat test (procedure)" + } + ], + "duration": { + "low": 1, + "high": 2, + "unit": "hours" + }, + "direct_transition": "Gene_mutation_test", + "remarks": [ + "Salty sweat indicates CF", + "https://www.cff.org/What-is-CF/Testing/Sweat-Test/" + ] + }, + "Gene_mutation_test": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "444260001", + "display": "Screen for 20 common genetic mutations of cystic fibrosis using amplification refractory mutation system polymerase chain reaction assay technique (procedure)" + } + ], + "duration": { + "low": 0.5, + "high": 1, + "unit": "hours" + }, + "distributed_transition": [ + { + "transition": "Prescribe_Mucus_Thinner", + "distribution": 0.96 + }, + { + "transition": "Set_Gene_Mutation", + "distribution": 0.04 + } + ], + "remarks": [ + "CF is a genetic disease", + "https://www.cff.org/What-is-CF/Testing/", + "" + ] + }, + "End_Screening": { + "type": "EncounterEnd", + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 11, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Check_Anemia_Exist", + "distribution": 0.185 + }, + { + "transition": "Life_With_Cystic_Fibrosis", + "distribution": 0.815 + } + ] + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">=", + "quantity": 11, + "unit": "years", + "value": 0 + }, + { + "condition_type": "Age", + "operator": "<=", + "quantity": 18, + "unit": "years", + "value": 0 + } + ] + }, + "distributions": [ + { + "transition": "Check_Anemia_Exist", + "distribution": 0.04 + }, + { + "transition": "Life_With_Cystic_Fibrosis", + "distribution": 0.96 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">", + "quantity": 18, + "unit": "years" + }, + "distributions": [ + { + "transition": "Check_Anemia_Exist", + "distribution": 0.43 + }, + { + "transition": "Life_With_Cystic_Fibrosis", + "distribution": 0.57 + } + ] + } + ], + "remarks": [ + "Anemia prevalence in Cystic Fibrosis -" + ] + }, + "Set_Gene_Mutation": { + "type": "SetAttribute", + "attribute": "G155D Mutation", + "direct_transition": "Prescribe_Ivacaftor", + "value": true, + "remarks": [ + "Around 4% of CF patients have a gene mutation that causes the disease but can be treated with a different drug." + ] + }, + "chronic_cough": { + "type": "Symptom", + "symptom": "Chronic Cough", + "cause": "", + "direct_transition": "Salty_Skin", + "range": { + "low": 50, + "high": 100 + } + }, + "Meconium Ileus": { + "type": "ConditionOnset", + "target_encounter": "Fibrosis_Screening", + "codes": [ + { + "system": "SNOMED-CT", + "code": "206523001", + "display": "Meconium ileus (disorder)" + } + ], + "direct_transition": "Fibrosis_Screening", + "remarks": [ + "http://www.hopkinscf.org/what-is-cf/diagnosis/presentations/meconium-illeus/" + ] + }, + "Enema": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "61919008", + "display": "Giving patient an enema (procedure)" + } + ], + "duration": { + "low": 1, + "high": 2, + "unit": "hours" + }, + "direct_transition": "Meconium_Ileus_Resolved", + "remarks": [ + "http://www.seattlechildrens.org/medical-conditions/digestive-gastrointestinal-conditions/meconium-ileus/" + ], + "reason": "Meconium Ileus" + }, + "Male_Infertility": { + "type": "ConditionOnset", + "target_encounter": "Fibrosis_Screening", + "codes": [ + { + "system": "SNOMED-CT", + "code": "707418001", + "display": "Male infertility due to cystic fibrosis (disorder)" + } + ], + "direct_transition": "chronic_cough" + }, + "Female_Infertility": { + "type": "ConditionOnset", + "target_encounter": "Fibrosis_Screening", + "codes": [ + { + "system": "SNOMED-CT", + "code": "707577004", + "display": "Female infertility due to cystic fibrosis (disorder)" + } + ], + "direct_transition": "chronic_cough", + "remarks": [ + "https://thorax.bmj.com/content/56/8/649" + ] + }, + "Neonatal_screening": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60151004", + "display": "Neonatal screening (procedure)" + } + ], + "duration": { + "low": 12, + "high": 24, + "unit": "hours" + }, + "conditional_transition": [ + { + "transition": "Enema", + "condition": { + "condition_type": "PriorState", + "name": "Meconium Ileus" + } + }, + { + "transition": "Sweat_Test" + } + ], + "remarks": [ + "https://www.cff.org/What-is-CF/Testing/Newborn-Screening-for-CF/" + ] + }, + "symptoms_dont_improve": { + "type": "Delay", + "direct_transition": "Fibrosis_Screening", + "range": { + "low": 2, + "high": 4, + "unit": "weeks" + } + }, + "Meconium_Ileus_Resolved": { + "type": "ConditionEnd", + "direct_transition": "Sweat_Test", + "condition_onset": "Meconium Ileus" + }, + "CF_CarePlan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "734163000", + "display": "Care plan (record artifact)" + } + ], + "direct_transition": "End_Screening", + "reason": "Cystic_Fibrosis", + "activities": [ + { + "system": "SNOMED-CT", + "code": "710971000", + "display": "Maintaining clear airway (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "56251003", + "display": "Nebulizer therapy (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "392020005", + "display": "Peripherally inserted central catheter care (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "226029000", + "display": "Exercises (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "386373004", + "display": "Nutrition therapy (regime/therapy)" + } + ], + "remarks": [ + "A CF careplan is characterized here:", + "", + "https://www.cff.org/Life-With-CF/Treatments-and-Therapies/Treatment-Plan/Managing-Your-Treatment-Plan/" + ] + }, + "Pancreatin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "198767", + "display": "Pancreatin 600 MG Oral Tablet" + } + ], + "direct_transition": "CF_CarePlan", + "reason": "Cystic_Fibrosis", + "remarks": [ + "https://www.cff.org/Life-With-CF/Daily-Life/Fitness-and-Nutrition/Nutrition/Taking-Care-of-Your-Digestive-System/Enzymes/", + "", + "\"Between 85 and 90% of CF patients have pancreatic insufficiency." + ], + "chronic": true + }, + "Life_With_Cystic_Fibrosis": { + "type": "Delay", + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "diabetes", + "operator": "==", + "value": true + }, + { + "condition_type": "Age", + "operator": "<=", + "quantity": 30, + "unit": "years", + "value": 0 + } + ] + }, + "distributions": [ + { + "transition": "startDiseaseChain", + "distribution": 0.982 + }, + { + "transition": "patient_dies", + "distribution": 0.013 + }, + { + "transition": "patient_lives", + "distribution": 0.005 + } + ] + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">", + "quantity": 30, + "unit": "years" + }, + { + "condition_type": "Attribute", + "attribute": "diabetes", + "operator": "==", + "value": true + } + ] + }, + "distributions": [ + { + "transition": "patient_dies", + "distribution": 0.035 + }, + { + "transition": "startDiseaseChain", + "distribution": 0.935 + }, + { + "transition": "patient_lives", + "distribution": 0.03 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "lung_transplant", + "operator": "==", + "value": "denied" + }, + "distributions": [ + { + "distribution": 0.049, + "transition": "patient_dies" + }, + { + "distribution": 0.931, + "transition": "startDiseaseChain" + }, + { + "distribution": 0.02, + "transition": "patient_lives" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "lung_transplant", + "operator": "==", + "value": "accepted" + }, + "distributions": [ + { + "distribution": 0.0204, + "transition": "patient_dies" + }, + { + "distribution": 0.9696, + "transition": "startDiseaseChain" + }, + { + "distribution": 0.01, + "transition": "patient_lives" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">", + "quantity": 20, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.021, + "transition": "patient_dies" + }, + { + "distribution": 0.969, + "transition": "startDiseaseChain" + }, + { + "distribution": 0.01, + "transition": "patient_lives" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 20, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "distribution": 0.996, + "transition": "startDiseaseChain" + }, + { + "distribution": 0.002, + "transition": "patient_dies" + }, + { + "distribution": 0.002, + "transition": "patient_lives" + } + ] + } + ], + "range": { + "low": 12, + "high": 14, + "unit": "weeks" + } + }, + "Getting_Diagnosed": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Age Less Than 1", + "distribution": 0.657 + }, + { + "transition": "Age 1", + "distribution": 0.066 + }, + { + "transition": "Ages_2_15", + "distribution": 0.208 + }, + { + "transition": "16_plus", + "distribution": 0.068 + } + ], + "remarks": [ + "https://www.cff.org/uploadedImages/Content/What_is_CF/age-at-diagnosis.jpg" + ] + }, + "Prescribe_Ivacaftor": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1243052, + "display": "Kalydeco 150 MG Oral Tablet" + } + ], + "direct_transition": "Prescribe_Mucus_Thinner", + "reason": "Cystic_Fibrosis", + "remarks": [ + "https://www.cff.org/About-Us/Media-Center/Press-Releases/The-Cystic-Fibrosis-Foundation-Applauds-FDA-Approval-of-Kalydeco/" + ], + "chronic": true + }, + "Prescribe_Mucus_Thinner": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 205532, + "display": "Pulmozyme (Dornase Alfa)" + } + ], + "reason": "Cystic_Fibrosis", + "distributed_transition": [ + { + "transition": "Pancreatin", + "distribution": 0.9 + }, + { + "transition": "CF_CarePlan", + "distribution": 0.1 + } + ], + "chronic": true + }, + "Salty_Skin": { + "type": "Symptom", + "symptom": "Salty_Skin", + "cause": "", + "exact": { + "quantity": 1 + }, + "direct_transition": "Getting_Diagnosed" + }, + "Quarterly_Checkup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "conditional_transition": [ + { + "transition": "GlucoseTest", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "GlucoseTest", + "within": { + "quantity": 1, + "unit": "years" + } + } + }, + { + "condition_type": "Age", + "operator": ">=", + "quantity": 10, + "unit": "years" + } + ] + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "DiabetesCarePlan" + } + } + ] + } + }, + { + "transition": "Chest_XRay", + "condition": { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "Chest_XRay", + "within": { + "quantity": 2, + "unit": "years" + } + } + } + }, + { + "transition": "Oropharyngeal_Culture" + } + ], + "remarks": [ + "http://pediatrics.aappublications.org/content/early/2016/03/22/peds.2015-1784", + "", + "Overview of the standard of care per quarter" + ], + "reason": "Cystic_Fibrosis" + }, + "Chest_XRay": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain X-ray of chest (procedure)" + } + ], + "duration": { + "low": 1, + "high": 2, + "unit": "hours" + }, + "conditional_transition": [ + { + "transition": "GlucoseTest", + "condition": { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "DiabetesCarePlan" + } + } + } + ], + "remarks": [ + "Chest X-rays should be done at least every other year, as shown in the link at \"Quarterly Checkup\"" + ], + "reason": "Cystic_Fibrosis" + }, + "Oropharyngeal_Culture": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "104173009", + "display": "Microbial culture of sputum (procedure)" + } + ], + "duration": { + "low": 5, + "high": 15, + "unit": "minutes" + }, + "complex_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Develop_Infection_1" + }, + "distributions": [ + { + "transition": "Prescribe_Ciprofloxacin", + "distribution": 0.25 + }, + { + "transition": "Pulmonary_Function_Test", + "distribution": 0.75 + } + ] + }, + { + "distributions": [ + { + "transition": "Prescribe_Vancomycin", + "distribution": 0.25 + }, + { + "transition": "Pulmonary_Function_Test", + "distribution": 0.75 + } + ], + "condition": { + "condition_type": "PriorState", + "name": "Develop_Infection_2" + } + }, + { + "distributions": [ + { + "transition": "Pulmonary_Function_Test", + "distribution": 1 + } + ] + } + ], + "reason": "Cystic_Fibrosis" + }, + "Develop_Diabetes": { + "type": "ConditionOnset", + "target_encounter": "Quarterly_Checkup", + "codes": [ + { + "system": "SNOMED-CT", + "code": "427089005", + "display": "Diabetes mellitus due to cystic fibrosis (disorder)" + } + ], + "direct_transition": "diatbetesState", + "remarks": [ + "Development of diabetes with cystic fibrosis is relatively common. ", + "", + "https://www.ncbi.nlm.nih.gov/pubmed/19542209", + "" + ] + }, + "GlucoseTest": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "113076002", + "display": "Glucose tolerance test (procedure)" + } + ], + "duration": { + "low": 120, + "high": 150, + "unit": "minutes" + }, + "conditional_transition": [ + { + "transition": "DiabetesCarePlan", + "condition": { + "condition_type": "Attribute", + "attribute": "diabetes", + "operator": "==", + "value": true + } + }, + { + "transition": "Oropharyngeal_Culture" + } + ], + "remarks": [ + "https://www.cff.org/Life-With-CF/Daily-Life/Cystic-Fibrosis-related-Diabetes/Managing-CFRD.pdf", + "\"The glucose test is recommended to be done at least annually\"" + ] + }, + "diatbetesState": { + "type": "SetAttribute", + "attribute": "diabetes", + "direct_transition": "diseaseSupplier", + "value": true + }, + "DiabetesCarePlan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "703040004", + "display": "Agreeing on diabetes care plan (procedure)" + } + ], + "direct_transition": "Oropharyngeal_Culture", + "reason": "Develop_Diabetes", + "activities": [ + { + "system": "SNOMED-CT", + "code": "308113006", + "display": "Self-monitoring of blood glucose (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "225302006", + "display": "Insulin regime (regime/therapy)" + } + ] + }, + "EndCheckup": { + "type": "EncounterEnd", + "complex_transition": [ + { + "condition": { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "Lung_Transplant" + } + }, + "distributions": [ + { + "transition": "Lung_Transplant_Considered", + "distribution": 0.007 + }, + { + "transition": "Life_With_Cystic_Fibrosis", + "distribution": 0.993 + } + ] + }, + { + "distributions": [ + { + "transition": "Life_With_Cystic_Fibrosis", + "distribution": 1 + } + ] + } + ] + }, + "Lung_Transplant_Considered": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Lung_Transplant_Wait", + "distribution": 0.69 + }, + { + "transition": "Lung_Transplant_Denied", + "distribution": 0.31 + } + ], + "remarks": [ + "https://www.sciencedirect.com/science/article/pii/S1569199315002106?viewFullText=true#f0015", + "Values for percent denied/accepted and disease related to lung transplant were taken from the link above. The statistics are from the French registry so it might be a bit off from US stats" + ] + }, + "Lung_Transplant_Denied": { + "type": "SetAttribute", + "attribute": "lung_transplant", + "direct_transition": "Life_With_Cystic_Fibrosis", + "value": "denied" + }, + "Lung_Transplant": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "232657004", + "display": "Single lung transplant (procedure)" + } + ], + "duration": { + "low": 2, + "high": 5, + "unit": "days" + }, + "direct_transition": "Lung_Transplant_End", + "reason": "Cystic_Fibrosis" + }, + "setTransplant": { + "type": "SetAttribute", + "attribute": "lung_transplant", + "direct_transition": "Life_With_Cystic_Fibrosis", + "value": "accepted" + }, + "Take_Blood_Sample": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "82078001", + "display": "Collection of blood specimen for laboratory (procedure)" + } + ], + "duration": { + "low": 10, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "EndCheckup", + "reason": "Cystic_Fibrosis" + }, + "Pulmonary_Function_Test": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "23426006", + "display": "Measurement of respiratory function (procedure)" + } + ], + "duration": { + "low": 5, + "high": 15, + "unit": "minutes" + }, + "direct_transition": "Take_Blood_Sample", + "reason": "Cystic_Fibrosis" + }, + "startDiseaseChain": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">", + "quantity": 0, + "unit": "years" + }, + { + "condition_type": "Age", + "operator": "<=", + "quantity": 8, + "unit": "years", + "value": 0 + } + ] + }, + "distributions": [ + { + "transition": "Diabetes_Guard", + "distribution": 0.005 + }, + { + "transition": "diseaseSupplier", + "distribution": 0.995 + } + ] + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">", + "quantity": 8, + "unit": "years" + }, + { + "condition_type": "Age", + "operator": "<=", + "quantity": 18, + "unit": "years", + "value": 0 + } + ] + }, + "distributions": [ + { + "transition": "Diabetes_Guard", + "distribution": 0.052 + }, + { + "transition": "diseaseSupplier", + "distribution": 0.948 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">", + "quantity": 18, + "unit": "years" + }, + "distributions": [ + { + "transition": "Diabetes_Guard", + "distribution": 0.067 + }, + { + "transition": "diseaseSupplier", + "distribution": 0.933 + } + ] + } + ] + }, + "diseaseSupplier": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "no_double_infection", + "distribution": 0.0058 + }, + { + "transition": "no_double_infection_2", + "distribution": 0.0032 + }, + { + "transition": "Quarterly_Checkup", + "distribution": 0.991 + } + ], + "remarks": [ + "https://www.cff.org/Research/Researcher-Resources/Patient-Registry/2017-Cystic-Fibrosis-Foundation-Patient-Registry-Highlights.pdf", + "Statistics for infections are taken from the 2017 registry", + "" + ] + }, + "Develop_Infection_1": { + "type": "ConditionOnset", + "target_encounter": "Quarterly_Checkup", + "codes": [ + { + "system": "SNOMED-CT", + "code": "11218009", + "display": "Infection caused by Pseudomonas aeruginosa (disorder)" + } + ], + "direct_transition": "Quarterly_Checkup" + }, + "Develop_Infection_2": { + "type": "ConditionOnset", + "target_encounter": "Quarterly_Checkup", + "codes": [ + { + "system": "SNOMED-CT", + "code": "406602003", + "display": "Infection caused by Staphylococcus aureus (disorder)" + } + ], + "direct_transition": "Quarterly_Checkup" + }, + "Prescribe_Ciprofloxacin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1665227, + "display": "20 ML Ciprofloxacin 10 MG/ML Injection" + } + ], + "direct_transition": "Pulmonary_Function_Test", + "reason": "Develop_Infection_1", + "remarks": [ + "https://www.ncbi.nlm.nih.gov/pubmed/2941289" + ], + "administration": true + }, + "Prescribe_Vancomycin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 313572, + "display": "Vancomycin 50 MG/ML Injectable Solution" + } + ], + "direct_transition": "Pulmonary_Function_Test", + "remarks": [ + "https://www.mayoclinic.org/diseases-conditions/staph-infections/diagnosis-treatment/drc-20356227" + ], + "reason": "Develop_Infection_2", + "administration": true + }, + "patient_dies": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "PriorState", + "name": "Develop_Infection_1" + }, + { + "condition_type": "PriorState", + "name": "Prescribe_Ciprofloxacin", + "since": "Develop_Infection_1", + "within": { + "quantity": 6, + "unit": "months" + } + } + ] + }, + "distributions": [ + { + "transition": "Sepsis_Of_Paeruginosa", + "distribution": 0.4 + }, + { + "transition": "patient_lives", + "distribution": 0.6 + } + ] + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "PriorState", + "name": "Develop_Infection_2" + }, + { + "condition_type": "PriorState", + "name": "Prescribe_Vancomycin", + "since": "Develop_Infection_2", + "within": { + "quantity": 6, + "unit": "months" + } + } + ] + }, + "distributions": [ + { + "transition": "Sepsis_of_Staphylococcus_aureus", + "distribution": 0.4 + }, + { + "transition": "patient_lives", + "distribution": 0.6 + } + ] + }, + { + "condition": { + "condition_type": "PriorState", + "name": "Develop_Infection_1" + }, + "distributions": [ + { + "distribution": 0.8, + "transition": "Sepsis_Of_Paeruginosa" + }, + { + "transition": "pulmonary_exacerbation", + "distribution": 0.2 + } + ] + }, + { + "condition": { + "condition_type": "PriorState", + "name": "Develop_Infection_2" + }, + "distributions": [ + { + "distribution": 0.8, + "transition": "Sepsis_of_Staphylococcus_aureus" + }, + { + "transition": "pulmonary_exacerbation", + "distribution": 0.2 + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "pulmonary_exacerbation" + } + ] + } + ], + "remarks": [ + "https://www.sciencedirect.com/science/article/pii/S1569199315002106?viewFullText=true#f0015" + ] + }, + "Sepsis_Of_Paeruginosa": { + "type": "ConditionOnset", + "assign_to_attribute": "CF_Complication", + "target_encounter": "Emergency_Room", + "codes": [ + { + "system": "SNOMED-CT", + "code": "448813005", + "display": "Sepsis caused by Pseudomonas (disorder)" + } + ], + "direct_transition": "low_blood_pressure" + }, + "Emergency_Room": { + "type": "Encounter", + "encounter_class": "emergency", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "conditional_transition": [ + { + "transition": "Antibiotic_Therapy", + "condition": { + "condition_type": "PriorState", + "name": "Sepsis_Of_Paeruginosa", + "within": { + "quantity": 1, + "unit": "days" + } + } + }, + { + "transition": "Antibiotic_Therapy", + "condition": { + "condition_type": "PriorState", + "name": "Sepsis_of_Staphylococcus_aureus", + "within": { + "quantity": 1, + "unit": "days" + } + } + }, + { + "transition": "Tracheostomy", + "condition": { + "condition_type": "PriorState", + "name": "pulmonary_exacerbation", + "within": { + "quantity": 1, + "unit": "days" + } + } + } + ], + "reason": "CF_Complication", + "remarks": [ + "For Sepsis", + "https://www.mayoclinic.org/diseases-conditions/sepsis/diagnosis-treatment/drc-20351219", + "For Respiratory Failure", + "https://emedicine.medscape.com/article/167981-treatment" + ] + }, + "Intravenous_Infusion": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "14152002", + "display": "Intravenous infusion (procedure)" + } + ], + "duration": { + "low": 1, + "high": 4, + "unit": "hours" + }, + "conditional_transition": [ + { + "transition": "death", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "PriorState", + "name": "patient_dies" + }, + { + "condition_type": "PriorState", + "name": "Sepsis_Of_Paeruginosa" + } + ] + } + }, + { + "transition": "death_2", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "PriorState", + "name": "patient_dies" + }, + { + "condition_type": "PriorState", + "name": "Sepsis_of_Staphylococcus_aureus" + } + ] + } + }, + { + "transition": "Release_From_Hospital" + } + ], + "reason": "CF_Complication" + }, + "Antibiotic_Therapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "281790008", + "display": "Intravenous antibiotic therapy (procedure)" + } + ], + "duration": { + "low": 30, + "high": 90, + "unit": "minutes" + }, + "direct_transition": "Intravenous_Infusion", + "reason": "CF_Complication" + }, + "death": { + "type": "Death", + "direct_transition": "Terminal", + "condition_onset": "Sepsis_Of_Paeruginosa", + "codes": [ + { + "system": "SNOMED-CT", + "code": "448813005", + "display": "Sepsis caused by Pseudomonas (disorder)" + } + ], + "range": { + "low": 1, + "high": 2, + "unit": "days" + } + }, + "Sepsis_of_Staphylococcus_aureus": { + "type": "ConditionOnset", + "assign_to_attribute": "CF_Complication", + "target_encounter": "Emergency_Room", + "codes": [ + { + "system": "SNOMED-CT", + "code": "448417001", + "display": "Sepsis caused by Staphylococcus aureus (disorder)" + } + ], + "direct_transition": "low_blood_pressure" + }, + "fever": { + "type": "Symptom", + "symptom": "fever", + "cause": "Sepsis_Of_Paeruginosa", + "direct_transition": "Emergency_Room", + "range": { + "low": 70, + "high": 100 + } + }, + "difficulty_breathing": { + "type": "Symptom", + "symptom": "difficulty breathing", + "cause": "Sepsis_of_Paeruginosa", + "direct_transition": "fever", + "range": { + "low": 60, + "high": 90 + } + }, + "low_blood_pressure": { + "type": "Symptom", + "symptom": "low blood pressure", + "cause": "", + "direct_transition": "difficulty_breathing", + "range": { + "low": 40, + "high": 80 + } + }, + "death_2": { + "type": "Death", + "direct_transition": "Terminal", + "condition_onset": "Sepsis_of_Staphylococcus_aureus", + "codes": [ + { + "system": "SNOMED-CT", + "code": "448813005", + "display": "Sepsis caused by Pseudomonas (disorder)" + } + ] + }, + "Tracheostomy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "48387007", + "display": "Incision of trachea (procedure)" + } + ], + "duration": { + "low": 30, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "Oxygen_Therapy", + "reason": "CF_Complication" + }, + "wheezing": { + "type": "Symptom", + "symptom": "wheezing", + "cause": "", + "direct_transition": "Emergency_Room", + "range": { + "low": 70, + "high": 100 + } + }, + "death_3": { + "type": "Death", + "direct_transition": "Terminal", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65710008", + "display": "Acute respiratory failure (disorder)" + } + ], + "range": { + "low": 1, + "high": 2, + "unit": "days" + } + }, + "Oxygen_Therapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65710008", + "display": "Acute respiratory failure (disorder)" + } + ], + "duration": { + "low": 30, + "high": 60, + "unit": "minutes" + }, + "conditional_transition": [ + { + "transition": "death_3", + "condition": { + "condition_type": "PriorState", + "name": "patient_dies" + } + }, + { + "transition": "Release_From_Hospital" + } + ], + "reason": "CF_Complication" + }, + "Release_From_Hospital": { + "type": "EncounterEnd", + "direct_transition": "Recovery" + }, + "patient_lives": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Sepsis_Of_Paeruginosa", + "condition": { + "condition_type": "PriorState", + "name": "Develop_Infection_1" + } + }, + { + "transition": "Sepsis_of_Staphylococcus_aureus", + "condition": { + "condition_type": "PriorState", + "name": "Develop_Infection_2" + } + }, + { + "transition": "pulmonary_exacerbation" + } + ] + }, + "pulmonary_exacerbation": { + "type": "ConditionOnset", + "assign_to_attribute": "CF_Complication", + "target_encounter": "Emergency_Room", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65710008", + "display": "Acute respiratory failure (disorder)" + } + ], + "direct_transition": "wheezing" + }, + "Diabetes_Guard": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "diseaseSupplier", + "condition": { + "condition_type": "PriorState", + "name": "Develop_Diabetes" + } + }, + { + "transition": "Develop_Diabetes" + } + ] + }, + "no_double_infection": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Quarterly_Checkup", + "condition": { + "condition_type": "PriorState", + "name": "Develop_Infection_1" + } + }, + { + "transition": "Develop_Infection_1" + } + ] + }, + "no_double_infection_2": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Quarterly_Checkup", + "condition": { + "condition_type": "PriorState", + "name": "Develop_Infection_2" + } + }, + { + "transition": "Develop_Infection_2" + } + ] + }, + "Lung_Transplant_Wait": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "16602611000119108", + "display": "Awaiting transplantation of lung (situation)" + } + ], + "direct_transition": "Lung_Transplant", + "reason": "Cystic_Fibrosis" + }, + "Lung_Transplant_End": { + "type": "EncounterEnd", + "direct_transition": "setTransplant" + }, + "Recovery": { + "type": "Delay", + "direct_transition": "startDiseaseChain", + "range": { + "low": 6, + "high": 14, + "unit": "weeks" + } + }, + "Anemia_Submodule": { + "type": "CallSubmodule", + "submodule": "anemia/anemia_sub", + "direct_transition": "Life_With_Cystic_Fibrosis" + }, + "Check_Anemia_Exist": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Anemia_Submodule", + "condition": { + "condition_type": "Attribute", + "attribute": "anemia", + "operator": "is nil" + } + }, + { + "transition": "Life_With_Cystic_Fibrosis" + } + ] + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/dementia.json b/src/main/resources/modules/dementia.json new file mode 100644 index 0000000..a8d6db8 --- /dev/null +++ b/src/main/resources/modules/dementia.json @@ -0,0 +1,771 @@ +{ + "name": "Dementia", + "remarks": [ + "right now this is just Alzheimer's but there are other dementias that could be adapted into this model" + ], + "states": { + "Initial": { + "type": "Initial", + "distributed_transition": [ + { + "distribution": 0.4, + "transition": "AlzheimersGene" + }, + { + "distribution": 0.6, + "transition": "Terminal" + } + ], + "remarks": [ + "Alzheimer's has been shown to be significantly based on genetics, and there are specific genes to point to for early-onset:", + "https://www.nia.nih.gov/alzheimers/publication/alzheimers-disease-genetics-fact-sheet", + "Since Synthea does not currently model at the level of individual genes", + "we'll use a simple probability to differentiate the population into who will and won't get alzheimers.", + "The 40% chance does seem high, but the key factor here is the delay in when it appears.", + "38% of people over age 85 have alzheimer's. ( http://www.alzheimers.net/resources/alzheimers-statistics/ )" + ] + }, + "AlzheimersGene": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.95, + "transition": "PreAlzheimers" + }, + { + "distribution": 0.05, + "transition": "PreEarlyOnsetAlzheimers" + } + ], + "remarks": [ + "Early onset Alzheimers affects roughly 5% of people with Alzheimer's. http://www.mayoclinic.org/diseases-conditions/alzheimers-disease/in-depth/alzheimers/art-20048356" + ] + }, + "PreAlzheimers": { + "type": "Delay", + "range": { + "low": 64, + "high": 80, + "unit": "years" + }, + "remarks": [ + "There is evidence that higher education leads to a delay in the onset of alzheimers." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Socioeconomic Status", + "category": "High" + }, + "transition": "EducationDelay" + }, + { + "transition": "AlzheimersOnset" + } + ] + }, + "EducationDelay": { + "type": "Delay", + "range": { + "low": 5, + "high": 10, + "unit": "years" + }, + "direct_transition": "AlzheimersOnset" + }, + "AlzheimersOnset": { + "type": "ConditionOnset", + "target_encounter": "DiagnosisEncounter", + "assign_to_attribute": "Type of Alzheimer's", + "codes": [ + { + "system": "SNOMED-CT", + "code": "26929004", + "display": "Alzheimer's disease (disorder)" + } + ], + "direct_transition": "Eventual_Hospice_Reason" + }, + "PreEarlyOnsetAlzheimers": { + "type": "Delay", + "range": { + "low": 40, + "high": 64, + "unit": "years" + }, + "direct_transition": "EarlyOnsetAlzheimersOnset" + }, + "EarlyOnsetAlzheimersOnset": { + "type": "ConditionOnset", + "target_encounter": "DiagnosisEncounter", + "assign_to_attribute": "Type of Alzheimer's", + "codes": [ + { + "system": "SNOMED-CT", + "code": "230265002", + "display": "Familial Alzheimer's disease of early onset (disorder)" + } + ], + "direct_transition": "Eventual_Hospice_Reason" + }, + "NoImpairment": { + "type": "Delay", + "range": { + "low": 12, + "high": 36, + "unit": "months" + }, + "remarks": [ + "1. Normal" + ], + "direct_transition": "VeryMildDecline" + }, + "VeryMildDecline": { + "type": "Delay", + "range": { + "low": 12, + "high": 36, + "unit": "months" + }, + "remarks": [ + "2. Very mild decline, also considered normal aged forgetfulness" + ], + "direct_transition": "DecreasedCommunication" + }, + "DecreasedCommunication": { + "type": "Symptom", + "symptom": "Decreased Communication", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "DecreasedAttentiveness" + }, + "DecreasedAttentiveness": { + "type": "Symptom", + "symptom": "Decreased Attentiveness", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "DecreasedJudgment" + }, + "DecreasedJudgment": { + "type": "Symptom", + "symptom": "Decreased in Judgement", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "DecreasedVisualPerception" + }, + "DecreasedVisualPerception": { + "type": "Symptom", + "symptom": "Decreased Visual Perception", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Confusion" + }, + "Confusion": { + "type": "Symptom", + "symptom": "Confusion", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "MildMemoryLoss" + }, + "MildMemoryLoss": { + "type": "Symptom", + "symptom": "Memory Loss", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "MildDecline" + }, + "MildDecline": { + "type": "Delay", + "range": { + "low": 6, + "high": 12, + "unit": "months" + }, + "remarks": [ + "3. Mild decline, aka mild cognitive impairment (MCI) progresses to the next stage in generally 2-4 years", + "Persons at this stage display subtle deficits which are noted by others close to the subject", + "https://www.alzinfo.org/understand-alzheimers/clinical-stages-of-alzheimers/" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Symptom", + "symptom": "Memory Loss", + "operator": ">", + "value": 40 + }, + "transition": "DiagnosisEncounter", + "remarks": [ + "if the symptom is sufficiently noticeable enough people can be diagnosed in this stage, if not they will be diagnosed in the next stage" + ] + }, + { + "condition": { + "condition_type": "Symptom", + "symptom": "Memory Loss", + "operator": ">", + "value": 30 + }, + "transition": "ModerateDecline" + }, + { + "transition": "MildMemoryLoss" + } + ] + }, + "DiagnosisEncounter": { + "type": "Encounter", + "wellness": true, + "remarks": [ + "This is the enounter where alzheimer's is diagnosed. ", + "Typical life expectancy after an Alzheimer’s diagnosis is 4-to-8 years. (Alzheimer’s Association)" + ], + "direct_transition": "Diagnosis_MMSE_Score", + "reason": "Type of Alzheimer's" + }, + "Diagnosis_MMSE_Score": { + "type": "Observation", + "category": "survey", + "range": { + "low": 18, + "high": 25 + }, + "remarks": [ + "The maximum MMSE score is 30 points. A score of 20 to 24 suggests mild dementia, ", + "13 to 20 suggests moderate dementia, and less than 12 indicates severe dementia", + "http://www.alz.org/alzheimers_disease_steps_to_diagnosis.asp", + "also available is the Clinical Dementia Rating (CDR)", + "http://alzheimer.wustl.edu/cdr/cdr.htm" + ], + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72106-8", + "display": "Total score [MMSE]" + } + ], + "direct_transition": "Dementia_CarePlan" + }, + "Dementia_CarePlan": { + "type": "CarePlanStart", + "reason": "Type of Alzheimer's", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386257007", + "display": "Dementia management (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "311401005", + "display": "Patient education (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "710125008", + "display": "Promotion of use of memory skills (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "315043002", + "display": "Long term social support (regime/therapy)" + } + ], + "direct_transition": "FirstPrescription" + }, + "FirstPrescription": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 2001 + }, + "transition": "FirstPrescription1", + "remarks": [ + "galantamine(razadyne) fda approved in 2001" + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 1996 + }, + "transition": "FirstPrescription2", + "remarks": [ + "donepezil(aricept) fda approved in 1996" + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 1993 + }, + "transition": "FirstPrescription3", + "remarks": [ + "tarine first available in 1993" + ] + }, + { + "transition": "End_Diagnosis_Encounter", + "remarks": [ + "before 1993 there were no specific drugs approved for Alzheimer’s by the fda" + ] + } + ] + }, + "FirstPrescription1": { + "type": "MedicationOrder", + "assign_to_attribute": "Alzheimer's Medication", + "reason": "Type of Alzheimer's", + "codes": [ + { + "system": "RxNorm", + "code": "310436", + "display": "Galantamine 4 MG Oral Tablet" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "FirstPrescription2": { + "type": "MedicationOrder", + "assign_to_attribute": "Alzheimer's Medication", + "reason": "Type of Alzheimer's", + "codes": [ + { + "system": "RxNorm", + "code": "997223", + "display": "Donepezil hydrochloride 10 MG Oral Tablet" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "FirstPrescription3": { + "type": "MedicationOrder", + "assign_to_attribute": "Alzheimer's Medication", + "reason": "Type of Alzheimer's", + "codes": [ + { + "system": "RxNorm", + "code": "313185", + "display": "Tacrine 10 MG Oral Capsule" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "ModerateDecline": { + "type": "Delay", + "range": { + "low": 5, + "high": 7, + "unit": "months" + }, + "remarks": [ + "4. Moderate decline, or mild alzheimer's has a mean duration of 2 years.", + "The diagnosis of alzheimer's can be made with considerable accuracy in this stage", + "https://www.alzinfo.org/understand-alzheimers/clinical-stages-of-alzheimers/" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "DiagnosisEncounter" + } + }, + "transition": "DiagnosisEncounter" + }, + { + "condition": { + "condition_type": "Symptom", + "symptom": "Memory Loss", + "operator": ">", + "value": 70 + }, + "transition": "ModeratelySevere_Encounter" + }, + { + "transition": "ModerateMemoryLoss" + } + ] + }, + "ModerateMemoryLoss": { + "type": "Symptom", + "symptom": "Memory Loss", + "range": { + "low": 50, + "high": 100 + }, + "remarks": [ + "These numbers do not map to any real data, they are just picked mathematically to get the %s right" + ], + "direct_transition": "ModerateDecline" + }, + "ModeratelySevere_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Type of Alzheimer's", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "316744009", + "display": "Office Visit" + } + ], + "direct_transition": "ModeratelySevere_MMSE_Score" + }, + "ModeratelySevere_MMSE_Score": { + "type": "Observation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "72106-8", + "display": "Total score [MMSE]" + } + ], + "range": { + "low": 12, + "high": 18 + }, + "remarks": [ + "The maximum MMSE score is 30 points. A score of 20 to 24 suggests mild dementia, ", + "13 to 20 suggests moderate dementia, and less than 12 indicates severe dementia", + "http://www.alz.org/alzheimers_disease_steps_to_diagnosis.asp" + ], + "unit": "{score}", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "Alzheimer's Medication", + "operator": "is not nil" + }, + "transition": "EndFirstPrescription" + }, + { + "transition": "SecondPrescription" + } + ] + }, + "EndFirstPrescription": { + "type": "MedicationEnd", + "referenced_by_attribute": "Alzheimer's Medication", + "direct_transition": "SecondPrescription" + }, + "SecondPrescription": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 2014 + }, + "transition": "SecondPrescription1", + "remarks": [ + "memantine+donepezil(namzaric) fda approved in 2014" + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 2003 + }, + "transition": "SecondPrescription2", + "remarks": [ + "memantine(namenda) fda approved in 2003" + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 1996 + }, + "transition": "SecondPrescription3", + "remarks": [ + "donepezil(aricept) fda approved in 1996" + ] + }, + { + "transition": "End_ModeratelySevere_Encounter" + } + ] + }, + "SecondPrescription1": { + "type": "MedicationOrder", + "reason": "Type of Alzheimer's", + "codes": [ + { + "system": "RxNorm", + "code": "1599803", + "display": "24 HR Donepezil hydrochloride 10 MG / Memantine hydrochloride 28 MG Extended Release Oral Capsule" + } + ], + "direct_transition": "End_ModeratelySevere_Encounter" + }, + "SecondPrescription2": { + "type": "MedicationOrder", + "reason": "Type of Alzheimer's", + "codes": [ + { + "system": "RxNorm", + "code": "996740", + "display": "Memantine hydrochloride 2 MG/ML Oral Solution" + } + ], + "direct_transition": "End_ModeratelySevere_Encounter" + }, + "SecondPrescription3": { + "type": "MedicationOrder", + "reason": "Type of Alzheimer's", + "codes": [ + { + "system": "RxNorm", + "code": "1100184", + "display": "Donepezil hydrochloride 23 MG Oral Tablet" + } + ], + "direct_transition": "End_ModeratelySevere_Encounter" + }, + "End_ModeratelySevere_Encounter": { + "type": "EncounterEnd", + "direct_transition": "ModeratelySevereDecline" + }, + "ModeratelySevereDecline": { + "type": "Delay", + "range": { + "low": 12, + "high": 24, + "unit": "months" + }, + "remarks": [ + "5. Moderately severe decline, aka mid-stage or moderate alzheimer's has a mean duration about 1.5 yrs", + "https://www.alzinfo.org/understand-alzheimers/clinical-stages-of-alzheimers/" + ], + "direct_transition": "Severe_Encounter" + }, + "Severe_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Type of Alzheimer's", + "codes": [ + { + "system": "SNOMED-CT", + "code": "316744009", + "display": "Office Visit" + } + ], + "direct_transition": "Severe_MMSE_Score" + }, + "Severe_MMSE_Score": { + "type": "Observation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "72106-8", + "display": "Total score [MMSE]" + } + ], + "range": { + "low": 6, + "high": 12 + }, + "remarks": [ + "The maximum MMSE score is 30 points. A score of 20 to 24 suggests mild dementia, ", + "13 to 20 suggests moderate dementia, and less than 12 indicates severe dementia", + "http://www.alz.org/alzheimers_disease_steps_to_diagnosis.asp" + ], + "unit": "{score}", + "direct_transition": "End_Severe_Encounter" + }, + "End_Severe_Encounter": { + "type": "EncounterEnd", + "direct_transition": "SevereDecline" + }, + "SevereDecline": { + "type": "Delay", + "range": { + "low": 20, + "high": 40, + "unit": "months" + }, + "remarks": [ + "6. Severe decline, or moderately severe Alzheimer's contains 5 defined substages, the total duration approximately 2.5 yrs" + ], + "direct_transition": "VerySevere_Encounter" + }, + "VerySevere_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Type of Alzheimer's", + "codes": [ + { + "system": "SNOMED-CT", + "code": "316744009", + "display": "Office Visit" + } + ], + "direct_transition": "VerySevere_MMSE_Score" + }, + "VerySevere_MMSE_Score": { + "type": "Observation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "72106-8", + "display": "Total score [MMSE]" + } + ], + "range": { + "low": 0, + "high": 6 + }, + "remarks": [ + "The maximum MMSE score is 30 points. A score of 20 to 24 suggests mild dementia, ", + "13 to 20 suggests moderate dementia, and less than 12 indicates severe dementia", + "http://www.alz.org/alzheimers_disease_steps_to_diagnosis.asp" + ], + "unit": "{score}", + "direct_transition": "End_VerySevere_Encounter" + }, + "End_VerySevere_Encounter": { + "type": "EncounterEnd", + "direct_transition": "VerySevereDecline" + }, + "VerySevereDecline": { + "type": "Delay", + "range": { + "low": 6, + "high": 12, + "unit": "months" + }, + "remarks": [ + "7. Very severe decline, aka late-stage or severe alzheimer's contains 6 functional substages, each with a mean duration ~1 yr", + "https://www.alzinfo.org/understand-alzheimers/clinical-stages-of-alzheimers/" + ], + "distributed_transition": [ + { + "distribution": 0.16, + "transition": "Pneumonia" + }, + { + "distribution": 0.16, + "transition": "Death" + }, + { + "distribution": 0.68, + "transition": "VerySevereDecline" + } + ] + }, + "Pneumonia": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "233604007", + "display": "Pneumonia (disorder)" + } + ], + "remarks": [ + "Pneumonia is one of the most common causes of death among Alzheimer’s patients" + ], + "direct_transition": "PneumoniaEncounter", + "assign_to_attribute": "hospice_reason", + "target_encounter": "PneumoniaEncounter" + }, + "PneumoniaEncounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "Pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "4525004", + "display": "Emergency department patient visit (procedure)" + } + ], + "direct_transition": "Emergency Time" + }, + "PneumoniaDeath": { + "type": "Death", + "range": { + "low": 4, + "high": 14, + "unit": "days" + }, + "condition_onset": "Pneumonia", + "direct_transition": "Admit to Hospice" + }, + "Death": { + "type": "Death", + "referenced_by_attribute": "Type of Alzheimer's", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "direct_transition": "ModerateDecline" + }, + "Eventual_Hospice_Reason": { + "type": "SetAttribute", + "attribute": "hospice_reason", + "direct_transition": "NoImpairment", + "value_attribute": "Type of Alzheimer's" + }, + "Admit to Hospice": { + "type": "SetAttribute", + "attribute": "hospice", + "direct_transition": "Terminal", + "value": true + }, + "Emergency Time": { + "type": "Delay", + "distribution": { + "kind": "EXPONENTIAL", + "parameters": { + "mean": 3 + } + }, + "unit": "hours", + "direct_transition": "End Emergency Visit" + }, + "End Emergency Visit": { + "type": "EncounterEnd", + "direct_transition": "PneumoniaDeath", + "discharge_disposition": { + "system": "NUBC", + "code": 50, + "display": "Discharged/transferred to Hospice - home" + } + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/dental_and_oral_examination.json b/src/main/resources/modules/dental_and_oral_examination.json new file mode 100644 index 0000000..cfd0463 --- /dev/null +++ b/src/main/resources/modules/dental_and_oral_examination.json @@ -0,0 +1,1089 @@ +{ + "name": "Dental and Oral Examination", + "remarks": [ + "Medicare policy allows for payment for inpatient hospital services in connection with the provision of dental services if the individual, because of the individual’s underlying medical condition and clinical status or because of the severity of the dental procedure, requires hospitalization in connection with the provision of such services.", + "", + "Services could include dental and oral examinations as well as medically necessary diagnostic and treatment services to eliminate an oral or dental infection, including, but not limited to the administration of anesthesia, diagnostic x-rays, use of operating room, and other related, otherwise covered procedures.", + "", + "It is estimated that 13% of adults seek dental care for dental infection or toothache within four years (or about 3.25% per year). https://www.ncbi.nlm.nih.gov/books/NBK542165/", + "", + "Nearly half of adults over 30, and nearly 70% of adults over 65, have gingivitis. https://www.cdc.gov/oralhealth/conditions/periodontal-disease.html", + "", + "The percentage of adults with untreated dental caries (i.e., cavities) ranges from 20-25% depending on age group. https://www.cdc.gov/nchs/fastats/dental.htm" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Pause for Override" + }, + "Dental surgical procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "81733005", + "display": "Dental surgical procedure (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 10, + "standardDeviation": 5 + } + }, + "unit": "minutes", + "direct_transition": "Dental Anesthesia", + "reason": "Infection of tooth" + }, + "Infection of tooth": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "427898007", + "display": "Infection of tooth (disorder)" + } + ], + "direct_transition": "Operating room" + }, + "Dental Supplies": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "277183007", + "display": "Dental equipment (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "1230220004", + "display": "Conventional release periodontal gel (dose form)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "469020004", + "display": "Dental floss (physical object)" + } + } + ], + "direct_transition": "Cleaning" + }, + "Fluoride": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1535362, + "display": "sodium fluoride 0.0272 MG/MG Oral Gel" + } + ], + "administration": true, + "direct_transition": "Dental fluoride treatment", + "reason": "dental_referral" + }, + "Dental care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225362009", + "display": "Dental care (regime/therapy)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 30, + "standardDeviation": 10 + } + }, + "unit": "minutes", + "direct_transition": "Dental Supplies", + "reason": "dental_referral" + }, + "Dental consultation and report": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "34043003", + "display": "Dental consultation and report (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 30, + "standardDeviation": 10 + } + }, + "unit": "minutes", + "direct_transition": "Dental care", + "reason": "dental_referral" + }, + "Dental X-ray": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "241046008", + "display": "Dental plain X-ray bitewing (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "700016008", + "display": "Structure of region of internal part of mouth (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "DX", + "display": "Digital Radiography" + }, + "instances": [ + { + "title": "Digital Intra-Oral X-Ray Image", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.3", + "display": "Digital Intra-Oral X-Ray Image Storage - For Presentation" + } + } + ] + } + ], + "direct_transition": "Finish Dental x-ray system" + }, + "Oral health education": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "243085009", + "display": "Oral health education (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 15, + "standardDeviation": 5 + } + }, + "unit": "minutes", + "conditional_transition": [ + { + "transition": "Orthodontic appliance care education", + "condition": { + "condition_type": "Attribute", + "attribute": "orthodontic_appliance", + "operator": "is not nil" + } + }, + { + "transition": "End Primary Dental Visit" + } + ], + "reason": "dental_referral" + }, + "Orthodontic appliance care education": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "243092004", + "display": "Orthodontic appliance care education (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 15, + "standardDeviation": 5 + } + }, + "unit": "minutes", + "direct_transition": "End Primary Dental Visit" + }, + "Extraction of tooth": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "173291009", + "display": "Simple extraction of tooth (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 30, + "standardDeviation": 10 + } + }, + "unit": "minutes", + "direct_transition": "End Infection", + "reason": "Infection of tooth" + }, + "Dental fluoride treatment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "68071007", + "display": "Dental fluoride treatment (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 30, + "standardDeviation": 5 + } + }, + "unit": "minutes", + "direct_transition": "Oral health education", + "reason": "dental_referral" + }, + "Dental Anesthesia": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "3802001", + "display": "Dental application of desensitizing medicament (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 60, + "standardDeviation": 15 + } + }, + "unit": "minutes", + "direct_transition": "Extraction of tooth", + "reason": "Infection of tooth" + }, + "Cleaning": { + "type": "Simple", + "direct_transition": "Supragingival Cleaning" + }, + "Supragingival Cleaning": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1260009003", + "display": "Removal of supragingival plaque and calculus from all teeth using dental instrument (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 30, + "standardDeviation": 10 + } + }, + "unit": "minutes", + "direct_transition": "Subgingival Cleaning", + "reason": "dental_referral" + }, + "Infection?": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "tooth_infection", + "operator": "==", + "value": true + }, + "distributions": [], + "transition": "Infection of tooth" + }, + { + "distributions": [ + { + "transition": "Infection of tooth", + "distribution": 0.0325 + }, + { + "transition": "Gingivitis?", + "distribution": 0.9675 + } + ] + } + ] + }, + "Subgingival Cleaning": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1260010008", + "display": "Removal of subgingival plaque and calculus from all teeth using dental instrument (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 30, + "standardDeviation": 10 + } + }, + "unit": "minutes", + "direct_transition": "X-Ray?", + "reason": "dental_referral" + }, + "X-Ray?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Dental x-ray system", + "distribution": 0.5 + }, + { + "transition": "Infection?", + "distribution": 0.5 + } + ] + }, + "End Infection": { + "type": "ConditionEnd", + "direct_transition": "End Infection Attribute", + "condition_onset": "Infection of tooth" + }, + "Postoperative care for dental procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": 456191000124101, + "display": "Postoperative care for dental procedure (regime/therapy)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 60, + "standardDeviation": 15 + } + }, + "unit": "minutes", + "reason": "Infection of tooth", + "conditional_transition": [ + { + "transition": "Initialize Missing Teeth", + "condition": { + "condition_type": "Attribute", + "attribute": "missing_teeth", + "operator": "is nil" + } + }, + { + "transition": "Increase Missing Teeth" + } + ] + }, + "Administer Fluoride?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Fluoride", + "distribution": 0.5 + }, + { + "transition": "Oral health education", + "distribution": 0.5 + } + ] + }, + "Operating room": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "225738002", + "display": "Operating room (environment)" + }, + "direct_transition": "Dental surgical procedure" + }, + "Exit Operating room": { + "type": "DeviceEnd", + "direct_transition": "Postoperative care for dental procedure", + "device": "Operating room" + }, + "Require Filling?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "New or Repair?", + "distribution": 0.2 + }, + { + "transition": "Administer Fluoride?", + "distribution": 0.8 + } + ] + }, + "Filling Reason": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Dental filling lost", + "distribution": 0.25 + }, + { + "transition": "Loose dental filling", + "distribution": 0.25 + }, + { + "transition": "Leaking dental filling", + "distribution": 0.25 + }, + { + "transition": "Fractured dental filling", + "distribution": 0.25 + } + ] + }, + "Restoration of tooth with coverage of all cusps using dental filling material": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1256042007", + "display": "Restoration of tooth with coverage of all cusps using dental filling material (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 30, + "standardDeviation": 10 + } + }, + "unit": "minutes", + "direct_transition": "End Filling Reason", + "reason": "dental_filling_reason" + }, + "Application of composite dental filling material to dentin of tooth following fracture of tooth": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1259293006", + "display": "Application of composite dental filling material to dentin of tooth following fracture of tooth (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 30, + "standardDeviation": 10 + } + }, + "unit": "minutes", + "direct_transition": "End Filling Reason", + "reason": "dental_filling_reason" + }, + "End Filling Reason": { + "type": "ConditionEnd", + "direct_transition": "Administer Fluoride?", + "referenced_by_attribute": "dental_filling_reason" + }, + "Dental filling lost": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "278558000", + "display": "Dental filling lost (finding)" + } + ], + "direct_transition": "Perform Repair", + "assign_to_attribute": "dental_filling_reason" + }, + "Loose dental filling": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "278602001", + "display": "Loose dental filling (finding)" + } + ], + "assign_to_attribute": "dental_filling_reason", + "direct_transition": "Perform Repair" + }, + "Leaking dental filling": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "278598003", + "display": "Leaking dental filling (finding)" + } + ], + "assign_to_attribute": "dental_filling_reason", + "direct_transition": "Perform Repair" + }, + "Fractured dental filling": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "278588009", + "display": "Fractured dental filling (finding)" + } + ], + "assign_to_attribute": "dental_filling_reason", + "direct_transition": "Perform Repair" + }, + "End Infection Attribute": { + "type": "SetAttribute", + "attribute": "tooth_infection", + "direct_transition": "Exit Operating room", + "value": false + }, + "Dental x-ray system": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "706298007", + "display": "Dental x-ray system (physical object)" + }, + "direct_transition": "Dental X-ray" + }, + "Finish Dental x-ray system": { + "type": "DeviceEnd", + "direct_transition": "Infection?", + "device": "Dental x-ray system" + }, + "Follow-up?": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Extraction of tooth", + "since": "Dental Encounter" + }, + "distributions": [ + { + "transition": "Dry Socket Delay", + "distribution": 0.2 + }, + { + "transition": "Reset Dental Referral", + "distribution": 0.8 + } + ] + }, + { + "distributions": [], + "transition": "Reset Dental Referral" + } + ] + }, + "Dry Socket Delay": { + "type": "Delay", + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 3, + "standardDeviation": 1 + } + }, + "unit": "days", + "direct_transition": "Dry_Tooth_Socket" + }, + "Tooth socket procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "284053004", + "display": "Tooth socket procedure (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 10, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "End Dry Tooth Socket", + "reason": "Dry_Tooth_Socket" + }, + "Operating_room": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "225738002", + "display": "Operating room (environment)" + }, + "direct_transition": "Dental_surgical_procedure" + }, + "Dental_surgical_procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "81733005", + "display": "Dental surgical procedure (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 10, + "standardDeviation": 5 + } + }, + "unit": "minutes", + "direct_transition": "Tooth socket procedure", + "reason": "Dry_Tooth_Socket" + }, + "Exit_Operating_room": { + "type": "DeviceEnd", + "device": "Operating room", + "direct_transition": "Postoperative_care_for_dental_procedure" + }, + "Postoperative_care_for_dental_procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": 456191000124101, + "display": "Postoperative care for dental procedure (regime/therapy)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 60, + "standardDeviation": 15 + } + }, + "unit": "minutes", + "direct_transition": "Oral_health_education", + "reason": "Dry_Tooth_Socket" + }, + "End Dry Tooth Socket": { + "type": "ConditionEnd", + "direct_transition": "Exit_Operating_room", + "condition_onset": "Dry_Tooth_Socket" + }, + "Oral_health_education": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "243085009", + "display": "Oral health education (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 15, + "standardDeviation": 5 + } + }, + "unit": "minutes", + "direct_transition": "End Follow-up", + "reason": "Dry_Tooth_Socket" + }, + "Dry_Tooth_Socket": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "61804006", + "display": "Alveolitis of jaw (disorder)" + } + ], + "direct_transition": "Follow-up for Dry Tooth Socket", + "target_encounter": "Follow-up for Dry Tooth Socket" + }, + "Follow-up for Dry Tooth Socket": { + "type": "Encounter", + "encounter_class": "ambulatory", + "telemedicine_possibility": "none", + "codes": [ + { + "system": "SNOMED-CT", + "code": "439740005", + "display": "Postoperative follow-up visit (procedure)" + } + ], + "direct_transition": "Dental_consultation_and_report", + "reason": "Dry_Tooth_Socket" + }, + "Dental_consultation_and_report": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "34043003", + "display": "Dental consultation and report (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 30, + "standardDeviation": 10 + } + }, + "unit": "minutes", + "direct_transition": "Operating_room", + "reason": "Dry_Tooth_Socket" + }, + "End Follow-up": { + "type": "EncounterEnd", + "direct_transition": "Reset Dental Referral" + }, + "End Primary Dental Visit": { + "type": "EncounterEnd", + "direct_transition": "Follow-up?" + }, + "Wait for Dental Referral": { + "type": "Guard", + "allow": { + "condition_type": "Attribute", + "attribute": "dental_referral", + "operator": "is not nil" + }, + "direct_transition": "Dental Encounter" + }, + "Reset Dental Referral": { + "type": "SetAttribute", + "attribute": "dental_referral", + "direct_transition": "Wait for Dental Referral", + "value": null + }, + "New or Repair?": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "New Cavity" + }, + "distributions": [ + { + "transition": "New Cavity", + "distribution": 0.5 + }, + { + "transition": "Filling Reason", + "distribution": 0.5 + } + ] + }, + { + "distributions": [], + "transition": "New Cavity" + } + ] + }, + "Perform Repair": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Restoration of tooth with coverage of all cusps using dental filling material", + "distribution": 0.5 + }, + { + "transition": "Application of composite dental filling material to dentin of tooth following fracture of tooth", + "distribution": 0.5 + } + ] + }, + "New Cavity": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "109570002", + "display": "Primary dental caries (disorder)" + } + ], + "assign_to_attribute": "dental_filling_reason", + "direct_transition": "Perform Repair" + }, + "Dental Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "dental_referral", + "telemedicine_possibility": "none", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "direct_transition": "Dental consultation and report" + }, + "Gingivitis?": { + "type": "Simple", + "direct_transition": "Examination of gingivae" + }, + "Gingival disease": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "18718003", + "display": "Gingival disease (disorder)" + } + ], + "direct_transition": "Operating_room_2" + }, + "Examination of gingivae": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "274788003", + "display": "Examination of gingivae (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "reason": "dental_referral", + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "66383009", + "display": "Gingivitis (disorder)" + } + ] + }, + "distributions": [ + { + "distribution": 0.2, + "transition": "Gingival disease" + }, + { + "transition": "End Gingivitis from Wellness", + "distribution": 0.8 + } + ] + }, + { + "distributions": [ + { + "transition": "Gingival disease", + "distribution": 0.09 + }, + { + "transition": "End Gingivitis from Wellness", + "distribution": 0.91 + } + ] + } + ] + }, + "Operating_room_2": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "225738002", + "display": "Operating room (environment)" + }, + "direct_transition": "Dental_surgical_procedure_2" + }, + "Dental_surgical_procedure_2": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "81733005", + "display": "Dental surgical procedure (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 10, + "standardDeviation": 5 + } + }, + "unit": "minutes", + "reason": "Gingival disease", + "direct_transition": "Dental_Anesthesia" + }, + "Dental_Anesthesia": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "3802001", + "display": "Dental application of desensitizing medicament (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 60, + "standardDeviation": 15 + } + }, + "unit": "minutes", + "reason": "Gingival disease", + "direct_transition": "Gingivectomy or gingivoplasty" + }, + "Exit_Operating_room_2": { + "type": "DeviceEnd", + "device": "Operating room", + "direct_transition": "Postoperative_care_for_dental_procedure_2" + }, + "Postoperative_care_for_dental_procedure_2": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": 456191000124101, + "display": "Postoperative care for dental procedure (regime/therapy)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 60, + "standardDeviation": 15 + } + }, + "unit": "minutes", + "direct_transition": "End Gingivitis from Wellness", + "reason": "Gingival disease" + }, + "End Gingival Disease": { + "type": "ConditionEnd", + "condition_onset": "Gingival disease", + "direct_transition": "Exit_Operating_room_2" + }, + "Gingivectomy or gingivoplasty": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": 64544008, + "display": "Gingivectomy or gingivoplasty, per tooth (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 45, + "standardDeviation": 15 + } + }, + "unit": "minutes", + "reason": "Gingival disease", + "direct_transition": "End Gingival Disease" + }, + "End Gingivitis from Wellness": { + "type": "ConditionEnd", + "direct_transition": "Require Filling?", + "codes": [ + { + "system": "SNOMED-CT", + "code": "66383009", + "display": "Gingivitis (disorder)" + } + ] + }, + "Initialize Missing Teeth": { + "type": "SetAttribute", + "attribute": "missing_teeth", + "direct_transition": "Increase Missing Teeth", + "value": 0 + }, + "Increase Missing Teeth": { + "type": "Counter", + "attribute": "missing_teeth", + "action": "increment", + "direct_transition": "Gingivitis?" + }, + "Pause for Override": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "unit": "months", + "direct_transition": "Check for Override" + }, + "Check for Override": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "dental_module_override", + "operator": "==", + "value": true + } + }, + { + "transition": "Wait for Dental Referral" + } + ] + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/dentures.json b/src/main/resources/modules/dentures.json new file mode 100644 index 0000000..810a84e --- /dev/null +++ b/src/main/resources/modules/dentures.json @@ -0,0 +1,719 @@ +{ + "name": "Dentures", + "remarks": [ + "This model may be triggered based upon the number of 'missing_teeth' a person has. Missing teeth are set in the 'dental_and_oral_examination' module.", + "", + "A number of \"comorbid\" conditions are included, because the related surgeries to address these conditions are not covered by Medicare reimbursement in 2023 when it is related the are related to dentures: frenectomy (effects 5% of population), ridge reconstruction, palate bone growth (effects 30% of the population), and mandible bone growth (effects 2.7% of the population).", + "", + "Dentures last 7-10 years before replacement.", + "", + "References:", + "- https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1949218/", + "- https://my.clevelandclinic.org/health/articles/10900-dentures", + "- https://my.clevelandclinic.org/health/diseases/24829-torus-palatinus", + "- https://my.clevelandclinic.org/health/diseases/24830-mandibular-tori", + "- https://www.centerfordentalreconstruction.com/oral-surgery-services/bone-grafting/ridge-augmentation", + "- https://www.cms.gov/Regulations-and-Guidance/Guidance/Manuals/Downloads/bp102c15.pdf" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Wait for Missing Teeth" + }, + "Wait for Missing Teeth": { + "type": "Guard", + "allow": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "missing_teeth", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "missing_teeth", + "operator": ">=", + "value": 2 + } + ] + }, + "direct_transition": "Check A" + }, + "Initial Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Loss of teeth", + "telemedicine_possibility": "none", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Dental_consultation_and_report" + }, + "Dental_consultation_and_report": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "34043003", + "display": "Dental consultation and report (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 30, + "standardDeviation": 10 + } + }, + "unit": "minutes", + "direct_transition": "Dental_x_ray_system", + "reason": "Loss of teeth" + }, + "Dental_x_ray_system": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "706298007", + "display": "Dental x-ray system (physical object)" + }, + "direct_transition": "Dental_X_ray" + }, + "Dental_X_ray": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "241046008", + "display": "Dental plain X-ray bitewing (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "700016008", + "display": "Structure of region of internal part of mouth (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "DX", + "display": "Digital Radiography" + }, + "instances": [ + { + "title": "Digital Intra-Oral X-Ray Image", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.3", + "display": "Digital Intra-Oral X-Ray Image Storage - For Presentation" + } + } + ] + } + ], + "direct_transition": "Finish_Dental_x_ray_system" + }, + "Finish_Dental_x_ray_system": { + "type": "DeviceEnd", + "device": "Dental x-ray system", + "direct_transition": "Dental Impression Supplies" + }, + "Dental Impression Supplies": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "706390002", + "display": "Dental impression material (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "468277001", + "display": "Dental impression tray material (physical object)" + } + } + ], + "direct_transition": "Dental Impression" + }, + "Dental Impression": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "234745004", + "display": "Take oral or dental impression (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "234754001", + "display": "Take impression for orthodontic appliance (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "End Initial Encounter", + "reason": "Loss of teeth" + }, + "End Initial Encounter": { + "type": "EncounterEnd", + "direct_transition": "Check for Related Surgeries" + }, + "Check for Related Surgeries": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Wait for Surgery", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "Wait for Surgery" + } + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "PriorState", + "name": "Needs Frenectomy" + }, + { + "condition_type": "PriorState", + "name": "Needs Torus Palatinus Removed" + } + ] + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "PriorState", + "name": "Needs Torus Mandibularis Removed" + }, + { + "condition_type": "PriorState", + "name": "Needs Ridge Reconstruction" + } + ] + } + ] + } + ] + } + }, + { + "transition": "No Surgery" + } + ] + }, + "No Surgery": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 4, + "low": 2 + } + }, + "unit": "weeks", + "direct_transition": "Fitting Encounter" + }, + "Fitting Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Loss of teeth", + "telemedicine_possibility": "none", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "conditional_transition": [ + { + "transition": "End Previous Dentures", + "condition": { + "condition_type": "PriorState", + "name": "Dentures" + } + }, + { + "transition": "Dentures" + } + ] + }, + "Dentures": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "8060009", + "display": "Denture, device (physical object)" + }, + "direct_transition": "Fitting of dentures", + "assign_to_attribute": "dentures" + }, + "Fitting of dentures": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1269321004", + "display": "Fitting of denture (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 15 + } + }, + "unit": "minutes", + "direct_transition": "End Fitting", + "reason": "Loss of teeth" + }, + "End Fitting": { + "type": "EncounterEnd", + "direct_transition": "Wait for Replacement" + }, + "Wait for Replacement": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 10, + "low": 7 + } + }, + "unit": "years", + "direct_transition": "Initial Encounter" + }, + "Loss of teeth": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "37320007", + "display": "Loss of teeth (disorder)" + } + ], + "direct_transition": "Initial Encounter", + "target_encounter": "Initial Encounter" + }, + "End Comorbidity Checks": { + "type": "Simple", + "direct_transition": "Loss of teeth" + }, + "Needs Frenectomy": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "67787004", + "display": "Tongue tie (disorder)" + } + ], + "direct_transition": "Check D", + "target_encounter": "Initial Encounter", + "assign_to_attribute": "denture_surgery_reason" + }, + "Needs Torus Palatinus Removed": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "46752004", + "display": "Torus palatinus (disorder)" + } + ], + "direct_transition": "Check B", + "target_encounter": "Initial Encounter", + "assign_to_attribute": "denture_surgery_reason" + }, + "Needs Torus Mandibularis Removed": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "11625007", + "display": "Torus mandibularis (disorder)" + } + ], + "direct_transition": "End Comorbidity Checks", + "target_encounter": "Initial Encounter", + "assign_to_attribute": "denture_surgery_reason" + }, + "Needs Ridge Reconstruction": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1255252008", + "display": "Resorption of alveolar process due to dental trauma (disorder)" + } + ], + "direct_transition": "Check C", + "target_encounter": "Initial Encounter", + "assign_to_attribute": "denture_surgery_reason" + }, + "Wait for Surgery": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 21, + "low": 7 + } + }, + "unit": "days", + "direct_transition": "Surgery Encounter" + }, + "Excision of maxillary torus palatinus": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "79345008", + "display": "Excision of maxillary torus palatinus (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "End Torus Palatinus", + "reason": "Needs Torus Palatinus Removed" + }, + "Excision of lingual torus": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "23183008", + "display": "Excision of lingual torus (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "reason": "Needs Torus Mandibularis Removed", + "direct_transition": "End Torus Mandibularis" + }, + "Surgery Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "denture_surgery_reason", + "telemedicine_possibility": "none", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "Operating_room" + }, + "Check A": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Needs Torus Palatinus Removed", + "distribution": 0.3 + }, + { + "transition": "Check B", + "distribution": 0.7 + } + ] + }, + "Check B": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Needs Ridge Reconstruction", + "distribution": 0.3 + }, + { + "transition": "Check C", + "distribution": 0.7 + } + ] + }, + "Check D": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Needs Torus Mandibularis Removed", + "distribution": 0.027 + }, + { + "transition": "End Comorbidity Checks", + "distribution": 0.973 + } + ] + }, + "Check C": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Needs Frenectomy", + "distribution": 0.05 + }, + { + "transition": "Check D", + "distribution": 0.95 + } + ] + }, + "End_Surgery": { + "type": "EncounterEnd", + "direct_transition": "Wait for Fitting" + }, + "Wait for Fitting": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 14, + "low": 3 + } + }, + "unit": "days", + "direct_transition": "Fitting Encounter" + }, + "Operating_room": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "225738002", + "display": "Operating room (environment)" + }, + "direct_transition": "Dental_Anesthesia" + }, + "Exit_Operating_room": { + "type": "DeviceEnd", + "device": "Operating room", + "direct_transition": "Postoperative_care_for_dental_procedure" + }, + "Postoperative_care_for_dental_procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": 456191000124101, + "display": "Postoperative care for dental procedure (regime/therapy)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 60, + "standardDeviation": 15 + } + }, + "unit": "minutes", + "reason": "dental_surgery_reason", + "direct_transition": "End_Surgery" + }, + "Dental_Anesthesia": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "3802001", + "display": "Dental application of desensitizing medicament (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 60, + "standardDeviation": 15 + } + }, + "unit": "minutes", + "reason": "dental_surgery_reason", + "direct_transition": "Dental_surgical_procedure" + }, + "Dental_surgical_procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "81733005", + "display": "Dental surgical procedure (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 10, + "standardDeviation": 5 + } + }, + "unit": "minutes", + "reason": "dental_surgery_reason", + "direct_transition": "Surgery A" + }, + "Excision of lingual frenum": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "23933004", + "display": "Excision of lingual frenum (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "reason": "Needs Frenectomy", + "direct_transition": "End Tongue Tied" + }, + "Grafting of periodontal bone defect": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "234687006", + "display": "Grafting of periodontal bone defect (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "End Ridge Defect", + "reason": "Needs Ridge Reconstruction" + }, + "Surgery A": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Excision of maxillary torus palatinus", + "condition": { + "condition_type": "PriorState", + "name": "Needs Torus Palatinus Removed" + } + }, + { + "transition": "Surgery B" + } + ] + }, + "Surgery B": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Grafting of periodontal bone defect", + "condition": { + "condition_type": "PriorState", + "name": "Needs Ridge Reconstruction" + } + }, + { + "transition": "Surgery C" + } + ] + }, + "Surgery C": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Excision of lingual frenum", + "condition": { + "condition_type": "PriorState", + "name": "Needs Frenectomy" + } + }, + { + "transition": "Surgery D" + } + ] + }, + "Surgery D": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Excision of lingual torus", + "condition": { + "condition_type": "PriorState", + "name": "Needs Torus Mandibularis Removed" + } + }, + { + "transition": "Exit_Operating_room" + } + ] + }, + "End Torus Palatinus": { + "type": "ConditionEnd", + "direct_transition": "Surgery B", + "condition_onset": "Needs Torus Palatinus Removed" + }, + "End Ridge Defect": { + "type": "ConditionEnd", + "direct_transition": "Surgery C", + "condition_onset": "Needs Ridge Reconstruction" + }, + "End Tongue Tied": { + "type": "ConditionEnd", + "direct_transition": "Surgery D", + "condition_onset": "Needs Frenectomy" + }, + "End Torus Mandibularis": { + "type": "ConditionEnd", + "direct_transition": "Exit_Operating_room", + "condition_onset": "Needs Torus Mandibularis Removed" + }, + "End Previous Dentures": { + "type": "DeviceEnd", + "direct_transition": "Dentures", + "device": "Dentures" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/dermatitis.json b/src/main/resources/modules/dermatitis.json new file mode 100644 index 0000000..7646ae7 --- /dev/null +++ b/src/main/resources/modules/dermatitis.json @@ -0,0 +1,692 @@ +{ + "name": "Dermatitis", + "remarks": [ + "Source: https://nationaleczema.org/research/eczema-prevalence/", + "Known colloquially as Eczema. About 10.7% of children develop dermatitis ", + "and dermatitis is found in about 10.2% of adults. 31.6M adults overall ", + "have eczema. 17.8M have moderate to severe cases, usually atopic dermatitis (AD).", + "Atopic dermatitis usually appears in childhood. 1/3 of all children with AD ", + "have severe cases. Up to 3% of adults are also living with severe AD, suggesting ", + "that AD is typically a lifelong condition.", + "The remaining patients with dermatitis typically have contact dermatitis (CD), ", + "aggravated by specific substances such as nickel, latex, and chromium. ", + "2x as many females develop CD as males." + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================" + ], + "direct_transition": "Delay_For_Atopy" + }, + "Delay_For_Atopy": { + "type": "Delay", + "remarks": [ + "The Atopy module must be processed before any of the allergy modules so ", + "atopy can appropriately influence allergies. Delaying the smallest possible ", + "time step to ensure this happens." + ], + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "transition": "Atopic" + }, + { + "transition": "Not_Atopic" + } + ] + }, + "Atopic": { + "type": "Simple", + "remarks": [ + "35% of all atopic patients develop AD. See the Atopy model for more info." + ], + "distributed_transition": [ + { + "distribution": 0.35, + "transition": "Atopic_Dermatitis_Incidence" + }, + { + "distribution": 0.65, + "transition": "Terminal" + } + ] + }, + "Not_Atopic": { + "type": "Simple", + "remarks": [ + "There is a small possibility that non-atopic patients still develop AD.", + "More commonly however, non-atopic patients instead develop contact ", + "dermatitis sometime during adulthood, often from a person's occupation.", + "For example, occupational contact dermatitis is common in: ", + "Metalworkers, Hair Dressers, Healthcare Professionals, Cleaners, ", + "Construction Workers, Painters, and those in Food Manufacturing." + ], + "distributed_transition": [ + { + "distribution": 0.003125, + "transition": "Atopic_Dermatitis_Incidence" + }, + { + "distribution": 0.043125, + "transition": "Delay_Until_Adulthood" + }, + { + "distribution": 0.95375, + "transition": "Terminal" + } + ] + }, + "Atopic_Dermatitis_Incidence": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.5, + "transition": "Early_Childhood_AD" + }, + { + "distribution": 0.45, + "transition": "Mid_Childhood_AD" + }, + { + "distribution": 0.05, + "transition": "Late_Childhood_AD" + } + ] + }, + "Early_Childhood_AD": { + "type": "Delay", + "remarks": [ + "Children <1 year old. Early childhood AD is widspread and found ", + "mainly on the face and extremities." + ], + "range": { + "low": 0, + "high": 11, + "unit": "months" + }, + "direct_transition": "Childhood_Atopic_Dermatitis" + }, + "Mid_Childhood_AD": { + "type": "Delay", + "remarks": [ + "Children <5 years old. AD found in older children (not infants) is ", + "typically found at the limb flexures, such as the elbow and knee." + ], + "range": { + "low": 12, + "high": 59, + "unit": "months" + }, + "direct_transition": "Childhood_Atopic_Dermatitis" + }, + "Late_Childhood_AD": { + "type": "Delay", + "remarks": [ + "Children <10 years old. AD found in older children (not infants) is ", + "typically found at the limb flexures, such as the elbow and knee." + ], + "range": { + "low": 60, + "high": 120, + "unit": "months" + }, + "direct_transition": "Childhood_Atopic_Dermatitis" + }, + "Delay_Until_Adulthood": { + "type": "Delay", + "range": { + "low": 18, + "high": 35, + "unit": "years" + }, + "direct_transition": "Adult_Contact_Dermatitis" + }, + "Childhood_Atopic_Dermatitis": { + "type": "ConditionOnset", + "target_encounter": "PCP_Encounter", + "assign_to_attribute": "dermatitis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "24079001", + "display": "Atopic dermatitis (disorder)" + } + ], + "direct_transition": "PCP_Encounter" + }, + "Adult_Contact_Dermatitis": { + "type": "ConditionOnset", + "target_encounter": "PCP_Encounter", + "assign_to_attribute": "dermatitis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40275004", + "display": "Contact dermatitis (disorder)" + } + ], + "direct_transition": "PCP_Encounter" + }, + "PCP_Encounter": { + "type": "Encounter", + "remarks": [ + "The rashes and sensitivity caused by dermatitis are bad enough to drive ", + "any sensible parents to bring their child to the doctor. The PCP will then ", + "refer the child to an allergist and/or dermatologist. 1/3 of all AD cases ", + "are considered 'severe'. Moderate and severe cases are first referred to ", + "a dermatologist, followed by an allergist." + ], + "encounter_class": "ambulatory", + "reason": "dermatitis", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Dermatitis_Symptom1" + }, + "Dermatitis_Symptom1": { + "type": "Symptom", + "symptom": "Itchiness", + "range": { + "low": 0, + "high": 20 + }, + "direct_transition": "Dermatitis_Symptom2" + }, + "Dermatitis_Symptom2": { + "type": "Symptom", + "symptom": "Red Skin", + "range": { + "low": 0, + "high": 20 + }, + "direct_transition": "Dermatitis_Symptom3" + }, + "Dermatitis_Symptom3": { + "type": "Symptom", + "symptom": "Rash", + "range": { + "low": 0, + "high": 20 + }, + "direct_transition": "Dermatitis_Careplan" + }, + "Dermatitis_Careplan": { + "type": "CarePlanStart", + "remarks": [ + "Treatment of eczema is all about self care. Typically all a patient can ", + "do is treat the symptoms and avoid allergens and irritants. Allergy ", + "tests and specialized treatment by an allergist really didn't exist ", + "before 1975 - 1980." + ], + "reason": "dermatitis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "711282006", + "display": "Skin condition care (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "225130001", + "display": "Application of moisturizer to skin (procedure)" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "distributed_transition": [ + { + "distribution": 0.33, + "remarks": [ + "The mild cases of eczema receive no further treatment unless they get worse." + ], + "transition": "Living_With_Dermatitis" + }, + { + "distribution": 0.67, + "transition": "Delay_For_Dermatologist" + } + ] + }, + "Delay_For_Dermatologist": { + "type": "Delay", + "range": { + "low": 1, + "high": 7, + "unit": "days" + }, + "direct_transition": "Dermatologist_Visit" + }, + "Dermatologist_Visit": { + "type": "Encounter", + "remarks": [ + "1/3 of all eczema cases are severe. 0.5 * 0.67 ~= 0.33" + ], + "encounter_class": "ambulatory", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "complex_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Early_Childhood_AD" + }, + "distributions": [ + { + "distribution": 0.5, + "transition": "Early_Childhood_AD_Moderate_Observations" + }, + { + "distribution": 0.5, + "transition": "Early_Childhood_AD_Severe_Observations" + } + ] + }, + { + "condition": { + "condition_type": "PriorState", + "name": "Mid_Childhood_AD" + }, + "distributions": [ + { + "distribution": 0.5, + "transition": "Mid_Childhood_AD_Moderate_Observations" + }, + { + "distribution": 0.5, + "transition": "Mid_Childhood_AD_Severe_Observations" + } + ] + }, + { + "condition": { + "condition_type": "PriorState", + "name": "Adult_Contact_Dermatitis" + }, + "distributions": [ + { + "distribution": 0.67, + "transition": "Moderate_Contact_Dermatitis_Observations" + }, + { + "distribution": 0.33, + "transition": "Severe_Contact_Dermatitis_Observations" + } + ] + } + ], + "reason": "dermatitis" + }, + "Early_Childhood_AD_Moderate_Observations": { + "type": "CallSubmodule", + "submodule": "dermatitis/early_moderate_eczema_obs", + "direct_transition": "Advise_To_Visit_Allergist" + }, + "Early_Childhood_AD_Severe_Observations": { + "type": "CallSubmodule", + "submodule": "dermatitis/early_severe_eczema_obs", + "direct_transition": "Advise_To_Visit_Allergist" + }, + "Mid_Childhood_AD_Moderate_Observations": { + "type": "CallSubmodule", + "submodule": "dermatitis/mid_moderate_eczema_obs", + "direct_transition": "Advise_To_Visit_Allergist" + }, + "Mid_Childhood_AD_Severe_Observations": { + "type": "CallSubmodule", + "submodule": "dermatitis/mid_severe_eczema_obs", + "direct_transition": "Advise_To_Visit_Allergist" + }, + "Moderate_Contact_Dermatitis_Observations": { + "type": "CallSubmodule", + "submodule": "dermatitis/moderate_cd_obs", + "direct_transition": "Prescribe_Corticosteroid" + }, + "Severe_Contact_Dermatitis_Observations": { + "type": "CallSubmodule", + "submodule": "dermatitis/severe_cd_obs", + "direct_transition": "Prescribe_Corticosteroid" + }, + "Prescribe_Corticosteroid": { + "type": "MedicationOrder", + "remarks": [ + "These are only prescribed to adults or older children." + ], + "reason": "dermatitis", + "codes": [ + { + "system": "RxNorm", + "code": "106258", + "display": "Hydrocortisone 10 MG/ML Topical Cream" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "Advise_To_Visit_Allergist" + }, + "Advise_To_Visit_Allergist": { + "type": "SetAttribute", + "attribute": "visit_allergist", + "value": true, + "direct_transition": "End_Dermatologist_Visit" + }, + "End_Dermatologist_Visit": { + "type": "EncounterEnd", + "direct_transition": "Living_With_Dermatitis" + }, + "Living_With_Dermatitis": { + "type": "Delay", + "remarks": [ + "======================================================================", + " LIVING WITH DERMATITS ", + "======================================================================" + ], + "range": { + "low": 8, + "high": 16, + "unit": "months" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Adult_Contact_Dermatitis" + }, + "transition": "Potential_CD_Resolves" + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "PriorState", + "name": "Childhood_Atopic_Dermatitis" + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "Potentially_Outgrow_AD" + } + }, + { + "condition_type": "Age", + "operator": ">", + "quantity": 16, + "unit": "years" + } + ] + }, + "transition": "Potentially_Outgrow_AD" + }, + { + "transition": "Potential_AD_Flare_Up" + } + ] + }, + "Potentially_Outgrow_AD": { + "type": "Simple", + "remarks": [ + "About 75% of children with Atopic Dermatitis outgrow it by adolescence." + ], + "distributed_transition": [ + { + "distribution": 0.75, + "transition": "Dermatitis_Resolves" + }, + { + "distribution": 0.25, + "transition": "Potential_AD_Flare_Up" + } + ] + }, + "Potential_AD_Flare_Up": { + "type": "Simple", + "remarks": [ + "A 'flare-up' is a heightening of the symptoms from Atopic Dermatitis, including ", + "very itchy skin, spreading rashes, and sensitivity. For older children (>12) and ", + "adults an immunosuppressant and topical corticosteroid are prescribed to control ", + "the symptoms. ", + "Only patients with moderate to severe AD paid a visit to the Dermatologist." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Dermatologist_Visit" + }, + "distributions": [ + { + "distribution": 0.1, + "transition": "AD_Flare_Up" + }, + { + "distribution": 0.9, + "transition": "Living_With_Dermatitis" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "Living_With_Dermatitis" + } + ] + } + ] + }, + "AD_Flare_Up": { + "type": "Delay", + "remarks": [ + "A flare-up is bad enough to seek treatment. Usually another visit to the dermatologist ", + "will suffice." + ], + "range": { + "low": 1, + "high": 7, + "unit": "days" + }, + "direct_transition": "Dermatologist_Visit_For_Flare_Up" + }, + "Dermatologist_Visit_For_Flare_Up": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "dermatitis", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">", + "quantity": 16, + "unit": "years" + }, + { + "condition_type": "Date", + "operator": ">=", + "year": 1983 + } + ] + }, + "transition": "Prescribe_Immunosuppressant" + }, + { + "transition": "Prescribe_Corticosteroid_For_Flare_Up" + } + ] + }, + "Prescribe_Immunosuppressant": { + "type": "MedicationOrder", + "reason": "dermatitis", + "remarks": [ + "Immunosuppressants like cyclosporine were invented in the late 1970's ", + "and came to market in the early 1980s. Cyclosporine was available starting ", + "in 1983." + ], + "codes": [ + { + "system": "RxNorm", + "code": "241834", + "display": "cycloSPORINE, modified 100 MG Oral Capsule" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 2, + "unit": "weeks" + } + }, + "direct_transition": "Prescribe_Corticosteroid_For_Flare_Up" + }, + "Prescribe_Corticosteroid_For_Flare_Up": { + "type": "MedicationOrder", + "reason": "dermatitis", + "codes": [ + { + "system": "RxNorm", + "code": "106258", + "display": "Hydrocortisone 10 MG/ML Topical Cream" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "End_Flare_Up_Encounter" + }, + "Treating_Flare_Up": { + "type": "Delay", + "range": { + "low": 2, + "high": 4, + "unit": "weeks" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "241834", + "display": "cycloSPORINE, modified 100 MG Oral Capsule" + } + ] + }, + "transition": "End_Immunosuppressant" + }, + { + "transition": "End_Corticosteroid" + } + ] + }, + "End_Immunosuppressant": { + "type": "MedicationEnd", + "medication_order": "Prescribe_Immunosuppressant", + "direct_transition": "End_Corticosteroid" + }, + "End_Corticosteroid": { + "type": "MedicationEnd", + "medication_order": "Prescribe_Corticosteroid_For_Flare_Up", + "direct_transition": "Living_With_Dermatitis" + }, + "Potential_CD_Resolves": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.75, + "transition": "Dermatitis_Resolves" + }, + { + "distribution": 0.25, + "transition": "Living_With_Dermatitis" + } + ] + }, + "Dermatitis_Resolves": { + "type": "ConditionEnd", + "referenced_by_attribute": "dermatitis", + "direct_transition": "End_Dermatitis_CarePlan" + }, + "End_Dermatitis_CarePlan": { + "type": "CarePlanEnd", + "careplan": "Dermatitis_Careplan", + "direct_transition": "Dermatitis_Symptom1_Ends" + }, + "Dermatitis_Symptom1_Ends": { + "type": "Symptom", + "symptom": "Itchiness", + "exact": { + "quantity": 0 + }, + "direct_transition": "Dermatitis_Symptom2_Ends" + }, + "Dermatitis_Symptom2_Ends": { + "type": "Symptom", + "symptom": "Red Skin", + "exact": { + "quantity": 0 + }, + "direct_transition": "Dermatitis_Symptom3_Ends" + }, + "Dermatitis_Symptom3_Ends": { + "type": "Symptom", + "symptom": "Rash", + "exact": { + "quantity": 0 + }, + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + }, + "End_Flare_Up_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Treating_Flare_Up" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/dermatitis/early_moderate_eczema_obs.json b/src/main/resources/modules/dermatitis/early_moderate_eczema_obs.json new file mode 100644 index 0000000..0bbfc21 --- /dev/null +++ b/src/main/resources/modules/dermatitis/early_moderate_eczema_obs.json @@ -0,0 +1,88 @@ +{ + "name": "Early Childhood Moderate Eczema Observations", + "remarks": [ + "A series of observations regarding the prevalence of eczema ", + "on different portions of the body. In this case the eczema is ", + "found to be mild/moderate and confined to the face and limbs, as is ", + "commonly seen in young children. See: ", + "http://onlinelibrary.wiley.com/doi/10.1111/j.1365-2230.2012.04336.x/full" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Eczema_Obs_Head_And_Neck" + }, + "Eczema_Obs_Head_And_Neck": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66519-0", + "display": "Percentage area affected by eczema Head and Neck [PhenX]" + } + ], + "range": { + "low": 10, + "high": 40 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Trunk" + }, + "Eczema_Obs_Trunk": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66529-9", + "display": "Percentage area affected by eczema Trunk [PhenX]" + } + ], + "range": { + "low": 0, + "high": 10 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Upper_Extremities" + }, + "Eczema_Obs_Upper_Extremities": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66524-0", + "display": "Percentage area affected by eczema Upper extremity - bilateral [PhenX]" + } + ], + "range": { + "low": 0, + "high": 10 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Lower_Extremities" + }, + "Eczema_Obs_Lower_Extremities": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66534-9", + "display": "Percentage area affected by eczema Lower extremity - bilateral [PhenX]" + } + ], + "range": { + "low": 0, + "high": 10 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Terminal" + }, + "Eczema_Obs_Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/dermatitis/early_severe_eczema_obs.json b/src/main/resources/modules/dermatitis/early_severe_eczema_obs.json new file mode 100644 index 0000000..8baa5f6 --- /dev/null +++ b/src/main/resources/modules/dermatitis/early_severe_eczema_obs.json @@ -0,0 +1,88 @@ +{ + "name": "Early Childhood Severe Eczema Observations", + "remarks": [ + "A series of observations regarding the prevalence of eczema ", + "on different portions of the body. In this case the eczema is ", + "found to be severe but confined to the face and limbs, as is ", + "commonly seen in young children. See: ", + "http://onlinelibrary.wiley.com/doi/10.1111/j.1365-2230.2012.04336.x/full" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Eczema_Obs_Head_And_Neck" + }, + "Eczema_Obs_Head_And_Neck": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66519-0", + "display": "Percentage area affected by eczema Head and Neck [PhenX]" + } + ], + "range": { + "low": 40, + "high": 60 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Trunk" + }, + "Eczema_Obs_Trunk": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66529-9", + "display": "Percentage area affected by eczema Trunk [PhenX]" + } + ], + "range": { + "low": 0, + "high": 20 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Upper_Extremities" + }, + "Eczema_Obs_Upper_Extremities": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66524-0", + "display": "Percentage area affected by eczema Upper extremity - bilateral [PhenX]" + } + ], + "range": { + "low": 0, + "high": 20 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Lower_Extremities" + }, + "Eczema_Obs_Lower_Extremities": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66534-9", + "display": "Percentage area affected by eczema Lower extremity - bilateral [PhenX]" + } + ], + "range": { + "low": 0, + "high": 20 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Terminal" + }, + "Eczema_Obs_Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/dermatitis/mid_moderate_eczema_obs.json b/src/main/resources/modules/dermatitis/mid_moderate_eczema_obs.json new file mode 100644 index 0000000..946b082 --- /dev/null +++ b/src/main/resources/modules/dermatitis/mid_moderate_eczema_obs.json @@ -0,0 +1,88 @@ +{ + "name": "Mid Childhood Moderate Eczema Observations", + "remarks": [ + "A series of observations regarding the prevalence of eczema ", + "on different portions of the body. In this case the eczema is ", + "found to be mild/moderate and primarilly in the joint flexures, ", + "as is commonly seen in older children. See: ", + "http://onlinelibrary.wiley.com/doi/10.1111/j.1365-2230.2012.04336.x/full" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Eczema_Obs_Head_And_Neck" + }, + "Eczema_Obs_Head_And_Neck": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66519-0", + "display": "Percentage area affected by eczema Head and Neck [PhenX]" + } + ], + "range": { + "low": 0, + "high": 15 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Trunk" + }, + "Eczema_Obs_Trunk": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66529-9", + "display": "Percentage area affected by eczema Trunk [PhenX]" + } + ], + "range": { + "low": 0, + "high": 10 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Upper_Extremities" + }, + "Eczema_Obs_Upper_Extremities": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66524-0", + "display": "Percentage area affected by eczema Upper extremity - bilateral [PhenX]" + } + ], + "range": { + "low": 0, + "high": 20 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Lower_Extremities" + }, + "Eczema_Obs_Lower_Extremities": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66534-9", + "display": "Percentage area affected by eczema Lower extremity - bilateral [PhenX]" + } + ], + "range": { + "low": 0, + "high": 20 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Terminal" + }, + "Eczema_Obs_Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/dermatitis/mid_severe_eczema_obs.json b/src/main/resources/modules/dermatitis/mid_severe_eczema_obs.json new file mode 100644 index 0000000..9b7953b --- /dev/null +++ b/src/main/resources/modules/dermatitis/mid_severe_eczema_obs.json @@ -0,0 +1,88 @@ +{ + "name": "Mid Childhood Severe Eczema Observations", + "remarks": [ + "A series of observations regarding the prevalence of eczema ", + "on different portions of the body. In this case the eczema is ", + "found to be severe and primarilly in the joint flexures, ", + "as is commonly seen in older children. See: ", + "http://onlinelibrary.wiley.com/doi/10.1111/j.1365-2230.2012.04336.x/full" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Eczema_Obs_Head_And_Neck" + }, + "Eczema_Obs_Head_And_Neck": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66519-0", + "display": "Percentage area affected by eczema Head and Neck [PhenX]" + } + ], + "range": { + "low": 0, + "high": 15 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Trunk" + }, + "Eczema_Obs_Trunk": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66529-9", + "display": "Percentage area affected by eczema Trunk [PhenX]" + } + ], + "range": { + "low": 0, + "high": 20 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Upper_Extremities" + }, + "Eczema_Obs_Upper_Extremities": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66524-0", + "display": "Percentage area affected by eczema Upper extremity - bilateral [PhenX]" + } + ], + "range": { + "low": 0, + "high": 40 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Lower_Extremities" + }, + "Eczema_Obs_Lower_Extremities": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66534-9", + "display": "Percentage area affected by eczema Lower extremity - bilateral [PhenX]" + } + ], + "range": { + "low": 0, + "high": 40 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Terminal" + }, + "Eczema_Obs_Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/dermatitis/moderate_cd_obs.json b/src/main/resources/modules/dermatitis/moderate_cd_obs.json new file mode 100644 index 0000000..3eae8d5 --- /dev/null +++ b/src/main/resources/modules/dermatitis/moderate_cd_obs.json @@ -0,0 +1,85 @@ +{ + "name": "Moderate Contact Dermatitis Observations", + "remarks": [ + "A series of observations regarding the prevalence of eczema ", + "on different portions of the body. In this case the eczema is ", + "found to be moderate and confined to the extremities as is commonly ", + "seen with contact dermatitis." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Eczema_Obs_Head_And_Neck" + }, + "Eczema_Obs_Head_And_Neck": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66519-0", + "display": "Percentage area affected by eczema Head and Neck [PhenX]" + } + ], + "exact": { + "quantity": 0 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Trunk" + }, + "Eczema_Obs_Trunk": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66529-9", + "display": "Percentage area affected by eczema Trunk [PhenX]" + } + ], + "exact": { + "quantity": 0 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Upper_Extremities" + }, + "Eczema_Obs_Upper_Extremities": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66524-0", + "display": "Percentage area affected by eczema Upper extremity - bilateral [PhenX]" + } + ], + "range": { + "low": 10, + "high": 40 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Lower_Extremities" + }, + "Eczema_Obs_Lower_Extremities": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66534-9", + "display": "Percentage area affected by eczema Lower extremity - bilateral [PhenX]" + } + ], + "range": { + "low": 0, + "high": 15 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Terminal" + }, + "Eczema_Obs_Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/dermatitis/severe_cd_obs.json b/src/main/resources/modules/dermatitis/severe_cd_obs.json new file mode 100644 index 0000000..a76d840 --- /dev/null +++ b/src/main/resources/modules/dermatitis/severe_cd_obs.json @@ -0,0 +1,85 @@ +{ + "name": "Severe Contact Dermatitis Observations", + "remarks": [ + "A series of observations regarding the prevalence of eczema ", + "on different portions of the body. In this case the eczema is ", + "found to be severe and confined to the extremities as is commonly ", + "seen with contact dermatitis." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Eczema_Obs_Head_And_Neck" + }, + "Eczema_Obs_Head_And_Neck": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66519-0", + "display": "Percentage area affected by eczema Head and Neck [PhenX]" + } + ], + "exact": { + "quantity": 0 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Trunk" + }, + "Eczema_Obs_Trunk": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66529-9", + "display": "Percentage area affected by eczema Trunk [PhenX]" + } + ], + "exact": { + "quantity": 0 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Upper_Extremities" + }, + "Eczema_Obs_Upper_Extremities": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66524-0", + "display": "Percentage area affected by eczema Upper extremity - bilateral [PhenX]" + } + ], + "range": { + "low": 30, + "high": 75 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Lower_Extremities" + }, + "Eczema_Obs_Lower_Extremities": { + "type": "Observation", + "category": "exam", + "codes": [ + { + "system": "LOINC", + "code": "66534-9", + "display": "Percentage area affected by eczema Lower extremity - bilateral [PhenX]" + } + ], + "range": { + "low": 0, + "high": 35 + }, + "unit": "%", + "direct_transition": "Eczema_Obs_Terminal" + }, + "Eczema_Obs_Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/diabetes.json b/src/main/resources/modules/diabetes.json new file mode 100644 index 0000000..773114f --- /dev/null +++ b/src/main/resources/modules/diabetes.json @@ -0,0 +1,61 @@ +{ + "name": "Diabetes", + "gmf_version": 2, + "remarks": [ + "Basic module for Diabetes", + "Auto-generated as a placeholder", + "Reference: https://www.cdc.gov/diabetes/basics/", + "Reference: https://www.mayoclinic.org/diseases-conditions/diabetes/diagnosis-treatment/drc-20371451" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Diagnosis" + }, + "Diagnosis": { + "type": "ConditionOnset", + "target_encounter": "Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "73211009", + "display": "Diabetes mellitus" + }, + { + "system": "ICD-10-CM", + "code": "E11.9", + "display": "Type 2 diabetes mellitus without complications" + } + ], + "direct_transition": "Encounter" + }, + "Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for diabetes mellitus" + } + ], + "direct_transition": "Medication" + }, + "Medication": { + "type": "MedicationOrder", + "reason": "Diagnosis", + "codes": [ + { + "system": "RxNorm", + "code": "860975", + "display": "24 HR Metformin hydrochloride 500 MG Extended Release Oral Tablet" + } + ], + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/dialysis.json b/src/main/resources/modules/dialysis.json new file mode 100644 index 0000000..c12740d --- /dev/null +++ b/src/main/resources/modules/dialysis.json @@ -0,0 +1,762 @@ +{ + "name": "Dialysis", + "remarks": [ + "Dialysis Encounter for patients with level 4 Chronic Kidney Disease (CKD)." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "CKD guard" + }, + "3 day delay": { + "type": "Delay", + "exact": { + "quantity": 3, + "unit": "days" + }, + "conditional_transition": [ + { + "transition": "CKD guard", + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "<", + "value": 4 + } + }, + { + "transition": "Dialysis_Encounter" + } + ] + }, + "Dialysis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Dialysis", + "reason": "dialysis_reason" + }, + "Dialysis": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "265764009", + "display": "Renal dialysis (procedure)" + } + ], + "duration": { + "low": 2, + "high": 4, + "unit": "hours" + }, + "conditional_transition": [ + { + "transition": "Prescribe_EPOGEN Ref-RxNorm", + "condition": { + "condition_type": "Attribute", + "attribute": "anemia", + "operator": "is not nil" + } + }, + { + "transition": "Dialysis weight record" + } + ], + "reason": "dialysis_reason" + }, + "end dialysis": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "3 day delay", + "condition": { + "condition_type": "PriorState", + "name": "Physician Monthly Enc", + "within": { + "quantity": 30, + "unit": "days" + } + } + }, + { + "transition": "Physician Monthly Enc" + } + ] + }, + "Physician Monthly Enc": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Record_CMP", + "reason": "dialysis_reason" + }, + "end encounter": { + "type": "EncounterEnd", + "direct_transition": "3 day delay" + }, + "CKD guard": { + "type": "Guard", + "allow": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 4 + } + ] + }, + "distributed_transition": [ + { + "transition": "Check_Anemia_Exist", + "distribution": 0.534 + }, + { + "transition": "3 day delay", + "distribution": 0.466 + } + ], + "remarks": [ + "The prevalence of anemia increased with stage of CKD, from 8.4% at stage 1 to 53.4% at stage 5\". Dialysis is needed at stage 5 - ps://www.ncbi.nlm.nih.gov/pmc/articles/PMC3879360/", + "" + ] + }, + "Dialysis weight record": { + "type": "Observation", + "category": "vital-signs", + "unit": "kg", + "codes": [ + { + "system": "LOINC", + "code": "74006-8", + "display": "Weight difference [Mass difference] --pre dialysis - post dialysis" + } + ], + "direct_transition": "Pain_Vital", + "range": { + "low": 1, + "high": 5 + } + }, + "Dialysis CarePlan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736690008", + "display": "Dialysis care plan (record artifact)" + } + ], + "direct_transition": "end encounter", + "activities": [ + { + "system": "SNOMED-CT", + "code": "183063000", + "display": "Low salt diet education (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "229152003", + "display": "Lower limb exercises (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "11816003", + "display": "Diet education (procedure)" + } + ] + }, + "Record_CMP": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2339-0", + "display": "Glucose [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "6299-2", + "display": "Urea nitrogen [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "38483-4", + "display": "Creatinine [Mass/volume] in Blood" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.5, + "high": 3.5 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "49765-1", + "display": "Calcium [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2947-0", + "display": "Sodium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "6298-4", + "display": "Potassium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2069-3", + "display": "Chloride [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "20565-8", + "display": "Carbon dioxide, total [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 4, + "high": 29 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 3.5, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "g/L", + "codes": [ + { + "system": "LOINC", + "code": "10834-0", + "display": "Globulin [Mass/volume] in Serum by calculation" + } + ], + "range": { + "low": 2, + "high": 3.5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.1, + "high": 1.2 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 20, + "high": 140 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 20, + "high": 60 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 40 + } + } + ], + "direct_transition": "Record_Urinalysis" + }, + "Record_Urinalysis": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24357-6", + "display": "Urinalysis macro (dipstick) panel - Urine" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5767-9", + "display": "Appearance of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "7766007", + "display": "Cloudy urine (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "34533-0", + "display": "Odor of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167248002", + "display": "Urine smell ammoniacal (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "32167-9", + "display": "Clarity of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "300828005", + "display": "Translucent (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5778-6", + "display": "Color of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "371254008", + "display": "Brown color (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5792-7", + "display": "Glucose [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.5, + "high": 2.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "25428-4", + "display": "Glucose [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167265006", + "display": "Urine glucose test = ++ (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "20505-4", + "display": "Bilirubin.total [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.2, + "high": 1.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5770-3", + "display": "Bilirubin.total [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "275778006", + "display": "Finding of bilirubin in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5797-6", + "display": "Ketones [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 0, + "high": 20 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "2514-8", + "display": "Ketones [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167291007", + "display": "Urine ketone test = +++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5811-5", + "display": "Specific gravity of Urine by Test strip" + } + ], + "range": { + "low": 1.001, + "high": 1.039 + } + }, + { + "category": "laboratory", + "unit": "pH", + "codes": [ + { + "system": "LOINC", + "code": "5803-2", + "display": "pH of Urine by Test strip" + } + ], + "range": { + "low": 5, + "high": 7 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5804-0", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 250, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "20454-5", + "display": "Protein [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167277001", + "display": "Urine protein test = +++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5802-4", + "display": "Nitrite [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "314138001", + "display": "Nitrite not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5794-3", + "display": "Hemoglobin [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167297006", + "display": "Blood not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5799-2", + "display": "Leukocyte esterase [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "394717006", + "display": "Urine leukocytes not detected (finding)" + } + } + ], + "direct_transition": "Dialysis CarePlan" + }, + "Pain_Vital": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported" + } + ], + "range": { + "decimals": 0, + "low": 2, + "high": 6 + }, + "direct_transition": "end dialysis" + }, + "Anemia_Submodule": { + "type": "CallSubmodule", + "submodule": "anemia/anemia_sub", + "direct_transition": "3 day delay" + }, + "Check_Anemia_Exist": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Anemia_Submodule", + "condition": { + "condition_type": "Attribute", + "attribute": "anemia", + "operator": "is nil" + } + }, + { + "transition": "3 day delay" + } + ] + }, + "Prescribe_EPOGEN Ref-RxNorm": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 205923, + "display": "1 ML Epoetin Alfa 4000 UNT/ML Injection [Epogen]" + } + ], + "direct_transition": "Epogen_Administered", + "remarks": [ + "Recommended starting dose for adult patients is 50 to 100 Units/kg 3 times weekly. Reduce or interrupt the dose if hemoglobin level approaches or exceeds 11 g/dl - Ref: Section -For Adult Patients with CKD on Dialysis (https://www.rxlist.com/epogen-drug.htm#description)" + ], + "assign_to_attribute": "anemia_medication", + "reason": "anemia", + "administration": true + }, + "Epogen_Administered": { + "type": "MedicationEnd", + "direct_transition": "Dialysis weight record", + "referenced_by_attribute": "anemia_medication" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/dme/wheelchair.json b/src/main/resources/modules/dme/wheelchair.json new file mode 100644 index 0000000..7c32d52 --- /dev/null +++ b/src/main/resources/modules/dme/wheelchair.json @@ -0,0 +1,73 @@ +{ + "name": "wheelchair", + "remarks": [ + "Assigns a manual or power wheelchair and optional accessory according to probabilities calculated from ~500K wheelchair claim lines." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "End Previous Wheelchair" + }, + "Terminal": { + "type": "Terminal" + }, + "New Wheelchair": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "228869008", + "display": "Manual wheelchair (physical object)" + }, + "direct_transition": "Accessory Check", + "assign_to_attribute": "wheelchair" + }, + "End Previous Wheelchair": { + "type": "CallSubmodule", + "submodule": "dme/wheelchair_end", + "distributed_transition": [ + { + "transition": "New Wheelchair", + "distribution": 0.86 + }, + { + "transition": "New Power Wheelchair", + "distribution": 0.14 + } + ] + }, + "New Power Wheelchair": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "705427004", + "display": "Power-assisted wheelchair (physical object)" + }, + "direct_transition": "Accessory Check", + "assign_to_attribute": "wheelchair" + }, + "Accessory Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Wheelchair Accessory", + "distribution": 0.73 + }, + { + "transition": "Terminal", + "distribution": 0.27 + } + ] + }, + "Wheelchair Accessory": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "705417005", + "display": "Wheelchair accessory (physical object)" + }, + "direct_transition": "Terminal", + "assign_to_attribute": "wheelchair_accessory" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/dme/wheelchair_end.json b/src/main/resources/modules/dme/wheelchair_end.json new file mode 100644 index 0000000..16b1911 --- /dev/null +++ b/src/main/resources/modules/dme/wheelchair_end.json @@ -0,0 +1,26 @@ +{ + "name": "wheelchair_end", + "remarks": [ + "Submodule to stop wheelchair and accessory devices." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "End Wheelchair" + }, + "Terminal": { + "type": "Terminal" + }, + "End Wheelchair": { + "type": "DeviceEnd", + "direct_transition": "End Accessory", + "referenced_by_attribute": "wheelchair" + }, + "End Accessory": { + "type": "DeviceEnd", + "direct_transition": "Terminal", + "referenced_by_attribute": "wheelchair_accessory" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/ear_infections.json b/src/main/resources/modules/ear_infections.json new file mode 100644 index 0000000..e42c763 --- /dev/null +++ b/src/main/resources/modules/ear_infections.json @@ -0,0 +1,249 @@ +{ + "name": "Ear Infections", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "No_Infection" + }, + "No_Infection": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 3, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.02010556, + "transition": "Gets_Ear_Infection", + "remarks": [ + "72.38% of children < 3 get an ear infection. This gives an incidence of .7238 / (3 * 12) = 0.020105556 per month", + "Source: https://www.nidcd.nih.gov/health/statistics/ambulatory-care-visits-diagnosis-otitis-media" + ] + }, + { + "distribution": 0.97989444, + "transition": "No_Infection" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 6, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.0131625, + "transition": "Gets_Ear_Infection", + "remarks": [ + "31.59% of children between 3 and 5 get an ear infection. .3159 / (2 * 12) = 0.01316250", + "Source: https://www.nidcd.nih.gov/health/statistics/ambulatory-care-visits-diagnosis-otitis-media" + ] + }, + { + "distribution": 0.9868375, + "transition": "No_Infection" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 18, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.0007444, + "transition": "Gets_Ear_Infection", + "remarks": [ + "10.72% of children 6 - 18 get an ear infection. .1072 / (12 * 12) = .00074444", + "Source: https://www.nidcd.nih.gov/health/statistics/ambulatory-care-visits-diagnosis-otitis-media" + ] + }, + { + "distribution": 0.99925556, + "transition": "No_Infection" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.00020833, + "transition": "Gets_Ear_Infection", + "remarks": [ + "It is widely accepted that 0.25% of adults get an ear infection (per anum).", + "Based on 79 year average life expectancy in the U.S. .0025 / 12 = .00020833", + "Source for life expectancy: http://data.worldbank.org/indicator/SP.DYN.LE00.IN", + "Source for ear infection rates: http://patient.info/doctor/acute-otitis-media-in-adults" + ] + }, + { + "distribution": 0.99979167, + "transition": "No_Infection" + } + ] + } + ] + }, + "Gets_Ear_Infection": { + "type": "ConditionOnset", + "target_encounter": "Ear_Infection_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65363002", + "display": "Otitis media (disorder)" + } + ], + "direct_transition": "Ear_Infection_Encounter" + }, + "Ear_Infection_Encounter": { + "type": "Encounter", + "encounter_class": "outpatient", + "reason": "Gets_Ear_Infection", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.859, + "transition": "Ear_Infection_Prescribed_Antibiotic", + "remarks": [ + "Could not find an exact source for the rate at which antibiotics are perscribed.", + "Was able to find some relevant statistics for acute otitis media from this source:", + "http://pediatrics.aappublications.org/content/early/2014/09/09/peds.2014-0605" + ] + }, + { + "distribution": 0.141, + "transition": "Ear_Infection_Prescribed_OTC_Painkiller", + "remarks": [ + "Assuming those not perscribed antibiotics were encourage to use over-the-counter pain killers." + ] + } + ] + }, + "Ear_Infection_Prescribed_Antibiotic": { + "type": "CallSubmodule", + "submodule": "medications/ear_infection_antibiotic", + "direct_transition": "Ear_Infection_Prescribed_OTC_Painkiller" + }, + "Ear_Infection_Prescribed_OTC_Painkiller": { + "type": "CallSubmodule", + "submodule": "medications/otc_pain_reliever", + "direct_transition": "End_Encounter" + }, + "End_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Ear_Infection_Prescription_Taken" + }, + "Ear_Infection_Prescription_Taken": { + "type": "Delay", + "exact": { + "quantity": 14, + "unit": "days" + }, + "direct_transition": "End_Ear_Infection_Medications" + }, + "End_Ear_Infection_Medications": { + "type": "Simple", + "remarks": [ + "For any of the possible medications that could be prescribed in this module ", + "this state cycles through the attributes and ends the medications until no ", + "more prescriptions are remaining.", + "The attributes that this state looks for are: ", + "1. otc_pain_reliever ", + "2. antibiotic_prescription ", + "Any other medications prescribed in this module and not assigned to one of those ", + "three attributes must be ended manually elsewhere in the module, the special ", + "exception being 'opioid_prescription' (handled by the Opioid Addiction module)." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "antibiotic_prescription", + "operator": "is not nil" + }, + "transition": "End_Antibiotic_Prescription" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "otc_pain_reliever", + "operator": "is not nil" + }, + "transition": "End_Non_Opioid_Prescription" + }, + { + "remarks": [ + "Fallback transition after all medications are ended" + ], + "transition": "Next_Wellness_Encounter" + } + ] + }, + "End_Antibiotic_Prescription": { + "type": "MedicationEnd", + "referenced_by_attribute": "antibiotic_prescription", + "direct_transition": "Unset_Antibiotic_Prescription_Attribute" + }, + "Unset_Antibiotic_Prescription_Attribute": { + "type": "SetAttribute", + "attribute": "antibiotic_prescription", + "direct_transition": "End_Ear_Infection_Medications" + }, + "End_Non_Opioid_Prescription": { + "type": "MedicationEnd", + "referenced_by_attribute": "otc_pain_reliever", + "direct_transition": "Unset_Non_Opioid_Prescription_Attribute" + }, + "Unset_Non_Opioid_Prescription_Attribute": { + "type": "SetAttribute", + "attribute": "otc_pain_reliever", + "direct_transition": "End_Ear_Infection_Medications" + }, + "Next_Wellness_Encounter": { + "type": "Encounter", + "wellness": true, + "direct_transition": "Ear_Infection_End", + "reason": "Gets_Ear_Infection" + }, + "Ear_Infection_End": { + "type": "ConditionEnd", + "condition_onset": "Gets_Ear_Infection", + "direct_transition": "End_Wellness_No_Infection" + }, + "End_Wellness_No_Infection": { + "type": "EncounterEnd", + "direct_transition": "No_Infection", + "remarks": [ + "this state only exists to make the graph look nicer" + ] + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/encounter/anxiety_screening.json b/src/main/resources/modules/encounter/anxiety_screening.json new file mode 100644 index 0000000..a15bd98 --- /dev/null +++ b/src/main/resources/modules/encounter/anxiety_screening.json @@ -0,0 +1,214 @@ +{ + "name": "anxiety_screening", + "remarks": [ + "Basic anxiety screening pathway." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Check Eligibility" + }, + "Terminal": { + "type": "Terminal" + }, + "Low Anxiety Score": { + "type": "SetAttribute", + "attribute": "anxiety_screening_score", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 4, + "low": 0 + } + }, + "direct_transition": "Close Severe Diagnosis" + }, + "Low Anxiety": { + "type": "Simple", + "direct_transition": "Low Anxiety Score" + }, + "Has Anxiety": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Mild Anxiety Score", + "distribution": 0.6 + }, + { + "transition": "Moderate Anxiety Score", + "distribution": 0.28 + }, + { + "transition": "Severe Anxiety Score", + "distribution": 0.12 + } + ] + }, + "GAD-7": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "69737-5", + "display": "Generalized anxiety disorder 7 item (GAD-7)" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "70274-6", + "display": "Generalized anxiety disorder 7 item (GAD-7) total score [Reported.PHQ]" + } + ], + "attribute": "anxiety_screening_score" + } + ], + "direct_transition": "Terminal" + }, + "Mild Anxiety Score": { + "type": "SetAttribute", + "attribute": "anxiety_screening_score", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 9, + "low": 5 + } + }, + "direct_transition": "Close Severe Diagnosis" + }, + "Moderate Anxiety Score": { + "type": "SetAttribute", + "attribute": "anxiety_screening_score", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 14, + "low": 10 + } + }, + "direct_transition": "Close Severe Diagnosis" + }, + "Severe Anxiety Score": { + "type": "SetAttribute", + "attribute": "anxiety_screening_score", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 21, + "low": 15 + } + }, + "direct_transition": "Severe Anxiety Diagnosis" + }, + "Determine Anxiety Level": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "Has Anxiety", + "distribution": 0.234 + }, + { + "transition": "Low Anxiety", + "distribution": 0.766 + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "transition": "Has Anxiety", + "distribution": 0.143 + }, + { + "transition": "Low Anxiety", + "distribution": 0.857 + } + ] + } + ] + }, + "Conduct Anxiety Screening": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "710841007", + "display": "Assessment of anxiety (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 15 + } + }, + "unit": "minutes", + "direct_transition": "Determine Anxiety Level" + }, + "Severe Anxiety Diagnosis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "80583007", + "display": "Severe anxiety (panic) (finding)" + } + ], + "direct_transition": "GAD-7" + }, + "Close Severe Diagnosis": { + "type": "ConditionEnd", + "direct_transition": "GAD-7", + "condition_onset": "Severe Anxiety Diagnosis" + }, + "Check Eligibility": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "ptsd", + "operator": "is not nil" + }, + { + "condition_type": "Age", + "operator": "<", + "quantity": 12, + "unit": "years", + "value": 0 + } + ] + } + }, + { + "transition": "Conduct Anxiety Screening" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/encounter/depression_screening.json b/src/main/resources/modules/encounter/depression_screening.json new file mode 100644 index 0000000..309f88e --- /dev/null +++ b/src/main/resources/modules/encounter/depression_screening.json @@ -0,0 +1,357 @@ +{ + "name": "depression screening", + "remarks": [ + "A basic depression screening module." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Check Eligibility" + }, + "Terminal": { + "type": "Terminal" + }, + "Check Eligibility": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "At Least", + "minimum": 1, + "conditions": [ + { + "condition_type": "Age", + "operator": "<", + "quantity": 12, + "unit": "years", + "value": 0 + }, + { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "370143000", + "display": "Major depressive disorder (disorder)" + } + ] + }, + { + "condition_type": "Active CarePlan", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183401008", + "display": "Anti-suicide psychotherapy (regime/therapy)" + } + ] + } + ] + } + }, + { + "transition": "Depression Screening" + } + ] + }, + "Depression Screening": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "171207006", + "display": "Depression screening (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 15, + "low": 10 + } + }, + "unit": "minutes", + "conditional_transition": [ + { + "transition": "Young Adult", + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 18, + "unit": "years", + "value": 0 + } + }, + { + "transition": "Adult" + } + ] + }, + "Adult": { + "type": "Simple", + "direct_transition": "PHQ-2" + }, + "Young Adult": { + "type": "Simple", + "direct_transition": "PHQ-9" + }, + "PHQ-2": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "171207006", + "display": "Depression screening (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 20 + } + }, + "unit": "minutes", + "distributed_transition": [ + { + "transition": "PHQ2 Positive", + "distribution": 0.06 + }, + { + "transition": "PHQ2 Negative", + "distribution": 0.94 + } + ] + }, + "YA Negative": { + "type": "SetAttribute", + "attribute": "phqa_score", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 4, + "low": 0 + } + }, + "direct_transition": "YA PHQ Results" + }, + "PHQ2 Positive": { + "type": "SetAttribute", + "attribute": "phq2_score", + "direct_transition": "PHQ2 Results", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 6, + "low": 3 + } + } + }, + "PHQ2 Negative": { + "type": "SetAttribute", + "attribute": "phq2_score", + "direct_transition": "PHQ2 Results", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 2, + "low": 0 + } + } + }, + "PHQ2 Results": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "55757-9", + "display": "Patient Health Questionnaire 2 item (PHQ-2) [Reported]" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "55758-7", + "display": "Patient Health Questionnaire 2 item (PHQ-2) total score [Reported]" + } + ], + "attribute": "phq2_score" + } + ], + "conditional_transition": [ + { + "transition": "PHQ-9", + "condition": { + "condition_type": "Attribute", + "attribute": "phq2_score", + "operator": ">=", + "value": 3 + } + }, + { + "transition": "Terminal" + } + ] + }, + "PHQ-9": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "715252007", + "display": "Depression screening using Patient Health Questionnaire Nine Item score (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 20 + } + }, + "unit": "minutes", + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 18, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Positive", + "distribution": 0.09 + }, + { + "transition": "YA Negative", + "distribution": 0.91 + } + ] + }, + { + "distributions": [ + { + "transition": "Negative", + "distribution": 0.2 + }, + { + "transition": "Positive", + "distribution": 0.8 + } + ] + } + ] + }, + "Negative": { + "type": "SetAttribute", + "attribute": "phqa_score", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 4, + "low": 3 + } + }, + "direct_transition": "Age Check" + }, + "Positive": { + "type": "SetAttribute", + "attribute": "phqa_score", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 27, + "low": 5 + } + }, + "direct_transition": "Age Check" + }, + "PHQ_Results": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "44249-1", + "display": "PHQ-9 quick depression assessment panel [Reported.PHQ]" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "44261-6", + "display": "Patient Health Questionnaire 9 item (PHQ-9) total score [Reported]" + } + ], + "attribute": "phqa_score" + } + ], + "direct_transition": "Terminal" + }, + "YA PHQ Results": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "89206-7", + "display": "Patient Health Questionnaire-9: Modified for Teens [Reported.PHQ.Teen]" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "89204-2", + "display": "Patient Health Questionnaire-9: Modified for Teens total score [Reported.PHQ.Teen]" + } + ], + "attribute": "phqa_score" + } + ], + "direct_transition": "Terminal" + }, + "Age Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "YA PHQ Results", + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 18, + "unit": "years", + "value": 0 + } + }, + { + "transition": "PHQ_Results" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/encounter/fall_risk_screening.json b/src/main/resources/modules/encounter/fall_risk_screening.json new file mode 100644 index 0000000..a912a2d --- /dev/null +++ b/src/main/resources/modules/encounter/fall_risk_screening.json @@ -0,0 +1,257 @@ +{ + "name": "fall_risk_screening", + "remarks": [ + "Basic fall risk screening pathway." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Check Eligibility" + }, + "Terminal": { + "type": "Terminal" + }, + "Check Eligibility": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Conduct Fall Screening", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "At Least", + "minimum": 1, + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65966004", + "display": "Fracture of forearm (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "263102004", + "display": "Fracture subluxation of wrist (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "16114001", + "display": "Fracture of ankle (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "33737001", + "display": "Fracture of rib (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "58150001", + "display": "Fracture of clavicle (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "359817006", + "display": "Closed fracture of hip (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "64859006", + "display": "Osteoporosis (disorder)" + } + ] + } + ] + }, + { + "condition_type": "Age", + "operator": ">=", + "quantity": 65, + "unit": "years", + "value": 0 + } + ] + } + }, + { + "transition": "Terminal" + } + ] + }, + "Conduct Fall Screening": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "762993000", + "display": "Assessment using Morse Fall Scale (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 15 + } + }, + "unit": "minutes", + "direct_transition": "Determine Fall Risk" + }, + "Determine Fall Risk": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "High Fall Risk Score", + "distribution": 0.34 + }, + { + "distribution": 0.33, + "transition": "Low Fall Risk Score" + }, + { + "transition": "Moderate Fall Risk Score", + "distribution": 0.33 + } + ] + }, + "Low Fall Risk Score": { + "type": "SetAttribute", + "attribute": "fall_risk_screening_score", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 24, + "low": 0 + } + }, + "direct_transition": "Low Fall Risk Code" + }, + "High Fall Risk Score": { + "type": "SetAttribute", + "attribute": "fall_risk_screening_score", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 125, + "low": 50 + } + }, + "direct_transition": "High Fall Risk Code" + }, + "Moderate Fall Risk Score": { + "type": "SetAttribute", + "attribute": "fall_risk_screening_score", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 45, + "low": 25 + } + }, + "direct_transition": "Moderate Fall Risk Code" + }, + "Morse Fall Scale": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "59453-1", + "display": "Morse Fall Scale panel" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "59460-6", + "display": "Fall risk total [Morse Fall Scale]" + } + ], + "attribute": "fall_risk_screening_score" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "59461-4", + "display": "Fall risk level [Morse Fall Scale]" + } + ], + "attribute": "fall_risk_screening_code" + } + ], + "direct_transition": "Terminal" + }, + "High Fall Risk Code": { + "type": "SetAttribute", + "attribute": "fall_risk_screening_code", + "direct_transition": "Morse Fall Scale", + "value_code": { + "system": "LOINC", + "code": "LA13040-3", + "display": "High Risk (MFS Score 50+)" + } + }, + "Low Fall Risk Code": { + "type": "SetAttribute", + "attribute": "fall_risk_screening_code", + "value_code": { + "system": "LOINC", + "code": "LA13038-7", + "display": "Low Risk (MFS Score 0 - 24)" + }, + "direct_transition": "Morse Fall Scale" + }, + "Moderate Fall Risk Code": { + "type": "SetAttribute", + "attribute": "fall_risk_screening_code", + "value_code": { + "system": "LOINC", + "code": "LA13039-5", + "display": "Moderate Risk (MFS Score 25 - 45)" + }, + "direct_transition": "Morse Fall Scale" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/encounter/hark_screening.json b/src/main/resources/modules/encounter/hark_screening.json new file mode 100644 index 0000000..896000a --- /dev/null +++ b/src/main/resources/modules/encounter/hark_screening.json @@ -0,0 +1,172 @@ +{ + "name": "hark_screening", + "remarks": [ + "Basic HARK screening pathway." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Check Eligibility" + }, + "Terminal": { + "type": "Terminal" + }, + "Check Eligibility": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Conduct Screening for Domestic Abuse", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years", + "value": 0 + } + ] + } + }, + { + "transition": "Terminal" + } + ] + }, + "Conduct Screening for Domestic Abuse": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "866148006", + "display": "Screening for domestic abuse (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 45, + "low": 25 + } + }, + "unit": "minutes", + "direct_transition": "Determine Results" + }, + "Determine Results": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "High Score", + "distribution": 0.055 + }, + { + "transition": "Low Score", + "distribution": 0.945 + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "transition": "High Score", + "distribution": 0.052 + }, + { + "transition": "Low Score", + "distribution": 0.948 + } + ] + } + ] + }, + "High Score": { + "type": "SetAttribute", + "attribute": "hark_screening_score", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 4, + "low": 1 + } + }, + "conditional_transition": [ + { + "transition": "HARK Assessment", + "condition": { + "condition_type": "PriorState", + "name": "Victim" + } + }, + { + "transition": "Victim" + } + ] + }, + "Low Score": { + "type": "SetAttribute", + "attribute": "hark_screening_score", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 0 + } + }, + "direct_transition": "HARK Assessment" + }, + "Victim": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "706893006", + "display": "Victim of intimate partner abuse (finding)" + } + ], + "direct_transition": "HARK Assessment" + }, + "HARK Assessment": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "76499-3", + "display": "Humiliation, Afraid, Rape, and Kick questionnaire [HARK]" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "76504-0", + "display": "Total score [HARK]" + } + ], + "attribute": "hark_screening_score" + } + ], + "direct_transition": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/encounter/hospital_basic_labs.json b/src/main/resources/modules/encounter/hospital_basic_labs.json new file mode 100644 index 0000000..01be173 --- /dev/null +++ b/src/main/resources/modules/encounter/hospital_basic_labs.json @@ -0,0 +1,1077 @@ +{ + "name": "hospital_basic_labs", + "remarks": [ + "Daily observations and labs during hospitalization and ICU." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "CBC" + }, + "Terminal": { + "type": "Terminal" + }, + "CBC": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3, + "high": 4 + } + }, + { + "category": "laboratory", + "unit": "10*6/uL", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.77, + "high": 5.8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "range": { + "low": 11.1, + "high": 14.1 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "4544-3", + "display": "Hematocrit [Volume Fraction] of Blood by Automated count" + } + ], + "range": { + "low": 37.5, + "high": 46.6 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 79, + "high": 97 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 26.6, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 31.5, + "high": 35.7 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "788-0", + "display": "Erythrocyte distribution width [Ratio] by Automated count" + } + ], + "range": { + "low": 12.3, + "high": 15.4 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 99, + "high": 150 + } + } + ], + "remarks": [ + "In the most severe patients, white-cell counts should be less than 4000 per mm3", + "In the most severe patients, platelet counts should also trend towards being less than 150K per mm3", + "In the most severe patients, median hemoglobin should be around 12.8 g/dL" + ], + "direct_transition": "CBC_Differential" + }, + "CBC_Differential": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "57023-4", + "display": "Auto Differential panel - Blood" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "770-8", + "display": "Neutrophils/100 leukocytes in Blood by Automated count" + } + ], + "range": { + "low": 10, + "high": 45 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "736-9", + "display": "Lymphocytes/100 leukocytes in Blood by Automated count" + } + ], + "range": { + "low": 5, + "high": 25 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "5905-5", + "display": "Monocytes/100 leukocytes in Blood by Automated count" + } + ], + "range": { + "low": 5, + "high": 15 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "713-8", + "display": "Eosinophils/100 leukocytes in Blood by Automated count" + } + ], + "range": { + "low": 3, + "high": 6 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "706-2", + "display": "Basophils/100 leukocytes in Blood by Automated count" + } + ], + "range": { + "low": 2, + "high": 4 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "751-8", + "display": "Neutrophils [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 1.4, + "high": 7 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "731-0", + "display": "Lymphocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 0.7, + "high": 3.1 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "742-7", + "display": "Monocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 0.1, + "high": 0.9 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "711-2", + "display": "Eosinophils [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 0, + "high": 0.4 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "704-7", + "display": "Basophils [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 0, + "high": 0.2 + } + } + ], + "remarks": [ + "Viral infection should show DECREASES in neutro and lymph, and INCREASES in mono, eosino, and baso." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "is not nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "275408006", + "display": "Postoperative renal failure (disorder)" + } + ] + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40095003", + "display": "Injury of kidney (disorder)" + } + ] + } + ] + }, + "transition": "Comprehensive Metabolic Panel with Kidney Damage" + }, + { + "transition": "Comprehensive Metabolic Panel with Normal Kidney" + } + ] + }, + "Ventilation Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Arterial Blood Gas", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65710008", + "display": "Acute respiratory failure (disorder)" + } + ] + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "76571007", + "display": "Septic shock (disorder)" + } + ] + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "409623005", + "display": "Respiratory insufficiency (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "243150007", + "display": "Assist control ventilation (regime/therapy)" + } + ] + } + ] + } + ] + } + ] + } + }, + { + "transition": "Anticoagulation Check" + } + ] + }, + "Arterial Blood Gas": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24336-0", + "display": "Gas panel - Arterial blood" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "[pH]", + "codes": [ + { + "system": "LOINC", + "code": "2744-1", + "display": "pH of Arterial blood" + } + ], + "range": { + "low": 6.8, + "high": 7.3 + } + }, + { + "category": "laboratory", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "2019-8", + "display": "Carbon dioxide [Partial pressure] in Arterial blood" + } + ], + "range": { + "low": 35, + "high": 45 + } + }, + { + "category": "laboratory", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "2703-7", + "display": "Oxygen [Partial pressure] in Arterial blood" + } + ], + "range": { + "low": 40, + "high": 75 + } + }, + { + "category": "laboratory", + "unit": "mmol/L", + "codes": [ + { + "system": "LOINC", + "code": "1960-4", + "display": "Bicarbonate [Moles/volume] in Arterial blood" + } + ], + "range": { + "low": 22, + "high": 27 + } + }, + { + "category": "vital-signs", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "2708-6", + "display": "Oxygen saturation in Arterial blood" + }, + { + "system": "LOINC", + "code": "59408-5", + "display": "Oxygen saturation in Arterial blood by Pulse oximetry" + } + ], + "vital_sign": "Oxygen Saturation" + } + ], + "direct_transition": "Record FiO2" + }, + "Comprehensive Metabolic Panel with Normal Kidney": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "vital_sign": "Creatinine" + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "vital_sign": "EGFR" + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 5.5, + "high": 8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 3.5, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.3, + "high": 1.2 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 39, + "high": 117 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 44 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 40 + } + } + ], + "direct_transition": "Ventilation Check" + }, + "Comprehensive Metabolic Panel with Kidney Damage": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 1.5, + "high": 5 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 5, + "high": 14 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 5.5, + "high": 8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 3.5, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 15 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 39, + "high": 117 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 44 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 40 + } + } + ], + "direct_transition": "Ventilation Check" + }, + "Record FiO2": { + "type": "Observation", + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "19994-3", + "display": "Oxygen/Total gas setting [Volume Fraction] Ventilator" + } + ], + "direct_transition": "Anticoagulation Check", + "range": { + "low": 30, + "high": 100 + } + }, + "Anticoagulation Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "PT/INR", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "warfarin", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "heparin", + "operator": "is not nil" + } + ] + } + }, + { + "transition": "Cardiac Admission Check" + } + ] + }, + "Cardiac Admission Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Magnesium", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399211009", + "display": "History of myocardial infarction (situation)" + } + ] + }, + { + "condition_type": "Attribute", + "attribute": "cardiac_surgery_reason", + "operator": "is not nil" + } + ] + } + }, + { + "transition": "Terminal" + } + ] + }, + "PT/INR": { + "type": "Observation", + "category": "laboratory", + "unit": "{INR}", + "codes": [ + { + "system": "LOINC", + "code": "6301-6", + "display": "INR in Platelet poor plasma by Coagulation assay" + } + ], + "distribution": { + "kind": "UNIFORM", + "round": false, + "parameters": { + "high": 1.2, + "low": 0.9 + } + }, + "direct_transition": "Cardiac Admission Check" + }, + "Magnesium": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "19123-9", + "display": "Magnesium [Mass/volume] in Serum or Plasma" + } + ], + "distribution": { + "kind": "UNIFORM", + "round": false, + "parameters": { + "high": 2.3, + "low": 1.6 + } + }, + "direct_transition": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/encounter/sdoh_hrsn.json b/src/main/resources/modules/encounter/sdoh_hrsn.json new file mode 100644 index 0000000..a73eeab --- /dev/null +++ b/src/main/resources/modules/encounter/sdoh_hrsn.json @@ -0,0 +1,2730 @@ +{ + "name": "SDoH HRSN", + "remarks": [ + "Social Determinants of Health (SDoH) Health Related Social Needs (HRSN) screening." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Assessment" + }, + "Terminal": { + "type": "Terminal" + }, + "Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "710824005", + "display": "Assessment of health and social care needs (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "Q1" + }, + "PRAPARE": { + "type": "MultiObservation", + "category": "survey", + "number_of_observations": 0, + "codes": [ + { + "system": "LOINC", + "code": "93025-5", + "display": "Protocol for Responding to and Assessing Patients' Assets, Risks, and Experiences [PRAPARE]", + "value_set": "" + } + ], + "direct_transition": "Terminal", + "observations": [ + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "56051-6", + "display": "Do you consider yourself Hispanic/Latino?" + } + ], + "attribute": "prapare_a1" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "32624-9", + "display": "Race" + } + ], + "attribute": "prapare_a2" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "93035-4", + "display": "At any point in the past 2 years, has season or migrant farm work been your or your family's main source of income?" + } + ], + "attribute": "prapare_a3" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "93034-7", + "display": "Have you been discharged from the armed forces of the United States?" + } + ], + "attribute": "prapare_a4" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "54899-0", + "display": "Preferred language" + } + ], + "attribute": "prapare_a5" + }, + { + "category": "survey", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "63512-8", + "display": "How many people are living or staying at this address?" + } + ], + "attribute": "household_size" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "71802-3", + "display": "Housing status" + } + ], + "attribute": "prapare_a7" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "93033-9", + "display": "Are you worried about losing your housing?" + } + ], + "attribute": "prapare_a8" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "56799-0", + "display": "Address" + } + ], + "attribute": "address" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "82589-3", + "display": "Highest level of education" + } + ], + "attribute": "prapare_a10" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "67875-5", + "display": "Employment status - current" + } + ], + "attribute": "prapare_a11" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "76437-3", + "display": "Primary insurance" + } + ], + "attribute": "prapare_a12" + }, + { + "category": "survey", + "unit": "/a", + "codes": [ + { + "system": "LOINC", + "code": "63586-2", + "display": "What was your best estimate of the total income of all family members from all sources, before taxes, in last year?" + } + ], + "attribute": "income" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "93031-3", + "display": "In the past year, have you or any family members you live with been unable to get any of the following when it was really needed?" + } + ], + "attribute": "prapare_a14" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "93030-5", + "display": "Has lack of transportation kept you from medical appointments, meetings, work, or from getting things needed for daily living" + } + ], + "attribute": "prapare_a15" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "93029-7", + "display": "How often do you see or talk to people that you care about and feel close to (For example: talking to friends on the phone, visiting friends or family, going to church or club meetings)?" + } + ], + "attribute": "prapare_a16" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "93038-8", + "display": "Stress level" + } + ], + "attribute": "prapare_a17" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "93028-9", + "display": "In the past year, have you spent more than 2 nights in a row in a jail, prison, detention center, or juvenile correctional facility?" + } + ], + "attribute": "prapare_a18" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "93027-1", + "display": "Are you a refugee?" + } + ], + "attribute": "prapare_a19" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "93026-3", + "display": "Do you feel physically and emotionally safe where you currently live?" + } + ], + "attribute": "prapare_a20" + }, + { + "category": "survey", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "76501-6", + "display": "Within the last year, have you been afraid of your partner or ex-partner?" + } + ], + "attribute": "prapare_a21" + } + ] + }, + "Q1": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Race", + "race": "Hispanic" + }, + "transition": "A1_Yes" + }, + { + "distributions": [ + { + "transition": "A1_No", + "distribution": 0.995 + }, + { + "transition": "A1_NotAnswer", + "distribution": 0.005 + } + ] + } + ] + }, + "A1_Yes": { + "type": "SetAttribute", + "attribute": "prapare_a1", + "direct_transition": "Q2", + "value_code": { + "system": "LOINC", + "code": "LA33-6", + "display": "Yes" + } + }, + "A1_No": { + "type": "SetAttribute", + "attribute": "prapare_a1", + "value_code": { + "system": "LOINC", + "code": "LA32-8", + "display": "No" + }, + "direct_transition": "Q2" + }, + "A1_NotAnswer": { + "type": "SetAttribute", + "attribute": "prapare_a1", + "value_code": { + "system": "LOINC", + "code": "LA30122-8", + "display": "I choose not to answer this question" + }, + "direct_transition": "Q2" + }, + "Q2": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A2_NotAnswer", + "distribution": 0.005 + }, + { + "transition": "Q2A", + "distribution": 0.995 + } + ] + }, + "Q3": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Q3Y", + "condition": { + "condition_type": "Attribute", + "attribute": "income", + "operator": "<=", + "value": 25000 + } + }, + { + "transition": "Q3N" + } + ] + }, + "A2_Asian": { + "type": "SetAttribute", + "attribute": "prapare_a2", + "value_code": { + "system": "LOINC", + "code": "LA6156-9", + "display": "Asian" + }, + "direct_transition": "Q3" + }, + "A2_Hawaiian": { + "type": "SetAttribute", + "attribute": "prapare_a2", + "value_code": { + "system": "LOINC", + "code": "LA14045-1", + "display": "Native Hawaiian" + }, + "direct_transition": "Q3" + }, + "A2_PacificIslander": { + "type": "SetAttribute", + "attribute": "prapare_a2", + "value_code": { + "system": "LOINC", + "code": "LA30187-1", + "display": "Pacific Islander" + }, + "direct_transition": "Q3" + }, + "A2_Black": { + "type": "SetAttribute", + "attribute": "prapare_a2", + "value_code": { + "system": "LOINC", + "code": "LA14042-8", + "display": "Black/African American" + }, + "direct_transition": "Q3" + }, + "A2_White": { + "type": "SetAttribute", + "attribute": "prapare_a2", + "value_code": { + "system": "LOINC", + "code": "LA4457-3", + "display": "White" + }, + "direct_transition": "Q3" + }, + "A2_NativeAmerican": { + "type": "SetAttribute", + "attribute": "prapare_a2", + "value_code": { + "system": "LOINC", + "code": "LA4-4", + "display": "American Indian/Alaskan Native" + }, + "direct_transition": "Q3" + }, + "A2_Other": { + "type": "SetAttribute", + "attribute": "prapare_a2", + "value_code": { + "system": "LOINC", + "code": "LA46-8", + "display": "Other" + }, + "direct_transition": "Q3" + }, + "A2_NotAnswer": { + "type": "SetAttribute", + "attribute": "prapare_a2", + "value_code": { + "system": "LOINC", + "code": "LA30122-8", + "display": "I choose not to answer this question" + }, + "direct_transition": "Q3" + }, + "Q2A": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "A2_Asian", + "condition": { + "condition_type": "Race", + "race": "Asian" + } + }, + { + "transition": "A2_Black", + "condition": { + "condition_type": "Race", + "race": "Black" + } + }, + { + "transition": "A2_White", + "condition": { + "condition_type": "Race", + "race": "White" + } + }, + { + "transition": "A2_Hawaiian", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "state", + "operator": "==", + "value": "Hawaii" + }, + { + "condition_type": "Race", + "race": "Hawaiian" + } + ] + } + }, + { + "transition": "A2_PacificIslander", + "condition": { + "condition_type": "Race", + "race": "Hawaiian" + } + }, + { + "transition": "A2_NativeAmerican", + "condition": { + "condition_type": "Race", + "race": "Native" + } + }, + { + "transition": "A2_Other" + } + ] + }, + "Q4": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "A4_Yes", + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "is not nil" + } + }, + { + "transition": "Q4N" + } + ] + }, + "A3_Yes": { + "type": "SetAttribute", + "attribute": "prapare_a3", + "value_code": { + "system": "LOINC", + "code": "LA33-6", + "display": "Yes" + }, + "distributed_transition": [ + { + "transition": "Social Migrant", + "distribution": 0.00174 + }, + { + "transition": "Q4", + "distribution": 0.9982599999999999 + } + ] + }, + "A3_No": { + "type": "SetAttribute", + "attribute": "prapare_a3", + "value_code": { + "system": "LOINC", + "code": "LA32-8", + "display": "No" + }, + "direct_transition": "End Migrant" + }, + "A3_NotAnswer": { + "type": "SetAttribute", + "attribute": "prapare_a3", + "value_code": { + "system": "LOINC", + "code": "LA30122-8", + "display": "I choose not to answer this question" + }, + "direct_transition": "Q4" + }, + "Q3N": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A3_No", + "distribution": 0.995 + }, + { + "transition": "A3_NotAnswer", + "distribution": 0.005 + } + ] + }, + "Q3Y": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 17, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "A3_Yes", + "distribution": 0.03 + }, + { + "transition": "Q3N", + "distribution": 0.97 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 19, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "A3_Yes", + "distribution": 0.04 + }, + { + "transition": "Q3N", + "distribution": 0.96 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 24, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "A3_Yes", + "distribution": 0.11 + }, + { + "transition": "Q3N", + "distribution": 0.89 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 34, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "A3_Yes", + "distribution": 0.26 + }, + { + "transition": "Q3N", + "distribution": 0.74 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 44, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "A3_Yes", + "distribution": 0.23 + }, + { + "transition": "Q3N", + "distribution": 0.77 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 54, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "A3_Yes", + "distribution": 0.19 + }, + { + "transition": "Q3N", + "distribution": 0.81 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 64, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "A3_Yes", + "distribution": 0.11 + }, + { + "transition": "Q3N", + "distribution": 0.89 + } + ] + }, + { + "distributions": [ + { + "transition": "A3_Yes", + "distribution": 0.04 + }, + { + "transition": "Q3N", + "distribution": 0.96 + } + ] + } + ] + }, + "Social Migrant": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "160701002", + "display": "Social migrant (finding)" + } + ], + "direct_transition": "Q4" + }, + "End Migrant": { + "type": "ConditionEnd", + "direct_transition": "Q4", + "condition_onset": "Social Migrant" + }, + "Q5": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "A5_NotAnswer", + "condition": { + "condition_type": "Attribute", + "attribute": "first_language", + "operator": "is nil" + } + }, + { + "transition": "A5_English", + "condition": { + "condition_type": "Attribute", + "attribute": "first_language", + "operator": "==", + "value": "english" + } + }, + { + "transition": "A5_Other" + } + ] + }, + "A4_Yes": { + "type": "SetAttribute", + "attribute": "prapare_a4", + "value_code": { + "system": "LOINC", + "code": "LA33-6", + "display": "Yes" + }, + "direct_transition": "Veteran" + }, + "A4_No": { + "type": "SetAttribute", + "attribute": "prapare_a4", + "value_code": { + "system": "LOINC", + "code": "LA32-8", + "display": "No" + }, + "direct_transition": "Q5" + }, + "A4_NotAnswer": { + "type": "SetAttribute", + "attribute": "prapare_a4", + "value_code": { + "system": "LOINC", + "code": "LA30122-8", + "display": "I choose not to answer this question" + }, + "direct_transition": "Q5" + }, + "Q4N": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A4_NotAnswer", + "distribution": 0.005 + }, + { + "transition": "A4_No", + "distribution": 0.995 + } + ] + }, + "Veteran": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1187604002", + "display": "Serving in military service (finding)" + } + ], + "direct_transition": "Q5" + }, + "Q6": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Household_Size", + "condition": { + "condition_type": "Attribute", + "attribute": "household_size", + "operator": "is nil" + } + }, + { + "transition": "Q7" + } + ] + }, + "A5_English": { + "type": "SetAttribute", + "attribute": "prapare_a5", + "direct_transition": "Q6", + "value_code": { + "system": "LOINC", + "code": "LA43-5", + "display": "English" + } + }, + "A5_Other": { + "type": "SetAttribute", + "attribute": "prapare_a5", + "value_code": { + "system": "LOINC", + "code": "LA30188-9", + "display": "Language other than English" + }, + "direct_transition": "Q6" + }, + "A5_NotAnswer": { + "type": "SetAttribute", + "attribute": "prapare_a5", + "value_code": { + "system": "LOINC", + "code": "LA30122-8", + "display": "I choose not to answer this question" + }, + "direct_transition": "Q6" + }, + "Q7": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "homeless", + "operator": "==", + "value": true + }, + "transition": "A7_Homeless" + }, + { + "distributions": [ + { + "transition": "A7_NotAnswer", + "distribution": 0.005 + }, + { + "transition": "A7_NotHomeless", + "distribution": 0.995 + } + ] + } + ] + }, + "Household_Size": { + "type": "SetAttribute", + "attribute": "household_size", + "direct_transition": "Q7", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 8, + "low": 1 + } + } + }, + "Q8": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "severe_housing_cost_burden", + "operator": "==", + "value": true + }, + "transition": "A8_Yes" + }, + { + "distributions": [ + { + "transition": "A8_NotAnswer", + "distribution": 0.005 + }, + { + "transition": "A8_No", + "distribution": 0.995 + } + ] + } + ] + }, + "A7_Homeless": { + "type": "SetAttribute", + "attribute": "prapare_a7", + "direct_transition": "Homeless", + "value_code": { + "system": "LOINC", + "code": "LA30190-5", + "display": "I do not have housing (staying with others, in a hotel, in a shelter, living outside on the street, on a beach, in a car, or in a park)" + } + }, + "A7_NotHomeless": { + "type": "SetAttribute", + "attribute": "prapare_a7", + "value_code": { + "system": "LOINC", + "code": "LA30189-7", + "display": "I have housing" + }, + "direct_transition": "Not Homeless" + }, + "A7_NotAnswer": { + "type": "SetAttribute", + "attribute": "prapare_a7", + "value_code": { + "system": "LOINC", + "code": "LA30122-8", + "display": "I choose not to answer this question" + }, + "direct_transition": "Q8" + }, + "Homeless": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32911000", + "display": "Homeless (finding)" + } + ], + "direct_transition": "Q8" + }, + "Not Homeless": { + "type": "ConditionEnd", + "direct_transition": "Q8", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32911000", + "display": "Homeless (finding)" + } + ] + }, + "A8_Yes": { + "type": "SetAttribute", + "attribute": "prapare_a8", + "value_code": { + "system": "LOINC", + "code": "LA33-6", + "display": "Yes" + }, + "direct_transition": "Housing Issue" + }, + "A8_No": { + "type": "SetAttribute", + "attribute": "prapare_a8", + "value_code": { + "system": "LOINC", + "code": "LA32-8", + "display": "No" + }, + "direct_transition": "End Housing Issue" + }, + "A8_NotAnswer": { + "type": "SetAttribute", + "attribute": "prapare_a8", + "value_code": { + "system": "LOINC", + "code": "LA30122-8", + "display": "I choose not to answer this question" + }, + "direct_transition": "Q10" + }, + "Housing Issue": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "105531004", + "display": "Housing unsatisfactory (finding)" + } + ], + "direct_transition": "Q10" + }, + "End Housing Issue": { + "type": "ConditionEnd", + "direct_transition": "Q10", + "condition_onset": "Housing Issue" + }, + "Q10": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Q10A", + "distribution": 0.995 + }, + { + "transition": "A10_NotAnswer", + "distribution": 0.005 + } + ] + }, + "Q11": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Check Unemployment Change", + "condition": { + "condition_type": "Attribute", + "attribute": "unemployed", + "operator": "==", + "value": true + } + }, + { + "transition": "Q11B" + } + ] + }, + "A10_NotAnswer": { + "type": "SetAttribute", + "attribute": "prapare_a10", + "value_code": { + "system": "LOINC", + "code": "LA30122-8", + "display": "I choose not to answer this question" + }, + "direct_transition": "Q11" + }, + "A10C": { + "type": "SetAttribute", + "attribute": "prapare_a10", + "value_code": { + "system": "LOINC", + "code": "LA30193-9", + "display": "More than high school" + }, + "direct_transition": "Education_Onset_2" + }, + "A10B": { + "type": "SetAttribute", + "attribute": "prapare_a10", + "value_code": { + "system": "LOINC", + "code": "LA30192-1", + "display": "High school diploma or GED" + }, + "direct_transition": "Education_Onset" + }, + "A10A": { + "type": "SetAttribute", + "attribute": "prapare_a10", + "direct_transition": "Education Onset", + "value_code": { + "system": "LOINC", + "code": "LA30191-3", + "display": "Less than high school degree" + } + }, + "Q10A": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "A10A", + "condition": { + "condition_type": "Attribute", + "attribute": "education", + "operator": "==", + "value": "less_than_hs" + } + }, + { + "transition": "A10B", + "condition": { + "condition_type": "Attribute", + "attribute": "education", + "operator": "==", + "value": "hs_degree" + } + }, + { + "transition": "A10C" + } + ] + }, + "Education Onset": { + "type": "ConditionOnset", + "assign_to_attribute": "education_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "224295006", + "display": "Only received primary school education (finding)" + } + ], + "direct_transition": "Q11" + }, + "Education_Onset": { + "type": "ConditionOnset", + "assign_to_attribute": "education_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "473461003", + "display": "Educated to high school level (finding)" + } + ], + "direct_transition": "Q11" + }, + "Education_Onset_2": { + "type": "ConditionOnset", + "assign_to_attribute": "education_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "224299000", + "display": "Received higher education (finding)" + } + ], + "direct_transition": "Q11" + }, + "Q12": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "A12_NotAnswer", + "condition": { + "condition_type": "Attribute", + "attribute": "insurance_status", + "operator": "is nil" + } + }, + { + "transition": "A12_None", + "condition": { + "condition_type": "Attribute", + "attribute": "insurance_status", + "operator": "==", + "value": "none" + } + }, + { + "transition": "A12_Medicaid", + "condition": { + "condition_type": "Attribute", + "attribute": "insurance_status", + "operator": "==", + "value": "medicaid" + } + }, + { + "transition": "A12_Medicare", + "condition": { + "condition_type": "Attribute", + "attribute": "insurance_status", + "operator": "==", + "value": "medicare" + } + }, + { + "transition": "A12_Private", + "condition": { + "condition_type": "Attribute", + "attribute": "insurance_status", + "operator": "==", + "value": "private" + } + }, + { + "transition": "A12_NotAnswer" + } + ] + }, + "A11A": { + "type": "SetAttribute", + "attribute": "prapare_a11", + "value_code": { + "system": "LOINC", + "code": "LA17956-6", + "display": "Unemployed" + }, + "direct_transition": "Unemployed" + }, + "Q11B": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Some Employment", + "distribution": 0.995 + }, + { + "transition": "A11_NotAnswer", + "distribution": 0.005 + } + ] + }, + "Unemployed": { + "type": "ConditionOnset", + "assign_to_attribute": "employment_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "73438004", + "display": "Unemployed (finding)" + } + ], + "direct_transition": "Q12" + }, + "A11_NotAnswer": { + "type": "SetAttribute", + "attribute": "prapare_a11", + "value_code": { + "system": "LOINC", + "code": "LA30122-8", + "display": "I choose not to answer this question" + }, + "direct_transition": "Q12" + }, + "A11B": { + "type": "SetAttribute", + "attribute": "prapare_a11", + "value_code": { + "system": "LOINC", + "code": "LA30136-8", + "display": "Full-time work" + }, + "direct_transition": "Employed Full Time" + }, + "A11C": { + "type": "SetAttribute", + "attribute": "prapare_a11", + "value_code": { + "system": "LOINC", + "code": "LA30138-4", + "display": "Part-time or temporary work" + }, + "direct_transition": "Employed Part Time" + }, + "A11D": { + "type": "SetAttribute", + "attribute": "prapare_a11", + "value_code": { + "system": "LOINC", + "code": "LA30137-6", + "display": "Otherwise unemployed but not seeking work (ex: student, retired, disabled, unpaid primary care giver)" + }, + "direct_transition": "Employed Not" + }, + "Employed Full Time": { + "type": "ConditionOnset", + "assign_to_attribute": "employment_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "160903007", + "display": "Full-time employment (finding)" + } + ], + "direct_transition": "Q12" + }, + "Employed Part Time": { + "type": "ConditionOnset", + "assign_to_attribute": "employment_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "160904001", + "display": "Part-time employment (finding)" + } + ], + "direct_transition": "Q12" + }, + "Employed Not": { + "type": "ConditionOnset", + "assign_to_attribute": "employment_condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "741062008", + "display": "Not in labor force (finding)" + } + ], + "direct_transition": "Q12" + }, + "A12_NotAnswer": { + "type": "SetAttribute", + "attribute": "prapare_a12", + "value_code": { + "system": "LOINC", + "code": "LA30122-8", + "display": "I choose not to answer this question" + }, + "direct_transition": "Q14" + }, + "A12_None": { + "type": "SetAttribute", + "attribute": "prapare_a12", + "value_code": { + "system": "LOINC", + "code": "LA30194-7", + "display": "None/uninsured" + }, + "direct_transition": "Q14" + }, + "A12_Medicaid": { + "type": "SetAttribute", + "attribute": "prapare_a12", + "value_code": { + "system": "LOINC", + "code": "LA17849-3", + "display": "Medicaid" + }, + "direct_transition": "Q14" + }, + "A12_Medicare": { + "type": "SetAttribute", + "attribute": "prapare_a12", + "value_code": { + "system": "LOINC", + "code": "LA15652-3", + "display": "Medicare" + }, + "direct_transition": "Q14" + }, + "A12_Private": { + "type": "SetAttribute", + "attribute": "prapare_a12", + "value_code": { + "system": "LOINC", + "code": "LA6350-8", + "display": "Private insurance" + }, + "direct_transition": "Q14" + }, + "Q14": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "A14_NotAnswer", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "food_insecurity", + "operator": "is nil" + }, + { + "condition_type": "Attribute", + "attribute": "poverty_ratio", + "operator": "is nil" + } + ] + } + }, + { + "transition": "Q14A" + } + ] + }, + "Q15": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "no_vehicle_access", + "operator": "is nil" + }, + { + "condition_type": "Attribute", + "attribute": "no_vehicle_access", + "operator": "==", + "value": false + } + ] + }, + "transition": "A15_No" + }, + { + "distributions": [ + { + "transition": "A15_YesA", + "distribution": 0.5 + }, + { + "transition": "A15_YesB", + "distribution": 0.5 + } + ] + } + ] + }, + "A14_NotAnswer": { + "type": "SetAttribute", + "attribute": "prapare_a14", + "value_code": { + "system": "LOINC", + "code": "LA30122-8", + "display": "I choose not to answer this question" + }, + "direct_transition": "Q15" + }, + "Q14A": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A14_NotAnswer", + "distribution": 0.01 + }, + { + "transition": "Q14B", + "distribution": 0.99 + } + ] + }, + "Q14B": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "A14_Food", + "condition": { + "condition_type": "Attribute", + "attribute": "food_insecurity", + "operator": "==", + "value": true + } + }, + { + "transition": "Q14C" + } + ] + }, + "A14_Food": { + "type": "SetAttribute", + "attribute": "prapare_a14", + "value_code": { + "system": "LOINC", + "code": "LA30125-1", + "display": "Food" + }, + "direct_transition": "Q15" + }, + "A14_Clothing": { + "type": "SetAttribute", + "attribute": "prapare_a14", + "value_code": { + "system": "LOINC", + "code": "LA30126-9", + "display": "Clothing" + }, + "direct_transition": "Q15" + }, + "A14_Utilities": { + "type": "SetAttribute", + "attribute": "prapare_a14", + "value_code": { + "system": "LOINC", + "code": "LA30124-4", + "display": "Utilities" + }, + "direct_transition": "Q15" + }, + "A14_Childcare": { + "type": "SetAttribute", + "attribute": "prapare_a14", + "value_code": { + "system": "LOINC", + "code": "LA30127-7", + "display": "Child care" + }, + "direct_transition": "Q15" + }, + "A14_Medicine": { + "type": "SetAttribute", + "attribute": "prapare_a14", + "value_code": { + "system": "LOINC", + "code": "LA30128-5", + "display": "Medicine or Any Health Care (Medical, Dental, Mental Health, Vision)" + }, + "direct_transition": "Q15" + }, + "A14_Phone": { + "type": "SetAttribute", + "attribute": "prapare_a14", + "value_code": { + "system": "LOINC", + "code": "LA30129-3", + "display": "Phone" + }, + "direct_transition": "Q15" + }, + "A14_Other": { + "type": "SetAttribute", + "attribute": "prapare_a14", + "value_code": { + "system": "LOINC", + "code": "LA46-8", + "display": "Other" + }, + "direct_transition": "Q15" + }, + "Q14C": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Q14_Half", + "condition": { + "condition_type": "Attribute", + "attribute": "poverty_ratio", + "operator": "<", + "value": 0.5 + } + }, + { + "transition": "Q14_LessThanOne", + "condition": { + "condition_type": "Attribute", + "attribute": "poverty_ratio", + "operator": "<", + "value": 1 + } + }, + { + "transition": "Q14_LessThanTwo", + "condition": { + "condition_type": "Attribute", + "attribute": "poverty_ratio", + "operator": "<", + "value": 2 + } + }, + { + "transition": "Q14_LessThanFive", + "condition": { + "condition_type": "Attribute", + "attribute": "poverty_ratio", + "operator": "<", + "value": 5 + } + }, + { + "transition": "Q14_FiveOrHigher" + } + ] + }, + "Q14_Half": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A14_Medicine", + "distribution": 0.227 + }, + { + "transition": "Q14_Half_Food?", + "distribution": 0.7729999999999999 + } + ] + }, + "Q14_LessThanOne": { + "type": "Simple", + "direct_transition": "Q14_LessThanOne_Meds?" + }, + "Q14_LessThanTwo": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A14_Medicine", + "distribution": 0.196 + }, + { + "transition": "Q14_LessThanTwo_Food?", + "distribution": 0.804 + } + ] + }, + "Q14_LessThanFive": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A14_Medicine", + "distribution": 0.11 + }, + { + "transition": "Q14_LessThanFive_Food?", + "distribution": 0.89 + } + ] + }, + "Q14_FiveOrHigher": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A14_Medicine", + "distribution": 0.043 + }, + { + "transition": "Q14_FiveOrHigher_Food?", + "distribution": 0.957 + } + ] + }, + "Q14_Durables": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A14_Childcare", + "distribution": 0.25 + }, + { + "transition": "A14_Phone", + "distribution": 0.25 + }, + { + "transition": "A14_Other", + "distribution": 0.25 + }, + { + "transition": "A14_Clothing", + "distribution": 0.25 + } + ] + }, + "Q14_LessThanOne_Meds?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A14_Medicine", + "distribution": 0.227 + }, + { + "transition": "Q14_LessThanOne_Food?", + "distribution": 0.773 + } + ] + }, + "Q14_LessThanOne_Food?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A14_Food", + "distribution": 0.271 + }, + { + "transition": "Q14_LessThanOne_Utils?", + "distribution": 0.729 + } + ] + }, + "Q14_LessThanOne_Utils?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A14_Utilities", + "distribution": 0.325 + }, + { + "transition": "Q14_LessThanOne_Durables?", + "distribution": 0.675 + } + ] + }, + "Q14_LessThanOne_Durables?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Q14_Durables", + "distribution": 0.325 + }, + { + "transition": "A14_NotAnswer", + "distribution": 0.675 + } + ] + }, + "Q14_LessThanTwo_Food?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A14_Food", + "distribution": 0.185 + }, + { + "transition": "Q14_LessThanTwo_Utils?", + "distribution": 0.815 + } + ] + }, + "Q14_LessThanTwo_Utils?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A14_Utilities", + "distribution": 0.223 + }, + { + "transition": "Q14_LessThanTwo_Durables?", + "distribution": 0.777 + } + ] + }, + "Q14_LessThanTwo_Durables?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Q14_Durables", + "distribution": 0.216 + }, + { + "transition": "A14_NotAnswer", + "distribution": 0.784 + } + ] + }, + "Q14_Half_Food?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A14_Food", + "distribution": 0.266 + }, + { + "transition": "Q14_Half_Utils?", + "distribution": 0.734 + } + ] + }, + "Q14_Half_Utils?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A14_Utilities", + "distribution": 0.328 + }, + { + "transition": "Q14_Half_Durables?", + "distribution": 0.672 + } + ] + }, + "Q14_Half_Durables?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Q14_Durables", + "distribution": 0.311 + }, + { + "transition": "A14_NotAnswer", + "distribution": 0.689 + } + ] + }, + "Q14_LessThanFive_Food?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A14_Food", + "distribution": 0.084 + }, + { + "transition": "Q14_LessThanFive_Utils?", + "distribution": 0.916 + } + ] + }, + "Q14_LessThanFive_Utils?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A14_Utilities", + "distribution": 0.124 + }, + { + "transition": "Q14_LessThanFive_Durables?", + "distribution": 0.876 + } + ] + }, + "Q14_LessThanFive_Durables?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Q14_Durables", + "distribution": 0.088 + }, + { + "transition": "A14_NotAnswer", + "distribution": 0.912 + } + ] + }, + "Q14_FiveOrHigher_Food?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A14_Food", + "distribution": 0.027 + }, + { + "transition": "Q14_FiveOrHigher_Utils?", + "distribution": 0.973 + } + ] + }, + "Q14_FiveOrHigher_Utils?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A14_Utilities", + "distribution": 0.04 + }, + { + "transition": "Q14_FiveOrHigher_Durables?", + "distribution": 0.96 + } + ] + }, + "Q14_FiveOrHigher_Durables?": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Q14_Durables", + "distribution": 0.037 + }, + { + "transition": "A14_NotAnswer", + "distribution": 0.963 + } + ] + }, + "Q16": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Q16M", + "condition": { + "condition_type": "Attribute", + "attribute": "marital_status", + "operator": "==", + "value": "M" + } + }, + { + "transition": "Q16O" + } + ] + }, + "A15_YesA": { + "type": "SetAttribute", + "attribute": "prapare_a15", + "value_code": { + "system": "LOINC", + "code": "LA30133-5", + "display": "Yes, it has kept me from medical appointments or from getting my medications" + }, + "direct_transition": "No Transport Access" + }, + "A15_YesB": { + "type": "SetAttribute", + "attribute": "prapare_a15", + "value_code": { + "system": "LOINC", + "code": "LA30134-3", + "display": "Yes, it has kept me from non-medical meetings, appointments, work, or from getting things that I need" + }, + "direct_transition": "Transport Problem" + }, + "A15_No": { + "type": "SetAttribute", + "attribute": "prapare_a15", + "value_code": { + "system": "LOINC", + "code": "LA32-8", + "display": "No" + }, + "direct_transition": "Q16" + }, + "Transport Problem": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "266934004", + "display": "Transport problem (finding)" + } + ], + "direct_transition": "Q16" + }, + "No Transport Access": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "713458007", + "display": "Lack of access to transportation (finding)" + } + ], + "direct_transition": "Q16" + }, + "Q17": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A17_NotAtAll", + "distribution": 0.418 + }, + { + "transition": "A17_LittleBit", + "distribution": 0.262 + }, + { + "transition": "A17_Somewhat", + "distribution": 0.1846 + }, + { + "transition": "A17_QuiteBit", + "distribution": 0.0793 + }, + { + "transition": "A17_VeryMuch", + "distribution": 0.0481 + }, + { + "transition": "A17_NotAnswer", + "distribution": 0.008 + } + ] + }, + "Q16M": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A16_LessThanOne", + "distribution": 0.065 + }, + { + "transition": "A16_OneOrTwo", + "distribution": 0.065 + }, + { + "transition": "A16_ThreeToFive", + "distribution": 0.4325 + }, + { + "transition": "A16_FiveOrMore", + "distribution": 0.4325 + }, + { + "transition": "A16_NotAnswer", + "distribution": 0.005 + } + ] + }, + "Q16O": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A16_LessThanOne", + "distribution": 0.165 + }, + { + "transition": "A16_OneOrTwo", + "distribution": 0.165 + }, + { + "transition": "A16_ThreeToFive", + "distribution": 0.3325 + }, + { + "transition": "A16_FiveOrMore", + "distribution": 0.3325 + }, + { + "transition": "A16_NotAnswer", + "distribution": 0.005 + } + ] + }, + "A16_LessThanOne": { + "type": "SetAttribute", + "attribute": "prapare_a16", + "value_code": { + "system": "LOINC", + "code": "LA27722-0", + "display": "Less than once a week" + }, + "direct_transition": "Isolation" + }, + "A16_OneOrTwo": { + "type": "SetAttribute", + "attribute": "prapare_a16", + "value_code": { + "system": "LOINC", + "code": "LA30130-1", + "display": "1 or 2 times a week" + }, + "direct_transition": "Limited Contact" + }, + "A16_ThreeToFive": { + "type": "SetAttribute", + "attribute": "prapare_a16", + "value_code": { + "system": "LOINC", + "code": "LA30131-9", + "display": "3 to 5 times a week" + }, + "conditional_transition": [ + { + "transition": "End Isolation", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "423315002", + "display": "Limited social contact (finding)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "422650009", + "display": "Social isolation (finding)" + } + ] + } + ] + } + }, + { + "transition": "Q17" + } + ] + }, + "A16_FiveOrMore": { + "type": "SetAttribute", + "attribute": "prapare_a16", + "value_code": { + "system": "LOINC", + "code": "LA30132-7", + "display": "5 or more times a week" + }, + "conditional_transition": [ + { + "transition": "End Isolation", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "422650009", + "display": "Social isolation (finding)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "423315002", + "display": "Limited social contact (finding)" + } + ] + } + ] + } + }, + { + "transition": "Q17" + } + ] + }, + "A16_NotAnswer": { + "type": "SetAttribute", + "attribute": "prapare_a16", + "value_code": { + "system": "LOINC", + "code": "LA30122-8", + "display": "I choose not to answer this question" + }, + "direct_transition": "Q17" + }, + "Isolation": { + "type": "ConditionOnset", + "assign_to_attribute": "social_isolation", + "codes": [ + { + "system": "SNOMED-CT", + "code": "422650009", + "display": "Social isolation (finding)" + } + ], + "direct_transition": "Q17" + }, + "Limited Contact": { + "type": "ConditionOnset", + "assign_to_attribute": "social_isolation", + "codes": [ + { + "system": "SNOMED-CT", + "code": "423315002", + "display": "Limited social contact (finding)" + } + ], + "direct_transition": "Q17" + }, + "End Isolation": { + "type": "ConditionEnd", + "direct_transition": "Q17", + "referenced_by_attribute": "social_isolation" + }, + "Q18": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "criminal_record", + "operator": "is not nil" + }, + "transition": "A18_Yes" + }, + { + "distributions": [ + { + "transition": "A18_NotAnswer", + "distribution": 0.005 + }, + { + "transition": "A18_Yes", + "distribution": 0.011 + }, + { + "transition": "A18_No", + "distribution": 0.984 + } + ] + } + ] + }, + "A17_NotAnswer": { + "type": "SetAttribute", + "attribute": "prapare_a17", + "value_code": { + "system": "LOINC", + "code": "LA30122-8", + "display": "I choose not to answer this question" + }, + "direct_transition": "Q18" + }, + "A17_NotAtAll": { + "type": "SetAttribute", + "attribute": "prapare_a17", + "value_code": { + "system": "LOINC", + "code": "LA6568-5", + "display": "Not at all" + }, + "direct_transition": "End Stress" + }, + "A17_LittleBit": { + "type": "SetAttribute", + "attribute": "prapare_a17", + "value_code": { + "system": "LOINC", + "code": "LA13863-8", + "display": "A little bit" + }, + "direct_transition": "Stress" + }, + "A17_Somewhat": { + "type": "SetAttribute", + "attribute": "prapare_a17", + "value_code": { + "system": "LOINC", + "code": "LA13909-9", + "display": "Somewhat" + }, + "direct_transition": "Stress" + }, + "A17_QuiteBit": { + "type": "SetAttribute", + "attribute": "prapare_a17", + "value_code": { + "system": "LOINC", + "code": "LA13902-4", + "display": "Quite a bit" + }, + "direct_transition": "Stress" + }, + "A17_VeryMuch": { + "type": "SetAttribute", + "attribute": "prapare_a17", + "value_code": { + "system": "LOINC", + "code": "LA13914-9", + "display": "Very much" + }, + "direct_transition": "Stress" + }, + "Stress": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "73595000", + "display": "Stress (finding)" + } + ], + "direct_transition": "Q18" + }, + "End Stress": { + "type": "ConditionEnd", + "direct_transition": "Q18", + "condition_onset": "Stress" + }, + "Q19": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "refugee", + "operator": "is not nil" + }, + "transition": "A19_Yes" + }, + { + "distributions": [ + { + "transition": "A19_NotAnswer", + "distribution": 0.005 + }, + { + "transition": "A19_Yes", + "distribution": 0.00011 + }, + { + "transition": "A19_No", + "distribution": 0.99489 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "birth_country", + "operator": "==", + "value": "US" + } + }, + { + "distributions": [ + { + "transition": "A19_NotAnswer", + "distribution": 0.005 + }, + { + "transition": "A19_Yes", + "distribution": 0.05 + }, + { + "transition": "A19_No", + "distribution": 0.945 + } + ] + } + ] + }, + "A18_NotAnswer": { + "type": "SetAttribute", + "attribute": "prapare_a18", + "value_code": { + "system": "LOINC", + "code": "LA30122-8", + "display": "I choose not to answer this question" + }, + "direct_transition": "Q19" + }, + "A18_No": { + "type": "SetAttribute", + "attribute": "prapare_a18", + "value_code": { + "system": "LOINC", + "code": "LA32-8", + "display": "No" + }, + "direct_transition": "Q19" + }, + "A18_Yes": { + "type": "SetAttribute", + "attribute": "prapare_a18", + "value_code": { + "system": "LOINC", + "code": "LA33-6", + "display": "Yes" + }, + "direct_transition": "Smooth Criminal" + }, + "Smooth Criminal": { + "type": "ConditionOnset", + "assign_to_attribute": "criminal_record", + "codes": [ + { + "system": "SNOMED-CT", + "code": "266948004", + "display": "Has a criminal record (finding)" + } + ], + "direct_transition": "Q19" + }, + "Q20": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "A20_NotAnswer", + "distribution": 0.0023 + }, + { + "transition": "A20_Unsure", + "distribution": 0.0078 + }, + { + "transition": "A20_No", + "distribution": 0.0534 + }, + { + "transition": "A20_Yes", + "distribution": 0.9365 + } + ] + }, + "A19_NotAnswer": { + "type": "SetAttribute", + "attribute": "prapare_a19", + "value_code": { + "system": "LOINC", + "code": "LA30122-8", + "display": "I choose not to answer this question" + }, + "direct_transition": "Q20" + }, + "A19_No": { + "type": "SetAttribute", + "attribute": "prapare_a19", + "value_code": { + "system": "LOINC", + "code": "LA32-8", + "display": "No" + }, + "direct_transition": "Q20" + }, + "A19_Yes": { + "type": "SetAttribute", + "attribute": "prapare_a19", + "value_code": { + "system": "LOINC", + "code": "LA33-6", + "display": "Yes" + }, + "direct_transition": "Refugee" + }, + "Refugee": { + "type": "ConditionOnset", + "assign_to_attribute": "refugee", + "codes": [ + { + "system": "SNOMED-CT", + "code": "446654005", + "display": "Refugee (person)" + } + ], + "direct_transition": "Q20" + }, + "Q21": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "A21_Yes", + "distribution": 0.055 + }, + { + "transition": "A21_No", + "distribution": 0.945 + } + ] + }, + { + "distributions": [ + { + "transition": "A21_Yes", + "distribution": 0.052 + }, + { + "transition": "A21_No", + "distribution": 0.948 + } + ] + } + ] + }, + "A20_NotAnswer": { + "type": "SetAttribute", + "attribute": "prapare_a20", + "value_code": { + "system": "LOINC", + "code": "LA30122-8", + "display": "I choose not to answer this question" + }, + "direct_transition": "Q21" + }, + "A20_No": { + "type": "SetAttribute", + "attribute": "prapare_a20", + "value_code": { + "system": "LOINC", + "code": "LA32-8", + "display": "No" + }, + "direct_transition": "Violence" + }, + "A20_Yes": { + "type": "SetAttribute", + "attribute": "prapare_a20", + "value_code": { + "system": "LOINC", + "code": "LA33-6", + "display": "Yes" + }, + "direct_transition": "End Violence" + }, + "A20_Unsure": { + "type": "SetAttribute", + "attribute": "prapare_a20", + "value_code": { + "system": "LOINC", + "code": "LA14072-5", + "display": "Unsure" + }, + "direct_transition": "Q21" + }, + "Violence": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424393004", + "display": "Reports of violence in the environment (finding)" + } + ], + "direct_transition": "Q21" + }, + "End Violence": { + "type": "ConditionEnd", + "direct_transition": "Q21", + "condition_onset": "Violence" + }, + "End Q": { + "type": "Simple", + "direct_transition": "PRAPARE" + }, + "A21_Yes": { + "type": "SetAttribute", + "attribute": "prapare_a21", + "value_code": { + "system": "LOINC", + "code": "LA33-6", + "display": "Yes" + }, + "direct_transition": "Partner Violence" + }, + "A21_No": { + "type": "SetAttribute", + "attribute": "prapare_a21", + "value_code": { + "system": "LOINC", + "code": "LA32-8", + "display": "No" + }, + "direct_transition": "End Partner Violence" + }, + "Partner Violence": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "706893006", + "display": "Victim of intimate partner abuse (finding)" + } + ], + "direct_transition": "End Q" + }, + "End Partner Violence": { + "type": "ConditionEnd", + "direct_transition": "End Q", + "condition_onset": "Partner Violence" + }, + "Check Temp Work Change": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Q12", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "160904001", + "display": "Part-time employment (finding)" + } + ] + } + }, + { + "transition": "A11C", + "condition": { + "condition_type": "Attribute", + "attribute": "employment_condition", + "operator": "is nil" + } + }, + { + "transition": "Start Change To Temp Employment" + } + ] + }, + "Start Change To Temp Employment": { + "type": "ConditionEnd", + "direct_transition": "A11C", + "referenced_by_attribute": "employment_condition" + }, + "Some Employment": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Check Temp Work Change", + "distribution": 0.2 + }, + { + "transition": "Check Full Time Work Change", + "distribution": 0.7 + }, + { + "transition": "Check Otherwise Work Change", + "distribution": 0.1 + } + ] + }, + "Check Full Time Work Change": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Q12", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "160903007", + "display": "Full-time employment (finding)" + } + ] + } + }, + { + "transition": "A11B", + "condition": { + "condition_type": "Attribute", + "attribute": "employment_condition", + "operator": "is nil" + } + }, + { + "transition": "Start Change to Full Time" + } + ] + }, + "Start Change to Full Time": { + "type": "ConditionEnd", + "referenced_by_attribute": "employment_condition", + "direct_transition": "A11B" + }, + "Check Otherwise Work Change": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Q12", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "741062008", + "display": "Not in labor force (finding)" + } + ] + } + }, + { + "transition": "A11D", + "condition": { + "condition_type": "Attribute", + "attribute": "employment_condition", + "operator": "is nil" + } + }, + { + "transition": "Start Change to Not in Labor Force" + } + ] + }, + "Start Change to Not in Labor Force": { + "type": "ConditionEnd", + "direct_transition": "A11D", + "referenced_by_attribute": "employment_condition" + }, + "Check Unemployment Change": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Q12", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "73438004", + "display": "Unemployed (finding)" + } + ] + } + }, + { + "transition": "A11A", + "condition": { + "condition_type": "Attribute", + "attribute": "employment_condition", + "operator": "is nil" + } + }, + { + "transition": "Start Change to Unemployed" + } + ] + }, + "Start Change to Unemployed": { + "type": "ConditionEnd", + "direct_transition": "A11A", + "referenced_by_attribute": "employment_condition" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/encounter/substance_use_screening.json b/src/main/resources/modules/encounter/substance_use_screening.json new file mode 100644 index 0000000..6b57e02 --- /dev/null +++ b/src/main/resources/modules/encounter/substance_use_screening.json @@ -0,0 +1,823 @@ +{ + "name": "substance use screening", + "remarks": [ + "A basic substance use screening module." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Check Eligibility" + }, + "Terminal": { + "type": "Terminal" + }, + "Check Eligibility": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "At Least", + "minimum": 1, + "conditions": [ + { + "condition_type": "Age", + "operator": "<", + "quantity": 12, + "unit": "years", + "value": 0 + }, + { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "opioid_addiction_careplan", + "operator": "is not nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "5602001", + "display": "Opioid abuse (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "7200002", + "display": "Alcoholism (disorder)" + } + ] + } + ] + } + }, + { + "transition": "Substance Use Screening" + } + ] + }, + "Adult": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "AUDIT-C", + "distribution": 0.5 + }, + { + "transition": "DAST-10", + "distribution": 0.5 + } + ] + }, + "Young Adult": { + "type": "Simple", + "direct_transition": "CRAFFT" + }, + "Negative": { + "type": "SetAttribute", + "attribute": "dast_score", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 2, + "low": 0 + } + }, + "direct_transition": "Cancel Drug Use" + }, + "Positive": { + "type": "SetAttribute", + "attribute": "dast_score", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 10, + "low": 3 + } + }, + "direct_transition": "Drug Use" + }, + "Substance Use Screening": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "428211000124100", + "display": "Assessment of substance use (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 15, + "low": 10 + } + }, + "unit": "minutes", + "conditional_transition": [ + { + "transition": "Adult", + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years", + "value": 0 + } + }, + { + "transition": "Young Adult" + } + ] + }, + "CRAFFT": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "868187001", + "display": "Assessment using Car, Relax, Alone, Forget, Friends, Trouble Screening Test (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 10 + } + }, + "unit": "minutes", + "distributed_transition": [ + { + "transition": "Risky Activity", + "distribution": 0.212 + }, + { + "transition": "End Risky Activity", + "distribution": 0.788 + } + ] + }, + "Risky Activity": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "160968000", + "display": "Risk activity involvement (finding)" + } + ], + "direct_transition": "Lecture" + }, + "Lecture": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "370995009", + "display": "Health risks education (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 20, + "low": 5 + } + }, + "unit": "minutes", + "direct_transition": "Terminal", + "reason": "Risky Activity" + }, + "Guidance": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386516004", + "display": "Anticipatory guidance (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 15, + "low": 5 + } + }, + "unit": "minutes", + "direct_transition": "Terminal" + }, + "End Risky Activity": { + "type": "ConditionEnd", + "direct_transition": "Guidance", + "condition_onset": "Risky Activity" + }, + "AUDIT-C": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "763302001", + "display": "Assessment using Alcohol Use Disorders Identification Test - Consumption (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 20 + } + }, + "unit": "minutes", + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 20, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Unhealthy", + "distribution": 0.065 + }, + { + "transition": "Healthy", + "distribution": 0.935 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 25, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Unhealthy", + "distribution": 0.111 + }, + { + "transition": "Healthy", + "distribution": 0.889 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 29, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Unhealthy", + "distribution": 0.096 + }, + { + "transition": "Healthy", + "distribution": 0.904 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 34, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Unhealthy", + "distribution": 0.077 + }, + { + "transition": "Healthy", + "distribution": 0.923 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 44, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Unhealthy", + "distribution": 0.062 + }, + { + "transition": "Healthy", + "distribution": 0.938 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 49, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Unhealthy", + "distribution": 0.055 + }, + { + "transition": "Healthy", + "distribution": 0.945 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 54, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Unhealthy", + "distribution": 0.046 + }, + { + "transition": "Healthy", + "distribution": 0.954 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 59, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Unhealthy", + "distribution": 0.048 + }, + { + "transition": "Healthy", + "distribution": 0.952 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 64, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Unhealthy", + "distribution": 0.044 + }, + { + "transition": "Healthy", + "distribution": 0.956 + } + ] + }, + { + "distributions": [ + { + "transition": "Unhealthy", + "distribution": 0.02 + }, + { + "transition": "Healthy", + "distribution": 0.98 + } + ] + } + ] + }, + "DAST-10": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "713106006", + "display": "Screening for drug abuse (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 20 + } + }, + "unit": "minutes", + "direct_transition": "Check" + }, + "Unhealthy Male": { + "type": "SetAttribute", + "attribute": "auditc_score", + "direct_transition": "Drinking", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 12, + "low": 4 + } + } + }, + "Unhealthy Female": { + "type": "SetAttribute", + "attribute": "auditc_score", + "direct_transition": "Drinking", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 12, + "low": 3 + } + } + }, + "Healthy Male": { + "type": "SetAttribute", + "attribute": "auditc_score", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 3, + "low": 0 + } + }, + "direct_transition": "Cancel Drinking" + }, + "Healthy Female": { + "type": "SetAttribute", + "attribute": "auditc_score", + "direct_transition": "Cancel Drinking", + "distribution": { + "round": true, + "kind": "UNIFORM", + "parameters": { + "high": 2, + "low": 0 + } + } + }, + "Unhealthy": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Unhealthy Female", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "Unhealthy Male" + } + ] + }, + "Healthy": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Healthy Female", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "Healthy Male" + } + ] + }, + "AUDIT-C Results": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "72109-2", + "display": "Alcohol Use Disorder Identification Test - Consumption [AUDIT-C]" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "75626-2", + "display": "Total score [AUDIT-C]" + } + ], + "attribute": "auditc_score" + } + ], + "direct_transition": "Terminal" + }, + "Cancel Drinking": { + "type": "ConditionEnd", + "direct_transition": "AUDIT-C Results", + "condition_onset": "Drinking" + }, + "Drinking": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "10939881000119105", + "display": "Unhealthy alcohol drinking behavior (finding)" + } + ], + "direct_transition": "AUDIT-C Results" + }, + "DAST-10 Results": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "82666-9", + "display": "Drug Abuse Screening Test-10 [DAST-10]" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "82667-7", + "display": "Total score [DAST-10]" + } + ], + "attribute": "dast_score" + } + ], + "direct_transition": "Terminal" + }, + "Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 20, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Positive", + "distribution": 0.07 + }, + { + "distribution": 0.93, + "transition": "Negative" + } + ] + }, + { + "distributions": [ + { + "transition": "Positive", + "distribution": 0.077 + }, + { + "transition": "Negative", + "distribution": 0.923 + } + ], + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 25, + "unit": "years", + "value": 0 + } + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 29, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Positive", + "distribution": 0.061 + }, + { + "transition": "Negative", + "distribution": 0.939 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 34, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Positive", + "distribution": 0.044 + }, + { + "transition": "Negative", + "distribution": 0.956 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 39, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Positive", + "distribution": 0.039 + }, + { + "transition": "Negative", + "distribution": 0.961 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 44, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Positive", + "distribution": 0.023 + }, + { + "transition": "Negative", + "distribution": 0.977 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 49, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Positive", + "distribution": 0.018 + }, + { + "transition": "Negative", + "distribution": 0.982 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 54, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Positive", + "distribution": 0.019 + }, + { + "transition": "Negative", + "distribution": 0.981 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 59, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Positive", + "distribution": 0.013 + }, + { + "transition": "Negative", + "distribution": 0.987 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 64, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Positive", + "distribution": 0.014 + }, + { + "transition": "Negative", + "distribution": 0.986 + } + ] + }, + { + "distributions": [ + { + "transition": "Positive", + "distribution": 0.004 + }, + { + "transition": "Negative", + "distribution": 0.996 + } + ] + } + ] + }, + "Drug Use": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "361055000", + "display": "Misuses drugs (finding)" + } + ], + "direct_transition": "DAST-10 Results" + }, + "Cancel Drug Use": { + "type": "ConditionEnd", + "direct_transition": "DAST-10 Results", + "condition_onset": "Drug Use" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/encounter/vitals.json b/src/main/resources/modules/encounter/vitals.json new file mode 100644 index 0000000..caf9b73 --- /dev/null +++ b/src/main/resources/modules/encounter/vitals.json @@ -0,0 +1,107 @@ +{ + "name": "Record Vitals Signs", + "remarks": [ + "This submodule records height, weight, BMI and BP for the current_encounter" + ], + "states": { + "Initial": { + "type": "Observation", + "category": "vital-signs", + "vital_sign": "Height", + "codes": [ + { + "system": "LOINC", + "code": "8302-2", + "display": "Body Height" + } + ], + "unit": "cm", + "direct_transition": "Record_Weight" + }, + "Record_Weight": { + "type": "Observation", + "category": "vital-signs", + "vital_sign": "Weight", + "codes": [ + { + "system": "LOINC", + "code": "29463-7", + "display": "Body Weight" + } + ], + "unit": "kg", + "conditional_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 2, + "unit": "years" + }, + "remarks": [ + "BMI is not particularly meaningful for children under 2" + ], + "transition": "Record_BP" + }, + { + "transition": "Record_BMI" + } + ] + }, + "Record_BMI": { + "type": "Observation", + "category": "vital-signs", + "vital_sign": "BMI", + "codes": [ + { + "system": "LOINC", + "code": "39156-5", + "display": "Body mass index (BMI) [Ratio]" + } + ], + "unit": "kg/m2", + "direct_transition": "Record_BP" + }, + "Record_BP": { + "type": "MultiObservation", + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "85354-9", + "display": "Blood pressure panel with all children optional" + } + ], + "observations": [ + { + "category": "vital-signs", + "vital_sign": "Systolic Blood Pressure", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic Blood Pressure" + } + ], + "unit": "mm[Hg]" + }, + { + "category": "vital-signs", + "vital_sign": "Diastolic Blood Pressure", + "codes": [ + { + "system": "LOINC", + "code": "8462-4", + "display": "Diastolic Blood Pressure" + } + ], + "unit": "mm[Hg]" + } + ], + "direct_transition": "Vitals_Terminal" + }, + "Vitals_Terminal": { + "type": "Terminal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/epilepsy.json b/src/main/resources/modules/epilepsy.json new file mode 100644 index 0000000..b843b87 --- /dev/null +++ b/src/main/resources/modules/epilepsy.json @@ -0,0 +1,459 @@ +{ + "name": "Epilepsy", + "remarks": [ + "Epilepsy is a neurological disorder marked by sudden recurrent episodes of sensory disturbance, ", + "loss of consciousness, or convulsions, associated with abnormal electrical activity in the brain. ", + "Information on treatment, prevalence, and incidence of specific epilepsy types from the CDC: ", + "https://www.cdc.gov/epilepsy/basics/fast-facts.htm" + ], + "states": { + "Initial": { + "type": "Initial", + "distributed_transition": [ + { + "distribution": 0.023, + "transition": "Ages_0_1" + }, + { + "distribution": 0.0192, + "transition": "Ages_1_10" + }, + { + "distribution": 0.0194, + "transition": "Ages_10_15" + }, + { + "distribution": 0.0192, + "transition": "Ages_15_55" + }, + { + "distribution": 0.0192, + "transition": "Ages_55_Plus" + }, + { + "distribution": 0.9, + "transition": "Terminal" + } + ] + }, + "Ages_0_1": { + "type": "Delay", + "remarks": [ + "Age ranges taken from an interview with Dr. Friedman, NYU Langone" + ], + "range": { + "low": 0, + "high": 1, + "unit": "years" + }, + "direct_transition": "Suspected_Epilepsy" + }, + "Ages_1_10": { + "type": "Delay", + "remarks": [ + "Age ranges taken from an interview with Dr. Friedman, NYU Langone" + ], + "range": { + "low": 1, + "high": 10, + "unit": "years" + }, + "direct_transition": "Suspected_Epilepsy" + }, + "Ages_10_15": { + "type": "Delay", + "remarks": [ + "Age ranges taken from an interview with Dr. Friedman, NYU Langone" + ], + "range": { + "low": 10, + "high": 15, + "unit": "years" + }, + "direct_transition": "Suspected_Epilepsy" + }, + "Ages_15_55": { + "type": "Delay", + "remarks": [ + "Age ranges taken from an interview with Dr. Friedman, NYU Langone" + ], + "range": { + "low": 15, + "high": 55, + "unit": "years" + }, + "direct_transition": "Suspected_Epilepsy" + }, + "Ages_55_Plus": { + "type": "Delay", + "remarks": [ + "Age ranges taken from an interview with Dr. Friedman, NYU Langone" + ], + "range": { + "low": 55, + "high": 90, + "unit": "years" + }, + "direct_transition": "Suspected_Epilepsy" + }, + "Suspected_Epilepsy": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "transition": "Male" + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "transition": "Female" + } + ] + }, + "Male": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.55, + "transition": "Seizure_Disorder" + }, + { + "distribution": 0.45, + "transition": "Terminal" + } + ], + "remarks": [ + "" + ] + }, + "Female": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.45, + "transition": "Seizure_Disorder" + }, + { + "distribution": 0.55, + "transition": "Terminal" + } + ], + "remarks": [ + "Figures derived from interview with Dr. Friedman, NYU Langone Medical Center." + ] + }, + "Seizure_Disorder": { + "type": "ConditionOnset", + "target_encounter": "Seizure_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "128613002", + "display": "Seizure disorder (disorder)" + } + ], + "direct_transition": "Seizure_Encounter", + "assign_to_attribute": "seizure" + }, + "Seizure_Encounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "seizure", + "remarks": [ + "Patients start being diagnosed with seizure disorder when they have a seizure." + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "History_of_Seizure" + }, + "History_of_Seizure": { + "type": "ConditionOnset", + "target_encounter": "Seizure_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1290882004", + "display": "History of seizure (situation)" + } + ], + "direct_transition": "EEG_Test" + }, + "EEG_Test": { + "type": "Procedure", + "duration": { + "low": 60, + "high": 180, + "unit": "minutes" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "54550000", + "display": "Electroencephalogram (procedure)" + } + ], + "complex_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Epilepsy" + }, + "transition": "Living_with_Seizures" + }, + { + "distributions": [ + { + "distribution": 0.4, + "transition": "Epilepsy" + }, + { + "distribution": 0.6, + "transition": "Living_with_Seizures" + } + ] + } + ], + "remarks": [ + "For patients who have already been diagnosed with Epilepsy, the diagnosis is not re-issued. Those patients go back to living with seizures." + ] + }, + "Epilepsy": { + "type": "ConditionOnset", + "target_encounter": "Seizure_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "84757009", + "display": "Epilepsy (disorder)" + } + ], + "distributed_transition": [ + { + "distribution": 0.33, + "transition": "Carbamazepine" + }, + { + "distribution": 0.33, + "transition": "Diazepam" + }, + { + "distribution": 0.34, + "transition": "Clonazepam" + } + ] + }, + "Living_with_Seizures": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.33, + "transition": "Carbamazepine" + }, + { + "distribution": 0.33, + "transition": "Diazepam" + }, + { + "distribution": 0.34, + "transition": "Clonazepam" + } + ] + }, + "Carbamazepine": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "308971", + "display": "carbamazepine 20 MG/ML Oral Suspension [Tegretol]" + } + ], + "assign_to_attribute": "seizure_meds", + "conditional_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "End_Seizure_Encounter" + }, + "transition": "End_Medicine_Encounter" + }, + { + "transition": "End_Seizure_Encounter" + } + ], + "reason": "Seizure_Disorder" + }, + "Diazepam": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "197591", + "display": "Diazepam 5 MG Oral Tablet" + } + ], + "assign_to_attribute": "seizure_meds", + "conditional_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "End_Seizure_Encounter" + }, + "transition": "End_Medicine_Encounter" + }, + { + "transition": "End_Seizure_Encounter" + } + ], + "reason": "Seizure_Disorder" + }, + "Clonazepam": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "204892", + "display": "clonazePAM 0.25 MG Oral Tablet" + } + ], + "assign_to_attribute": "seizure_meds", + "conditional_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "End_Seizure_Encounter" + }, + "transition": "End_Medicine_Encounter" + }, + { + "transition": "End_Seizure_Encounter" + } + ], + "reason": "Seizure_Disorder" + }, + "End_Seizure_Encounter": { + "type": "EncounterEnd", + "discharge_disposition": { + "system": "NUBC", + "code": "01", + "display": "Discharged to home care or self care (routine discharge)" + }, + "direct_transition": "Undergoing_Seizure_Treatment" + }, + "Undergoing_Seizure_Treatment": { + "type": "Delay", + "remarks": [ + "Patients manage their epilepsy or seizures with meds on an ongoing basis." + ], + "range": { + "low": 4, + "high": 26, + "unit": "weeks" + }, + "distributed_transition": [ + { + "distribution": 0.2, + "transition": "Seizure_Encounter" + }, + { + "distribution": 0.1, + "transition": "Sudden_Cardiac_Death" + }, + { + "distribution": 0.7, + "transition": "Medication_Guard" + } + ] + }, + "Medication_Guard": { + "type": "Delay", + "remarks": [ + "Wait a few weeks and then keep taking meds (after refill), change, or discontinue them." + ], + "range": { + "low": 4, + "high": 12, + "unit": "weeks" + }, + "direct_transition": "Medication_End" + }, + "Medication_End": { + "type": "MedicationEnd", + "referenced_by_attribute": "seizure_meds", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Medicine_Encounter" + }, + { + "distribution": 0.3, + "transition": "Terminal" + } + ], + "remarks": [ + "Patients who are living with seizures either keep taking meds or go into remission. Their diagnoses doesn't disappear in remission." + ] + }, + "Medicine_Encounter": { + "type": "Encounter", + "wellness": true, + "reason": "seizure", + "remarks": [ + "Patients start with medication prescription or follow-up." + ], + "distributed_transition": [ + { + "distribution": 0.33, + "transition": "Carbamazepine" + }, + { + "distribution": 0.33, + "transition": "Diazepam" + }, + { + "distribution": 0.34, + "transition": "Clonazepam" + } + ] + }, + "End_Medicine_Encounter": { + "type": "EncounterEnd", + "discharge_disposition": { + "system": "NUBC", + "code": "01", + "display": "Discharged to home care or self care (routine discharge)" + }, + "direct_transition": "Undergoing_Seizure_Treatment" + }, + "Sudden_Cardiac_Death": { + "type": "Death", + "range": { + "low": 12, + "high": 52, + "unit": "weeks" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "95281009", + "display": "Sudden cardiac death (disorder)" + } + ], + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/essential_primary_hypertension.json b/src/main/resources/modules/essential_primary_hypertension.json new file mode 100644 index 0000000..08eae2e --- /dev/null +++ b/src/main/resources/modules/essential_primary_hypertension.json @@ -0,0 +1,284 @@ +{ + "name": "Essential (Primary) Hypertension", + "remarks": [ + "Essential (primary) hypertension is high blood pressure with no identifiable cause.", + "It is a major risk factor for cardiovascular disease, stroke, and kidney disease.", + "Information on prevalence, symptoms, diagnosis, and treatment obtained from:", + "https://www.cdc.gov/bloodpressure/facts.htm", + "https://www.nhlbi.nih.gov/health-topics/high-blood-pressure", + "https://www.mayoclinic.org/diseases-conditions/high-blood-pressure/diagnosis-treatment/drc-20373417" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " PREVALENCE ", + "======================================================================", + "Hypertension affects about 47% of adults in the United States.", + "Prevalence increases with age, affecting about 64% of those aged 65 and older.", + "It is more common in men than women, and more prevalent in non-Hispanic Black adults." + ], + "direct_transition": "Hypertension_Onset" + }, + "Hypertension_Onset": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.47, + "transition": "Hypertension_Condition" + }, + { + "distribution": 0.53, + "transition": "Terminal" + } + ] + }, + "Hypertension_Condition": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "assign_to_attribute": "hypertension", + "codes": [ + { + "system": "SNOMED-CT", + "code": "59621000", + "display": "Essential hypertension (disorder)" + }, + { + "system": "ICD-10", + "code": "I10", + "display": "Essential (primary) hypertension" + } + ], + "direct_transition": "Diagnosis_Encounter" + }, + "Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Hypertension_Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "BP_Measurement" + }, + "BP_Measurement": { + "type": "Observation", + "category": "vital-signs", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic blood pressure" + } + ], + "range": { + "low": 140, + "high": 180 + }, + "direct_transition": "Confirm_Hypertension" + }, + "Confirm_Hypertension": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Observation", + "operator": ">=", + "value": 140 + }, + "transition": "Lifestyle_Modifications" + }, + { + "transition": "End_Encounter" + } + ] + }, + "Lifestyle_Modifications": { + "type": "CarePlanStart", + "assign_to_attribute": "hypertension_careplan", + "reason": "Hypertension_Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "668211000000105", + "display": "Hypertension care plan (record artifact)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "226234005", + "display": "Healthy diet (finding)" + }, + { + "system": "SNOMED-CT", + "code": "229065009", + "display": "Exercise therapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "226060000", + "display": "Stress management (regime/therapy)" + } + ], + "direct_transition": "Patient_Education" + }, + "Patient_Education": { + "type": "Procedure", + "reason": "Hypertension_Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "61505006", + "display": "Patient education about their disease (procedure)" + } + ], + "direct_transition": "End_Encounter" + }, + "End_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Followup_Delay" + }, + "Followup_Delay": { + "type": "Delay", + "range": { + "low": 3, + "high": 6, + "unit": "months" + }, + "direct_transition": "Followup_Encounter" + }, + "Followup_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Hypertension_Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "BP_Recheck" + }, + "BP_Recheck": { + "type": "Observation", + "category": "vital-signs", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic blood pressure" + } + ], + "range": { + "low": 140, + "high": 180 + }, + "direct_transition": "Hypertension_Treatment" + }, + "Hypertension_Treatment": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Observation", + "operator": ">=", + "value": 140 + }, + "transition": "Medication_Treatment" + }, + { + "transition": "End_Followup_Encounter" + } + ] + }, + "Medication_Treatment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.4, + "transition": "ACE_Inhibitor" + }, + { + "distribution": 0.3, + "transition": "ARB" + }, + { + "distribution": 0.2, + "transition": "Calcium_Channel_Blocker" + }, + { + "distribution": 0.1, + "transition": "Thiazide_Diuretic" + } + ] + }, + "ACE_Inhibitor": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_inhibitor", + "reason": "Hypertension_Condition", + "codes": [ + { + "system": "RxNorm", + "code": "1299896", + "display": "Lisinopril 10 MG Oral Tablet" + } + ], + "direct_transition": "End_Followup_Encounter" + }, + "ARB": { + "type": "MedicationOrder", + "assign_to_attribute": "arb", + "reason": "Hypertension_Condition", + "codes": [ + { + "system": "RxNorm", + "code": "321064", + "display": "Losartan 50 MG Oral Tablet" + } + ], + "direct_transition": "End_Followup_Encounter" + }, + "Calcium_Channel_Blocker": { + "type": "MedicationOrder", + "assign_to_attribute": "ccb", + "reason": "Hypertension_Condition", + "codes": [ + { + "system": "RxNorm", + "code": "197361", + "display": "Amlodipine 5 MG Oral Tablet" + } + ], + "direct_transition": "End_Followup_Encounter" + }, + "Thiazide_Diuretic": { + "type": "MedicationOrder", + "assign_to_attribute": "diuretic", + "reason": "Hypertension_Condition", + "codes": [ + { + "system": "RxNorm", + "code": "197730", + "display": "Hydrochlorothiazide 25 MG Oral Tablet" + } + ], + "direct_transition": "End_Followup_Encounter" + }, + "End_Followup_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Followup_Delay" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 2 +} diff --git a/src/main/resources/modules/female_reproduction.json b/src/main/resources/modules/female_reproduction.json new file mode 100644 index 0000000..22d6fac --- /dev/null +++ b/src/main/resources/modules/female_reproduction.json @@ -0,0 +1,361 @@ +{ + "name": "Female Reproduction", + "remarks": [ + "This module models female reproduction from birth to death. Once females ", + "reach reproductive age, this module operates on a monthly cycle. Each month, ", + "a sexually active female has a non-zero chance of becoming pregnant. This ", + "chance is greatly reduced by taking a contraceptive.", + "If a female becomes pregnant, the monthly cycles are suspended until the ", + "pregnancy terminates. The monthly reproductive cycles permanently end once ", + "a female reaches menopause at age 50.", + "This module of course operates on several assumptions: ", + "1. All females have regular, monthly reproductive cycles (some don't) ", + "2. All females reach menopause at age 50 " + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "transition": "Delay_For_Reproductive_Age" + }, + { + "transition": "Terminal" + } + ] + }, + "Delay_For_Reproductive_Age": { + "type": "Delay", + "exact": { + "quantity": 14, + "unit": "years" + }, + "direct_transition": "Female_Reproductive_Cycle" + }, + "Female_Reproductive_Cycle": { + "type": "Delay", + "remarks": [ + "Adults have a cycle of 21 - 35 days (avg. 28). Source: ", + "https://www.womenshealth.gov/a-z-topics/menstruation-and-menstrual-cycle" + ], + "range": { + "low": 21, + "high": 35, + "unit": "days" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": ">", + "quantity": 50, + "unit": "years" + }, + "transition": "Menopause_Reached" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + "transition": "Pregnancy_Guard" + }, + { + "transition": "Reproductive_Cycle_Outcome" + } + ] + }, + "Menopause_Reached": { + "type": "Simple", + "remarks": [ + "This state just exists to make the graph look nicer. Once menopause is ", + "reached, head to Terminal." + ], + "direct_transition": "Terminal" + }, + "Pregnancy_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": false + }, + "direct_transition": "Female_Reproductive_Cycle" + }, + "Reproductive_Cycle_Outcome": { + "type": "Simple", + "remarks": [ + "======================================================================", + " REPRODUCTIVE CYCLE OUTCOMES ", + "======================================================================", + "This is where the magic happens. If females are sexually active, there is ", + "a non-zero chance of becoming pregnant. The 'sexually_active' attribute is ", + "set by the 'sexual_activity' module." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "infertile", + "operator": "==", + "value": true + }, + "transition": "Terminal" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "sexually_active", + "operator": "==", + "value": true + }, + "transition": "Sexually_Active" + }, + { + "transition": "Not_Sexually_Active" + } + ] + }, + "Sexually_Active": { + "type": "Simple", + "direct_transition": "Contraceptive_Incidence" + }, + "Contraceptive_Incidence": { + "type": "Simple", + "remarks": [ + "======================================================================", + " CONTACEPTIVE INCIDENCE ", + "======================================================================", + "Effectiveness of different contraceptive types. The following percentages ", + "indicate the number out of 100 women who experience planned or unplanned ", + "pregnancy within the first year of use. These percentages are scaled for ", + "a monthly time step: ", + "| Method | Annual Chance of Pregnancy | Monthly Chance of Pregnancy | ", + "|----------------|----------------------------|-----------------------------| ", + "| none | 85% | 19.3% | ", + "| withdrawal | 22% | 2.05% | ", + "| condom | 18% | 1.640% | ", + "| pill | 9% | 0.692% | ", + "| patch | 9% | 0.692% | ", + "| ring | 9% | 0.692% | ", + "| injectable | 6% | 0.514% | ", + "| IUD | 0.2 - 0.8% | 0.0167 - 0.0669% | ", + "| sterilization | 0.15 - 0.5% | 0.0125 - 0.0418% | ", + "| implant | 0.05% | 0.00417% | ", + "'---------------------------------------------------------------------------' ", + "Source: https://www.cdc.gov/reproductivehealth/unintendedpregnancy/pdf/contraceptive_methods_508.pdf" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "==", + "value": "none" + }, + "distributions": [ + { + "distribution": 0.193, + "transition": "Become_Pregnant" + }, + { + "distribution": 0.807, + "transition": "Next_Reproductive_Cycle" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "==", + "value": "withdrawal" + }, + "distributions": [ + { + "distribution": 0.0205, + "transition": "Become_Pregnant" + }, + { + "distribution": 0.9795, + "transition": "Next_Reproductive_Cycle" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "==", + "value": "condom" + }, + "distributions": [ + { + "distribution": 0.0164, + "transition": "Become_Pregnant" + }, + { + "distribution": 0.9836, + "transition": "Next_Reproductive_Cycle" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "==", + "value": "pill" + }, + "distributions": [ + { + "distribution": 0.00692, + "transition": "Become_Pregnant" + }, + { + "distribution": 0.99318, + "transition": "Next_Reproductive_Cycle" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "==", + "value": "patch" + }, + "distributions": [ + { + "distribution": 0.00692, + "transition": "Become_Pregnant" + }, + { + "distribution": 0.99318, + "transition": "Next_Reproductive_Cycle" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "==", + "value": "ring" + }, + "distributions": [ + { + "distribution": 0.00692, + "transition": "Become_Pregnant" + }, + { + "distribution": 0.99318, + "transition": "Next_Reproductive_Cycle" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "==", + "value": "injectable" + }, + "distributions": [ + { + "distribution": 0.00514, + "transition": "Become_Pregnant" + }, + { + "distribution": 0.99486, + "transition": "Next_Reproductive_Cycle" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "==", + "value": "iud" + }, + "distributions": [ + { + "distribution": 0.00342, + "transition": "Become_Pregnant" + }, + { + "distribution": 0.99658, + "transition": "Next_Reproductive_Cycle" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "==", + "value": "sterilization" + }, + "distributions": [ + { + "distribution": 0.00271, + "transition": "Become_Pregnant" + }, + { + "distribution": 0.99729, + "transition": "Next_Reproductive_Cycle" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "contraceptive_type", + "operator": "==", + "value": "implant" + }, + "distributions": [ + { + "distribution": 0.000417, + "transition": "Become_Pregnant" + }, + { + "distribution": 0.999583, + "transition": "Next_Reproductive_Cycle" + } + ] + } + ] + }, + "Not_Sexually_Active": { + "type": "Simple", + "direct_transition": "Next_Reproductive_Cycle" + }, + "Become_Pregnant": { + "type": "SetAttribute", + "remarks": [ + "When true, the 'pregnant' attribute triggers the start of a cycle in ", + "the Pregnancy module." + ], + "attribute": "pregnant", + "value": true, + "direct_transition": "Pregnancy_Guard" + }, + "Next_Reproductive_Cycle": { + "type": "Simple", + "direct_transition": "Female_Reproductive_Cycle" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/fibromyalgia.json b/src/main/resources/modules/fibromyalgia.json new file mode 100644 index 0000000..b16e1eb --- /dev/null +++ b/src/main/resources/modules/fibromyalgia.json @@ -0,0 +1,404 @@ +{ + "name": "Fibromyalgia", + "remarks": [ + "Fibromyalgia is a disorder of the central nervous system causing widespread chronic pain. It ", + "is categorized as a type of arthritis and is 7x more likely in women than in men. The chronic ", + "pain of fibromyalgia is sometimes treated with opioids if it's particularly severe.", + "Fibromyalgia wasn't officially recognized as a disease until 1987 by the AMA. Specialized drugs ", + "to treat fibromyalgia (Lyrica, Cymbalta, Savella) didn't become available until the mid 2000's.", + "Information on treatment, prevalence, and incidence of specific arthritis types from the CDC: ", + "http://www.cdc.gov/arthritis/basics/types.html", + "Overall prevalence of arthritis: ", + "http://www.cdc.gov/arthritis/data_statistics/national-statistics.html" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + " | Arthritis Type | Prevalence | Ratio F:M | ", + " ------------------------------------------- ", + " | Fibromyalgia | 0.01670 | 7:1 | ", + " ------------------------------------------- " + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "distribution": 0.0020875, + "transition": "Delay_Until_Fibromyalgia" + }, + { + "distribution": 0.9989125, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "distribution": 0.0146125, + "transition": "Delay_Until_Fibromyalgia" + }, + { + "distribution": 0.9853875, + "transition": "Terminal" + } + ] + } + ] + }, + "Delay_Until_Fibromyalgia": { + "type": "Delay", + "range": { + "low": 25, + "high": 80, + "unit": "years" + }, + "direct_transition": "Fibromyalgia_Guard" + }, + "Fibromyalgia_Guard": { + "type": "Guard", + "remarks": [ + "Fibromyalgia wasn't recognized as a disease by the AMA until 1987. It's ", + "diagnosis is still somewhat controversial." + ], + "allow": { + "condition_type": "Date", + "operator": ">=", + "year": 1987 + }, + "direct_transition": "Fibromyalgia" + }, + "Fibromyalgia": { + "type": "ConditionOnset", + "remarks": [ + "======================================================================", + " FIBROMYALGIA ", + "======================================================================", + "Source: http://www.cdc.gov/arthritis/basics/fibromyalgia.htm", + "People with fibromyalgia have at least one hospitalization every 3 years.", + "5.5M ambulatory care visits every year." + ], + "target_encounter": "Fibromyalgia_Diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "95417003", + "display": "Primary fibromyalgia syndrome (disorder)" + } + ], + "direct_transition": "Fibromyalgia_Diagnosis" + }, + "Fibromyalgia_Diagnosis": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Fibromyalgia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Fibromyalgia_Symptom1" + }, + "Fibromyalgia_Symptom1": { + "type": "Symptom", + "symptom": "Muscle Pain", + "range": { + "low": 25, + "high": 100 + }, + "direct_transition": "Fibromyalgia_Symptom2" + }, + "Fibromyalgia_Symptom2": { + "type": "Symptom", + "symptom": "Muscle Tenderness", + "range": { + "low": 25, + "high": 100 + }, + "direct_transition": "Fibromyalgia_Symptom3" + }, + "Fibromyalgia_Symptom3": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Fibromyalgia_Symptom4" + }, + "Fibromyalgia_Symptom4": { + "type": "Symptom", + "symptom": "Sleep Disturbances", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Fibromyalgia_Symptom5" + }, + "Fibromyalgia_Symptom5": { + "type": "Symptom", + "symptom": "Cognitive Difficulties", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Fibromyalgia_Symptom6" + }, + "Fibromyalgia_Symptom6": { + "type": "Symptom", + "symptom": "Stiffness", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Fibromyalgia_CarePlan" + }, + "Fibromyalgia_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "fibromyalgia_careplan", + "reason": "Fibromyalgia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "408869004", + "display": "Musculoskeletal care (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "386294003", + "display": "Joint mobility exercises (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "226060000", + "display": "Stress management (procedure)" + } + ], + "direct_transition": "Pain_Vital" + }, + "Strong_NSAID": { + "type": "MedicationOrder", + "reason": "Fibromyalgia", + "remarks": [ + "A stronger NSAID pain reliever than the basic Aleve." + ], + "codes": [ + { + "system": "RxNorm", + "code": "198014", + "display": "Naproxen 500 MG Oral Tablet" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Delay_Until_Fibromyalgia_Episode" + }, + "Delay_Until_Fibromyalgia_Episode": { + "type": "Delay", + "range": { + "low": 2, + "high": 4, + "unit": "years" + }, + "direct_transition": "Fibromyalgia_Episode" + }, + "Fibromyalgia_Episode": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "Fibromyalgia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32485007", + "display": "Hospital admission (procedure)" + } + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 2008 + }, + "distributions": [ + { + "distribution": 0.4, + "transition": "Prescribe_Lyrica" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Cymbalta" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Savella" + } + ] + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Date", + "operator": ">=", + "year": 1990 + }, + { + "condition_type": "Attribute", + "attribute": "opioid_prescription", + "operator": "is nil" + } + ] + }, + "distributions": [ + { + "distribution": 0.2, + "transition": "Prescribe_Opioid", + "remarks": [ + "Opioids are prescribed in the especially painful cases. Otherwise ", + "all the patient can do is manage his or her pain." + ] + }, + { + "distribution": 0.8, + "transition": "End_Episode_Encounter" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "End_Episode_Encounter" + } + ] + } + ] + }, + "Prescribe_Lyrica": { + "type": "MedicationOrder", + "assign_to_attribute": "fibromyalgia_prescription", + "reason": "Fibromyalgia", + "codes": [ + { + "system": "RxNorm", + "code": "483438", + "display": "pregabalin 100 MG Oral Capsule" + } + ], + "direct_transition": "End_Episode_Encounter" + }, + "Prescribe_Cymbalta": { + "type": "MedicationOrder", + "assign_to_attribute": "fibromyalgia_prescription", + "reason": "Fibromyalgia", + "codes": [ + { + "system": "RxNorm", + "code": "596926", + "display": "duloxetine 20 MG Delayed Release Oral Capsule" + } + ], + "direct_transition": "End_Episode_Encounter" + }, + "Prescribe_Savella": { + "type": "MedicationOrder", + "assign_to_attribute": "fibromyalgia_prescription", + "reason": "Fibromyalgia", + "codes": [ + { + "system": "RxNorm", + "code": "833135", + "display": "Milnacipran hydrochloride 100 MG Oral Tablet" + } + ], + "direct_transition": "End_Episode_Encounter" + }, + "Prescribe_Opioid": { + "type": "MedicationOrder", + "assign_to_attribute": "opioid_prescription", + "reason": "Fibromyalgia", + "remarks": [ + "This medication is managed/ended by the opioid_addiction module." + ], + "codes": [ + { + "system": "RxNorm", + "code": "1049635", + "display": "Acetaminophen 325 MG / oxyCODONE Hydrochloride 2.5 MG Oral Tablet" + } + ], + "direct_transition": "End_Episode_Encounter" + }, + "End_Episode_Encounter": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "fibromyalgia_prescription", + "operator": "is not nil" + }, + "transition": "Take_Prescription" + }, + { + "transition": "Delay_Until_Fibromyalgia_Episode" + } + ] + }, + "Take_Prescription": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "direct_transition": "End_Fibromyalgia_Prescription" + }, + "End_Fibromyalgia_Prescription": { + "type": "MedicationEnd", + "referenced_by_attribute": "fibromyalgia_prescription", + "direct_transition": "Delay_Until_Fibromyalgia_Episode" + }, + "Terminal": { + "type": "Terminal" + }, + "Pain_Vital": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported" + } + ], + "range": { + "decimals": 0, + "low": 5, + "high": 10 + }, + "direct_transition": "Strong_NSAID" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/food_allergies.json b/src/main/resources/modules/food_allergies.json new file mode 100644 index 0000000..cdd5e12 --- /dev/null +++ b/src/main/resources/modules/food_allergies.json @@ -0,0 +1,286 @@ +{ + "name": "Food Allergies", + "remarks": [ + "This module manages the progression of food allergies in a patient's lifetime.", + "Food allergies are onset by the 'allergies.json' module." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Delay_For_Allergic_Reaction_To_Food" + }, + "Delay_For_Allergic_Reaction_To_Food": { + "type": "Delay", + "remarks": [ + "Those children with food allergies will have an allergic reaction ", + "within their first 2 years of life. That's how the food allergy gets ", + "discovered and diagnosed." + ], + "range": { + "low": 6, + "high": 18, + "unit": "months" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "food_allergy", + "operator": "is not nil" + }, + "transition": "Allergic_Reaction_To_Food" + }, + { + "transition": "Terminal" + } + ] + }, + "Allergic_Reaction_To_Food": { + "type": "Simple", + "complex_transition": [ + { + "remarks": [ + "Those who are atopic AND have a food allergy have a higher chance ", + "of having a severe allergic reaction." + ], + "condition": { + "condition_type": "Attribute", + "attribute": "atopic", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 0.6, + "transition": "Moderate_Reaction_To_Food" + }, + { + "distribution": 0.4, + "transition": "Severe_Reaction_To_Food" + } + ] + }, + { + "remarks": [ + "Those who are not atopic but have a food allergy are less ", + "likely to have a severe allergic reaction." + ], + "distributions": [ + { + "distribution": 0.8, + "transition": "Moderate_Reaction_To_Food" + }, + { + "distribution": 0.2, + "transition": "Severe_Reaction_To_Food" + } + ] + } + ] + }, + "Moderate_Reaction_To_Food": { + "type": "Simple", + "remarks": [ + "A moderate reaction to food prompts a visit to the PCP and a referral ", + "to an allergist." + ], + "direct_transition": "Delay_For_PCP_Visit" + }, + "Severe_Reaction_To_Food": { + "type": "CallSubmodule", + "remarks": [ + "A severe reaction to food prompts an ED visit, followed by a follow-up ", + "at the PCP, then a referral to an allergist." + ], + "submodule": "allergies/severe_allergic_reaction", + "direct_transition": "Delay_For_PCP_Visit" + }, + "Delay_For_PCP_Visit": { + "type": "Delay", + "remarks": [ + "Following a moderate or severe allergic reaction, a PCP visit probably ", + "happens same day or next day." + ], + "range": { + "low": 0, + "high": 1, + "unit": "days" + }, + "direct_transition": "PCP_Visit_For_Food_Allergy" + }, + "PCP_Visit_For_Food_Allergy": { + "type": "Encounter", + "remarks": [ + "The PCP will refer the patient to an allergist to run tests and make ", + "an official diagnosis. However, they will recommend that potential ", + "food allergens be avoided until the test results confirm what the allergy ", + "is." + ], + "encounter_class": "ambulatory", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "food_allergy_careplan", + "operator": "is nil" + }, + "transition": "Food_Allergy_CarePlan" + }, + { + "transition": "End_PCP_Visit_For_Food_Allergy" + } + ], + "reason": "food_allergy" + }, + "Food_Allergy_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "food_allergy_careplan", + "remarks": [ + "Allergy maintenance is all about self care." + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "384758001", + "display": "Self-care interventions (procedure)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "409002", + "display": "Food allergy diet (finding)" + }, + { + "system": "SNOMED-CT", + "code": "58332002", + "display": "Allergy education (procedure)" + } + ], + "direct_transition": "Advise_To_Visit_Allergist" + }, + "Advise_To_Visit_Allergist": { + "type": "SetAttribute", + "attribute": "visit_allergist", + "value": true, + "direct_transition": "End_PCP_Visit_For_Food_Allergy" + }, + "End_PCP_Visit_For_Food_Allergy": { + "type": "EncounterEnd", + "remarks": [ + "If the patient has already seen an allergist and this is just another ", + "incident of a reaction to food, don't refer them to the allergist again." + ], + "direct_transition": "Living_With_Food_Allergies" + }, + "Living_With_Food_Allergies": { + "type": "Delay", + "range": { + "low": 12, + "high": 24, + "unit": "months" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">", + "quantity": 16, + "unit": "years" + }, + { + "condition_type": "Attribute", + "attribute": "outgrew_food_allergies", + "operator": "is nil" + } + ] + }, + "transition": "Potential_To_Outgrow_Allergies" + }, + { + "transition": "Potential_Allergic_Reaction_To_Food" + } + ] + }, + "Potential_To_Outgrow_Allergies": { + "type": "CallSubmodule", + "remarks": [ + "Sensisitivity to milk, egg, soy, and wheat is the easiest to overcome.", + "However, peanut, treenut, fish, and shellfish allergies persist through ", + "adulthood. This logic is handled by a submodule." + ], + "submodule": "allergies/outgrow_food_allergies", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "outgrew_food_allergies", + "operator": "==", + "value": "true" + }, + "transition": "Terminal" + }, + { + "transition": "Potential_Allergic_Reaction_To_Food" + } + ] + }, + "Potential_Allergic_Reaction_To_Food": { + "type": "Simple", + "remarks": [ + "Children with food allergies typically show sensitivity at a young age.", + "Many will end up outgrowing their food allergies by adolesence or adulthood.", + "About 200,000 ED visits each year for a food allergy:", + "https://www.foodallergy.org/file/facts-stats.pdf", + "Most likely to have an allergic reaction requiring medical attention are ", + "children and young adults." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 20, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.1, + "transition": "Allergic_Reaction_To_Food" + }, + { + "distribution": 0.9, + "transition": "Living_With_Food_Allergies" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.02, + "transition": "Allergic_Reaction_To_Food" + }, + { + "distribution": 0.98, + "transition": "Living_With_Food_Allergies" + } + ] + } + ] + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/gallstones.json b/src/main/resources/modules/gallstones.json new file mode 100644 index 0000000..06a4acf --- /dev/null +++ b/src/main/resources/modules/gallstones.json @@ -0,0 +1,1391 @@ +{ + "name": "Gallstones", + "remarks": [ + "Gallstones are stones formed within the gallbladder (or common bile duct) due to an imbalance in the chemical composition of bile. They can lead to inflammation and other issues with the gall bladder, the main bile duct, and the pancreas. This model considers the most common process for surgical intervention for gallstones (due to a sudden onset of acute cholecystitis).", + "", + "Known model limitations:", + "- This model assumes that all cholecystectomies are due to cholecystitis, which is not necessarily true. Many cholecystectomies are performed due to chronic cholelithiasis. Prevalence data for cholelithiasis versus cholecystitis has not been found in scientific literature.", + "- Other related disorders (e.g., acute cholangitis, pancreatitis, choledocholithiasis, gall bladder cancer, etc.) are not included.", + "- Subsequent or otherwise related procedures (e.g., ERCP) are not included.", + "- BMI is a known risk factor for gallstones but is not included due to a lack of published articles with gallstone prevalence distribution by BMI" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Female", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "Male", + "condition": { + "condition_type": "Gender", + "gender": "M" + } + }, + { + "transition": "Terminal" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Female": { + "type": "Simple", + "remarks": [ + "North American Indians have the highest reported rates of cholelithiasis, afflicting 64.1% of women and 29.5% of men. White Americans have an overall prevalence of 16.6% in women and 8.6% in men. Intermediate prevalence rates occur in Asian populations and Black Americans (13.9% of women; 5.3% of men)", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3343155/", + "The age-adjusted prevalence of gallstone disease (gallstones + cholecystectomy) among Mexican American men (7.2%) was 1.7 times that of Cuban American men and 1.8 times that of Puerto Rican men. The prevalence for Mexican American women (23.2%) was 1.5 times that of Cuban American women and 1.7 times that of Puerto Rican women.", + "https://www.ncbi.nlm.nih.gov/pubmed/2642879" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Race", + "race": "Native" + }, + "distributions": [ + { + "transition": "Female_Gallstone_Formation", + "distribution": 0.641 + }, + { + "transition": "Terminal", + "distribution": 0.359 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "White" + }, + "distributions": [ + { + "transition": "Female_Gallstone_Formation", + "distribution": 0.166 + }, + { + "transition": "Terminal", + "distribution": 0.834 + } + ] + }, + { + "distributions": [ + { + "transition": "Female_Gallstone_Formation", + "distribution": 0.139 + }, + { + "transition": "Terminal", + "distribution": 0.861 + } + ], + "condition": { + "condition_type": "Race", + "race": "Black" + } + }, + { + "condition": { + "condition_type": "Race", + "race": "Asian" + }, + "distributions": [ + { + "transition": "Female_Gallstone_Formation", + "distribution": 0.139 + }, + { + "transition": "Terminal", + "distribution": 0.861 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Hispanic" + }, + "distributions": [ + { + "transition": "Female_Gallstone_Formation", + "distribution": 0.232 + }, + { + "transition": "Terminal", + "distribution": 0.768 + } + ] + } + ] + }, + "Male": { + "type": "Simple", + "remarks": [ + "North American Indians have the highest reported rates of cholelithiasis, afflicting 64.1% of women and 29.5% of men. White Americans have an overall prevalence of 16.6% in women and 8.6% in men. Intermediate prevalence rates occur in Asian populations and Black Americans (13.9% of women; 5.3% of men)", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3343155/", + "The age-adjusted prevalence of gallstone disease (gallstones + cholecystectomy) among Mexican American men (7.2%) was 1.7 times that of Cuban American men and 1.8 times that of Puerto Rican men. The prevalence for Mexican American women (23.2%) was 1.5 times that of Cuban American women and 1.7 times that of Puerto Rican women.", + "https://www.ncbi.nlm.nih.gov/pubmed/2642879" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Race", + "race": "Native" + }, + "distributions": [ + { + "transition": "Male_Gallstone_Formation", + "distribution": 0.295 + }, + { + "transition": "Terminal", + "distribution": 0.705 + } + ] + }, + { + "distributions": [ + { + "transition": "Male_Gallstone_Formation", + "distribution": 0.0866 + }, + { + "transition": "Terminal", + "distribution": 0.9134 + } + ], + "condition": { + "condition_type": "Race", + "race": "White" + } + }, + { + "condition": { + "condition_type": "Race", + "race": "Black" + }, + "distributions": [ + { + "transition": "Male_Gallstone_Formation", + "distribution": 0.053 + }, + { + "transition": "Terminal", + "distribution": 0.947 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Asian" + }, + "distributions": [ + { + "transition": "Male_Gallstone_Formation", + "distribution": 0.053 + }, + { + "transition": "Terminal", + "distribution": 0.947 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Hispanic" + }, + "distributions": [ + { + "transition": "Male_Gallstone_Formation", + "distribution": 0.072 + }, + { + "transition": "Terminal", + "distribution": 0.928 + } + ] + } + ] + }, + "Female_Gallstone_Formation": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Age_20-29", + "distribution": 0.0718 + }, + { + "transition": "Age_30-39", + "distribution": 0.1127 + }, + { + "transition": "Age_40-49", + "distribution": 0.1735 + }, + { + "transition": "Age_50-59", + "distribution": 0.2763 + }, + { + "transition": "Age_60-74", + "distribution": 0.3657 + } + ], + "remarks": [ + "Distribution of gallbladder disease prevalence by sex and age from Table 1: https://www.gastrojournal.org/article/S0016-5085(99)70456-7/pdf", + "(Age prevalence percentages were converted to a proportion of the total prevalence, given the race and sex distribution already in place)" + ] + }, + "Male_Gallstone_Formation": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Age_20-29", + "distribution": 0.0274 + }, + { + "transition": "Age_30-39", + "distribution": 0.04 + }, + { + "transition": "Age_40-49", + "distribution": 0.1537 + }, + { + "transition": "Age_50-59", + "distribution": 0.2463 + }, + { + "transition": "Age_60-74", + "distribution": 0.5326 + } + ], + "remarks": [ + "Distribution of gallbladder disease prevalence by sex and age from Table 1: https://www.gastrojournal.org/article/S0016-5085(99)70456-7/pdf", + "(Age prevalence percentages were converted to a proportion of the total prevalence, given the race and sex distribution already in place)" + ] + }, + "Age_20-29": { + "type": "Delay", + "direct_transition": "Gallstones", + "range": { + "low": 20, + "high": 29, + "unit": "years" + } + }, + "Age_30-39": { + "type": "Delay", + "direct_transition": "Gallstones", + "range": { + "low": 30, + "high": 39, + "unit": "years" + } + }, + "Age_40-49": { + "type": "Delay", + "direct_transition": "Gallstones", + "range": { + "low": 40, + "high": 49, + "unit": "years" + } + }, + "Age_50-59": { + "type": "Delay", + "direct_transition": "Gallstones", + "range": { + "low": 50, + "high": 59, + "unit": "years" + } + }, + "Age_60-74": { + "type": "Delay", + "direct_transition": "Gallstones", + "range": { + "low": 60, + "high": 74, + "unit": "years" + } + }, + "Acute_Cholecystitis": { + "type": "ConditionOnset", + "target_encounter": "Cholecystitis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65275009", + "display": "Acute cholecystitis (disorder)" + } + ], + "distributed_transition": [ + { + "transition": "Cholecystitis_Encounter", + "distribution": 0.994 + }, + { + "transition": "Death_from_Acute_Cholecystitis", + "distribution": 0.006 + } + ], + "remarks": [ + "Fortunately, cholecystitis carries a relatively low death rate of 0.6%.", + "https://link.springer.com/article/10.1007/s11894-005-0051-8" + ] + }, + "Gallstones": { + "type": "ConditionOnset", + "target_encounter": "Cholecystitis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "235919008", + "display": "Gallbladder calculus (disorder)" + } + ], + "remarks": [ + "Up to 80% will never experience biliary pain or complications such as acute cholecystitis, cholangitis, or pancreatitis", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3343155/" + ], + "distributed_transition": [ + { + "transition": "Symptom_Onset_Delay", + "distribution": 0.2 + }, + { + "transition": "Terminal", + "distribution": 0.8 + } + ] + }, + "Cholecystitis_Encounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "Acute_Cholecystitis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "remarks": [ + "The ratio of LC performed increased from 83% in 1998 to 93% in 2005; 12% of cases were attempted laparoscopically but converted to OC.", + "https://www.ncbi.nlm.nih.gov/pubmed/18656637" + ], + "direct_transition": "Heparin" + }, + "Cholecystitis_Encounter_End": { + "type": "EncounterEnd", + "direct_transition": "Home_Recovery", + "discharge_disposition": { + "system": "NUBC", + "code": "01", + "display": "Discharged to home care or self care (routine discharge)" + } + }, + "Symptom_Onset_Delay": { + "type": "Delay", + "direct_transition": "Chole_Symptom1", + "range": { + "low": 0, + "high": 20, + "unit": "years" + } + }, + "Chole_Symptom1": { + "type": "Symptom", + "symptom": "Upper Abdominal Pain", + "cause": "Acute_Cholecystitis", + "direct_transition": "Chole_Symptom2", + "range": { + "low": 50, + "high": 150 + } + }, + "Chole_Symptom2": { + "type": "Symptom", + "symptom": "Fever", + "cause": "Acute_Cholecystitis", + "direct_transition": "Chole_Symptom3", + "range": { + "low": 0, + "high": 50 + } + }, + "Chole_Symptom3": { + "type": "Symptom", + "symptom": "Nausea/Vomiting", + "cause": "Acute_Cholecystitis", + "direct_transition": "Chole_Symptom4", + "range": { + "low": 0, + "high": 50 + } + }, + "Chole_Symptom4": { + "type": "Symptom", + "symptom": "Jaundice", + "cause": "Acute_Cholecystitis", + "direct_transition": "Symptom_Period", + "range": { + "low": 0, + "high": 50 + } + }, + "Chole_Symptom1_Ends": { + "type": "Symptom", + "symptom": "Upper Abdominal Pain", + "cause": "Acute_Cholecystitis", + "exact": { + "quantity": 0 + }, + "direct_transition": "Chole_Symptom2_Ends" + }, + "Chole_Symptom2_Ends": { + "type": "Symptom", + "symptom": "Fever", + "cause": "Acute_Cholecystitis", + "exact": { + "quantity": 0 + }, + "direct_transition": "Chole_Symptom3_Ends" + }, + "Chole_Symptom3_Ends": { + "type": "Symptom", + "symptom": "Nausea/Vomiting", + "cause": "Acute_Cholecystitis", + "exact": { + "quantity": 0 + }, + "direct_transition": "Chole_Symptom4_Ends" + }, + "Symptom_Period": { + "type": "Delay", + "direct_transition": "Acute_Cholecystitis", + "range": { + "low": 1, + "high": 3, + "unit": "days" + } + }, + "Laparoscopic_Cholecystectomy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "45595009", + "display": "Laparoscopic cholecystectomy (procedure)" + } + ], + "duration": { + "low": 45, + "high": 240, + "unit": "minutes" + }, + "distributed_transition": [ + { + "transition": "Open_Cholecystectomy", + "distribution": 0.12 + }, + { + "transition": "Chole_Symptom1_Ends", + "distribution": 0.87941 + }, + { + "transition": "Death_after_Cholecystectomy", + "distribution": 0.00059 + } + ], + "remarks": [ + "The ratio of LC performed increased from 83% in 1998 to 93% in 2005; 12% of cases were attempted laparoscopically but converted to OC.", + "https://www.ncbi.nlm.nih.gov/pubmed/18656637", + "0.059% 30-day mortality rate for laparoscopic cholecystectomy from https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4333785/" + ] + }, + "Laparoscopic_Recovery": { + "type": "Delay", + "direct_transition": "Saline_End", + "range": { + "low": 2, + "high": 24, + "unit": "hours" + } + }, + "Open_Cholecystectomy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "38102005", + "display": "Cholecystectomy (procedure)" + } + ], + "duration": { + "low": 120, + "high": 300, + "unit": "minutes" + }, + "remarks": [ + "0.847% 30-day mortality rate for open cholecystectomy from https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4333785/", + "Procedure duration from https://www.dovemed.com/common-procedures/procedures-surgical/gallbladder-removal-by-open-technique-open-cholecystectomy/" + ], + "distributed_transition": [ + { + "transition": "Chole_Symptom1_Ends", + "distribution": 0.99153 + }, + { + "transition": "Death_after_Cholecystectomy", + "distribution": 0.00847 + } + ] + }, + "Open_Recovery": { + "type": "Delay", + "direct_transition": "Saline_End", + "range": { + "low": 3, + "high": 7, + "unit": "days" + }, + "remarks": [ + "Recovery time from https://www.dovemed.com/common-procedures/procedures-surgical/gallbladder-removal-by-open-technique-open-cholecystectomy/" + ] + }, + "Death_from_Acute_Cholecystitis": { + "type": "Death", + "direct_transition": "Terminal", + "condition_onset": "Acute_Cholecystitis", + "range": { + "low": 5, + "high": 30, + "unit": "days" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "91302008", + "display": "Sepsis (disorder)" + } + ] + }, + "Death_after_Cholecystectomy": { + "type": "Death", + "direct_transition": "Chole_Symptom1_Ends", + "range": { + "low": 0, + "high": 30, + "unit": "days" + }, + "condition_onset": "Acute_Cholecystitis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "385486001", + "display": "Postoperative complication (disorder)" + } + ] + }, + "Prescribe_Opioids": { + "type": "CallSubmodule", + "submodule": "medications/moderate_opioid_pain_reliever", + "direct_transition": "Cholecystitis_Encounter_End" + }, + "LC_Postoperative_Follow-up": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "direct_transition": "End_Postoperative_Follow-up", + "reason": "Laparoscopic_Cholecystectomy" + }, + "OC_Postoperative_Follow_up": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "reason": "Open_Cholecystectomy", + "direct_transition": "End_Postoperative_Follow-up" + }, + "End_Postoperative_Follow-up": { + "type": "EncounterEnd", + "direct_transition": "Continue_Low_Fat_Diet", + "discharge_disposition": { + "system": "NUBC", + "code": "01", + "display": "Discharged to home care or self care (routine discharge)" + } + }, + "Ready_for_Surgery": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Laparoscopic_Cholecystectomy", + "distribution": 0.93 + }, + { + "transition": "Open_Cholecystectomy", + "distribution": 0.07 + } + ] + }, + "Saline": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 313002, + "display": "Sodium Chloride 9 MG/ML Injectable Solution" + } + ], + "direct_transition": "Antiemetic", + "administration": false + }, + "Antiemetic": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1740467, + "display": "2 ML Ondansetron 2 MG/ML Injection" + } + ], + "direct_transition": "Antiemetic_End", + "remarks": [ + "Based on the safety and efficacy of ondansetron, it may be used as a first-line agent for relief of nausea or vomiting for most patient populations in the ED.", + "https://www.ncbi.nlm.nih.gov/pubmed/20022195" + ], + "administration": true + }, + "Morphine": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1732136, + "display": "1 ML Morphine Sulfate 5 MG/ML Injection" + } + ], + "direct_transition": "Delay_for_Surgical_Appointment", + "administration": true + }, + "Gall_Bladder_Imaging": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "426701000119108", + "display": "Ultrasonography of abdomen, right upper quadrant and epigastrium (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "50519007", + "display": "Structure of right upper quadrant of abdomen (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "US", + "display": "Ultrasound" + }, + "instances": [ + { + "title": "Title of this image", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.6.1", + "display": "Ultrasound Image Storage" + } + } + ] + } + ], + "direct_transition": "Morphine" + }, + "Delay_for_Surgical_Appointment": { + "type": "Delay", + "range": { + "low": 1, + "high": 4, + "unit": "hours" + }, + "direct_transition": "Morphine_End" + }, + "Postoperative_Care_Plan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736372004", + "display": "Discharge care plan (record artifact)" + } + ], + "direct_transition": "Prescribe_Opioids", + "activities": [ + { + "system": "SNOMED-CT", + "code": "1055207008", + "display": "Decreased fat and oil diet (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "225317005", + "display": "Restriction of movement (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "225358003", + "display": "Wound care (regime/therapy)" + } + ] + }, + "Postoperative_Care_Plan_Ends": { + "type": "CarePlanEnd", + "direct_transition": "Terminal", + "careplan": "Postoperative_Care_Plan" + }, + "Continue_Low_Fat_Diet": { + "type": "Delay", + "direct_transition": "Postoperative_Care_Plan_Ends", + "range": { + "low": 1, + "high": 3, + "unit": "weeks" + } + }, + "Comprehensive_Metabolic_Panel": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "42719-5", + "display": "Total Bilirubin (Elevated)" + } + ], + "range": { + "low": 1.2, + "high": 2.5 + } + }, + { + "category": "laboratory", + "unit": "[iU]/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "ALT (Elevated)" + } + ], + "range": { + "low": 100, + "high": 200 + } + }, + { + "category": "laboratory", + "unit": "[iU]/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "AST (Elevated)" + } + ], + "range": { + "low": 100, + "high": 200 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "vital_sign": "Glucose" + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "vital_sign": "Urea Nitrogen" + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "vital_sign": "Creatinine" + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "vital_sign": "Calcium" + }, + { + "category": "laboratory", + "unit": "mmol/L", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "vital_sign": "Sodium" + }, + { + "category": "laboratory", + "unit": "mmol/L", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "vital_sign": "Potassium" + }, + { + "category": "laboratory", + "unit": "mmol/L", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "vital_sign": "Chloride" + }, + { + "category": "laboratory", + "unit": "mmol/L", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "vital_sign": "Carbon Dioxide" + }, + { + "category": "laboratory", + "unit": "mmol/L", + "codes": [ + { + "system": "LOINC", + "code": "33037-3", + "display": "Anion Gap" + } + ], + "range": { + "low": 2, + "high": 15 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein" + } + ], + "range": { + "low": 6.2, + "high": 8.2 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin" + } + ], + "range": { + "low": 3.4, + "high": 5.2 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "10834-0", + "display": "Globulin" + } + ], + "range": { + "low": 2, + "high": 4 + } + }, + { + "category": "laboratory", + "unit": "[iU]/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline Phosphatase" + } + ], + "range": { + "low": 30, + "high": 115 + } + } + ], + "direct_transition": "RUQ_Murphy_Sign", + "remarks": [ + "Expected aberrant values:", + "Total Bilirubin (normal 0 - 1.2)", + "ALT (normal 7 - 40)", + "AST (normal 11 - 40)" + ] + }, + "Complete_Blood_Count": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "69742-5", + "display": "CBC W Differential panel, method unspecified - Blood" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "26464-8", + "display": "Leukocytes [#/volume] in Blood" + } + ], + "range": { + "low": 11, + "high": 15 + } + }, + { + "category": "laboratory", + "unit": "10*6/uL", + "codes": [ + { + "system": "LOINC", + "code": "26453-1", + "display": "Erythrocytes [#/volume] in Blood" + } + ], + "range": { + "low": 4.5, + "high": 5.9 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin" + } + ], + "range": { + "low": 13.8, + "high": 17.4 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "20570-8", + "display": "Hematocrit" + } + ], + "range": { + "low": 41, + "high": 51 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "30428-7", + "display": "MCV" + } + ], + "range": { + "low": 80, + "high": 96 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "30385-9", + "display": "RBC Distribution Width" + } + ], + "range": { + "low": 11.6, + "high": 14.6 + } + }, + { + "category": "laboratory", + "unit": "K/uL", + "codes": [ + { + "system": "LOINC", + "code": "26515-7", + "display": "Platelet Count" + } + ], + "range": { + "low": 150, + "high": 450 + } + } + ], + "direct_transition": "Comprehensive_Metabolic_Panel", + "remarks": [ + "Expected aberrant values:", + "WBC (normal 4.4 - 11.3)" + ] + }, + "RUQ_Murphy_Sign": { + "type": "Observation", + "category": "exam", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "80271-0", + "display": "Physical findings of Abdomen by Palpation" + } + ], + "direct_transition": "ECG", + "value_code": { + "system": "SNOMED-CT", + "code": "53566005", + "display": "Murphy's sign (finding)" + } + }, + "Chole_Symptom4_Ends": { + "type": "Symptom", + "symptom": "Jaundice", + "cause": "Acute_Cholecystitis", + "exact": { + "quantity": 0 + }, + "direct_transition": "Gallstones_Removed" + }, + "Home_Recovery": { + "type": "Delay", + "range": { + "low": 14, + "high": 21, + "unit": "days" + }, + "conditional_transition": [ + { + "transition": "OC_Postoperative_Follow_up", + "condition": { + "condition_type": "PriorState", + "name": "Open_Cholecystectomy" + } + }, + { + "transition": "LC_Postoperative_Follow-up" + } + ] + }, + "Penicillin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1659149, + "display": "Piperacillin 4000 MG / tazobactam 500 MG Injection" + } + ], + "direct_transition": "Penicillin_End", + "remarks": [ + "Assuming the patient is not allergic to Penicillin, piperacillin is recommended for acute cholecystitis:", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2784497/" + ], + "administration": true + }, + "Cefotaxime": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1656318, + "display": "Cefotaxime 2000 MG Injection" + } + ], + "remarks": [ + "For patients allergic to penicillin, a 3rd-gen cephalosporin-based antibiotic is recommended for acute cholecystitis:", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2784497/" + ], + "direct_transition": "Cefotaxime_End", + "administration": true + }, + "Anesthesia": { + "type": "CallSubmodule", + "submodule": "surgery/general_anesthesia", + "direct_transition": "Ready_for_Surgery" + }, + "ECG": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29303009", + "display": "Electrocardiographic procedure (procedure)" + } + ], + "duration": { + "low": 5, + "high": 10, + "unit": "minutes" + }, + "direct_transition": "ECG_Sim" + }, + "ECG_Sim": { + "type": "Physiology", + "model": "circulation/McSharry2003_Synthetic_ECG.xml", + "solver": "runge_kutta", + "step_size": 0.01, + "sim_duration": 4, + "lead_time": 0, + "inputs": [ + { + "from_exp": "#{BMI} * 0.497 + 56.15", + "to": "hrmean" + } + ], + "outputs": [ + { + "from_list": "zf", + "to": "ecg_result", + "type": "Attribute" + } + ], + "direct_transition": "ECG_Data", + "alt_direct_transition": "Gall_Bladder_Imaging" + }, + "ECG_Data": { + "type": "Observation", + "category": "procedure", + "unit": "", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29303009", + "display": "Electrocardiographic procedure (procedure)" + } + ], + "sampled_data": { + "attributes": [ + "ecg_result" + ] + }, + "direct_transition": "ECG_Chart" + }, + "ECG_Chart": { + "type": "Observation", + "category": "procedure", + "unit": "", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29303009", + "display": "Electrocardiographic procedure (procedure)" + } + ], + "attachment": { + "chart": { + "type": "line", + "title": "Electrocardiogram", + "axis_attribute_x": "time", + "width": 400, + "height": 200, + "series": [ + { + "attribute": "ecg_result" + } + ] + } + }, + "direct_transition": "Clear_ECG_result" + }, + "Clear_ECG_result": { + "type": "SetAttribute", + "attribute": "ecg_result", + "direct_transition": "Gall_Bladder_Imaging" + }, + "Heparin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "1659263", + "display": "1 ML heparin sodium, porcine 5000 UNT/ML Injection" + } + ], + "direct_transition": "Heparin_End", + "administration": true + }, + "Gallstones_Removed": { + "type": "ConditionEnd", + "condition_onset": "Gallstones", + "direct_transition": "Acute_Cholecystitis_Ends" + }, + "Acute_Cholecystitis_Ends": { + "type": "ConditionEnd", + "conditional_transition": [ + { + "transition": "Open_Recovery", + "condition": { + "condition_type": "PriorState", + "name": "Open_Cholecystectomy" + } + }, + { + "transition": "Laparoscopic_Recovery" + } + ], + "condition_onset": "Acute_Cholecystitis" + }, + "Cefotaxime_End": { + "type": "MedicationEnd", + "direct_transition": "Anesthesia", + "medication_order": "Cefotaxime" + }, + "Penicillin_End": { + "type": "MedicationEnd", + "direct_transition": "Anesthesia", + "medication_order": "Penicillin" + }, + "Saline_End": { + "type": "MedicationEnd", + "direct_transition": "Postoperative_Care_Plan", + "medication_order": "Saline" + }, + "Morphine_End": { + "type": "MedicationEnd", + "conditional_transition": [ + { + "transition": "Cefotaxime", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91936005", + "display": "Allergy to penicillin (finding)" + } + ] + } + }, + { + "transition": "Penicillin" + } + ], + "medication_order": "Morphine" + }, + "Heparin_End": { + "type": "MedicationEnd", + "direct_transition": "Saline", + "medication_order": "Heparin" + }, + "Antiemetic_End": { + "type": "MedicationEnd", + "direct_transition": "Complete_Blood_Count", + "medication_order": "Antiemetic" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/gout.json b/src/main/resources/modules/gout.json new file mode 100644 index 0000000..590bfdc --- /dev/null +++ b/src/main/resources/modules/gout.json @@ -0,0 +1,305 @@ +{ + "name": "Gout", + "remarks": [ + "Gout is a painful inflammation of the joints caused by a buildup of uric acid. ", + "Gout is 3x more likely in men and is heavily influenced by diet. Gout appears as perioid ", + "flare-ups that are treated with medication and subside for a period of time.", + "Information on treatment, prevalence, and incidence of specific arthritis types from the CDC: ", + "http://www.cdc.gov/arthritis/basics/types.html", + "Overall prevalence of arthritis: ", + "http://www.cdc.gov/arthritis/data_statistics/national-statistics.html" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + " | Arthritis Type | Prevalence | Ratio F:M | ", + " ------------------------------------------- ", + " | Gout | 0.03900 | 1:3 | ", + " ------------------------------------------- " + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "distribution": 0.02925, + "transition": "Delay_Until_Gout" + }, + { + "distribution": 0.97075, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "distribution": 0.00975, + "transition": "Delay_Until_Gout" + }, + { + "distribution": 0.99025, + "transition": "Terminal" + } + ] + } + ] + }, + "Delay_Until_Gout": { + "type": "Delay", + "range": { + "low": 25, + "high": 80, + "unit": "years" + }, + "direct_transition": "Gout" + }, + "Gout": { + "type": "ConditionOnset", + "remarks": [ + "======================================================================", + " GOUT ", + "======================================================================", + "Source: http://www.cdc.gov/arthritis/basics/gout.html" + ], + "target_encounter": "Gout_Diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "90560007", + "display": "Inflammatory disorder due to increased blood urate level (disorder)" + } + ], + "direct_transition": "Gout_Symptom1" + }, + "Gout_Symptom1": { + "type": "Symptom", + "symptom": "Joint Pain", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Gout_Symptom2" + }, + "Gout_Symptom2": { + "type": "Symptom", + "symptom": "Joint Swelling", + "range": { + "low": 0, + "high": 25 + }, + "direct_transition": "Gout_Symptom3" + }, + "Gout_Symptom3": { + "type": "Symptom", + "symptom": "Joint Redness", + "range": { + "low": 0, + "high": 25 + }, + "direct_transition": "Gout_Symptom4" + }, + "Gout_Symptom4": { + "type": "Symptom", + "symptom": "Fever", + "range": { + "low": 0, + "high": 25 + }, + "direct_transition": "Gout_Diagnosis" + }, + "Gout_Diagnosis": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Gout", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Pain_Vital" + }, + "Gout_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "gout_careplan", + "reason": "Gout", + "codes": [ + { + "system": "SNOMED-CT", + "code": "408869004", + "display": "Musculoskeletal care (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "183301007", + "display": "Physical exercises (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "229580007", + "display": "Ice therapy (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "226234005", + "display": "Healthy diet (finding)" + } + ], + "direct_transition": "Gout_Nonopioid_Pain_Medication" + }, + "Gout_Nonopioid_Pain_Medication": { + "type": "Simple", + "remarks": [ + "NSAIDs are used to quickly alleviate the pain and inflammation of gout." + ], + "distributed_transition": [ + { + "distribution": 0.6, + "transition": "Strong_NSAID" + }, + { + "distribution": 0.4, + "transition": "Colchicine" + } + ] + }, + "Strong_NSAID": { + "type": "MedicationOrder", + "assign_to_attribute": "gout_nsaid", + "reason": "Gout", + "remarks": [ + "A stronger NSAID pain reliever than the basic Aleve." + ], + "codes": [ + { + "system": "RxNorm", + "code": "198014", + "display": "Naproxen 500 MG Oral Tablet" + } + ], + "direct_transition": "Uric_Acid_Reducer" + }, + "Colchicine": { + "type": "MedicationOrder", + "assign_to_attribute": "gout_nsaid", + "reason": "Gout", + "remarks": [ + "For those who can't stand the side effects of a strong NSAID." + ], + "codes": [ + { + "system": "RxNorm", + "code": "197541", + "display": "Colchicine 0.6 MG Oral Tablet" + } + ], + "direct_transition": "Uric_Acid_Reducer" + }, + "Uric_Acid_Reducer": { + "type": "MedicationOrder", + "reason": "Gout", + "codes": [ + { + "system": "RxNorm", + "code": "197319", + "display": "Allopurinol 100 MG Oral Tablet" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Gout_Treatment_Period" + }, + "Gout_Treatment_Period": { + "type": "Delay", + "range": { + "low": 2, + "high": 4, + "unit": "weeks" + }, + "direct_transition": "End_Gout_Nonopioid" + }, + "End_Gout_Nonopioid": { + "type": "MedicationEnd", + "referenced_by_attribute": "gout_nsaid", + "direct_transition": "End_Uric_Acid_Reducer" + }, + "End_Uric_Acid_Reducer": { + "type": "MedicationEnd", + "medication_order": "Uric_Acid_Reducer", + "direct_transition": "Wait_For_Next_Gout_Attack" + }, + "Wait_For_Next_Gout_Attack": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "years" + }, + "remarks": [ + "Gout has an annual incidence of about 5.7%. In an average 2-year period this is about 11.1%.", + "Source: http://rheumatology.oxfordjournals.org/content/early/2011/01/11/rheumatology.keq363.long" + ], + "distributed_transition": [ + { + "distribution": 0.111, + "transition": "Gout_Diagnosis" + }, + { + "distribution": 0.889, + "transition": "Wait_For_Next_Gout_Attack" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Pain_Vital": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported" + } + ], + "range": { + "decimals": 0, + "low": 4, + "high": 8 + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "gout_careplan", + "operator": "is nil" + }, + "transition": "Gout_CarePlan" + }, + { + "transition": "Gout_Nonopioid_Pain_Medication" + } + ] + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/acs_anticoagulant.json b/src/main/resources/modules/heart/acs_anticoagulant.json new file mode 100644 index 0000000..fa7340a --- /dev/null +++ b/src/main/resources/modules/heart/acs_anticoagulant.json @@ -0,0 +1,183 @@ +{ + "name": "acs_anticoagulant", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "This module uses a slightly different approach to prescribing these 4 meds. 3 of them have contraindications, but rather than create a crazy unreadable complex transition, we just loop back and try again if we pick an invalid choice. Heparin is always allowed, so there can never be an infinite loop", + "", + "Also note the display isn't used in the Active Condition logic, so it's shortened to STEMI instead of \"Acute ST segment elevation myocardial infarction (disorder)\" to make the graph cleaner" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "401303003", + "display": "Acute ST segment elevation myocardial infarction (disorder)" + } + ] + }, + "distributions": [ + { + "transition": "Heparin", + "distribution": 0.79 + }, + { + "transition": "Enoxaparin_Check", + "distribution": 0.01 + }, + { + "transition": "Bivalirudin_Check", + "distribution": 0.2 + }, + { + "transition": "Fondaparinux_Check", + "distribution": 0 + } + ] + }, + { + "distributions": [ + { + "transition": "Heparin", + "distribution": 0.59 + }, + { + "transition": "Enoxaparin_Check", + "distribution": 0.1 + }, + { + "transition": "Bivalirudin_Check", + "distribution": 0.3 + }, + { + "transition": "Fondaparinux_Check", + "distribution": 0.01 + } + ] + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Heparin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1361048, + "display": "heparin sodium, porcine 100 UNT/ML Injectable Solution" + } + ], + "direct_transition": "Terminal", + "administration": true + }, + "Enoxaparin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 854255, + "display": "enoxaparin sodium 100 MG/ML Injectable Solution" + } + ], + "direct_transition": "Terminal", + "administration": true + }, + "Bivalirudin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "1997015", + "display": "bivalirudin 50 ML; 5 MG/ML Injection" + } + ], + "direct_transition": "Terminal", + "administration": true + }, + "Fondaparinux": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "861356", + "display": "0.8 ML fondaparinux sodium 12.5 MG/ML Prefilled Syringe" + } + ], + "direct_transition": "Terminal", + "administration": true + }, + "Enoxaparin_Check": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 5 + }, + "transition": "Initial" + }, + { + "transition": "Enoxaparin" + } + ] + }, + "Bivalirudin_Check": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "stemi_cardiology_approach", + "operator": "==", + "value": "fibrinolysis" + }, + { + "condition_type": "Attribute", + "attribute": "stemi_cardiology_approach", + "operator": "==", + "value": "pharmacoinvasive" + } + ] + }, + "transition": "Initial" + }, + { + "transition": "Bivalirudin" + } + ] + }, + "Fondaparinux_Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Initial", + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 5 + } + }, + { + "transition": "Fondaparinux" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/acs_antiplatelet.json b/src/main/resources/modules/heart/acs_antiplatelet.json new file mode 100644 index 0000000..b1c23d0 --- /dev/null +++ b/src/main/resources/modules/heart/acs_antiplatelet.json @@ -0,0 +1,223 @@ +{ + "name": "acs_antiplatelet", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Only_Ticagrelor", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "stemi_cardiology_approach", + "operator": "==", + "value": "fibrinolysis" + }, + { + "condition_type": "Attribute", + "attribute": "stemi_cardiology_approach", + "operator": "==", + "value": "pharmacoinvasive" + } + ] + } + }, + { + "transition": "Consider_Medications" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Prasugrel": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 855812, + "display": "prasugrel 10 MG Oral Tablet" + } + ], + "direct_transition": "GP IIb-IIIa Check", + "administration": true, + "assign_to_attribute": "acs_antiplatelet" + }, + "Clopidogrel": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 749196, + "display": "clopidogrel 300 MG Oral Tablet" + } + ], + "direct_transition": "GP IIb-IIIa Check", + "administration": true, + "assign_to_attribute": "acs_antiplatelet" + }, + "Ticagrelor": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1116635, + "display": "ticagrelor 90 MG Oral Tablet" + } + ], + "direct_transition": "GP IIb-IIIa Check", + "administration": true, + "assign_to_attribute": "acs_antiplatelet" + }, + "GP IIb-IIIa Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "acs_ischemia_guided", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 5 + } + ] + }, + "distributions": [ + { + "transition": "Terminal", + "distribution": 1 + } + ] + }, + { + "distributions": [ + { + "transition": "GP IIb-IIIa", + "distribution": 0.14 + }, + { + "transition": "Terminal", + "distribution": 0.86 + } + ] + } + ] + }, + "GP IIb-IIIa": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Eptifibatide", + "distribution": 0.5 + }, + { + "transition": "Tirofiban", + "distribution": 0.5 + } + ] + }, + "Eptifibatide": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 200349, + "display": "100 ML eptifibatide 0.75 MG/ML Injection" + } + ], + "direct_transition": "Terminal", + "administration": true + }, + "Tirofiban": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1737466, + "display": "100 ML tirofiban 0.05 MG/ML Injection" + } + ], + "direct_transition": "Terminal", + "administration": true + }, + "Only_Ticagrelor": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1116635, + "display": "ticagrelor 90 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "administration": true, + "assign_to_attribute": "acs_antiplatelet" + }, + "Consider_Medications": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "True" + }, + "distributions": [ + { + "transition": "Prasugrel_Check", + "distribution": 0.16 + }, + { + "transition": "Clopidogrel", + "distribution": 0.4 + }, + { + "transition": "Ticagrelor", + "distribution": 0.44 + } + ] + } + ] + }, + "Prasugrel_Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Consider_Medications", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "acs_ischemia_guided", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "stroke_history", + "operator": "is not nil" + } + ] + } + }, + { + "transition": "Prasugrel" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/acs_arrival_medications.json b/src/main/resources/modules/heart/acs_arrival_medications.json new file mode 100644 index 0000000..4ba4560 --- /dev/null +++ b/src/main/resources/modules/heart/acs_arrival_medications.json @@ -0,0 +1,150 @@ +{ + "name": "acs_arrival_medications", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Aspirin_Rates" + }, + "Oxygen": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "371908008", + "display": "Oxygen administration by mask (procedure)" + } + ], + "direct_transition": "NTG_Rates" + }, + "Nitroglycerin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 198039, + "display": "nitroglycerin 0.4 MG Sublingual Tablet" + } + ], + "direct_transition": "Morphine_Rates", + "administration": true + }, + "Morphine": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1728805, + "display": "2 ML morphine sulfate 1 MG/ML Injection" + } + ], + "administration": true, + "direct_transition": "Terminal" + }, + "Aspirin_Once": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 212033, + "display": "aspirin 325 MG Oral Tablet" + } + ], + "administration": true, + "prescription": { + "dosage": { + "amount": 4, + "frequency": 1, + "period": 1, + "unit": "hours" + }, + "duration": { + "quantity": 1, + "unit": "days" + } + }, + "direct_transition": "Oxygen_Rates" + }, + "Aspirin_Rates": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": 1191, + "display": "Aspirin" + } + ] + }, + "distributions": [ + { + "transition": "Oxygen_Rates", + "distribution": 1 + } + ] + }, + { + "distributions": [ + { + "transition": "Aspirin_Once", + "distribution": 0.99 + }, + { + "transition": "Oxygen_Rates", + "distribution": 0.01 + } + ] + } + ] + }, + "Oxygen_Rates": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Oxygen", + "distribution": 0.925 + }, + { + "transition": "NTG_Rates", + "distribution": 0.075 + } + ] + }, + "NTG_Rates": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Nitroglycerin", + "distribution": 0.8 + }, + { + "transition": "Morphine_Rates", + "distribution": 0.2 + } + ] + }, + "Morphine_Rates": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Morphine", + "distribution": 0.55 + }, + { + "transition": "Terminal", + "distribution": 0.45 + } + ] + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/acs_discharge_meds.json b/src/main/resources/modules/heart/acs_discharge_meds.json new file mode 100644 index 0000000..4ff1d7f --- /dev/null +++ b/src/main/resources/modules/heart/acs_discharge_meds.json @@ -0,0 +1,324 @@ +{ + "name": "acs_discharge_meds", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Aspirin Check" + }, + "Aspirin Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": 1191, + "display": "Aspirin" + } + ] + }, + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 243670, + "display": "aspirin 81 MG Oral Tablet" + } + ] + } + ] + }, + "distributions": [ + { + "transition": "No_Aspirin", + "distribution": 1 + } + ] + }, + { + "distributions": [ + { + "transition": "Aspirin_Daily", + "distribution": 0.98 + }, + { + "transition": "No_Aspirin", + "distribution": 0.02 + } + ] + } + ] + }, + "BB Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "beta_blocker", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "Statin Check", + "distribution": 1 + } + ] + }, + { + "distributions": [ + { + "transition": "BB Submodule", + "distribution": 0.975 + }, + { + "transition": "Statin Check", + "distribution": 0.025 + } + ] + } + ] + }, + "Statin Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "statin", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "ACE-ARB Check", + "distribution": 1 + } + ] + }, + { + "distributions": [ + { + "transition": "Statin Submodule", + "distribution": 0.984 + }, + { + "transition": "ACE-ARB Check", + "distribution": 0.016 + } + ] + } + ] + }, + "ACE-ARB Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "ace_arb", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "P2Y12 Check", + "distribution": 1 + } + ] + }, + { + "distributions": [ + { + "transition": "ACE-ARB Submodule", + "distribution": 0.9 + }, + { + "transition": "P2Y12 Check", + "distribution": 0.1 + } + ] + } + ] + }, + "P2Y12 Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "P2Y12 Not filled", + "distribution": 0.125 + }, + { + "transition": "P2Y12", + "distribution": 0.875 + } + ] + }, + "Aspirin_Daily": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 243670, + "display": "aspirin 81 MG Oral Tablet" + } + ], + "direct_transition": "BB Check" + }, + "BB Submodule": { + "type": "CallSubmodule", + "submodule": "medications/beta_blocker", + "direct_transition": "Statin Check" + }, + "Statin Submodule": { + "type": "CallSubmodule", + "submodule": "medications/statin", + "direct_transition": "ACE-ARB Check" + }, + "ACE-ARB Submodule": { + "type": "CallSubmodule", + "submodule": "medications/ace_arb", + "direct_transition": "P2Y12 Check" + }, + "P2Y12 Not filled": { + "type": "Observation", + "category": "vital-signs", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "70006-2", + "display": "Medication management note" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "702566000", + "display": "Suspected non-compliance of drug therapy (situation)" + }, + "conditional_transition": [ + { + "transition": "End_Prior_Antiplatelet", + "condition": { + "condition_type": "Attribute", + "attribute": "acs_antiplatelet", + "operator": "is not nil" + } + }, + { + "transition": "Terminal" + } + ] + }, + "P2Y12": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "acs_antiplatelet", + "operator": "is nil" + } + }, + { + "transition": "Ticagrelor", + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 1116635, + "display": "ticagrelor 90 MG Oral Tablet" + } + ] + } + }, + { + "transition": "Clopidogrel", + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 749196, + "display": "clopidogrel 300 MG Oral Tablet" + } + ] + } + }, + { + "transition": "Prasugrel", + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 855812, + "display": "prasugrel 10 MG Oral Tablet" + } + ] + } + } + ] + }, + "Prasugrel": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 855812, + "display": "prasugrel 10 MG Oral Tablet" + } + ], + "direct_transition": "End_Prior_Antiplatelet" + }, + "Clopidogrel": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 309362, + "display": "clopidogrel 75 MG Oral Tablet" + } + ], + "direct_transition": "End_Prior_Antiplatelet" + }, + "Ticagrelor": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1116635, + "display": "ticagrelor 90 MG Oral Tablet" + } + ], + "direct_transition": "End_Prior_Antiplatelet" + }, + "End_Prior_Antiplatelet": { + "type": "MedicationEnd", + "direct_transition": "Terminal", + "referenced_by_attribute": "acs_antiplatelet", + "remarks": [ + "End the acs_antiplatelet here, so that we can use the Active Medication logic to pick the same one in the previous steps", + "" + ] + }, + "Terminal": { + "type": "Terminal" + }, + "No_Aspirin": { + "type": "Simple", + "direct_transition": "BB Check" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/avrr/antithrombotic.json b/src/main/resources/modules/heart/avrr/antithrombotic.json new file mode 100644 index 0000000..2499a13 --- /dev/null +++ b/src/main/resources/modules/heart/avrr/antithrombotic.json @@ -0,0 +1,167 @@ +{ + "name": "avrr_antithrombotic", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "AVRr antithrombic submodule." + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Warfarin For Life", + "condition": { + "condition_type": "Attribute", + "attribute": "mechanical_cardiac_valve_prothesis", + "operator": "is not nil" + } + }, + { + "transition": "Therapy Check", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "aortic_valve_bioprothesis", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "cardiac_surgery", + "operator": "==", + "value": "tavr" + } + ] + } + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Warfarin For Life": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 855332, + "display": "warfarin sodium 5 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "assign_to_attribute": "warfarin", + "chronic": true + }, + "Aspirin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 2563431, + "display": "aspirin 81 MG Oral Capsule" + } + ], + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "days" + }, + "as_needed": true + }, + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "cardiac_surgery", + "operator": "==", + "value": "tavr" + }, + "distributions": [ + { + "transition": "Clopidogrel", + "distribution": 0.3 + }, + { + "transition": "Terminal", + "distribution": 0.7 + } + ] + }, + { + "transition": "Terminal" + } + ] + }, + "Warfarin For Three Months": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 855332, + "display": "warfarin sodium 5 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "assign_to_attribute": "warfarin", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 3 + } + }, + "Clopidogrel": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 309362, + "display": "clopidogrel 75 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 3 + } + }, + "Therapy Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Warfarin For Three Months", + "distribution": 0.3 + }, + { + "transition": "Aspirin", + "distribution": 0.7 + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/avrr/avrr_referral.json b/src/main/resources/modules/heart/avrr/avrr_referral.json new file mode 100644 index 0000000..a76c15d --- /dev/null +++ b/src/main/resources/modules/heart/avrr/avrr_referral.json @@ -0,0 +1,512 @@ +{ + "name": "AVRr referral", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "AVRr Referral" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "VHD Referral Consultation" + }, + "Terminal": { + "type": "Terminal" + }, + "VHD Referral Consultation": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Liaising with referral source", + "reason": "vhd_diagnosis" + }, + "Liaising with referral source": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "709010006", + "display": "Liaising with referral source (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "Medical Records Review", + "reason": "vhd_diagnosis" + }, + "Medical Records Review": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "312853008", + "display": "Medical records review (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "Care Plan Coordination", + "reason": "vhd_diagnosis" + }, + "Care Plan Coordination": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "711069006", + "display": "Coordination of care plan (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "AVRr Care Plan", + "reason": "vhd_diagnosis" + }, + "AVRr Care Plan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "734163000", + "display": "Care plan (record artifact)" + } + ], + "direct_transition": "End_VHD_Referral_Consultation", + "activities": [ + { + "system": "SNOMED-CT", + "code": "266753000", + "display": "Referral for laboratory tests (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "308461008", + "display": "Referral to radiology service (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "183835003", + "display": "Referral for angiography (procedure)" + } + ], + "assign_to_attribute": "avrr_careplan", + "reason": "vhd_diagnosis" + }, + "Priority_1_Next_Encounter": { + "type": "Delay", + "direct_transition": "Set_Immediate_Admission", + "range": { + "low": 0, + "high": 48, + "unit": "hours" + } + }, + "Priority_2_Next_Encounter": { + "type": "Delay", + "range": { + "low": 3, + "high": 7, + "unit": "days" + }, + "direct_transition": "Set_Immediate_Admission" + }, + "Priority_3_Next_Encounter": { + "type": "Delay", + "direct_transition": "Preoperative_Outpatient", + "range": { + "low": 7, + "high": 15, + "unit": "days" + } + }, + "Priority_4_Next_Encounter": { + "type": "Delay", + "range": { + "low": 15, + "high": 30, + "unit": "days" + }, + "direct_transition": "Preoperative_Outpatient" + }, + "Set_Immediate_Admission": { + "type": "SetAttribute", + "attribute": "avrr_immediate_admission", + "direct_transition": "Immediate_Surgical_Admission", + "value": true + }, + "Immediate_Surgical_Admission": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32485007", + "display": "Hospital admission (procedure)" + } + ], + "direct_transition": "AVRr Preop", + "reason": "vhd_diagnosis" + }, + "Preoperative_Outpatient": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "Set_Immediate_Admission_False", + "reason": "vhd_diagnosis" + }, + "Set_Immediate_Admission_False": { + "type": "SetAttribute", + "attribute": "avrr_immediate_admission", + "direct_transition": "AVRr Preop", + "value": false + }, + "AVRr Preop": { + "type": "CallSubmodule", + "submodule": "heart/avrr/preoperative", + "direct_transition": "Heart Team" + }, + "Heart Team": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "312384001", + "display": "Multidisciplinary assessment (procedure)" + } + ], + "unit": "minutes", + "distributed_transition": [ + { + "transition": "Heart Team Conference", + "distribution": 0.2 + }, + { + "transition": "Treatment Plan", + "distribution": 0.8 + } + ], + "reason": "vhd_diagnosis" + }, + "Heart Team Conference": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "384682003", + "display": "Multidisciplinary care conference (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "Treatment Plan", + "reason": "vhd_diagnosis" + }, + "Treatment Plan": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "709138001", + "display": "Notification of treatment plan (procedure)" + } + ], + "unit": "minutes", + "distributed_transition": [ + { + "transition": "Scheduling", + "distribution": 0.9 + }, + { + "transition": "Patient referral", + "distribution": 0.1 + } + ], + "reason": "vhd_diagnosis" + }, + "Scheduling": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "410538000", + "display": "Scheduling (procedure)" + } + ], + "unit": "minutes", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "avrr_immediate_admission", + "operator": "==", + "value": true + } + }, + { + "transition": "End Preoperative" + } + ], + "reason": "vhd_diagnosis" + }, + "Patient referral": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "3457005", + "display": "Patient referral (procedure)" + } + ], + "unit": "minutes", + "distributed_transition": [ + { + "transition": "CABG_AVRr", + "distribution": 0.6 + }, + { + "transition": "Palliative Care", + "distribution": 0.4 + } + ], + "reason": "vhd_diagnosis" + }, + "End Preoperative": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Initiate Dental Cleaning", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "cardiac_surgery", + "operator": "==", + "value": "savreplace" + }, + { + "condition_type": "Attribute", + "attribute": "cardiac_surgery", + "operator": "==", + "value": "tavr" + } + ] + }, + { + "condition_type": "Attribute", + "attribute": "dental_referral", + "operator": "is nil" + } + ] + } + }, + { + "transition": "Check Cleaning Status" + } + ] + }, + "Priority_2_Next_Encounter_2": { + "type": "Delay", + "range": { + "low": 3, + "high": 7, + "unit": "days" + }, + "direct_transition": "Valve Surgery" + }, + "Valve Surgery": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "vhd_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32485007", + "display": "Hospital admission (procedure)" + } + ], + "direct_transition": "Terminal" + }, + "Priority_3_Next_Encounter_2": { + "type": "Delay", + "direct_transition": "Valve Surgery", + "range": { + "low": 7, + "high": 15, + "unit": "days" + } + }, + "Priority_4_Next_Encounter_2": { + "type": "Delay", + "range": { + "low": 15, + "high": 30, + "unit": "days" + }, + "direct_transition": "Valve Surgery" + }, + "CABG_AVRr": { + "type": "SetAttribute", + "attribute": "cabg_avrr", + "direct_transition": "End Preoperative Encounter", + "value": true + }, + "Palliative Care": { + "type": "SetAttribute", + "attribute": "palliative_avrr", + "direct_transition": "Palliative Referral", + "value": true + }, + "End Preoperative Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Expected Survival": { + "type": "Death", + "direct_transition": "End Preoperative Encounter", + "range": { + "low": 3, + "high": 6, + "unit": "months" + } + }, + "Hospice Admission": { + "type": "SetAttribute", + "attribute": "hospice", + "direct_transition": "Expected Survival", + "value": true, + "remarks": [ + "Setting the value \"hospice\" = true will get picked up in the hospice module, once these are linked" + ] + }, + "Palliative Referral": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "306237005", + "display": "Referral to palliative care service (procedure)" + } + ], + "unit": "minutes", + "distributed_transition": [ + { + "transition": "Hospice Admission", + "distribution": 0.4 + }, + { + "transition": "End Preoperative Encounter", + "distribution": 0.6 + } + ], + "reason": "vhd_diagnosis" + }, + "End_VHD_Referral_Consultation": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Priority_1_Next_Encounter", + "condition": { + "condition_type": "Attribute", + "attribute": "care_priority_level", + "operator": "==", + "value": 1 + } + }, + { + "transition": "Priority_2_Next_Encounter", + "condition": { + "condition_type": "Attribute", + "attribute": "care_priority_level", + "operator": "==", + "value": 2 + } + }, + { + "transition": "Priority_3_Next_Encounter", + "condition": { + "condition_type": "Attribute", + "attribute": "care_priority_level", + "operator": "==", + "value": 3 + } + }, + { + "transition": "Priority_4_Next_Encounter" + } + ] + }, + "Wait_for_Cleaning": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 7, + "low": 1 + } + }, + "unit": "days", + "direct_transition": "Check Cleaning Status" + }, + "Schedule the Surgery": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Priority_2_Next_Encounter_2", + "condition": { + "condition_type": "Attribute", + "attribute": "care_priority_level", + "operator": "==", + "value": 2 + } + }, + { + "transition": "Priority_3_Next_Encounter_2", + "condition": { + "condition_type": "Attribute", + "attribute": "care_priority_level", + "operator": "==", + "value": 3 + } + }, + { + "transition": "Priority_4_Next_Encounter_2" + } + ] + }, + "Initiate Dental Cleaning": { + "type": "SetAttribute", + "attribute": "dental_referral", + "value_attribute": "vhd_diagnosis", + "direct_transition": "Wait_for_Cleaning" + }, + "Check Cleaning Status": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Wait_for_Cleaning", + "condition": { + "condition_type": "Attribute", + "attribute": "dental_referral", + "operator": "is not nil" + } + }, + { + "transition": "Schedule the Surgery" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/avrr/intraop_meds_blood.json b/src/main/resources/modules/heart/avrr/intraop_meds_blood.json new file mode 100644 index 0000000..d2d1bae --- /dev/null +++ b/src/main/resources/modules/heart/avrr/intraop_meds_blood.json @@ -0,0 +1,99 @@ +{ + "name": "intraop_meds_blood", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "This submodule of Cardiac Surgery models common Labs, Medications, and Blood Components during operation. ", + "", + "Represented labs include: ", + "• Activated clotting time ", + "", + "Represented meds and blood components include: ", + "• Cefazolin, consistent with Society of Thoracic Surgeons antibiotic prophylaxis recommendations. ", + "• Heparin", + "• Protamine", + "• Blood (pRBCs)- called with submodule", + "" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Cefazolin" + }, + "Terminal": { + "type": "Terminal" + }, + "Cefazolin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1665060, + "display": "cefazolin 2000 MG Injection" + } + ], + "direct_transition": "Heparin", + "administration": true + }, + "Heparin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1361226, + "display": "heparin sodium, porcine 1000 UNT/ML Injectable Solution" + } + ], + "direct_transition": "Activated Clotting Time", + "administration": true, + "assign_to_attribute": "heparin" + }, + "Protamine": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1796676, + "display": "25 ML protamine sulfate (USP) 10 MG/ML Injection" + } + ], + "direct_transition": "Blood", + "administration": true + }, + "Blood": { + "type": "CallSubmodule", + "submodule": "heart/or_blood", + "direct_transition": "Terminal" + }, + "Activated Clotting Time": { + "type": "Observation", + "category": "laboratory", + "unit": "s", + "codes": [ + { + "system": "LOINC", + "code": "3184-9", + "display": "Activated clotting time (ACT) of Blood by Coagulation assay" + } + ], + "range": { + "low": 110, + "high": 500 + }, + "conditional_transition": [ + { + "transition": "Blood", + "condition": { + "condition_type": "Attribute", + "attribute": "cardiac_surgery", + "operator": "==", + "value": "tavr" + } + }, + { + "transition": "Protamine" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/avrr/outcomes.json b/src/main/resources/modules/heart/avrr/outcomes.json new file mode 100644 index 0000000..5f4d3fb --- /dev/null +++ b/src/main/resources/modules/heart/avrr/outcomes.json @@ -0,0 +1,1015 @@ +{ + "name": "outcomes", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "SAVRr outcomes based on operative status." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Mortality is set in postop" + }, + "Terminal": { + "type": "Terminal" + }, + "Check_Acute renal failure on dialysis": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Acute renal failure on dialysis", + "distribution": 0.012346 + }, + { + "transition": "Check_Acute respiratory insufficiency", + "distribution": 0.987654 + } + ] + }, + { + "distributions": [ + { + "transition": "Acute renal failure on dialysis", + "distribution": 0.001 + }, + { + "transition": "Check_Acute respiratory insufficiency", + "distribution": 0.999 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + } + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Acute renal failure on dialysis", + "distribution": 0.025 + }, + { + "transition": "Check_Acute respiratory insufficiency", + "distribution": 0.975 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Acute renal failure on dialysis", + "distribution": 0.025 + }, + { + "transition": "Check_Acute respiratory insufficiency", + "distribution": 0.975 + } + ] + } + ] + }, + "Check_Acute respiratory insufficiency": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Acute respiratory insufficiency", + "distribution": 0.049383 + }, + { + "transition": "Terminal", + "distribution": 0.950617 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Acute respiratory insufficiency", + "distribution": 0.001 + }, + { + "transition": "Terminal", + "distribution": 0.999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Acute respiratory insufficiency", + "distribution": 0.175 + }, + { + "transition": "Terminal", + "distribution": 0.825 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Acute respiratory insufficiency", + "distribution": 0.175 + }, + { + "transition": "Terminal", + "distribution": 0.8250000000000001 + } + ] + } + ] + }, + "Reexploration procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "232816009", + "display": "Aortic valve and adjacent structure operations (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "261554009", + "display": "Reoperation (qualifier value)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 72.6, + "standardDeviation": 28.6 + } + }, + "unit": "minutes", + "direct_transition": "Check postop pacemaker", + "reason": "savrr_history" + }, + "Acute renal failure on dialysis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "129721000119106", + "display": "Acute renal failure on dialysis (disorder)" + } + ], + "direct_transition": "End renal failure with dialysis" + }, + "Acute respiratory insufficiency": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65710008", + "display": "Acute respiratory failure (disorder)" + } + ], + "direct_transition": "End insufficiency" + }, + "Check Postop RBC Transfusion": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "RBC Transfusion", + "distribution": 0.160494 + }, + { + "transition": "Check applicability", + "distribution": 0.839506 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "RBC Transfusion", + "distribution": 0.666667 + }, + { + "transition": "Check applicability", + "distribution": 0.333333 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "RBC Transfusion", + "distribution": 0.999 + }, + { + "transition": "Check applicability", + "distribution": 0.001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "RBC Transfusion", + "distribution": 0.4 + }, + { + "transition": "Check applicability", + "distribution": 0.6 + } + ] + } + ] + }, + "Mortality is set in postop": { + "type": "Simple", + "direct_transition": "Check Postop RBC Transfusion" + }, + "RBC Transfusion": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "116863004", + "display": "Transfusion of red blood cells (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 10 + } + }, + "unit": "minutes", + "direct_transition": "Check applicability", + "reason": "savrr_history" + }, + "Check Reop procedure": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Reexploration procedure", + "distribution": 0.0001 + }, + { + "transition": "Check postop pacemaker", + "distribution": 0.9999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Reexploration procedure", + "distribution": 0.0001 + }, + { + "transition": "Check postop pacemaker", + "distribution": 0.9999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Reexploration procedure", + "distribution": 0.0001 + }, + { + "transition": "Check postop pacemaker", + "distribution": 0.9999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Reexploration procedure", + "distribution": 0.0001 + }, + { + "transition": "Check postop pacemaker", + "distribution": 0.9999 + } + ] + } + ] + }, + "Check postop pacemaker": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Postop Pacemaker", + "distribution": 0.001 + }, + { + "transition": "Check postop bleeding", + "distribution": 0.999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Postop Pacemaker", + "distribution": 0.166667 + }, + { + "transition": "Check postop bleeding", + "distribution": 0.8333330000000001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Postop Pacemaker", + "distribution": 0.16670000000000007 + }, + { + "transition": "Check postop bleeding", + "distribution": 0.8332999999999999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Postop Pacemaker", + "distribution": 0.075 + }, + { + "transition": "Check postop bleeding", + "distribution": 0.925 + } + ] + } + ] + }, + "Postop Pacemaker": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "233174007", + "display": "Cardiac pacemaker procedure (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "The Pacemaker", + "reason": "savrr_history" + }, + "The Pacemaker": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "14106009", + "display": "Cardiac pacemaker, device (physical object)" + }, + "direct_transition": "Check postop bleeding", + "assign_to_attribute": "pacemaker" + }, + "Check postop bleeding": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Bleeding", + "distribution": 0.006173 + }, + { + "transition": "Check postop myocardial infarction", + "distribution": 0.993827 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Bleeding", + "distribution": 0.001 + }, + { + "transition": "Check postop myocardial infarction", + "distribution": 0.999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Bleeding", + "distribution": 0.01 + }, + { + "transition": "Check postop myocardial infarction", + "distribution": 0.99 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Bleeding", + "distribution": 0.001 + }, + { + "transition": "Check postop myocardial infarction", + "distribution": 0.999 + } + ] + } + ] + }, + "Bleeding": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "278365007", + "display": "Anticoagulant-induced bleeding (disorder)" + } + ], + "direct_transition": "End Bleeding" + }, + "Check postop myocardial infarction": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Postoperative_myocardial_infarction", + "distribution": 0.001 + }, + { + "transition": "Check_Infectious_mediastinitis", + "distribution": 0.999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Postoperative_myocardial_infarction", + "distribution": 0.001 + }, + { + "transition": "Check_Infectious_mediastinitis", + "distribution": 0.999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Postoperative_myocardial_infarction", + "distribution": 0.001 + }, + { + "transition": "Check_Infectious_mediastinitis", + "distribution": 0.999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Postoperative_myocardial_infarction", + "distribution": 0.001 + }, + { + "transition": "Check_Infectious_mediastinitis", + "distribution": 0.999 + } + ] + } + ] + }, + "Postoperative_myocardial_infarction": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "129574000", + "display": "Postoperative myocardial infarction (disorder)" + } + ], + "direct_transition": "End MI" + }, + "Check postop stroke": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Stroke", + "distribution": 0.001 + }, + { + "transition": "Check postop renal failure", + "distribution": 0.999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Stroke", + "distribution": 0.001 + }, + { + "transition": "Check postop renal failure", + "distribution": 0.999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Stroke", + "distribution": 0.05 + }, + { + "transition": "Check postop renal failure", + "distribution": 0.9500000000000001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Stroke", + "distribution": 0.05 + }, + { + "transition": "Check postop renal failure", + "distribution": 0.9500000000000001 + } + ] + } + ] + }, + "Stroke": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "230690007", + "display": "Cerebrovascular accident (disorder)" + } + ], + "direct_transition": "End Stroke" + }, + "Check postop renal failure": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Postoperative_renal_failure", + "distribution": 0.012346 + }, + { + "transition": "Check_Acute renal failure on dialysis", + "distribution": 0.987654 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Postoperative_renal_failure", + "distribution": 0.001 + }, + { + "transition": "Check_Acute renal failure on dialysis", + "distribution": 0.9990000000000001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Postoperative_renal_failure", + "distribution": 0.025 + }, + { + "transition": "Check_Acute renal failure on dialysis", + "distribution": 0.9750000000000001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Postoperative_renal_failure", + "distribution": 0.025 + }, + { + "transition": "Check_Acute renal failure on dialysis", + "distribution": 0.9750000000000001 + } + ] + } + ] + }, + "Postoperative_renal_failure": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "275408006", + "display": "Postoperative renal failure (disorder)" + } + ], + "direct_transition": "End renal failure" + }, + "End Bleeding": { + "type": "ConditionEnd", + "direct_transition": "Check postop myocardial infarction", + "condition_onset": "Bleeding" + }, + "End MI": { + "type": "ConditionEnd", + "direct_transition": "Check_Infectious_mediastinitis", + "condition_onset": "Postoperative_myocardial_infarction" + }, + "End Stroke": { + "type": "ConditionEnd", + "direct_transition": "Check postop renal failure", + "condition_onset": "Stroke" + }, + "End renal failure": { + "type": "ConditionEnd", + "direct_transition": "Check_Acute renal failure on dialysis", + "condition_onset": "Postoperative_renal_failure" + }, + "End renal failure with dialysis": { + "type": "ConditionEnd", + "direct_transition": "Check_Acute respiratory insufficiency", + "condition_onset": "Acute renal failure on dialysis" + }, + "End insufficiency": { + "type": "ConditionEnd", + "direct_transition": "Terminal", + "condition_onset": "Acute respiratory insufficiency" + }, + "Check applicability": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "savrr_mortality", + "operator": "is nil" + }, + { + "condition_type": "Attribute", + "attribute": "savrr_mortality", + "operator": "==", + "value": false + } + ] + }, + { + "condition_type": "Attribute", + "attribute": "savrr_icu_los", + "operator": "is nil" + } + ] + } + }, + { + "transition": "Check Reop procedure" + } + ] + }, + "Check_Infectious_mediastinitis": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Infectious_mediastinitis", + "distribution": 0.987654 + }, + { + "transition": "Check postop stroke", + "distribution": 0.012345999999999968 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Infectious_mediastinitis", + "distribution": 0.999 + }, + { + "transition": "Check postop stroke", + "distribution": 0.001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Infectious_mediastinitis", + "distribution": 0.999 + }, + { + "transition": "Check postop stroke", + "distribution": 0.001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Infectious_mediastinitis", + "distribution": 0.975 + }, + { + "transition": "Check postop stroke", + "distribution": 0.025000000000000022 + } + ] + } + ] + }, + "Infectious_mediastinitis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "312157006", + "display": "Infectious mediastinitis (disorder)" + } + ], + "direct_transition": "End mediastinitis" + }, + "End mediastinitis": { + "type": "ConditionEnd", + "direct_transition": "Check postop stroke", + "condition_onset": "Infectious_mediastinitis" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/avrr/preoperative.json b/src/main/resources/modules/heart/avrr/preoperative.json new file mode 100644 index 0000000..0255038 --- /dev/null +++ b/src/main/resources/modules/heart/avrr/preoperative.json @@ -0,0 +1,596 @@ +{ + "name": "preoperative", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Preoperative Testing" + }, + "Terminal": { + "type": "Terminal" + }, + "Priority 2+": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Coronary Angiography", + "condition": { + "condition_type": "Attribute", + "attribute": "care_priority_level", + "operator": ">=", + "value": 2 + } + }, + { + "transition": "Terminal" + } + ] + }, + "Priority 3+": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Dental Clearance", + "condition": { + "condition_type": "Attribute", + "attribute": "care_priority_level", + "operator": ">=", + "value": 3 + } + }, + { + "transition": "Terminal" + } + ] + }, + "Preoperative Testing": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "110467000", + "display": "Pre-surgery testing (procedure)" + } + ], + "duration": { + "low": 30, + "high": 90, + "unit": "minutes" + }, + "direct_transition": "Common Labs" + }, + "Electrocardiogram (ECG)": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29303009", + "display": "Electrocardiographic procedure (procedure)" + } + ], + "duration": { + "low": 5, + "high": 10, + "unit": "minutes" + }, + "direct_transition": "Chest_X_Ray" + }, + "Chest_X_Ray": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain X-ray of chest (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "51185008", + "display": "Thoracic structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "CR", + "display": "Computed Radiography" + }, + "instances": [ + { + "title": "Title of this image", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.1", + "display": "Digital X-Ray Image Storage – for Presentation" + } + } + ] + } + ], + "direct_transition": "Priority 2+" + }, + "PFTS Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Pulmonary function testing", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "copd_variant", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "==", + "value": true + } + ] + } + }, + { + "transition": "Doppler Check" + } + ] + }, + "Pulmonary function testing": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "23426006", + "display": "Measurement of respiratory function (procedure)" + } + ], + "duration": { + "low": 45, + "high": 90, + "unit": "minutes" + }, + "direct_transition": "Doppler Check" + }, + "Doppler Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Doppler ultrasonography of artery", + "condition": { + "condition_type": "Attribute", + "attribute": "stroke_history", + "operator": "is not nil" + } + }, + { + "transition": "Terminal" + } + ] + }, + "Doppler ultrasonography of artery": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "709979004", + "display": "Doppler ultrasonography of artery (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "51345006", + "display": "Carotid body structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "US", + "display": "Ultrasound" + }, + "instances": [ + { + "title": "Ultrasound Multiframe Image Storage", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.3.1", + "display": "Ultrasound Multiframe Image Storage" + } + } + ] + } + ], + "direct_transition": "Computed tomography of head" + }, + "Computed tomography of head": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "303653007", + "display": "Computed tomography of head (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "69536005", + "display": "Head structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "CT", + "display": "Computed Tomography" + }, + "instances": [ + { + "title": "CT Image Storage", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.2", + "display": "CT Image Storage" + } + } + ] + } + ], + "direct_transition": "Terminal" + }, + "Common Labs": { + "type": "CallSubmodule", + "submodule": "heart/cardiac_labs", + "direct_transition": "Blood Type and Cross" + }, + "Blood Type and Cross": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "44608003", + "display": "Blood group typing (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "Electrocardiogram (ECG)", + "remarks": [ + "Synthea patients do not yet have blood types or Rh factors." + ] + }, + "Coronary Angiography": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "33367005", + "display": "Angiography of coronary artery (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "Pick # Diseased Vessels" + }, + "Pick # Diseased Vessels": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Num_Diseased_Vessels_0", + "distribution": 0.781 + }, + { + "transition": "Num_Diseased_Vessels_1", + "distribution": 0.163 + }, + { + "transition": "Num_Diseased_Vessels_2", + "distribution": 0.0306 + }, + { + "transition": "Num_Diseased_Vessels_3", + "distribution": 0.025399999999999978 + } + ] + }, + "Num_Diseased_Vessels_0": { + "type": "SetAttribute", + "attribute": "avrr_num_diseased_vessels", + "direct_transition": "Risk Calculator Scoring", + "value": 0 + }, + "Num_Diseased_Vessels_1": { + "type": "SetAttribute", + "attribute": "avrr_num_diseased_vessels", + "direct_transition": "Risk Calculator Scoring", + "value": 1 + }, + "Num_Diseased_Vessels_2": { + "type": "SetAttribute", + "attribute": "avrr_num_diseased_vessels", + "direct_transition": "Risk Calculator Scoring", + "value": 2 + }, + "Num_Diseased_Vessels_3": { + "type": "SetAttribute", + "attribute": "avrr_num_diseased_vessels", + "direct_transition": "Risk Calculator Scoring", + "value": 3 + }, + "Risk Calculator Scoring": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225338004", + "display": "Risk assessment (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "Surgical Risk Score Placeholder" + }, + "Gait-Speed Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "252480006", + "display": "Simple walk test (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "NYHA Functional Classification" + }, + "Dental Clearance": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "772071006", + "display": "Referral to dentist (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "Initiate_Dental_Cleaning" + }, + "Clinical Fragility Scale": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "763228001", + "display": "Assessment using Canadian Study of Health and Aging Clinical Frailty Scale (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "Assessment" + }, + "Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "445988008", + "display": "Assessment using health assessment questionnaire (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "KCCQ-12" + }, + "KCCQ-12": { + "type": "MultiObservation", + "category": "vital-signs", + "number_of_observations": 0, + "codes": [ + { + "system": "LOINC", + "code": "86923-0", + "display": "Kansas City Cardiomyopathy Questionnaire - 12 item [KCCQ-12]" + } + ], + "direct_transition": "PFTS Check", + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "86924-8", + "display": "Overall summary score [KCCQ-12]" + } + ], + "range": { + "low": 0, + "high": 100 + } + } + ] + }, + "NYHA Functional Classification": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "762998009", + "display": "Assessment using New York Heart Association Classification (procedure)" + } + ], + "unit": "minutes", + "distributed_transition": [ + { + "transition": "NYHA_1", + "distribution": 0.0332 + }, + { + "transition": "NYHA_2", + "distribution": 0.179 + }, + { + "transition": "NYHA_3", + "distribution": 0.6176 + }, + { + "transition": "NYHA_4", + "distribution": 0.1701999999999999 + } + ] + }, + "Surgical Risk Score Placeholder": { + "type": "Simple", + "direct_transition": "Computed_tomography_of_chest_and_pelvis", + "remarks": [ + "Placeholder for now because there is no LOINC to use for this" + ] + }, + "NYHA_1": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "93124-6", + "display": "New York Heart Association Functional Classification panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88020-3", + "display": "Functional capacity NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28404-4", + "display": "Class I" + } + } + ], + "direct_transition": "Clinical Fragility Scale" + }, + "NYHA_2": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "93124-6", + "display": "New York Heart Association Functional Classification panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88020-3", + "display": "Functional capacity NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28405-1", + "display": "Class II" + } + } + ], + "direct_transition": "Clinical Fragility Scale" + }, + "NYHA_3": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "93124-6", + "display": "New York Heart Association Functional Classification panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88020-3", + "display": "Functional capacity NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28406-9", + "display": "Class III" + } + } + ], + "direct_transition": "Clinical Fragility Scale" + }, + "NYHA_4": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "93124-6", + "display": "New York Heart Association Functional Classification panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88020-3", + "display": "Functional capacity NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28407-7", + "display": "Class IV" + } + } + ], + "direct_transition": "Clinical Fragility Scale" + }, + "Computed_tomography_of_chest_and_pelvis": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "418023006", + "display": "Computed tomography of chest, abdomen and pelvis (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "732167000", + "display": "Entire chest and abdomen and pelvis (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "CT", + "display": "Computed Tomography" + }, + "instances": [ + { + "title": "CT Image Storage", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.2", + "display": "CT Image Storage" + } + } + ] + } + ], + "direct_transition": "Priority 3+" + }, + "Initiate_Dental_Cleaning": { + "type": "SetAttribute", + "attribute": "dental_referral", + "value_attribute": "vhd_diagnosis", + "direct_transition": "Gait-Speed Assessment" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/avrr/savrr_operation.json b/src/main/resources/modules/heart/avrr/savrr_operation.json new file mode 100644 index 0000000..cfb1e1f --- /dev/null +++ b/src/main/resources/modules/heart/avrr/savrr_operation.json @@ -0,0 +1,359 @@ +{ + "name": "SAVRr_Operation", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Intraop Care" + }, + "Terminal": { + "type": "Terminal" + }, + "Intraop Care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "133900002", + "display": "Intraoperative care (regime/therapy)" + } + ], + "unit": "minutes", + "direct_transition": "OR Labs and Meds" + }, + "OR Labs and Meds": { + "type": "CallSubmodule", + "submodule": "heart/avrr/intraop_meds_blood", + "direct_transition": "Arterial_Line_Insertion" + }, + "Administer Anesthesia": { + "type": "CallSubmodule", + "submodule": "surgery/general_anesthesia", + "direct_transition": "Incision" + }, + "Incision": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "34896006", + "display": "Incision (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "Cannulation" + }, + "Cannulation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "42825003", + "display": "Cannulation (procedure)" + } + ], + "duration": { + "low": 2, + "high": 6, + "unit": "minutes" + }, + "direct_transition": "CPB" + }, + "CPB": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "63697000", + "display": "Cardiopulmonary bypass operation (procedure)" + } + ], + "duration": { + "low": 2, + "high": 6, + "unit": "minutes" + }, + "direct_transition": "Placement_of_Aortic_Cross_Clamp" + }, + "Placement_of_Aortic_Cross_Clamp": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "301882004", + "display": "Placement of aortic cross clamp (procedure)" + } + ], + "duration": { + "low": 2, + "high": 6, + "unit": "minutes" + }, + "direct_transition": "Induced_cardioplegia" + }, + "Induced_cardioplegia": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "8290005", + "display": "Induced cardioplegia (procedure)" + } + ], + "duration": { + "low": 2, + "high": 6, + "unit": "minutes" + }, + "conditional_transition": [ + { + "transition": "Device Type", + "condition": { + "condition_type": "Attribute", + "attribute": "cardiac_surgery", + "operator": "==", + "value": "savreplace" + } + }, + { + "transition": "AV Repair Procedure" + } + ] + }, + "Removal_of_Aortic_Cross_Clamp": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "301884003", + "display": "Removal of aortic cross clamp (procedure)" + } + ], + "duration": { + "low": 2, + "high": 6, + "unit": "minutes" + }, + "direct_transition": "Transesophageal Echo​" + }, + "Vascular_Cannula_Removal": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "233553003", + "display": "Vascular cannula removal (procedure)" + } + ], + "duration": { + "low": 2, + "high": 6, + "unit": "minutes" + }, + "direct_transition": "Dressing" + }, + "Arterial_Line_Insertion": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "392247006", + "display": "Insertion of catheter into artery (procedure)" + } + ], + "duration": { + "low": 6, + "high": 10, + "unit": "minutes" + }, + "direct_transition": "Administer Anesthesia" + }, + "Device Type": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Mechanical", + "distribution": 0.22 + }, + { + "transition": "Bioprosthetic", + "distribution": 0.77 + }, + { + "transition": "Other Device Type", + "distribution": 0.01 + } + ] + }, + "Mechanical": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "705991002", + "display": "Mechanical cardiac valve prosthesis (physical object)" + }, + "direct_transition": "AV Replacement Procedure", + "assign_to_attribute": "mechanical_cardiac_valve_prothesis" + }, + "Bioprosthetic": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "860577005", + "display": "Aortic valve bioprosthesis (physical object)" + }, + "direct_transition": "AV Replacement Procedure", + "assign_to_attribute": "aortic_valve_bioprothesis" + }, + "Other Device Type": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "706449001", + "display": "Valve (physical object)" + }, + "direct_transition": "AV Replacement Procedure" + }, + "AV Replacement Procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "26212005", + "display": "Replacement of aortic valve (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 204.2608696, + "standardDeviation": 56.52241546 + } + }, + "unit": "minutes", + "direct_transition": "Removal_of_Aortic_Cross_Clamp", + "reason": "cardiac_surgery_reason" + }, + "AV Repair Procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1155885007", + "display": "Repair of aortic valve (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 240, + "low": 120 + } + }, + "unit": "minutes", + "direct_transition": "Removal_of_Aortic_Cross_Clamp" + }, + "Dressing": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "58828004", + "display": "Application of dressing, sterile (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "OR_Exit" + }, + "OR_Exit": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "37729005", + "display": "Patient transfer, in-hospital (procedure)" + } + ], + "unit": "minutes", + "conditional_transition": [ + { + "transition": "AV Replacement History", + "condition": { + "condition_type": "Attribute", + "attribute": "cardiac_surgery", + "operator": "==", + "value": "savreplace" + } + }, + { + "transition": "AV Repair History" + } + ] + }, + "Finish_Surgery": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "AV Replacement History": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1231000119100", + "display": "History of aortic valve replacement (situation)" + } + ], + "direct_transition": "Finish_Surgery", + "assign_to_attribute": "savrr_history" + }, + "AV Repair History": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "119481000119105", + "display": "History of aortic valve repair (situation)" + } + ], + "direct_transition": "Finish_Surgery", + "assign_to_attribute": "savrr_history" + }, + "Transesophageal Echo​": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "105376000", + "display": "Transesophageal echocardiography (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "80891009", + "display": "Heart structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "US", + "display": "Ultrasound" + }, + "instances": [ + { + "title": "Ultrasound Multiframe Image Storage", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.3.1", + "display": "Ultrasound Multiframe Image Storage" + } + } + ] + } + ], + "direct_transition": "Vascular_Cannula_Removal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/avrr/savrr_postop.json b/src/main/resources/modules/heart/avrr/savrr_postop.json new file mode 100644 index 0000000..f11b24b --- /dev/null +++ b/src/main/resources/modules/heart/avrr/savrr_postop.json @@ -0,0 +1,891 @@ +{ + "name": "savrr_postop", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "This submodule of Cardiac Surgery models Postoperative ICU and Ward Care." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Set_Mortality" + }, + "Terminal": { + "type": "Terminal" + }, + "Discharge": { + "type": "EncounterEnd", + "direct_transition": "Admission to Ward" + }, + "Check Alive": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Deceased", + "condition": { + "condition_type": "Attribute", + "attribute": "savrr_mortality", + "operator": "==", + "value": true + } + }, + { + "transition": "Set_ICU_LOS" + } + ] + }, + "Deceased": { + "type": "Death", + "direct_transition": "Terminal" + }, + "Begin Day": { + "type": "Counter", + "attribute": "savrr_icu_los", + "action": "decrement", + "conditional_transition": [ + { + "transition": "ICU_ECG", + "condition": { + "condition_type": "Attribute", + "attribute": "savrr_ico_los", + "operator": "<=", + "value": 1 + } + }, + { + "transition": "ICU Labs" + } + ] + }, + "End Day": { + "type": "Delay", + "exact": { + "quantity": 12, + "unit": "hours" + }, + "conditional_transition": [ + { + "transition": "Begin Day", + "condition": { + "condition_type": "Attribute", + "attribute": "savrr_icu_los", + "operator": ">", + "value": 0 + } + }, + { + "transition": "End ICU Care Plan" + } + ] + }, + "Ventilation Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Ventilation", + "condition": { + "condition_type": "Attribute", + "attribute": "Ventilator Reason", + "operator": "is not nil" + } + }, + { + "transition": "Extubation" + } + ] + }, + "Ventilation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "243150007", + "display": "Assist control ventilation (regime/therapy)" + } + ], + "reason": "Ventilator Reason", + "direct_transition": "End Ventilation", + "duration": { + "low": 4, + "high": 6, + "unit": "hours" + } + }, + "Extubation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "271280005", + "display": "Removal of endotracheal tube (procedure)" + } + ], + "duration": { + "low": 20, + "high": 40, + "unit": "minutes" + }, + "direct_transition": "ICU_Care_Plan" + }, + "End Ventilation": { + "type": "ConditionEnd", + "direct_transition": "Extubation", + "referenced_by_attribute": "Ventilator Reason" + }, + "ICU Labs": { + "type": "CallSubmodule", + "submodule": "encounter/hospital_basic_labs", + "direct_transition": "Half Day" + }, + "Discharge to Ward": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "306706006", + "display": "Discharge to ward (procedure)" + } + ], + "direct_transition": "Discharge", + "reason": "savrr_history" + }, + "Admission to Ward": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305342007", + "display": "Admission to ward (procedure)" + } + ], + "direct_transition": "Antithrombic", + "reason": "savrr_history" + }, + "Discharge to Home": { + "type": "EncounterEnd", + "direct_transition": "No SNF", + "discharge_disposition": { + "system": "NUBC", + "code": "01", + "display": "Discharged to home care or self care (routine discharge)" + } + }, + "Discharge to Facility": { + "type": "EncounterEnd", + "direct_transition": "SNF", + "discharge_disposition": { + "system": "NUBC", + "code": "04", + "display": "Discharged/transferred to a facility that provides custodial or supportive care" + } + }, + "Post Discharge Outcomes": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "cardiac_surgery", + "operator": "==", + "value": "savreplace" + }, + "distributions": [ + { + "transition": "Dying After Discharge", + "distribution": 0.01442 + }, + { + "transition": "SNF Check", + "distribution": 0.98558 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "cardiac_surgery", + "operator": "==", + "value": "savrepair" + }, + "distributions": [ + { + "transition": "Dying After Discharge", + "distribution": 0.01 + }, + { + "transition": "SNF Check", + "distribution": 0.99 + } + ] + }, + { + "distributions": [ + { + "transition": "Dying After Discharge", + "distribution": 0.01 + }, + { + "transition": "SNF Check", + "distribution": 0.99 + } + ] + } + ] + }, + "Discharge from Hospital": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308283009", + "display": "Discharge from hospital (procedure)" + } + ], + "duration": { + "low": 15, + "high": 30, + "unit": "minutes" + }, + "reason": "savrr_history", + "conditional_transition": [ + { + "transition": "SAVReplace Dispo", + "condition": { + "condition_type": "Attribute", + "attribute": "cardiac_surgery", + "operator": "==", + "value": "savreplace" + } + }, + { + "transition": "SAVRepair Dispo" + } + ] + }, + "Half Day": { + "type": "Delay", + "exact": { + "quantity": 12, + "unit": "hours" + }, + "direct_transition": "Repeat_ICU_Labs" + }, + "Repeat_ICU_Labs": { + "type": "CallSubmodule", + "submodule": "encounter/hospital_basic_labs", + "direct_transition": "End Day" + }, + "Dying After Discharge": { + "type": "Death", + "direct_transition": "SNF Check", + "range": { + "low": 1, + "high": 30, + "unit": "days" + } + }, + "ICU_Care_Plan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "735321000", + "display": "Surgical inpatient care plan (record artifact)" + } + ], + "reason": "savrr_history", + "activities": [ + { + "system": "SNOMED-CT", + "code": "736767005", + "display": "Perioperative care management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "182810003", + "display": "Intensive care monitoring (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "410207002", + "display": "Respiratory care management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "387760006", + "display": "Infusion care (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "370771002", + "display": "Maintenance of invasive device (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "15220000", + "display": "Laboratory test (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "385949008", + "display": "Dressing change management (procedure)" + } + ], + "direct_transition": "Begin Day" + }, + "ICU_ECG": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "268400002", + "display": "12 lead electrocardiogram (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 20 + } + }, + "unit": "minutes", + "reason": "savrr_history", + "direct_transition": "Chest_X_Ray_2" + }, + "Chest_X_Ray_2": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain X-ray of chest (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "51185008", + "display": "Thoracic structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "CR", + "display": "Computed Radiography" + }, + "instances": [ + { + "title": "Title of this image", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.1", + "display": "Digital X-Ray Image Storage – for Presentation" + } + } + ] + } + ], + "direct_transition": "Transthoracic_Echo" + }, + "Transthoracic_Echo": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "433236007", + "display": "Transthoracic echocardiography (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "80891009", + "display": "Heart structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "US", + "display": "Ultrasound" + }, + "instances": [ + { + "title": "Heart structure (body structure)", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.3.1", + "display": "Ultrasound Multiframe Image Storage" + } + } + ] + } + ], + "direct_transition": "ICU Labs" + }, + "End ICU Care Plan": { + "type": "CarePlanEnd", + "direct_transition": "Discharge to Ward", + "careplan": "ICU_Care_Plan" + }, + "PostOp_Care_Plan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736372004", + "display": "Discharge care plan (record artifact)" + } + ], + "direct_transition": "Discharge from Hospital", + "reason": "savrr_history", + "activities": [ + { + "system": "SNOMED-CT", + "code": "736767005", + "display": "Perioperative care management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "48428001", + "display": "Cardiovascular monitoring (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "718451004", + "display": "Management of vascular system care (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "370864003", + "display": "Activity care (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "422972009", + "display": "Advance diet as tolerated (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "405784000", + "display": "Pharmacological assessment (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "385949008", + "display": "Dressing change management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "311401005", + "display": "Patient education (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "1156892006", + "display": "Scheduling of follow up appointment (procedure)" + } + ] + }, + "Antithrombic": { + "type": "CallSubmodule", + "submodule": "heart/avrr/antithrombotic", + "direct_transition": "Hospital Labs" + }, + "Hospital Labs": { + "type": "CallSubmodule", + "submodule": "encounter/hospital_basic_labs", + "direct_transition": "PostOp_Care_Plan" + }, + "SAVReplace Dispo": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Discharge to Home", + "distribution": 0.944 + }, + { + "transition": "Discharge to Facility", + "distribution": 0.05600000000000016 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Discharge to Home", + "distribution": 0.833 + }, + { + "transition": "Discharge to Facility", + "distribution": 0.16700000000000004 + } + ] + }, + { + "distributions": [ + { + "transition": "Discharge to Home", + "distribution": 0.833 + }, + { + "transition": "Discharge to Facility", + "distribution": 0.16700000000000004 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + } + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Discharge to Home", + "distribution": 0.8 + }, + { + "transition": "Discharge to Facility", + "distribution": 0.2 + } + ] + } + ] + }, + "SAVRepair Dispo": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Discharge to Home", + "distribution": 0.93 + }, + { + "transition": "Discharge to Facility", + "distribution": 0.07 + } + ] + }, + "SNF Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Call_SNF_Submodule", + "condition": { + "condition_type": "Attribute", + "attribute": "postop_snf", + "operator": "==", + "value": true + } + }, + { + "transition": "Terminal" + } + ] + }, + "Call_SNF_Submodule": { + "type": "Simple", + "remarks": [ + "TODO" + ], + "direct_transition": "Terminal" + }, + "SNF": { + "type": "SetAttribute", + "attribute": "postop_snf", + "direct_transition": "Post Discharge Outcomes", + "value": true + }, + "No SNF": { + "type": "SetAttribute", + "attribute": "postop_snf", + "direct_transition": "Post Discharge Outcomes", + "value": false + }, + "Set_Mortality": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Replace Mortality", + "condition": { + "condition_type": "Attribute", + "attribute": "cardiac_surgery", + "operator": "==", + "value": "savreplace" + } + }, + { + "transition": "Repair Mortality", + "condition": { + "condition_type": "Attribute", + "attribute": "cardiac_surgery", + "operator": "==", + "value": "savrepair" + } + } + ] + }, + "Mortality": { + "type": "SetAttribute", + "attribute": "savrr_mortality", + "value": true, + "direct_transition": "Check Alive" + }, + "Replace Mortality": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Mortality", + "distribution": 0.006173 + }, + { + "transition": "Check Alive", + "distribution": 0.993827 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Mortality", + "distribution": 0.001 + }, + { + "transition": "Check Alive", + "distribution": 0.9990000000000001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Mortality", + "distribution": 0.025 + }, + { + "transition": "Check Alive", + "distribution": 0.975 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Mortality", + "distribution": 0.01442 + }, + { + "transition": "Check Alive", + "distribution": 0.98558 + } + ] + } + ] + }, + "Repair Mortality": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Mortality", + "distribution": 0.001 + }, + { + "transition": "Check Alive", + "distribution": 0.9990000000000001 + } + ] + }, + "SAVRr_Postop": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305351004", + "display": "Admission to intensive care unit (procedure)" + } + ], + "reason": "savrr_history", + "direct_transition": "Set_ICU_Outcomes" + }, + "Set_ICU_Outcomes": { + "type": "CallSubmodule", + "submodule": "heart/avrr/outcomes", + "direct_transition": "Ventilation Check" + }, + "Short_Stay": { + "type": "SetAttribute", + "attribute": "savrr_icu_los", + "distribution": { + "kind": "EXACT", + "round": false, + "parameters": { + "value": 1 + } + }, + "direct_transition": "SAVRr_Postop" + }, + "Medium_Stay": { + "type": "SetAttribute", + "attribute": "savrr_icu_los", + "distribution": { + "kind": "EXACT", + "round": false, + "parameters": { + "value": 2 + } + }, + "direct_transition": "SAVRr_Postop" + }, + "Long_Stay": { + "type": "SetAttribute", + "attribute": "savrr_icu_los", + "distribution": { + "kind": "UNIFORM", + "round": false, + "parameters": { + "high": 7, + "low": 3 + } + }, + "direct_transition": "SAVRr_Postop" + }, + "Set_ICU_LOS": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Short_Stay", + "distribution": 0.438272 + }, + { + "transition": "Medium_Stay", + "distribution": 0.308642 + }, + { + "transition": "Long_Stay", + "distribution": 0.2530859999999999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Short_Stay", + "distribution": 0.166667 + }, + { + "transition": "Medium_Stay", + "distribution": 0.166667 + }, + { + "transition": "Long_Stay", + "distribution": 0.666666 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Short_Stay", + "distribution": 0.166667 + }, + { + "transition": "Medium_Stay", + "distribution": 0.166667 + }, + { + "transition": "Long_Stay", + "distribution": 0.666666 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Short_Stay", + "distribution": 0.2 + }, + { + "transition": "Medium_Stay", + "distribution": 0.3 + }, + { + "transition": "Long_Stay", + "distribution": 0.5 + } + ] + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/avrr/sequence.json b/src/main/resources/modules/heart/avrr/sequence.json new file mode 100644 index 0000000..9864830 --- /dev/null +++ b/src/main/resources/modules/heart/avrr/sequence.json @@ -0,0 +1,460 @@ +{ + "name": "sequence", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "AVRR sequence." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "AV VHD Follow-up" + }, + "Terminal": { + "type": "Terminal" + }, + "AV VHD Follow-up": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "vhd_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "History & Physical Exam" + }, + "History & Physical Exam": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "63332003", + "display": "History AND physical examination (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 20, + "low": 5 + } + }, + "unit": "minutes", + "direct_transition": "Review of Imaging", + "reason": "vhd_diagnosis" + }, + "Review of Imaging": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "365853002", + "display": "Imaging finding (finding)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 20, + "low": 5 + } + }, + "unit": "minutes", + "direct_transition": "Operative Procedure Planned", + "reason": "vhd_diagnosis" + }, + "Operative Procedure Planned": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183976008", + "display": "Operative procedure planned (situation)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 0 + } + }, + "unit": "minutes", + "reason": "vhd_diagnosis", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "bicuspid_aortic_valve", + "operator": "==", + "value": true + }, + "distributions": [ + { + "transition": "AVRepair", + "distribution": 0.025 + }, + { + "transition": "AVReplace", + "distribution": 0.975 + } + ] + }, + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60234000", + "display": "Aortic valve regurgitation (disorder)" + } + ] + }, + "distributions": [ + { + "transition": "AVRepair", + "distribution": 0.025 + }, + { + "transition": "AVReplace", + "distribution": 0.975 + } + ] + }, + { + "transition": "AVReplace" + } + ] + }, + "AVReplace": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60573004", + "display": "Aortic valve stenosis (disorder)" + } + ] + }, + { + "condition_type": "Age", + "operator": "<", + "quantity": 65, + "unit": "years", + "value": 0 + } + ] + }, + "distributions": [ + { + "transition": "Set AV Replace", + "distribution": 0.7 + }, + { + "transition": "Set TAVR", + "distribution": 0.3 + } + ] + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60573004", + "display": "Aortic valve stenosis (disorder)" + } + ] + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">=", + "quantity": 65, + "unit": "years", + "value": 0 + }, + { + "condition_type": "Age", + "operator": "<=", + "quantity": 80, + "unit": "years", + "value": 0 + } + ] + } + ] + }, + "distributions": [ + { + "transition": "Set AV Replace", + "distribution": 0.2 + }, + { + "transition": "Set TAVR", + "distribution": 0.8 + } + ] + }, + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60234000", + "display": "Aortic valve regurgitation (disorder)" + } + ] + }, + "distributions": [ + { + "transition": "Set AV Replace", + "distribution": 0.94 + }, + { + "transition": "Set TAVR", + "distribution": 0.06 + } + ] + }, + { + "transition": "Set TAVR" + } + ] + }, + "AVRepair": { + "type": "Simple", + "direct_transition": "Set AV Repair" + }, + "Set AV Repair": { + "type": "SetAttribute", + "attribute": "cardiac_surgery", + "direct_transition": "Repair Operative Status", + "value": "savrepair" + }, + "Repair Operative Status": { + "type": "CallSubmodule", + "submodule": "heart/savrepair/operative_status", + "direct_transition": "Referral to surgery" + }, + "Referral to surgery": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "306185001", + "display": "Referral to cardiac surgery service (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 15, + "low": 5 + } + }, + "unit": "minutes", + "direct_transition": "End AV VHD Follow-up", + "reason": "vhd_diagnosis" + }, + "End AV VHD Follow-up": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Urgent Delay", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + } + ] + } + }, + { + "transition": "Non Urgent Delay" + } + ] + }, + "Set TAVR": { + "type": "SetAttribute", + "attribute": "cardiac_surgery", + "value": "tavr", + "direct_transition": "Repair_Operative_Status" + }, + "Set AV Replace": { + "type": "SetAttribute", + "attribute": "cardiac_surgery", + "value": "savreplace", + "direct_transition": "Replace Operative Status" + }, + "Repair_Operative_Status": { + "type": "CallSubmodule", + "submodule": "heart/tavr/operative_status", + "direct_transition": "Referral to surgery" + }, + "Replace Operative Status": { + "type": "CallSubmodule", + "submodule": "heart/savreplace/operative_status", + "direct_transition": "Referral to surgery" + }, + "Urgent Delay": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 48, + "low": 1 + } + }, + "unit": "hours", + "direct_transition": "Referral and Preoperative Testing" + }, + "Non Urgent Delay": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 7, + "low": 1 + } + }, + "unit": "days", + "direct_transition": "Referral and Preoperative Testing" + }, + "Referral and Preoperative Testing": { + "type": "CallSubmodule", + "submodule": "heart/avrr/avrr_referral", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "cabg_avrr", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "palliative_avrr", + "operator": "==", + "value": true + } + ] + } + }, + { + "transition": "TAVR Operation", + "condition": { + "condition_type": "Attribute", + "attribute": "cardiac_surgery", + "operator": "==", + "value": "tavr" + } + }, + { + "transition": "SAVRr Operation" + } + ] + }, + "SAVRr Operation": { + "type": "CallSubmodule", + "submodule": "heart/avrr/savrr_operation", + "direct_transition": "Mortality Check" + }, + "TAVR Operation": { + "type": "CallSubmodule", + "submodule": "heart/tavr/operation", + "direct_transition": "Mortality Check" + }, + "Mortality Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Death", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "savrr_mortality", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "tavr_mortality", + "operator": "==", + "value": true + } + ] + } + }, + { + "transition": "Post Op Check" + } + ] + }, + "Post Op Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "TAVR Postop", + "condition": { + "condition_type": "Attribute", + "attribute": "cardiac_surgery", + "operator": "==", + "value": "tavr" + } + }, + { + "transition": "SAVRr Postop" + } + ] + }, + "SAVRr Postop": { + "type": "CallSubmodule", + "submodule": "heart/avrr/savrr_postop", + "direct_transition": "Terminal" + }, + "TAVR Postop": { + "type": "CallSubmodule", + "submodule": "heart/tavr/postop", + "direct_transition": "Terminal" + }, + "Death": { + "type": "Death", + "direct_transition": "Terminal", + "referenced_by_attribute": "cardiac_surgery_reason" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/cabg/cabg_referral.json b/src/main/resources/modules/heart/cabg/cabg_referral.json new file mode 100644 index 0000000..94bed0b --- /dev/null +++ b/src/main/resources/modules/heart/cabg/cabg_referral.json @@ -0,0 +1,532 @@ +{ + "name": "CABG referral", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "This submodule of Cardiac Surgery models Referral Pathways.", + "", + "The high-level flow is as follows: ", + "Patients have an encounter for a cardiac problem wherein they are referred to cardiology for coronary angiography. Coronary angiography is performed with post-procedural care. As a result of abnormal angiography, patients are either: ", + "a. Referred to the Cardiac Surgery Service (i.e., accepted for CABG surgery);", + "b. Referred back to the Cardiology Service (i.e., for medical or percutaneous coronary intervention management); or", + "c. Referred to a Service, a small joint cardiology/cardiac surgery team or large multidisciplinary heart team, with final referral to the appropriate service (cardiology vs cardiac surgery).", + "", + "Subsequently, all CABG accepted patients are referred for either outpatient preoperative evaluation or immediate surgical admission, with the care path and wait time until surgery determined by the patient’s Priority.", + "", + "In the Surgery pathway: ", + "Referral to Surgery = Cardiac Surgery referral", + "End_Referral_Consultation = Cardiac Surgery acceptance", + "", + "Note: referral pathways may vary significantly based on the institution. " + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Set Consultation Count" + }, + "Terminal": { + "type": "Terminal" + }, + "Diagnostic": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "33367005", + "display": "Angiography of coronary artery (procedure)" + } + ], + "duration": { + "low": 45, + "high": 90, + "unit": "minutes" + }, + "direct_transition": "Abnormal Findings", + "reason": "cardiac_surgery_reason" + }, + "End Referral Consultation": { + "type": "EncounterEnd", + "direct_transition": "Wait for Appointment" + }, + "CABG Surgery": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Abnormal Findings", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32485007", + "display": "Hospital admission (procedure)" + } + ], + "direct_transition": "Terminal" + }, + "Abnormal Findings": { + "type": "ConditionOnset", + "assign_to_attribute": "", + "codes": [ + { + "system": "SNOMED-CT", + "code": "274531002", + "display": "Abnormal findings diagnostic imaging heart+coronary circulat (finding)" + } + ], + "direct_transition": "Postoperative Care" + }, + "Set Consultation Count": { + "type": "SetAttribute", + "attribute": "cabg_consultation_count", + "direct_transition": "Cardiology Consultation Encounter", + "value": 0 + }, + "Referral to Surgery": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "306185001", + "display": "Referral to cardiac surgery service (procedure)" + } + ], + "duration": { + "low": 5, + "high": 15, + "unit": "minutes" + }, + "reason": "Abnormal Findings", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "cabg_consultation_count", + "operator": ">", + "value": 0 + }, + "transition": "End_Referral_Consultation" + }, + { + "distributions": [ + { + "transition": "End_Referral_Consultation", + "distribution": 0.99 + }, + { + "transition": "Referral to Service", + "distribution": 0.01 + } + ] + } + ] + }, + "Referral to Service": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "306206005", + "display": "Referral to service (procedure)" + } + ], + "duration": { + "low": 5, + "high": 15, + "unit": "minutes" + }, + "reason": "Abnormal Findings", + "distributed_transition": [ + { + "transition": "Referral to Surgery", + "distribution": 0.5 + }, + { + "transition": "Repeat Referral", + "distribution": 0.5 + } + ] + }, + "Repeat Referral": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183519002", + "display": "Referral to cardiology service (procedure)" + } + ], + "duration": { + "low": 5, + "high": 15, + "unit": "minutes" + }, + "reason": "Abnormal Findings", + "direct_transition": "End Referral Consultation" + }, + "Wait for Appointment": { + "type": "Delay", + "direct_transition": "Count", + "range": { + "low": 1, + "high": 7, + "unit": "days" + } + }, + "Count": { + "type": "Counter", + "attribute": "cabg_consultation_count", + "action": "increment", + "direct_transition": "Cardiology Consultation Encounter" + }, + "End_Referral_Consultation": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Priority 1 Next Encounter", + "condition": { + "condition_type": "Attribute", + "attribute": "care_priority_level", + "operator": "==", + "value": 1 + } + }, + { + "transition": "Priority 2 Next Encounter", + "condition": { + "condition_type": "Attribute", + "attribute": "care_priority_level", + "operator": "==", + "value": 2 + } + }, + { + "transition": "Priority 3 Next Encounter", + "condition": { + "condition_type": "Attribute", + "attribute": "care_priority_level", + "operator": "==", + "value": 3 + } + }, + { + "transition": "Priority 4 Next_Encounter" + } + ] + }, + "Priority 1 Next Encounter": { + "type": "Delay", + "direct_transition": "Set Immediate Admission", + "range": { + "low": 0, + "high": 48, + "unit": "hours" + } + }, + "Priority 2 Next Encounter": { + "type": "Delay", + "range": { + "low": 1, + "high": 7, + "unit": "days" + }, + "distributed_transition": [ + { + "transition": "Preoperative Outpatient", + "distribution": 0.5 + }, + { + "transition": "Set Immediate Admission", + "distribution": 0.5 + } + ] + }, + "Priority 3 Next Encounter": { + "type": "Delay", + "direct_transition": "Preoperative Outpatient", + "range": { + "low": 7, + "high": 21, + "unit": "days" + } + }, + "Priority 4 Next_Encounter": { + "type": "Delay", + "range": { + "low": 21, + "high": 45, + "unit": "days" + }, + "direct_transition": "Preoperative Outpatient" + }, + "Immediate Surgical Admission": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "Abnormal Findings", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32485007", + "display": "Hospital admission (procedure)" + } + ], + "direct_transition": "Preoperative Testing" + }, + "Preoperative Outpatient": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Abnormal Findings", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "Set_Immediate_Admission_False" + }, + "Preoperative Testing": { + "type": "CallSubmodule", + "submodule": "heart/cabg/preoperative", + "direct_transition": "Treatment_Plan" + }, + "End Preoperative": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Priority_2_Next_Encounter", + "condition": { + "condition_type": "Attribute", + "attribute": "care_priority_level", + "operator": "==", + "value": 2 + } + }, + { + "transition": "Priority_3_Next_Encounter", + "condition": { + "condition_type": "Attribute", + "attribute": "care_priority_level", + "operator": "==", + "value": 3 + } + }, + { + "transition": "Priority_4_Next_Encounter", + "condition": { + "condition_type": "Attribute", + "attribute": "care_priority_level", + "operator": "==", + "value": 4 + } + } + ] + }, + "Set Immediate Admission": { + "type": "SetAttribute", + "attribute": "cabg_immediate_admission", + "direct_transition": "Immediate Surgical Admission", + "value": true + }, + "Priority_2_Next_Encounter": { + "type": "Delay", + "range": { + "low": 1, + "high": 7, + "unit": "days" + }, + "direct_transition": "CABG Surgery" + }, + "Priority_3_Next_Encounter": { + "type": "Delay", + "range": { + "low": 7, + "high": 21, + "unit": "days" + }, + "direct_transition": "CABG Surgery" + }, + "Priority_4_Next_Encounter": { + "type": "Delay", + "range": { + "low": 21, + "high": 45, + "unit": "days" + }, + "direct_transition": "CABG Surgery" + }, + "Cardiology Consultation Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "cardiac_surgery_reason", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "conditional_transition": [ + { + "transition": "Repeat_Referrals", + "condition": { + "condition_type": "Attribute", + "attribute": "cabg_consultation_count", + "operator": ">=", + "value": 1 + } + }, + { + "transition": "Cardiology Consultation" + } + ] + }, + "Cardiology Consultation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698314001", + "display": "Consultation for treatment (procedure)" + } + ], + "duration": { + "low": 45, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "Diagnostic", + "reason": "cardiac_surgery_reason" + }, + "Postoperative Care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736169004", + "display": "Post anesthesia care management (procedure)" + } + ], + "duration": { + "low": 2, + "high": 4, + "unit": "hours" + }, + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "cabg_consultation_count", + "operator": ">", + "value": 0 + }, + "transition": "Referral to Surgery" + }, + { + "distributions": [ + { + "transition": "Referral to Surgery", + "distribution": 0.35 + }, + { + "transition": "Referral to Service", + "distribution": 0.15 + }, + { + "transition": "Repeat Referral", + "distribution": 0.5 + } + ] + } + ], + "reason": "Abnormal Findings" + }, + "Repeat_Referrals": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Repeat Referral Medical Care", + "distribution": 0.02 + }, + { + "transition": "Repeat Referral PCI", + "distribution": 0.98 + } + ] + }, + "Repeat Referral PCI": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "415070008", + "display": "Percutaneous coronary intervention (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 90, + "low": 30 + } + }, + "unit": "minutes", + "assign_to_attribute": "repeat_referral_pci", + "direct_transition": "Terminal", + "reason": "Abnormal Findings" + }, + "Repeat Referral Medical Care": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "781087000", + "display": "Medical care (regime/therapy)" + } + ], + "direct_transition": "Terminal", + "reason": "Abnormal Findings", + "assign_to_attribute": "repeat_referral_medical" + }, + "Treatment_Plan": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "709138001", + "display": "Notification of treatment plan (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "Scheduling_Procedure" + }, + "Scheduling_Procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "410538000", + "display": "Scheduling (procedure)" + } + ], + "reason": "Abnormal Findings", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "cabg_immediate_admission", + "operator": "==", + "value": true + } + }, + { + "transition": "End Preoperative" + } + ] + }, + "Set_Immediate_Admission_False": { + "type": "SetAttribute", + "attribute": "cabg_immediate_admission", + "direct_transition": "Preoperative Testing", + "value": false + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/cabg/details.json b/src/main/resources/modules/heart/cabg/details.json new file mode 100644 index 0000000..c7298b0 --- /dev/null +++ b/src/main/resources/modules/heart/cabg/details.json @@ -0,0 +1,428 @@ +{ + "name": "details", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Pick Operative Approach" + }, + "Terminal": { + "type": "Terminal" + }, + "Pick Operative Approach": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Sternotomy", + "default_probability": 1, + "lookup_table_name": "cabg_details_operative_approach.csv" + }, + { + "transition": "Thoracotomy", + "default_probability": 0, + "lookup_table_name": "cabg_details_operative_approach.csv" + }, + { + "transition": "Anything Else", + "default_probability": 0, + "lookup_table_name": "cabg_details_operative_approach.csv" + } + ] + }, + "Pick Number of Grafts": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Graft_No_1", + "default_probability": 0.023, + "lookup_table_name": "cabg_details_num_grafts.csv" + }, + { + "transition": "Graft_No_2", + "default_probability": 0.27, + "lookup_table_name": "cabg_details_num_grafts.csv" + }, + { + "transition": "Graft_No_3", + "default_probability": 0.5, + "lookup_table_name": "cabg_details_num_grafts.csv" + }, + { + "transition": "Graft_No_4", + "default_probability": 0.179, + "lookup_table_name": "cabg_details_num_grafts.csv" + }, + { + "transition": "Graft_No_5", + "default_probability": 0.028, + "lookup_table_name": "cabg_details_num_grafts.csv" + }, + { + "transition": "Graft_No_6", + "default_probability": 0.001, + "lookup_table_name": "cabg_details_num_grafts.csv" + } + ] + }, + "Pick Number of CABG Arterial Conduits": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Art_Cond_1", + "default_probability": 0.478, + "lookup_table_name": "cabg_details_num_art_cond.csv" + }, + { + "transition": "Art_Cond_2", + "default_probability": 0.293, + "lookup_table_name": "cabg_details_num_art_cond.csv" + }, + { + "transition": "Art_Cond_3", + "default_probability": 0.144, + "lookup_table_name": "cabg_details_num_art_cond.csv" + }, + { + "transition": "Art_Cond_4", + "default_probability": 0.06, + "lookup_table_name": "cabg_details_num_art_cond.csv" + }, + { + "transition": "Art_Cond_5", + "default_probability": 0.023, + "lookup_table_name": "cabg_details_num_art_cond.csv" + }, + { + "transition": "Art_Cond_6", + "default_probability": 0.003, + "lookup_table_name": "cabg_details_num_art_cond.csv" + } + ] + }, + "Sternotomy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "359672006", + "display": "Median sternotomy (procedure)" + } + ], + "assign_to_attribute": "cabg_operative_approach", + "direct_transition": "Pick Number of Grafts", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 6 + } + }, + "unit": "minutes" + }, + "Graft_No_1": { + "type": "SetAttribute", + "attribute": "cabg_number_of_grafts", + "value": 1, + "direct_transition": "Graft_Obs_1" + }, + "Graft_No_2": { + "type": "SetAttribute", + "attribute": "cabg_number_of_grafts", + "value": 2, + "direct_transition": "Graft_Obs_2" + }, + "Graft_No_3": { + "type": "SetAttribute", + "attribute": "cabg_number_of_grafts", + "value": 3, + "direct_transition": "Graft_Obs_3" + }, + "Graft_No_4": { + "type": "SetAttribute", + "attribute": "cabg_number_of_grafts", + "value": 4, + "direct_transition": "Graft_Obs_4" + }, + "Graft_No_5": { + "type": "SetAttribute", + "attribute": "cabg_number_of_grafts", + "value": 5, + "direct_transition": "Graft_Obs_5" + }, + "Graft_No_6": { + "type": "SetAttribute", + "attribute": "cabg_number_of_grafts", + "value": 6, + "direct_transition": "Graft_Obs_6" + }, + "Art_Cond_1": { + "type": "SetAttribute", + "attribute": "cabg_arterial_conduits", + "value": 1, + "direct_transition": "Art_Cond_Obs_1" + }, + "Art_Cond_2": { + "type": "SetAttribute", + "attribute": "cabg_arterial_conduits", + "value": 2, + "direct_transition": "Art_Cond_Obs_2" + }, + "Art_Cond_3": { + "type": "SetAttribute", + "attribute": "cabg_arterial_conduits", + "value": 3, + "direct_transition": "Art_Cond_Obs_3" + }, + "Art_Cond_4": { + "type": "SetAttribute", + "attribute": "cabg_arterial_conduits", + "value": 4, + "direct_transition": "Art_Cond_Obs_4" + }, + "Art_Cond_5": { + "type": "SetAttribute", + "attribute": "cabg_arterial_conduits", + "value": 5, + "direct_transition": "Art_Cond_Obs_5" + }, + "Art_Cond_6": { + "type": "SetAttribute", + "attribute": "cabg_arterial_conduits", + "value": 6, + "direct_transition": "Art_Cond_Obs_6" + }, + "Thoracotomy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "177765008", + "display": "Opening of chest (procedure)" + } + ], + "assign_to_attribute": "cabg_operative_approach", + "direct_transition": "Pick Number of Grafts", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 6 + } + }, + "unit": "minutes" + }, + "Anything Else": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "385488000", + "display": "Surgical procedure on chest wall (procedure)" + } + ], + "assign_to_attribute": "cabg_operative_approach", + "direct_transition": "Pick Number of Grafts", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 6 + } + }, + "unit": "minutes" + }, + "Graft_Obs_1": { + "type": "Observation", + "category": "procedure", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "exact": { + "quantity": "CABG Grafts: 1" + }, + "direct_transition": "Pick Number of CABG Arterial Conduits" + }, + "Graft_Obs_2": { + "type": "Observation", + "category": "procedure", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "exact": { + "quantity": "CABG Grafts: 2" + }, + "direct_transition": "Pick Number of CABG Arterial Conduits" + }, + "Graft_Obs_3": { + "type": "Observation", + "category": "procedure", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "exact": { + "quantity": "CABG Grafts: 3" + }, + "direct_transition": "Pick Number of CABG Arterial Conduits" + }, + "Graft_Obs_4": { + "type": "Observation", + "category": "procedure", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "exact": { + "quantity": "CABG Grafts: 4" + }, + "direct_transition": "Pick Number of CABG Arterial Conduits" + }, + "Graft_Obs_5": { + "type": "Observation", + "category": "procedure", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "exact": { + "quantity": "CABG Grafts: 5" + }, + "direct_transition": "Pick Number of CABG Arterial Conduits" + }, + "Graft_Obs_6": { + "type": "Observation", + "category": "procedure", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "exact": { + "quantity": "CABG Grafts: 6" + }, + "direct_transition": "Pick Number of CABG Arterial Conduits" + }, + "Art_Cond_Obs_1": { + "type": "Observation", + "category": "procedure", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "exact": { + "quantity": "CABG Arterial Conduits: 1" + }, + "direct_transition": "Terminal" + }, + "Art_Cond_Obs_2": { + "type": "Observation", + "category": "procedure", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "exact": { + "quantity": "CABG Arterial Conduits: 2" + }, + "direct_transition": "Terminal" + }, + "Art_Cond_Obs_3": { + "type": "Observation", + "category": "procedure", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "exact": { + "quantity": "CABG Arterial Conduits: 3" + }, + "direct_transition": "Terminal" + }, + "Art_Cond_Obs_4": { + "type": "Observation", + "category": "procedure", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "exact": { + "quantity": "CABG Arterial Conduits: 4" + }, + "direct_transition": "Terminal" + }, + "Art_Cond_Obs_5": { + "type": "Observation", + "category": "procedure", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "exact": { + "quantity": "CABG Arterial Conduits: 5" + }, + "direct_transition": "Terminal" + }, + "Art_Cond_Obs_6": { + "type": "Observation", + "category": "procedure", + "unit": "{#}", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "exact": { + "quantity": "CABG Arterial Conduits: 6" + }, + "direct_transition": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/cabg/icu_meds_devices.json b/src/main/resources/modules/heart/cabg/icu_meds_devices.json new file mode 100644 index 0000000..247e380 --- /dev/null +++ b/src/main/resources/modules/heart/cabg/icu_meds_devices.json @@ -0,0 +1,87 @@ +{ + "name": "icu_meds_devices", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "This submodule of Cardiac Surgery models ICU Medications and Devices. " + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "VAD Check" + }, + "Terminal": { + "type": "Terminal" + }, + "Device": { + "type": "DeviceEnd", + "direct_transition": "IABP_Check", + "device": "Assist_Device_Used" + }, + "IABP_Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "IABP Start", + "distribution": 0.005434782608696 + }, + { + "transition": "Terminal", + "distribution": 0.994565217391304 + } + ] + }, + "Intra Aortic Balloon Pump": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399217008", + "display": "Cardioassist by aortic balloon pump (procedure)" + } + ], + "duration": { + "low": 20, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "IABP Stop" + }, + "IABP Start": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "129113006", + "display": "Intra-aortic balloon pump, device (physical object)" + }, + "direct_transition": "Intra Aortic Balloon Pump" + }, + "IABP Stop": { + "type": "DeviceEnd", + "direct_transition": "Terminal", + "device": "IABP Start" + }, + "Assist_Device_Used": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "360064003", + "display": "Ventricular assist device (physical object)" + }, + "direct_transition": "Device" + }, + "VAD Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Assist_Device_Used", + "distribution": 0.005434782608696 + }, + { + "transition": "IABP_Check", + "distribution": 0.994565217391304 + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/cabg/labs_common.json b/src/main/resources/modules/heart/cabg/labs_common.json new file mode 100644 index 0000000..93f8cea --- /dev/null +++ b/src/main/resources/modules/heart/cabg/labs_common.json @@ -0,0 +1,902 @@ +{ + "name": "labs_common", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "Reuseable lab block." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "CBC" + }, + "Terminal": { + "type": "Terminal" + }, + "Arterial_Blood_Gas": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24336-0", + "display": "Gas panel - Arterial blood" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "[pH]", + "codes": [ + { + "system": "LOINC", + "code": "2744-1", + "display": "pH of Arterial blood" + } + ], + "range": { + "low": 6.8, + "high": 7.3 + } + }, + { + "category": "laboratory", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "2019-8", + "display": "Carbon dioxide [Partial pressure] in Arterial blood" + } + ], + "range": { + "low": 35, + "high": 45 + } + }, + { + "category": "laboratory", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "2703-7", + "display": "Oxygen [Partial pressure] in Arterial blood" + } + ], + "range": { + "low": 80, + "high": 100 + } + }, + { + "category": "laboratory", + "unit": "mmol/L", + "codes": [ + { + "system": "LOINC", + "code": "1960-4", + "display": "Bicarbonate [Moles/volume] in Arterial blood" + } + ], + "range": { + "low": 22, + "high": 27 + } + }, + { + "category": "vital-signs", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "2708-6", + "display": "Oxygen saturation in Arterial blood" + }, + { + "system": "LOINC", + "code": "59408-5", + "display": "Oxygen saturation in Arterial blood by Pulse oximetry" + } + ], + "vital_sign": "Oxygen Saturation" + } + ], + "direct_transition": "Record_LipidPanel" + }, + "Magnesium": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "19123-9", + "display": "Magnesium [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 1.6, + "high": 2.3 + }, + "direct_transition": "Phosphorus" + }, + "CBC": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.4, + "high": 10.8 + } + }, + { + "category": "laboratory", + "unit": "10*6/uL", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.77, + "high": 5.8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "range": { + "low": 11.1, + "high": 17.7 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "4544-3", + "display": "Hematocrit [Volume Fraction] of Blood by Automated count" + } + ], + "range": { + "low": 34, + "high": 51 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 79, + "high": 97 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 26.6, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 31.5, + "high": 35.7 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "788-0", + "display": "Erythrocyte distribution width [Ratio] by Automated count" + } + ], + "range": { + "low": 12.3, + "high": 15.4 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + } + ], + "conditional_transition": [ + { + "transition": "Comprehensive_Metabolic_Panel_with_Normal_Kidney", + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "is nil" + } + }, + { + "transition": "Comprehensive_Metabolic_Panel_with_Kidney_Damage" + } + ] + }, + "Comprehensive_Metabolic_Panel_with_Normal_Kidney": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "vital_sign": "Creatinine" + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "vital_sign": "EGFR" + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 8.5 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 4, + "high": 5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.3, + "high": 1.2 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 39, + "high": 117 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 44 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 40 + } + } + ], + "direct_transition": "Magnesium" + }, + "Comprehensive_Metabolic_Panel_with_Kidney_Damage": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.5, + "high": 3 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 5, + "high": 14 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 8.5 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 4, + "high": 5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 15 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 39, + "high": 117 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 44 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 40 + } + } + ], + "direct_transition": "Magnesium" + }, + "Phosphorus": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "2777-1", + "display": "Phosphate [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 2.5, + "high": 4.5 + }, + "distributed_transition": [ + { + "transition": "Prothrombin_Time", + "distribution": 0.95 + }, + { + "transition": "Prothrombin_Time_High", + "distribution": 0.05 + } + ] + }, + "Prothrombin_Time": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "34528-0", + "display": "PT panel - Platelet poor plasma by Coagulation assay" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "s", + "codes": [ + { + "system": "LOINC", + "code": "5902-2", + "display": "Prothrombin time (PT)" + } + ], + "range": { + "low": 9.1, + "high": 12 + } + }, + { + "category": "laboratory", + "unit": "{INR}", + "codes": [ + { + "system": "LOINC", + "code": "6301-6", + "display": "INR in Platelet poor plasma by Coagulation assay" + } + ], + "range": { + "low": 0.8, + "high": 1.2 + } + } + ], + "direct_transition": "Partial_thromboplastin_time_PTT" + }, + "Prothrombin_Time_High": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "34528-0", + "display": "PT panel - Platelet poor plasma by Coagulation assay" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "s", + "codes": [ + { + "system": "LOINC", + "code": "5902-2", + "display": "Prothrombin time (PT)" + } + ], + "range": { + "low": 9.1, + "high": 12 + } + }, + { + "category": "laboratory", + "unit": "{INR}", + "codes": [ + { + "system": "LOINC", + "code": "6301-6", + "display": "INR in Platelet poor plasma by Coagulation assay" + } + ], + "range": { + "low": 2, + "high": 3 + } + } + ], + "direct_transition": "Partial_thromboplastin_time_PTT" + }, + "Partial_thromboplastin_time_PTT": { + "type": "Observation", + "category": "laboratory", + "unit": "s", + "codes": [ + { + "system": "LOINC", + "code": "3173-2", + "display": "aPTT in Blood by Coagulation assay" + } + ], + "range": { + "low": 25, + "high": 40 + }, + "direct_transition": "Arterial_Blood_Gas" + }, + "Record_LipidPanel": { + "type": "DiagnosticReport", + "number_of_observations": 4, + "codes": [ + { + "system": "LOINC", + "code": "57698-3", + "display": "Lipid panel with direct LDL - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Total Cholesterol", + "codes": [ + { + "system": "LOINC", + "code": "2093-3", + "display": "Cholesterol [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Triglycerides", + "codes": [ + { + "system": "LOINC", + "code": "2571-8", + "display": "Triglycerides" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "LDL", + "codes": [ + { + "system": "LOINC", + "code": "18262-6", + "display": "Low Density Lipoprotein Cholesterol" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "HDL", + "codes": [ + { + "system": "LOINC", + "code": "2085-9", + "display": "Cholesterol in HDL [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + } + ], + "direct_transition": "Terminal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/cabg/operation.json b/src/main/resources/modules/heart/cabg/operation.json new file mode 100644 index 0000000..23028fb --- /dev/null +++ b/src/main/resources/modules/heart/cabg/operation.json @@ -0,0 +1,392 @@ +{ + "name": "operation", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "This submodule of Cardiac Surgery models the CABG Operation.", + " ", + "On pump = Conventional CABG procedure performed with the use of cardiopulmonary bypass (CBP) and median sternotomy.", + "", + "Off-pump = CABG procedure performed without use of cardiopulmonary bypass (CBG); is inclusive of procedures with median sternotomy and procedures without median sternotomy (e.g., minimally invasive, robotic).", + "", + "This submodule does not model intraoperative conversion from off‐pump to on‐pump CABG.", + "" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "OR Labs and Meds" + }, + "Terminal": { + "type": "Terminal" + }, + "Emergency_Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Off_Pump_CABG_Emergency", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + } + ] + } + }, + { + "transition": "Off_Pump_CABG" + } + ] + }, + "History_of_CABG": { + "type": "ConditionOnset", + "assign_to_attribute": "cabg_history", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399261000", + "display": "History of coronary artery bypass grafting (situation)" + } + ], + "direct_transition": "Surgery Documentation" + }, + "Finish_Surgery": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Arterial Line Insertion": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "392247006", + "display": "Insertion of catheter into artery (procedure)" + } + ], + "duration": { + "low": 6, + "high": 10, + "unit": "minutes" + }, + "direct_transition": "Administer Anesthesia" + }, + "Administer Anesthesia": { + "type": "CallSubmodule", + "submodule": "surgery/general_anesthesia", + "direct_transition": "Pulmonary Catheterization" + }, + "Pulmonary Catheterization": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65677008", + "display": "Pulmonary catheterization with Swan-Ganz catheter (procedure)" + } + ], + "duration": { + "low": 6, + "high": 10, + "unit": "minutes" + }, + "direct_transition": "Prep Patient" + }, + "Prep Patient": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "223495004", + "display": "Preparation of patient for procedure (regime/therapy)" + } + ], + "duration": { + "low": 6, + "high": 10, + "unit": "minutes" + }, + "distributed_transition": [ + { + "transition": "On Pump", + "distribution": 0.59 + }, + { + "transition": "Off Pump", + "distribution": 0.41 + } + ] + }, + "Cannulation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "42825003", + "display": "Cannulation (procedure)" + } + ], + "duration": { + "low": 2, + "high": 6, + "unit": "minutes" + }, + "direct_transition": "CPB" + }, + "On Pump": { + "type": "SetAttribute", + "attribute": "cabg_pump", + "direct_transition": "Cannulation", + "value": true + }, + "Off Pump": { + "type": "SetAttribute", + "attribute": "cabg_pump", + "direct_transition": "Call CABG_Details Off Pump", + "value": false + }, + "CPB": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "63697000", + "display": "Cardiopulmonary bypass operation (procedure)" + } + ], + "duration": { + "low": 2, + "high": 6, + "unit": "minutes" + }, + "direct_transition": "Placement of Aortic Cross Clamp" + }, + "Placement of Aortic Cross Clamp": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "301882004", + "display": "Placement of aortic cross clamp (procedure)" + } + ], + "duration": { + "low": 2, + "high": 6, + "unit": "minutes" + }, + "direct_transition": "Induced cardioplegia" + }, + "Induced cardioplegia": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "8290005", + "display": "Induced cardioplegia (procedure)" + } + ], + "duration": { + "low": 2, + "high": 6, + "unit": "minutes" + }, + "direct_transition": "Call CABG_Details On Pump" + }, + "Removal of Aortic Cross Clamp": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "301884003", + "display": "Removal of aortic cross clamp (procedure)" + } + ], + "duration": { + "low": 2, + "high": 6, + "unit": "minutes" + }, + "direct_transition": "Vascular Cannula Removal" + }, + "Vascular Cannula Removal": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "233553003", + "display": "Vascular cannula removal (procedure)" + } + ], + "duration": { + "low": 2, + "high": 6, + "unit": "minutes" + }, + "direct_transition": "History_of_CABG" + }, + "Emergency Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "On_Pump_Emergency_CABG", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + } + ] + } + }, + { + "transition": "On Pump CABG" + } + ] + }, + "On Pump CABG": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "232717009", + "display": "Coronary artery bypass grafting (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 225.5941604, + "standardDeviation": 44.75276942 + } + }, + "unit": "minutes", + "direct_transition": "Intraop Devices", + "reason": "cardiac_surgery_reason" + }, + "Surgery Documentation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "23745001", + "display": "Documentation procedure (procedure)" + } + ], + "duration": { + "low": 8, + "high": 20, + "unit": "minutes" + }, + "direct_transition": "Finish_Surgery" + }, + "OR Labs and Meds": { + "type": "CallSubmodule", + "submodule": "heart/cabg/or_labs_meds", + "direct_transition": "Arterial Line Insertion" + }, + "Intraop_Devices": { + "type": "CallSubmodule", + "submodule": "heart/cabg/or_intraop", + "direct_transition": "History_of_CABG" + }, + "Intraop Devices": { + "type": "CallSubmodule", + "submodule": "heart/cabg/or_intraop", + "direct_transition": "Removal of Aortic Cross Clamp" + }, + "Call CABG_Details On Pump": { + "type": "CallSubmodule", + "submodule": "heart/cabg/details", + "direct_transition": "Emergency Check" + }, + "Call CABG_Details Off Pump": { + "type": "CallSubmodule", + "submodule": "heart/cabg/details", + "direct_transition": "Emergency_Check" + }, + "On_Pump_Emergency_CABG": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "232717009", + "display": "Coronary artery bypass grafting (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "414088005", + "display": "Emergency coronary artery bypass graft (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 225.5941604, + "standardDeviation": 44.75276942 + } + }, + "unit": "minutes", + "reason": "cardiac_surgery_reason", + "direct_transition": "Intraop Devices" + }, + "Off_Pump_CABG": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418824004", + "display": "Off-pump coronary artery bypass (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 207.7606126, + "standardDeviation": 42.15508108 + } + }, + "unit": "minutes", + "reason": "cardiac_surgery_reason", + "direct_transition": "Intraop_Devices" + }, + "Off_Pump_CABG_Emergency": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "414088005", + "display": "Emergency coronary artery bypass graft (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 207.7606126, + "standardDeviation": 42.15508108 + } + }, + "unit": "minutes", + "reason": "cardiac_surgery_reason", + "direct_transition": "Intraop_Devices" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/cabg/or_intraop.json b/src/main/resources/modules/heart/cabg/or_intraop.json new file mode 100644 index 0000000..74e3550 --- /dev/null +++ b/src/main/resources/modules/heart/cabg/or_intraop.json @@ -0,0 +1,226 @@ +{ + "name": "or_intraop", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "VAD Check" + }, + "Terminal": { + "type": "Terminal" + }, + "Device": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "360064003", + "display": "Ventricular assist device (physical object)" + }, + "direct_transition": "IABP_Check" + }, + "IABP_Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "IABP Start", + "distribution": 0.014286 + }, + { + "transition": "Terminal", + "distribution": 0.985714 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "IABP Start", + "distribution": 0 + }, + { + "transition": "Terminal", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "IABP Start", + "distribution": 0 + }, + { + "transition": "Terminal", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "IABP Start", + "distribution": 0.015385 + }, + { + "transition": "Terminal", + "distribution": 0.984615 + } + ] + } + ] + }, + "Assist_Device_Implantation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "232965003", + "display": "Implantation of cardiac ventricular assist device (procedure)" + } + ], + "duration": { + "low": 12, + "high": 16, + "unit": "minutes" + }, + "direct_transition": "Device" + }, + "Intra Aortic Balloon Pump": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399217008", + "display": "Cardioassist by aortic balloon pump (procedure)" + } + ], + "duration": { + "low": 8, + "high": 20, + "unit": "minutes" + }, + "direct_transition": "IABP Stop" + }, + "IABP Start": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "129113006", + "display": "Intra-aortic balloon pump, device (physical object)" + }, + "direct_transition": "Intra Aortic Balloon Pump" + }, + "IABP Stop": { + "type": "DeviceEnd", + "direct_transition": "Terminal", + "device": "IABP Start" + }, + "VAD Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Assist_Device_Implantation", + "distribution": 0 + }, + { + "transition": "IABP_Check", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Assist_Device_Implantation", + "distribution": 0 + }, + { + "transition": "IABP_Check", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Assist_Device_Implantation", + "distribution": 0 + }, + { + "transition": "IABP_Check", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Assist_Device_Implantation", + "distribution": 0.010256 + }, + { + "transition": "IABP_Check", + "distribution": 0.989744 + } + ] + } + ] + } + }, + "gmf_version": 2, + "remarks": [ + "This submodule of Cardiac Surgery models the administration of Pressor Medications and Device Implantation during the CABG Operation." + ] +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/cabg/or_labs_meds.json b/src/main/resources/modules/heart/cabg/or_labs_meds.json new file mode 100644 index 0000000..81c2339 --- /dev/null +++ b/src/main/resources/modules/heart/cabg/or_labs_meds.json @@ -0,0 +1,346 @@ +{ + "name": "or_labs_meds", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "This submodule of Cardiac Surgery models common Labs, Medications, and Blood Components during the CABG Operation. ", + "", + "Represented labs include: ", + "• Activated clotting time ", + "• Arterial blood gas ", + "• Venous blood gas", + "• Magnesium", + "• Gas and Carbon monoxide and Electrolytes panel - Arterial blood, which includes sodium, potassium, chloride, ionized calcium, glucose, hemoglobin, and lactate.", + "", + "Represented meds and blood components include: ", + "• Cefazolin, consistent with Society of Thoracic Surgeons antibiotic prophylaxis recommendations. ", + "• Heparin", + "• Protamine", + "• Insulin- called with insulin_or_blood submodule", + "• Blood (pRBCs)- called with insulin_or_blood submodule", + "" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Activated Clotting Time" + }, + "Terminal": { + "type": "Terminal" + }, + "Activated Clotting Time": { + "type": "Observation", + "category": "laboratory", + "unit": "s", + "codes": [ + { + "system": "LOINC", + "code": "3184-9", + "display": "Activated clotting time (ACT) of Blood by Coagulation assay" + } + ], + "direct_transition": "Arterial_Blood_Gas", + "range": { + "low": 110, + "high": 130 + } + }, + "Arterial_Blood_Gas": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24336-0", + "display": "Gas panel - Arterial blood" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "[pH]", + "codes": [ + { + "system": "LOINC", + "code": "2744-1", + "display": "pH of Arterial blood" + } + ], + "range": { + "low": 6.8, + "high": 7.3 + } + }, + { + "category": "laboratory", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "2019-8", + "display": "Carbon dioxide [Partial pressure] in Arterial blood" + } + ], + "range": { + "low": 35, + "high": 45 + } + }, + { + "category": "laboratory", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "2703-7", + "display": "Oxygen [Partial pressure] in Arterial blood" + } + ], + "range": { + "low": 80, + "high": 100 + } + }, + { + "category": "laboratory", + "unit": "mmol/L", + "codes": [ + { + "system": "LOINC", + "code": "1960-4", + "display": "Bicarbonate [Moles/volume] in Arterial blood" + } + ], + "range": { + "low": 22, + "high": 27 + } + }, + { + "category": "vital-signs", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "2708-6", + "display": "Oxygen saturation in Arterial blood" + }, + { + "system": "LOINC", + "code": "59408-5", + "display": "Oxygen saturation in Arterial blood by Pulse oximetry" + } + ], + "vital_sign": "Oxygen Saturation" + } + ], + "direct_transition": "Venous Blood Gas" + }, + "Venous Blood Gas": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24339-4", + "display": "Gas panel - Venous blood" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "[pH]", + "codes": [ + { + "system": "LOINC", + "code": "2746-6", + "display": "pH of Venous blood" + } + ], + "range": { + "low": 7.31, + "high": 7.45 + } + }, + { + "category": "laboratory", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "2021-4", + "display": "Carbon dioxide [Partial pressure] in Venous blood" + } + ], + "range": { + "low": 37, + "high": 50 + } + }, + { + "category": "laboratory", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "2705-2", + "display": "Oxygen [Partial pressure] in Venous blood" + } + ], + "range": { + "low": 37, + "high": 47 + } + }, + { + "category": "laboratory", + "unit": "mmol/L", + "codes": [ + { + "system": "LOINC", + "code": "14627-4", + "display": "Bicarbonate [Moles/volume] in Venous blood" + } + ], + "range": { + "low": 22, + "high": 28 + } + }, + { + "category": "laboratory", + "unit": "mmol/L", + "codes": [ + { + "system": "LOINC", + "code": "2027-1", + "display": "Carbon dioxide, total [Moles/volume] in Venous blood" + } + ], + "range": { + "low": 0.5, + "high": 2 + } + } + ], + "direct_transition": "Magnesium" + }, + "Magnesium": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "19123-9", + "display": "Magnesium [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 1.6, + "high": 2.3 + }, + "direct_transition": "Gas and Carbon monoxide and Electrolytes panel - Arterial blood" + }, + "Gas and Carbon monoxide and Electrolytes panel - Arterial blood": { + "type": "Simple", + "direct_transition": "Cefazolin" + }, + "Cefazolin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1665060, + "display": "cefazolin 2000 MG Injection" + } + ], + "direct_transition": "Heparin", + "administration": true + }, + "Heparin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1659263, + "display": "1 ML heparin sodium, porcine 5000 UNT/ML Injection" + } + ], + "direct_transition": "Protamine", + "administration": true, + "assign_to_attribute": "heparin" + }, + "Protamine": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1796676, + "display": "25 ML protamine sulfate (USP) 10 MG/ML Injection" + } + ], + "direct_transition": "Blood", + "administration": true + }, + "Insulin Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Insulin_Infusion_Px", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "diabetes", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "hyperglycemia", + "operator": "is not nil" + } + ] + } + }, + { + "transition": "Terminal" + } + ] + }, + "Insulin_Infusion_Px": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "180178009", + "display": "Continuous subcutaneous infusion of insulin (procedure)" + } + ], + "direct_transition": "Insulin_Infusion_Rx", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 3 + } + }, + "unit": "minutes" + }, + "Insulin_Infusion_Rx": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 311034, + "display": "insulin, regular, human 100 UNT/ML Injectable Solution" + } + ], + "administration": true, + "direct_transition": "Terminal" + }, + "Blood": { + "type": "CallSubmodule", + "submodule": "heart/or_blood", + "direct_transition": "Insulin Check" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/cabg/outcomes.json b/src/main/resources/modules/heart/cabg/outcomes.json new file mode 100644 index 0000000..fc45c3e --- /dev/null +++ b/src/main/resources/modules/heart/cabg/outcomes.json @@ -0,0 +1,938 @@ +{ + "name": "outcomes", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "CABG outcomes based on operative status." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Check Mortality" + }, + "Terminal": { + "type": "Terminal" + }, + "Check Mortality": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Mortality", + "distribution": 0.035714 + }, + { + "transition": "Check Infectious mediastinitis", + "distribution": 0.964286 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Mortality", + "distribution": 0.083333 + }, + { + "transition": "Check Infectious mediastinitis", + "distribution": 0.916667 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Mortality", + "distribution": 0 + }, + { + "transition": "Check Infectious mediastinitis", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Mortality", + "distribution": 0.02735 + }, + { + "transition": "Check Infectious mediastinitis", + "distribution": 0.97265 + } + ] + } + ] + }, + "Check Infectious mediastinitis": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Infectious mediastinitis", + "distribution": 0.009524 + }, + { + "transition": "Check Reexploration procedure", + "distribution": 0.990476 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Infectious mediastinitis", + "distribution": 0.02381 + }, + { + "transition": "Check Reexploration procedure", + "distribution": 0.97619 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Infectious mediastinitis", + "distribution": 0.083333 + }, + { + "transition": "Check Reexploration procedure", + "distribution": 0.916667 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Infectious mediastinitis", + "distribution": 0.006838 + }, + { + "transition": "Check Reexploration procedure", + "distribution": 0.9931620000000001 + } + ] + } + ] + }, + "Mortality": { + "type": "SetAttribute", + "attribute": "cabg_mortality", + "value": true, + "direct_transition": "Check Infectious mediastinitis" + }, + "Check Reexploration procedure": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Reexploration procedure", + "distribution": 0.016667 + }, + { + "transition": "Check_Postoperative myocardial infarction", + "distribution": 0.983333 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Reexploration procedure", + "distribution": 0.02381 + }, + { + "transition": "Check_Postoperative myocardial infarction", + "distribution": 0.97619 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Reexploration procedure", + "distribution": 0 + }, + { + "transition": "Check_Postoperative myocardial infarction", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Reexploration procedure", + "distribution": 0.017094 + }, + { + "transition": "Check_Postoperative myocardial infarction", + "distribution": 0.9829060000000001 + } + ] + } + ] + }, + "Check_Postoperative myocardial infarction": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Postoperative myocardial infarction", + "distribution": 0.002381 + }, + { + "transition": "Check_stroke", + "distribution": 0.997619 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Postoperative myocardial infarction", + "distribution": 0.011905 + }, + { + "transition": "Check_stroke", + "distribution": 0.988095 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Postoperative myocardial infarction", + "distribution": 0 + }, + { + "transition": "Check_stroke", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Postoperative myocardial infarction", + "distribution": 0.003419 + }, + { + "transition": "Check_stroke", + "distribution": 0.996581 + } + ] + } + ] + }, + "Check_stroke": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Stroke", + "distribution": 0.021429 + }, + { + "transition": "Check_Postoperative sepsis", + "distribution": 0.9785710000000001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Stroke", + "distribution": 0.047619 + }, + { + "transition": "Check_Postoperative sepsis", + "distribution": 0.952381 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Stroke", + "distribution": 0 + }, + { + "transition": "Check_Postoperative sepsis", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Stroke", + "distribution": 0.02906 + }, + { + "transition": "Check_Postoperative sepsis", + "distribution": 0.97094 + } + ] + } + ] + }, + "Check_Postoperative sepsis": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Postoperative sepsis", + "distribution": 0.021429 + }, + { + "transition": "Check_Postoperative renal failure", + "distribution": 0.9785710000000001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Postoperative sepsis", + "distribution": 0.047619 + }, + { + "transition": "Check_Postoperative renal failure", + "distribution": 0.952381 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Postoperative sepsis", + "distribution": 0.083333 + }, + { + "transition": "Check_Postoperative renal failure", + "distribution": 0.916667 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Postoperative sepsis", + "distribution": 0.02906 + }, + { + "transition": "Check_Postoperative renal failure", + "distribution": 0.97094 + } + ] + } + ] + }, + "Check_Postoperative renal failure": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Postoperative renal failure", + "distribution": 0.066667 + }, + { + "transition": "Check_Acute renal failure on dialysis", + "distribution": 0.933333 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Postoperative renal failure", + "distribution": 0.071429 + }, + { + "transition": "Check_Acute renal failure on dialysis", + "distribution": 0.928571 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Postoperative renal failure", + "distribution": 0.083333 + }, + { + "transition": "Check_Acute renal failure on dialysis", + "distribution": 0.916667 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Postoperative renal failure", + "distribution": 0.05812 + }, + { + "transition": "Check_Acute renal failure on dialysis", + "distribution": 0.94188 + } + ] + } + ] + }, + "Check_Acute renal failure on dialysis": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Acute renal failure on dialysis", + "distribution": 0.057143 + }, + { + "transition": "Check_Acute respiratory insufficiency", + "distribution": 0.9428570000000001 + } + ] + }, + { + "distributions": [ + { + "transition": "Acute renal failure on dialysis", + "distribution": 0.071429 + }, + { + "transition": "Check_Acute respiratory insufficiency", + "distribution": 0.928571 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + } + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Acute renal failure on dialysis", + "distribution": 0.083333 + }, + { + "transition": "Check_Acute respiratory insufficiency", + "distribution": 0.916667 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Acute renal failure on dialysis", + "distribution": 0.046154 + }, + { + "transition": "Check_Acute respiratory insufficiency", + "distribution": 0.953846 + } + ] + } + ] + }, + "Check_Acute respiratory insufficiency": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Acute respiratory insufficiency", + "distribution": 0.104762 + }, + { + "transition": "Check LOS", + "distribution": 0.895238 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Acute respiratory insufficiency", + "distribution": 0.178571 + }, + { + "transition": "Check LOS", + "distribution": 0.821429 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Acute respiratory insufficiency", + "distribution": 0 + }, + { + "transition": "Check LOS", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Acute respiratory insufficiency", + "distribution": 0.11453 + }, + { + "transition": "Check LOS", + "distribution": 0.88547 + } + ] + } + ] + }, + "Check LOS": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Short Stay", + "distribution": 0.602381 + }, + { + "transition": "Medium Stay", + "distribution": 0.311905 + }, + { + "transition": "Long Stay", + "distribution": 0.08571399999999996 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Short Stay", + "distribution": 0.52381 + }, + { + "transition": "Medium Stay", + "distribution": 0.357143 + }, + { + "transition": "Long Stay", + "distribution": 0.11904700000000012 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Short Stay", + "distribution": 0.583333 + }, + { + "transition": "Medium Stay", + "distribution": 0.333333 + }, + { + "transition": "Long Stay", + "distribution": 0.08333400000000002 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Short Stay", + "distribution": 0.632479 + }, + { + "transition": "Medium Stay", + "distribution": 0.270085 + }, + { + "transition": "Long Stay", + "distribution": 0.09743600000000008 + } + ] + } + ] + }, + "Infectious mediastinitis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "312157006", + "display": "Infectious mediastinitis (disorder)" + } + ], + "target_encounter": "CABG_Postop", + "direct_transition": "Check Reexploration procedure" + }, + "Reexploration procedure": { + "type": "SetAttribute", + "attribute": "cabg_reexploration_procedure", + "direct_transition": "Check_Postoperative myocardial infarction", + "value": true + }, + "Postoperative myocardial infarction": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "129574000", + "display": "Postoperative myocardial infarction (disorder)" + } + ], + "target_encounter": "CABG_Postop", + "direct_transition": "Check_stroke" + }, + "Stroke": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "230690007", + "display": "Cerebrovascular accident (disorder)" + } + ], + "target_encounter": "CABG_Postop", + "direct_transition": "Check_Postoperative sepsis" + }, + "Postoperative sepsis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698819004", + "display": "Postoperative sepsis (disorder)" + } + ], + "target_encounter": "CABG_Postop", + "direct_transition": "Check_Postoperative renal failure" + }, + "Postoperative renal failure": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "275408006", + "display": "Postoperative renal failure (disorder)" + } + ], + "target_encounter": "CABG_Postop", + "direct_transition": "Check_Acute renal failure on dialysis" + }, + "Acute renal failure on dialysis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "129721000119106", + "display": "Acute renal failure on dialysis (disorder)" + } + ], + "target_encounter": "CABG_Postop", + "direct_transition": "Check_Acute respiratory insufficiency" + }, + "Acute respiratory insufficiency": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65710008", + "display": "Acute respiratory failure (disorder)" + } + ], + "target_encounter": "CABG_Postop", + "direct_transition": "Check LOS" + }, + "Short Stay": { + "type": "SetAttribute", + "attribute": "cabg_icu_los", + "direct_transition": "Terminal", + "distribution": { + "kind": "UNIFORM", + "round": false, + "parameters": { + "high": 2, + "low": 0 + } + } + }, + "Medium Stay": { + "type": "SetAttribute", + "attribute": "cabg_icu_los", + "direct_transition": "Terminal", + "distribution": { + "kind": "UNIFORM", + "round": false, + "parameters": { + "high": 7, + "low": 2 + } + } + }, + "Long Stay": { + "type": "SetAttribute", + "attribute": "cabg_icu_los", + "direct_transition": "Terminal", + "distribution": { + "kind": "UNIFORM", + "round": false, + "parameters": { + "high": 10, + "low": 7 + } + } + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/cabg/postop.json b/src/main/resources/modules/heart/cabg/postop.json new file mode 100644 index 0000000..4282599 --- /dev/null +++ b/src/main/resources/modules/heart/cabg/postop.json @@ -0,0 +1,469 @@ +{ + "name": "postop", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "This submodule of Cardiac Surgery models Postoperative ICU and Ward Care." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Check Alive" + }, + "Terminal": { + "type": "Terminal" + }, + "CABG_Postop": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "397821002", + "display": "Patient transfer to intensive care unit (procedure)" + } + ], + "reason": "cabg_history", + "conditional_transition": [ + { + "transition": "Reexploration procedure", + "condition": { + "condition_type": "Attribute", + "attribute": "cabg_reexploration_procedure", + "operator": "==", + "value": true + } + }, + { + "transition": "cabg_icu_los set in outcomes" + } + ] + }, + "Discharge": { + "type": "EncounterEnd", + "direct_transition": "Admission to Ward" + }, + "Check Alive": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Deceased", + "condition": { + "condition_type": "Attribute", + "attribute": "cabg_mortality", + "operator": "==", + "value": true + } + }, + { + "transition": "CABG_Postop" + } + ] + }, + "Deceased": { + "type": "Death", + "direct_transition": "Terminal" + }, + "Begin Day": { + "type": "Counter", + "attribute": "cabg_icu_los", + "action": "decrement", + "direct_transition": "ICU Labs" + }, + "End Day": { + "type": "Delay", + "exact": { + "quantity": 12, + "unit": "hours" + }, + "conditional_transition": [ + { + "transition": "Begin Day", + "condition": { + "condition_type": "Attribute", + "attribute": "cabg_icu_los", + "operator": ">", + "value": 0 + } + }, + { + "transition": "Discharge to Ward" + } + ] + }, + "Ventilation Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Ventilation", + "condition": { + "condition_type": "Attribute", + "attribute": "Ventilator Reason", + "operator": "is not nil" + } + }, + { + "transition": "Extubation" + } + ] + }, + "Ventilation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "243150007", + "display": "Assist control ventilation (regime/therapy)" + } + ], + "reason": "Ventilator Reason", + "direct_transition": "End Ventilation", + "duration": { + "low": 4, + "high": 6, + "unit": "hours" + } + }, + "Extubation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "271280005", + "display": "Removal of endotracheal tube (procedure)" + } + ], + "duration": { + "low": 20, + "high": 40, + "unit": "minutes" + }, + "direct_transition": "Begin Day" + }, + "End Ventilation": { + "type": "ConditionEnd", + "direct_transition": "Extubation", + "referenced_by_attribute": "Ventilator Reason" + }, + "ICU Labs": { + "type": "CallSubmodule", + "submodule": "heart/cabg/labs_common", + "direct_transition": "Electrocardiogram_ECG" + }, + "ICU Meds": { + "type": "CallSubmodule", + "submodule": "heart/cabg/icu_meds_devices", + "direct_transition": "Half Day" + }, + "Discharge to Ward": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "306706006", + "display": "Discharge to ward (procedure)" + } + ], + "direct_transition": "Discharge", + "reason": "cagb_history" + }, + "Admission to Ward": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305342007", + "display": "Admission to ward (procedure)" + } + ], + "direct_transition": "Education", + "reason": "cabg_history" + }, + "Walking Exercise Test": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "302761001", + "display": "Walking exercise test (procedure)" + } + ], + "duration": { + "low": 5, + "high": 20, + "unit": "minutes" + }, + "direct_transition": "Stair Climbing Test", + "reason": "cabg_history" + }, + "Stair Climbing Test": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "252482003", + "display": "Stair-climbing test (procedure)" + } + ], + "duration": { + "low": 5, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Discharge from Hospital", + "reason": "cabg_history" + }, + "Discharge to Home": { + "type": "EncounterEnd", + "direct_transition": "Post Discharge Outcomes", + "discharge_disposition": { + "system": "NUBC", + "code": "01", + "display": "Discharged to home care or self care (routine discharge)" + } + }, + "Discharge to Facility": { + "type": "EncounterEnd", + "direct_transition": "Post Discharge Outcomes", + "discharge_disposition": { + "system": "NUBC", + "code": "04", + "display": "Discharged/transferred to a facility that provides custodial or supportive care" + } + }, + "Post Discharge Outcomes": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Readmission to Ward", + "distribution": 0.106 + }, + { + "transition": "Dying After Discharge", + "distribution": 0.0065 + }, + { + "transition": "Terminal", + "distribution": 0.8875 + } + ] + }, + "Education": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "243063003", + "display": "Postoperative procedure education (procedure)" + } + ], + "duration": { + "low": 30, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "Walking Exercise Test", + "reason": "cabg_history" + }, + "Discharge from Hospital": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308283009", + "display": "Discharge from hospital (procedure)" + } + ], + "duration": { + "low": 15, + "high": 30, + "unit": "minutes" + }, + "reason": "cabg_history", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Discharge to Home", + "distribution": 0.85 + }, + { + "transition": "Discharge to Facility", + "distribution": 0.15 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Discharge to Home", + "distribution": 0.833333 + }, + { + "transition": "Discharge to Facility", + "distribution": 0.166667 + } + ] + }, + { + "distributions": [ + { + "transition": "Discharge to Home", + "distribution": 0.916667 + }, + { + "transition": "Discharge to Facility", + "distribution": 0.083333 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + } + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Discharge to Home", + "distribution": 0.852991 + }, + { + "transition": "Discharge to Facility", + "distribution": 0.14700899999999995 + } + ] + } + ] + }, + "Readmission to Ward": { + "type": "Delay", + "range": { + "low": 1, + "high": 30, + "unit": "days" + }, + "direct_transition": "Admission to Ward" + }, + "Electrocardiogram_ECG": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29303009", + "display": "Electrocardiographic procedure (procedure)" + } + ], + "duration": { + "low": 40, + "high": 50, + "unit": "minutes" + }, + "direct_transition": "Chest_X_Ray" + }, + "Chest_X_Ray": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain X-ray of chest (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "51185008", + "display": "Thoracic structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "CR", + "display": "Computed Radiography" + }, + "instances": [ + { + "title": "Title of this image", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.1", + "display": "Digital X-Ray Image Storage – for Presentation" + } + } + ] + } + ], + "direct_transition": "Blood" + }, + "Half Day": { + "type": "Delay", + "exact": { + "quantity": 12, + "unit": "hours" + }, + "direct_transition": "Repeat_ICU_Labs" + }, + "Repeat_ICU_Labs": { + "type": "CallSubmodule", + "submodule": "heart/cabg/labs_common", + "direct_transition": "End Day" + }, + "Dying After Discharge": { + "type": "Death", + "direct_transition": "Terminal", + "range": { + "low": 1, + "high": 30, + "unit": "days" + } + }, + "cabg_icu_los set in outcomes": { + "type": "Simple", + "direct_transition": "Ventilation Check" + }, + "Reexploration procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "122460008", + "display": "Reexploration procedure (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 180, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "cabg_icu_los set in outcomes", + "reason": "cabg_history" + }, + "Blood": { + "type": "CallSubmodule", + "submodule": "heart/cabg/postop_blood", + "direct_transition": "ICU Meds" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/cabg/postop_blood.json b/src/main/resources/modules/heart/cabg/postop_blood.json new file mode 100644 index 0000000..a8f0711 --- /dev/null +++ b/src/main/resources/modules/heart/cabg/postop_blood.json @@ -0,0 +1,331 @@ +{ + "name": "postop_blood", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Anemia Check" + }, + "Anemia Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "anemia", + "operator": "is not nil" + }, + "transition": "RBC" + }, + { + "distributions": [ + { + "transition": "RBC", + "distribution": 0.190476 + }, + { + "transition": "Platelet Check", + "distribution": 0.809524 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + } + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "RBC", + "distribution": 0.22619 + }, + { + "transition": "Platelet Check", + "distribution": 0.77381 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "RBC", + "distribution": 0.083333 + }, + { + "transition": "Platelet Check", + "distribution": 0.916667 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "RBC", + "distribution": 0.176068 + }, + { + "transition": "Platelet Check", + "distribution": 0.823932 + } + ] + } + ] + }, + "RBC": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "71493000", + "display": "Transfusion of packed red blood cells (procedure)" + } + ], + "direct_transition": "RBC Supply" + }, + "RBC Supply": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 2, + "code": { + "system": "SNOMED-CT", + "code": "431069006", + "display": "Packed red blood cells (product)" + } + } + ], + "direct_transition": "Platelet Check" + }, + "Terminal": { + "type": "Terminal" + }, + "Platelet Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Platelet Transfusion", + "distribution": 0.011905 + }, + { + "transition": "Plasma Check", + "distribution": 0.988095 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Platelet Transfusion", + "distribution": 0.02381 + }, + { + "transition": "Plasma Check", + "distribution": 0.97619 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Platelet Transfusion", + "distribution": 0 + }, + { + "transition": "Plasma Check", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Platelet Transfusion", + "distribution": 0.023932 + }, + { + "transition": "Plasma Check", + "distribution": 0.976068 + } + ] + } + ] + }, + "Plasma Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Plasma Transfusion", + "distribution": 0.033333 + }, + { + "transition": "Terminal", + "distribution": 0.9666669999999999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Plasma Transfusion", + "distribution": 0.02381 + }, + { + "transition": "Terminal", + "distribution": 0.97619 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Plasma Transfusion", + "distribution": 0 + }, + { + "transition": "Terminal", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Plasma Transfusion", + "distribution": 0.044444 + }, + { + "transition": "Terminal", + "distribution": 0.955556 + } + ] + } + ] + }, + "Platelet Transfusion": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "12719002", + "display": "Platelet transfusion (procedure)" + } + ], + "direct_transition": "Platelet Supply" + }, + "Platelet Supply": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "126261006", + "display": "Human platelets, pooled (product)" + } + } + ], + "direct_transition": "Plasma Check" + }, + "Plasma Transfusion": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "116861002", + "display": "Transfusion of fresh frozen plasma (procedure)" + } + ], + "direct_transition": "Plasma Supply" + }, + "Plasma Supply": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "346447007", + "display": "Fresh frozen plasma (product)" + } + } + ], + "direct_transition": "Terminal" + } + }, + "gmf_version": 2, + "remarks": [ + "This submodule of Cardiac Surgery models the administration of Blood Products after the CABG Operation." + ] +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/cabg/preoperative.json b/src/main/resources/modules/heart/cabg/preoperative.json new file mode 100644 index 0000000..f6844a7 --- /dev/null +++ b/src/main/resources/modules/heart/cabg/preoperative.json @@ -0,0 +1,763 @@ +{ + "name": "preoperative", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "This submodule of Cardiac Surgery models Preoperative Testing. The tests completed depend on the schedule priority of the patient and time available before surgery. Labs and imaging are as follows: ", + "", + "# Priority 1+ = Common Labs", + "- CBC", + "- CMP", + "- Magnesium", + "- Phosphorus", + "- PT/INR", + "- PTT", + "- ABG", + "- Type and Cross", + "", + "# Priority 2+ = All Priority 1 labs +", + "- Troponin", + "- TSH", + "- A1c", + "- UA", + "- NtPro-BNP if Heart Failure", + "- ECG", + "- CXR", + "- Transthoracic echo", + "- PFTS if COPD", + "- Carotid doppler if Peripheral artery disease and/or h/o stroke", + "- Head CT if h/o stroke", + "", + "# Priority 3+ = All Priority 1 and 2 Labs/Images +", + "- Lipid Panel", + "", + "" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Preoperative Testing" + }, + "Terminal": { + "type": "Terminal" + }, + "Priority 2+": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "High_Sensitivity_Cardiac_Troponin_I", + "condition": { + "condition_type": "Attribute", + "attribute": "care_priority_level", + "operator": ">=", + "value": 2 + } + }, + { + "transition": "Terminal" + } + ] + }, + "Priority 3+": { + "type": "Simple", + "direct_transition": "Terminal" + }, + "Preoperative Testing": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "110467000", + "display": "Pre-surgery testing (procedure)" + } + ], + "duration": { + "low": 30, + "high": 90, + "unit": "minutes" + }, + "direct_transition": "Common Labs" + }, + "High_Sensitivity_Cardiac_Troponin_I": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "89577-1", + "display": "Troponin I.cardiac panel - Serum or Plasma by High sensitivity method" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "pg/mL", + "codes": [ + { + "system": "LOINC", + "code": "89579-7", + "display": "Troponin I.cardiac [Mass/volume] in Serum or Plasma by High sensitivity method" + } + ], + "range": { + "low": 0, + "high": 0.04 + } + } + ], + "direct_transition": "TSH_panel_result" + }, + "TSH_panel_result": { + "type": "Observation", + "category": "laboratory", + "unit": "m[IU]/L", + "codes": [ + { + "system": "LOINC", + "code": "3016-3", + "display": "Thyrotropin [Units/volume] in Serum or Plasma" + } + ], + "range": { + "low": 2, + "high": 5 + }, + "direct_transition": "Record_HA1C" + }, + "Record_HA1C": { + "type": "Observation", + "vital_sign": "Blood Glucose", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c/Hemoglobin.total in Blood" + } + ], + "unit": "%", + "conditional_transition": [ + { + "transition": "Urinalysis Abnormal", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "diabetes", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "is not nil" + } + ] + } + }, + { + "transition": "Urinalysis" + } + ] + }, + "NTproBNP_lab_workup": { + "type": "Observation", + "category": "laboratory", + "unit": "pg/mL", + "codes": [ + { + "system": "LOINC", + "code": "33762-6", + "display": "NT-proBNP" + } + ], + "range": { + "low": 200, + "high": 2000 + }, + "direct_transition": "Imaging" + }, + "Imaging": { + "type": "Simple", + "direct_transition": "Electrocardiogram (ECG)" + }, + "Echocardiography": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "40701008", + "display": "Echocardiography (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "80891009", + "display": "Heart structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "US", + "display": "Ultrasound" + }, + "instances": [ + { + "title": "Ultrasound Multiframe Image Storage", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.3.1", + "display": "Ultrasound Multiframe Image Storage" + } + } + ] + } + ], + "direct_transition": "Report_workup_imaging" + }, + "Report_workup_imaging": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "55405-5", + "display": "Heart failure tracking panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "10230-1", + "display": "Left ventricular Ejection fraction" + } + ], + "range": { + "low": 30, + "high": 49 + } + } + ], + "direct_transition": "PFTS Check" + }, + "Electrocardiogram (ECG)": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29303009", + "display": "Electrocardiographic procedure (procedure)" + } + ], + "duration": { + "low": 5, + "high": 10, + "unit": "minutes" + }, + "direct_transition": "Chest_X_Ray" + }, + "Chest_X_Ray": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain X-ray of chest (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "51185008", + "display": "Thoracic structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "CR", + "display": "Computed Radiography" + }, + "instances": [ + { + "title": "Title of this image", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.1", + "display": "Digital X-Ray Image Storage – for Presentation" + } + } + ] + } + ], + "direct_transition": "Echocardiography" + }, + "PFTS Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Pulmonary function testing", + "condition": { + "condition_type": "Attribute", + "attribute": "copd_variant", + "operator": "is not nil" + } + }, + { + "transition": "Doppler Check" + } + ] + }, + "Pulmonary function testing": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "23426006", + "display": "Measurement of respiratory function (procedure)" + } + ], + "duration": { + "low": 45, + "high": 90, + "unit": "minutes" + }, + "direct_transition": "Doppler Check" + }, + "Doppler Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Doppler ultrasonography of artery", + "condition": { + "condition_type": "Attribute", + "attribute": "stroke_history", + "operator": "is not nil" + } + }, + { + "transition": "Priority 3+" + } + ] + }, + "Doppler ultrasonography of artery": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "709979004", + "display": "Doppler ultrasonography of artery (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "51345006", + "display": "Carotid body structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "US", + "display": "Ultrasound" + }, + "instances": [ + { + "title": "Ultrasound Multiframe Image Storage", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.3.1", + "display": "Ultrasound Multiframe Image Storage" + } + } + ] + } + ], + "direct_transition": "Computed tomography of head" + }, + "Computed tomography of head": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "303653007", + "display": "Computed tomography of head (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "69536005", + "display": "Head structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "CT", + "display": "Computed Tomography" + }, + "instances": [ + { + "title": "CT Image Storage", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.2", + "display": "CT Image Storage" + } + } + ] + } + ], + "direct_transition": "Priority 3+" + }, + "Urinalysis": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24356-8", + "display": "Urinalysis complete panel - Urine" + }, + { + "system": "LOINC", + "code": "24357-6", + "display": "Urinalysis macro (dipstick) panel - Urine" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "25428-4", + "display": "Glucose [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 0 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "5770-3", + "display": "Bilirubin.total [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 0 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "2514-8", + "display": "Ketones [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 0 + } + }, + { + "category": "laboratory", + "unit": "{SG}", + "codes": [ + { + "system": "LOINC", + "code": "5811-5", + "display": "Specific gravity of Urine by Test strip" + } + ], + "range": { + "low": 1.005, + "high": 1.025 + } + }, + { + "category": "laboratory", + "unit": "[pH]", + "codes": [ + { + "system": "LOINC", + "code": "5803-2", + "display": "pH of Urine by Test strip" + } + ], + "range": { + "low": 4.5, + "high": 8 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "20454-5", + "display": "Protein [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 0 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "5802-4", + "display": "Nitrite [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 0 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "5794-3", + "display": "Hemoglobin [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 0 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "5799-2", + "display": "Leukocyte esterase [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 0 + } + } + ], + "direct_transition": "Check CHF" + }, + "Urinalysis Abnormal": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24356-8", + "display": "Urinalysis complete panel - Urine" + }, + { + "system": "LOINC", + "code": "24357-6", + "display": "Urinalysis macro (dipstick) panel - Urine" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "25428-4", + "display": "Glucose [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 1 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "5770-3", + "display": "Bilirubin.total [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 1 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "2514-8", + "display": "Ketones [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 1 + } + }, + { + "category": "laboratory", + "unit": "{SG}", + "codes": [ + { + "system": "LOINC", + "code": "5811-5", + "display": "Specific gravity of Urine by Test strip" + } + ], + "range": { + "low": 1.005, + "high": 1.025 + } + }, + { + "category": "laboratory", + "unit": "[pH]", + "codes": [ + { + "system": "LOINC", + "code": "5803-2", + "display": "pH of Urine by Test strip" + } + ], + "range": { + "low": 4.5, + "high": 8 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "20454-5", + "display": "Protein [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 1 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "5802-4", + "display": "Nitrite [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 1 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "5794-3", + "display": "Hemoglobin [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 0 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "5799-2", + "display": "Leukocyte esterase [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 0 + } + } + ], + "direct_transition": "Check CHF" + }, + "Check CHF": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "NTproBNP_lab_workup", + "condition": { + "condition_type": "Attribute", + "attribute": "chf", + "operator": "is not nil" + } + }, + { + "transition": "Imaging" + } + ] + }, + "Common Labs": { + "type": "CallSubmodule", + "submodule": "heart/cabg/labs_common", + "direct_transition": "Blood Type and Cross" + }, + "Blood Type and Cross": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "44608003", + "display": "Blood group typing (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "Redo_Check", + "remarks": [ + "Synthea patients do not yet have blood types or Rh factors." + ] + }, + "Assign_Redo_Attribute": { + "type": "SetAttribute", + "attribute": "cabg_redo", + "direct_transition": "Priority 2+", + "value": true + }, + "Redo_Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Assign_Redo_Attribute", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399261000", + "display": "History of coronary artery bypass grafting (situation)" + } + ] + } + }, + { + "transition": "Priority 2+" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/cabg_sequence.json b/src/main/resources/modules/heart/cabg_sequence.json new file mode 100644 index 0000000..5d9e2f5 --- /dev/null +++ b/src/main/resources/modules/heart/cabg_sequence.json @@ -0,0 +1,226 @@ +{ + "name": "cabg_sequence", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "Cardiac Surgery Module General Remarks", + "", + "The Cardiac Surgery Module reflects the care pathway for Coronary Artery Bypass Graft (CABG) Surgery. The module and associated submodules seek to balance clinical detail with the need to model patient flow through a hospital/health care system, with an emphasis on elective scheduling.", + "", + "Priority: Refers to a patient’s priority for surgery based upon their clinical status and triage. Priority levels are defined as follows: ", + "", + "* Priority 1 = Surgery performed within 0-48 hours; the patient has no delay in surgery and/or is actively undergoing resuscitation or extracorporeal membrane oxygenation to sustain life.", + "* Priority 2 = Surgery performed within <=14 days, often during the same hospitalization to minimize risk of further clinical deterioration.", + "* Priority 3 = Surgery performed within <=42 days; the patient’s clinical condition is stable over days or weeks prior to the operation, but the procedure should preferentially not be deferred if needed due to increased risk of poor outcome.", + "* Priority 4 = Surgery performed within > 42 days; the patient’s clinical condition is stable over days or weeks prior to the operation, but the procedure could be deferred if needed without increased risk of poor outcome.", + "", + "Referrals are defined as follows: ", + "* Referral to Cardiac surgery: defined as specified", + "* Referral to Cardiology: defined as specified", + "* Referral to Service: defined as joint cardiology/cardiac surgery review or referral to a multidisciplinary Heart Team.", + "", + "Additional details for the Cardiac Surgery Module are noted in each submodule, as appropriate.", + "", + "Disclaimer: ", + "Health care and medicine is complex and the clinical course for patients may vary due to individual-level clinical and social factors. This module is constructed to reflect the general clinical pathway for most patients.", + "We acknowledge that the order or duration of events (testing, admit, transfer, etc.) can be varied based upon the clinical scenario. These graphical representations, and the module(s) developed, will not account for every possible patient scenario. This module was last updated in 2021.", + "", + "" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Reason", + "condition": { + "condition_type": "Attribute", + "attribute": "cardiac_surgery_reason", + "operator": "is nil" + } + }, + { + "transition": "Cardiac Encounter" + } + ] + }, + "CABG": { + "type": "SetAttribute", + "attribute": "cardiac_surgery", + "value": "cabg", + "direct_transition": "Assign Operative Status" + }, + "Set Outcomes": { + "type": "CallSubmodule", + "submodule": "heart/cabg/outcomes", + "direct_transition": "Referral_Procedure" + }, + "Cardiac Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "cardiac_surgery_reason", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "CABG" + }, + "Referral_Procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183519002", + "display": "Referral to cardiology service (procedure)" + } + ], + "duration": { + "low": 30, + "high": 60, + "unit": "minutes" + }, + "reason": "cardiac_surgery_reason", + "direct_transition": "End Cardiac Encounter" + }, + "End Cardiac Encounter": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Urgent", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + } + ] + } + }, + { + "transition": "Non Urgent" + } + ] + }, + "Urgent": { + "type": "Delay", + "direct_transition": "Referral and Preoperative Testing", + "range": { + "low": 1, + "high": 48, + "unit": "hours" + } + }, + "Non Urgent": { + "type": "Delay", + "direct_transition": "Referral and Preoperative Testing", + "range": { + "low": 1, + "high": 7, + "unit": "days" + } + }, + "Reason": { + "type": "ConditionOnset", + "assign_to_attribute": "cardiac_surgery_reason", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399211009", + "display": "History of myocardial infarction (situation)" + } + ], + "direct_transition": "Cardiac Encounter", + "target_encounter": "Cardiac Encounter" + }, + "Operation": { + "type": "CallSubmodule", + "submodule": "heart/cabg/operation", + "conditional_transition": [ + { + "transition": "Deceased", + "condition": { + "condition_type": "Attribute", + "attribute": "cabg_mortality", + "operator": "==", + "value": true + } + }, + { + "transition": "Postop ICU and Ward" + } + ] + }, + "Referral and Preoperative Testing": { + "type": "CallSubmodule", + "submodule": "heart/cabg/cabg_referral", + "conditional_transition": [ + { + "transition": "End Last Encounter", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "vhd_diagnosis", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "bicuspid_aortic_valve", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "repeat_referral_pci", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "repeat_referral_medical", + "operator": "is not nil" + } + ] + } + }, + { + "transition": "Operation" + } + ] + }, + "Postop ICU and Ward": { + "type": "CallSubmodule", + "submodule": "heart/cabg/postop", + "direct_transition": "End Last Encounter" + }, + "Deceased": { + "type": "Death", + "direct_transition": "End Last Encounter", + "referenced_by_attribute": "cardiac_surgery_reason" + }, + "Terminal": { + "type": "Terminal" + }, + "Assign Operative Status": { + "type": "CallSubmodule", + "submodule": "heart/operative_status", + "direct_transition": "Set Outcomes" + }, + "End Last Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/cardiac_labs.json b/src/main/resources/modules/heart/cardiac_labs.json new file mode 100644 index 0000000..05ea38c --- /dev/null +++ b/src/main/resources/modules/heart/cardiac_labs.json @@ -0,0 +1,799 @@ +{ + "name": "cardiac_labs", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "Labs used in preoperative testing related to the cardiovascular system." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "CBC" + }, + "Terminal": { + "type": "Terminal" + }, + "CBC": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3, + "high": 4 + } + }, + { + "category": "laboratory", + "unit": "10*6/uL", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.77, + "high": 5.8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "range": { + "low": 11.1, + "high": 14.1 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "4544-3", + "display": "Hematocrit [Volume Fraction] of Blood by Automated count" + } + ], + "range": { + "low": 37.5, + "high": 46.6 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 79, + "high": 97 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 26.6, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 31.5, + "high": 35.7 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "788-0", + "display": "Erythrocyte distribution width [Ratio] by Automated count" + } + ], + "range": { + "low": 12.3, + "high": 15.4 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 99, + "high": 150 + } + } + ], + "remarks": [ + "In the most severe patients, white-cell counts should be less than 4000 per mm3", + "In the most severe patients, platelet counts should also trend towards being less than 150K per mm3", + "In the most severe patients, median hemoglobin should be around 12.8 g/dL" + ], + "conditional_transition": [ + { + "transition": "Comprehensive_Metabolic_Panel_with_Kidney_Damage", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "is not nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40095003", + "display": "Injury of kidney (disorder)" + } + ] + } + ] + } + }, + { + "transition": "Comprehensive_Metabolic_Panel_with_Normal_Kidney" + } + ] + }, + "Magnesium": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "21377-7", + "display": "Magnesium [Mass/volume] in Blood" + } + ], + "direct_transition": "Lipids", + "range": { + "low": 1.7, + "high": 2.2 + }, + "remarks": [ + "normal range reference: https://medlineplus.gov/ency/article/003487.htm", + "", + "should we have a different range here?" + ] + }, + "Lipids": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "57698-3", + "display": "Lipid panel with direct LDL - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Total Cholesterol", + "codes": [ + { + "system": "LOINC", + "code": "2093-3", + "display": "Cholesterol [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 205, + "high": 305 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2571-8", + "display": "Triglycerides" + } + ], + "unit": "mg/dL", + "range": { + "low": 100, + "high": 400 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "18262-6", + "display": "Low Density Lipoprotein Cholesterol" + } + ], + "unit": "mg/dL", + "range": { + "low": 101, + "high": 200 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2085-9", + "display": "Cholesterol in HDL [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 20, + "high": 65 + } + } + ], + "direct_transition": "HbA1c", + "remarks": [ + "copied from Veteran hyperlipidemia module, need to review values" + ] + }, + "HbA1c": { + "type": "Observation", + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c/Hemoglobin.total in Blood" + } + ], + "direct_transition": "PT/INR", + "vital_sign": "Blood Glucose" + }, + "PT/INR": { + "type": "Observation", + "category": "laboratory", + "unit": "{INR}", + "codes": [ + { + "system": "LOINC", + "code": "6301-6", + "display": "INR in Platelet poor plasma by Coagulation assay" + } + ], + "direct_transition": "PTT", + "range": { + "low": 0.9, + "high": 1.2 + } + }, + "PTT": { + "type": "Observation", + "category": "laboratory", + "unit": "s", + "codes": [ + { + "system": "LOINC", + "code": "3173-2", + "display": "aPTT in Blood by Coagulation assay" + } + ], + "direct_transition": "NT-proBNP", + "range": { + "low": 25, + "high": 35 + } + }, + "NT-proBNP": { + "type": "Observation", + "category": "vital-signs", + "unit": "pg/mL", + "codes": [ + { + "system": "LOINC", + "code": "71425-3", + "display": "Natriuretic peptide.B prohormone N-Terminal [Mass/volume] in Blood by Immunoassay" + } + ], + "direct_transition": "Terminal", + "range": { + "low": 1, + "high": 2 + }, + "remarks": [ + "A normal level of NT-proBNP, based on Cleveland Clinic’s Reference Range is:", + "", + "Less than 125 pg/mL for patients aged 0-74 years", + "Less than 450 pg/mL for patients aged 75-99 years", + "If you have heart failure, the following NT-proBNP levels could mean your heart function is unstable:", + "", + "Higher than 450 pg/mL for patients under age 50", + "Higher than 900 pg/mL for patients age 50 and older" + ] + }, + "Comprehensive_Metabolic_Panel_with_Kidney_Damage": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.5, + "high": 3 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 5, + "high": 14 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 5.5, + "high": 8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 3.5, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 15 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 39, + "high": 117 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 44 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 40 + } + } + ], + "direct_transition": "Magnesium" + }, + "Comprehensive_Metabolic_Panel_with_Normal_Kidney": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "vital_sign": "Creatinine" + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "vital_sign": "EGFR" + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 5.5, + "high": 8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 3.5, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.3, + "high": 1.2 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 39, + "high": 117 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 44 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 40 + } + } + ], + "direct_transition": "Magnesium" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/chf_lab_work.json b/src/main/resources/modules/heart/chf_lab_work.json new file mode 100644 index 0000000..8956311 --- /dev/null +++ b/src/main/resources/modules/heart/chf_lab_work.json @@ -0,0 +1,626 @@ +{ + "name": "chf_lab_work", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "This submodule captures all the initial lab work based on the STS data dictionary and standard of care.", + "", + "- CBC", + "- CMP", + "- Magnesium ", + "- Lipids", + "- A1c ", + "- Troponin I ", + "- Ferritin", + "- Iron Panel= iron, TIBC and iron (transferrin) % saturation.", + "- ECG: 12 lead electrocardiogram (procedure)", + "- Cardiovascular stress testing (procedure); only about 25% of pop receive)", + "" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Body_Weight" + }, + "Terminal": { + "type": "Terminal" + }, + "NTproBNP_lab_workup": { + "type": "Observation", + "category": "laboratory", + "unit": "pg/mL", + "codes": [ + { + "system": "LOINC", + "code": "33762-6", + "display": "NT-proBNP" + } + ], + "range": { + "low": 200, + "high": 2000 + }, + "direct_transition": "CBC" + }, + "CBC": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.4, + "high": 10.8 + } + }, + { + "category": "laboratory", + "unit": "10*6/uL", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.77, + "high": 5.8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "range": { + "low": 11.1, + "high": 17.7 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "4544-3", + "display": "Hematocrit [Volume Fraction] of Blood by Automated count" + } + ], + "range": { + "low": 34, + "high": 51 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 79, + "high": 97 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 26.6, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 31.5, + "high": 35.7 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "788-0", + "display": "Erythrocyte distribution width [Ratio] by Automated count" + } + ], + "range": { + "low": 12.3, + "high": 15.4 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + } + ], + "direct_transition": "Comprehensive_Metabolic_Panel_with_Normal_Kidney" + }, + "Comprehensive_Metabolic_Panel_with_Normal_Kidney": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "vital_sign": "Creatinine" + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "vital_sign": "EGFR" + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 8.5 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 4, + "high": 5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.3, + "high": 1.2 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 39, + "high": 117 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 44 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 40 + } + } + ], + "direct_transition": "Magnesium" + }, + "Serum_Ferritin": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "75689-0", + "display": "Iron panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "ug/L", + "codes": [ + { + "system": "LOINC", + "code": "2276-4", + "display": "Ferritin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 30, + "high": 150 + } + } + ], + "direct_transition": "Iron Panel" + }, + "Magnesium": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "19123-9", + "display": "Magnesium [Mass/volume] in Serum or Plasma" + } + ], + "direct_transition": "Record_LipidPanel", + "range": { + "low": 1.6, + "high": 2.3 + } + }, + "Record_LipidPanel": { + "type": "DiagnosticReport", + "number_of_observations": 4, + "codes": [ + { + "system": "LOINC", + "code": "57698-3", + "display": "Lipid panel with direct LDL - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Total Cholesterol", + "codes": [ + { + "system": "LOINC", + "code": "2093-3", + "display": "Cholesterol [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Triglycerides", + "codes": [ + { + "system": "LOINC", + "code": "2571-8", + "display": "Triglycerides" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "LDL", + "codes": [ + { + "system": "LOINC", + "code": "18262-6", + "display": "Low Density Lipoprotein Cholesterol" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "HDL", + "codes": [ + { + "system": "LOINC", + "code": "2085-9", + "display": "Cholesterol in HDL [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + } + ], + "direct_transition": "Record_HA1C" + }, + "Record_HA1C": { + "type": "Observation", + "vital_sign": "Blood Glucose", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c/Hemoglobin.total in Blood" + } + ], + "unit": "%", + "direct_transition": "High_Sensitivity_Cardiac_Troponin_I" + }, + "High_Sensitivity_Cardiac_Troponin_I": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "89577-1", + "display": "Troponin I.cardiac panel - Serum or Plasma by High sensitivity method" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "pg/mL", + "codes": [ + { + "system": "LOINC", + "code": "89579-7", + "display": "Troponin I.cardiac [Mass/volume] in Serum or Plasma by High sensitivity method" + } + ], + "range": { + "low": 0, + "high": 0.04 + } + } + ], + "direct_transition": "Serum_Ferritin" + }, + "Iron Panel": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "50190-8", + "display": "Iron and Iron binding capacity panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "ug/dL", + "codes": [ + { + "system": "LOINC", + "code": "2498-4", + "display": "Iron [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 35, + "high": 165 + } + }, + { + "category": "laboratory", + "unit": "ug/dL", + "codes": [ + { + "system": "LOINC", + "code": "2500-7", + "display": "Iron binding capacity [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 250, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "2502-3", + "display": "Iron saturation [Mass Fraction] in Serum or Plasma" + } + ], + "range": { + "low": 15, + "high": 55 + } + } + ], + "direct_transition": "Terminal" + }, + "Body_Weight": { + "type": "Observation", + "category": "vital-signs", + "vital_sign": "Weight", + "codes": [ + { + "system": "LOINC", + "code": "29463-7", + "display": "Body Weight" + } + ], + "unit": "kg", + "direct_transition": "NTproBNP_lab_workup" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/chf_lvad.json b/src/main/resources/modules/heart/chf_lvad.json new file mode 100644 index 0000000..eda4658 --- /dev/null +++ b/src/main/resources/modules/heart/chf_lvad.json @@ -0,0 +1,95 @@ +{ + "name": "chf_lvad", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "LVAD Insertion Surgery" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Surgical Encounter" + }, + "Terminal": { + "type": "Terminal" + }, + "LVAD Insertion": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "232967006", + "display": "Implantation of left cardiac ventricular assist device (procedure)" + } + ], + "duration": { + "low": 4, + "high": 8, + "unit": "hours" + }, + "direct_transition": "LVAD Device", + "reason": "chf" + }, + "LVAD Device": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "360066001", + "display": "Left ventricular assist device (physical object)" + }, + "direct_transition": "Recovery" + }, + "Recovery": { + "type": "Delay", + "direct_transition": "Heart Failure Education", + "range": { + "low": 2, + "high": 3, + "unit": "weeks" + } + }, + "Preop Delay": { + "type": "Delay", + "direct_transition": "LVAD Insertion", + "range": { + "low": 30, + "high": 90, + "unit": "minutes" + } + }, + "Surgical Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "chf", + "codes": [ + { + "system": "SNOMED-CT", + "code": "387713003", + "display": "Surgical procedure (procedure)" + } + ], + "direct_transition": "Preop Delay" + }, + "Heart Failure Education": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "423475008", + "display": "Heart failure education (procedure)" + } + ], + "duration": { + "low": 30, + "high": 60, + "unit": "minutes" + }, + "reason": "chf", + "direct_transition": "Discharge" + }, + "Discharge": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/chf_meds.json b/src/main/resources/modules/heart/chf_meds.json new file mode 100644 index 0000000..31350fa --- /dev/null +++ b/src/main/resources/modules/heart/chf_meds.json @@ -0,0 +1,301 @@ +{ + "name": "chf_meds", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "Congestive Heart Failure Medications." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Initialize Check" + }, + "Terminal": { + "type": "Terminal" + }, + "Initialize Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Initialize", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_check", + "operator": "is nil" + } + }, + { + "transition": "Advance" + } + ] + }, + "Initialize": { + "type": "SetAttribute", + "attribute": "chf_med_step", + "direct_transition": "Branch", + "value": 1 + }, + "Branch": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": ">", + "value": 3 + } + }, + { + "transition": "HFmEF", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_type", + "operator": "==", + "value": "HFmEF" + } + }, + { + "transition": "HFpEF", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_type", + "operator": "==", + "value": "HFpEF" + } + }, + { + "transition": "HFrEF Branch", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_type", + "operator": "==", + "value": "HFrEF" + } + }, + { + "transition": "Terminal" + } + ] + }, + "Advance": { + "type": "Counter", + "attribute": "chf_med_step", + "action": "increment", + "direct_transition": "Branch" + }, + "HFmEF": { + "type": "CallSubmodule", + "submodule": "heart/chf_meds_hfmef", + "direct_transition": "Terminal" + }, + "HFpEF": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Diuretic", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 1 + } + }, + { + "transition": "Terminal" + } + ] + }, + "Diuretic": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "313988", + "display": "Furosemide 40 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "HFrEF Branch": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "HFrEF NYHA 1", + "condition": { + "condition_type": "Attribute", + "attribute": "nyha_class", + "operator": "==", + "value": 1 + } + }, + { + "transition": "HFrEF NYHA 2", + "condition": { + "condition_type": "Attribute", + "attribute": "nyha_class", + "operator": "==", + "value": 2 + } + }, + { + "transition": "HFrEF NYHA 3", + "condition": { + "condition_type": "Attribute", + "attribute": "nyha_class", + "operator": "==", + "value": 3 + } + }, + { + "transition": "HFrEF NYHA 4", + "condition": { + "condition_type": "Attribute", + "attribute": "nyha_class", + "operator": "==", + "value": 4 + } + } + ] + }, + "HFrEF NYHA 1": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "BB", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 1 + } + }, + { + "transition": "Terminal" + } + ] + }, + "HFrEF NYHA 2": { + "type": "CallSubmodule", + "submodule": "heart/chf_meds_hfref_nyha2", + "direct_transition": "Terminal" + }, + "HFrEF NYHA 3": { + "type": "CallSubmodule", + "submodule": "heart/chf_meds_hfref_nyha3", + "direct_transition": "Terminal" + }, + "HFrEF NYHA 4": { + "type": "CallSubmodule", + "submodule": "heart/chf_meds_hfref_nyha4", + "direct_transition": "Terminal" + }, + "BB": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 200033, + "display": "carvedilol 25 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "distributed_transition": [ + { + "transition": "ACE", + "distribution": 0.4 + }, + { + "transition": "ARB", + "distribution": 0.4 + }, + { + "transition": "Diuretic", + "distribution": 0.2 + } + ] + }, + "ACE": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 314077, + "display": "lisinopril 20 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Diuretic" + }, + "ARB": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 979492, + "display": "losartan potassium 50 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Diuretic" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/chf_meds_hfmef.json b/src/main/resources/modules/heart/chf_meds_hfmef.json new file mode 100644 index 0000000..f58160f --- /dev/null +++ b/src/main/resources/modules/heart/chf_meds_hfmef.json @@ -0,0 +1,341 @@ +{ + "name": "chf_meds_HFmEF", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "Congestive Heart Failure Medications for HFmEF." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "CKD Check" + }, + "Terminal": { + "type": "Terminal" + }, + "CKD Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "CKD Path", + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 4 + } + }, + { + "transition": "Other Path" + } + ] + }, + "CKD Path": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Other Step 1", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 1 + } + }, + { + "transition": "CKD Step 2", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 2 + } + }, + { + "transition": "Terminal" + } + ] + }, + "Other Path": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Other Step 1", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 1 + } + }, + { + "transition": "Other Step 2", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 2 + } + }, + { + "transition": "Other Step 3", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 3 + } + }, + { + "transition": "Terminal" + } + ] + }, + "Other Step 1": { + "type": "Simple", + "direct_transition": "Diuretic" + }, + "Other Step 2": { + "type": "Simple", + "direct_transition": "MRA" + }, + "Other Step 3": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "BiDil", + "distribution": 0.99 + }, + { + "distribution": 0.01, + "transition": "Dig" + } + ] + }, + "CKD Step 2": { + "type": "Simple", + "direct_transition": "BiDil" + }, + "Diuretic": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "313988", + "display": "Furosemide 40 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "direct_transition": "BB", + "chronic": true + }, + "BB": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 200033, + "display": "carvedilol 25 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "distributed_transition": [ + { + "transition": "ACE", + "distribution": 0.48 + }, + { + "transition": "ARB", + "distribution": 0.48 + }, + { + "transition": "ARNI", + "distribution": 0.04 + } + ] + }, + "ACE": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 314077, + "display": "lisinopril 20 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "ARB": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 979492, + "display": "losartan potassium 50 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "ARNI": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1656356, + "display": "sacubitril 97 MG / valsartan 103 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "MRA": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 313096, + "display": "spironolactone 25 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "BiDil": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 905377, + "display": "hydralazine hydrochloride 37.5 MG / isosorbide dinitrate 20 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 2, + "frequency": 3, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "Dig": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 197604, + "display": "digoxin 0.125 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/chf_meds_hfref_nyha2.json b/src/main/resources/modules/heart/chf_meds_hfref_nyha2.json new file mode 100644 index 0000000..20394c1 --- /dev/null +++ b/src/main/resources/modules/heart/chf_meds_hfref_nyha2.json @@ -0,0 +1,433 @@ +{ + "name": "chf_meds_HFrEF_NYHA2", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "Congestive Heart Failure Medications for HFrEF NYHA II." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "EF Check" + }, + "Terminal": { + "type": "Terminal" + }, + "Diuretic": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "313988", + "display": "Furosemide 40 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "direct_transition": "BB", + "chronic": true + }, + "BB": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 200033, + "display": "carvedilol 25 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "distributed_transition": [ + { + "transition": "ACE", + "distribution": 0.45 + }, + { + "transition": "ARB", + "distribution": 0.45 + }, + { + "transition": "ARNI", + "distribution": 0.1 + } + ] + }, + "ACE": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 314077, + "display": "lisinopril 20 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "ARB": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 979492, + "display": "losartan potassium 50 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "ARNI": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1656356, + "display": "sacubitril 97 MG / valsartan 103 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "Step 1": { + "type": "Simple", + "direct_transition": "Diuretic" + }, + "Step 2": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 979492, + "display": "losartan potassium 50 MG Oral Tablet" + } + ] + }, + "distributions": [ + { + "transition": "Stop ARB", + "distribution": 0.2 + }, + { + "transition": "Terminal", + "distribution": 0.8 + } + ] + }, + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 314077, + "display": "lisinopril 20 MG Oral Tablet" + } + ] + }, + "distributions": [ + { + "transition": "Stop ACE", + "distribution": 0.2 + }, + { + "transition": "Terminal", + "distribution": 0.8 + } + ] + } + ] + }, + "Stop ARB": { + "type": "MedicationEnd", + "direct_transition": "ARNI", + "medication_order": "ARB" + }, + "Stop ACE": { + "type": "MedicationEnd", + "direct_transition": "ARNI", + "medication_order": "ACE" + }, + "EF Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "CKD Check", + "condition": { + "condition_type": "Vital Sign", + "vital_sign": "Left ventricular Ejection fraction", + "operator": "<=", + "value": 35 + } + }, + { + "transition": "EF 36-40" + } + ] + }, + "CKD Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "CKD Path", + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 4 + } + }, + { + "transition": "Other Path" + } + ] + }, + "EF 36-40": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Step 1", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 1 + } + }, + { + "transition": "Step 2", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 2 + } + }, + { + "transition": "Terminal" + } + ] + }, + "Other Path": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Step 1", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 1 + } + }, + { + "transition": "Other Step 2", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 2 + } + }, + { + "transition": "IVA Step", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 3 + } + }, + { + "transition": "Terminal" + } + ] + }, + "CKD Path": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Step 1", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 1 + } + }, + { + "transition": "IVA Step", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 2 + } + }, + { + "transition": "Terminal" + } + ] + }, + "Other Step 2": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "MRA", + "distribution": 0.1 + }, + { + "transition": "Terminal", + "distribution": 0.9 + } + ] + }, + "MRA": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 313096, + "display": "spironolactone 25 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "IVA": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1649485, + "display": "ivabradine 5 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "IVA Step": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "MRA" + }, + "distributions": [ + { + "transition": "IVA", + "distribution": 0.01 + }, + { + "transition": "Terminal", + "distribution": 0.99 + } + ] + }, + { + "transition": "Terminal" + } + ] + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/chf_meds_hfref_nyha3.json b/src/main/resources/modules/heart/chf_meds_hfref_nyha3.json new file mode 100644 index 0000000..ba61fff --- /dev/null +++ b/src/main/resources/modules/heart/chf_meds_hfref_nyha3.json @@ -0,0 +1,499 @@ +{ + "name": "chf_meds_HFrEF_NYHA3", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "Congestive Heart Failure Medications for HFrEF NYHA III." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "EF Check" + }, + "Terminal": { + "type": "Terminal" + }, + "Diuretic": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "313988", + "display": "Furosemide 40 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "direct_transition": "BB", + "chronic": true + }, + "BB": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 200033, + "display": "carvedilol 25 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "distributed_transition": [ + { + "transition": "ACE", + "distribution": 0.45 + }, + { + "transition": "ARB", + "distribution": 0.45 + }, + { + "transition": "ARNI", + "distribution": 0.1 + } + ] + }, + "ACE": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 314077, + "display": "lisinopril 20 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "ARB": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 979492, + "display": "losartan potassium 50 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "ARNI": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1656356, + "display": "sacubitril 97 MG / valsartan 103 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "Step 1": { + "type": "Simple", + "direct_transition": "Diuretic" + }, + "Step 2": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "BiDil", + "distribution": 0.98 + }, + { + "transition": "Dig", + "distribution": 0.02 + } + ] + }, + "EF Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "CKD Check", + "condition": { + "condition_type": "Vital Sign", + "vital_sign": "Left ventricular Ejection fraction", + "operator": "<=", + "value": 35 + } + }, + { + "transition": "EF 36-40" + } + ] + }, + "CKD Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "CKD Path", + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 4 + } + }, + { + "transition": "Other Path" + } + ] + }, + "EF 36-40": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Step 1", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 1 + } + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 2 + }, + "transition": "Filter" + }, + { + "transition": "Terminal" + } + ] + }, + "Other Path": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Step 1", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 1 + } + }, + { + "transition": "Other Step 2", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 2 + } + }, + { + "transition": "Other Step 3", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 3 + } + }, + { + "transition": "Terminal" + } + ] + }, + "CKD Path": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Step 1", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 1 + } + }, + { + "transition": "IVA or BiDil Filter", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 2 + } + }, + { + "transition": "Terminal" + } + ] + }, + "Other Step 2": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "MRA", + "distribution": 0.1 + }, + { + "transition": "Terminal", + "distribution": 0.9 + } + ] + }, + "MRA": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 313096, + "display": "spironolactone 25 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "IVA": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1649485, + "display": "ivabradine 5 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "Filter": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Step 2", + "distribution": 0.05 + }, + { + "transition": "Terminal", + "distribution": 0.95 + } + ] + }, + "BiDil": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 905377, + "display": "hydralazine hydrochloride 37.5 MG / isosorbide dinitrate 20 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 2, + "frequency": 3, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "Dig": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 197604, + "display": "digoxin 0.125 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "IVA or BiDil Step": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "BiDil", + "distribution": 0.99 + }, + { + "transition": "IVA", + "distribution": 0.01 + } + ] + }, + "IVA or BiDil Filter": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "IVA or BiDil Step", + "distribution": 0.05 + }, + { + "transition": "Terminal", + "distribution": 0.95 + } + ] + }, + "Other Step 3": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Other Step 3 Filter", + "condition": { + "condition_type": "PriorState", + "name": "MRA" + } + }, + { + "transition": "Terminal" + } + ] + }, + "Other Step 3 Filter": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "BiDil or IVA or Dig", + "distribution": 0.05 + }, + { + "transition": "Terminal", + "distribution": 0.95 + } + ] + }, + "BiDil or IVA or Dig": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "BiDil", + "distribution": 0.98 + }, + { + "transition": "IVA", + "distribution": 0.01 + }, + { + "transition": "Dig", + "distribution": 0.01 + } + ] + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/chf_meds_hfref_nyha4.json b/src/main/resources/modules/heart/chf_meds_hfref_nyha4.json new file mode 100644 index 0000000..1b20e9a --- /dev/null +++ b/src/main/resources/modules/heart/chf_meds_hfref_nyha4.json @@ -0,0 +1,387 @@ +{ + "name": "chf_meds_HFrEF_NYHA4", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "Congestive Heart Failure Medications for HFrEF NYHA IV." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "CKD Check" + }, + "Terminal": { + "type": "Terminal" + }, + "Diuretic": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "313988", + "display": "Furosemide 40 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "direct_transition": "BB", + "chronic": true + }, + "BB": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 200033, + "display": "carvedilol 25 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "distributed_transition": [ + { + "transition": "ACE", + "distribution": 0.45 + }, + { + "transition": "ARB", + "distribution": 0.45 + }, + { + "transition": "ARNI", + "distribution": 0.1 + } + ] + }, + "ACE": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 314077, + "display": "lisinopril 20 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "ARB": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 979492, + "display": "losartan potassium 50 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "ARNI": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1656356, + "display": "sacubitril 97 MG / valsartan 103 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "Step 1": { + "type": "Simple", + "direct_transition": "Diuretic" + }, + "CKD Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "CKD Path", + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 4 + } + }, + { + "transition": "Other Path" + } + ] + }, + "Other Path": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Step 1", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 1 + } + }, + { + "transition": "Other Step 2", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 2 + } + }, + { + "transition": "Other Step 3", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 3 + } + }, + { + "transition": "Terminal" + } + ] + }, + "CKD Path": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Step 1", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 1 + } + }, + { + "transition": "BiDil Filter", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_med_step", + "operator": "==", + "value": 2 + } + }, + { + "transition": "Terminal" + } + ] + }, + "Other Step 2": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "MRA", + "distribution": 0.1 + }, + { + "transition": "Terminal", + "distribution": 0.9 + } + ] + }, + "MRA": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 313096, + "display": "spironolactone 25 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "BiDil": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 905377, + "display": "hydralazine hydrochloride 37.5 MG / isosorbide dinitrate 20 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 2, + "frequency": 3, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "Dig": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 197604, + "display": "digoxin 0.125 MG Oral Tablet" + } + ], + "reason": "chf", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "as_needed": true + }, + "chronic": true, + "direct_transition": "Terminal" + }, + "Other Step 3": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Other Step 3 Filter", + "condition": { + "condition_type": "PriorState", + "name": "MRA" + } + }, + { + "transition": "Terminal" + } + ] + }, + "Other Step 3 Filter": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "BiDil or Dig", + "distribution": 0.05 + }, + { + "transition": "Terminal", + "distribution": 0.95 + } + ] + }, + "BiDil Filter": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "BiDil", + "distribution": 0.05 + }, + { + "transition": "Terminal", + "distribution": 0.95 + } + ] + }, + "BiDil or Dig": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "BiDil", + "distribution": 0.99 + }, + { + "transition": "Dig", + "distribution": 0.01 + } + ] + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/chf_nyha_panel.json b/src/main/resources/modules/heart/chf_nyha_panel.json new file mode 100644 index 0000000..cf96818 --- /dev/null +++ b/src/main/resources/modules/heart/chf_nyha_panel.json @@ -0,0 +1,726 @@ +{ + "name": "chf_nyha_panel", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "Create NYHA Panel" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Check Class" + }, + "Terminal": { + "type": "Terminal" + }, + "Check Class": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Class 1", + "condition": { + "condition_type": "Attribute", + "attribute": "nyha_class", + "operator": "==", + "value": 1 + } + }, + { + "transition": "Class 2", + "condition": { + "condition_type": "Attribute", + "attribute": "nyha_class", + "operator": "==", + "value": 2 + } + }, + { + "transition": "Class 3", + "condition": { + "condition_type": "Attribute", + "attribute": "nyha_class", + "operator": "==", + "value": 3 + } + }, + { + "transition": "Class 4", + "condition": { + "condition_type": "Attribute", + "attribute": "nyha_class", + "operator": "==", + "value": 4 + } + } + ] + }, + "Class 1": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Result 1B", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_type", + "operator": "==", + "value": "HFpEF" + } + }, + { + "transition": "Result 1C", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_type", + "operator": "==", + "value": "HFmEF" + } + }, + { + "transition": "Result 1D", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_type", + "operator": "==", + "value": "HFrEF" + } + } + ] + }, + "Class 2": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Result 2B", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_type", + "operator": "==", + "value": "HFpEF" + } + }, + { + "transition": "Result 2C", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_type", + "operator": "==", + "value": "HFmEF" + } + }, + { + "transition": "Result 2D", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_type", + "operator": "==", + "value": "HFrEF" + } + } + ] + }, + "Class 3": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Result 3B", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_type", + "operator": "==", + "value": "HFpEF" + } + }, + { + "transition": "Result 3C", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_type", + "operator": "==", + "value": "HFmEF" + } + }, + { + "transition": "Result 3D", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_type", + "operator": "==", + "value": "HFrEF" + } + } + ] + }, + "Class 4": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Result 4B", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_type", + "operator": "==", + "value": "HFpEF" + } + }, + { + "transition": "Result 4C", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_type", + "operator": "==", + "value": "HFmEF" + } + }, + { + "transition": "Result 4D", + "condition": { + "condition_type": "Attribute", + "attribute": "chf_type", + "operator": "==", + "value": "HFrEF" + } + } + ] + }, + "Result 1B": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "93124-6", + "display": "New York Heart Association Functional Classification panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88020-3", + "display": "Functional capacity NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28404-4", + "display": "Class I" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88021-1", + "display": "Objective assessment of cardiovascular disease NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28409-3", + "display": "Objective evidence of minimal cardiovascular disease" + } + } + ], + "direct_transition": "Terminal" + }, + "Result 1C": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "93124-6", + "display": "New York Heart Association Functional Classification panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88020-3", + "display": "Functional capacity NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28404-4", + "display": "Class I" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88021-1", + "display": "Objective assessment of cardiovascular disease NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28410-1", + "display": "Objective evidence of moderately severe cardiovascular disease" + } + } + ], + "direct_transition": "Terminal" + }, + "Result 1D": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "93124-6", + "display": "New York Heart Association Functional Classification panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88020-3", + "display": "Functional capacity NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28404-4", + "display": "Class I" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88021-1", + "display": "Objective assessment of cardiovascular disease NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28411-9", + "display": "Objective evidence of severe cardiovascular disease" + } + } + ], + "direct_transition": "Terminal" + }, + "Result 2B": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "93124-6", + "display": "New York Heart Association Functional Classification panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88020-3", + "display": "Functional capacity NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28405-1", + "display": "Class II" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88021-1", + "display": "Objective assessment of cardiovascular disease NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28409-3", + "display": "Objective evidence of minimal cardiovascular disease" + } + } + ], + "direct_transition": "Terminal" + }, + "Result 2C": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "93124-6", + "display": "New York Heart Association Functional Classification panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88020-3", + "display": "Functional capacity NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28405-1", + "display": "Class II" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88021-1", + "display": "Objective assessment of cardiovascular disease NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28410-1", + "display": "Objective evidence of moderately severe cardiovascular disease" + } + } + ], + "direct_transition": "Terminal" + }, + "Result 2D": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "93124-6", + "display": "New York Heart Association Functional Classification panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88020-3", + "display": "Functional capacity NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28405-1", + "display": "Class II" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88021-1", + "display": "Objective assessment of cardiovascular disease NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28411-9", + "display": "Objective evidence of severe cardiovascular disease" + } + } + ], + "direct_transition": "Terminal" + }, + "Result 3B": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "93124-6", + "display": "New York Heart Association Functional Classification panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88020-3", + "display": "Functional capacity NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28406-9", + "display": "Class III" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88021-1", + "display": "Objective assessment of cardiovascular disease NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28409-3", + "display": "Objective evidence of minimal cardiovascular disease" + } + } + ], + "direct_transition": "Terminal" + }, + "Result 3C": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "93124-6", + "display": "New York Heart Association Functional Classification panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88020-3", + "display": "Functional capacity NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28406-9", + "display": "Class III" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88021-1", + "display": "Objective assessment of cardiovascular disease NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28410-1", + "display": "Objective evidence of moderately severe cardiovascular disease" + } + } + ], + "direct_transition": "Terminal" + }, + "Result 3D": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "93124-6", + "display": "New York Heart Association Functional Classification panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88020-3", + "display": "Functional capacity NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28406-9", + "display": "Class III" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88021-1", + "display": "Objective assessment of cardiovascular disease NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28411-9", + "display": "Objective evidence of severe cardiovascular disease" + } + } + ], + "direct_transition": "Terminal" + }, + "Result 4B": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "93124-6", + "display": "New York Heart Association Functional Classification panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88020-3", + "display": "Functional capacity NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28407-7", + "display": "Class IV" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88021-1", + "display": "Objective assessment of cardiovascular disease NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28409-3", + "display": "Objective evidence of minimal cardiovascular disease" + } + } + ], + "direct_transition": "Terminal" + }, + "Result 4C": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "93124-6", + "display": "New York Heart Association Functional Classification panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88020-3", + "display": "Functional capacity NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28407-7", + "display": "Class IV" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88021-1", + "display": "Objective assessment of cardiovascular disease NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28410-1", + "display": "Objective evidence of moderately severe cardiovascular disease" + } + } + ], + "direct_transition": "Terminal" + }, + "Result 4D": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "93124-6", + "display": "New York Heart Association Functional Classification panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88020-3", + "display": "Functional capacity NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28407-7", + "display": "Class IV" + } + }, + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88021-1", + "display": "Objective assessment of cardiovascular disease NYHA" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA28411-9", + "display": "Objective evidence of severe cardiovascular disease" + } + } + ], + "direct_transition": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/chf_transplant.json b/src/main/resources/modules/heart/chf_transplant.json new file mode 100644 index 0000000..5ecf0cf --- /dev/null +++ b/src/main/resources/modules/heart/chf_transplant.json @@ -0,0 +1,86 @@ +{ + "name": "chf_transplant", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "CHF Transplant Surgery" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Surgical Encounter" + }, + "Terminal": { + "type": "Terminal" + }, + "Recovery": { + "type": "Delay", + "direct_transition": "Education", + "range": { + "low": 2, + "high": 3, + "unit": "weeks" + } + }, + "Preop Delay": { + "type": "Delay", + "direct_transition": "Transplant Procedure", + "range": { + "low": 30, + "high": 90, + "unit": "minutes" + } + }, + "Surgical Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "chf", + "codes": [ + { + "system": "SNOMED-CT", + "code": "387713003", + "display": "Surgical procedure (procedure)" + } + ], + "direct_transition": "Preop Delay" + }, + "Discharge": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Transplant Procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32413006", + "display": "Transplantation of heart (procedure)" + } + ], + "duration": { + "low": 4, + "high": 8, + "unit": "hours" + }, + "direct_transition": "Recovery", + "reason": "chf" + }, + "Education": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "243063003", + "display": "Postoperative procedure education (procedure)" + } + ], + "duration": { + "low": 30, + "high": 60, + "unit": "minutes" + }, + "reason": "chf", + "direct_transition": "Discharge" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/nsteacs_pathway.json b/src/main/resources/modules/heart/nsteacs_pathway.json new file mode 100644 index 0000000..e374ae2 --- /dev/null +++ b/src/main/resources/modules/heart/nsteacs_pathway.json @@ -0,0 +1,395 @@ +{ + "name": "NSTEACS Pathway", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "ECG" + }, + "Terminal": { + "type": "Terminal" + }, + "ECG": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29303009", + "display": "Electrocardiographic procedure (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "HS_Troponin_I_1-3hr", + "remarks": [ + "Repeat ECG x2 q 30 mins" + ] + }, + "Check_Troponin_I": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "NSTEMI", + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "89579-7", + "display": "Troponin I.cardiac [Mass/volume] in Serum or Plasma by High sensitivity method" + } + ], + "operator": ">=", + "value": 10 + } + }, + { + "transition": "Unstable_Angina" + } + ] + }, + "NSTEMI": { + "type": "ConditionOnset", + "assign_to_attribute": "cardiac_surgery_reason", + "codes": [ + { + "system": "SNOMED-CT", + "code": "401314000", + "display": "Acute non-ST segment elevation myocardial infarction (disorder)" + } + ], + "direct_transition": "NSTEMI_Chance_of_Death" + }, + "Unstable_Angina": { + "type": "ConditionOnset", + "assign_to_attribute": "cardiac_surgery_reason", + "codes": [ + { + "system": "SNOMED-CT", + "code": "4557003", + "display": "Preinfarction syndrome (disorder)" + } + ], + "direct_transition": "UA_Chance_of_Death" + }, + "Risk_Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225338004", + "display": "Risk assessment (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Initial_Revasc_Strategy", + "reason": "cardiac_surgery_reason" + }, + "Ischemia-Guided": { + "type": "SetAttribute", + "attribute": "acs_ischemia_guided", + "direct_transition": "Stress_Testing", + "value": true + }, + "Invasive Care": { + "type": "Simple", + "direct_transition": "Time_Delay" + }, + "Stress_Testing": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "76746007", + "display": "Cardiovascular stress testing (procedure)" + } + ], + "duration": { + "low": 30, + "high": 45, + "unit": "minutes" + }, + "distributed_transition": [ + { + "transition": "Abnormal Stress Test", + "distribution": 0.3 + }, + { + "transition": "Call ACS Anti-PLT", + "distribution": 0.7 + } + ], + "reason": "cardiac_surgery_reason" + }, + "PCI": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "415070008", + "display": "Percutaneous coronary intervention (procedure)" + } + ], + "duration": { + "low": 45, + "high": 90, + "unit": "minutes" + }, + "direct_transition": "Call ACS Anti-PLT", + "reason": "cardiac_surgery_reason" + }, + "Hospital_Admission": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "cardiac_surgery_reason", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32485007", + "display": "Hospital admission (procedure)" + } + ], + "direct_transition": "Risk_Assessment" + }, + "NSTEMI_Chance_of_Death": { + "type": "SetAttribute", + "attribute": "chance_of_mi_death", + "direct_transition": "Hospital_Admission", + "distribution": { + "kind": "UNIFORM", + "round": false, + "parameters": { + "high": 0.06, + "low": 0.045 + } + } + }, + "UA_Chance_of_Death": { + "type": "SetAttribute", + "attribute": "chance_of_mi_death", + "direct_transition": "Hospital_Admission", + "value": 0.003 + }, + "HS_Troponin_I_1-3hr": { + "type": "Observation", + "category": "laboratory", + "unit": "ng/L", + "codes": [ + { + "system": "LOINC", + "code": "89579-7", + "display": "Troponin I.cardiac [Mass/volume] in Serum or Plasma by High sensitivity method" + } + ], + "direct_transition": "Check_Troponin_I", + "range": { + "low": 0, + "high": 120 + }, + "remarks": [ + " Normal range: below 0.04 ng/ml", + " Probable heart attack: above 0.40 ng/ml", + "https://testguide.labmed.uw.edu/public/view/TROPIG", + " ", + "Note this is used in the NSTEACS pathway to decide between NSTEMI and UA" + ] + }, + "Initial_Revasc_Strategy": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Cardiology", + "distribution": 0.9 + }, + { + "transition": "Cardiac_Surgery", + "distribution": 0.1 + } + ] + }, + "Cardiac_Surgery": { + "type": "Simple", + "direct_transition": "Call CABG Sequence" + }, + "Call CABG Sequence": { + "type": "CallSubmodule", + "submodule": "heart/cabg_sequence", + "direct_transition": "Set ACS_CABG_Referral" + }, + "Set ACS_CABG_Referral": { + "type": "SetAttribute", + "attribute": "ACS_CABG_referral", + "direct_transition": "Terminal", + "value": true + }, + "Cardiology": { + "type": "Simple", + "direct_transition": "Cardiology Consultation" + }, + "Call ACS_AC": { + "type": "CallSubmodule", + "submodule": "heart/acs_anticoagulant", + "complex_transition": [ + { + "condition": { + "condition_type": "True" + }, + "distributions": [ + { + "transition": "Invasive Care", + "distribution": 0.8 + }, + { + "transition": "Ischemia-Guided", + "distribution": 0.2 + } + ] + } + ] + }, + "Cardiology Consultation": { + "type": "Simple", + "direct_transition": "Call ACS_AC" + }, + "Abnormal Stress Test": { + "type": "Observation", + "category": "exam", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "18752-6", + "display": "Exercise stress test study" + } + ], + "direct_transition": "Angiography", + "value_code": { + "system": "SNOMED-CT", + "code": "439590007", + "display": "Cardiovascular stress test abnormal (finding)" + } + }, + "Angiography": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "33367005", + "display": "Angiography of coronary artery (procedure)" + } + ], + "unit": "minutes", + "distributed_transition": [ + { + "transition": "PCI", + "distribution": 0.95 + }, + { + "transition": "Terminal", + "distribution": 0.05 + } + ] + }, + "Call ACS Anti-PLT": { + "type": "CallSubmodule", + "submodule": "heart/acs_antiplatelet", + "direct_transition": "Terminal" + }, + "Time_Delay": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "0-2 hrs", + "distribution": 0.04 + }, + { + "transition": "2-24 hrs", + "distribution": 0.2 + }, + { + "transition": "24-48 hrs", + "distribution": 0.65 + }, + { + "transition": "48-72 hrs", + "distribution": 0.1 + }, + { + "transition": "72-plus hrs", + "distribution": 0.01 + } + ] + }, + "0-2 hrs": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 2, + "low": 0 + } + }, + "unit": "hours", + "direct_transition": "Angiography" + }, + "2-24 hrs": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 24, + "low": 2 + } + }, + "unit": "hours", + "direct_transition": "Angiography" + }, + "24-48 hrs": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 48, + "low": 24 + } + }, + "unit": "hours", + "direct_transition": "Angiography" + }, + "48-72 hrs": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 72, + "low": 48 + } + }, + "unit": "hours", + "direct_transition": "Angiography" + }, + "72-plus hrs": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 84, + "low": 72 + } + }, + "unit": "hours", + "direct_transition": "Angiography" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/operative_status.json b/src/main/resources/modules/heart/operative_status.json new file mode 100644 index 0000000..e0d3f21 --- /dev/null +++ b/src/main/resources/modules/heart/operative_status.json @@ -0,0 +1,201 @@ +{ + "name": "operative_status", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "Priority: Refers to a patient’s priority for surgery based upon their clinical status and triage. Priority levels are defined as follows: ", + "* Priority 1 = Surgery performed within 0-48 hours; the patient has no delay in surgery and/or is actively undergoing resuscitation or extracorporeal membrane oxygenation to sustain life.", + "* Priority 2 = Surgery performed within <=14 days, often during the same hospitalization to minimize risk of further clinical deterioration.", + "* Priority 3 = Surgery performed within <=42 days; the patient’s clinical condition is stable over days or weeks prior to the operation, but the procedure should preferentially not be deferred if needed due to increased risk of poor outcome.", + "* Priority 4 = Surgery performed within > 42 days; the patient’s clinical condition is stable over days or weeks prior to the operation, but the procedure could be deferred if needed without increased risk of poor outcome." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Check Operative Status" + }, + "Terminal": { + "type": "Terminal" + }, + "Priority 4": { + "type": "SetAttribute", + "attribute": "care_priority_level", + "value": 4, + "direct_transition": "Record Operative Status" + }, + "Priority 2": { + "type": "SetAttribute", + "attribute": "care_priority_level", + "value": 2, + "direct_transition": "Record Operative Status" + }, + "Priority 1": { + "type": "SetAttribute", + "attribute": "care_priority_level", + "value": 1, + "direct_transition": "Record Operative Status" + }, + "Priority 3": { + "type": "SetAttribute", + "attribute": "care_priority_level", + "value": 3, + "direct_transition": "Record Operative Status" + }, + "Check Operative Status": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "401303003", + "display": "Acute ST segment elevation myocardial infarction (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "401314000", + "display": "Acute non-ST segment elevation myocardial infarction (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "4557003", + "display": "Preinfarction syndrome (disorder)" + } + ] + } + ] + }, + "transition": "Nonelective" + }, + { + "transition": "Any" + } + ] + }, + "Nonelective": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Emergent", + "distribution": 0.1244 + }, + { + "transition": "Emergent Salvage", + "distribution": 0.0138 + }, + { + "transition": "Urgent", + "distribution": 0.8618 + } + ] + }, + "Any": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Elective", + "distribution": 0.3608 + }, + { + "transition": "Emergent", + "distribution": 0.0795 + }, + { + "transition": "Emergent Salvage", + "distribution": 0.0088 + }, + { + "transition": "Urgent", + "distribution": 0.5508 + } + ] + }, + "Elective": { + "type": "SetAttribute", + "attribute": "operative_status", + "value": "elective", + "distributed_transition": [ + { + "transition": "Priority 3", + "distribution": 0.5 + }, + { + "transition": "Priority 4", + "distribution": 0.5 + } + ] + }, + "Emergent": { + "type": "SetAttribute", + "attribute": "operative_status", + "value": "emergent", + "direct_transition": "Priority 1" + }, + "Emergent Salvage": { + "type": "SetAttribute", + "attribute": "operative_status", + "value": "emergent_salvage", + "direct_transition": "Priority 1" + }, + "Urgent": { + "type": "SetAttribute", + "attribute": "operative_status", + "value": "urgent", + "direct_transition": "Priority 2" + }, + "Record Operative Status": { + "type": "MultiObservation", + "category": "survey", + "number_of_observations": 0, + "codes": [ + { + "system": "LOINC", + "code": "X9999-0", + "display": "Operative Status" + } + ], + "direct_transition": "Terminal", + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "X9999-1", + "display": "Operative Status Value" + } + ], + "attribute": "operative_status" + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "X9999-2", + "display": "Priority Level" + } + ], + "attribute": "care_priority_level" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/or_blood.json b/src/main/resources/modules/heart/or_blood.json new file mode 100644 index 0000000..f8e1403 --- /dev/null +++ b/src/main/resources/modules/heart/or_blood.json @@ -0,0 +1,137 @@ +{ + "name": "or_blood", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Anemia Check" + }, + "Anemia Check": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "RBC", + "default_probability": 0.11, + "lookup_table_name": "or_blood_anemia_check.csv" + }, + { + "transition": "Platelet_Check", + "default_probability": 0.89, + "lookup_table_name": "or_blood_anemia_check.csv" + } + ] + }, + "RBC": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "71493000", + "display": "Transfusion of packed red blood cells (procedure)" + } + ], + "direct_transition": "RBC Supply" + }, + "RBC Supply": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 2, + "code": { + "system": "SNOMED-CT", + "code": "431069006", + "display": "Packed red blood cells (product)" + } + } + ], + "direct_transition": "Platelet_Check" + }, + "Terminal": { + "type": "Terminal" + }, + "Platelet Supply": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "126261006", + "display": "Human platelets, pooled (product)" + } + } + ], + "direct_transition": "Plasma_Check" + }, + "Plasma Supply": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "346447007", + "display": "Fresh frozen plasma (product)" + } + } + ], + "direct_transition": "Terminal" + }, + "Platelet_Check": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Platelet_Transfusion", + "default_probability": 0.1, + "lookup_table_name": "or_blood_platelet_check.csv" + }, + { + "transition": "Plasma_Check", + "default_probability": 0.9, + "lookup_table_name": "or_blood_platelet_check.csv" + } + ] + }, + "Platelet_Transfusion": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "12719002", + "display": "Platelet transfusion (procedure)" + } + ], + "direct_transition": "Platelet Supply" + }, + "Plasma_Check": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Plasma_Transfusion", + "default_probability": 0.13, + "lookup_table_name": "or_blood_plasma_check.csv" + }, + { + "transition": "Terminal", + "default_probability": 0.87, + "lookup_table_name": "or_blood_plasma_check.csv" + } + ] + }, + "Plasma_Transfusion": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "116861002", + "display": "Transfusion of fresh frozen plasma (procedure)" + } + ], + "direct_transition": "Plasma Supply" + } + }, + "gmf_version": 2, + "remarks": [ + "This submodule of Cardiac Surgery models the administration of Blood Products during various surgical procedures." + ] +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/savrepair/operative_status.json b/src/main/resources/modules/heart/savrepair/operative_status.json new file mode 100644 index 0000000..000c021 --- /dev/null +++ b/src/main/resources/modules/heart/savrepair/operative_status.json @@ -0,0 +1,144 @@ +{ + "name": "operative_status", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "SAVRepair_Operative_Status", + "", + "Priority: Refers to a patient’s priority for surgery based upon their clinical status and triage. Priority levels are defined as follows: ", + "* Priority 1 = Surgery performed within 0-48 hours; the patient has no delay in surgery and/or is actively undergoing resuscitation or extracorporeal membrane oxygenation to sustain life.", + "* Priority 2 = Surgery performed within <=14 days, often during the same hospitalization to minimize risk of further clinical deterioration.", + "* Priority 3 = Surgery performed within <=42 days; the patient’s clinical condition is stable over days or weeks prior to the operation, but the procedure should preferentially not be deferred if needed due to increased risk of poor outcome.", + "* Priority 4 = Surgery performed within > 42 days; the patient’s clinical condition is stable over days or weeks prior to the operation, but the procedure could be deferred if needed without increased risk of poor outcome." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Check Operative Status" + }, + "Terminal": { + "type": "Terminal" + }, + "Priority 4": { + "type": "SetAttribute", + "attribute": "care_priority_level", + "value": 4, + "direct_transition": "Record Operative Status" + }, + "Priority 2": { + "type": "SetAttribute", + "attribute": "care_priority_level", + "value": 2, + "direct_transition": "Record Operative Status" + }, + "Priority 1": { + "type": "SetAttribute", + "attribute": "care_priority_level", + "value": 1, + "direct_transition": "Record Operative Status" + }, + "Priority 3": { + "type": "SetAttribute", + "attribute": "care_priority_level", + "value": 3, + "direct_transition": "Record Operative Status" + }, + "Check Operative Status": { + "type": "Simple", + "direct_transition": "Any" + }, + "Any": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Elective", + "distribution": 1 + }, + { + "transition": "Emergent", + "distribution": 0 + }, + { + "transition": "Emergent Salvage", + "distribution": 0 + }, + { + "transition": "Urgent", + "distribution": 0 + } + ] + }, + "Elective": { + "type": "SetAttribute", + "attribute": "operative_status", + "value": "elective", + "distributed_transition": [ + { + "transition": "Priority 3", + "distribution": 0.5 + }, + { + "transition": "Priority 4", + "distribution": 0.5 + } + ] + }, + "Emergent": { + "type": "SetAttribute", + "attribute": "operative_status", + "value": "emergent", + "direct_transition": "Priority 1" + }, + "Emergent Salvage": { + "type": "SetAttribute", + "attribute": "operative_status", + "value": "emergent_salvage", + "direct_transition": "Priority 1" + }, + "Urgent": { + "type": "SetAttribute", + "attribute": "operative_status", + "value": "urgent", + "direct_transition": "Priority 2" + }, + "Record Operative Status": { + "type": "MultiObservation", + "category": "survey", + "number_of_observations": 0, + "codes": [ + { + "system": "LOINC", + "code": "X9999-0", + "display": "Operative Status" + } + ], + "direct_transition": "Terminal", + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "X9999-1", + "display": "Operative Status Value" + } + ], + "attribute": "operative_status" + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "X9999-2", + "display": "Priority Level" + } + ], + "attribute": "care_priority_level" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/savreplace/operative_status.json b/src/main/resources/modules/heart/savreplace/operative_status.json new file mode 100644 index 0000000..53b82d8 --- /dev/null +++ b/src/main/resources/modules/heart/savreplace/operative_status.json @@ -0,0 +1,178 @@ +{ + "name": "operative_status", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "SAVReplace_Operative_Status", + "", + "Priority: Refers to a patient’s priority for surgery based upon their clinical status and triage. Priority levels are defined as follows: ", + "* Priority 1 = Surgery performed within 0-48 hours; the patient has no delay in surgery and/or is actively undergoing resuscitation or extracorporeal membrane oxygenation to sustain life.", + "* Priority 2 = Surgery performed within <=14 days, often during the same hospitalization to minimize risk of further clinical deterioration.", + "* Priority 3 = Surgery performed within <=42 days; the patient’s clinical condition is stable over days or weeks prior to the operation, but the procedure should preferentially not be deferred if needed due to increased risk of poor outcome.", + "* Priority 4 = Surgery performed within > 42 days; the patient’s clinical condition is stable over days or weeks prior to the operation, but the procedure could be deferred if needed without increased risk of poor outcome." + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Check AS Operative Status", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60573004", + "display": "Aortic valve stenosis (disorder)" + } + ] + } + }, + { + "transition": "Check AR Operative Status" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Priority 4": { + "type": "SetAttribute", + "attribute": "care_priority_level", + "value": 4, + "direct_transition": "Record Operative Status" + }, + "Priority 2": { + "type": "SetAttribute", + "attribute": "care_priority_level", + "value": 2, + "direct_transition": "Record Operative Status" + }, + "Priority 1": { + "type": "SetAttribute", + "attribute": "care_priority_level", + "value": 1, + "direct_transition": "Record Operative Status" + }, + "Priority 3": { + "type": "SetAttribute", + "attribute": "care_priority_level", + "value": 3, + "direct_transition": "Record Operative Status" + }, + "Elective": { + "type": "SetAttribute", + "attribute": "operative_status", + "value": "elective", + "distributed_transition": [ + { + "transition": "Priority 3", + "distribution": 0.5 + }, + { + "transition": "Priority 4", + "distribution": 0.5 + } + ] + }, + "Emergent": { + "type": "SetAttribute", + "attribute": "operative_status", + "value": "emergent", + "direct_transition": "Priority 1" + }, + "Emergent Salvage": { + "type": "SetAttribute", + "attribute": "operative_status", + "value": "emergent_salvage", + "direct_transition": "Priority 1" + }, + "Urgent": { + "type": "SetAttribute", + "attribute": "operative_status", + "value": "urgent", + "direct_transition": "Priority 2" + }, + "Record Operative Status": { + "type": "MultiObservation", + "category": "survey", + "number_of_observations": 0, + "codes": [ + { + "system": "LOINC", + "code": "X9999-0", + "display": "Operative Status" + } + ], + "direct_transition": "Terminal", + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "X9999-1", + "display": "Operative Status Value" + } + ], + "attribute": "operative_status" + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "X9999-2", + "display": "Priority Level" + } + ], + "attribute": "care_priority_level" + } + ] + }, + "Check AR Operative Status": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Elective", + "distribution": 0.748 + }, + { + "transition": "Emergent", + "distribution": 0.037 + }, + { + "transition": "Emergent Salvage", + "distribution": 0 + }, + { + "transition": "Urgent", + "distribution": 0.21499999999999997 + } + ] + }, + "Check AS Operative Status": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Elective", + "distribution": 0.832 + }, + { + "transition": "Emergent", + "distribution": 0.023 + }, + { + "transition": "Emergent Salvage", + "distribution": 0 + }, + { + "transition": "Urgent", + "distribution": 0.14500000000000002 + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/stemi_fibrinolytic.json b/src/main/resources/modules/heart/stemi_fibrinolytic.json new file mode 100644 index 0000000..5c799ea --- /dev/null +++ b/src/main/resources/modules/heart/stemi_fibrinolytic.json @@ -0,0 +1,66 @@ +{ + "name": "stemi_fibrinolytic", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "distributed_transition": [ + { + "transition": "Reteplase", + "distribution": 0.33 + }, + { + "transition": "Alteplase", + "distribution": 0.33 + }, + { + "transition": "Tenecteplase", + "distribution": 0.34 + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Reteplase": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 763138, + "display": "reteplase 10 UNT Injection" + } + ], + "direct_transition": "Terminal", + "administration": true + }, + "Tenecteplase": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 313212, + "display": "tenecteplase 50 MG Injection" + } + ], + "direct_transition": "Terminal", + "administration": true + }, + "Alteplase": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1804799, + "display": "alteplase 100 MG Injection" + } + ], + "direct_transition": "Terminal", + "administration": true + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/stemi_pathway.json b/src/main/resources/modules/heart/stemi_pathway.json new file mode 100644 index 0000000..677e29a --- /dev/null +++ b/src/main/resources/modules/heart/stemi_pathway.json @@ -0,0 +1,230 @@ +{ + "name": "STEMI Pathway", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "STEMI" + }, + "Terminal": { + "type": "Terminal" + }, + "Admission_to_Hospital": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32485007", + "display": "Hospital admission (procedure)" + } + ], + "direct_transition": "Cardiology Consultation", + "reason": "STEMI" + }, + "PCI": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "415070008", + "display": "Percutaneous coronary intervention (procedure)" + } + ], + "duration": { + "low": 45, + "high": 90, + "unit": "minutes" + }, + "reason": "STEMI", + "direct_transition": "Anti-Plt Submodule" + }, + "STEMI": { + "type": "ConditionOnset", + "assign_to_attribute": "cardiac_surgery_reason", + "codes": [ + { + "system": "SNOMED-CT", + "code": "401303003", + "display": "Acute ST segment elevation myocardial infarction (disorder)" + } + ], + "direct_transition": "Set_Chance_of_Death" + }, + "Set_Chance_of_Death": { + "type": "SetAttribute", + "attribute": "chance_of_mi_death", + "distributed_transition": [ + { + "transition": "Cardiology", + "distribution": 0.935 + }, + { + "transition": "Cardiac Surgery", + "distribution": 0.065 + } + ], + "value": 0.052 + }, + "Cardiac Surgery": { + "type": "Simple", + "direct_transition": "CABG_Operation" + }, + "Cardiology": { + "type": "Simple", + "direct_transition": "Admission_to_Hospital" + }, + "Set_ACS_CABG_Referral": { + "type": "SetAttribute", + "attribute": "ACS_CABG_referral", + "direct_transition": "Terminal", + "value": true + }, + "CABG_Operation": { + "type": "CallSubmodule", + "submodule": "heart/cabg_sequence", + "direct_transition": "Set_ACS_CABG_Referral" + }, + "Cardiology Consultation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698314001", + "display": "Consultation for treatment (procedure)" + } + ], + "unit": "minutes", + "distributed_transition": [ + { + "transition": "Primary PCI", + "distribution": 0.9 + }, + { + "transition": "Pharmacoinvasive", + "distribution": 0.05 + }, + { + "transition": "Fibrinolysis", + "distribution": 0.05 + } + ] + }, + "Primary PCI": { + "type": "SetAttribute", + "attribute": "stemi_cardiology_approach", + "direct_transition": "AC Submodule", + "value": "pci" + }, + "Pharmacoinvasive": { + "type": "SetAttribute", + "attribute": "stemi_cardiology_approach", + "direct_transition": "Fibrinolytic Submodule", + "value": "pharmacoinvasive" + }, + "Fibrinolysis": { + "type": "SetAttribute", + "attribute": "stemi_cardiology_approach", + "direct_transition": "Fibrinolytic Submodule", + "value": "fibrinolysis" + }, + "AC Submodule": { + "type": "CallSubmodule", + "submodule": "heart/acs_anticoagulant", + "conditional_transition": [ + { + "transition": "Risk Assessment", + "condition": { + "condition_type": "Attribute", + "attribute": "stemi_cardiology_approach", + "operator": "==", + "value": "pharmacoinvasive" + } + }, + { + "transition": "Anti-Plt Submodule", + "condition": { + "condition_type": "Attribute", + "attribute": "stemi_cardiology_approach", + "operator": "==", + "value": "fibrinolysis" + } + }, + { + "transition": "Coronary Angiography" + } + ] + }, + "Fibrinolytic Submodule": { + "type": "CallSubmodule", + "submodule": "heart/stemi_fibrinolytic", + "direct_transition": "AC Submodule" + }, + "Anti-Plt Submodule": { + "type": "CallSubmodule", + "submodule": "heart/acs_antiplatelet", + "direct_transition": "Terminal" + }, + "Coronary Angiography": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "33367005", + "display": "Angiography of coronary artery (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "PCI" + }, + "Risk Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225338004", + "display": "Risk assessment (procedure)" + } + ], + "unit": "minutes", + "distributed_transition": [ + { + "transition": "Routine", + "distribution": 0.5 + }, + { + "transition": "Rescue", + "distribution": 0.5 + } + ] + }, + "Routine": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 24, + "low": 2 + } + }, + "unit": "hours", + "direct_transition": "Coronary Angiography" + }, + "Rescue": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 2, + "low": 0 + } + }, + "unit": "hours", + "direct_transition": "Coronary Angiography" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/tavr/alt_access.json b/src/main/resources/modules/heart/tavr/alt_access.json new file mode 100644 index 0000000..43af540 --- /dev/null +++ b/src/main/resources/modules/heart/tavr/alt_access.json @@ -0,0 +1,157 @@ +{ + "name": "alt_access", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "TAVR Valve Sheath Access" + }, + "Terminal": { + "type": "Terminal" + }, + "TAVR Valve Sheath Access": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Transapical", + "distribution": 0.07 + }, + { + "transition": "Transaxillary", + "distribution": 0.23 + }, + { + "transition": "Transaortic", + "distribution": 0.12 + }, + { + "transition": "Subclavian", + "distribution": 0.35 + }, + { + "transition": "Transcarotid", + "distribution": 0.22 + }, + { + "transition": "Other", + "distribution": 0.01 + } + ] + }, + "Transapical": { + "type": "Observation", + "category": "procedure", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "direct_transition": "Terminal", + "value_code": { + "system": "SNOMED-CT", + "code": "715998004", + "display": "Transapical approach (qualifier value)" + } + }, + "Transaxillary": { + "type": "Observation", + "category": "procedure", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "direct_transition": "Terminal", + "value_code": { + "system": "SNOMED-CT", + "code": "416896004", + "display": "Axillary approach (qualifier value)" + } + }, + "Transaortic": { + "type": "Observation", + "category": "procedure", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "direct_transition": "Terminal", + "value_code": { + "system": "SNOMED-CT", + "code": 261051005, + "display": "Aortic (qualifier value)" + } + }, + "Subclavian": { + "type": "Observation", + "category": "procedure", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "direct_transition": "Terminal", + "value_code": { + "system": "SNOMED-CT", + "code": "303578004", + "display": "Subclavicular approach (qualifier value)" + } + }, + "Transcarotid": { + "type": "Observation", + "category": "procedure", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "direct_transition": "Terminal", + "value_code": { + "system": "SNOMED-CT", + "code": "260582008", + "display": "Via carotid artery (qualifier value)" + } + }, + "Other": { + "type": "Observation", + "category": "procedure", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "29554-3", + "display": "Procedure Narrative" + } + ], + "direct_transition": "Terminal", + "value_code": { + "system": "SNOMED-CT", + "code": "74964007", + "display": "Other (qualifier value)" + }, + "remarks": [ + "Transiliac/ Transeptal" + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/tavr/operation.json b/src/main/resources/modules/heart/tavr/operation.json new file mode 100644 index 0000000..69306b2 --- /dev/null +++ b/src/main/resources/modules/heart/tavr/operation.json @@ -0,0 +1,174 @@ +{ + "name": "operation", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "Note: the Encounter used for everything here is expected to have been started in the AVRr referral submodule" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Intraop care" + }, + "Terminal": { + "type": "Terminal" + }, + "Intraop care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "133900002", + "display": "Intraoperative care (regime/therapy)" + } + ], + "unit": "minutes", + "direct_transition": "OR Labs and Meds" + }, + "Incision": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "34896006", + "display": "Incision (procedure)" + } + ], + "unit": "minutes", + "distributed_transition": [ + { + "transition": "Transfemoral", + "distribution": 0.9365 + }, + { + "transition": "TAVR Alt Access", + "distribution": 0.0635 + } + ] + }, + "Transfemoral": { + "type": "SetAttribute", + "attribute": "tavr_transfemoral", + "direct_transition": "Transfemoral TAVR", + "value": true + }, + "TAVR Alt Access": { + "type": "SetAttribute", + "attribute": "tavr_alt_access", + "direct_transition": "Alt Access Submodule", + "value": true + }, + "Alt Access Submodule": { + "type": "CallSubmodule", + "submodule": "heart/tavr/alt_access", + "direct_transition": "TAVR" + }, + "OR Labs and Meds": { + "type": "CallSubmodule", + "submodule": "heart/avrr/intraop_meds_blood", + "direct_transition": "Anesthesia" + }, + "Anesthesia": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "410011004", + "display": "Administration of anesthesia AND/OR sedation (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 49.38047619, + "standardDeviation": 21.57047619 + } + }, + "unit": "minutes", + "direct_transition": "Incision", + "remarks": [ + "This is intentionally NOT the anesthesia submodule" + ] + }, + "Dressing": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "58828004", + "display": "Application of dressing, sterile (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "OR Exit" + }, + "OR Exit": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "37729005", + "display": "Patient transfer, in-hospital (procedure)" + } + ], + "unit": "minutes", + "direct_transition": "History Condition" + }, + "Finish Surgery": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "History Condition": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1231000119100", + "display": "History of aortic valve replacement (situation)" + } + ], + "direct_transition": "Finish Surgery", + "assign_to_attribute": "tavr_history" + }, + "Transfemoral TAVR": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "773996000", + "display": "Transcatheter aortic valve implantation (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 62.41333671, + "standardDeviation": 28.01488844 + } + }, + "unit": "minutes", + "direct_transition": "Dressing", + "reason": "cardiac_surgery_reason" + }, + "TAVR": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "773996000", + "display": "Transcatheter aortic valve implantation (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 72.60833671, + "standardDeviation": 28.01488844 + } + }, + "unit": "minutes", + "reason": "cardiac_surgery_reason", + "direct_transition": "Dressing" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/tavr/operative_status.json b/src/main/resources/modules/heart/tavr/operative_status.json new file mode 100644 index 0000000..d520718 --- /dev/null +++ b/src/main/resources/modules/heart/tavr/operative_status.json @@ -0,0 +1,144 @@ +{ + "name": "operative_status", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "TAVR_Operative_Status", + "", + "Priority: Refers to a patient’s priority for surgery based upon their clinical status and triage. Priority levels are defined as follows: ", + "* Priority 1 = Surgery performed within 0-48 hours; the patient has no delay in surgery and/or is actively undergoing resuscitation or extracorporeal membrane oxygenation to sustain life.", + "* Priority 2 = Surgery performed within <=14 days, often during the same hospitalization to minimize risk of further clinical deterioration.", + "* Priority 3 = Surgery performed within <=42 days; the patient’s clinical condition is stable over days or weeks prior to the operation, but the procedure should preferentially not be deferred if needed due to increased risk of poor outcome.", + "* Priority 4 = Surgery performed within > 42 days; the patient’s clinical condition is stable over days or weeks prior to the operation, but the procedure could be deferred if needed without increased risk of poor outcome." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Check Operative Status" + }, + "Terminal": { + "type": "Terminal" + }, + "Priority 4": { + "type": "SetAttribute", + "attribute": "care_priority_level", + "value": 4, + "direct_transition": "Record Operative Status" + }, + "Priority 2": { + "type": "SetAttribute", + "attribute": "care_priority_level", + "value": 2, + "direct_transition": "Record Operative Status" + }, + "Priority 1": { + "type": "SetAttribute", + "attribute": "care_priority_level", + "value": 1, + "direct_transition": "Record Operative Status" + }, + "Priority 3": { + "type": "SetAttribute", + "attribute": "care_priority_level", + "value": 3, + "direct_transition": "Record Operative Status" + }, + "Check Operative Status": { + "type": "Simple", + "direct_transition": "Any" + }, + "Any": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Elective", + "distribution": 0.87 + }, + { + "transition": "Emergent", + "distribution": 0.012 + }, + { + "transition": "Emergent Salvage", + "distribution": 0.002 + }, + { + "transition": "Urgent", + "distribution": 0.116 + } + ] + }, + "Elective": { + "type": "SetAttribute", + "attribute": "operative_status", + "value": "elective", + "distributed_transition": [ + { + "transition": "Priority 3", + "distribution": 0.5 + }, + { + "transition": "Priority 4", + "distribution": 0.5 + } + ] + }, + "Emergent": { + "type": "SetAttribute", + "attribute": "operative_status", + "value": "emergent", + "direct_transition": "Priority 1" + }, + "Emergent Salvage": { + "type": "SetAttribute", + "attribute": "operative_status", + "value": "emergent_salvage", + "direct_transition": "Priority 1" + }, + "Urgent": { + "type": "SetAttribute", + "attribute": "operative_status", + "value": "urgent", + "direct_transition": "Priority 2" + }, + "Record Operative Status": { + "type": "MultiObservation", + "category": "survey", + "number_of_observations": 0, + "codes": [ + { + "system": "LOINC", + "code": "X9999-0", + "display": "Operative Status" + } + ], + "direct_transition": "Terminal", + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "X9999-1", + "display": "Operative Status Value" + } + ], + "attribute": "operative_status" + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "X9999-2", + "display": "Priority Level" + } + ], + "attribute": "care_priority_level" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/tavr/outcomes.json b/src/main/resources/modules/heart/tavr/outcomes.json new file mode 100644 index 0000000..7a0668c --- /dev/null +++ b/src/main/resources/modules/heart/tavr/outcomes.json @@ -0,0 +1,922 @@ +{ + "name": "outcomes", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "TAVR outcomes based on operative status." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Mortality is set in postop" + }, + "Terminal": { + "type": "Terminal" + }, + "Check_Acute renal failure on dialysis": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Acute renal failure on dialysis", + "distribution": 0.006977 + }, + { + "transition": "Check_Acute respiratory insufficiency", + "distribution": 0.993023 + } + ] + }, + { + "distributions": [ + { + "transition": "Acute renal failure on dialysis", + "distribution": 0.001 + }, + { + "transition": "Check_Acute respiratory insufficiency", + "distribution": 0.999 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + } + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Acute renal failure on dialysis", + "distribution": 0.001 + }, + { + "transition": "Check_Acute respiratory insufficiency", + "distribution": 0.999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Acute renal failure on dialysis", + "distribution": 0.001 + }, + { + "transition": "Check_Acute respiratory insufficiency", + "distribution": 0.999 + } + ] + } + ] + }, + "Check_Acute respiratory insufficiency": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Acute respiratory insufficiency", + "distribution": 0.004651 + }, + { + "transition": "Terminal", + "distribution": 0.995349 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Acute respiratory insufficiency", + "distribution": 0.001 + }, + { + "transition": "Terminal", + "distribution": 0.999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Acute respiratory insufficiency", + "distribution": 0.001 + }, + { + "transition": "Terminal", + "distribution": 0.9990000000000001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Acute respiratory insufficiency", + "distribution": 0.001 + }, + { + "transition": "Terminal", + "distribution": 0.999 + } + ] + } + ] + }, + "Reexploration procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "232816009", + "display": "Aortic valve and adjacent structure operations (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "261554009", + "display": "Reoperation (qualifier value)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 72.6, + "standardDeviation": 28.6 + } + }, + "unit": "minutes", + "direct_transition": "Check postop pacemaker", + "reason": "tavr_history" + }, + "Acute renal failure on dialysis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "129721000119106", + "display": "Acute renal failure on dialysis (disorder)" + } + ], + "direct_transition": "End renal failure with dialysis" + }, + "Acute respiratory insufficiency": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65710008", + "display": "Acute respiratory failure (disorder)" + } + ], + "direct_transition": "End insufficiency" + }, + "Check Postop RBC Transfusion": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "RBC Transfusion", + "distribution": 0.048837 + }, + { + "transition": "Check applicability", + "distribution": 0.9511630000000001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "RBC Transfusion", + "distribution": 0.333333 + }, + { + "transition": "Check applicability", + "distribution": 0.666667 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "RBC Transfusion", + "distribution": 0.001 + }, + { + "transition": "Check applicability", + "distribution": 0.9990000000000001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "RBC Transfusion", + "distribution": 0.070175 + }, + { + "transition": "Check applicability", + "distribution": 0.929825 + } + ] + } + ] + }, + "Mortality is set in postop": { + "type": "Simple", + "direct_transition": "Check Postop RBC Transfusion" + }, + "RBC Transfusion": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "116863004", + "display": "Transfusion of red blood cells (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 10 + } + }, + "unit": "minutes", + "direct_transition": "Check applicability", + "reason": "tavr_history" + }, + "Check Reop procedure": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Reexploration procedure", + "distribution": 0.0001 + }, + { + "transition": "Check postop pacemaker", + "distribution": 0.9999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Reexploration procedure", + "distribution": 0.0001 + }, + { + "transition": "Check postop pacemaker", + "distribution": 0.9999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Reexploration procedure", + "distribution": 0.0001 + }, + { + "transition": "Check postop pacemaker", + "distribution": 0.9999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Reexploration procedure", + "distribution": 0.0001 + }, + { + "transition": "Check postop pacemaker", + "distribution": 0.9999 + } + ] + } + ] + }, + "Check postop pacemaker": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Postop Pacemaker", + "distribution": 0.044186 + }, + { + "transition": "Check postop bleeding", + "distribution": 0.9558139999999999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Postop Pacemaker", + "distribution": 0.166667 + }, + { + "transition": "Check postop bleeding", + "distribution": 0.8333330000000001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Postop Pacemaker", + "distribution": 0.0001 + }, + { + "transition": "Check postop bleeding", + "distribution": 0.9999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Postop Pacemaker", + "distribution": 0.087719 + }, + { + "transition": "Check postop bleeding", + "distribution": 0.912281 + } + ] + } + ] + }, + "Postop Pacemaker": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "233174007", + "display": "Cardiac pacemaker procedure (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "The Pacemaker", + "reason": "tavr_history" + }, + "The Pacemaker": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "14106009", + "display": "Cardiac pacemaker, device (physical object)" + }, + "direct_transition": "Check postop bleeding", + "assign_to_attribute": "pacemaker" + }, + "Check postop bleeding": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Bleeding", + "distribution": 0.006977 + }, + { + "transition": "Check postop myocardial infarction", + "distribution": 0.993023 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Bleeding", + "distribution": 0.001 + }, + { + "transition": "Check postop myocardial infarction", + "distribution": 0.999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Bleeding", + "distribution": 0.001 + }, + { + "transition": "Check postop myocardial infarction", + "distribution": 0.9990000000000001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Bleeding", + "distribution": 0.017544 + }, + { + "transition": "Check postop myocardial infarction", + "distribution": 0.982456 + } + ] + } + ] + }, + "Bleeding": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "278365007", + "display": "Anticoagulant-induced bleeding (disorder)" + } + ], + "direct_transition": "End Bleeding" + }, + "Check postop myocardial infarction": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Postoperative_myocardial_infarction", + "distribution": 0.002326 + }, + { + "transition": "Check postop stroke", + "distribution": 0.997674 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Postoperative_myocardial_infarction", + "distribution": 0.001 + }, + { + "transition": "Check postop stroke", + "distribution": 0.999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Postoperative_myocardial_infarction", + "distribution": 0.001 + }, + { + "transition": "Check postop stroke", + "distribution": 0.999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Postoperative_myocardial_infarction", + "distribution": 0.001 + }, + { + "transition": "Check postop stroke", + "distribution": 0.999 + } + ] + } + ] + }, + "Postoperative_myocardial_infarction": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "129574000", + "display": "Postoperative myocardial infarction (disorder)" + } + ], + "direct_transition": "End MI" + }, + "Check postop stroke": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Stroke", + "distribution": 0.006977 + }, + { + "transition": "Check postop renal failure", + "distribution": 0.993023 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Stroke", + "distribution": 0.001 + }, + { + "transition": "Check postop renal failure", + "distribution": 0.999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Stroke", + "distribution": 0.001 + }, + { + "transition": "Check postop renal failure", + "distribution": 0.999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Stroke", + "distribution": 0.001 + }, + { + "transition": "Check postop renal failure", + "distribution": 0.999 + } + ] + } + ] + }, + "Stroke": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "230690007", + "display": "Cerebrovascular accident (disorder)" + } + ], + "direct_transition": "End Stroke" + }, + "Check postop renal failure": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Postoperative_renal_failure", + "distribution": 0.006977 + }, + { + "transition": "Check_Acute renal failure on dialysis", + "distribution": 0.993023 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Postoperative_renal_failure", + "distribution": 0.001 + }, + { + "transition": "Check_Acute renal failure on dialysis", + "distribution": 0.9990000000000001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Postoperative_renal_failure", + "distribution": 0.001 + }, + { + "transition": "Check_Acute renal failure on dialysis", + "distribution": 0.9990000000000001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Postoperative_renal_failure", + "distribution": 0.017544 + }, + { + "transition": "Check_Acute renal failure on dialysis", + "distribution": 0.982456 + } + ] + } + ] + }, + "Postoperative_renal_failure": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "275408006", + "display": "Postoperative renal failure (disorder)" + } + ], + "direct_transition": "End renal failure" + }, + "End Bleeding": { + "type": "ConditionEnd", + "direct_transition": "Check postop myocardial infarction", + "condition_onset": "Bleeding" + }, + "End MI": { + "type": "ConditionEnd", + "direct_transition": "Check postop stroke", + "condition_onset": "Postoperative_myocardial_infarction" + }, + "End Stroke": { + "type": "ConditionEnd", + "direct_transition": "Check postop renal failure", + "condition_onset": "Stroke" + }, + "End renal failure": { + "type": "ConditionEnd", + "direct_transition": "Check_Acute renal failure on dialysis", + "condition_onset": "Postoperative_renal_failure" + }, + "End renal failure with dialysis": { + "type": "ConditionEnd", + "direct_transition": "Check_Acute respiratory insufficiency", + "condition_onset": "Acute renal failure on dialysis" + }, + "End insufficiency": { + "type": "ConditionEnd", + "direct_transition": "Terminal", + "condition_onset": "Acute respiratory insufficiency" + }, + "Check applicability": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "tavr_mortality", + "operator": "is nil" + }, + { + "condition_type": "Attribute", + "attribute": "tavr_mortality", + "operator": "==", + "value": false + } + ] + }, + { + "condition_type": "Attribute", + "attribute": "tavr_icu_los", + "operator": "is nil" + } + ] + } + }, + { + "transition": "Check Reop procedure" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/tavr/postop.json b/src/main/resources/modules/heart/tavr/postop.json new file mode 100644 index 0000000..6407c7b --- /dev/null +++ b/src/main/resources/modules/heart/tavr/postop.json @@ -0,0 +1,944 @@ +{ + "name": "postop", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "This submodule of Cardiac Surgery models Postoperative ICU and Ward Care." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Set_Mortality" + }, + "Terminal": { + "type": "Terminal" + }, + "Discharge": { + "type": "EncounterEnd", + "direct_transition": "ICU to Ward" + }, + "Check Alive": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Deceased", + "condition": { + "condition_type": "Attribute", + "attribute": "tavr_mortality", + "operator": "==", + "value": true + } + }, + { + "transition": "Check for ICU" + } + ] + }, + "Deceased": { + "type": "Death", + "direct_transition": "Terminal" + }, + "Begin Day": { + "type": "Counter", + "attribute": "tavr_icu_los", + "action": "decrement", + "conditional_transition": [ + { + "transition": "ICU ECG", + "condition": { + "condition_type": "Attribute", + "attribute": "tavr_icu_los", + "operator": "<=", + "value": 1 + } + }, + { + "transition": "ICU_Labs" + } + ] + }, + "End Day": { + "type": "Delay", + "exact": { + "quantity": 12, + "unit": "hours" + }, + "conditional_transition": [ + { + "transition": "Begin Day", + "condition": { + "condition_type": "Attribute", + "attribute": "tavr_icu_los", + "operator": ">", + "value": 0 + } + }, + { + "transition": "ICU Antithrombic" + } + ] + }, + "Discharge to Ward": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "306706006", + "display": "Discharge to ward (procedure)" + } + ], + "direct_transition": "Discharge", + "reason": "tavr_history" + }, + "Admission to Ward": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305342007", + "display": "Admission to ward (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 10, + "low": 5 + } + }, + "unit": "minutes", + "reason": "tavr_history", + "conditional_transition": [ + { + "transition": "Just came from ICU", + "condition": { + "condition_type": "Attribute", + "attribute": "postop_icu_to_ward", + "operator": "==", + "value": true + } + }, + { + "transition": "Set Outcomes for those who skipped ICU" + } + ] + }, + "Discharge to Home": { + "type": "EncounterEnd", + "direct_transition": "No_SNF", + "discharge_disposition": { + "system": "NUBC", + "code": "01", + "display": "Discharged to home care or self care (routine discharge)" + } + }, + "Discharge to Facility": { + "type": "EncounterEnd", + "direct_transition": "SNF", + "discharge_disposition": { + "system": "NUBC", + "code": "04", + "display": "Discharged/transferred to a facility that provides custodial or supportive care" + } + }, + "Post Discharge Outcomes": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Dying After Discharge", + "distribution": 0.0081 + }, + { + "transition": "SNF Check", + "distribution": 0.9919 + } + ] + }, + "Discharge from Hospital": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308283009", + "display": "Discharge from hospital (procedure)" + } + ], + "duration": { + "low": 15, + "high": 30, + "unit": "minutes" + }, + "reason": "tavr_history", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Discharge to Home", + "distribution": 0.94 + }, + { + "transition": "Discharge to Facility", + "distribution": 0.06 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Discharge to Home", + "distribution": 0.66 + }, + { + "transition": "Discharge to Facility", + "distribution": 0.34 + } + ] + }, + { + "distributions": [ + { + "transition": "Discharge to Home", + "distribution": 0.001 + }, + { + "transition": "Discharge to Facility", + "distribution": 0.999 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + } + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Discharge to Home", + "distribution": 0.82 + }, + { + "transition": "Discharge to Facility", + "distribution": 0.18 + } + ] + } + ] + }, + "Chest_X_Ray": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain X-ray of chest (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "51185008", + "display": "Thoracic structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "CR", + "display": "Computed Radiography" + }, + "instances": [ + { + "title": "Title of this image", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.1", + "display": "Digital X-Ray Image Storage – for Presentation" + } + } + ] + } + ], + "direct_transition": "Transthoracic_Echo" + }, + "Half Day": { + "type": "Delay", + "exact": { + "quantity": 12, + "unit": "hours" + }, + "direct_transition": "Repeat_ICU_Labs" + }, + "Repeat_ICU_Labs": { + "type": "CallSubmodule", + "submodule": "encounter/hospital_basic_labs", + "direct_transition": "End Day" + }, + "Dying After Discharge": { + "type": "Death", + "direct_transition": "SNF Check", + "range": { + "low": 1, + "high": 30, + "unit": "days" + } + }, + "Assign Specialty Unit": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Coronary Care Unit", + "distribution": 0.05 + }, + { + "transition": "Structural Unit", + "distribution": 0.95 + } + ] + }, + "Coronary Care Unit": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "tavr_history", + "codes": [ + { + "system": "SNOMED-CT", + "code": "711495003", + "display": "Patient transfer to coronary care unit (procedure)" + } + ], + "direct_transition": "Admission to Ward" + }, + "Cardiac Surgery ICU": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "397821002", + "display": "Patient transfer to intensive care unit (procedure)" + } + ], + "reason": "tavr_history", + "direct_transition": "Admission" + }, + "Structural Unit": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "tavr_history", + "codes": [ + { + "system": "SNOMED-CT", + "code": "449214001", + "display": "Transfer to stepdown unit (procedure)" + } + ], + "direct_transition": "Admission to Ward" + }, + "Hospital Basic Labs": { + "type": "CallSubmodule", + "submodule": "encounter/hospital_basic_labs", + "direct_transition": "PostOp Care Plan" + }, + "Just came from ICU": { + "type": "SetAttribute", + "attribute": "postop_icu_to_ward", + "direct_transition": "Hospital Basic Labs", + "value": false + }, + "Antithrombic": { + "type": "CallSubmodule", + "submodule": "heart/avrr/antithrombotic", + "direct_transition": "ECG" + }, + "ECG": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "268400002", + "display": "12 lead electrocardiogram (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 20 + } + }, + "unit": "minutes", + "direct_transition": "Transthoracic Echo", + "reason": "tavr_history" + }, + "Transthoracic Echo": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "433236007", + "display": "Transthoracic echocardiography (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "80891009", + "display": "Heart structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "US", + "display": "Ultrasound" + }, + "instances": [ + { + "title": "Heart structure (body structure)", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.3.1", + "display": "Ultrasound Multiframe Image Storage" + } + } + ] + } + ], + "direct_transition": "Chest_X_Ray_2" + }, + "Chest_X_Ray_2": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain X-ray of chest (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "51185008", + "display": "Thoracic structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "CR", + "display": "Computed Radiography" + }, + "instances": [ + { + "title": "Title of this image", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.1", + "display": "Digital X-Ray Image Storage – for Presentation" + } + } + ] + } + ], + "direct_transition": "Hospital Basic Labs" + }, + "PostOp Care Plan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736372004", + "display": "Discharge care plan (record artifact)" + } + ], + "direct_transition": "Discharge from Hospital", + "reason": "tavr_history", + "activities": [ + { + "system": "SNOMED-CT", + "code": "736767005", + "display": "Perioperative care management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "48428001", + "display": "Cardiovascular monitoring (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "718451004", + "display": "Management of vascular system care (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "370864003", + "display": "Activity care (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "422972009", + "display": "Advance diet as tolerated (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "405784000", + "display": "Pharmacological assessment (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "385949008", + "display": "Dressing change management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "311401005", + "display": "Patient education (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "1156892006", + "display": "Scheduling of follow up appointment (procedure)" + } + ] + }, + "SNF Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Call SNF Submodule", + "condition": { + "condition_type": "Attribute", + "attribute": "postop_snf", + "operator": "==", + "value": true + } + }, + { + "transition": "Terminal" + } + ] + }, + "Call SNF Submodule": { + "type": "Simple", + "direct_transition": "Terminal", + "remarks": [ + "TODO" + ] + }, + "Admission": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305351004", + "display": "Admission to intensive care unit (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "reason": "tavr_history", + "direct_transition": "Set ICU Outcomes" + }, + "VHD ICU Care Plan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "735321000", + "display": "Surgical inpatient care plan (record artifact)" + } + ], + "direct_transition": "Begin Day", + "reason": "tavr_history", + "activities": [ + { + "system": "SNOMED-CT", + "code": "736767005", + "display": "Perioperative care management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "182810003", + "display": "Intensive care monitoring (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "410207002", + "display": "Respiratory care management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "387760006", + "display": "Infusion care (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "370771002", + "display": "Maintenance of invasive device (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "15220000", + "display": "Laboratory test (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "385949008", + "display": "Dressing change management (procedure)" + } + ] + }, + "End ICU Care Plan": { + "type": "CarePlanEnd", + "direct_transition": "Discharge to Ward", + "careplan": "VHD ICU Care Plan" + }, + "ICU ECG": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "268400002", + "display": "12 lead electrocardiogram (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 20 + } + }, + "unit": "minutes", + "reason": "tavr_history", + "direct_transition": "Chest_X_Ray" + }, + "ICU_Labs": { + "type": "CallSubmodule", + "submodule": "encounter/hospital_basic_labs", + "direct_transition": "Half Day" + }, + "Transthoracic_Echo": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "433236007", + "display": "Transthoracic echocardiography (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "80891009", + "display": "Heart structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "US", + "display": "Ultrasound" + }, + "instances": [ + { + "title": "Heart structure (body structure)", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.3.1", + "display": "Ultrasound Multiframe Image Storage" + } + } + ] + } + ], + "direct_transition": "ICU_Labs" + }, + "ICU Antithrombic": { + "type": "CallSubmodule", + "submodule": "heart/avrr/antithrombotic", + "direct_transition": "End ICU Care Plan" + }, + "ICU to Ward": { + "type": "SetAttribute", + "attribute": "postop_icu_to_ward", + "direct_transition": "Admission to Ward Encounter", + "value": true + }, + "SNF": { + "type": "SetAttribute", + "attribute": "postop_snf", + "direct_transition": "Post Discharge Outcomes", + "value": true + }, + "No_SNF": { + "type": "SetAttribute", + "attribute": "postop_snf", + "direct_transition": "Post Discharge Outcomes", + "value": false + }, + "Set_Mortality": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Mortality", + "distribution": 0.002326 + }, + { + "transition": "Check Alive", + "distribution": 0.997674 + } + ] + }, + { + "distributions": [ + { + "transition": "Mortality", + "distribution": 0.0001 + }, + { + "transition": "Check Alive", + "distribution": 0.9999 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + } + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Mortality", + "distribution": 0.0001 + }, + { + "transition": "Check Alive", + "distribution": 0.9999 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Mortality", + "distribution": 0.0001 + }, + { + "transition": "Check Alive", + "distribution": 0.9999 + } + ] + } + ] + }, + "Mortality": { + "type": "SetAttribute", + "attribute": "tavr_mortality", + "value": true, + "direct_transition": "Check Alive" + }, + "Short Stay": { + "type": "SetAttribute", + "attribute": "tavr_icu_los", + "direct_transition": "Cardiac Surgery ICU", + "distribution": { + "kind": "EXACT", + "round": false, + "parameters": { + "value": 1 + } + } + }, + "Medium Stay": { + "type": "SetAttribute", + "attribute": "tavr_icu_los", + "direct_transition": "Cardiac Surgery ICU", + "distribution": { + "kind": "EXACT", + "round": false, + "parameters": { + "value": 2 + } + } + }, + "Long Stay": { + "type": "SetAttribute", + "attribute": "tavr_icu_los", + "direct_transition": "Cardiac Surgery ICU", + "distribution": { + "kind": "UNIFORM", + "round": false, + "parameters": { + "high": 7, + "low": 3 + } + } + }, + "Check for ICU": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Set ICU LOS", + "distribution": 0.818 + }, + { + "transition": "Assign Specialty Unit", + "distribution": 0.182 + } + ] + }, + "Set ICU LOS": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "elective" + }, + "distributions": [ + { + "transition": "Short Stay", + "distribution": 0.616279 + }, + { + "transition": "Medium Stay", + "distribution": 0.251163 + }, + { + "transition": "Long Stay", + "distribution": 0.13255799999999995 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent" + }, + "distributions": [ + { + "transition": "Short Stay", + "distribution": 0.08 + }, + { + "transition": "Medium Stay", + "distribution": 0.08666700000000005 + }, + { + "transition": "Long Stay", + "distribution": 0.833333 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "emergent_salvage" + }, + "distributions": [ + { + "transition": "Short Stay", + "distribution": 0.001 + }, + { + "transition": "Medium Stay", + "distribution": 0.001 + }, + { + "transition": "Long Stay", + "distribution": 0.998 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "operative_status", + "operator": "==", + "value": "urgent" + }, + "distributions": [ + { + "transition": "Short Stay", + "distribution": 0.561404 + }, + { + "transition": "Medium Stay", + "distribution": 0.333333 + }, + { + "transition": "Long Stay", + "distribution": 0.105263 + } + ] + } + ] + }, + "Set ICU Outcomes": { + "type": "CallSubmodule", + "submodule": "heart/tavr/outcomes", + "direct_transition": "VHD ICU Care Plan" + }, + "Set Outcomes for those who skipped ICU": { + "type": "CallSubmodule", + "submodule": "heart/tavr/outcomes", + "direct_transition": "Antithrombic" + }, + "Admission to Ward Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "tavr_history", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305342007", + "display": "Admission to ward (procedure)" + } + ], + "direct_transition": "Admission to Ward" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart/vhd_risks.json b/src/main/resources/modules/heart/vhd_risks.json new file mode 100644 index 0000000..ce3a782 --- /dev/null +++ b/src/main/resources/modules/heart/vhd_risks.json @@ -0,0 +1,67 @@ +{ + "name": "vhd_risks", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "Valvular Heart Disease (VHD) Risk model.", + "", + "Currently this sets the risk of all potential conditions to true,and each individual model uses real world prevalence to potentially onset the conditions. Future iterations should apply risk factors such as smoking, hypertension, history of scarlet fever, etc, and adjust the real world prevalence #s accordingly based on those risk factors" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Initialize AS Risk" + }, + "Initialize AS Risk": { + "type": "SetAttribute", + "attribute": "vhd_as_risk", + "direct_transition": "Initialize_AR_Risk", + "value": true + }, + "Initialize_AR_Risk": { + "type": "SetAttribute", + "attribute": "vhd_ar_risk", + "value": true, + "direct_transition": "Initialize_MS_Risk" + }, + "Initialize_MR_Risk": { + "type": "SetAttribute", + "attribute": "vhd_mr_risk", + "value": true, + "direct_transition": "Initialize_TS_Risk" + }, + "Initialize_TR_Risk": { + "type": "SetAttribute", + "attribute": "vhd_tr_risk", + "value": true, + "direct_transition": "Initialize_PS_Risk" + }, + "Initialize_MS_Risk": { + "type": "SetAttribute", + "attribute": "vhd_ms_risk", + "value": true, + "direct_transition": "Initialize_MR_Risk" + }, + "Initialize_TS_Risk": { + "type": "SetAttribute", + "attribute": "vhd_ts_risk", + "value": true, + "direct_transition": "Initialize_TR_Risk" + }, + "Initialize_PS_Risk": { + "type": "SetAttribute", + "attribute": "vhd_ps_risk", + "value": true, + "direct_transition": "Initialize_PR_Risk" + }, + "Initialize_PR_Risk": { + "type": "SetAttribute", + "attribute": "vhd_pr_risk", + "value": true, + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/heart_disease.json b/src/main/resources/modules/heart_disease.json new file mode 100644 index 0000000..7dd1dee --- /dev/null +++ b/src/main/resources/modules/heart_disease.json @@ -0,0 +1,17 @@ +{ + "name": "Heart Disease", + "remarks": [ + "This is a placeholder module for Heart Disease", + "ICD-10 Code: I25", + "Category: Cardiovascular" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + } +} diff --git a/src/main/resources/modules/heart_failure.json b/src/main/resources/modules/heart_failure.json new file mode 100644 index 0000000..3924eca --- /dev/null +++ b/src/main/resources/modules/heart_failure.json @@ -0,0 +1,379 @@ +{ + "name": "Heart Failure", + "remarks": [ + "Heart failure is a chronic condition where the heart is unable to pump blood effectively.", + "It can be caused by various factors like coronary artery disease, high blood pressure, or heart muscle damage.", + "This module models the progression of heart failure, its symptoms, diagnosis, and treatment.", + "Information obtained from:", + "https://www.cdc.gov/heartdisease/heart_failure.htm", + "https://www.nhlbi.nih.gov/health-topics/heart-failure", + "https://www.mayoclinic.org/diseases-conditions/heart-failure/symptoms-causes/syc-20373142" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + "Heart failure affects about 6.2 million adults in the United States.", + "The incidence increases with age, affecting about 10% of people over 65 years old." + ], + "direct_transition": "Heart_Failure_Probability" + }, + "Heart_Failure_Probability": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": ">", + "value": 65 + }, + "distributions": [ + { + "distribution": 0.1, + "transition": "Heart_Failure_Onset" + }, + { + "distribution": 0.9, + "transition": "Terminal" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.05, + "transition": "Heart_Failure_Onset" + }, + { + "distribution": 0.95, + "transition": "Terminal" + } + ] + } + ] + }, + "Heart_Failure_Onset": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "84114007", + "display": "Heart failure (disorder)" + }, + { + "system": "ICD-10", + "code": "I50.9", + "display": "Heart failure, unspecified" + } + ], + "direct_transition": "Shortness_Of_Breath" + }, + "Shortness_Of_Breath": { + "type": "Symptom", + "symptom": "Shortness of Breath", + "cause": "Heart_Failure_Onset", + "direct_transition": "Fatigue" + }, + "Fatigue": { + "type": "Symptom", + "symptom": "Fatigue", + "cause": "Heart_Failure_Onset", + "direct_transition": "Swelling" + }, + "Swelling": { + "type": "Symptom", + "symptom": "Swelling in legs, ankles and feet", + "cause": "Heart_Failure_Onset", + "direct_transition": "Diagnosis_Encounter" + }, + "Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Heart_Failure_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Physical_Exam" + }, + "Physical_Exam": { + "type": "Procedure", + "reason": "Heart_Failure_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "5880005", + "display": "Physical examination (procedure)" + } + ], + "direct_transition": "Chest_X_Ray" + }, + "Chest_X_Ray": { + "type": "Procedure", + "reason": "Heart_Failure_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Chest X-ray (procedure)" + } + ], + "direct_transition": "Echocardiogram" + }, + "Echocardiogram": { + "type": "Procedure", + "reason": "Heart_Failure_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40701008", + "display": "Echocardiography (procedure)" + } + ], + "direct_transition": "BNP_Test" + }, + "BNP_Test": { + "type": "Observation", + "category": "laboratory", + "unit": "pg/mL", + "codes": [ + { + "system": "LOINC", + "code": "33124-8", + "display": "B-type natriuretic peptide [BNP] (Substance)" + } + ], + "range": { + "low": 100, + "high": 5000 + }, + "direct_transition": "Heart_Failure_Treatment" + }, + "Heart_Failure_Treatment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.6, + "transition": "ACE_Inhibitor_Prescription" + }, + { + "distribution": 0.3, + "transition": "ARB_Prescription" + }, + { + "distribution": 0.1, + "transition": "Diuretic_Prescription" + } + ] + }, + "ACE_Inhibitor_Prescription": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_inhibitor", + "reason": "Heart_Failure_Onset", + "codes": [ + { + "system": "RxNorm", + "code": "1299896", + "display": "Lisinopril 10 MG Oral Tablet" + } + ], + "direct_transition": "Heart_Failure_CarePlan" + }, + "ARB_Prescription": { + "type": "MedicationOrder", + "assign_to_attribute": "arb", + "reason": "Heart_Failure_Onset", + "codes": [ + { + "system": "RxNorm", + "code": "321064", + "display": "Losartan 50 MG Oral Tablet" + } + ], + "direct_transition": "Heart_Failure_CarePlan" + }, + "Diuretic_Prescription": { + "type": "MedicationOrder", + "assign_to_attribute": "diuretic", + "reason": "Heart_Failure_Onset", + "codes": [ + { + "system": "RxNorm", + "code": "197730", + "display": "Hydrochlorothiazide 25 MG Oral Tablet" + } + ], + "direct_transition": "Heart_Failure_CarePlan" + }, + "Heart_Failure_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "heart_failure_careplan", + "reason": "Heart_Failure_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736138009", + "display": "Heart failure care plan (record artifact)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "226234005", + "display": "Healthy diet (finding)" + }, + { + "system": "SNOMED-CT", + "code": "229065009", + "display": "Exercise therapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "226060000", + "display": "Stress management (regime/therapy)" + } + ], + "direct_transition": "Patient_Education" + }, + "Patient_Education": { + "type": "Procedure", + "reason": "Heart_Failure_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "61505006", + "display": "Patient education about their disease (procedure)" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Regular_Disease_Progression" + }, + "Regular_Disease_Progression": { + "type": "Delay", + "range": { + "low": 3, + "high": 6, + "unit": "months" + }, + "direct_transition": "Followup_Encounter" + }, + "Followup_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Heart_Failure_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "Symptom_Check" + }, + "Symptom_Check": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Stable_Condition" + }, + { + "distribution": 0.3, + "transition": "Worsening_Condition" + } + ] + }, + "Stable_Condition": { + "type": "Observation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "72510-7", + "display": "Functional status assessment" + } + ], + "direct_transition": "End_Followup_Encounter" + }, + "Worsening_Condition": { + "type": "Symptom", + "symptom": "Worsening shortness of breath", + "cause": "Heart_Failure_Onset", + "direct_transition": "Hospitalization" + }, + "Hospitalization": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "Heart_Failure_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183452005", + "display": "Encounter inpatient (procedure)" + } + ], + "direct_transition": "Inpatient_Treatment" + }, + "Inpatient_Treatment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.6, + "transition": "IV_Diuretic" + }, + { + "distribution": 0.4, + "transition": "Vasodilator_Prescription" + } + ] + }, + "IV_Diuretic": { + "type": "MedicationOrder", + "assign_to_attribute": "iv_diuretic", + "reason": "Heart_Failure_Onset", + "codes": [ + { + "system": "RxNorm", + "code": "1804639", + "display": "Furosemide 20 MG/2ML Injection" + } + ], + "direct_transition": "Discharge_Encounter" + }, + "Vasodilator_Prescription": { + "type": "MedicationOrder", + "assign_to_attribute": "vasodilator", + "reason": "Heart_Failure_Onset", + "codes": [ + { + "system": "RxNorm", + "code": "197362", + "display": "Isosorbide Mononitrate 20 MG Oral Tablet" + } + ], + "direct_transition": "Discharge_Encounter" + }, + "Discharge_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Regular_Disease_Progression" + }, + "End_Followup_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Regular_Disease_Progression" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 2 +} diff --git a/src/main/resources/modules/hiv/art_sequence.json b/src/main/resources/modules/hiv/art_sequence.json new file mode 100644 index 0000000..5efa43f --- /dev/null +++ b/src/main/resources/modules/hiv/art_sequence.json @@ -0,0 +1,281 @@ +{ + "name": "ART Sequence", + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + } + }, + { + "transition": "Year Check" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "1987 to 1994": { + "type": "CallSubmodule", + "submodule": "hiv/art_sequence_1987_1994", + "direct_transition": "Set 1987" + }, + "1995_to_1996": { + "type": "CallSubmodule", + "submodule": "hiv/art_sequence_1995_1996", + "direct_transition": "Set 1995" + }, + "1997_to_2002": { + "type": "CallSubmodule", + "submodule": "hiv/art_sequence_1997_2002", + "direct_transition": "Set 1997" + }, + "2003_to_2005": { + "type": "CallSubmodule", + "submodule": "hiv/art_sequence_2003_2005", + "direct_transition": "Set 2003" + }, + "2006_to_2014": { + "type": "CallSubmodule", + "submodule": "hiv/art_sequence_2006_2014", + "direct_transition": "Set 2006" + }, + "2015+": { + "type": "CallSubmodule", + "submodule": "hiv/art_sequence_2015", + "direct_transition": "Set 2015" + }, + "Year Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Check 2015", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 2015 + } + }, + { + "transition": "Check 2006", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 2006 + } + }, + { + "transition": "Check 2003", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 2003 + } + }, + { + "transition": "Check 1997", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 1997 + } + }, + { + "transition": "Check 1995", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 1995 + } + }, + { + "transition": "1987 to 1994", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 1987 + } + }, + { + "transition": "Set Zero" + } + ] + }, + "Set 1995": { + "type": "SetAttribute", + "attribute": "art_year", + "direct_transition": "Terminal", + "value": 1995 + }, + "Stop All 1995": { + "type": "CallSubmodule", + "submodule": "hiv/stop_all_art_meds", + "direct_transition": "1995_to_1996" + }, + "Check 1995": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "art_year", + "operator": ">=", + "value": 1995 + } + }, + { + "transition": "Stop All 1995" + } + ] + }, + "Check 2015": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "art_year", + "operator": "is nil" + }, + "transition": "Stop All 2015" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "art_year", + "operator": ">=", + "value": 2015 + }, + "transition": "Terminal" + }, + { + "distributions": [ + { + "distribution": 0.5, + "transition": "Stop All 2015" + }, + { + "distribution": 0.5, + "transition": "Terminal" + } + ] + } + ] + }, + "Stop All 2015": { + "type": "CallSubmodule", + "submodule": "hiv/stop_all_art_meds", + "direct_transition": "2015+" + }, + "Set 2015": { + "type": "SetAttribute", + "attribute": "art_year", + "direct_transition": "Terminal", + "value": 2015 + }, + "Check 2006": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "art_year", + "operator": ">=", + "value": 2006 + } + }, + { + "transition": "Stop All 2006" + } + ] + }, + "Stop All 2006": { + "type": "CallSubmodule", + "submodule": "hiv/stop_all_art_meds", + "direct_transition": "2006_to_2014" + }, + "Set 2006": { + "type": "SetAttribute", + "attribute": "art_year", + "direct_transition": "Terminal", + "value": 2006 + }, + "Check 2003": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "art_year", + "operator": ">=", + "value": 2003 + } + }, + { + "transition": "Stop All 2003" + } + ] + }, + "Stop All 2003": { + "type": "CallSubmodule", + "submodule": "hiv/stop_all_art_meds", + "direct_transition": "2003_to_2005" + }, + "Set 2003": { + "type": "SetAttribute", + "attribute": "art_year", + "direct_transition": "Terminal", + "value": 2003 + }, + "Check 1997": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "art_year", + "operator": ">=", + "value": 1997 + } + }, + { + "transition": "Stop All 1997" + } + ] + }, + "Stop All 1997": { + "type": "CallSubmodule", + "submodule": "hiv/stop_all_art_meds", + "direct_transition": "1997_to_2002" + }, + "Set 1997": { + "type": "SetAttribute", + "attribute": "art_year", + "direct_transition": "Terminal", + "value": 1997 + }, + "Set 1987": { + "type": "SetAttribute", + "attribute": "art_year", + "direct_transition": "Terminal", + "value": 1987 + }, + "Set Zero": { + "type": "SetAttribute", + "attribute": "art_year", + "direct_transition": "Terminal", + "value": 0 + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/hiv/art_sequence_1987_1994.json b/src/main/resources/modules/hiv/art_sequence_1987_1994.json new file mode 100644 index 0000000..7036525 --- /dev/null +++ b/src/main/resources/modules/hiv/art_sequence_1987_1994.json @@ -0,0 +1,297 @@ +{ + "name": "art_sequence_1987-1994", + "remarks": [ + "This module will be called every 3-4 months if continuous ART.", + "If non-continuous ART, every 4-6 months." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Counter Check" + }, + "Terminal": { + "type": "Terminal" + }, + "ZDV": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 199663, + "display": "zidovudine 300 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_MonoEra", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "ddI": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 284988, + "display": "didanosine 400 MG Delayed Release Oral Capsule" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_MonoEra", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "ddC": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 313760, + "display": "zalcitabine 0.75 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_MonoEra", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 3, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "Date Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Stop ZDV", + "condition": { + "condition_type": "Date", + "operator": ">=", + "date": { + "year": 1991, + "month": 10, + "day": 9, + "hour": 0, + "minute": 0, + "second": 0, + "millisecond": 0 + } + } + }, + { + "transition": "Terminal" + } + ] + }, + "Prescription Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "ZDV", + "condition": { + "condition_type": "Attribute", + "attribute": "ART_MonoEra", + "operator": "is nil" + } + }, + { + "transition": "Counter_Check_2" + } + ] + }, + "Counter Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Set Counter", + "condition": { + "condition_type": "Attribute", + "attribute": "ART_MonoEra", + "operator": "is nil" + } + }, + { + "transition": "Increment Counter" + } + ] + }, + "Set Counter": { + "type": "SetAttribute", + "attribute": "art_1987_counter", + "direct_transition": "Prescription Check", + "value": 1 + }, + "Increment Counter": { + "type": "Counter", + "attribute": "art_1987_counter", + "action": "increment", + "direct_transition": "Prescription Check" + }, + "Stop ZDV": { + "type": "MedicationEnd", + "referenced_by_attribute": "ART_MonoEra", + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": ">=", + "date": { + "year": 1994, + "month": 6, + "day": 24, + "hour": 0, + "minute": 0, + "second": 0, + "millisecond": 0 + } + }, + "transition": "d4T" + }, + { + "condition": { + "condition_type": "Date", + "operator": ">=", + "date": { + "year": 1992, + "month": 6, + "day": 19, + "hour": 0, + "minute": 0, + "second": 0, + "millisecond": 0 + } + }, + "distributions": [ + { + "distribution": 0.4, + "transition": "ddC" + }, + { + "distribution": 0.6, + "transition": "ddI" + } + ] + }, + { + "transition": "ddI" + } + ] + }, + "Counter_Check_2": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Date Check", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "art_1987_counter", + "operator": "==", + "value": 4 + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "art_1987_counter", + "operator": "==", + "value": 8 + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "art_1987_counter", + "operator": "==", + "value": 12 + }, + { + "condition_type": "Attribute", + "attribute": "art_1987_counter", + "operator": "==", + "value": 16 + } + ] + } + ] + } + ] + } + }, + { + "transition": "Terminal" + } + ], + "remarks": [ + "The counter updates every 3-6 months (4.5 months on average), so counter == 4 would be approximately 18 months.", + "So, this should update medication approximately every 18 months." + ] + }, + "d4T": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 313110, + "display": "stavudine 40 MG Oral Capsule" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_MonoEra", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/hiv/art_sequence_1995_1996.json b/src/main/resources/modules/hiv/art_sequence_1995_1996.json new file mode 100644 index 0000000..a8a601a --- /dev/null +++ b/src/main/resources/modules/hiv/art_sequence_1995_1996.json @@ -0,0 +1,206 @@ +{ + "name": "art_sequence_1995_1996", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "distributed_transition": [ + { + "transition": "d4T", + "distribution": 0.4 + }, + { + "transition": "ZDV", + "distribution": 0.6 + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "d4T": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 313110, + "display": "stavudine 40 MG Oral Capsule" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_DualERA", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Assign Regimen" + }, + "ZDV": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 199663, + "display": "zidovudine 300 MG Oral Tablet" + } + ], + "direct_transition": "Assign Regimen", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_DualEra", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "ddC": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 313760, + "display": "zalcitabine 0.75 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_DualEra", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 3, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "ddI": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 284988, + "display": "didanosine 400 MG Delayed Release Oral Capsule" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_DualEra", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "3TC": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 349491, + "display": "lamivudine 300 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_DualEra", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "Assign Regimen": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": ">", + "date": { + "year": 1995, + "month": 11, + "day": 17, + "hour": 0, + "minute": 0, + "second": 0, + "millisecond": 0 + } + }, + "transition": "3TC" + }, + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 313110, + "display": "stavudine 40 MG Oral Capsule" + } + ] + }, + "transition": "ddI" + }, + { + "distributions": [ + { + "transition": "ddC", + "distribution": 0.5 + }, + { + "transition": "ddI", + "distribution": 0.5 + } + ] + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/hiv/art_sequence_1997_2002.json b/src/main/resources/modules/hiv/art_sequence_1997_2002.json new file mode 100644 index 0000000..398f9b4 --- /dev/null +++ b/src/main/resources/modules/hiv/art_sequence_1997_2002.json @@ -0,0 +1,699 @@ +{ + "name": "art_sequence_1997_2002", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": "==", + "year": 2002 + }, + "distributions": [ + { + "distribution": 0.2, + "transition": "ddI" + }, + { + "distribution": 0.6, + "transition": "ZDV" + }, + { + "distribution": 0.2, + "transition": "d4T" + } + ] + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Not", + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 4 + } + }, + { + "condition_type": "Date", + "operator": ">=", + "date": { + "year": 1997, + "month": 9, + "day": 26, + "hour": 0, + "minute": 0, + "second": 0, + "millisecond": 0 + } + } + ] + }, + "transition": "3TC+ZDV" + }, + { + "distributions": [ + { + "distribution": 0.6, + "transition": "ZDV" + }, + { + "distribution": 0.4, + "transition": "d4T" + } + ] + } + ] + }, + "d4T": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 313110, + "display": "stavudine 40 MG Oral Capsule" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyPI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "distributed_transition": [ + { + "transition": "3TC", + "distribution": 0.5 + }, + { + "transition": "ddI_2", + "distribution": 0.5 + } + ] + }, + "ZDV": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 199663, + "display": "zidovudine 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyPI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2000 + }, + "distributions": [ + { + "transition": "ddC", + "distribution": 0.34 + }, + { + "transition": "ddI_2", + "distribution": 0.33 + }, + { + "transition": "3TC", + "distribution": 0.33 + } + ] + }, + { + "distributions": [ + { + "distribution": 0.5, + "transition": "ddI_2" + }, + { + "transition": "3TC", + "distribution": 0.5 + } + ] + } + ] + }, + "ddC": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 313760, + "display": "zalcitabine 0.75 MG Oral Tablet" + } + ], + "direct_transition": "Drug 3", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyPI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 3, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "ddI": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 284988, + "display": "didanosine 400 MG Delayed Release Oral Capsule" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyPI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2000 + }, + "distributions": [ + { + "transition": "ddC", + "distribution": 0.5 + }, + { + "transition": "3TC", + "distribution": 0.5 + } + ] + }, + { + "transition": "3TC" + } + ] + }, + "3TC": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 349491, + "display": "lamivudine 300 MG Oral Tablet" + } + ], + "direct_transition": "Drug 3", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyPI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "3TC+ZDV": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 200082, + "display": "lamivudine 150 MG / zidovudine 300 MG Oral Tablet" + } + ], + "direct_transition": "Drug 3", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyPI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "ddI_2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 284988, + "display": "didanosine 400 MG Delayed Release Oral Capsule" + } + ], + "direct_transition": "Drug 3", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyPI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "Drug 3": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Year 2K+", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 2001 + } + }, + { + "transition": "Year 2000", + "condition": { + "condition_type": "Date", + "operator": "==", + "year": 2000 + } + }, + { + "transition": "Year 98 and 99", + "condition": { + "condition_type": "Date", + "operator": ">=", + "date": { + "year": 1998, + "month": 9, + "day": 17, + "hour": 0, + "minute": 0, + "second": 0, + "millisecond": 0 + } + } + }, + { + "transition": "Year 1997", + "condition": { + "condition_type": "Date", + "operator": ">=", + "date": { + "year": 1997, + "month": 9, + "day": 30, + "hour": 0, + "minute": 0, + "second": 0, + "millisecond": 0 + } + } + }, + { + "transition": "Early 1997" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "IDV": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 310988, + "display": "indinavir 400 MG Oral Capsule" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyPI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 2, + "frequency": 3, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "conditional_transition": [ + { + "transition": "r", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 2001 + } + }, + { + "transition": "Terminal" + } + ] + }, + "SQV": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 859863, + "display": "saquinavir mesylate 500 MG Oral Tablet" + } + ], + "direct_transition": "r", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyPI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 2, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "r": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 317150, + "display": "ritonavir 100 MG Oral Capsule" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyPI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "RTV": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 317150, + "display": "ritonavir 100 MG Oral Capsule" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyPI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 6, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "NEL": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 403978, + "display": "nelfinavir 625 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyPI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 2, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "EFV": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 349477, + "display": "efavirenz 600 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyPI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "LPV/r": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 597730, + "display": "lopinavir 200 MG / ritonavir 50 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyPI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 2, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "Year 1997": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "IDV", + "distribution": 0.25 + }, + { + "transition": "SQV", + "distribution": 0.25 + }, + { + "transition": "RTV", + "distribution": 0.25 + }, + { + "transition": "NEL", + "distribution": 0.25 + } + ] + }, + "Year 98 and 99": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "IDV", + "distribution": 0.2 + }, + { + "transition": "SQV", + "distribution": 0.2 + }, + { + "transition": "RTV", + "distribution": 0.2 + }, + { + "transition": "NEL", + "distribution": 0.2 + }, + { + "transition": "EFV", + "distribution": 0.2 + } + ] + }, + "Year 2000": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "IDV", + "distribution": 0.25 + }, + { + "transition": "SQV", + "distribution": 0.25 + }, + { + "transition": "NEL", + "distribution": 0.25 + }, + { + "transition": "EFV", + "distribution": 0.25 + } + ] + }, + "Year 2K+": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "IDV", + "distribution": 0.2 + }, + { + "transition": "SQV", + "distribution": 0.2 + }, + { + "transition": "NEL", + "distribution": 0.2 + }, + { + "transition": "EFV", + "distribution": 0.2 + }, + { + "transition": "LPV/r", + "distribution": 0.2 + } + ] + }, + "Early 1997": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "IDV", + "distribution": 0.34 + }, + { + "transition": "SQV", + "distribution": 0.33 + }, + { + "transition": "RTV", + "distribution": 0.33 + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/hiv/art_sequence_2003_2005.json b/src/main/resources/modules/hiv/art_sequence_2003_2005.json new file mode 100644 index 0000000..f502e0f --- /dev/null +++ b/src/main/resources/modules/hiv/art_sequence_2003_2005.json @@ -0,0 +1,360 @@ +{ + "name": "art_sequence_2003_2005", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "CKD", + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 4 + } + }, + { + "transition": "No CKD" + } + ] + }, + "ZDV": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 199663, + "display": "zidovudine 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_3TCZDV_Era", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Drug 3" + }, + "3TC": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 349491, + "display": "lamivudine 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_3TCZDV_Era", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Drug 2" + }, + "3TC+ZDV": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 200082, + "display": "lamivudine 150 MG / zidovudine 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_3TCZDV_Era", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "distributed_transition": [ + { + "transition": "LPV/r", + "distribution": 0.5 + }, + { + "transition": "EFV", + "distribution": 0.5 + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "EFV": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 349477, + "display": "efavirenz 600 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_3TCZDV_Era", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "LPV/r": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 597730, + "display": "lopinavir 200 MG / ritonavir 50 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_3TCZDV_Era", + "chronic": true, + "prescription": { + "dosage": { + "amount": 2, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "Drug 3": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 349251, + "display": "tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ] + }, + "transition": "EFV" + }, + { + "distributions": [ + { + "transition": "EFV", + "distribution": 0.5 + }, + { + "transition": "LPV/r", + "distribution": 0.5 + } + ] + } + ] + }, + "TDF": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 349251, + "display": "tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_3TCZDV_Era", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Drug 3" + }, + "Drug 2": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "ZDV", + "distribution": 0.5 + }, + { + "transition": "TDF", + "distribution": 0.5 + } + ] + }, + "FTC": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 403875, + "display": "emtricitabine 200 MG Oral Capsule" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_3TCZDV_Era", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Drug 2" + }, + "FTC+TDF": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 476556, + "display": "emtricitabine 200 MG / tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_3TCZDV_Era", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "EFV" + }, + "CKD": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 2004 + }, + "distributions": [ + { + "transition": "FTC", + "distribution": 0.5 + }, + { + "transition": "3TC", + "distribution": 0.5 + } + ] + }, + { + "transition": "3TC" + } + ] + }, + "No CKD": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": ">=", + "date": { + "year": 2004, + "month": 8, + "day": 2, + "hour": 0, + "minute": 0, + "second": 0, + "millisecond": 0 + } + }, + "distributions": [ + { + "transition": "FTC+TDF", + "distribution": 0.25 + }, + { + "transition": "3TC", + "distribution": 0.25 + }, + { + "transition": "FTC", + "distribution": 0.25 + }, + { + "transition": "3TC+ZDV", + "distribution": 0.25 + } + ] + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/hiv/art_sequence_2006_2014.json b/src/main/resources/modules/hiv/art_sequence_2006_2014.json new file mode 100644 index 0000000..90b5120 --- /dev/null +++ b/src/main/resources/modules/hiv/art_sequence_2006_2014.json @@ -0,0 +1,623 @@ +{ + "name": "art_sequence_2006_2014", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "CKD", + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 4 + } + }, + { + "transition": "No CKD" + } + ] + }, + "3TC": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 349491, + "display": "lamivudine 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Drug 2" + }, + "Terminal": { + "type": "Terminal" + }, + "EFV": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 349477, + "display": "efavirenz 600 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "LPV/r": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 597730, + "display": "lopinavir 200 MG / ritonavir 50 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 2, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "TDF": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 349251, + "display": "tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "distributed_transition": [ + { + "transition": "3TC", + "distribution": 0.5 + }, + { + "transition": "FTC", + "distribution": 0.5 + } + ] + }, + "Drug 2": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 2014 + }, + "distributions": [ + { + "distribution": 0.2, + "transition": "DTG" + }, + { + "transition": "RAL", + "distribution": 0.2 + }, + { + "transition": "EFV", + "distribution": 0.2 + }, + { + "transition": "ATV", + "distribution": 0.2 + }, + { + "transition": "DRV", + "distribution": 0.2 + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 2009 + }, + "distributions": [ + { + "transition": "RAL", + "distribution": 0.25 + }, + { + "transition": "EFV", + "distribution": 0.25 + }, + { + "transition": "ATV", + "distribution": 0.25 + }, + { + "transition": "DRV", + "distribution": 0.25 + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": ">=", + "date": { + "year": 2008, + "month": 11, + "day": 1, + "hour": 0, + "minute": 0, + "second": 0, + "millisecond": 0 + } + }, + "distributions": [ + { + "transition": "EFV", + "distribution": 0.2 + }, + { + "transition": "LPV/r", + "distribution": 0.2 + }, + { + "transition": "FPV", + "distribution": 0.2 + }, + { + "transition": "ATV", + "distribution": 0.2 + }, + { + "transition": "DRV", + "distribution": 0.2 + } + ] + }, + { + "distributions": [ + { + "transition": "EFV", + "distribution": 0.25 + }, + { + "transition": "LPV/r", + "distribution": 0.25 + }, + { + "transition": "FPV", + "distribution": 0.25 + }, + { + "transition": "ATV", + "distribution": 0.25 + } + ] + } + ] + }, + "FTC": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 403875, + "display": "emtricitabine 200 MG Oral Capsule" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Drug 2" + }, + "FTC+TDF": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 476556, + "display": "emtricitabine 200 MG / tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Drug 2" + }, + "CKD": { + "type": "Simple", + "direct_transition": "TDF" + }, + "No CKD": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "After 2014", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 2014 + } + }, + { + "transition": "EFV+FTC+TDF", + "condition": { + "condition_type": "Date", + "operator": ">=", + "date": { + "year": 2006, + "month": 7, + "day": 12, + "hour": 0, + "minute": 0, + "second": 0, + "millisecond": 0 + } + } + }, + { + "transition": "FTC+TDF" + } + ] + }, + "FTC+RPV+TDF": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1147334, + "display": "emtricitabine 200 MG / rilpivirine 25 MG / tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Terminal" + }, + "EFV+FTC+TDF": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 643066, + "display": "efavirenz 600 MG / emtricitabine 200 MG / tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Terminal" + }, + "EVG+cobi+TDF+FTC": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1306292, + "display": "cobicistat 150 MG / elvitegravir 150 MG / emtricitabine 200 MG / tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Terminal" + }, + "After 2014": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "FTC+RPV+TDF", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "hiv_cd4", + "operator": ">", + "value": 200 + }, + { + "condition_type": "Attribute", + "attribute": "hiv_rapid_start", + "operator": "!=", + "value": true + } + ] + } + }, + { + "transition": "EVG+cobi+TDF+FTC" + } + ] + }, + "RAL": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 744842, + "display": "raltegravir 400 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "DTG": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1433873, + "display": "dolutegravir 50 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "FPV": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 402109, + "display": "fosamprenavir 700 MG Oral Tablet" + } + ], + "direct_transition": "r", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "r": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 317150, + "display": "ritonavir 100 MG Oral Capsule" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "ATV": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 664741, + "display": "atazanavir 300 MG Oral Capsule" + } + ], + "direct_transition": "r", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "DRV": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1359269, + "display": "darunavir 800 MG Oral Tablet" + } + ], + "direct_transition": "r", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_EarlyINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/hiv/art_sequence_2015.json b/src/main/resources/modules/hiv/art_sequence_2015.json new file mode 100644 index 0000000..9dff2ef --- /dev/null +++ b/src/main/resources/modules/hiv/art_sequence_2015.json @@ -0,0 +1,623 @@ +{ + "name": "art_sequence_2015", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "CKD", + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 4 + } + }, + { + "transition": "No CKD" + } + ] + }, + "3TC": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 349491, + "display": "lamivudine 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_LateINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Drug 2" + }, + "Terminal": { + "type": "Terminal" + }, + "TDF": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 349251, + "display": "tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_LateINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "distributed_transition": [ + { + "transition": "3TC", + "distribution": 0.5 + }, + { + "transition": "FTC", + "distribution": 0.5 + } + ] + }, + "Drug 2": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 2021 + }, + "distributions": [ + { + "transition": "DTG", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 2017 + }, + "distributions": [ + { + "transition": "DTG", + "distribution": 0.5 + }, + { + "transition": "RAL", + "distribution": 0.5 + } + ] + }, + { + "distributions": [ + { + "transition": "DTG", + "distribution": 0.34 + }, + { + "transition": "RAL", + "distribution": 0.33 + }, + { + "transition": "DRV", + "distribution": 0.33 + } + ] + } + ] + }, + "FTC": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 403875, + "display": "emtricitabine 200 MG Oral Capsule" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_LateINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Drug 2" + }, + "FTC+TDF": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 476556, + "display": "emtricitabine 200 MG / tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_LateINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Drug 2" + }, + "CKD": { + "type": "Simple", + "direct_transition": "TDF" + }, + "No CKD": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Date", + "operator": ">=", + "date": { + "year": 2019, + "month": 4, + "day": 8, + "hour": 0, + "minute": 0, + "second": 0, + "millisecond": 0 + } + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "hiv_rapid_start", + "operator": "!=", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "hiv_viral_load", + "operator": "<", + "value": 500000 + } + ] + } + ] + }, + "distributions": [ + { + "transition": "DTG+3TC", + "distribution": 0.1 + }, + { + "transition": "3TC+TDF", + "distribution": 0.1 + }, + { + "transition": "FTC+TDF", + "distribution": 0.1 + }, + { + "transition": "FTC+TAF", + "distribution": 0.1 + }, + { + "transition": "BIC+TAF+FTC", + "distribution": 0.6 + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": ">=", + "date": { + "year": 2018, + "month": 2, + "day": 7, + "hour": 0, + "minute": 0, + "second": 0, + "millisecond": 0 + } + }, + "distributions": [ + { + "transition": "BIC+TAF+FTC", + "distribution": 0.7 + }, + { + "transition": "FTC+TAF", + "distribution": 0.1 + }, + { + "transition": "FTC+TDF", + "distribution": 0.1 + }, + { + "transition": "3TC+TDF", + "distribution": 0.1 + } + ] + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Date", + "operator": "<=", + "year": 2018 + }, + { + "condition_type": "Date", + "operator": ">=", + "year": 2016 + } + ] + }, + "distributions": [ + { + "transition": "EVG+cobi+TDF+FTC", + "distribution": 0.2 + }, + { + "transition": "3TC+TDF", + "distribution": 0.2 + }, + { + "transition": "FTC+TDF", + "distribution": 0.2 + }, + { + "transition": "FTC+TAF", + "distribution": 0.2 + }, + { + "transition": "EVG+cobi+FTC+TAF", + "distribution": 0.2 + } + ] + }, + { + "distributions": [ + { + "transition": "EVG+cobi+TDF+FTC", + "distribution": 0.34 + }, + { + "transition": "3TC+TDF", + "distribution": 0.33 + }, + { + "transition": "FTC+TDF", + "distribution": 0.33 + } + ] + } + ] + }, + "EVG+cobi+TDF+FTC": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1306292, + "display": "cobicistat 150 MG / elvitegravir 150 MG / emtricitabine 200 MG / tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_LateINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Terminal" + }, + "RAL": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 744842, + "display": "raltegravir 400 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_LateINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "DTG": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1433873, + "display": "dolutegravir 50 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_LateINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "r": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 317150, + "display": "ritonavir 100 MG Oral Capsule" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_LateINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "DRV": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1359269, + "display": "darunavir 800 MG Oral Tablet" + } + ], + "direct_transition": "r", + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_LateINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + } + }, + "3TC+TDF": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 2003249, + "display": "lamivudine 300 MG / tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_LateINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Drug 2" + }, + "FTC+TAF": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1747691, + "display": "emtricitabine 200 MG / tenofovir alafenamide 25 MG Oral Table" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_LateINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Drug 2" + }, + "BIC+TAF+FTC": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1999667, + "display": "bictegravir 50 MG / emtricitabine 200 MG / tenofovir alafenamide 25 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_LateINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Terminal" + }, + "EVG+cobi+FTC+TAF": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1721613, + "display": "cobicistat 150 MG / elvitegravir 150 MG / emtricitabine 200 MG / tenofovir alafenamide 10 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_LateINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Terminal" + }, + "DTG+3TC": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 2122519, + "display": "dolutegravir 50 MG / lamivudine 300 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "assign_to_attribute": "ART_LateINSTI", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "direct_transition": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/hiv/hiv_baseline.json b/src/main/resources/modules/hiv/hiv_baseline.json new file mode 100644 index 0000000..c8713fb --- /dev/null +++ b/src/main/resources/modules/hiv/hiv_baseline.json @@ -0,0 +1,2118 @@ +{ + "name": "hiv_baseline", + "remarks": [ + "The HIV sequence module drives the HIV baseline and follow-up visits. ", + "The baseline visit is technically a submodule in the HIV sequence.", + "This baseline module is for individuals age >= 13." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "History and Physical Exam" + }, + "Terminal": { + "type": "Terminal" + }, + "History and Physical Exam": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "63332003", + "display": "History AND physical examination (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "Laboratory Test", + "reason": "hiv_diagnosis" + }, + "Laboratory Test": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "15220000", + "display": "Laboratory test (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 15, + "low": 10 + } + }, + "unit": "minutes", + "direct_transition": "Anemia Check", + "reason": "hiv_diagnosis" + }, + "CBC": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.4, + "high": 10.8 + } + }, + { + "category": "laboratory", + "unit": "10*6/uL", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.77, + "high": 5.8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "range": { + "low": 11.1, + "high": 17.7 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "4544-3", + "display": "Hematocrit [Volume Fraction] of Blood by Automated count" + } + ], + "range": { + "low": 34, + "high": 51 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 79, + "high": 97 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 26.6, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 31.5, + "high": 35.7 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "788-0", + "display": "Erythrocyte distribution width [Ratio] by Automated count" + } + ], + "range": { + "low": 12.3, + "high": 15.4 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + } + ], + "direct_transition": "CBC_Differential" + }, + "Metabolic Panel": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Comprehensive_Metabolic_Panel_with_Normal_Kidney", + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "is nil" + } + }, + { + "transition": "Comprehensive_Metabolic_Panel_with_Kidney_Damage" + } + ] + }, + "Comprehensive_Metabolic_Panel_with_Normal_Kidney": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "vital_sign": "Creatinine" + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "vital_sign": "EGFR" + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 8.5 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 4, + "high": 5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.3, + "high": 1.2 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 39, + "high": 117 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 44 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 40 + } + } + ], + "direct_transition": "Urinalysis" + }, + "Comprehensive_Metabolic_Panel_with_Kidney_Damage": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.5, + "high": 3 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 5, + "high": 14 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 8.5 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 4, + "high": 5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 15 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 39, + "high": 117 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 44 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 40 + } + } + ], + "direct_transition": "Urinalysis" + }, + "CKD Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "is not nil" + }, + "transition": "Metabolic Panel" + }, + { + "distributions": [ + { + "transition": "Set CKD", + "distribution": 0.0815 + }, + { + "transition": "Metabolic Panel", + "distribution": 0.9185 + } + ] + } + ] + }, + "Set CKD": { + "type": "SetAttribute", + "attribute": "ckd", + "direct_transition": "Metabolic Panel", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 5, + "low": 1 + } + } + }, + "CBC_Differential": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "57023-4", + "display": "Auto Differential panel - Blood" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "770-8", + "display": "Neutrophils/100 leukocytes in Blood by Automated count" + } + ], + "range": { + "low": 10, + "high": 45 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "736-9", + "display": "Lymphocytes/100 leukocytes in Blood by Automated count" + } + ], + "range": { + "low": 5, + "high": 25 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "5905-5", + "display": "Monocytes/100 leukocytes in Blood by Automated count" + } + ], + "range": { + "low": 5, + "high": 15 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "713-8", + "display": "Eosinophils/100 leukocytes in Blood by Automated count" + } + ], + "range": { + "low": 3, + "high": 6 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "706-2", + "display": "Basophils/100 leukocytes in Blood by Automated count" + } + ], + "range": { + "low": 2, + "high": 4 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "751-8", + "display": "Neutrophils [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 1.4, + "high": 4 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "731-0", + "display": "Lymphocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 1, + "high": 4.8 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "742-7", + "display": "Monocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 0.5, + "high": 1.4 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "711-2", + "display": "Eosinophils [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 0.2, + "high": 0.6 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "704-7", + "display": "Basophils [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 0.2, + "high": 0.4 + } + } + ], + "remarks": [ + "Viral infection should show DECREASES in neutro and lymph, and INCREASES in mono, eosino, and baso." + ], + "direct_transition": "CKD Check" + }, + "CBC_Panel_M_Anemia": { + "type": "DiagnosticReport", + "number_of_observations": 11, + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "range": { + "low": 6.7, + "high": 10 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "20570-8", + "display": "Hematocrit [Volume Fraction] of Blood" + } + ], + "range": { + "low": 20, + "high": 30 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.5, + "high": 10.5 + } + }, + { + "category": "laboratory", + "unit": "10*6/uL", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.9, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 80, + "high": 95 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 27, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "21000-5", + "display": "Erythrocyte distribution width [Entitic volume] by Automated count" + } + ], + "range": { + "low": 39, + "high": 46 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32207-3", + "display": "Platelet distribution width [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 520 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32623-1", + "display": "Platelet mean volume [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 9.4, + "high": 12.3 + } + } + ], + "direct_transition": "CBC_Differential" + }, + "CBC_Panel_F_Anemia": { + "type": "DiagnosticReport", + "number_of_observations": 11, + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "range": { + "low": 7, + "high": 10.9 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "20570-8", + "display": "Hematocrit [Volume Fraction] of Blood" + } + ], + "range": { + "low": 21, + "high": 32.9 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.5, + "high": 10.5 + } + }, + { + "category": "laboratory", + "unit": "10*6/uL", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 3.9, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 80, + "high": 95 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 27, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "21000-5", + "display": "Erythrocyte distribution width [Entitic volume] by Automated count" + } + ], + "range": { + "low": 39, + "high": 46 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32207-3", + "display": "Platelet distribution width [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 520 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32623-1", + "display": "Platelet mean volume [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 9.4, + "high": 12.3 + } + } + ], + "direct_transition": "CBC_Differential" + }, + "Anemia Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "anemia", + "operator": "is not nil" + }, + "transition": "Has Anemia" + }, + { + "distributions": [ + { + "transition": "Anemia", + "distribution": 0.25 + }, + { + "transition": "No Anemia", + "distribution": 0.75 + } + ], + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "86406008", + "display": "Human immunodeficiency virus infection (disorder)" + } + ] + } + }, + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "62479008", + "display": "Acquired immune deficiency syndrome (disorder)" + } + ] + }, + "distributions": [ + { + "transition": "Anemia", + "distribution": 0.665 + }, + { + "transition": "No Anemia", + "distribution": 0.33499999999999996 + } + ] + }, + { + "transition": "No Anemia" + } + ] + }, + "Anemia": { + "type": "ConditionOnset", + "assign_to_attribute": "anemia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "271737000", + "display": "Anemia (disorder)" + } + ], + "direct_transition": "Has Anemia" + }, + "Has Anemia": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "CBC_Panel_F_Anemia", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "CBC_Panel_M_Anemia" + } + ] + }, + "No Anemia": { + "type": "Simple", + "direct_transition": "CBC" + }, + "Urinalysis": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24357-6", + "display": "Urinalysis macro (dipstick) panel - Urine" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5767-9", + "display": "Appearance of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "7766007", + "display": "Cloudy urine (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "34533-0", + "display": "Odor of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167248002", + "display": "Urine smell ammoniacal (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "32167-9", + "display": "Clarity of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "300828005", + "display": "Translucent (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5778-6", + "display": "Color of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "371254008", + "display": "Brown color (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5792-7", + "display": "Glucose [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.5, + "high": 2.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "25428-4", + "display": "Glucose [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167265006", + "display": "Urine glucose test = ++ (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "20505-4", + "display": "Bilirubin.total [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.2, + "high": 1.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5770-3", + "display": "Bilirubin.total [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "275778006", + "display": "Finding of bilirubin in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5797-6", + "display": "Ketones [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 0, + "high": 20 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "2514-8", + "display": "Ketones [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167290008", + "display": "Urine ketone test = ++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5811-5", + "display": "Specific gravity of Urine by Test strip" + } + ], + "range": { + "low": 1.001, + "high": 1.039 + } + }, + { + "category": "laboratory", + "unit": "pH", + "codes": [ + { + "system": "LOINC", + "code": "5803-2", + "display": "pH of Urine by Test strip" + } + ], + "range": { + "low": 5, + "high": 7 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5804-0", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 50, + "high": 400 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "20454-5", + "display": "Protein [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167276005", + "display": "Urine protein test = ++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5802-4", + "display": "Nitrite [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "314138001", + "display": "Nitrite not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5794-3", + "display": "Hemoglobin [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167297006", + "display": "Blood not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5799-2", + "display": "Leukocyte esterase [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "394717006", + "display": "Urine leukocytes not detected (finding)" + } + } + ], + "direct_transition": "Record_LipidPanel" + }, + "Record_LipidPanel": { + "type": "DiagnosticReport", + "number_of_observations": 4, + "codes": [ + { + "system": "LOINC", + "code": "57698-3", + "display": "Lipid panel with direct LDL - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Total Cholesterol", + "codes": [ + { + "system": "LOINC", + "code": "2093-3", + "display": "Cholesterol [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Triglycerides", + "codes": [ + { + "system": "LOINC", + "code": "2571-8", + "display": "Triglycerides" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "LDL", + "codes": [ + { + "system": "LOINC", + "code": "18262-6", + "display": "Low Density Lipoprotein Cholesterol" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "HDL", + "codes": [ + { + "system": "LOINC", + "code": "2085-9", + "display": "Cholesterol in HDL [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + } + ], + "conditional_transition": [ + { + "transition": "Urine Pregnancy Test", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "Viral Hepatitis Screening" + } + ] + }, + "Urine Pregnancy Test": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "167252002", + "display": "Urine pregnancy test (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 10, + "low": 5 + } + }, + "unit": "minutes", + "direct_transition": "Viral Hepatitis Screening", + "reason": "hiv_diagnosis" + }, + "Viral Hepatitis Screening": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "412809002", + "display": "Viral hepatitis screening test (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 15 + } + }, + "unit": "minutes", + "direct_transition": "Hepatitis B Screening", + "reason": "hiv_diagnosis" + }, + "Hepatitis B Screening": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "171122006", + "display": "Hepatitis B screening (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 15 + } + }, + "unit": "minutes", + "reason": "hiv_diagnosis", + "distributed_transition": [ + { + "transition": "Hepatitis B Diagnosis", + "distribution": 0.1 + }, + { + "transition": "Hepatitis C Screening", + "distribution": 0.9 + } + ] + }, + "Hepatitis B Diagnosis": { + "type": "ConditionOnset", + "assign_to_attribute": "", + "codes": [ + { + "system": "SNOMED-CT", + "code": "61977001", + "display": "Chronic type B viral hepatitis (disorder)" + } + ], + "direct_transition": "Hepatitis C Screening" + }, + "Hepatitis C Screening": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "413107006", + "display": "Hepatitis C screening (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 15 + } + }, + "unit": "minutes", + "reason": "hiv_diagnosis", + "distributed_transition": [ + { + "transition": "Hepatitis C Diagnosis", + "distribution": 0.25 + }, + { + "transition": "Hepatitis A Screening", + "distribution": 0.75 + } + ] + }, + "Hepatitis C Diagnosis": { + "type": "ConditionOnset", + "assign_to_attribute": "", + "codes": [ + { + "system": "SNOMED-CT", + "code": "128302006", + "display": "Chronic hepatitis C (disorder)" + } + ], + "direct_transition": "Hepatitis A Screening" + }, + "Hepatitis A Screening": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "313398001", + "display": "Hepatitis antibody test (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 15 + } + }, + "unit": "minutes", + "reason": "hiv_diagnosis", + "direct_transition": "Tuberculosis Screening" + }, + "Tuberculosis Screening": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "171126009", + "display": "Tuberculosis screening (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 15 + } + }, + "unit": "minutes", + "reason": "hiv_diagnosis", + "direct_transition": "STI Screening" + }, + "STI Screening": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "171128005", + "display": "Venereal disease screening (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 15 + } + }, + "unit": "minutes", + "reason": "hiv_diagnosis", + "direct_transition": "Serologic Test" + }, + "Serologic Test": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "104308009", + "display": "Serologic test for Toxoplasma gondii (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 15 + } + }, + "unit": "minutes", + "reason": "hiv_diagnosis", + "distributed_transition": [ + { + "transition": "Toxoplasma Positive", + "distribution": 0.15 + }, + { + "transition": "Viral Load Check", + "distribution": 0.85 + } + ] + }, + "TG+ Observation": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "22577-1", + "display": "Toxoplasma gondii Ab [Presence] in Serum" + } + ], + "direct_transition": "TG+ Condition", + "value_code": { + "system": "SNOMED-CT", + "code": "428915008", + "display": "Toxoplasma gondii antibody detected (finding)" + } + }, + "Toxoplasma Positive": { + "type": "SetAttribute", + "attribute": "toxoplasma_positive", + "direct_transition": "TG+ Observation", + "value": true + }, + "TG+ Condition": { + "type": "ConditionOnset", + "assign_to_attribute": "", + "codes": [ + { + "system": "SNOMED-CT", + "code": "428915008", + "display": "Toxoplasma gondii antibody detected (finding)" + } + ], + "direct_transition": "Viral Load Check" + }, + "CD4 Submodule": { + "type": "CallSubmodule", + "submodule": "hiv/hiv_cd4", + "conditional_transition": [ + { + "transition": "Medication Submodule", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_rapid_start", + "operator": "==", + "value": true + } + }, + { + "transition": "PRAPARE" + } + ] + }, + "HIV Viral Load Submodule": { + "type": "CallSubmodule", + "submodule": "hiv/hiv_viral_load", + "direct_transition": "Genotype Determination" + }, + "Genotype Determination": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "446987006", + "display": "Determination of susceptibility of Human immunodeficiency virus 1 to panel of antiretroviral drugs using genotypic technique (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "CD4 Submodule", + "reason": "hiv_diagnosis" + }, + "Medication Submodule": { + "type": "CallSubmodule", + "submodule": "hiv/art_sequence", + "direct_transition": "PRAPARE" + }, + "Education": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": 409066002, + "display": "Education, guidance and counseling (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 45 + } + }, + "unit": "minutes", + "direct_transition": "Care Planning", + "reason": "hiv_diagnosis" + }, + "Care Planning": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225297008", + "display": "Care planning and problem solving actions (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 45 + } + }, + "unit": "minutes", + "reason": "hiv_diagnosis", + "direct_transition": "Care Plan" + }, + "CarePlan Coordination": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "711069006", + "display": "Coordination of care plan (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "Terminal", + "reason": "hiv_diagnosis" + }, + "Care Plan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736376001", + "display": "Infectious disease care plan (record artifact)" + } + ], + "direct_transition": "CarePlan Coordination", + "reason": "hiv_diagnosis" + }, + "Viral Load Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "HIV Viral Load Submodule", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 1996 + } + }, + { + "transition": "CD4 Submodule" + } + ] + }, + "PRAPARE": { + "type": "CallSubmodule", + "submodule": "encounter/sdoh_hrsn", + "direct_transition": "Depression_Screening" + }, + "Depression_Screening": { + "type": "CallSubmodule", + "submodule": "encounter/depression_screening", + "direct_transition": "Anxiety_Screening" + }, + "Anxiety_Screening": { + "type": "CallSubmodule", + "submodule": "encounter/anxiety_screening", + "direct_transition": "Substance_Use_Screening" + }, + "Substance_Use_Screening": { + "type": "CallSubmodule", + "submodule": "encounter/substance_use_screening", + "direct_transition": "Assessment of Social Support" + }, + "Assessment of Social Support": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "711018006", + "display": "Assessment of social support (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 15, + "low": 10 + } + }, + "unit": "minutes", + "direct_transition": "Assessment of Disclosure Readiness", + "reason": "hiv_diagnosis" + }, + "Assessment of Disclosure Readiness": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "709506004", + "display": "Assessment of readiness for disclosure of health status (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 15 + } + }, + "unit": "minutes", + "reason": "hiv_diagnosis", + "direct_transition": "Assessment of Self-Management Readiness" + }, + "Assessment of Self-Management Readiness": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "733863009", + "display": "Assessment of readiness for self-management (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 25, + "low": 20 + } + }, + "unit": "minutes", + "reason": "hiv_diagnosis", + "direct_transition": "Education" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/hiv/hiv_cd4.json b/src/main/resources/modules/hiv/hiv_cd4.json new file mode 100644 index 0000000..d9191c1 --- /dev/null +++ b/src/main/resources/modules/hiv/hiv_cd4.json @@ -0,0 +1,1732 @@ +{ + "name": "hiv_cd4", + "remarks": [ + "Set and update CD4 levels.", + "", + "The notion of \"CD4 Group\" is an artificial construct to bin patients into different baseline levels.", + "", + "Group A == <100 CD4 T-Lymphocyte Count, Cell/microL", + "Group B == 100-199", + "Group C == 200-299", + "Group D == 300-399", + "Group E == 400-499", + "Group F == >= 500" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Check Age" + }, + "Terminal": { + "type": "Terminal" + }, + "Check Group": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Check AIDS", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_cd4_group", + "operator": "is nil" + } + }, + { + "transition": "Check Treatment" + } + ] + }, + "Set CD4": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Set_Group_A", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_cd4_group", + "operator": "==", + "value": "A" + } + }, + { + "transition": "Set_Group_B", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_cd4_group", + "operator": "==", + "value": "B" + } + }, + { + "transition": "Set_Group_C", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_cd4_group", + "operator": "==", + "value": "C" + } + }, + { + "transition": "Set_Group_D", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_cd4_group", + "operator": "==", + "value": "D" + } + }, + { + "transition": "Set_Group_E", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_cd4_group", + "operator": "==", + "value": "E" + } + }, + { + "transition": "Set_Group_F" + } + ] + }, + "Set Group": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "stage_1", + "default_probability": 0.27, + "lookup_table_name": "hiv_stage.csv" + }, + { + "transition": "stage_2", + "default_probability": 0.38, + "lookup_table_name": "hiv_stage.csv" + }, + { + "transition": "stage_3", + "default_probability": 0.35, + "lookup_table_name": "hiv_stage.csv" + } + ] + }, + "stage_1": { + "type": "SetAttribute", + "attribute": "hiv_cd4_group", + "direct_transition": "Baseline", + "value": "F" + }, + "stage_2": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Group_C", + "distribution": 0.33 + }, + { + "transition": "Group_D", + "distribution": 0.33 + }, + { + "transition": "Group_E", + "distribution": 0.34 + } + ] + }, + "stage_3": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Group_A", + "distribution": 0.5 + }, + { + "transition": "Group_B", + "distribution": 0.5 + } + ] + }, + "Group_C": { + "type": "SetAttribute", + "attribute": "hiv_cd4_group", + "direct_transition": "Baseline", + "value": "C" + }, + "Group_D": { + "type": "SetAttribute", + "attribute": "hiv_cd4_group", + "direct_transition": "Baseline", + "value": "D" + }, + "Group_E": { + "type": "SetAttribute", + "attribute": "hiv_cd4_group", + "direct_transition": "Baseline", + "value": "E" + }, + "Group_A": { + "type": "SetAttribute", + "attribute": "hiv_cd4_group", + "value": "A", + "direct_transition": "Baseline" + }, + "Group_B": { + "type": "SetAttribute", + "attribute": "hiv_cd4_group", + "value": "B", + "direct_transition": "Baseline" + }, + "Check Age": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Check Group", + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 13, + "unit": "years", + "value": 0 + } + }, + { + "transition": "Terminal" + } + ] + }, + "Set_Group_A": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Set_Group_A_0", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 1, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_A_6", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 7, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_A_12", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 13, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_A_18", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 19, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_A_24", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 25, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_A_30", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 31, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_A_36", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 37, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_A_42", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 43, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_A_48" + } + ] + }, + "Set_Group_A_0": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_A_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 40, + "standardDeviation": 25 + } + } + }, + "Set_Group_A_6": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_A_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 125, + "standardDeviation": 50 + } + } + }, + "Set_Group_A_12": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_A_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 185, + "standardDeviation": 75 + } + } + }, + "Set_Group_A_18": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_A_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 220, + "standardDeviation": 100 + } + } + }, + "Set_Group_A_24": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_A_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 260, + "standardDeviation": 100 + } + } + }, + "Set_Group_A_30": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_A_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 300, + "standardDeviation": 100 + } + } + }, + "Set_Group_A_36": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_A_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 335, + "standardDeviation": 100 + } + } + }, + "Set_Group_A_42": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_A_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 335, + "standardDeviation": 100 + } + } + }, + "Set_Group_A_48": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_A_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 350, + "standardDeviation": 100 + } + } + }, + "Baseline": { + "type": "Simple", + "direct_transition": "Check Treatment" + }, + "Set_Group_A_Complete": { + "type": "Simple", + "direct_transition": "Set CD4 Complete" + }, + "Set_Group_B": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Set_Group_B_0", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 1, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_B_6", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 7, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_B_12", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 13, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_B_18", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 19, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_B_24", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 25, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_B_30", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 31, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_B_36", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 37, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_B_42", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 43, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_B_48" + } + ] + }, + "Set_Group_B_0": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_B_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 140, + "standardDeviation": 25 + } + } + }, + "Set_Group_B_6": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_B_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 230, + "standardDeviation": 50 + } + } + }, + "Set_Group_B_12": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_B_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 280, + "standardDeviation": 75 + } + } + }, + "Set_Group_B_18": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_B_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 330, + "standardDeviation": 100 + } + } + }, + "Set_Group_B_24": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_B_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 370, + "standardDeviation": 100 + } + } + }, + "Set_Group_B_30": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_B_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 400, + "standardDeviation": 100 + } + } + }, + "Set_Group_B_36": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_B_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 415, + "standardDeviation": 100 + } + } + }, + "Set_Group_B_42": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_B_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 430, + "standardDeviation": 100 + } + } + }, + "Set_Group_B_48": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_B_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 445, + "standardDeviation": 100 + } + } + }, + "Set_Group_B_Complete": { + "type": "Simple", + "direct_transition": "Set CD4 Complete" + }, + "Set_Group_C": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Set_Group_C_0", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 1, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_C_6", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 7, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_C_12", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 13, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_C_18", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 19, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_C_24", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 25, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_C_30", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 31, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_C_36", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 37, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_C_42", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 43, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_C_48" + } + ] + }, + "Set_Group_C_0": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_C_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 255, + "standardDeviation": 25 + } + } + }, + "Set_Group_C_6": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_C_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 340, + "standardDeviation": 50 + } + } + }, + "Set_Group_C_12": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_C_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 410, + "standardDeviation": 75 + } + } + }, + "Set_Group_C_18": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_C_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 420, + "standardDeviation": 100 + } + } + }, + "Set_Group_C_24": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_C_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 465, + "standardDeviation": 100 + } + } + }, + "Set_Group_C_30": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_C_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 505, + "standardDeviation": 100 + } + } + }, + "Set_Group_C_36": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_C_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 505, + "standardDeviation": 100 + } + } + }, + "Set_Group_C_42": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_C_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 505, + "standardDeviation": 100 + } + } + }, + "Set_Group_C_48": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_C_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 530, + "standardDeviation": 100 + } + } + }, + "Set_Group_C_Complete": { + "type": "Simple", + "direct_transition": "Set CD4 Complete" + }, + "Set_Group_D": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Set_Group_D_0", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 1, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_D_6", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 7, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_D_12", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 13, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_D_18", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 19, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_D_24", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 25, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_D_30", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 31, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_D_36", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 37, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_D_42", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 43, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_D_48" + } + ] + }, + "Set_Group_D_0": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_D_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 350, + "standardDeviation": 25 + } + } + }, + "Set_Group_D_6": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_D_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 450, + "standardDeviation": 50 + } + } + }, + "Set_Group_D_12": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_D_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 510, + "standardDeviation": 75 + } + } + }, + "Set_Group_D_18": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_D_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 540, + "standardDeviation": 100 + } + } + }, + "Set_Group_D_24": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_D_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 570, + "standardDeviation": 100 + } + } + }, + "Set_Group_D_30": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_D_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 590, + "standardDeviation": 100 + } + } + }, + "Set_Group_D_36": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_D_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 595, + "standardDeviation": 100 + } + } + }, + "Set_Group_D_42": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_D_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 615, + "standardDeviation": 100 + } + } + }, + "Set_Group_D_48": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_D_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 630, + "standardDeviation": 100 + } + } + }, + "Set_Group_D_Complete": { + "type": "Simple", + "direct_transition": "Set CD4 Complete" + }, + "Set_Group_E": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Set_Group_E_0", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 1, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_E_6", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 7, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_E_12", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 13, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_E_18", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 19, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_E_24", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 25, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_E_30", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 31, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_E_36", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 37, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_E_42", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 43, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_E_48" + } + ] + }, + "Set_Group_E_0": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_E_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 470, + "standardDeviation": 25 + } + } + }, + "Set_Group_E_6": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_E_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 580, + "standardDeviation": 50 + } + } + }, + "Set_Group_E_12": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_E_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 620, + "standardDeviation": 75 + } + } + }, + "Set_Group_E_18": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_E_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 630, + "standardDeviation": 100 + } + } + }, + "Set_Group_E_24": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_E_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 695, + "standardDeviation": 100 + } + } + }, + "Set_Group_E_30": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_E_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 735, + "standardDeviation": 100 + } + } + }, + "Set_Group_E_36": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_E_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 700, + "standardDeviation": 100 + } + } + }, + "Set_Group_E_42": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_E_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 725, + "standardDeviation": 100 + } + } + }, + "Set_Group_E_48": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_E_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 765, + "standardDeviation": 100 + } + } + }, + "Set_Group_E_Complete": { + "type": "Simple", + "direct_transition": "Set CD4 Complete" + }, + "Set_Group_F": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Set_Group_F_0", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 1, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_F_6", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 7, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_F_12", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 13, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_F_18", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 19, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_F_24", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 25, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_F_30", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 31, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_F_36", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 37, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_F_42", + "condition": { + "condition_type": "PriorState", + "name": "Baseline", + "within": { + "quantity": 43, + "unit": "months" + } + } + }, + { + "transition": "Set_Group_F_48" + } + ] + }, + "Set_Group_F_0": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_F_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 585, + "standardDeviation": 50 + } + } + }, + "Set_Group_F_6": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_F_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 735, + "standardDeviation": 100 + } + } + }, + "Set_Group_F_12": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_F_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 740, + "standardDeviation": 125 + } + } + }, + "Set_Group_F_18": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_F_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 790, + "standardDeviation": 150 + } + } + }, + "Set_Group_F_24": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_F_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 850, + "standardDeviation": 150 + } + } + }, + "Set_Group_F_30": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_F_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 825, + "standardDeviation": 150 + } + } + }, + "Set_Group_F_36": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_F_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 840, + "standardDeviation": 150 + } + } + }, + "Set_Group_F_42": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_F_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 870, + "standardDeviation": 150 + } + } + }, + "Set_Group_F_48": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set_Group_F_Complete", + "distribution": { + "kind": "GAUSSIAN", + "round": true, + "parameters": { + "mean": 900, + "standardDeviation": 150 + } + } + }, + "Set_Group_F_Complete": { + "type": "Simple", + "direct_transition": "Set CD4 Complete" + }, + "Set CD4 Complete": { + "type": "Simple", + "direct_transition": "Count CD4" + }, + "Check AIDS": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "stage_3", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "62479008", + "display": "Acquired immune deficiency syndrome (disorder)" + } + ] + } + }, + { + "transition": "Set Group" + } + ] + }, + "Count CD4": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "313660005", + "display": "Absolute CD4 count procedure (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "Record CD4", + "reason": "hiv_diagnosis" + }, + "Record CD4": { + "type": "Observation", + "category": "laboratory", + "unit": "/uL", + "codes": [ + { + "system": "LOINC", + "code": "24467-3", + "display": "CD3+CD4+ (T4 helper) cells [#/volume] in Blood" + } + ], + "direct_transition": "Terminal", + "attribute": "hiv_cd4" + }, + "Check Treatment": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Set CD4", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_continuous_art", + "operator": "==", + "value": true + } + }, + { + "transition": "Set CD4", + "condition": { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "Set CD4" + } + } + }, + { + "transition": "HIV Viral Load Group Check" + } + ] + }, + "Non_Continuous_ART_Decline": { + "type": "Counter", + "attribute": "hiv_cd4", + "action": "decrement", + "amount": 40, + "direct_transition": "Sanity Check" + }, + "HIV Viral Load Group Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Non_Continuous_ART_Decline", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "hiv_viral_load_group", + "operator": "is nil" + }, + { + "condition_type": "Attribute", + "attribute": "hiv_viral_load", + "operator": "is nil" + } + ] + } + }, + { + "transition": "Non_Continuous_ART_Decline Group Check" + } + ] + }, + "Non_Continuous_ART_Decline Group Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Non_Continuous_ART_Decline_A", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_viral_load_group", + "operator": "==", + "value": "a" + } + }, + { + "transition": "Non_Continuous_ART_Decline_B", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_viral_load_group", + "operator": "==", + "value": "b" + } + }, + { + "transition": "Non_Continuous_ART_Decline_C", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_viral_load_group", + "operator": "==", + "value": "c" + } + }, + { + "transition": "Non_Continuous_ART_Decline_D", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_viral_load_group", + "operator": "==", + "value": "d" + } + }, + { + "transition": "Non_Continuous_ART_Decline_E_and_F" + } + ] + }, + "Non_Continuous_ART_Decline_A": { + "type": "Counter", + "attribute": "hiv_cd4", + "action": "decrement", + "amount": 36, + "direct_transition": "Sanity Check" + }, + "Non_Continuous_ART_Decline_B": { + "type": "Counter", + "attribute": "hiv_cd4", + "action": "decrement", + "amount": 45, + "direct_transition": "Sanity Check" + }, + "Non_Continuous_ART_Decline_C": { + "type": "Counter", + "attribute": "hiv_cd4", + "action": "decrement", + "amount": 55, + "direct_transition": "Sanity Check" + }, + "Non_Continuous_ART_Decline_D": { + "type": "Counter", + "attribute": "hiv_cd4", + "action": "decrement", + "amount": 65, + "direct_transition": "Sanity Check" + }, + "Non_Continuous_ART_Decline_E_and_F": { + "type": "Counter", + "attribute": "hiv_cd4", + "action": "decrement", + "amount": 77, + "direct_transition": "Sanity Check" + }, + "Set Minimal Values": { + "type": "SetAttribute", + "attribute": "hiv_cd4", + "direct_transition": "Set CD4 Complete", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 49, + "low": 0 + } + } + }, + "Sanity Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Set Minimal Values", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_cd4", + "operator": "<=", + "value": 0 + } + }, + { + "transition": "Set CD4 Complete" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/hiv/hiv_oi_prophylaxis.json b/src/main/resources/modules/hiv/hiv_oi_prophylaxis.json new file mode 100644 index 0000000..bc1e3ff --- /dev/null +++ b/src/main/resources/modules/hiv/hiv_oi_prophylaxis.json @@ -0,0 +1,420 @@ +{ + "name": "HIV OI Prophylaxis", + "remarks": [ + "This module is limited to PCP, Toxoplasma, and MAC Prophylaxis.", + "It can be built out and expanded in the future." + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + } + }, + { + "transition": "Check Path" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "MAC PPx": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Azithromycin", + "distribution": 0.8 + }, + { + "transition": "Clarithromycin", + "distribution": 0.2 + } + ] + }, + "Stop all HIV Pox Meds": { + "type": "MedicationEnd", + "referenced_by_attribute": "hiv_ppx", + "conditional_transition": [ + { + "transition": "Stop_all_HIV_Pox_Meds_2", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_ppx2", + "operator": "is not nil" + } + }, + { + "transition": "Stop_all_HIV_Pox_Meds_3", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_ppx3", + "operator": "is not nil" + } + }, + { + "transition": "Terminal" + } + ] + }, + "PCP/Toxo PPx": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": 10831, + "display": "Sulfamethoxazole / Trimethoprim" + } + ] + }, + "transition": "Atovaquone" + }, + { + "distributions": [ + { + "transition": "TMP-SMX DS", + "distribution": 0.9 + }, + { + "transition": "TMP SMX SS", + "distribution": 0.07 + }, + { + "transition": "Dapsone", + "distribution": 0.02 + }, + { + "transition": "Atovaquone", + "distribution": 0.01 + } + ] + } + ] + }, + "Azithromycin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 204844, + "display": "azithromycin 600 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "chronic": true, + "prescription": { + "dosage": { + "amount": 2, + "frequency": 1, + "period": 1, + "unit": "weeks" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "assign_to_attribute": "hiv_ppx" + }, + "Clarithromycin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 197517, + "display": "clarithromycin 500 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "assign_to_attribute": "hiv_ppx", + "direct_transition": "Terminal" + }, + "TMP-SMX DS": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 198335, + "display": "sulfamethoxazole 800 MG / trimethoprim 160 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "assign_to_attribute": "hiv_ppx" + }, + "TMP SMX SS": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 198334, + "display": "sulfamethoxazole 400 MG / trimethoprim 80 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "assign_to_attribute": "hiv_ppx" + }, + "Dapsone": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 197558, + "display": "dapsone 25 MG Oral Tablet" + } + ], + "direct_transition": "Pyrimethamin", + "reason": "hiv_diagnosis", + "chronic": true, + "prescription": { + "dosage": { + "amount": 2, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "assign_to_attribute": "hiv_ppx" + }, + "Pyrimethamin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 198182, + "display": "pyrimethamine 25 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "chronic": true, + "prescription": { + "dosage": { + "amount": 2, + "frequency": 1, + "period": 1, + "unit": "weeks" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "assign_to_attribute": "hiv_ppx2", + "direct_transition": "Leucovorin" + }, + "Leucovorin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 197862, + "display": "leucovorin 25 MG Oral Tablet" + } + ], + "reason": "hiv_diagnosis", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "weeks" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12 + }, + "assign_to_attribute": "hiv_ppx3", + "direct_transition": "Terminal" + }, + "Atovaquone": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 308429, + "display": "atovaquone 150 MG/ML Oral Suspension" + } + ], + "direct_transition": "Terminal", + "reason": "hiv_diagnosis", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "months" + }, + "refills": 12, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "421399004", + "display": "Dilute - dosing instruction imperative (qualifier value)" + } + ] + }, + "assign_to_attribute": "hiv_ppx" + }, + "Stop_all_HIV_Pox_Meds_3": { + "type": "MedicationEnd", + "referenced_by_attribute": "hiv_ppx3", + "direct_transition": "Terminal" + }, + "Stop_all_HIV_Pox_Meds_2": { + "type": "MedicationEnd", + "referenced_by_attribute": "hiv_ppx2", + "conditional_transition": [ + { + "transition": "Stop_all_HIV_Pox_Meds_3", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_ppx3", + "operator": "is not nil" + } + }, + { + "transition": "Terminal" + } + ] + }, + "Check Path": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "MAC PPx", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "hiv_continuous_art", + "operator": "==", + "value": false + }, + { + "condition_type": "Attribute", + "attribute": "hiv_cd4", + "operator": "<", + "value": 50 + } + ] + } + }, + { + "transition": "PCP/Toxo PPx", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_cd4", + "operator": "<", + "value": 200 + } + }, + { + "transition": "Stop Meds" + } + ] + }, + "Stop Meds": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Stop all HIV Pox Meds", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_ppx", + "operator": "is not nil" + } + }, + { + "transition": "Stop_all_HIV_Pox_Meds_2", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_ppx2", + "operator": "is not nil" + } + }, + { + "transition": "Stop_all_HIV_Pox_Meds_3", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_ppx3", + "operator": "is not nil" + } + }, + { + "transition": "Terminal" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/hiv/hiv_screening.json b/src/main/resources/modules/hiv/hiv_screening.json new file mode 100644 index 0000000..2135177 --- /dev/null +++ b/src/main/resources/modules/hiv/hiv_screening.json @@ -0,0 +1,144 @@ +{ + "name": "hiv_screening", + "remarks": [ + "Simple module containing HIV screening procedures." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "HIV Screening" + }, + "Terminal": { + "type": "Terminal" + }, + "HIV Screening": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "171121004", + "display": "Human immunodeficiency virus screening (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 10, + "low": 5 + } + }, + "unit": "minutes", + "conditional_transition": [ + { + "transition": "HIV Panel Positive", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_infection", + "operator": "==", + "value": true + } + }, + { + "transition": "HIV Panel Negative" + } + ] + }, + "HIV Panel Positive": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "75622-1", + "display": "HIV 1 and 2 tests - Meaningful Use set" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "7917-8", + "display": "HIV 1 Ab [Presence] in Serum" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "165816005", + "display": "Human immunodeficiency virus detected (finding)" + } + } + ], + "direct_transition": "Counseling" + }, + "HIV Panel Negative": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "75622-1", + "display": "HIV 1 and 2 tests - Meaningful Use set" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "7917-8", + "display": "HIV 1 Ab [Presence] in Serum" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "165815009", + "display": "Human immunodeficiency virus not detected (finding)" + } + } + ], + "direct_transition": "Terminal" + }, + "Counseling": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "313077009", + "display": "Human immunodeficiency virus counseling (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "HIV Care Referral" + }, + "HIV Care Referral": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "3457005", + "display": "Patient referral (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 10, + "low": 5 + } + }, + "unit": "minutes", + "direct_transition": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/hiv/hiv_viral_load.json b/src/main/resources/modules/hiv/hiv_viral_load.json new file mode 100644 index 0000000..12c450d --- /dev/null +++ b/src/main/resources/modules/hiv/hiv_viral_load.json @@ -0,0 +1,438 @@ +{ + "name": "hiv_viral_load", + "remarks": [ + "Set and update HIV viral load.", + "", + "The notion of \"Viral Load Group\" is an artificial construct to bin patients into different baseline levels.", + "", + "Group A == <= 1500 {copies}/mL", + "Group B == 1501-7000", + "Group C == 7001-20000", + "Group D == 20001-55000", + "Group E == 55001-100000", + "Group F == > 100000" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Check Age" + }, + "Terminal": { + "type": "Terminal" + }, + "Check Age": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Check Viral Load", + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 13, + "unit": "years", + "value": 0 + } + }, + { + "transition": "Terminal" + } + ] + }, + "Check Viral Load": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Set Viral Load Group", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_viral_load_group", + "operator": "is nil" + } + }, + { + "transition": "Set Viral Load", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_viral_load", + "operator": "is nil" + } + }, + { + "transition": "Suppression Check", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "hiv_continuous_art", + "operator": "==", + "value": true + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "Set Viral Load Group", + "within": { + "quantity": 3, + "unit": "months" + } + } + } + ] + } + }, + { + "transition": "Set Viral Load" + } + ] + }, + "Set Viral Load": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "CD4_Group_A", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_viral_load_group", + "operator": "==", + "value": "a" + } + }, + { + "transition": "CD4_Group_B", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_viral_load_group", + "operator": "==", + "value": "b" + } + }, + { + "transition": "CD4_Group_C", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_viral_load_group", + "operator": "==", + "value": "c" + } + }, + { + "transition": "CD4_Group_D", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_viral_load_group", + "operator": "==", + "value": "d" + } + }, + { + "transition": "CD4_Group_E", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_viral_load_group", + "operator": "==", + "value": "e" + } + }, + { + "transition": "CD4_Group_F", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_viral_load_group", + "operator": "==", + "value": "f" + } + } + ] + }, + "Measure Viral Load": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "315124004", + "display": "Human immunodeficiency virus viral load (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "Observe Viral Load", + "reason": "hiv_diagnosis" + }, + "Observe Viral Load": { + "type": "Observation", + "category": "laboratory", + "unit": "{copies}/mL", + "codes": [ + { + "system": "LOINC", + "code": "20447-9", + "display": "HIV 1 RNA [#/volume] (viral load) in Serum or Plasma by NAA with probe detection" + } + ], + "direct_transition": "Terminal", + "attribute": "hiv_viral_load" + }, + "Sanity Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Minimal Viral Load", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_viral_load", + "operator": "<", + "value": 0 + } + }, + { + "transition": "Measure Viral Load" + } + ] + }, + "Minimal Viral Load": { + "type": "SetAttribute", + "attribute": "hiv_viral_load", + "direct_transition": "Measure Viral Load", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 199, + "low": 0 + } + } + }, + "CD4_Group_B": { + "type": "SetAttribute", + "attribute": "hiv_viral_load", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 7000, + "low": 1501 + } + }, + "direct_transition": "Sanity Check" + }, + "CD4_Group_A": { + "type": "SetAttribute", + "attribute": "hiv_viral_load", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 1500, + "low": 1000 + } + }, + "direct_transition": "Sanity Check" + }, + "CD4_Group_C": { + "type": "SetAttribute", + "attribute": "hiv_viral_load", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 20000, + "low": 7001 + } + }, + "direct_transition": "Sanity Check" + }, + "CD4_Group_D": { + "type": "SetAttribute", + "attribute": "hiv_viral_load", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 55000, + "low": 20001 + } + }, + "direct_transition": "Sanity Check" + }, + "CD4_Group_E": { + "type": "SetAttribute", + "attribute": "hiv_viral_load", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 100000, + "low": 55001 + } + }, + "direct_transition": "Sanity Check" + }, + "CD4_Group_F": { + "type": "SetAttribute", + "attribute": "hiv_viral_load", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 10000000, + "low": 100001 + } + }, + "direct_transition": "Sanity Check" + }, + "Set Viral Load Group": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Set_Group_A", + "distribution": 0.07 + }, + { + "transition": "Set_Group_B", + "distribution": 0.1 + }, + { + "transition": "Set_Group_C", + "distribution": 0.3 + }, + { + "transition": "Set_Group_D", + "distribution": 0.33 + }, + { + "transition": "Set_Group_E", + "distribution": 0.18 + }, + { + "transition": "Set_Group_F", + "distribution": 0.02 + } + ] + }, + "Set_Group_A": { + "type": "SetAttribute", + "attribute": "hiv_viral_load_group", + "direct_transition": "Set Viral Load", + "value": "a" + }, + "Set_Group_B": { + "type": "SetAttribute", + "attribute": "hiv_viral_load_group", + "value": "b", + "direct_transition": "Set Viral Load" + }, + "Set_Group_C": { + "type": "SetAttribute", + "attribute": "hiv_viral_load_group", + "value": "c", + "direct_transition": "Set Viral Load" + }, + "Set_Group_D": { + "type": "SetAttribute", + "attribute": "hiv_viral_load_group", + "value": "d", + "direct_transition": "Set Viral Load" + }, + "Set_Group_E": { + "type": "SetAttribute", + "attribute": "hiv_viral_load_group", + "value": "e", + "direct_transition": "Set Viral Load" + }, + "Set_Group_F": { + "type": "SetAttribute", + "attribute": "hiv_viral_load_group", + "value": "f", + "direct_transition": "Set Viral Load" + }, + "Suppression Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_viral_suppression", + "operator": "==", + "value": true + }, + "transition": "Suppression" + }, + { + "distributions": [ + { + "transition": "Suppression", + "distribution": 0.9 + }, + { + "transition": "Suppressed_Viral_Load_B", + "distribution": 0.1 + } + ] + } + ] + }, + "Suppression": { + "type": "SetAttribute", + "attribute": "hiv_viral_suppression", + "value": true, + "distributed_transition": [ + { + "transition": "Undetectable_Viral_Load", + "distribution": 0.8 + }, + { + "transition": "Suppressed_Viral_Load_A", + "distribution": 0.2 + } + ] + }, + "Undetectable_Viral_Load": { + "type": "SetAttribute", + "attribute": "hiv_viral_load", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 49, + "low": 0 + } + }, + "direct_transition": "Sanity Check" + }, + "Suppressed_Viral_Load_B": { + "type": "SetAttribute", + "attribute": "hiv_viral_load", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 999, + "low": 200 + } + }, + "direct_transition": "Sanity Check" + }, + "Suppressed_Viral_Load_A": { + "type": "SetAttribute", + "attribute": "hiv_viral_load", + "distribution": { + "kind": "UNIFORM", + "round": true, + "parameters": { + "high": 199, + "low": 50 + } + }, + "direct_transition": "Sanity Check" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/hiv/stop_all_art_meds.json b/src/main/resources/modules/hiv/stop_all_art_meds.json new file mode 100644 index 0000000..e90afe5 --- /dev/null +++ b/src/main/resources/modules/hiv/stop_all_art_meds.json @@ -0,0 +1,335 @@ +{ + "name": "Stop All ART Meds", + "remarks": [ + "Stop all ART medications." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "3TC" + }, + "Terminal": { + "type": "Terminal" + }, + "ZDV": { + "type": "MedicationEnd", + "direct_transition": "d4T", + "codes": [ + { + "system": "RxNorm", + "code": 199663, + "display": "zidovudine 300 MG Oral Tablet" + } + ] + }, + "ddI": { + "type": "MedicationEnd", + "direct_transition": "r", + "codes": [ + { + "system": "RxNorm", + "code": 284988, + "display": "didanosine 400 MG Delayed Release Oral Capsule" + } + ] + }, + "ddC": { + "type": "MedicationEnd", + "direct_transition": "ddI", + "codes": [ + { + "system": "RxNorm", + "code": 313760, + "display": "zalcitabine 0.75 MG Oral Tablet" + } + ] + }, + "d4T": { + "type": "MedicationEnd", + "direct_transition": "ddC", + "codes": [ + { + "system": "RxNorm", + "code": 313110, + "display": "stavudine 40 MG Oral Capsule" + } + ] + }, + "3TC": { + "type": "MedicationEnd", + "direct_transition": "3TC+TDF", + "codes": [ + { + "system": "RxNorm", + "code": 349491, + "display": "lamivudine 300 MG Oral Tablet" + } + ] + }, + "3TC+ZDV": { + "type": "MedicationEnd", + "direct_transition": "ATV", + "codes": [ + { + "system": "RxNorm", + "code": 200082, + "display": "lamivudine 150 MG / zidovudine 300 MG Oral Tablet" + } + ] + }, + "IDV": { + "type": "MedicationEnd", + "direct_transition": "LPV/r", + "codes": [ + { + "system": "RxNorm", + "code": 310988, + "display": "indinavir 400 MG Oral Capsule" + } + ] + }, + "SQV": { + "type": "MedicationEnd", + "direct_transition": "TDF", + "codes": [ + { + "system": "RxNorm", + "code": 859863, + "display": "saquinavir mesylate 500 MG Oral Tablet" + } + ] + }, + "r": { + "type": "MedicationEnd", + "direct_transition": "Terminal", + "codes": [ + { + "system": "RxNorm", + "code": 317150, + "display": "ritonavir 100 MG Oral Capsule" + } + ] + }, + "RTV": { + "type": "MedicationEnd", + "direct_transition": "SQV", + "codes": [ + { + "system": "RxNorm", + "code": 317150, + "display": "ritonavir 100 MG Oral Capsule" + } + ] + }, + "NEL": { + "type": "MedicationEnd", + "direct_transition": "RAL", + "codes": [ + { + "system": "RxNorm", + "code": 403978, + "display": "nelfinavir 625 MG Oral Tablet" + } + ] + }, + "EFV": { + "type": "MedicationEnd", + "direct_transition": "EFV+FTC+TDF", + "codes": [ + { + "system": "RxNorm", + "code": 349477, + "display": "efavirenz 600 MG Oral Tablet" + } + ] + }, + "LPV/r": { + "type": "MedicationEnd", + "direct_transition": "NEL", + "codes": [ + { + "system": "RxNorm", + "code": 597730, + "display": "lopinavir 200 MG / ritonavir 50 MG Oral Tablet" + } + ] + }, + "TDF": { + "type": "MedicationEnd", + "direct_transition": "ZDV", + "codes": [ + { + "system": "RxNorm", + "code": 349251, + "display": "tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ] + }, + "FTC": { + "type": "MedicationEnd", + "direct_transition": "FTC+RPV+TDF", + "codes": [ + { + "system": "RxNorm", + "code": 403875, + "display": "emtricitabine 200 MG Oral Capsule" + } + ] + }, + "FTC+TDF": { + "type": "MedicationEnd", + "direct_transition": "IDV", + "codes": [ + { + "system": "RxNorm", + "code": 476556, + "display": "emtricitabine 200 MG / tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ] + }, + "FTC+RPV+TDF": { + "type": "MedicationEnd", + "direct_transition": "FTC+TAF", + "codes": [ + { + "system": "RxNorm", + "code": 1147334, + "display": "emtricitabine 200 MG / rilpivirine 25 MG / tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ] + }, + "EFV+FTC+TDF": { + "type": "MedicationEnd", + "direct_transition": "EVG+cobi+FTC+TAF", + "codes": [ + { + "system": "RxNorm", + "code": 643066, + "display": "efavirenz 600 MG / emtricitabine 200 MG / tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ] + }, + "EVG+cobi+TDF+FTC": { + "type": "MedicationEnd", + "direct_transition": "FPV", + "codes": [ + { + "system": "RxNorm", + "code": 1306292, + "display": "cobicistat 150 MG / elvitegravir 150 MG / emtricitabine 200 MG / tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ] + }, + "RAL": { + "type": "MedicationEnd", + "direct_transition": "RTV", + "codes": [ + { + "system": "RxNorm", + "code": 744842, + "display": "raltegravir 400 MG Oral Tablet" + } + ] + }, + "DTG": { + "type": "MedicationEnd", + "direct_transition": "DTG+3TC", + "codes": [ + { + "system": "RxNorm", + "code": 1433873, + "display": "dolutegravir 50 MG Oral Tablet" + } + ] + }, + "FPV": { + "type": "MedicationEnd", + "direct_transition": "FTC", + "codes": [ + { + "system": "RxNorm", + "code": 402109, + "display": "fosamprenavir 700 MG Oral Tablet" + } + ] + }, + "ATV": { + "type": "MedicationEnd", + "direct_transition": "BIC+TAF+FTC", + "codes": [ + { + "system": "RxNorm", + "code": 664741, + "display": "atazanavir 300 MG Oral Capsule" + } + ] + }, + "DRV": { + "type": "MedicationEnd", + "direct_transition": "DTG", + "codes": [ + { + "system": "RxNorm", + "code": 1359269, + "display": "darunavir 800 MG Oral Tablet" + } + ] + }, + "3TC+TDF": { + "type": "MedicationEnd", + "direct_transition": "3TC+ZDV", + "codes": [ + { + "system": "RxNorm", + "code": 2003249, + "display": "lamivudine 300 MG / tenofovir disoproxil fumarate 300 MG Oral Tablet" + } + ] + }, + "FTC+TAF": { + "type": "MedicationEnd", + "direct_transition": "FTC+TDF", + "codes": [ + { + "system": "RxNorm", + "code": 1747691, + "display": "emtricitabine 200 MG / tenofovir alafenamide 25 MG Oral Table" + } + ] + }, + "BIC+TAF+FTC": { + "type": "MedicationEnd", + "direct_transition": "DRV", + "codes": [ + { + "system": "RxNorm", + "code": 1999667, + "display": "bictegravir 50 MG / emtricitabine 200 MG / tenofovir alafenamide 25 MG Oral Tablet" + } + ] + }, + "EVG+cobi+FTC+TAF": { + "type": "MedicationEnd", + "direct_transition": "EVG+cobi+TDF+FTC", + "codes": [ + { + "system": "RxNorm", + "code": 1721613, + "display": "cobicistat 150 MG / elvitegravir 150 MG / emtricitabine 200 MG / tenofovir alafenamide 10 MG Oral Tablet" + } + ] + }, + "DTG+3TC": { + "type": "MedicationEnd", + "direct_transition": "EFV", + "codes": [ + { + "system": "RxNorm", + "code": 2122519, + "display": "dolutegravir 50 MG / lamivudine 300 MG Oral Tablet" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/hiv_care.json b/src/main/resources/modules/hiv_care.json new file mode 100644 index 0000000..af2315b --- /dev/null +++ b/src/main/resources/modules/hiv_care.json @@ -0,0 +1,966 @@ +{ + "name": "hiv_care", + "remarks": [ + "Placeholder.", + "", + "This module supplements the automatic built-in immunization module with additional boosters for at-risk populations.", + "", + "You can review and examine the built-in immunization schedule here:", + "https://github.com/synthetichealth/synthea/blob/master/src/main/resources/immunization_schedule.json", + "" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Wait" + }, + "Wait": { + "type": "Guard", + "allow": { + "condition_type": "Attribute", + "attribute": "hiv_diagnosis", + "operator": "is not nil" + }, + "direct_transition": "Check Treatment" + }, + "Baseline Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "hiv_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "conditional_transition": [ + { + "transition": "Set Baseline", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_30_day_linkage", + "operator": "==", + "value": true + } + }, + { + "transition": "Record Over Thirty Day Linkage" + } + ] + }, + "Check Treatment": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Continuous_ART", + "default_probability": 0.645, + "lookup_table_name": "hiv_care.csv" + }, + { + "transition": "Non_Continuous_ART", + "default_probability": 0.355, + "lookup_table_name": "hiv_care.csv" + } + ] + }, + "Set Baseline": { + "type": "CallSubmodule", + "submodule": "hiv/hiv_baseline", + "direct_transition": "End Baseline Encounter" + }, + "End Baseline Encounter": { + "type": "EncounterEnd", + "direct_transition": "Rapid Start Check" + }, + "Non_Continuous_ART": { + "type": "SetAttribute", + "attribute": "hiv_continuous_art", + "value": false, + "direct_transition": "Linkage Check" + }, + "Continuous_ART": { + "type": "SetAttribute", + "attribute": "hiv_continuous_art", + "direct_transition": "Linkage Check", + "value": true + }, + "Short Delay": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 4, + "low": 3 + } + }, + "unit": "months", + "direct_transition": "Monitoring Encounter" + }, + "Long Delay": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 6, + "low": 4 + } + }, + "unit": "months", + "direct_transition": "Monitoring Encounter" + }, + "Treatment Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "hiv_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Exam" + }, + "CD4_Submodule": { + "type": "CallSubmodule", + "submodule": "hiv/hiv_cd4", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_rapid_start", + "operator": "==", + "value": true + }, + "transition": "End Treatment Encounter" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_continuous_art", + "operator": "==", + "value": true + }, + "transition": "Medication_Submodule" + }, + { + "distributions": [ + { + "transition": "Medication_Submodule", + "distribution": 0.8 + }, + { + "transition": "End Treatment Encounter", + "distribution": 0.2 + } + ] + } + ] + }, + "HIV_Viral_Load_Submodule": { + "type": "CallSubmodule", + "submodule": "hiv/hiv_viral_load", + "direct_transition": "CBC" + }, + "Medication_Submodule": { + "type": "CallSubmodule", + "submodule": "hiv/art_sequence", + "direct_transition": "End Treatment Encounter" + }, + "End Treatment Encounter": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Short Delay", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_continuous_art", + "operator": "==", + "value": true + } + }, + { + "transition": "Long Delay" + } + ] + }, + "Linkage Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">=", + "quantity": 13, + "unit": "years", + "value": 0 + }, + { + "condition_type": "Age", + "operator": "<=", + "quantity": 24, + "unit": "years", + "value": 0 + } + ] + }, + "distributions": [ + { + "transition": "Within 30 Days", + "distribution": 0.78 + }, + { + "transition": "Long Encounter Delay", + "distribution": 0.22 + } + ] + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">=", + "quantity": 25, + "unit": "years", + "value": 0 + }, + { + "condition_type": "Age", + "operator": "<=", + "quantity": 34, + "unit": "years", + "value": 0 + } + ] + }, + "distributions": [ + { + "transition": "Within 30 Days", + "distribution": 0.8 + }, + { + "transition": "Long Encounter Delay", + "distribution": 0.2 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 35, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Within 30 Days", + "distribution": 0.83 + }, + { + "transition": "Long Encounter Delay", + "distribution": 0.17 + } + ] + }, + { + "transition": "Long Encounter Delay" + } + ] + }, + "Long Encounter Delay": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 90, + "low": 32 + } + }, + "unit": "days", + "direct_transition": "Baseline Encounter" + }, + "Short Encounter Delay": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 7, + "low": 0 + } + }, + "unit": "days", + "direct_transition": "Baseline Encounter" + }, + "Medium Encounter Delay": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 0 + } + }, + "unit": "days", + "direct_transition": "Baseline Encounter" + }, + "Rapid Start": { + "type": "SetAttribute", + "attribute": "hiv_rapid_start", + "direct_transition": "Short Encounter Delay", + "value": true + }, + "Within 30 Days": { + "type": "SetAttribute", + "attribute": "hiv_30_day_linkage", + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Date", + "operator": ">=", + "year": 2016 + }, + { + "condition_type": "Attribute", + "attribute": "hiv_continuous_art", + "operator": "==", + "value": true + } + ] + }, + "distributions": [ + { + "transition": "Rapid Start", + "distribution": 0.2 + }, + { + "transition": "Medium Encounter Delay", + "distribution": 0.8 + } + ] + }, + { + "transition": "Medium Encounter Delay" + } + ], + "value": true + }, + "Rapid Start Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Delay Until Telephone", + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_rapid_start", + "operator": "==", + "value": true + } + }, + { + "transition": "Wait for Treatment" + } + ] + }, + "Delay Until Telephone": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 48, + "low": 24 + } + }, + "unit": "hours", + "direct_transition": "Telephone Encounter" + }, + "Telephone Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "hiv_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185317003", + "display": "Telephone encounter (procedure)" + } + ], + "direct_transition": "Wait for Treatment" + }, + "Wait for Treatment": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 56, + "low": 8 + } + }, + "unit": "days", + "direct_transition": "Treatment Encounter" + }, + "Exam": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "67879005", + "display": "History and physical examination, limited (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 20, + "low": 10 + } + }, + "unit": "minutes", + "reason": "hiv_diagnosis", + "conditional_transition": [ + { + "transition": "HIV_Viral_Load_Submodule", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 1996 + } + }, + { + "transition": "CBC" + } + ] + }, + "CBC": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "9564003", + "display": "Complete blood count with white cell differential, automated (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 20, + "low": 10 + } + }, + "unit": "minutes", + "direct_transition": "CD4_Submodule", + "reason": "hiv_diagnosis" + }, + "Monitoring Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "hiv_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Monitoring Exam" + }, + "Monitoring Exam": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "67879005", + "display": "History and physical examination, limited (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 20, + "low": 10 + } + }, + "unit": "minutes", + "reason": "hiv_diagnosis", + "conditional_transition": [ + { + "transition": "Monitoring_HIV_Viral_Load", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 1996 + } + }, + { + "transition": "Monitoring CD4 Check" + } + ] + }, + "Monitoring_HIV_Viral_Load": { + "type": "CallSubmodule", + "submodule": "hiv/hiv_viral_load", + "direct_transition": "Monitoring CD4 Check" + }, + "Monitoring_CD4_Submodule": { + "type": "CallSubmodule", + "submodule": "hiv/hiv_cd4", + "direct_transition": "Monitoring Medication" + }, + "Monitoring CBC": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "9564003", + "display": "Complete blood count with white cell differential, automated (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 20, + "low": 10 + } + }, + "unit": "minutes", + "reason": "hiv_diagnosis", + "direct_transition": "Monitoring_CD4_Submodule" + }, + "Monitoring Medication": { + "type": "CallSubmodule", + "submodule": "hiv/hiv_oi_prophylaxis", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "hiv_continuous_art", + "operator": "==", + "value": true + }, + "transition": "ART Sequence" + }, + { + "distributions": [ + { + "transition": "ART Sequence", + "distribution": 0.8 + }, + { + "transition": "Vaccine Check", + "distribution": 0.2 + } + ] + } + ] + }, + "Monitoring Encounter End": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Long Delay", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "hiv_continuous_art", + "operator": "is nil" + }, + { + "condition_type": "Attribute", + "attribute": "hiv_continuous_art", + "operator": "==", + "value": false + } + ] + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "hiv_continuous_art", + "operator": "==", + "value": true + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "Wait", + "within": { + "quantity": 2, + "unit": "years" + } + } + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "hiv_viral_suppression", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "hiv_cd4", + "operator": ">", + "value": 300 + } + ] + } + ] + } + ] + } + ] + } + }, + { + "transition": "Short Delay" + } + ] + }, + "Monitoring CD4 Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Monitoring Medication", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "hiv_continuous_art", + "operator": "==", + "value": true + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "Wait", + "within": { + "quantity": 2, + "unit": "years" + } + } + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "hiv_viral_suppression", + "operator": "==", + "value": true + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "PriorState", + "name": "Monitoring_CD4_Submodule", + "within": { + "quantity": 12, + "unit": "months" + } + }, + { + "condition_type": "Attribute", + "attribute": "hiv_cd4", + "operator": ">", + "value": 300 + } + ] + } + ] + } + ] + } + ] + } + }, + { + "transition": "Monitoring CBC" + } + ] + }, + "Record Over Thirty Day Linkage": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "373786007", + "display": "Reasons for treatment delay (finding)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 0 + } + }, + "unit": "minutes", + "direct_transition": "Set Baseline", + "reason": "hiv_diagnosis" + }, + "Tdap Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "MenACWY Check", + "condition": { + "condition_type": "PriorState", + "name": "Administer Tdap", + "within": { + "quantity": 10, + "unit": "years" + } + } + }, + { + "transition": "Administer Tdap" + } + ] + }, + "Administer Tdap": { + "type": "Vaccine", + "series": 1, + "codes": [ + { + "system": "CVX", + "code": 115, + "display": "tetanus toxoid, reduced diphtheria toxoid, and acellular pertussis vaccine, adsorbed" + } + ], + "direct_transition": "MenACWY Check" + }, + "MenACWY Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "PCV13 Check", + "condition": { + "condition_type": "PriorState", + "name": "Administer MenACWY", + "within": { + "quantity": 5, + "unit": "years" + } + } + }, + { + "transition": "Administer MenACWY" + } + ] + }, + "Administer MenACWY": { + "type": "Vaccine", + "series": 1, + "codes": [ + { + "system": "CVX", + "code": 114, + "display": "meningococcal polysaccharide (groups A, C, Y and W-135) diphtheria toxoid conjugate vaccine (MCV4P)" + } + ], + "direct_transition": "PCV13 Check" + }, + "Administer PPSV23": { + "type": "Vaccine", + "series": 1, + "codes": [ + { + "system": "CVX", + "code": 33, + "display": "pneumococcal polysaccharide vaccine, 23 valent" + } + ], + "direct_transition": "Zoster Check" + }, + "Zoster Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Monitoring Encounter End", + "condition": { + "condition_type": "PriorState", + "name": "Administer Zoster" + } + }, + { + "transition": "Administer Zoster", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years", + "value": 0 + }, + { + "condition_type": "Date", + "operator": ">=", + "year": 2017 + } + ] + } + }, + { + "transition": "Monitoring Encounter End" + } + ] + }, + "Administer Zoster": { + "type": "Vaccine", + "series": 1, + "codes": [ + { + "system": "CVX", + "code": 187, + "display": "zoster vaccine recombinant" + } + ], + "direct_transition": "Monitoring Encounter End" + }, + "Under 65": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Zoster Check", + "condition": { + "condition_type": "PriorState", + "name": "Administer PCV13", + "within": { + "quantity": 8, + "unit": "weeks" + } + } + }, + { + "transition": "Zoster Check", + "condition": { + "condition_type": "PriorState", + "name": "Administer PPSV23", + "within": { + "quantity": 5, + "unit": "years" + } + } + }, + { + "transition": "Administer PPSV23" + } + ] + }, + "65 and Up": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Zoster Check", + "condition": { + "condition_type": "PriorState", + "name": "Administer PPSV23", + "within": { + "quantity": 5, + "unit": "years" + } + } + }, + { + "transition": "Administer PPSV23" + } + ] + }, + "PCV13 Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Age Check", + "condition": { + "condition_type": "PriorState", + "name": "Administer PCV13" + } + }, + { + "transition": "Administer PCV13" + } + ] + }, + "Age Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "65 and Up", + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 65, + "unit": "years", + "value": 0 + } + }, + { + "transition": "Under 65" + } + ] + }, + "Administer PCV13": { + "type": "Vaccine", + "series": 1, + "codes": [ + { + "system": "CVX", + "code": 133, + "display": "pneumococcal conjugate vaccine, 13 valent" + } + ], + "direct_transition": "Age Check" + }, + "Vaccine Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Monitoring Encounter End", + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2010 + } + }, + { + "transition": "Tdap Check" + } + ] + }, + "ART Sequence": { + "type": "CallSubmodule", + "submodule": "hiv/art_sequence", + "direct_transition": "Vaccine Check" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/hiv_diagnosis.json b/src/main/resources/modules/hiv_diagnosis.json new file mode 100644 index 0000000..4bf4913 --- /dev/null +++ b/src/main/resources/modules/hiv_diagnosis.json @@ -0,0 +1,285 @@ +{ + "name": "hiv_diagnosis", + "remarks": [ + "This module only determines diagnosed infections and mortality from HIV. Clinical treatment is in a separate module. Undiagnosed infections are not included." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Wait until 1979" + }, + "Terminal": { + "type": "Terminal" + }, + "Mortality Check Later Years": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Death", + "default_probability": 0.0334, + "lookup_table_name": "hiv_mortality_later.csv" + }, + { + "transition": "Living_with_Diagnosis_Later_Years", + "default_probability": 0.9666, + "lookup_table_name": "hiv_mortality_later.csv" + } + ] + }, + "Diagnosis Later Years": { + "type": "ConditionOnset", + "assign_to_attribute": "hiv_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "86406008", + "display": "Human immunodeficiency virus infection (disorder)" + } + ], + "direct_transition": "Diagnosis_Encounter_Later_Years", + "target_encounter": "Diagnosis_Encounter_Later_Years" + }, + "Living_with_Diagnosis_Later_Years": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "unit": "years", + "direct_transition": "Mortality Check Later Years" + }, + "Diagnosis Early Years": { + "type": "ConditionOnset", + "assign_to_attribute": "hiv_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "62479008", + "display": "Acquired immune deficiency syndrome (disorder)" + } + ], + "direct_transition": "Diagnosis_Encounter_Early_Years", + "target_encounter": "Diagnosis_Encounter_Early_Years" + }, + "Mortality Check Early Years": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Death", + "default_probability": 0.0705, + "lookup_table_name": "hiv_mortality_early.csv" + }, + { + "transition": "Living_with_Diagnosis_Early_Years", + "default_probability": 0.9295, + "lookup_table_name": "hiv_mortality_early.csv" + } + ] + }, + "Mortality Check Very Early Years": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Death_within_six_months", + "default_probability": 0.2055, + "lookup_table_name": "hiv_mortality_very_early.csv" + }, + { + "transition": "Living_with_Diagnosis_Six_Months", + "default_probability": 0.7945, + "lookup_table_name": "hiv_mortality_very_early.csv" + } + ] + }, + "Mortality Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Mortality Check Early Years", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 1992 + } + }, + { + "transition": "Mortality Check Very Early Years" + } + ] + }, + "Death": { + "type": "Death", + "direct_transition": "Terminal", + "range": { + "low": 0, + "high": 364, + "unit": "days" + }, + "referenced_by_attribute": "hiv_diagnosis" + }, + "Living_with_Diagnosis_Six_Months": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 6 + } + }, + "unit": "months", + "direct_transition": "Mortality Check" + }, + "Living_with_Diagnosis_Early_Years": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "unit": "years", + "direct_transition": "Mortality Check" + }, + "Death_within_six_months": { + "type": "Death", + "exact": { + "quantity": 6, + "unit": "months" + }, + "direct_transition": "Terminal", + "referenced_by_attribute": "hiv_diagnosis" + }, + "Diagnosis_Encounter_Later_Years": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Screening Submodule", + "reason": "Diagnosis Later Years" + }, + "Diagnosis_Encounter_Early_Years": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Screening_Submodule", + "reason": "Diagnosis Early Years" + }, + "Diagnosis_Encounter_End": { + "type": "EncounterEnd", + "direct_transition": "Mortality Check Later Years" + }, + "Diagnosis_Encounter_End_Early_Years": { + "type": "EncounterEnd", + "direct_transition": "Mortality Check" + }, + "Screening Submodule": { + "type": "CallSubmodule", + "submodule": "hiv/hiv_screening", + "direct_transition": "Diagnosis_Encounter_End" + }, + "Screening_Submodule": { + "type": "CallSubmodule", + "submodule": "hiv/hiv_screening", + "direct_transition": "Diagnosis_Encounter_End_Early_Years" + }, + "Diagnosed_Later_Years": { + "type": "SetAttribute", + "attribute": "hiv_infection", + "direct_transition": "Diagnosis Later Years", + "value": true + }, + "Diagnosed_Early_Years": { + "type": "SetAttribute", + "attribute": "hiv_infection", + "direct_transition": "Diagnosis Early Years", + "value": true + }, + "Wait_Until_Next_Diagnosis_Check": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "unit": "years", + "direct_transition": "Diagnosis Check" + }, + "Diagnosis Check Early Years": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Diagnosed_Early_Years", + "default_probability": 0.0001565, + "lookup_table_name": "hiv_diagnosis_early.csv" + }, + { + "transition": "Wait_Until_Next_Diagnosis_Check", + "default_probability": 0.9998435, + "lookup_table_name": "hiv_diagnosis_early.csv" + } + ] + }, + "Diagnosis Check Later Years": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Diagnosed_Later_Years", + "default_probability": 0.000097, + "lookup_table_name": "hiv_diagnosis_later.csv" + }, + { + "transition": "Wait_Until_Next_Diagnosis_Check", + "default_probability": 0.999903, + "lookup_table_name": "hiv_diagnosis_later.csv" + } + ] + }, + "Diagnosis Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Diagnosis Check Later Years", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 1993 + } + }, + { + "transition": "Diagnosis Check Early Years", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 1979 + } + }, + { + "transition": "Wait_Until_Next_Diagnosis_Check" + } + ] + }, + "Wait until 1979": { + "type": "Guard", + "allow": { + "condition_type": "Date", + "operator": ">=", + "year": 1979 + }, + "direct_transition": "Diagnosis Check" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/home_health_treatment.json b/src/main/resources/modules/home_health_treatment.json new file mode 100644 index 0000000..89d6ae0 --- /dev/null +++ b/src/main/resources/modules/home_health_treatment.json @@ -0,0 +1,364 @@ +{ + "name": "Home Health Treatment", + "remarks": [ + "Simplified Home Health Care module with a daily routine of physical therapy and Activities of Daily Living (ADL) for less than 21 days (Medicare limit)." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Wait Until Home Health" + }, + "Face_to_Face_Encounter": { + "type": "Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308335008", + "display": "Patient encounter procedure (procedure)" + } + ], + "direct_transition": "Referral_Home_Health_Care", + "encounter_class": "urgentcare", + "reason": "home_health_reason" + }, + "Referral_Home_Health_Care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "417511005", + "display": "Referral to home health care service (procedure)" + } + ], + "direct_transition": "End_Face_to_Face_Encounter" + }, + "End_Face_to_Face_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Referral_to_Visit_Delay" + }, + "Referral_to_Visit_Delay": { + "type": "Delay", + "range": { + "low": 0, + "high": 48, + "unit": "hours" + }, + "direct_transition": "Set_HH_LOS" + }, + "Set_HH_LOS": { + "type": "SetAttribute", + "attribute": "home_health_days", + "direct_transition": "First_Home_Health_Encounter", + "range": { + "high": 30, + "low": 1 + } + }, + "First_Home_Health_Encounter": { + "type": "Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "439708006", + "display": "Home visit (procedure)" + } + ], + "direct_transition": "Initial_Patient_Assessment", + "encounter_class": "home", + "reason": "home_health_reason" + }, + "Initial_Patient_Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "315639002", + "display": "Initial patient assessment (procedure)" + } + ], + "direct_transition": "Comprehensive_Interview_Evaluation" + }, + "Comprehensive_Interview_Evaluation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "200619008", + "display": "Comprehensive interview and evaluation (procedure)" + } + ], + "direct_transition": "Development_Individualized_Care_Plan" + }, + "Development_Individualized_Care_Plan": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "370789001", + "display": "Development of individualized plan of care (procedure)" + } + ], + "direct_transition": "Coordination_Care_Plan" + }, + "Coordination_Care_Plan": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "711069006", + "display": "Coordination of care plan (procedure)" + } + ], + "direct_transition": "End_First_HH_Encounter" + }, + "End_First_HH_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Delay" + }, + "Follow-up_HH_Encounter": { + "type": "Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "439708006", + "display": "Home visit (procedure)" + } + ], + "direct_transition": "Begin_Visit", + "encounter_class": "home", + "reason": "home_health_reason" + }, + "Begin_Visit": { + "type": "Counter", + "attribute": "home_health_days", + "action": "decrement", + "amount": 1, + "direct_transition": "Check_Visit_Type" + }, + "Check_Visit_Type": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.46, + "transition": "Therapy_Visit" + }, + { + "distribution": 0.54, + "transition": "Nursing_Visit" + } + ] + }, + "Therapy_Visit": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.74, + "transition": "Physical_Therapy" + }, + { + "distribution": 0.18, + "transition": "Occupational_Therapy" + }, + { + "distribution": 0.08, + "transition": "Speech_Language_Therapy" + } + ] + }, + "Nursing_Visit": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.85, + "transition": "Nursing_Care" + }, + { + "distribution": 0.15, + "transition": "Aide_Visit" + } + ] + }, + "Physical_Therapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91251008", + "display": "Physical therapy procedure (regime/therapy)" + } + ], + "range": { + "high": 60, + "low": 45, + "unit": "minutes" + }, + "direct_transition": "Check for End" + }, + "Occupational_Therapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "84478008", + "display": "Occupational therapy (regime/therapy)" + } + ], + "direct_transition": "Check for End" + }, + "Speech_Language_Therapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "311555007", + "display": "Speech and language therapy regime (regime/therapy)" + } + ], + "direct_transition": "Check for End" + }, + "Patient_Discharge": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "58000006", + "display": "Patient discharge (procedure)" + } + ], + "direct_transition": "Last Visit" + }, + "Nursing_Care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "410401003", + "display": "Nursing care/supplementary surveillance (regime/therapy)" + } + ], + "direct_transition": "Check for End" + }, + "Aide_Visit": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.95, + "transition": "Aide_HH_Service" + }, + { + "distribution": 0.05, + "transition": "Social_Case_Work" + } + ] + }, + "Aide_HH_Service": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "385781007", + "display": "Home health aide service (regime/therapy)" + } + ], + "direct_transition": "Check for End" + }, + "Social_Case_Work": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183418007", + "display": "Social case work (regime/therapy)" + } + ], + "direct_transition": "Check for End" + }, + "Delay": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "days" + }, + "direct_transition": "Follow-up_HH_Encounter" + }, + "Check for End": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Finish Day", + "condition": { + "condition_type": "Attribute", + "attribute": "home_health_days", + "operator": ">", + "value": 0 + } + }, + { + "transition": "Patient_Discharge" + } + ] + }, + "Finish Day": { + "type": "EncounterEnd", + "direct_transition": "Delay" + }, + "Last Visit": { + "type": "EncounterEnd", + "direct_transition": "Reset Home Health" + }, + "Wait Until Home Health": { + "type": "Guard", + "allow": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "home_health", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "home_health", + "operator": "==", + "value": true + } + ] + }, + "conditional_transition": [ + { + "transition": "Default_Home_Health_Reason", + "condition": { + "condition_type": "Attribute", + "attribute": "home_health_reason", + "operator": "is nil" + } + }, + { + "transition": "Face_to_Face_Encounter" + } + ] + }, + "Reset Home Health": { + "type": "SetAttribute", + "attribute": "home_health", + "direct_transition": "Reset Home Health Reason", + "value": false + }, + "Default_Home_Health_Reason": { + "type": "SetAttribute", + "attribute": "home_health_reason", + "direct_transition": "Face_to_Face_Encounter", + "value_code": { + "system": "SNOMED-CT", + "code": "1871000124103", + "display": "Transition from acute care to home-health care (finding)" + } + }, + "Reset Home Health Reason": { + "type": "SetAttribute", + "attribute": "home_health_reason", + "direct_transition": "Wait Until Home Health" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/home_hospice_snf.json b/src/main/resources/modules/home_hospice_snf.json new file mode 100644 index 0000000..bab7240 --- /dev/null +++ b/src/main/resources/modules/home_hospice_snf.json @@ -0,0 +1,782 @@ +{ + "name": "Home Hospice SNF", + "remarks": [ + "Module that launches home health, hospice, or skilled nursing facility visits based on events or probability." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Wait Until 65" + }, + "Terminal": { + "type": "Terminal" + }, + "Wait Until 65": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 65, + "unit": "years", + "value": 0 + }, + "direct_transition": "Hospice Check" + }, + "Check for Events": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Check for SNF", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91302008", + "display": "Sepsis (disorder)" + } + ] + }, + { + "condition_type": "Attribute", + "attribute": "covid19_bacterial_infection", + "operator": "is not nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "233604007", + "display": "Pneumonia (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "38822007", + "display": "Cystitis (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "10509002", + "display": "Acute bronchitis (disorder)" + } + ] + }, + { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": true + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "86406008", + "display": "Human immunodeficiency virus infection (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "26929004", + "display": "Alzheimer's disease (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "254837009", + "display": "Malignant neoplasm of breast (disorder)" + } + ] + }, + { + "condition_type": "Attribute", + "attribute": "lung_cancer", + "operator": "==", + "value": true + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "126906006", + "display": "Neoplasm of prostate (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "93761005", + "display": "Primary malignant neoplasm of colon (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "109838007", + "display": "Overlapping malignant neoplasm of colon (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "363406005", + "display": "Malignant neoplasm of colon (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "94260004", + "display": "Metastatic malignant neoplasm to colon (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "88805009", + "display": "Chronic congestive heart failure (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "22298006", + "display": "Myocardial infarction (disorder)" + } + ] + }, + { + "condition_type": "Attribute", + "attribute": "coronary_heart_disease", + "operator": "==", + "value": true + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399211009", + "display": "History of myocardial infarction (situation)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "234466008", + "display": "Acquired coagulation disorder (disorder)" + } + ] + }, + { + "condition_type": "Attribute", + "attribute": "burn_injury", + "operator": "is not nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1734006", + "display": "Fracture of vertebral column with spinal cord injury (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "58150001", + "display": "Fracture of clavicle (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "359817006", + "display": "Closed fracture of hip (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "33737001", + "display": "Fracture of rib (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "16114001", + "display": "Fracture of ankle (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65966004", + "display": "Fracture of forearm (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "263102004", + "display": "Fracture subluxation of wrist (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "110030002", + "display": "Concussion injury of brain (disorder)" + } + ] + }, + { + "condition_type": "Attribute", + "attribute": "laceration_injury", + "operator": "is not nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "190905008", + "display": "Cystic fibrosis (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "87433001", + "display": "Pulmonary emphysema (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185086009", + "display": "Chronic obstructive bronchitis (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65710008", + "display": "Acute respiratory failure (disorder)" + } + ] + }, + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "diabetes", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "joint_replacement", + "operator": "is not nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "161622006", + "display": "History of lower limb amputation (situation)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "429280009", + "display": "History of amputation of foot (situation)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "161621004", + "display": "History of upper limb amputation (situation)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698423002", + "display": "History of disarticulation at wrist (situation)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "200936003", + "display": "Lupus erythematosus (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "69896004", + "display": "Rheumatoid arthritis (disorder)" + } + ] + } + ] + } + }, + { + "transition": "Check for Home Visits" + } + ] + }, + "Initiate Home Health Visits": { + "type": "SetAttribute", + "attribute": "home_health", + "value": true, + "direct_transition": "Wait for Next Decade" + }, + "Wait for Next Decade": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Wait Until 75", + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 75, + "unit": "years", + "value": 0 + } + }, + { + "transition": "Wait Until 85", + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 85, + "unit": "years", + "value": 0 + } + }, + { + "transition": "Terminal" + } + ] + }, + "Random Delay": { + "type": "Delay", + "range": { + "high": 9, + "low": 0, + "unit": "years" + }, + "direct_transition": "Initiate Home Health Visits" + }, + "Wait Until 75": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 75, + "unit": "years", + "value": 0 + }, + "direct_transition": "Hospice Check" + }, + "Wait Until 85": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 85, + "unit": "years", + "value": 0 + }, + "direct_transition": "Hospice Check" + }, + "Initiate SNF": { + "type": "CallSubmodule", + "submodule": "snf/skilled_nursing_facility", + "direct_transition": "Wait for Next Decade" + }, + "Check for Home Visits": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 75, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.3, + "transition": "Random Delay" + }, + { + "distribution": 0.7, + "transition": "Wait for Next Decade" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 85, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.32, + "transition": "Random Delay" + }, + { + "distribution": 0.68, + "transition": "Wait for Next Decade" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 85, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.24, + "transition": "Random Delay" + }, + { + "distribution": 0.76, + "transition": "Wait for Next Decade" + } + ] + } + ] + }, + "Check for SNF": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 75, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Initiate SNF", + "distribution": 0.24 + }, + { + "transition": "Check for Home Visits", + "distribution": 0.76 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 85, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Initiate SNF", + "distribution": 0.33 + }, + { + "transition": "Check for Home Visits", + "distribution": 0.6699999999999999 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 90, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Initiate SNF", + "distribution": 0.18 + }, + { + "transition": "Check for Home Visits", + "distribution": 0.82 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 90, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Initiate SNF", + "distribution": 0.15 + }, + { + "transition": "Check for Home Visits", + "distribution": 0.85 + } + ] + } + ] + }, + "Hospice Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Alzheimers", + "condition": { + "condition_type": "Attribute", + "attribute": "Type of Alzheimer's", + "operator": "is not nil" + } + }, + { + "transition": "COPD", + "condition": { + "condition_type": "Attribute", + "attribute": "copd_variant", + "operator": "is not nil" + } + }, + { + "transition": "CHF", + "condition": { + "condition_type": "Attribute", + "attribute": "chf", + "operator": "is not nil" + } + }, + { + "transition": "CF", + "condition": { + "condition_type": "Attribute", + "attribute": "Cystic_Fibrosis", + "operator": "is not nil" + } + }, + { + "transition": "CKD", + "condition": { + "condition_type": "Attribute", + "attribute": "dialysis_reason", + "operator": "is not nil" + } + }, + { + "transition": "Lung Cancer", + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer", + "operator": "is not nil" + } + }, + { + "transition": "Breast Cancer", + "condition": { + "condition_type": "Attribute", + "attribute": "breast_cancer_condition", + "operator": "is not nil" + } + }, + { + "transition": "Prostate Cancer", + "condition": { + "condition_type": "Attribute", + "attribute": "prostate_cancer", + "operator": "is not nil" + } + }, + { + "transition": "Colorectal Cancer", + "condition": { + "condition_type": "Attribute", + "attribute": "colorectal_cancer", + "operator": "is not nil" + } + }, + { + "transition": "Check for Events" + } + ] + }, + "Initiate Hospice": { + "type": "SetAttribute", + "attribute": "hospice", + "direct_transition": "Wait for Next Decade", + "value": true + }, + "Alzheimers": { + "type": "SetAttribute", + "attribute": "hospice_reason", + "direct_transition": "Initiate Hospice", + "value_attribute": "Type of Alzheimer's" + }, + "COPD": { + "type": "SetAttribute", + "attribute": "hospice_reason", + "value_attribute": "copd_variant", + "direct_transition": "Initiate Hospice" + }, + "CHF": { + "type": "SetAttribute", + "attribute": "hospice_reason", + "value_attribute": "chf", + "direct_transition": "Initiate Hospice" + }, + "CKD": { + "type": "SetAttribute", + "attribute": "hospice_reason", + "value_attribute": "dialysis_reason", + "direct_transition": "Initiate Hospice" + }, + "CF": { + "type": "SetAttribute", + "attribute": "hospice_reason", + "value_attribute": "Cystic_Fibrosis", + "direct_transition": "Initiate Hospice" + }, + "Breast Cancer": { + "type": "SetAttribute", + "attribute": "hospice_reason", + "value_attribute": "breast_cancer_condition", + "direct_transition": "Initiate Hospice" + }, + "Lung Cancer": { + "type": "SetAttribute", + "attribute": "hospice_reason", + "value_attribute": "Lung Cancer", + "direct_transition": "Initiate Hospice" + }, + "Prostate Cancer": { + "type": "SetAttribute", + "attribute": "hospice_reason", + "value_attribute": "prostate_cancer", + "direct_transition": "Initiate Hospice" + }, + "Colorectal Cancer": { + "type": "SetAttribute", + "attribute": "hospice_reason", + "value_attribute": "colorectal_cancer", + "direct_transition": "Initiate Hospice" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/homelessness.json b/src/main/resources/modules/homelessness.json new file mode 100644 index 0000000..af4b036 --- /dev/null +++ b/src/main/resources/modules/homelessness.json @@ -0,0 +1,448 @@ +{ + "name": "Homelessness", + "remarks": [ + "Primary source of info is the 2016 U.S. Department of Housing and Urban Development (HUD) ", + "2016 Annual Homeless Assessment Report (AHAR) to Congress (AHAR)", + "https://www.hudexchange.info/resources/documents/2016-AHAR-Part-1.pdf" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Potential_Homelessness" + }, + "Potential_Homelessness": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "years" + }, + "remarks": [ + "On a single night in 2016, 549,928 people were experiencing homelessness in the United States.", + "Assuming a US population of 300M, 550k/300M == ~0.18%", + "we assume that these are more likely to be of low SES, but not guaranteed. ", + "these transition %s result higher than .18% because people do not stay homeless forever.", + "from http://www.endhomelessness.org/library/entry/the-state-of-homelessness-in-america-2012 : ", + " 'The odds for a person in the general U.S. population of experiencing homelessness in the course of a year are 1 in 194.", + "For an individual living doubled up the odds are 1 in 12.", + "For a released prisoner they are 1 in 13.", + "For a young adult who has aged out of foster care they are 1 in 11.' ", + "synthea doesn't model these factors so we'll give a higher risk to people of low SES", + "'doubled up population' is ~ 6 million == ~ 2%, prison population is ~ 1%" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Begin_Homelessness" + }, + "remarks": "people who have ever been homeless have the highest risk of becoming homeless again", + "distributions": [ + { + "distribution": 0.99, + "transition": "Potential_Homelessness" + }, + { + "distribution": 0.01, + "transition": "Begin_Homelessness" + } + ] + }, + { + "condition": { + "condition_type": "Socioeconomic Status", + "category": "Low" + }, + "distributions": [ + { + "distribution": 0.990025, + "transition": "Potential_Homelessness" + }, + { + "distribution": 0.009975, + "transition": "Begin_Homelessness" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.999, + "transition": "Potential_Homelessness" + }, + { + "distribution": 0.001, + "transition": "Begin_Homelessness" + } + ] + } + ] + }, + "Begin_Homelessness": { + "type": "SetAttribute", + "attribute": "homeless", + "value": true, + "direct_transition": "Homeless_Condition" + }, + "Homelessness_Counter": { + "type": "Counter", + "attribute": "instances_of_homelessness", + "action": "increment", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "instances_of_homelessness", + "operator": ">=", + "value": 4 + }, + "remarks": [ + "Chronic homelessness is defined as either 12 consecutive months of homelessness", + "OR 4+ occasions of homelessness over 3 years. For simplicity in this model assume", + "4 total occasions --> chronic", + "January 2016 - ~1 in 5 individuals experiencing homelessness had chronic patterns of homelessness." + ], + "transition": "Chronic_Homelessness" + }, + { + "transition": "Temporary_Homelessness" + } + ] + }, + "Chronic_Homelessness": { + "type": "SetAttribute", + "attribute": "homelessness_category", + "value": "chronic", + "direct_transition": "Living_Homeless" + }, + "Temporary_Homelessness": { + "type": "SetAttribute", + "attribute": "homelessness_category", + "value": "temporary", + "direct_transition": "Living_Homeless" + }, + "Living_Homeless": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "homelessness_category", + "operator": "==", + "value": "temporary" + }, + "remarks": [ + "About 44% of homeless people are sheltered. ", + "The average length of stay in emergency shelter was 69 days for single men, 51 days for single women, and 70 days for families.", + "For those staying in transitional housing, the avg stay for single men was 175 days, 196 days for single women, and 223 days for families.", + "Permanent supportive housing had the longest stay, with 556 days for single men, 571 days for single women", + "http://www.nationalhomeless.org/factsheets/How_Many.html", + "we assume the expected length of homelessness to be ~6 months" + ], + "distributions": [ + { + "distribution": 0.44, + "transition": "Visit_Homeless_Shelter" + }, + { + "distribution": 0.16, + "transition": "End_Homelessness" + }, + { + "distribution": 0.4, + "transition": "Living_Homeless" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "homelessness_category", + "operator": "==", + "value": "chronic" + }, + "remarks": [ + "Of chronically homeless individuals, more than two thirds (68% or 52,890 people) were staying", + "in unsheltered locations such as under bridges, in cars, or in abandoned buildings. ", + "This is much greater than the unsheltered rate for all people ", + "experiencing homelessness as individuals in the United States, which was 44 percent.", + "--We assume that chronically homeless individuals are less likely to visit a homeless shelter" + ], + "distributions": [ + { + "distribution": 0.32, + "transition": "Visit_Homeless_Shelter" + }, + { + "distribution": 0.08, + "transition": "End_Homelessness" + }, + { + "distribution": 0.6, + "transition": "Living_Homeless" + } + ] + } + ] + }, + "Visit_Homeless_Shelter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "210098006", + "display": "Domiciliary or rest home patient evaluation and management (procedure)" + } + ], + "direct_transition": "Information_Gathering", + "reason": "Homeless_Condition" + }, + "Information_Gathering": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "311791003", + "display": "Information gathering (procedure)" + } + ], + "direct_transition": "Question_1", + "remarks": [ + "the following questions are temporary. going forward we would like these risk factors to be modeled directly", + "the LOINC codes selected & responses are a best guess at modeling the information here" + ] + }, + "Question_1": { + "type": "Observation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "76690-7", + "display": "Sexual orientation" + } + ], + "attribute": "sexual_orientation", + "unit": "{nominal}", + "direct_transition": "Question_2" + }, + "Question_2": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Question_2_Positive", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "86406008", + "display": "Human immunodeficiency virus infection (disorder)" + } + ] + } + }, + { + "transition": "Question_2_Negative" + } + ] + }, + "Question_2_Positive": { + "type": "Observation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "55277-8", + "display": "HIV status" + } + ], + "exact": { + "quantity": "HIV positive" + }, + "unit": "{nominal}", + "direct_transition": "Question_3" + }, + "Question_2_Negative": { + "type": "Observation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "55277-8", + "display": "HIV status" + } + ], + "exact": { + "quantity": "not HIV positive" + }, + "unit": "{nominal}", + "direct_transition": "Question_3" + }, + "Question_3": { + "type": "Simple", + "remarks": [ + "see http://www.nationalhomeless.org/factsheets/addiction.pdf " + ], + "distributed_transition": [ + { + "distribution": 0.26, + "transition": "Question_3_Abuser" + }, + { + "distribution": 0.74, + "transition": "Question_3_Nonabuser" + } + ] + }, + "Question_3_Abuser": { + "type": "Observation", + "remarks": [ + "here we leverage our existing opioids model, for simplicity.", + "in the real world homelessness has a stronger asssociation with drug abuse", + "see http://www.nationalhomeless.org/factsheets/addiction.pdf " + ], + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "28245-9", + "display": "Abuse Status [OMAHA]" + } + ], + "exact": { + "quantity": "Severe signs/symptoms" + }, + "unit": "{nominal}", + "direct_transition": "Question_4" + }, + "Question_3_Nonabuser": { + "type": "Observation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "28245-9", + "display": "Abuse Status [OMAHA]" + } + ], + "exact": { + "quantity": "No signs/symptoms" + }, + "unit": "{nominal}", + "direct_transition": "Question_4" + }, + "Question_4": { + "type": "Observation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "71802-3", + "display": "Housing status" + } + ], + "exact": { + "quantity": "Patient is homeless" + }, + "unit": "{nominal}", + "direct_transition": "Question_5" + }, + "Question_5": { + "type": "Simple", + "remarks": [ + "estimated >70% of homeless do not have health insurance http://www.nationalhomeless.org/factsheets/health.html" + ], + "distributed_transition": [ + { + "distribution": 0.25, + "transition": "Question_5_Yes" + }, + { + "distribution": 0.75, + "transition": "Question_5_No" + } + ] + }, + "Question_5_Yes": { + "type": "Observation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "63513-6", + "display": "Are you covered by health insurance or some other kind of health care plan [PhenX]" + } + ], + "exact": { + "quantity": "Yes" + }, + "unit": "{nominal}", + "direct_transition": "Question_6" + }, + "Question_5_No": { + "type": "Observation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "63513-6", + "display": "Are you covered by health insurance or some other kind of health care plan [PhenX]" + } + ], + "exact": { + "quantity": "No" + }, + "unit": "{nominal}", + "direct_transition": "Question_6" + }, + "Question_6": { + "type": "Observation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "46240-8", + "display": "History of Hospitalizations+Outpatient visits Narrative" + } + ], + "range": { + "low": 0, + "high": 10 + }, + "unit": "{count}", + "direct_transition": "End_Shelter_Visit" + }, + "End_Shelter_Visit": { + "type": "EncounterEnd", + "direct_transition": "Living_Homeless" + }, + "End_Homelessness": { + "type": "SetAttribute", + "attribute": "homeless", + "value": false, + "direct_transition": "End_Homeless_Condition" + }, + "Homeless_Condition": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32911000", + "display": "Homeless (finding)" + } + ], + "direct_transition": "Homelessness_Counter" + }, + "End_Homeless_Condition": { + "type": "ConditionEnd", + "direct_transition": "Potential_Homelessness", + "condition_onset": "Homeless_Condition" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/hospice_treatment.json b/src/main/resources/modules/hospice_treatment.json new file mode 100644 index 0000000..49f9bfc --- /dev/null +++ b/src/main/resources/modules/hospice_treatment.json @@ -0,0 +1,327 @@ +{ + "name": "Hospice Treatment", + "remarks": [ + "Simplified hospice module with a daily routine of hospice care and medication administration until the patient expires." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Wait for Hospice" + }, + "Terminal": { + "type": "Terminal" + }, + "Hospice_Admission": { + "type": "Encounter", + "encounter_class": "hospice", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305336008", + "display": "Admission to hospice (procedure)" + } + ], + "reason": "hospice_reason", + "conditional_transition": [ + { + "transition": "Stay Until Death", + "condition": { + "condition_type": "Attribute", + "attribute": "days_until_death", + "operator": "<", + "value": 30 + } + }, + { + "transition": "Determine_LOS" + } + ] + }, + "Determine_LOS": { + "type": "SetAttribute", + "attribute": "hospice_days", + "distribution": { + "kind": "EXPONENTIAL", + "round": true, + "parameters": { + "mean": 22.7 + } + }, + "conditional_transition": [ + { + "transition": "Max Length of Stay", + "condition": { + "condition_type": "Attribute", + "attribute": "hospice_days", + "operator": ">", + "value": 240 + } + }, + { + "transition": "Certification_Procedure" + } + ] + }, + "Certification_Procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "310417005", + "display": "Certification procedure (procedure)" + } + ], + "direct_transition": "Notifications" + }, + "Notifications": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185087000", + "display": "Notifications (procedure)" + } + ], + "direct_transition": "Initial_Patient_Assessment" + }, + "Initial_Patient_Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "315639002", + "display": "Initial patient assessment (procedure)" + } + ], + "direct_transition": "Individualized_Care_Plan" + }, + "Individualized_Care_Plan": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "370789001", + "display": "Development of individualized plan of care (procedure)" + } + ], + "distributed_transition": [ + { + "transition": "Assign DME", + "distribution": 0.5 + }, + { + "transition": "Begin_Day", + "distribution": 0.5 + } + ] + }, + "Begin_Day": { + "type": "Counter", + "attribute": "hospice_days", + "action": "decrement", + "amount": 1, + "direct_transition": "Hospice_Care" + }, + "Hospice_Care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "385763009", + "display": "Hospice care (regime/therapy)" + } + ], + "range": { + "high": 60, + "low": 30, + "unit": "minutes" + }, + "direct_transition": "End_Day" + }, + "End_Day": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "days" + }, + "conditional_transition": [ + { + "transition": "End Bed", + "condition": { + "condition_type": "Attribute", + "attribute": "hospice_days", + "operator": "<=", + "value": 0 + } + }, + { + "transition": "Begin_Day" + } + ] + }, + "Patient_Discharge": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "58000006", + "display": "Patient discharge (procedure)" + } + ], + "direct_transition": "Discharged Alive" + }, + "Died_in_Hospice": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "876882001", + "display": "Died in hospice (finding)" + } + ], + "direct_transition": "Discharged Dead" + }, + "Alive Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Died_in_Hospice", + "condition": { + "condition_type": "Attribute", + "attribute": "days_until_death", + "operator": "<=", + "value": 0 + } + }, + { + "transition": "Patient_Discharge" + } + ] + }, + "Discharged Dead": { + "type": "EncounterEnd", + "direct_transition": "Terminal", + "discharge_disposition": { + "system": "NUBC", + "code": 41, + "display": "Expired (i.e. died) in a medical facility; e.g., hospital, SNF, ICF, or free standing hospice" + } + }, + "Discharged Alive": { + "type": "EncounterEnd", + "direct_transition": "Reset Hospice" + }, + "Wait for Hospice": { + "type": "Guard", + "allow": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "hospice", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "days_until_death", + "operator": "<", + "value": 30 + } + ] + }, + "direct_transition": "Hospice_Admission" + }, + "Reset Hospice": { + "type": "SetAttribute", + "attribute": "hospice", + "direct_transition": "Wait for Hospice", + "value": false + }, + "Assign DME": { + "type": "Simple", + "direct_transition": "Bed" + }, + "Bed": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "91537007", + "display": "Hospital bed, device (physical object)" + }, + "direct_transition": "Lift Check" + }, + "Lift": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "706112002", + "display": "Patient lifting system (physical object)" + }, + "direct_transition": "Commode Check" + }, + "Commode": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "360008003", + "display": "Commode (physical object)" + }, + "direct_transition": "Begin_Day" + }, + "Lift Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Lift", + "distribution": 0.24 + }, + { + "transition": "Commode Check", + "distribution": 0.76 + } + ] + }, + "Commode Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Commode", + "distribution": 0.21 + }, + { + "transition": "Begin_Day", + "distribution": 0.79 + } + ] + }, + "End Bed": { + "type": "DeviceEnd", + "direct_transition": "End Lift", + "device": "Bed" + }, + "End Lift": { + "type": "DeviceEnd", + "device": "Lift", + "direct_transition": "End Commode" + }, + "End Commode": { + "type": "DeviceEnd", + "device": "Commode", + "direct_transition": "Alive Check" + }, + "Max Length of Stay": { + "type": "SetAttribute", + "attribute": "hospice_days", + "direct_transition": "Certification_Procedure", + "value": 240 + }, + "Stay Until Death": { + "type": "SetAttribute", + "attribute": "hospice_days", + "direct_transition": "Certification_Procedure", + "value_attribute": "days_until_death" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/hypertension.json b/src/main/resources/modules/hypertension.json new file mode 100644 index 0000000..a2b8bba --- /dev/null +++ b/src/main/resources/modules/hypertension.json @@ -0,0 +1,900 @@ +{ + "name": "Hypertension", + "remarks": [ + "This Hypertension model reflects the treatment of Primary Hypertension (HTN) in Adults. ", + "", + "Overview", + "Hypertension diagnosis definitions, pharmacologic treatment thresholds, and control target recommendations diverge across clinical guidelines. However, the model was informed by the following hypertension guidelines and subsequent updates:", + "2018 ESC/ESH Guidelines for the management of arterial hypertension: The Task Force for the management of arterial hypertension of the European Society of Cardiology (ESC) and the European Society of Hypertension (ESH)", + "2017 ACC/AHA/AAPA/ABC/ACPM/AGS/APhA/ASH/ASPC/NMA/PCNA guideline for the prevention, detection, evaluation, and management of high blood pressure in adults: a report of the American College of Cardiology/American Heart Association Task Force on Clinical Practice Guidelines. ", + "2017 Pharmacologic treatment of hypertension in adults aged 60 years or older to higher versus lower blood pressure targets: a clinical practice guideline from the American College of Physicians and the American Academy of Family Physicians.", + "2014 evidence-based guideline for the management of high blood pressure in adults: report from the panel members appointed to the Eighth Joint National Committee (JNC 8). ", + "Canadian Hypertension Guidelines", + "", + "", + "The following model assumptions apply: ", + "HTN Definitions: Our model definition of HTN is >= 140/90 for all populations, given general agreement of this threshold for pharmacotherapy across most clinical guidelines. Our model threshold for use of pharmacotherapy is SBP >= 140. We define control as SBP < 140. All individuals do NOT achieve control consistent with epidemiological studies. We acknowledge that HTN may be defined using a lower blood pressure (see ACC/AHA) and that lower pharmacotherapy thresholds and targets may be used for populations with certain comorbid conditions, cardiovascular risk, and/or of a certain age. This model does not reflect all primary HTN care pathways, as individual decision making that accounts for benefits, harms, treatment burden and other factors is a critical part of hypertension management. ", + " ", + "Pharmacotherapy: Pharmacotherapy represented in the submodule 'medications/hypertension_medication' includes ACE inhibitors/ angiotensin receptor blockers (ARBs), thiazide diuretics, and calcium channel blockers (CCB). The drug representing the pharmacologic category, is the medication most commonly prescribed, rather than the agent used in clinical trials (e.g. hydrochlorothiazide vs chlorthalidone). The use of an ACE-inhibitor is inclusive of the use of an ARB. The model only represents the use of dihydropyridine CCBs. Beta-blockers (BBs) are not represented in the model, as the use of BBs for hypertension management is often guided by other compelling clinical indications such as those noted in the clinical exclusions below. Additionally, evidence suggest that in populations without these comorbid conditions, beta‐blockers may not have the same benefits in preventing death and stroke as CCB, thiazides, and ACE/ARBS. The medication dose represented in the model represents the minimum dose of the usual dose range for HTN treatment. This medication dose is inclusive of a lower dose and/or titration to the maximum dose prior to adding another agent.", + "", + "Pathway: Once individuals require >= 4 medications for HTN treatment, their treatment is no longer represented in the model; these individuals meet the definition of resistant hypertension often requiring further evaluation and/or use of additional HTN medications. Evidence suggests this is a small percentage of individuals (~5-13%).", + "", + "Clinical Population Exclusions: The care pathway excludes individuals with ASCVD (e.g coronary heart disease, MI), heart failure, pregnancy, age < 18 years, or CKD > Stage III. Rationale: Recommendations for hypertension treatment differ in pregnancy due to risk of teratogenic effects with certain medications and associated pregnancy complications. In pediatrics, hypertension diagnosis is established based on age, sex, and height percentiles with limited evidence regarding long-term outcomes. For co-morbid cardiovascular conditions, we address hypertension management in current (or future) cardiovascular models since similar medications are used to manage cardiovascular disease and hypertension. For advanced CKD/ESRD, hypertension management pathways often differ with the use of additional medications. ", + "", + "Additional references to inform population probabilities and pharmacotherapy utilization: ", + "- Derington, C.G., King, J.B., Herrick, J.S., Shimbo, D., Kronish, I.M., Saseen, J.J., Muntner, P., Moran, A.E. and Bress, A.P., 2020. Trends in antihypertensive medication monotherapy and combination use among US adults, National Health and Nutrition Examination Survey 2005–2016. Hypertension, 75(4), pp.973-981.", + "- Shah, S.J. and Stafford, R.S., 2017. Current trends of hypertension treatment in the United States. American journal of hypertension, 30(10), pp.1008-1014.", + "" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "Initial impl == direct translation of ruby module" + ], + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years", + "value": 0 + }, + "direct_transition": "Hypertension_Screening_Reason" + }, + "Set_Yearly_Risk": { + "type": "Simple", + "remarks": [ + "By age 55 years, cumulative incidence of hypertension was 75.5% in black men, 75.7% in black women, 54.5% in white men, and 40.0% in white women -- https://www.ahajournals.org/doi/full/10.1161/JAHA.117.007988", + "", + "", + "Cumulative Incidence = 1 - e(-IR x D)", + "e^(-IRxD) = 1 - CI", + "-IR x D = ln(1-CI)", + "IR = -ln(1-CI)/D", + "", + "Assuming 0% at age 18, and per the chart the increase is roughly linear, use the following yearly incidence rates:", + "", + "", + "black men - 3.8%", + "black women - 3.8%", + "white men - 2.1%", + "white women - 1.4%", + "others - 2.5% (just a value in the middle, no source)" + ], + "conditional_transition": [ + { + "transition": "Black", + "condition": { + "condition_type": "Race", + "race": "Black" + } + }, + { + "transition": "White", + "condition": { + "condition_type": "Race", + "race": "White" + } + }, + { + "transition": "Others" + } + ] + }, + "Chance_of_Hypertension": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension", + "operator": "==", + "value": true + }, + "distributions": [ + { + "transition": "Wellness_Encounter", + "distribution": 1 + } + ] + }, + { + "distributions": [ + { + "transition": "Onset_Hypertension", + "distribution": { + "attribute": "risk_of_hypertension", + "default": 0.05 + } + }, + { + "transition": "Wait_till_next_year", + "distribution": 0.95 + } + ] + } + ], + "remarks": [ + "Use the risk set above, but also check if some other module may have set hypertension == true" + ] + }, + "Wait_till_next_year": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "unit": "years", + "direct_transition": "Chance_of_Hypertension" + }, + "Onset_Hypertension": { + "type": "SetAttribute", + "attribute": "hypertension", + "value": true, + "direct_transition": "Wellness_Encounter" + }, + "Black": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Black_Female", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "Black_Male" + } + ] + }, + "White": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "White_Female", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "White_Male" + } + ] + }, + "Others": { + "type": "SetAttribute", + "attribute": "risk_of_hypertension", + "direct_transition": "Chance_of_Hypertension", + "value": 0.025 + }, + "Black_Female": { + "type": "SetAttribute", + "attribute": "risk_of_hypertension", + "direct_transition": "Chance_of_Hypertension", + "value": 0.038 + }, + "Black_Male": { + "type": "SetAttribute", + "attribute": "risk_of_hypertension", + "direct_transition": "Chance_of_Hypertension", + "value": 0.038 + }, + "White_Male": { + "type": "SetAttribute", + "attribute": "risk_of_hypertension", + "direct_transition": "Chance_of_Hypertension", + "value": 0.021 + }, + "White_Female": { + "type": "SetAttribute", + "attribute": "risk_of_hypertension", + "direct_transition": "Chance_of_Hypertension", + "value": 0.014 + }, + "Diagnose_Hypertension": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "59621000", + "display": "Essential hypertension (disorder)" + } + ], + "assign_to_attribute": "hypertension_dx", + "direct_transition": "Set_BP_Not Controlled" + }, + "Hypertension_Followup_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "hypertension_dx", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "Record_BP" + }, + "End_Hypertension_Followup_Encounter": { + "type": "EncounterEnd", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "blood_pressure_controlled", + "operator": "==", + "value": true + }, + "transition": "Delay 2_Month" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": true + }, + "distributions": [ + { + "distribution": 0.643, + "transition": "Set_BP_Controlled_2" + }, + { + "distribution": 0.357, + "transition": "Delay 2_Month" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": false + }, + "distributions": [ + { + "distribution": 0.53, + "transition": "Set_BP_Controlled_2" + }, + { + "distribution": 0.47, + "transition": "Delay 2_Month" + } + ] + } + ] + }, + "Hypertension_Followup_Encounter_2": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "hypertension_dx", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "Record_BP_2" + }, + "Hypertension_Followup_Encounter_3": { + "type": "Encounter", + "encounter_class": "ambulatory", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "Record_BP_3", + "reason": "hypertension_dx" + }, + "End_Hypertension_Followup_Encounter_2": { + "type": "EncounterEnd", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "blood_pressure_controlled", + "operator": "==", + "value": true + }, + "transition": "Delay_2_Month_2" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": true + }, + "transition": "Delay_2_Month_2" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": false + }, + "distributions": [ + { + "distribution": 0.643, + "transition": "Set_BP_Controlled_3" + }, + { + "distribution": 0.357, + "transition": "Delay_2_Month_2" + } + ] + }, + { + "transition": "Delay_2_Month_2" + } + ] + }, + "End_Hypertension_Followup_Encounter_3": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "LifeStyle_Modifications_Hypertension_CarePlan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "443402002", + "display": "Lifestyle education regarding hypertension (procedure)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "386463000", + "display": "Prescribed activity/exercise education (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "413473000", + "display": "Counseling about alcohol consumption (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "1151000175103", + "display": "Dietary Approaches to Stop Hypertension diet (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "225323000", + "display": "Smoking cessation education (procedure)" + } + ], + "goals": [ + { + "addresses": [ + "hypertension_dx" + ], + "text": "Maintain blood pressure below 140/90 mm[Hg]" + }, + { + "addresses": [ + "hypertension_dx" + ], + "text": "Reduce sodium intake to no more than 2,400 mg/day" + } + ], + "reason": "hypertension_dx", + "direct_transition": "Prescribe_Medication" + }, + "Wellness_Encounter": { + "type": "Encounter", + "conditional_transition": [ + { + "transition": "Excluded", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Age", + "operator": "<", + "quantity": 18, + "unit": "years", + "value": 0 + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">", + "value": 3 + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "coronary_heart_disease", + "operator": "==", + "value": true + }, + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "22298006", + "display": "Myocardial infarction (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399211009", + "display": "History of myocardial infarction (situation)" + } + ] + } + ] + }, + { + "condition_type": "Attribute", + "attribute": "chf", + "operator": "is not nil" + } + ] + } + ] + } + ] + } + ] + } + ] + } + }, + { + "transition": "Included" + } + ], + "wellness": true, + "reason": "hypertension_screening_reason" + }, + "End_Wellness_Encounter": { + "type": "EncounterEnd", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": true + }, + "distributions": [ + { + "transition": "Set_BP_Controlled", + "distribution": 0.342 + }, + { + "transition": "Delay_One_Month", + "distribution": 0.6579999999999999 + } + ] + }, + { + "distributions": [ + { + "transition": "Set_BP_Controlled", + "distribution": 0.363 + }, + { + "transition": "Delay_One_Month", + "distribution": 0.637 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": false + } + } + ] + }, + "Delay_One_Month": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "blood_pressure_controlled", + "operator": "==", + "value": true + }, + "transition": "Hypertension_Followup_Encounter" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": true + }, + "distributions": [ + { + "distribution": 0.322, + "transition": "Drop Outs" + }, + { + "distribution": 0.6779999999999999, + "transition": "Hypertension_Followup_Encounter" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": false + }, + "distributions": [ + { + "distribution": 0.267, + "transition": "Drop Outs" + }, + { + "distribution": 0.7330000000000001, + "transition": "Hypertension_Followup_Encounter" + } + ] + } + ] + }, + "Record_BP": { + "type": "MultiObservation", + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "85354-9", + "display": "Blood pressure panel with all children optional" + } + ], + "observations": [ + { + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic Blood Pressure" + } + ], + "unit": "mm[Hg]", + "vital_sign": "Systolic Blood Pressure" + }, + { + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "8462-4", + "display": "Diastolic Blood Pressure" + } + ], + "unit": "mm[Hg]", + "vital_sign": "Diastolic Blood Pressure" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "blood_pressure_controlled", + "operator": "==", + "value": false + }, + "transition": "Prescribe_Medication_2" + }, + { + "transition": "End_Hypertension_Followup_Encounter" + } + ] + }, + "Record_BP_2": { + "type": "MultiObservation", + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "85354-9", + "display": "Blood pressure panel with all children optional" + } + ], + "observations": [ + { + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic Blood Pressure" + } + ], + "unit": "mm[Hg]", + "vital_sign": "Systolic Blood Pressure" + }, + { + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "8462-4", + "display": "Diastolic Blood Pressure" + } + ], + "unit": "mm[Hg]", + "vital_sign": "Diastolic Blood Pressure" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "blood_pressure_controlled", + "operator": "==", + "value": false + }, + "transition": "Prescribe_Medication_3" + }, + { + "transition": "End_Hypertension_Followup_Encounter_2" + } + ] + }, + "Record_BP_3": { + "type": "MultiObservation", + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "85354-9", + "display": "Blood pressure panel with all children optional" + } + ], + "observations": [ + { + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic Blood Pressure" + } + ], + "unit": "mm[Hg]", + "vital_sign": "Systolic Blood Pressure" + }, + { + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "8462-4", + "display": "Diastolic Blood Pressure" + } + ], + "unit": "mm[Hg]", + "vital_sign": "Diastolic Blood Pressure" + } + ], + "conditional_transition": [ + { + "transition": "Referral To Hypertension Clinic", + "condition": { + "condition_type": "Attribute", + "attribute": "blood_pressure_controlled", + "operator": "==", + "value": false + } + }, + { + "transition": "End_Hypertension_Followup_Encounter_3" + } + ] + }, + "Referral To Hypertension Clinic": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183856001", + "display": "Referral to hypertension clinic (procedure)" + } + ], + "direct_transition": "End_Hypertension_Followup_Encounter_3" + }, + "Set_BP_Not Controlled": { + "type": "SetAttribute", + "attribute": "blood_pressure_controlled", + "direct_transition": "LifeStyle_Modifications_Hypertension_CarePlan", + "value": false + }, + "Delay 2_Month": { + "type": "Delay", + "exact": { + "quantity": 2, + "unit": "months" + }, + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "blood_pressure_controlled", + "operator": "==", + "value": true + }, + "transition": "Hypertension_Followup_Encounter_2" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": true + }, + "transition": "Hypertension_Followup_Encounter_2" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": false + }, + "distributions": [ + { + "transition": "Drop Outs", + "distribution": 0.322 + }, + { + "transition": "Hypertension_Followup_Encounter_2", + "distribution": 0.6779999999999999 + } + ] + } + ] + }, + "Delay_2_Month_2": { + "type": "Delay", + "exact": { + "quantity": 2, + "unit": "months" + }, + "direct_transition": "Hypertension_Followup_Encounter_3" + }, + "Set_BP_Controlled": { + "type": "SetAttribute", + "attribute": "blood_pressure_controlled", + "value": true, + "direct_transition": "Delay_One_Month" + }, + "Set_BP_Controlled_2": { + "type": "SetAttribute", + "attribute": "blood_pressure_controlled", + "value": true, + "direct_transition": "Delay 2_Month" + }, + "Set_BP_Controlled_3": { + "type": "SetAttribute", + "attribute": "blood_pressure_controlled", + "value": true, + "direct_transition": "Delay_2_Month_2" + }, + "Excluded": { + "type": "Simple", + "direct_transition": "Wait Until Next Checkup" + }, + "Prescribe_Medication_3": { + "type": "CallSubmodule", + "submodule": "medications/hypertension_medication", + "direct_transition": "End_Hypertension_Followup_Encounter_2" + }, + "Prescribe_Medication_2": { + "type": "CallSubmodule", + "submodule": "medications/hypertension_medication", + "direct_transition": "End_Hypertension_Followup_Encounter" + }, + "Prescribe_Medication": { + "type": "CallSubmodule", + "submodule": "medications/hypertension_medication", + "direct_transition": "End_Wellness_Encounter" + }, + "Terminal": { + "type": "Terminal" + }, + "Included": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Diagnose_Hypertension", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "hypertension", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "hypertension_dx", + "operator": "is nil" + } + ] + } + }, + { + "transition": "Wait Until Next Checkup" + } + ] + }, + "Wait Until Next Checkup": { + "type": "EncounterEnd", + "direct_transition": "Wellness_Encounter" + }, + "Drop Outs": { + "type": "Simple", + "direct_transition": "Terminal" + }, + "Hypertension_Screening_Reason": { + "type": "SetAttribute", + "attribute": "hypertension_screening_reason", + "direct_transition": "Set_Yearly_Risk", + "value_code": { + "system": "SNOMED-CT", + "code": "171222001", + "display": "Hypertension screening (procedure)" + } + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/hypertensive_renal_disease.json b/src/main/resources/modules/hypertensive_renal_disease.json new file mode 100644 index 0000000..7cd799c --- /dev/null +++ b/src/main/resources/modules/hypertensive_renal_disease.json @@ -0,0 +1,977 @@ +{ + "name": "Hypertensive Renal Disease", + "remarks": [ + "Hypertensive renal disease refers to kidney damage that occurs due to chronic high blood pressure.", + "Hypertension can damage blood vessels throughout the body, including the kidneys' glomeruli,", + "resulting in decreased kidney function and potentially leading to chronic kidney disease.", + "This module models hypertensive nephropathy as a complication of prolonged, uncontrolled hypertension.", + "Information on prevalence, progression, and treatment obtained from:", + "https://www.ncbi.nlm.nih.gov/books/NBK539877/", + "https://www.kidney.org/atoz/content/hbciri" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + "Hypertensive kidney disease affects approximately 2-5% of people with hypertension.", + "It is more common in older adults, African Americans, and those with poorly controlled hypertension." + ], + "direct_transition": "Guard_For_Hypertension" + }, + "Guard_For_Hypertension": { + "type": "Guard", + "allow": { + "condition_type": "Attribute", + "attribute": "hypertension", + "operator": "is not nil" + }, + "direct_transition": "Chronic_Hypertension_Check" + }, + "Chronic_Hypertension_Check": { + "type": "Delay", + "range": { + "low": 5, + "high": 15, + "unit": "years" + }, + "direct_transition": "Hypertensive_Renal_Disease_Probability" + }, + "Hypertensive_Renal_Disease_Probability": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Race", + "race": "Black" + }, + "distributions": [ + { + "distribution": 0.05, + "transition": "Hypertensive_Renal_Disease" + }, + { + "distribution": 0.95, + "transition": "Terminal" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.02, + "transition": "Hypertensive_Renal_Disease" + }, + { + "distribution": 0.98, + "transition": "Terminal" + } + ] + } + ] + }, + "Hypertensive_Renal_Disease": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "38481006", + "display": "Hypertensive renal disease (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I12.9", + "display": "Hypertensive chronic kidney disease with stage 1 through stage 4 chronic kidney disease, or unspecified chronic kidney disease" + } + ], + "direct_transition": "Set_CKD_Stage" + }, + "Set_CKD_Stage": { + "type": "SetAttribute", + "attribute": "ckd", + "value": 1, + "direct_transition": "Diagnosis_Encounter" + }, + "Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Hypertensive_Renal_Disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "BP_Measurement" + }, + "BP_Measurement": { + "type": "Observation", + "category": "vital-signs", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic blood pressure" + } + ], + "range": { + "low": 140, + "high": 180 + }, + "direct_transition": "Blood_Chemistry_Panel" + }, + "Blood_Chemistry_Panel": { + "type": "Procedure", + "reason": "Hypertensive_Renal_Disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "26604007", + "display": "Blood chemistry test (procedure)" + } + ], + "direct_transition": "Creatinine_Test" + }, + "Creatinine_Test": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 1.1, + "high": 1.5 + }, + "direct_transition": "BUN_Test" + }, + "BUN_Test": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 18, + "high": 30 + }, + "direct_transition": "eGFR_Test" + }, + "eGFR_Test": { + "type": "Observation", + "category": "laboratory", + "unit": "mL/min/{1.73_m2}", + "codes": [ + { + "system": "LOINC", + "code": "69405-9", + "display": "Glomerular filtration rate/1.73 sq M predicted among non-blacks [Volume Rate/Area] in Serum, Plasma or Blood by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 60, + "high": 89 + }, + "direct_transition": "Urinalysis" + }, + "Urinalysis": { + "type": "Procedure", + "reason": "Hypertensive_Renal_Disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "167217005", + "display": "Urine screening test (procedure)" + } + ], + "direct_transition": "Urine_Protein_Test" + }, + "Urine_Protein_Test": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "2888-6", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 15, + "high": 30 + }, + "direct_transition": "Renal_Ultrasound" + }, + "Renal_Ultrasound": { + "type": "Procedure", + "reason": "Hypertensive_Renal_Disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "309557009", + "display": "Kidney ultrasound (procedure)" + } + ], + "duration": { + "low": 15, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "HTN_Treatment_Intensification" + }, + "HTN_Treatment_Intensification": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "ACE_Inhibitor_Treatment" + }, + { + "distribution": 0.3, + "transition": "ARB_Treatment" + } + ] + }, + "ACE_Inhibitor_Treatment": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_inhibitor", + "reason": "Hypertensive_Renal_Disease", + "codes": [ + { + "system": "RxNorm", + "code": "1299896", + "display": "Lisinopril 10 MG Oral Tablet" + } + ], + "direct_transition": "Kidney_Disease_CarePlan" + }, + "ARB_Treatment": { + "type": "MedicationOrder", + "assign_to_attribute": "arb", + "reason": "Hypertensive_Renal_Disease", + "codes": [ + { + "system": "RxNorm", + "code": "321064", + "display": "Losartan 50 MG Oral Tablet" + } + ], + "direct_transition": "Kidney_Disease_CarePlan" + }, + "Kidney_Disease_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "kidney_careplan", + "reason": "Hypertensive_Renal_Disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "700568001", + "display": "Chronic kidney disease care plan (record artifact)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "229065009", + "display": "Exercise therapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "226234005", + "display": "Healthy diet (finding)" + }, + { + "system": "SNOMED-CT", + "code": "226060000", + "display": "Stress management (regime/therapy)" + } + ], + "direct_transition": "Patient_Education" + }, + "Patient_Education": { + "type": "Procedure", + "reason": "Hypertensive_Renal_Disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "61505006", + "display": "Patient education about their disease (procedure)" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Regular_Disease_Progression" + }, + "Regular_Disease_Progression": { + "type": "Delay", + "range": { + "low": 3, + "high": 6, + "unit": "months" + }, + "direct_transition": "Followup_Encounter" + }, + "Followup_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Hypertensive_Renal_Disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "CKD_Progression_Check" + }, + "CKD_Progression_Check": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 1 + }, + "transition": "Stage_1_Progression" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 2 + }, + "transition": "Stage_2_Progression" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 3 + }, + "transition": "Stage_3_Progression" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 4 + }, + "transition": "Stage_4_Progression" + }, + { + "transition": "Update_CKD_Tests" + } + ] + }, + "Stage_1_Progression": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.85, + "transition": "Update_CKD_Tests" + }, + { + "distribution": 0.15, + "transition": "Progress_To_Stage_2" + } + ] + }, + "Stage_2_Progression": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.80, + "transition": "Update_CKD_Tests" + }, + { + "distribution": 0.20, + "transition": "Progress_To_Stage_3" + } + ] + }, + "Stage_3_Progression": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.80, + "transition": "Update_CKD_Tests" + }, + { + "distribution": 0.20, + "transition": "Progress_To_Stage_4" + } + ] + }, + "Stage_4_Progression": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.75, + "transition": "Update_CKD_Tests" + }, + { + "distribution": 0.25, + "transition": "Progress_To_Stage_5" + } + ] + }, + "Progress_To_Stage_2": { + "type": "SetAttribute", + "attribute": "ckd", + "value": 2, + "direct_transition": "Update_CKD_Condition" + }, + "Progress_To_Stage_3": { + "type": "SetAttribute", + "attribute": "ckd", + "value": 3, + "direct_transition": "Update_CKD_Condition" + }, + "Progress_To_Stage_4": { + "type": "SetAttribute", + "attribute": "ckd", + "value": 4, + "direct_transition": "Update_CKD_Condition" + }, + "Progress_To_Stage_5": { + "type": "SetAttribute", + "attribute": "ckd", + "value": 5, + "direct_transition": "Update_CKD_Condition" + }, + "Update_CKD_Condition": { + "type": "ConditionEnd", + "condition_onset": "Hypertensive_Renal_Disease", + "direct_transition": "CKD_Stage_Assignment" + }, + "CKD_Stage_Assignment": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 2 + }, + "transition": "Hypertensive_CKD_Stage_2" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 3 + }, + "transition": "Hypertensive_CKD_Stage_3" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 4 + }, + "transition": "Hypertensive_CKD_Stage_4" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 5 + }, + "transition": "End_Hypertensive_CKD_Treatment" + } + ] + }, + "Hypertensive_CKD_Stage_2": { + "type": "ConditionOnset", + "target_encounter": "Followup_Encounter", + "assign_to_attribute": "hypertensive_kidney_disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "38481006", + "display": "Hypertensive renal disease (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I12.9", + "display": "Hypertensive chronic kidney disease with stage 1 through stage 4 chronic kidney disease, or unspecified chronic kidney disease" + } + ], + "direct_transition": "Update_CKD_Tests" + }, + "Hypertensive_CKD_Stage_3": { + "type": "ConditionOnset", + "target_encounter": "Followup_Encounter", + "assign_to_attribute": "hypertensive_kidney_disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "38481006", + "display": "Hypertensive renal disease (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I12.9", + "display": "Hypertensive chronic kidney disease with stage 1 through stage 4 chronic kidney disease, or unspecified chronic kidney disease" + } + ], + "direct_transition": "Add_Diuretic" + }, + "Add_Diuretic": { + "type": "MedicationOrder", + "assign_to_attribute": "diuretic", + "reason": "hypertensive_kidney_disease", + "codes": [ + { + "system": "RxNorm", + "code": "197730", + "display": "Hydrochlorothiazide 25 MG Oral Tablet" + } + ], + "direct_transition": "Update_CKD_Tests" + }, + "Hypertensive_CKD_Stage_4": { + "type": "ConditionOnset", + "target_encounter": "Followup_Encounter", + "assign_to_attribute": "hypertensive_kidney_disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "38481006", + "display": "Hypertensive renal disease (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I12.9", + "display": "Hypertensive chronic kidney disease with stage 1 through stage 4 chronic kidney disease, or unspecified chronic kidney disease" + } + ], + "direct_transition": "Nephrology_Referral" + }, + "Nephrology_Referral": { + "type": "Procedure", + "reason": "hypertensive_kidney_disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "3457005", + "display": "Patient referral to nephrologist (procedure)" + } + ], + "direct_transition": "Update_CKD_Tests" + }, + "Update_CKD_Tests": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 1 + }, + "transition": "CKD_Stage_1_Labs" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 2 + }, + "transition": "CKD_Stage_2_Labs" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 3 + }, + "transition": "CKD_Stage_3_Labs" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 4 + }, + "transition": "CKD_Stage_4_Labs" + } + ] + }, + "CKD_Stage_1_Labs": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.9, + "high": 1.3 + }, + "direct_transition": "CKD_Stage_1_eGFR" + }, + "CKD_Stage_1_eGFR": { + "type": "Observation", + "category": "laboratory", + "unit": "mL/min/{1.73_m2}", + "codes": [ + { + "system": "LOINC", + "code": "69405-9", + "display": "Glomerular filtration rate/1.73 sq M predicted among non-blacks [Volume Rate/Area] in Serum, Plasma or Blood by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 90, + "high": 110 + }, + "direct_transition": "CKD_Stage_1_Urine_Protein" + }, + "CKD_Stage_1_Urine_Protein": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "2888-6", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 15, + "high": 30 + }, + "direct_transition": "End_Followup_Encounter" + }, + "CKD_Stage_2_Labs": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 1.3, + "high": 1.8 + }, + "direct_transition": "CKD_Stage_2_eGFR" + }, + "CKD_Stage_2_eGFR": { + "type": "Observation", + "category": "laboratory", + "unit": "mL/min/{1.73_m2}", + "codes": [ + { + "system": "LOINC", + "code": "69405-9", + "display": "Glomerular filtration rate/1.73 sq M predicted among non-blacks [Volume Rate/Area] in Serum, Plasma or Blood by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 60, + "high": 89 + }, + "direct_transition": "CKD_Stage_2_Urine_Protein" + }, + "CKD_Stage_2_Urine_Protein": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "2888-6", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 30, + "high": 100 + }, + "direct_transition": "End_Followup_Encounter" + }, + "CKD_Stage_3_Labs": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 1.8, + "high": 3.0 + }, + "direct_transition": "CKD_Stage_3_eGFR" + }, + "CKD_Stage_3_eGFR": { + "type": "Observation", + "category": "laboratory", + "unit": "mL/min/{1.73_m2}", + "codes": [ + { + "system": "LOINC", + "code": "69405-9", + "display": "Glomerular filtration rate/1.73 sq M predicted among non-blacks [Volume Rate/Area] in Serum, Plasma or Blood by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 30, + "high": 59 + }, + "direct_transition": "CKD_Stage_3_Urine_Protein" + }, + "CKD_Stage_3_Urine_Protein": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "2888-6", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 100, + "high": 300 + }, + "direct_transition": "End_Followup_Encounter" + }, + "CKD_Stage_4_Labs": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 3.0, + "high": 5.0 + }, + "direct_transition": "CKD_Stage_4_eGFR" + }, + "CKD_Stage_4_eGFR": { + "type": "Observation", + "category": "laboratory", + "unit": "mL/min/{1.73_m2}", + "codes": [ + { + "system": "LOINC", + "code": "69405-9", + "display": "Glomerular filtration rate/1.73 sq M predicted among non-blacks [Volume Rate/Area] in Serum, Plasma or Blood by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 15, + "high": 29 + }, + "direct_transition": "CKD_Stage_4_Urine_Protein" + }, + "CKD_Stage_4_Urine_Protein": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "2888-6", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 300, + "high": 1000 + }, + "direct_transition": "End_Followup_Encounter" + }, + "End_Followup_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Regular_Disease_Progression" + }, + "End_Hypertensive_CKD_Treatment": { + "type": "ConditionEnd", + "condition_onset": "hypertensive_kidney_disease", + "direct_transition": "ESRD_Onset" + }, + "ESRD_Onset": { + "type": "ConditionOnset", + "target_encounter": "Followup_Encounter", + "assign_to_attribute": "esrd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "46177005", + "display": "End-stage renal disease (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I12.0", + "display": "Hypertensive chronic kidney disease with stage 5 chronic kidney disease or end stage renal disease" + } + ], + "direct_transition": "End_HTN_Renal_Medications" + }, + "End_HTN_Renal_Medications": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "ace_inhibitor", + "operator": "is not nil" + }, + "transition": "End_ACE_Inhibitor" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "arb", + "operator": "is not nil" + }, + "transition": "End_ARB" + } + ] + }, + "End_ACE_Inhibitor": { + "type": "MedicationEnd", + "referenced_by_attribute": "ace_inhibitor", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "diuretic", + "operator": "is not nil" + }, + "transition": "End_Diuretic" + }, + { + "transition": "End_Kidney_CarePlan" + } + ] + }, + "End_ARB": { + "type": "MedicationEnd", + "referenced_by_attribute": "arb", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "diuretic", + "operator": "is not nil" + }, + "transition": "End_Diuretic" + }, + { + "transition": "End_Kidney_CarePlan" + } + ] + }, + "End_Diuretic": { + "type": "MedicationEnd", + "referenced_by_attribute": "diuretic", + "direct_transition": "End_Kidney_CarePlan" + }, + "End_Kidney_CarePlan": { + "type": "CarePlanEnd", + "referenced_by_attribute": "kidney_careplan", + "direct_transition": "RRT_Decision" + }, + "RRT_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Dialysis_Referral" + }, + { + "distribution": 0.3, + "transition": "Death_From_ESRD" + } + ] + }, + "Dialysis_Referral": { + "type": "Procedure", + "reason": "esrd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "103699006", + "display": "Patient referral for dialysis (procedure)" + } + ], + "direct_transition": "End_ESRD_Encounter" + }, + "Death_From_ESRD": { + "type": "Death", + "range": { + "low": 1, + "high": 12, + "unit": "months" + }, + "condition_onset": "esrd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399159008", + "display": "Death from end stage renal disease (finding)" + } + ], + "direct_transition": "Terminal" + }, + "End_ESRD_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/hypothyroidism.json b/src/main/resources/modules/hypothyroidism.json new file mode 100644 index 0000000..e037d2f --- /dev/null +++ b/src/main/resources/modules/hypothyroidism.json @@ -0,0 +1,245 @@ +{ + "name": "Hypothyroidism", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age delay" + }, + "Terminal": { + "type": "Terminal" + }, + "Age delay": { + "type": "Delay", + "range": { + "low": 50, + "high": 75, + "unit": "years" + }, + "remarks": [ + "common onset of primary atrophic hypothyroidism does not occer till after 50 years of age.", + "" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "Hypothyroid symptom", + "distribution": 0.048 + }, + { + "transition": "Terminal", + "distribution": 0.952 + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "transition": "Hypothyroid symptom", + "distribution": 0.009 + }, + { + "transition": "Terminal", + "distribution": 0.991 + } + ] + } + ] + }, + "Hypothyroid symptoms": { + "type": "Symptom", + "symptom": "fatigue", + "cause": "", + "exact": { + "quantity": 1 + }, + "direct_transition": "Hypothyroidism followup encounter" + }, + "Hypothyroid Condition Onset": { + "type": "ConditionOnset", + "assign_to_attribute": "hypothyroidism", + "target_encounter": "Hypothyroidism followup encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "83664006", + "display": "Idiopathic atrophic hypothyroidism (disorder)" + } + ], + "direct_transition": "Hypothyroidism Encounter Workup" + }, + "Hypothyroidism Encounter Workup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "hypothyroidism", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "fT4 panel results" + }, + "Hypothyroid symptom": { + "type": "Symptom", + "symptom": "cold intolerance", + "cause": "", + "exact": { + "quantity": 1 + }, + "direct_transition": "Hypothyroidism" + }, + "Hypothyroidism": { + "type": "Symptom", + "symptom": "decreased appetite", + "cause": "", + "exact": { + "quantity": 1 + }, + "direct_transition": "hypothyroidism" + }, + "hypothyroidism": { + "type": "Symptom", + "symptom": "weight gain", + "cause": "", + "exact": { + "quantity": 1 + }, + "direct_transition": "Hypothyroid Condition Onset" + }, + "Hypothyroidism followup encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "hypothyroidism", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Synthroid Medication Order" + }, + "encounter time delay": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "direct_transition": "Hypothyroid symptoms" + }, + "encounter end": { + "type": "EncounterEnd", + "direct_transition": "encounter time delay" + }, + "fT4 panel results": { + "type": "Observation", + "category": "laboratory", + "unit": "ng/dl", + "codes": [ + { + "system": "LOINC", + "code": "3024-7", + "display": "Thyroxine (T4) free [Mass/volume] in Serum or Plasma" + } + ], + "direct_transition": "TSH panel result", + "range": { + "low": 0.1, + "high": 0.4 + } + }, + "TSH panel result": { + "type": "Observation", + "category": "laboratory", + "unit": "m[IU]/L", + "codes": [ + { + "system": "LOINC", + "code": "3016-3", + "display": "Thyrotropin [Units/volume] in Serum or Plasma" + } + ], + "direct_transition": "encounter end", + "range": { + "low": 2, + "high": 5 + } + }, + "Synthroid Medication Order": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 966222, + "display": "Levothyroxine Sodium 0.075 MG Oral Tablet" + } + ], + "direct_transition": "end encounter", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 60, + "unit": "days" + }, + "duration": { + "quantity": 60, + "unit": "days" + }, + "refills": 6 + } + }, + "end encounter": { + "type": "EncounterEnd", + "distributed_transition": [ + { + "transition": "Check_Anemia_Exist", + "distribution": 0.43 + }, + { + "transition": "Terminal", + "distribution": 0.57 + } + ], + "remarks": [ + "Anemia prevalence was 43% in the hypothyroid group - " + ] + }, + "Anemia_Submodule": { + "type": "CallSubmodule", + "submodule": "anemia/anemia_sub", + "direct_transition": "Terminal" + }, + "Check_Anemia_Exist": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Anemia_Submodule", + "condition": { + "condition_type": "Attribute", + "attribute": "anemia", + "operator": "is nil" + } + }, + { + "transition": "Terminal" + } + ] + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/injuries.json b/src/main/resources/modules/injuries.json new file mode 100644 index 0000000..6f5dd1a --- /dev/null +++ b/src/main/resources/modules/injuries.json @@ -0,0 +1,3077 @@ +{ + "name": "Injuries", + "remarks": [ + "This module waits for an injury to occur then plays out that injury's typical ", + "progress in a patient's medical record. Some injuries may be both fatal or ", + "non-fatal.", + "Incidence is complicated. There are a lot of variables that play into incidence including ", + "age, gender, race, socioeconomic status, etc. I made some simplifications for now that we can ", + "adjust later if the prevalence is glaringly inaccurate. For now, I assume:", + "1. Men and women get injured at the same rates (not true in all cases...) ", + "2. Race and socioeconomic status don't significantly affect injury rates (they probably do...) ", + "3. A person can't have multiple injuries at the same time (in reality, they can...) ", + "Supported injury types are: ", + "1. 'spinal' - injuries to the spinal cord or fractures of the spine ", + "2. 'gunshot' - gunshot wounds ", + "3. 'concussion' - common concussion from accidents, falls, and sports ", + "4. 'whiplash' - common injury in automobile accidents, falls, and sports ", + "5. 'broken_bone' - randomly selects between collarbone, arm, wrist, hip, and ankle (top 5)", + "6. 'burn' - 1st, 2nd, or 3rd degree burns ", + "7. 'laceration' - randomly selects between hand, foot, face, arm, and leg ", + "8. 'sprain' - a sprained ankle or wrist ", + "9. 'knee' - a torn ligament (ACL, MCL, meniscus) ", + "10. 'shoulder' - a torn rotator cuff ", + "11. 'broken jaw' - broken jaw", + "Sources are included throughout the module where supplemental information was needed.", + "Every injury pathway in this module assigns a care plan for the patient. This care ", + "plan is referenced by the 'injury_careplan' attribute and is ended at the conclusion ", + "of the injury.", + "Injury pathways may also prescribe a medication and assign it to one of these attributes: ", + "1. 'opioid_prescription' ", + "2. 'otc_pain_reliever' ", + "3. 'antibiotic_prescription' ", + "Any medication order with one of these attributes will be automatically ended at the ", + "conclusion of the injury. Be sure to only assign one medication to each of these ", + "attributes in a given injury pathway to avoid conflict. Opioid prescriptions will be handled ", + "and ended by the Opioid Addiction module." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Wait_For_Injury" + }, + "Wait_For_Injury": { + "type": "Delay", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + "We give patients the opportunity to get injured about once per year. The range ", + "here is inteded to introduce some randomness to the data so patients aren't all ", + "getting injured on the same day each year.", + "Distributions of injuries are initially based on the 2015 U.S. resident population (308.75M) and the ", + "following incidence rates: ", + "Spinal: 0.000153 http://www.boneandjointburden.org/2014-report/iiia12/traumatic-spine-fractures", + "Gunshots: 0.000318 http://smartgunlaws.org/gun-deaths-and-injuries-statistics/", + "Concussions: 0.005100 https://www.cdc.gov/traumaticbraininjury/pdf/tbi_report_to_congress_epi_and_rehab-a.pdf", + "Whiplash: 0.004780 http://www.srisd.com/consumer_site/epidemiology.htm (This may be an overestimate)", + "Broken bones: 0.058300 http://www.boneandjointburden.org/docs/By%20The%20Numbers%20-%20MSK%20Injuries.pdf", + "Burns: 0.003980 http://www.burnfoundation.org/programs/resource.cfm?c=2&a=6", + "Lacerations: 0.026100 (see broken bones, above)", + "Sprains: 0.054400 https://www.ncbi.nlm.nih.gov/pubmed/20926721", + "Knees: 0.002290 https://www.ncbi.nlm.nih.gov/pubmed/22506941", + "Shoulders: 0.001470 http://rheumatology.oxfordjournals.org/content/45/2/215.full", + "From these estimates the incidences may be adjusted slightly (see notes when a rate is adjusted) ", + "to yield reasonable prevalences." + ], + "range": { + "low": 10, + "high": 14, + "unit": "months" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 18, + "unit": "years" + }, + "transition": "Child_Incidence_Rates" + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 65, + "unit": "years" + }, + "transition": "Adult_Incidence_Rates" + }, + { + "condition": { + "condition_type": "Age", + "operator": ">", + "quantity": 65, + "unit": "years" + }, + "transition": "Elderly_Incidence_Rates" + } + ] + }, + "Child_Incidence_Rates": { + "type": "Simple", + "remarks": [ + "The incidence rates for children (0 - 17)." + ], + "distributed_transition": [ + { + "distribution": 0.000153, + "transition": "Spinal_Injury" + }, + { + "distribution": 0.000318, + "transition": "Gunshot_Injury" + }, + { + "distribution": 0.0101, + "transition": "Concussion_Injury", + "remarks": [ + "Our initial estimate for concussions seem too low. Since most concussion injuries ", + "happen in sports and children are more likely to get concussions (for this reason) ", + "doubling the concussion rate for children from 0.0051 --> 0.0101." + ] + }, + { + "distribution": 0.00478, + "transition": "Whiplash_Injury" + }, + { + "distribution": 0.025, + "transition": "Broken_Bone_Injury", + "remarks": [ + "Children get broken bones far more often than adults. To make a patient's record ", + "realistic I still cut the original probability in half from 0.0583 --> 0.025 " + ] + }, + { + "distribution": 0.00398, + "transition": "Burn_Injury" + }, + { + "distribution": 0.015, + "transition": "Laceration_Injury" + }, + { + "distribution": 0.025, + "remarks": [ + "Sprains are slightly more likely in kids." + ], + "transition": "Sprain_Injury" + }, + { + "distribution": 0.00229, + "transition": "Knee_Injury" + }, + { + "distribution": 0.00147, + "transition": "Shoulder_Injury" + }, + { + "distribution": 0.000159184, + "transition": "Broken Jaw", + "remarks": [ + "The GMF's distributed transition will take this transition and automatically adjust the distribution ", + "out of 1.0 if none of the other transitions are taken, see: ", + "https://github.com/synthetichealth/synthea/wiki/Generic-Module-Framework%3A-Transitions#distributed" + ] + }, + { + "transition": "Wait_For_Injury", + "distribution": 0.911749816 + } + ] + }, + "Adult_Incidence_Rates": { + "type": "Simple", + "remarks": [ + "The incidence rates for adults (18 - 65)." + ], + "distributed_transition": [ + { + "distribution": 0.000153, + "transition": "Spinal_Injury" + }, + { + "distribution": 0.000318, + "transition": "Gunshot_Injury" + }, + { + "distribution": 0.00765, + "transition": "Concussion_Injury", + "remarks": [ + "Adults are likely to get concussions from sports, work-related accidents, and ", + "motor vehicle accidents. Increasing the incidence in adults by 1.5 from ", + "0.0051 --> 0.00765" + ] + }, + { + "distribution": 0.00478, + "transition": "Whiplash_Injury" + }, + { + "distribution": 0.007, + "transition": "Broken_Bone_Injury", + "remarks": [ + "Adults break fewer bones than children or the elderly. Shifting incidence away ", + "from adults towards children. Reducing this incidence by a factor of 8 from ", + "0.0583 --> 0.007 " + ] + }, + { + "distribution": 0.00398, + "transition": "Burn_Injury" + }, + { + "distribution": 0.015, + "transition": "Laceration_Injury" + }, + { + "distribution": 0.0125, + "transition": "Sprain_Injury" + }, + { + "distribution": 0.00229, + "transition": "Knee_Injury" + }, + { + "distribution": 0.00147, + "transition": "Shoulder_Injury" + }, + { + "distribution": 0.001034694, + "transition": "Broken Jaw", + "remarks": [ + "The GMF's distributed transition will take this transition and automatically adjust the distribution ", + "out of 1.0 if none of the other transitions are taken, see: ", + "https://github.com/synthetichealth/synthea/wiki/Generic-Module-Framework%3A-Transitions#distributed" + ] + }, + { + "transition": "Wait_For_Injury", + "distribution": 0.943824306 + } + ] + }, + "Elderly_Incidence_Rates": { + "type": "Simple", + "remarks": [ + "The incidence rates for elderly (65+)." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "osteoporosis", + "operator": "==", + "value": true + }, + "distributions": [ + { + "distribution": 0.000153, + "transition": "Spinal_Injury" + }, + { + "distribution": 0.000318, + "transition": "Gunshot_Injury" + }, + { + "distribution": 0.0051, + "transition": "Concussion_Injury" + }, + { + "distribution": 0.00478, + "transition": "Whiplash_Injury" + }, + { + "distribution": { + "attribute": "probability_of_fall_injury", + "default": 0.06 + }, + "remarks": [ + "Highest probability for elderly with osteoporosis.", + "see also http://www.shef.ac.uk/FRAX/charts.aspx", + "10-yr probability of major fracture varies significantly based on age & bone density", + "assume a medium risk of 40% chance over 10 years ~~> 6% chance per yr" + ], + "transition": "Broken_Bone_Injury" + }, + { + "distribution": 0.00398, + "transition": "Burn_Injury" + }, + { + "distribution": 0.015, + "transition": "Laceration_Injury" + }, + { + "distribution": 0.0125, + "transition": "Sprain_Injury" + }, + { + "distribution": 0.00229, + "transition": "Knee_Injury" + }, + { + "distribution": 0.00147, + "transition": "Shoulder_Injury" + }, + { + "distribution": 0.000212245, + "transition": "Broken Jaw", + "remarks": [ + "The GMF's distributed transition will take this transition and automatically adjust the distribution ", + "out of 1.0 if none of the other transitions are taken, see: ", + "https://github.com/synthetichealth/synthea/wiki/Generic-Module-Framework%3A-Transitions#distributed" + ] + }, + { + "transition": "Wait_For_Injury", + "distribution": 0.8941967550000001 + } + ] + }, + { + "remarks": [ + "elderly patients who do not have osteoporosis" + ], + "distributions": [ + { + "distribution": 0.000153, + "transition": "Spinal_Injury" + }, + { + "distribution": 0.000318, + "transition": "Gunshot_Injury" + }, + { + "distribution": 0.0051, + "transition": "Concussion_Injury" + }, + { + "distribution": 0.00478, + "transition": "Whiplash_Injury" + }, + { + "distribution": { + "attribute": "probability_of_fall_injury", + "default": 0.035 + }, + "remarks": [ + "Retain high probability for elderly - reduced somewhat here since these are the patients without osteoporosis" + ], + "transition": "Broken_Bone_Injury" + }, + { + "distribution": 0.00398, + "transition": "Burn_Injury" + }, + { + "distribution": 0.015, + "transition": "Laceration_Injury" + }, + { + "distribution": 0.0125, + "transition": "Sprain_Injury" + }, + { + "distribution": 0.00229, + "transition": "Knee_Injury" + }, + { + "distribution": 0.00147, + "transition": "Shoulder_Injury" + }, + { + "distribution": 0.000106122, + "transition": "Broken Jaw", + "remarks": [ + "The GMF's distributed transition will take this transition and automatically adjust the distribution ", + "out of 1.0 if none of the other transitions are taken, see: ", + "https://github.com/synthetichealth/synthea/wiki/Generic-Module-Framework%3A-Transitions#distributed" + ] + }, + { + "transition": "Wait_For_Injury", + "distribution": 0.9193028780000001 + } + ] + } + ] + }, + "Spinal_Injury": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Spinal_Injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "262521009", + "display": "Traumatic injury of spinal cord and/or vertebral column (disorder)" + } + ], + "direct_transition": "ED_Visit_For_Spinal_Injury", + "remarks": [ + "======================================================================", + " SPINAL INJURY ", + "======================================================================", + "Further supported by the following incidence statistics (from 2010): ", + "http://www.boneandjointburden.org/2014-report/iiia12/traumatic-spine-fractures ", + "16 - 25% of spinal fractures result in neurological damage. This aligns with ", + "The incidence of spinal cord injury folowing a spinal fracture. For simplicity ", + "All spinal fractures with spinal cord damage also result in neurological damage." + ] + }, + "ED_Visit_For_Spinal_Injury": { + "type": "Encounter", + "encounter_class": "emergency", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "distributed_transition": [ + { + "transition": "Spinal_Cord_Damage", + "distribution": 0.25 + }, + { + "transition": "No_Spinal_Cord_Damage", + "distribution": 0.75 + } + ], + "reason": "Spinal_Injury" + }, + "Spinal_Injury_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "injury_careplan", + "reason": "spinal_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "75162002", + "display": "Spinal cord injury rehabilitation (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "77476009", + "display": "Application of back brace (procedure)" + } + ], + "direct_transition": "Delay_After_Spinal_Surgery" + }, + "Spinal_Cord_Damage": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Spinal_Injury", + "assign_to_attribute": "spinal_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1734006", + "display": "Fracture of vertebral column with spinal cord injury (disorder)" + } + ], + "distributed_transition": [ + { + "distribution": 0.49, + "remarks": [ + "Nearly half of all patients die from traumatic spinal cord injury. ", + "Source: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3831332/" + ], + "transition": "Death_Spinal_Cord" + }, + { + "distribution": 0.51, + "transition": "Neurological_Damage" + } + ] + }, + "Neurological_Damage": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Spinal_Injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698754002", + "display": "Chronic paralysis due to lesion of spinal cord (disorder)" + } + ], + "direct_transition": "Wheelchair for Spine" + }, + "No_Spinal_Cord_Damage": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Spinal_Injury", + "assign_to_attribute": "spinal_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "15724005", + "display": "Fracture of vertebral column without spinal cord injury (disorder)" + } + ], + "direct_transition": "Spinal_Injury_CarePlan" + }, + "Spinal_Surgery": { + "type": "Procedure", + "reason": "spinal_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305425002", + "display": "Admission to neurosurgical department (procedure)" + } + ], + "direct_transition": "Spinal_Injury_CarePlan" + }, + "Spinal_Injury_Treatment_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "spinal_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Spinal_Injury_Prescribe_Opioid" + }, + "Spinal_Injury_Prescribe_Opioid": { + "type": "CallSubmodule", + "submodule": "medications/moderate_opioid_pain_reliever", + "direct_transition": "End_Spinal_Injury_Encounter" + }, + "End_Spinal_Injury_Encounter": { + "type": "EncounterEnd", + "direct_transition": "SNF_0" + }, + "Spinal_Treatment_Period": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "months" + }, + "direct_transition": "Spinal_Injury_Followup" + }, + "Spinal_Injury_Followup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "spinal_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "direct_transition": "End_Spinal_Injury" + }, + "End_Spinal_Injury": { + "type": "ConditionEnd", + "remarks": [ + "This only ends the initial, acute spinal injury. If the patient had spinal ", + "cord damage and survived, his/her chronic paralysis will persist for life." + ], + "referenced_by_attribute": "spinal_injury", + "direct_transition": "End_Spinal_Injury_Onset" + }, + "End_Spinal_Injury_Followup": { + "type": "EncounterEnd", + "direct_transition": "Conclude_Injury" + }, + "Gunshot_Injury": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Gunshot_Injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "283545005", + "display": "Gunshot wound (disorder)" + } + ], + "direct_transition": "ED_Visit_For_Gunshot_Injury", + "remarks": [ + "======================================================================", + " GUNSHOT INJURY ", + "======================================================================", + "Further supported by the following statistics (2010): ", + "http://smartgunlaws.org/gun-deaths-and-injuries-statistics/", + "Gunshot deaths: 31,076 => 29.8%", + "Non-fatal hospital discharges: 73,505 => 70.2%", + "Total gunshot injuries: 104,581" + ] + }, + "ED_Visit_For_Gunshot_Injury": { + "type": "Encounter", + "encounter_class": "emergency", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "Gunshot_Wound", + "reason": "Gunshot_Injury" + }, + "Gunshot_Wound": { + "type": "ConditionOnset", + "assign_to_attribute": "gunshot_wound", + "target_encounter": "ED_Visit_For_Gunshot_Injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "262574004", + "display": "Bullet wound (disorder)" + } + ], + "distributed_transition": [ + { + "distribution": 0.298, + "transition": "Death_Gunshot_Wound" + }, + { + "distribution": 0.702, + "transition": "Gunshot_Injury_Treatment" + } + ] + }, + "Gunshot_Injury_Treatment": { + "type": "Simple", + "remarks": [ + "This is an aribitrary distribution between wounds requiring surgery ", + "and wounds that do not (just grazed by the bullet). Assuming that most ", + "gunshot wounds will require surgery." + ], + "distributed_transition": [ + { + "distribution": 0.85, + "transition": "Gunshot_Wound_Surgery" + }, + { + "distribution": 0.15, + "transition": "Gunshot_Wound_CarePlan" + } + ] + }, + "Gunshot_Wound_Surgery": { + "type": "Procedure", + "reason": "Gunshot_Wound", + "duration": { + "low": 1, + "high": 4, + "unit": "hours" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "305433001", + "display": "Admission to trauma surgery department (procedure)" + } + ], + "direct_transition": "Gunshot_Wound_Prescribe_Pain_Medication" + }, + "Gunshot_Wound_Prescribe_Pain_Medication": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Gunshot_Wound_Prescribe_Opioid" + }, + { + "distribution": 0.3, + "transition": "Gunshot_Wound_Prescribe_Non_Opioid" + } + ] + }, + "Gunshot_Wound_Prescribe_Opioid": { + "type": "CallSubmodule", + "submodule": "medications/moderate_opioid_pain_reliever", + "direct_transition": "Gunshot_Wound_Prescribe_Non_Opioid" + }, + "Gunshot_Wound_Prescribe_Non_Opioid": { + "type": "CallSubmodule", + "submodule": "medications/otc_pain_reliever", + "direct_transition": "Gunshot_Wound_CarePlan" + }, + "Gunshot_Wound_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "injury_careplan", + "reason": "Gunshot_Wound", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225358003", + "display": "Wound care (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "385949008", + "display": "Dressing change management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "439830001", + "display": "Behavior to prevent infection (observable entity)" + } + ], + "direct_transition": "End_Gunshot_Encounter" + }, + "End_Gunshot_Encounter": { + "type": "EncounterEnd", + "direct_transition": "SNF" + }, + "Gunshot_Wound_Healing_Period": { + "type": "Delay", + "range": { + "low": 1, + "high": 4, + "unit": "months" + }, + "direct_transition": "Gunshot_Injury_Followup" + }, + "Gunshot_Injury_Followup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Gunshot_Wound", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "direct_transition": "Gunshot_Wound_Ends" + }, + "Gunshot_Wound_Ends": { + "type": "ConditionEnd", + "condition_onset": "Gunshot_Wound", + "direct_transition": "End_Gunshot_Injury_Onset" + }, + "End_Gunshot_Followup": { + "type": "EncounterEnd", + "direct_transition": "Conclude_Injury" + }, + "Concussion_Injury": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Concussion", + "codes": [ + { + "system": "SNOMED-CT", + "code": "110030002", + "display": "Concussion injury of brain (disorder)" + } + ], + "direct_transition": "ED_Visit_For_Concussion", + "remarks": [ + "======================================================================", + " CONCUSSION ", + "======================================================================", + "Further supported by the following CDC reports: ", + "http://www.cdc.gov/traumaticbraininjury/data/rates.html", + "https://www.cdc.gov/traumaticbraininjury/pdf/tbi_report_to_congress_epi_and_rehab-a.pdf", + "http://www.cdc.gov/traumaticbraininjury/pdf/bluebook_factsheet-a.pdf" + ] + }, + "ED_Visit_For_Concussion": { + "type": "Encounter", + "encounter_class": "emergency", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.75, + "transition": "Mild_Concussion" + }, + { + "distribution": 0.2, + "transition": "Moderate_Concussion" + }, + { + "distribution": 0.05, + "transition": "Severe_Concussion" + } + ], + "reason": "Concussion_Injury" + }, + "Mild_Concussion": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Concussion", + "assign_to_attribute": "concussion_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "62106007", + "display": "Concussion with no loss of consciousness (disorder)" + } + ], + "direct_transition": "Concussion_CarePlan" + }, + "Moderate_Concussion": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Concussion", + "assign_to_attribute": "concussion_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "62564004", + "display": "Concussion with loss of consciousness (disorder)" + } + ], + "direct_transition": "Concussion_CarePlan" + }, + "Severe_Concussion": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Concussion", + "assign_to_attribute": "concussion_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "110030002", + "display": "Concussion injury of brain (disorder)" + } + ], + "remarks": [ + "Distributions based on this article: ", + "http://www.cdc.gov/traumaticbraininjury/severe.html" + ], + "distributed_transition": [ + { + "distribution": 0.57, + "transition": "Concussion_CarePlan" + }, + { + "distribution": 0.33, + "transition": "Permanent_Brain_Damage" + }, + { + "distribution": 0.1, + "transition": "Death_Severe_Concussion" + } + ] + }, + "Permanent_Brain_Damage": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Concussion", + "remarks": [ + "There will never be a ConditionEnd for this state - this brain damage is permanent." + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "127294003", + "display": "Traumatic or nontraumatic brain injury (disorder)" + } + ], + "direct_transition": "Concussion_CarePlan" + }, + "Concussion_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "injury_careplan", + "reason": "concussion_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "47387005", + "display": "Head injury rehabilitation (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "183051005", + "display": "Recommendation to rest (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "226138001", + "display": "Alcohol-free diet (finding)" + } + ], + "direct_transition": "End_Concussion_Encounter" + }, + "End_Concussion_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Concussion_Recovery_Period" + }, + "Concussion_Recovery_Period": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "months" + }, + "direct_transition": "Concussion_Injury_Followup" + }, + "Concussion_Injury_Followup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "concussion_injury", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "direct_transition": "End_Concussion_Injury" + }, + "End_Concussion_Injury": { + "type": "ConditionEnd", + "referenced_by_attribute": "concussion_injury", + "direct_transition": "End_Concussion_Injury_Onset" + }, + "End_Concussion_Followup": { + "type": "EncounterEnd", + "direct_transition": "Conclude_Injury" + }, + "Whiplash_Injury": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Whiplash", + "codes": [ + { + "system": "SNOMED-CT", + "code": "90460009", + "display": "Injury of neck (disorder)" + } + ], + "direct_transition": "ED_Visit_For_Whiplash", + "remarks": [ + "======================================================================", + " WHIPLASH ", + "======================================================================", + "Further supported by the following sources: ", + "http://www.srisd.com/consumer_site/epidemiology.htm", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2564031/", + "Many whiplash injuries do not present themselves immediately and are not ", + "treated by an emergency department. If they're ever addressed at all they ", + "are treated in an ambulatory setting by a PCP. For simplicity however, all ", + "of the whiplash injuries seen in this module are treated by an ED department." + ] + }, + "ED_Visit_For_Whiplash": { + "type": "Encounter", + "encounter_class": "emergency", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "Whiplash", + "reason": "Whiplash_Injury" + }, + "Whiplash": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Whiplash", + "codes": [ + { + "system": "SNOMED-CT", + "code": "39848009", + "display": "Whiplash injury to neck (disorder)" + } + ], + "direct_transition": "Whiplash_Injury_Prescribe_Non_Opioid" + }, + "Whiplash_Injury_Prescribe_Non_Opioid": { + "type": "CallSubmodule", + "submodule": "medications/otc_pain_reliever", + "direct_transition": "Whiplash_CarePlan" + }, + "Whiplash_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "injury_careplan", + "reason": "Whiplash", + "codes": [ + { + "system": "SNOMED-CT", + "code": "408869004", + "display": "Musculoskeletal care (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "266694003", + "display": "Heat therapy (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "183051005", + "display": "Recommendation to rest (procedure)" + } + ], + "direct_transition": "End_Whiplash_Encounter" + }, + "End_Whiplash_Encounter": { + "type": "EncounterEnd", + "direct_transition": "SNF_1" + }, + "Whiplash_Recovery_Period": { + "type": "Delay", + "range": { + "low": 3, + "high": 6, + "unit": "weeks" + }, + "direct_transition": "End_Whiplash_Injury" + }, + "End_Whiplash_Injury": { + "type": "ConditionEnd", + "condition_onset": "Whiplash", + "direct_transition": "End_Whiplash_Injury_Onset" + }, + "Broken_Bone_Injury": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Broken_Bone", + "codes": [ + { + "system": "SNOMED-CT", + "code": "125605004", + "display": "Fracture of bone (disorder)" + } + ], + "direct_transition": "ED_Visit_For_Broken_Bone", + "remarks": [ + "======================================================================", + " BROKEN BONE ", + "======================================================================", + "Further supported by the following sources: ", + "Most commonly broken bones: https://askabiologist.asu.edu/how-bone-breaks" + ] + }, + "ED_Visit_For_Broken_Bone": { + "type": "Encounter", + "encounter_class": "emergency", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "Broken_Bone", + "reason": "Broken_Bone_Injury" + }, + "Broken_Bone": { + "type": "Simple", + "remarks": [ + "A reasonable distribution of broken bones. Based on a Top 5 list: ", + "1. Clavicle ", + "2. Arm ", + "3. Wrist ", + "4. Hip (but this occurs mostly in older women with osteoporosis) ", + "5. Ankle " + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "osteoporosis", + "operator": "==", + "value": true + }, + "remarks": [ + "For the year 2000, there were an estimated 9 million new osteoporotic fractures, ", + "of which 1.6 million were at the hip, 1.7 million were at the forearm ", + "and 1.4 million were clinical vertebral fractures. ", + "-- https://www.iofbonehealth.org/facts-statistics", + "1.6 / 9 == 18%, 1.7/9 == 19%. ", + "4.7 million not included in that stat, so we assume the distribution of the rest" + ], + "distributions": [ + { + "distribution": 0.1, + "transition": "Broken_Clavicle" + }, + { + "distribution": 0.415, + "transition": "Broken_Arm", + "remarks": [ + ".225 normally + .19 new" + ] + }, + { + "distribution": 0.1, + "transition": "Broken_Wrist" + }, + { + "distribution": 0.1, + "transition": "Broken_Ankle" + }, + { + "distribution": 0.05, + "transition": "Broken_Rib" + }, + { + "distribution": 0.23, + "transition": "Broken_Hip", + "remarks": [ + ".05 below + .18 new" + ] + } + ] + }, + { + "distributions": [ + { + "distribution": 0.225, + "transition": "Broken_Clavicle" + }, + { + "distribution": 0.225, + "transition": "Broken_Arm" + }, + { + "distribution": 0.2, + "transition": "Broken_Wrist" + }, + { + "distribution": 0.2, + "transition": "Broken_Ankle" + }, + { + "distribution": 0.1, + "transition": "Broken_Rib" + }, + { + "distribution": 0.05, + "transition": "Broken_Hip" + } + ] + } + ] + }, + "Broken_Clavicle": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Broken_Bone", + "assign_to_attribute": "broken_bone", + "codes": [ + { + "system": "SNOMED-CT", + "code": "58150001", + "display": "Fracture of clavicle (disorder)" + } + ], + "direct_transition": "Clavicle_X_Ray" + }, + "Clavicle_X_Ray": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "168594001", + "display": "Plain X-ray of clavicle (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "51299004", + "display": "Bone structure of clavicle (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "DX", + "display": "Digital Radiography" + }, + "instances": [ + { + "title": "Image of clavicle", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.1", + "display": "Digital X-Ray Image Storage" + } + } + ] + } + ], + "direct_transition": "Broken_Bone_Surgery" + }, + "Broken_Arm": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Broken_Bone", + "assign_to_attribute": "broken_bone", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65966004", + "display": "Fracture of forearm (disorder)" + } + ], + "direct_transition": "Arm_X_Ray" + }, + "Arm_X_Ray": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "713026007", + "display": "Plain X-ray of humerus (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "40983000", + "display": "Structure of upper extremity between shoulder and elbow (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "DX", + "display": "Digital Radiography" + }, + "instances": [ + { + "title": "Image of arm", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.1", + "display": "Digital X-Ray Image Storage" + } + } + ] + } + ], + "direct_transition": "Broken_Bone_Immobilization" + }, + "Broken_Wrist": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Broken_Bone", + "assign_to_attribute": "broken_bone", + "codes": [ + { + "system": "SNOMED-CT", + "code": "263102004", + "display": "Fracture subluxation of wrist (disorder)" + } + ], + "direct_transition": "Wrist_X_Ray" + }, + "Wrist_X_Ray": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "713024005", + "display": "Plain X-ray of wrist region (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "8205005", + "display": "Wrist region structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "DX", + "display": "Digital Radiography" + }, + "instances": [ + { + "title": "Image of wrist", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.1", + "display": "Digital X-Ray Image Storage" + } + } + ] + } + ], + "direct_transition": "Broken_Bone_Immobilization" + }, + "Broken_Ankle": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Broken_Bone", + "assign_to_attribute": "broken_bone", + "codes": [ + { + "system": "SNOMED-CT", + "code": "16114001", + "display": "Fracture of ankle (disorder)" + } + ], + "direct_transition": "Ankle_X_Ray" + }, + "Ankle_X_Ray": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "1290459008", + "display": "Plain X-ray of ankle region (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "344001", + "display": "Ankle region structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "DX", + "display": "Digital Radiography" + }, + "instances": [ + { + "title": "Image of ankle", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.1", + "display": "Digital X-Ray Image Storage" + } + } + ] + } + ], + "distributed_transition": [ + { + "transition": "Wheelchair for Ankle", + "distribution": 0.88 + }, + { + "transition": "Crutches", + "distribution": 0.12 + } + ] + }, + "Broken_Rib": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Broken_Bone", + "assign_to_attribute": "broken_bone", + "codes": [ + { + "system": "SNOMED-CT", + "code": "33737001", + "display": "Fracture of rib (disorder)" + } + ], + "direct_transition": "Chest_X_Ray" + }, + "Chest_X_Ray": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain X-ray of chest (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "51185008", + "display": "Thoracic structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "DX", + "display": "Digital Radiography" + }, + "instances": [ + { + "title": "Image of chest", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.1", + "display": "Digital X-Ray Image Storage" + } + } + ] + } + ], + "direct_transition": "Broken_Bone_Immobilization" + }, + "Broken_Hip": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Broken_Bone", + "assign_to_attribute": "broken_bone", + "codes": [ + { + "system": "SNOMED-CT", + "code": "359817006", + "display": "Closed fracture of hip (disorder)" + } + ], + "direct_transition": "Pelvic_X_Ray" + }, + "Pelvic_X_Ray": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "713021002", + "display": "Plain X-ray of pelvis (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "12921003", + "display": "Structure of pelvis (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "DX", + "display": "Digital Radiography" + }, + "instances": [ + { + "title": "Image of pelvis", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.1", + "display": "Digital X-Ray Image Storage" + } + } + ] + } + ], + "distributed_transition": [ + { + "transition": "Wheelchair for Hip", + "distribution": 0.88 + }, + { + "transition": "Crutches_2", + "distribution": 0.06 + }, + { + "transition": "Walker", + "distribution": 0.06 + } + ] + }, + "Broken_Bone_Immobilization": { + "type": "Procedure", + "reason": "broken_bone", + "duration": { + "low": 20, + "high": 45, + "unit": "minutes" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "274474001", + "display": "Bone immobilization (procedure)" + } + ], + "direct_transition": "Broken_Bone_Injury_Prescribe_Pain_Medication" + }, + "Broken_Bone_Surgery": { + "type": "Procedure", + "reason": "broken_bone", + "duration": { + "low": 1, + "high": 2, + "unit": "hours" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "305428000", + "display": "Admission to orthopedic department (procedure)" + } + ], + "direct_transition": "Broken_Bone_Injury_Prescribe_Pain_Medication" + }, + "Broken_Bone_Injury_Prescribe_Pain_Medication": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Broken_Bone_Surgery" + }, + "distributions": [ + { + "distribution": 0.8, + "transition": "Broken_Bone_Injury_Prescribe_Opioid" + }, + { + "distribution": 0.2, + "transition": "Broken_Bone_Injury_Prescribe_Non_Opioid" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.3, + "transition": "Broken_Bone_Injury_Prescribe_Opioid" + }, + { + "distribution": 0.7, + "transition": "Broken_Bone_Injury_Prescribe_Non_Opioid" + } + ] + } + ] + }, + "Broken_Bone_Injury_Prescribe_Opioid": { + "type": "CallSubmodule", + "submodule": "medications/moderate_opioid_pain_reliever", + "direct_transition": "Broken_Bone_Injury_Prescribe_Non_Opioid" + }, + "Broken_Bone_Injury_Prescribe_Non_Opioid": { + "type": "CallSubmodule", + "submodule": "medications/otc_pain_reliever", + "direct_transition": "Broken_Bone_CarePlan" + }, + "Broken_Bone_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "injury_careplan", + "reason": "broken_bone", + "codes": [ + { + "system": "SNOMED-CT", + "code": "385691007", + "display": "Fracture care (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "183051005", + "display": "Recommendation to rest (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "408580007", + "display": "Physical activity target light exercise (finding)" + } + ], + "direct_transition": "Consider_Osteoporosis" + }, + "Consider_Osteoporosis": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "64859006", + "display": "Osteoporosis (disorder)" + } + ] + }, + "transition": "Diagnose_Fracture_Due_to_Osteoporosis" + }, + { + "condition": { + "condition_type": "Age", + "operator": ">", + "quantity": 50, + "unit": "years" + }, + "transition": "Osteoporosis_Workup" + }, + { + "distributions": [ + { + "distribution": 0.02, + "transition": "Osteoporosis_Workup" + }, + { + "distribution": 0.98, + "transition": "End_Broken_Bone_Encounter" + } + ], + "remarks": [ + "Give all people a small chance to check for osteoporosis", + "Frequent checks are not valuable -- ", + "https://www.nih.gov/news-events/nih-research-matters/how-often-should-women-have-bone-tests" + ] + } + ] + }, + "Osteoporosis_Workup": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "312681000", + "display": "Bone density scan (procedure)" + } + ], + "reason": "broken_bone", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "osteoporosis", + "operator": "==", + "value": true + }, + "transition": "Low_Bone_Density" + }, + { + "transition": "High_Bone_Density" + } + ] + }, + "High_Bone_Density": { + "type": "Observation", + "category": "procedure", + "codes": [ + { + "system": "LOINC", + "code": "38265-5", + "display": "DXA Radius and Ulna [T-score] Bone density" + } + ], + "remarks": [ + "TODO - This code is specifically for radius/ulna.", + "Future impl may want to use a different code depending on what bone was broken" + ], + "range": { + "low": -0.5, + "high": 0.5 + }, + "unit": "{T-score}", + "direct_transition": "End_Broken_Bone_Encounter" + }, + "Low_Bone_Density": { + "type": "Observation", + "category": "procedure", + "codes": [ + { + "system": "LOINC", + "code": "38265-5", + "display": "DXA Radius and Ulna [T-score] Bone density" + } + ], + "range": { + "low": -3.8, + "high": -2.5 + }, + "unit": "{T-score}", + "remarks": [ + "WHO definition of osteoporosis is a T-score < 2.5", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1963365/" + ], + "direct_transition": "Diagnose_Osteoporosis" + }, + "Diagnose_Osteoporosis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "64859006", + "display": "Osteoporosis (disorder)" + } + ], + "direct_transition": "Diagnose_Fracture_Due_to_Osteoporosis" + }, + "Diagnose_Fracture_Due_to_Osteoporosis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "443165006", + "display": "Osteoporotic fracture of bone (disorder)" + } + ], + "direct_transition": "End_Broken_Bone_Encounter" + }, + "End_Broken_Bone_Encounter": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "SNF_2", + "condition": { + "condition_type": "Attribute", + "attribute": "osteoporosis", + "operator": "==", + "value": true + } + }, + { + "transition": "Broken_Bone_Recovery_Period" + } + ] + }, + "Broken_Bone_Recovery_Period": { + "type": "Delay", + "range": { + "low": 1, + "high": 4, + "unit": "months" + }, + "direct_transition": "Broken_Bone_Injury_Followup" + }, + "Broken_Bone_Injury_Followup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "broken_bone", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "direct_transition": "End DME" + }, + "End_Broken_Bone_Injury": { + "type": "ConditionEnd", + "referenced_by_attribute": "broken_bone", + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "443165006", + "display": "Osteoporotic fracture of bone (disorder)" + } + ] + }, + "transition": "End_Osteoporosis_Fracture" + }, + { + "transition": "End_Broken_Bone_Followup" + } + ] + }, + "End_Osteoporosis_Fracture": { + "type": "ConditionEnd", + "condition_onset": "Diagnose_Fracture_Due_to_Osteoporosis", + "direct_transition": "End_Broken_Bone_Followup" + }, + "End_Broken_Bone_Followup": { + "type": "EncounterEnd", + "direct_transition": "End_Broken_Bone_Onset" + }, + "Burn_Injury": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Burn", + "codes": [ + { + "system": "SNOMED-CT", + "code": "48333001", + "display": "Burn injury (morphologic abnormality)" + } + ], + "direct_transition": "ED_Visit_For_Burn", + "remarks": [ + "======================================================================", + " BURN ", + "======================================================================", + "Further supported by the following sources: ", + "http://www.ameriburn.org/resources_factsheet.php", + "http://www.burnfoundation.org/programs/resource.cfm?c=2&a=6 (1999 incidence)", + "Since the early 1990's the burn rates in the U.S. have declined almost 50%;", + "however, the relative proportions of severity has stayed the same." + ] + }, + "ED_Visit_For_Burn": { + "type": "Encounter", + "encounter_class": "emergency", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "Burn", + "reason": "Burn_Injury" + }, + "Burn": { + "type": "Simple", + "remarks": [ + "Used the 1990 incidence rates to determine the relative proportions of burns only.", + "ED Visits: 1.25M", + "Hospital Stays: 51k => 0.0408", + "Deaths: 5500 => 0.0044", + "Distributed the burns that don't result in death or a hospital stay between first ", + "and second degree burns. (60% first degree, 40% second degree of the 0.9548 remaining)." + ], + "distributed_transition": [ + { + "distribution": 0.57288, + "transition": "First_Degree_Burn" + }, + { + "distribution": 0.38192, + "transition": "Second_Degree_Burn" + }, + { + "distribution": 0.0408, + "transition": "Third_Degree_Burn" + }, + { + "distribution": 0.0044, + "transition": "Deadly_Burn" + } + ] + }, + "First_Degree_Burn": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Burn", + "assign_to_attribute": "burn_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "403190006", + "display": "Epidermal burn of skin (disorder)" + } + ], + "direct_transition": "Burn_CarePlan" + }, + "Second_Degree_Burn": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Burn", + "assign_to_attribute": "burn_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "403191005", + "display": "Partial thickness burn (disorder)" + } + ], + "direct_transition": "Burn_CarePlan" + }, + "Third_Degree_Burn": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Burn", + "assign_to_attribute": "burn_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "403192003", + "display": "Full thickness burn (disorder)" + } + ], + "direct_transition": "Burn_CarePlan" + }, + "Burn_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "injury_careplan", + "reason": "burn_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "133901003", + "display": "Burn care (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "385949008", + "display": "Dressing change management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "440381005", + "display": "Behavior to prevent sun exposure (observable entity)" + }, + { + "system": "SNOMED-CT", + "code": "439830001", + "display": "Behavior to prevent infection (observable entity)" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "403190006", + "display": "Epidermal burn of skin (disorder)" + } + ] + }, + "transition": "Burn_Injury_Prescribe_Non_Opioid" + }, + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "403191005", + "display": "Partial thickness burn (disorder)" + } + ] + }, + "transition": "Burn_Injury_Prescribe_Antibiotic" + }, + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "403192003", + "display": "Full thickness burn (disorder)" + } + ] + }, + "transition": "Severe_Burn_Care" + } + ] + }, + "Severe_Burn_Care": { + "type": "Procedure", + "reason": "burn_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183450002", + "display": "Admission to burn unit (procedure)" + } + ], + "direct_transition": "Severe_Burn_Hospitalization" + }, + "Severe_Burn_Hospitalization": { + "type": "Procedure", + "reason": "burn_injury", + "duration": { + "low": 1, + "high": 3, + "unit": "weeks" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "305340004", + "display": "Admission to long stay hospital (procedure)" + } + ], + "direct_transition": "Burn_Injury_Prescribe_Antibiotic" + }, + "Burn_Injury_Prescribe_Antibiotic": { + "type": "CallSubmodule", + "remarks": [ + "Antibiotics that can be used to treat ear infections are equally ", + "suitable for treating bacterial tissue infections." + ], + "submodule": "medications/ear_infection_antibiotic", + "direct_transition": "Burn_Injury_Prescribe_Opioid" + }, + "Burn_Injury_Prescribe_Opioid": { + "type": "CallSubmodule", + "submodule": "medications/moderate_opioid_pain_reliever", + "direct_transition": "Burn_Injury_Prescribe_Non_Opioid" + }, + "Burn_Injury_Prescribe_Non_Opioid": { + "type": "CallSubmodule", + "submodule": "medications/otc_pain_reliever", + "direct_transition": "End_Burn_Encounter" + }, + "End_Burn_Encounter": { + "type": "EncounterEnd", + "direct_transition": "SNF_4" + }, + "Burn_Recovery_Period": { + "type": "Delay", + "range": { + "low": 2, + "high": 6, + "unit": "weeks" + }, + "direct_transition": "Burn_Injury_Followup" + }, + "Burn_Injury_Followup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "burn_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "direct_transition": "End_Burn_Injury" + }, + "End_Burn_Injury": { + "type": "ConditionEnd", + "referenced_by_attribute": "burn_injury", + "direct_transition": "End_Burn_Injury_Onset" + }, + "End_Burn_Followup": { + "type": "EncounterEnd", + "direct_transition": "Conclude_Injury" + }, + "Laceration_Injury": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Laceration", + "codes": [ + { + "system": "SNOMED-CT", + "code": "312608009", + "display": "Laceration - injury (disorder)" + } + ], + "direct_transition": "ED_Visit_For_Laceration", + "remarks": [ + "======================================================================", + " LACERATION ", + "======================================================================", + "Added a mix of lacerations for variety. It seems like most common ", + "lacerations are equally likely.", + "TODO: In the future, lacerations that are poorly treated by the patient may ", + "develop an infection. Could be interesting to add this into the mix." + ] + }, + "ED_Visit_For_Laceration": { + "type": "Encounter", + "encounter_class": "emergency", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "Laceration", + "reason": "Laceration_Injury" + }, + "Laceration": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.2, + "transition": "Laceration_Of_Hand" + }, + { + "distribution": 0.2, + "transition": "Laceration_Of_Arm" + }, + { + "distribution": 0.2, + "transition": "Laceration_Of_Leg" + }, + { + "distribution": 0.2, + "transition": "Laceration_Of_Face" + }, + { + "distribution": 0.2, + "transition": "Laceration_Of_Foot" + } + ] + }, + "Laceration_Of_Hand": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Laceration", + "assign_to_attribute": "laceration_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "284549007", + "display": "Laceration of hand (disorder)" + } + ], + "direct_transition": "Laceration_CarePlan" + }, + "Laceration_Of_Arm": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Laceration", + "assign_to_attribute": "laceration_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "283371005", + "display": "Laceration of forearm (disorder)" + } + ], + "direct_transition": "Laceration_CarePlan" + }, + "Laceration_Of_Leg": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Laceration", + "assign_to_attribute": "laceration_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "283385000", + "display": "Laceration of thigh (disorder)" + } + ], + "direct_transition": "Laceration_CarePlan" + }, + "Laceration_Of_Face": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Laceration", + "assign_to_attribute": "laceration_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "370247008", + "display": "Facial laceration (disorder)" + } + ], + "direct_transition": "Laceration_CarePlan" + }, + "Laceration_Of_Foot": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Laceration", + "assign_to_attribute": "laceration_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "284551006", + "display": "Laceration of foot (disorder)" + } + ], + "direct_transition": "Laceration_CarePlan" + }, + "Laceration_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "injury_careplan", + "reason": "laceration_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225358003", + "display": "Wound care (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "385949008", + "display": "Dressing change management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "439830001", + "display": "Behavior to prevent infection (observable entity)" + } + ], + "direct_transition": "Suture_Laceration" + }, + "Suture_Laceration": { + "type": "Procedure", + "reason": "laceration_injury", + "duration": { + "low": 10, + "high": 30, + "unit": "minutes" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "288086009", + "display": "Suture open wound (procedure)" + } + ], + "remarks": [ + "For some of the lacerations it's prudent to give a tetanus booster. ", + "For now this distribution is arbitrary but we assume not every wound ", + "involves rusty or dirty metal and that most people are up-to-date ", + "with their tetanus shots." + ], + "distributed_transition": [ + { + "distribution": 0.2, + "transition": "Laceration_Tetanus_Shot" + }, + { + "distribution": 0.8, + "transition": "Laceration_Injury_Prescribe_Non_Opioid" + } + ] + }, + "Laceration_Tetanus_Shot": { + "type": "Procedure", + "reason": "laceration_injury", + "duration": { + "low": 10, + "high": 20, + "unit": "minutes" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "384700001", + "display": "Injection of tetanus antitoxin (procedure)" + } + ], + "direct_transition": "Laceration_Injury_Prescribe_Non_Opioid" + }, + "Laceration_Injury_Prescribe_Non_Opioid": { + "type": "CallSubmodule", + "submodule": "medications/otc_pain_reliever", + "direct_transition": "End_Laceration_Encounter" + }, + "End_Laceration_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Laceration_Recovery_Period" + }, + "Laceration_Recovery_Period": { + "type": "Delay", + "range": { + "low": 2, + "high": 4, + "unit": "weeks" + }, + "direct_transition": "End_Laceration_Injury" + }, + "End_Laceration_Injury": { + "type": "ConditionEnd", + "referenced_by_attribute": "laceration_injury", + "direct_transition": "End_Laceration_Injury_Onset" + }, + "Sprain_Injury": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Sprain", + "codes": [ + { + "system": "SNOMED-CT", + "code": "384709000", + "display": "Sprain (morphologic abnormality)" + } + ], + "direct_transition": "ED_Visit_For_Sprain", + "remarks": [ + "======================================================================", + " SPRAIN ", + "======================================================================", + "Arbitrary distribution of sprained ankles and wrists for variety." + ] + }, + "ED_Visit_For_Sprain": { + "type": "Encounter", + "encounter_class": "emergency", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Sprained_Ankle" + }, + { + "distribution": 0.3, + "transition": "Sprained_Wrist" + } + ], + "reason": "Sprain_Injury" + }, + "Sprained_Ankle": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Sprain", + "assign_to_attribute": "sprain_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "44465007", + "display": "Sprain of ankle (disorder)" + } + ], + "direct_transition": "Sprain_CarePlan" + }, + "Sprained_Wrist": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Sprain", + "assign_to_attribute": "sprain_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "70704007", + "display": "Sprain of wrist (disorder)" + } + ], + "direct_transition": "Sprain_CarePlan" + }, + "Sprain_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "injury_careplan", + "reason": "sprain_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "773513001", + "display": "Physiotherapy care plan (record artifact)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "229586001", + "display": "Rest, ice, compression and elevation treatment program (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "229070002", + "display": "Stretching exercises (regime/therapy)" + } + ], + "direct_transition": "Sprain_Prescribe_Non_Opioid" + }, + "Sprain_Prescribe_Non_Opioid": { + "type": "CallSubmodule", + "submodule": "medications/otc_pain_reliever", + "direct_transition": "End_Sprain_Encounter" + }, + "End_Sprain_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Sprain_Recovery_Period" + }, + "Sprain_Recovery_Period": { + "type": "Delay", + "range": { + "low": 2, + "high": 6, + "unit": "weeks" + }, + "direct_transition": "End_Sprain_Injury" + }, + "End_Sprain_Injury": { + "type": "ConditionEnd", + "referenced_by_attribute": "sprain_injury", + "direct_transition": "End_Sprain_Injury_Onset" + }, + "Knee_Injury": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Knee_Injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "125601008", + "display": "Injury of knee (disorder)" + } + ], + "direct_transition": "ED_Visit_For_Knee_Injury", + "remarks": [ + "======================================================================", + " KNEE ", + "======================================================================", + "Tears of the following structures: ", + "1. ACL (25.4%)", + "2. MCL (36.1%)", + "3. Meniscus (23.0%)", + "4. Patella (29.5%)", + "These percentages add up to >100 since multiple tears could occur from one knee ", + "injury. To simplify I normalized these percentages out of 100 but maintained ", + "the relative proportions. Only one of the above occurs at any given time.", + "Sources: ", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3768257/" + ] + }, + "ED_Visit_For_Knee_Injury": { + "type": "Encounter", + "encounter_class": "emergency", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "distributed_transition": [ + { + "transition": "Torn_MCL", + "distribution": 0.3177 + }, + { + "transition": "Torn_ACL", + "distribution": 0.2235 + }, + { + "transition": "Torn_Meniscus", + "distribution": 0.2024 + }, + { + "transition": "Torn_Patellar_Tendon", + "distribution": 0.2564 + } + ], + "reason": "Knee_Injury" + }, + "Knee_X_Ray": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "1290407002", + "display": "Plain X-ray of knee region (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "72696002", + "display": "Knee region structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "DX", + "display": "Digital Radiography" + }, + "instances": [ + { + "title": "Image of knee", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.1", + "display": "Digital X-Ray Image Storage" + } + } + ] + } + ], + "direct_transition": "Knee_Injury_Prescribe_Non_Opioid" + }, + "Knee_Injury_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "injury_careplan", + "reason": "knee_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "773513001", + "display": "Physiotherapy care plan (record artifact)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "229586001", + "display": "Rest, ice, compression and elevation treatment program (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "229070002", + "display": "Stretching exercises (regime/therapy)" + } + ], + "direct_transition": "Knee_X_Ray" + }, + "Torn_ACL": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Knee_Injury", + "assign_to_attribute": "knee_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "444470001", + "display": "Injury of anterior cruciate ligament (disorder)" + } + ], + "direct_transition": "Knee_Injury_CarePlan" + }, + "Torn_MCL": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Knee_Injury", + "assign_to_attribute": "knee_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "444448004", + "display": "Injury of medial collateral ligament of knee (disorder)" + } + ], + "direct_transition": "Knee_Injury_CarePlan" + }, + "Torn_Meniscus": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Knee_Injury", + "assign_to_attribute": "knee_injury", + "remarks": [ + "These typically don't require surgery, so go straight to therapy." + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "239720000", + "display": "Tear of meniscus of knee (disorder)" + } + ], + "direct_transition": "Knee_Injury_CarePlan" + }, + "Torn_Patellar_Tendon": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Knee_Injury", + "assign_to_attribute": "knee_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "30832001", + "display": "Rupture of patellar tendon (disorder)" + } + ], + "direct_transition": "Knee_Injury_CarePlan" + }, + "End_Knee_Injury_Encounter_I": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Knee_Injury_Recovery_Period", + "condition": { + "condition_type": "PriorState", + "name": "Torn_Meniscus" + } + }, + { + "transition": "Wait_For_Knee_Surgery" + } + ] + }, + "Wait_For_Knee_Surgery": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "direct_transition": "Knee_Surgery_Encounter" + }, + "Knee_Surgery_Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "knee_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183495009", + "display": "Non-urgent orthopedic admission (procedure)" + } + ], + "direct_transition": "Knee_Surgery_Procedure" + }, + "Knee_Surgery_Procedure": { + "type": "Procedure", + "reason": "knee_injury", + "duration": { + "low": 2, + "high": 4, + "unit": "hours" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "699253003", + "display": "Surgical manipulation of joint of knee (procedure)" + } + ], + "direct_transition": "Knee_Injury_Prescribe_Opioid" + }, + "Knee_Injury_Prescribe_Opioid": { + "type": "CallSubmodule", + "submodule": "medications/moderate_opioid_pain_reliever", + "direct_transition": "Postoperative Care" + }, + "Knee_Injury_Prescribe_Non_Opioid": { + "type": "CallSubmodule", + "submodule": "medications/otc_pain_reliever", + "direct_transition": "End_Knee_Injury_Encounter_I" + }, + "End_Knee_Injury_Encounter_II": { + "type": "EncounterEnd", + "direct_transition": "SNF_3" + }, + "Knee_Injury_Recovery_Period": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "months" + }, + "direct_transition": "End_Knee_Injury" + }, + "End_Knee_Injury": { + "type": "ConditionEnd", + "referenced_by_attribute": "knee_injury", + "direct_transition": "End_Knee_Injury_Onset" + }, + "Shoulder_Injury": { + "type": "Simple", + "remarks": [ + "======================================================================", + " SHOULDER ", + "======================================================================", + "Tears of the rotator cuff. Typically this doesn't require an immediate trip ", + "to the emergency department. An ambulatory encounter and PT (or in some cases,", + "surgery) will do. Interestingly enough, in most cases surgery won't help a ", + "torn rotator cuff any more than physical therapy. The percentages are arbitraty ", + "but I directed most patients directly to PT instead of surgery." + ], + "direct_transition": "Torn_Rotator_Cuff" + }, + "Torn_Rotator_Cuff": { + "type": "ConditionOnset", + "target_encounter": "Encounter_For_Shoulder_Injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "307731004", + "display": "Injury of tendon of the rotator cuff of shoulder (disorder)" + } + ], + "direct_transition": "Encounter_For_Shoulder_Injury" + }, + "Encounter_For_Shoulder_Injury": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Torn_Rotator_Cuff", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Shoulder_Injury_CarePlan" + }, + "Shoulder_Injury_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "injury_careplan", + "reason": "Torn_Rotator_Cuff", + "codes": [ + { + "system": "SNOMED-CT", + "code": "773513001", + "display": "Physiotherapy care plan (record artifact)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "229586001", + "display": "Rest, ice, compression and elevation treatment program (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "229070002", + "display": "Stretching exercises (regime/therapy)" + } + ], + "direct_transition": "End_Shoulder_Injury_Encounter" + }, + "End_Shoulder_Injury_Encounter": { + "type": "EncounterEnd", + "distributed_transition": [ + { + "distribution": 0.9, + "transition": "Shoulder_Injury_Recovery_Period" + }, + { + "distribution": 0.1, + "transition": "Wait_For_Shoulder_Surgery" + } + ] + }, + "Wait_For_Shoulder_Surgery": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "direct_transition": "Shoulder_Surgery_Encounter" + }, + "Shoulder_Surgery_Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "Torn_Rotator_Cuff", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183495009", + "display": "Non-urgent orthopedic admission (procedure)" + } + ], + "direct_transition": "Shoulder_Surgery_Procedure" + }, + "Shoulder_Surgery_Procedure": { + "type": "Procedure", + "reason": "Torn_Rotator_Cuff", + "duration": { + "low": 2, + "high": 4, + "unit": "hours" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "387685009", + "display": "Surgical manipulation of shoulder joint (procedure)" + } + ], + "direct_transition": "Shoulder_Surgery_Prescribe_Opioid" + }, + "Shoulder_Surgery_Prescribe_Opioid": { + "type": "CallSubmodule", + "submodule": "medications/moderate_opioid_pain_reliever", + "direct_transition": "Shoulder_Surgery_Prescribe_Non_Opioid" + }, + "Shoulder_Surgery_Prescribe_Non_Opioid": { + "type": "CallSubmodule", + "submodule": "medications/otc_pain_reliever", + "direct_transition": "Postoperative_Care" + }, + "End_Shoulder_Surgery_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Shoulder_Injury_Recovery_Period" + }, + "Shoulder_Injury_Recovery_Period": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "months" + }, + "direct_transition": "Shoulder_Injury_Followup" + }, + "Shoulder_Injury_Followup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Torn_Rotator_Cuff", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "direct_transition": "End_Shoulder_Injury" + }, + "End_Shoulder_Injury": { + "type": "ConditionEnd", + "condition_onset": "Torn_Rotator_Cuff", + "direct_transition": "End_Shoulder_Followup" + }, + "End_Shoulder_Followup": { + "type": "EncounterEnd", + "direct_transition": "Conclude_Injury" + }, + "Conclude_Injury": { + "type": "Simple", + "remarks": [ + "======================================================================", + " INJURY CONCLUSION ", + "======================================================================", + "This section is not resposible for ending conditions, only resetting ", + "attributes and ending care plans and medications. This allows chronic ", + "injuries to continue while short-term injuries should be ended earlier ", + "in this module." + ], + "direct_transition": "End_Injury_CarePlan" + }, + "End_Injury_CarePlan": { + "type": "CarePlanEnd", + "referenced_by_attribute": "injury_careplan", + "direct_transition": "End_Injury_Medications" + }, + "End_Injury_Medications": { + "type": "Simple", + "remarks": [ + "For any of the possible medications that could be prescribed in this module ", + "this state cycles through the attributes and ends the medications until no ", + "more prescriptions are remaining.", + "The attributes that this state looks for are: ", + "1. otc_pain_reliever ", + "2. antibiotic_prescription ", + "Any other medications prescribed in this module and not assigned to one of those ", + "three attributes must be ended manually elsewhere in the module, the special ", + "exception being 'opioid_prescription' (handled by the Opioid Addiction module)." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "antibiotic_prescription", + "operator": "is not nil" + }, + "transition": "End_Antibiotic_Prescription" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "otc_pain_reliever", + "operator": "is not nil" + }, + "transition": "End_Non_Opioid_Prescription" + }, + { + "remarks": [ + "Fallback transition after all medications are ended" + ], + "transition": "Wait_For_Injury" + } + ] + }, + "End_Antibiotic_Prescription": { + "type": "MedicationEnd", + "referenced_by_attribute": "antibiotic_prescription", + "direct_transition": "Unset_Antibiotic_Prescription_Attribute" + }, + "Unset_Antibiotic_Prescription_Attribute": { + "type": "SetAttribute", + "attribute": "antibiotic_prescription", + "direct_transition": "End_Injury_Medications" + }, + "End_Non_Opioid_Prescription": { + "type": "MedicationEnd", + "referenced_by_attribute": "otc_pain_reliever", + "direct_transition": "Unset_Non_Opioid_Prescription_Attribute" + }, + "Unset_Non_Opioid_Prescription_Attribute": { + "type": "SetAttribute", + "attribute": "otc_pain_reliever", + "direct_transition": "End_Injury_Medications" + }, + "Deadly_Burn": { + "type": "ConditionOnset", + "assign_to_attribute": "burn_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "48333001", + "display": "Burn injury (morphologic abnormality)" + } + ], + "direct_transition": "Death_Severe_Burn" + }, + "Death_Spinal_Cord": { + "type": "Death", + "referenced_by_attribute": "spinal_injury", + "direct_transition": "Terminal" + }, + "Death_Gunshot_Wound": { + "type": "Death", + "referenced_by_attribute": "gunshot_wound", + "direct_transition": "Terminal" + }, + "Death_Severe_Concussion": { + "type": "Death", + "referenced_by_attribute": "concussion_injury", + "direct_transition": "Terminal" + }, + "Death_Severe_Burn": { + "type": "Death", + "referenced_by_attribute": "burn_injury", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + }, + "Crutches": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "74566002", + "display": "Crutch, device (physical object)" + }, + "direct_transition": "Broken_Bone_Immobilization", + "assign_to_attribute": "injury_dme" + }, + "SNF_0": { + "type": "CallSubmodule", + "submodule": "snf/skilled_nursing_facility", + "direct_transition": "Spinal_Treatment_Period" + }, + "SNF": { + "type": "CallSubmodule", + "submodule": "snf/skilled_nursing_facility", + "direct_transition": "Gunshot_Wound_Healing_Period" + }, + "SNF_1": { + "type": "CallSubmodule", + "submodule": "snf/skilled_nursing_facility", + "direct_transition": "Whiplash_Recovery_Period" + }, + "SNF_2": { + "type": "CallSubmodule", + "submodule": "snf/skilled_nursing_facility", + "direct_transition": "Broken_Bone_Recovery_Period" + }, + "SNF_3": { + "type": "CallSubmodule", + "submodule": "snf/skilled_nursing_facility", + "direct_transition": "Knee_Injury_Recovery_Period" + }, + "SNF_4": { + "type": "CallSubmodule", + "submodule": "snf/skilled_nursing_facility", + "direct_transition": "Burn_Recovery_Period" + }, + "Crutches_2": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "74566002", + "display": "Crutch, device (physical object)" + }, + "direct_transition": "Broken_Bone_Surgery", + "assign_to_attribute": "injury_dme" + }, + "Walker": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": 705406009, + "display": "Walker (physical object)" + }, + "direct_transition": "Broken_Bone_Surgery", + "assign_to_attribute": "injury_dme" + }, + "End DME": { + "type": "DeviceEnd", + "codes": [], + "referenced_by_attribute": "injury_dme", + "conditional_transition": [ + { + "transition": "End_DME", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "PriorState", + "name": "Wheelchair for Hip" + }, + { + "condition_type": "PriorState", + "name": "Wheelchair for Ankle" + } + ] + } + }, + { + "transition": "End_Broken_Bone_Injury" + } + ] + }, + "Wheelchair for Ankle": { + "type": "CallSubmodule", + "submodule": "dme/wheelchair", + "direct_transition": "Broken_Bone_Immobilization" + }, + "Wheelchair for Hip": { + "type": "CallSubmodule", + "submodule": "dme/wheelchair", + "direct_transition": "Broken_Bone_Surgery" + }, + "Wheelchair for Spine": { + "type": "CallSubmodule", + "submodule": "dme/wheelchair", + "direct_transition": "Spinal_Surgery" + }, + "End Wheelchair for Spine": { + "type": "CallSubmodule", + "submodule": "dme/wheelchair_end", + "direct_transition": "End_Spinal_Injury_Followup" + }, + "End_DME": { + "type": "CallSubmodule", + "submodule": "dme/wheelchair_end", + "direct_transition": "End_Broken_Bone_Injury" + }, + "Postoperative Care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "133899007", + "display": "Postoperative care (regime/therapy)" + } + ], + "distribution": { + "kind": "EXPONENTIAL", + "parameters": { + "mean": 2 + } + }, + "unit": "days", + "direct_transition": "End_Knee_Injury_Encounter_II", + "reason": "knee_injury" + }, + "Postoperative_Care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "133899007", + "display": "Postoperative care (regime/therapy)" + } + ], + "distribution": { + "kind": "EXPONENTIAL", + "parameters": { + "mean": 2 + } + }, + "unit": "days", + "reason": "Torn_Rotator_Cuff", + "direct_transition": "End_Shoulder_Surgery_Encounter" + }, + "Delay_After_Spinal_Surgery": { + "type": "Delay", + "distribution": { + "kind": "EXPONENTIAL", + "parameters": { + "mean": 2 + } + }, + "unit": "days", + "direct_transition": "Spinal_Injury_Treatment_Encounter" + }, + "End_Whiplash_Injury_Onset": { + "type": "ConditionEnd", + "direct_transition": "Conclude_Injury", + "condition_onset": "Whiplash_Injury" + }, + "End_Spinal_Injury_Onset": { + "type": "ConditionEnd", + "direct_transition": "End Wheelchair for Spine", + "condition_onset": "Spinal_Injury" + }, + "End_Concussion_Injury_Onset": { + "type": "ConditionEnd", + "direct_transition": "End_Concussion_Followup", + "condition_onset": "Concussion_Injury" + }, + "End_Knee_Injury_Onset": { + "type": "ConditionEnd", + "direct_transition": "Conclude_Injury", + "condition_onset": "Knee_Injury" + }, + "End_Broken_Bone_Onset": { + "type": "ConditionEnd", + "direct_transition": "Conclude_Injury", + "condition_onset": "Broken_Bone_Injury" + }, + "End_Burn_Injury_Onset": { + "type": "ConditionEnd", + "direct_transition": "End_Burn_Followup", + "condition_onset": "Burn_Injury" + }, + "End_Laceration_Injury_Onset": { + "type": "ConditionEnd", + "direct_transition": "Conclude_Injury", + "condition_onset": "Laceration_Injury" + }, + "End_Sprain_Injury_Onset": { + "type": "ConditionEnd", + "direct_transition": "Conclude_Injury", + "condition_onset": "Sprain_Injury" + }, + "End_Gunshot_Injury_Onset": { + "type": "ConditionEnd", + "direct_transition": "End_Gunshot_Followup", + "condition_onset": "Gunshot_Injury" + }, + "Broken Jaw": { + "type": "CallSubmodule", + "submodule": "injuries/broken_jaw", + "direct_transition": "Conclude_Injury" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/injuries/broken_jaw.json b/src/main/resources/modules/injuries/broken_jaw.json new file mode 100644 index 0000000..b0b3559 --- /dev/null +++ b/src/main/resources/modules/injuries/broken_jaw.json @@ -0,0 +1,591 @@ +{ + "name": "broken jaw", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Fracture Check" + }, + "Broken_Bone_Immobilization": { + "type": "Procedure", + "reason": "Broken Jaw", + "duration": { + "low": 20, + "high": 45, + "unit": "minutes" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "274474001", + "display": "Bone immobilization (procedure)" + } + ], + "direct_transition": "Stabilization Check" + }, + "Consider_Osteoporosis": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "64859006", + "display": "Osteoporosis (disorder)" + } + ] + }, + "transition": "Diagnose_Fracture_Due_to_Osteoporosis" + }, + { + "condition": { + "condition_type": "Age", + "operator": ">", + "quantity": 50, + "unit": "years" + }, + "transition": "Osteoporosis_Workup" + }, + { + "distributions": [ + { + "distribution": 0.02, + "transition": "Osteoporosis_Workup" + }, + { + "distribution": 0.98, + "transition": "End Encounter" + } + ] + } + ] + }, + "Osteoporosis_Workup": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "312681000", + "display": "Bone density scan (procedure)" + } + ], + "reason": "broken_bone", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "osteoporosis", + "operator": "==", + "value": true + }, + "transition": "Low_Bone_Density" + }, + { + "transition": "High_Bone_Density" + } + ] + }, + "High_Bone_Density": { + "type": "Observation", + "category": "procedure", + "codes": [ + { + "system": "LOINC", + "code": "38265-5", + "display": "DXA Radius and Ulna [T-score] Bone density" + } + ], + "range": { + "low": -0.5, + "high": 0.5 + }, + "unit": "{T-score}", + "direct_transition": "End Encounter" + }, + "Low_Bone_Density": { + "type": "Observation", + "category": "procedure", + "codes": [ + { + "system": "LOINC", + "code": "38265-5", + "display": "DXA Radius and Ulna [T-score] Bone density" + } + ], + "range": { + "low": -3.8, + "high": -2.5 + }, + "unit": "{T-score}", + "direct_transition": "Diagnose_Osteoporosis" + }, + "Diagnose_Osteoporosis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "64859006", + "display": "Osteoporosis (disorder)" + } + ], + "direct_transition": "Diagnose_Fracture_Due_to_Osteoporosis" + }, + "Diagnose_Fracture_Due_to_Osteoporosis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "443165006", + "display": "Osteoporotic fracture of bone (disorder)" + } + ], + "direct_transition": "End Encounter" + }, + "End_Osteoporosis_Fracture": { + "type": "ConditionEnd", + "condition_onset": "Diagnose_Fracture_Due_to_Osteoporosis", + "direct_transition": "End Followup" + }, + "Dislocated Jaw": { + "type": "ConditionOnset", + "target_encounter": "Emergency Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "81629009", + "display": "Traumatic dislocation of temporomandibular joint (disorder)" + } + ], + "direct_transition": "Emergency Visit", + "assign_to_attribute": "jaw_injury" + }, + "Broken Jaw": { + "type": "ConditionOnset", + "target_encounter": "Emergency Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "263172003", + "display": "Fracture of mandible (disorder)" + } + ], + "direct_transition": "Emergency Visit", + "assign_to_attribute": "jaw_injury" + }, + "Radiography of mandible": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": 19589009, + "display": "Radiography of mandible (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "91609006", + "display": "Bone structure of mandible (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "DX", + "display": "Digital Radiography" + }, + "instances": [ + { + "title": "Image of mandible", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.1.1", + "display": "Digital X-Ray Image Storage" + } + } + ] + } + ], + "conditional_transition": [ + { + "transition": "Closed Reduction of Fracture", + "condition": { + "condition_type": "PriorState", + "name": "Broken Jaw", + "since": "Fracture Check" + } + }, + { + "transition": "Closed Reduction of Dislocation", + "condition": { + "condition_type": "PriorState", + "name": "Dislocated Jaw", + "since": "Fracture Check" + } + } + ] + }, + "Posttreatment stabilization, orthodontic device": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "37542007", + "display": "Posttreatment stabilization, orthodontic device (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "Prescribe_Pain_Medication", + "reason": "jaw_injury" + }, + "Closed Reduction of Dislocation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "179632003", + "display": "Closed reduction of dislocation of temporomandibular joint (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "reason": "Dislocated Jaw", + "direct_transition": "Stabilization Check" + }, + "Closed Reduction of Fracture": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "24832002", + "display": "Closed reduction of mandibular fracture (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "reason": "Broken Jaw", + "direct_transition": "Broken_Bone_Immobilization" + }, + "Fracture Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Broken Jaw", + "distribution": 0.5 + }, + { + "transition": "Dislocated Jaw", + "distribution": 0.5 + } + ] + }, + "Stabilization Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Posttreatment stabilization, orthodontic device", + "distribution": 0.5 + }, + { + "transition": "Prescribe_Pain_Medication", + "distribution": 0.5 + } + ] + }, + "Prescribe_Pain_Medication": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Broken Jaw", + "since": "Fracture Check" + }, + "distributions": [ + { + "distribution": 0.8, + "transition": "Prescribe_Opioid" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Non_Opioid" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.3, + "transition": "Prescribe_Opioid" + }, + { + "distribution": 0.7, + "transition": "Prescribe_Non_Opioid" + } + ] + } + ] + }, + "Prescribe_Opioid": { + "type": "CallSubmodule", + "submodule": "medications/moderate_opioid_pain_reliever", + "direct_transition": "Prescribe_Non_Opioid" + }, + "Prescribe_Non_Opioid": { + "type": "CallSubmodule", + "submodule": "medications/otc_pain_reliever", + "conditional_transition": [ + { + "transition": "Broken Jaw CarePlan", + "condition": { + "condition_type": "PriorState", + "name": "Broken Jaw", + "since": "Fracture Check" + } + }, + { + "transition": "Dislocated Jaw CarePlan" + } + ] + }, + "End Encounter": { + "type": "EncounterEnd", + "direct_transition": "Dental Referral" + }, + "SNF": { + "type": "CallSubmodule", + "submodule": "snf/skilled_nursing_facility", + "direct_transition": "Recovery Period" + }, + "Recovery Period": { + "type": "Delay", + "range": { + "low": 4, + "high": 6, + "unit": "weeks" + }, + "direct_transition": "Followup" + }, + "Followup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "jaw_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "direct_transition": "Oral examination" + }, + "End Followup": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "End Injury": { + "type": "ConditionEnd", + "referenced_by_attribute": "jaw_injury", + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "443165006", + "display": "Osteoporotic fracture of bone (disorder)" + } + ] + }, + "transition": "End_Osteoporosis_Fracture" + }, + { + "transition": "End Followup" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Dental Referral": { + "type": "SetAttribute", + "attribute": "dental_referral", + "value_attribute": "jaw_injury", + "direct_transition": "Wait for Dental Visit" + }, + "Wait for Dental Visit": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 7, + "low": 1 + } + }, + "unit": "days", + "direct_transition": "Check for Dental Visit" + }, + "Check for Dental Visit": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Wait for Dental Visit", + "condition": { + "condition_type": "Attribute", + "attribute": "dental_referral", + "operator": "is not nil" + } + }, + { + "transition": "Check Osteoporosis" + } + ] + }, + "Check Osteoporosis": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "SNF", + "condition": { + "condition_type": "Attribute", + "attribute": "osteoporosis", + "operator": "==", + "value": true + } + }, + { + "transition": "Recovery Period" + } + ] + }, + "Range_of_motion_testing": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "69212005", + "display": "Range of motion testing (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 10, + "low": 5 + } + }, + "unit": "minutes", + "reason": "jaw_injury", + "direct_transition": "End Injury" + }, + "Oral examination": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "122856003", + "display": "Oral examination (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 10, + "low": 5 + } + }, + "unit": "minutes", + "direct_transition": "Range_of_motion_testing", + "reason": "jaw_injury" + }, + "Emergency Visit": { + "type": "Encounter", + "encounter_class": "emergency", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "reason": "jaw_injury", + "direct_transition": "Radiography of mandible" + }, + "Broken Jaw CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "injury_careplan", + "reason": "jaw_injury", + "codes": [ + { + "system": "SNOMED-CT", + "code": "385691007", + "display": "Fracture care (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "183051005", + "display": "Recommendation to rest (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "439121000124106", + "display": "Pureed diet (regime/therapy)" + } + ], + "direct_transition": "Consider_Osteoporosis" + }, + "Dislocated Jaw CarePlan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "208748005", + "display": "Open dislocation of jaw (disorder)" + } + ], + "direct_transition": "End Encounter", + "assign_to_attribute": "injury_careplan", + "reason": "jaw_injury", + "activities": [ + { + "system": "SNOMED-CT", + "code": "439101000124101", + "display": "Easy to chew diet (regime/therapy)" + } + ] + } + }, + "gmf_version": 1, + "remarks": [ + "Annual rate of 130 per 100K in USA (98 per 100K globally).", + "Diagnosis with x-ray or CT.", + "60% of cases have 2 breaks.", + "Jaw wiring requires 4-6 weeks recovery.", + "Typically male:female ratio ranges from 4:1 to 6:1, but that is not modeled here.", + "Some things like care plan and medications are ended in the top-level injuries module.", + "", + "References:", + "- http://dx.doi.org/10.1016/j.joms.2015.04.032", + "- http://dx.doi.org/10.1136/ injuryprev-2019-043297" + ] +} \ No newline at end of file diff --git a/src/main/resources/modules/insulin_dependent_diabetes_mellitus.json b/src/main/resources/modules/insulin_dependent_diabetes_mellitus.json new file mode 100644 index 0000000..87abbe1 --- /dev/null +++ b/src/main/resources/modules/insulin_dependent_diabetes_mellitus.json @@ -0,0 +1,405 @@ +{ + "name": "Insulin-dependent diabetes mellitus", + "remarks": [ + "This module models Type 1 Diabetes Mellitus (T1DM), also known as insulin-dependent diabetes mellitus.", + "T1DM is an autoimmune condition where the pancreas produces little or no insulin.", + "The incidence of T1DM varies by age, ethnicity, and geography.", + "Sources: https://www.cdc.gov/diabetes/basics/type1.html, https://www.niddk.nih.gov/health-information/diabetes/overview/what-is-diabetes/type-1-diabetes" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Incidence_Selection" + }, + "Terminal": { + "type": "Terminal" + }, + "Age_Incidence_Selection": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.25, + "transition": "Age_0_4" + }, + { + "distribution": 0.4, + "transition": "Age_5_14" + }, + { + "distribution": 0.25, + "transition": "Age_15_29" + }, + { + "distribution": 0.1, + "transition": "Age_30_Plus" + } + ], + "remarks": [ + "Age distribution based on epidemiological data showing peak incidence in childhood and adolescence.", + "Source: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5871042/" + ] + }, + "Age_0_4": { + "type": "Delay", + "range": { + "low": 0, + "high": 4, + "unit": "years" + }, + "direct_transition": "T1DM_Prevalence_Check" + }, + "Age_5_14": { + "type": "Delay", + "range": { + "low": 5, + "high": 14, + "unit": "years" + }, + "direct_transition": "T1DM_Prevalence_Check" + }, + "Age_15_29": { + "type": "Delay", + "range": { + "low": 15, + "high": 29, + "unit": "years" + }, + "direct_transition": "T1DM_Prevalence_Check" + }, + "Age_30_Plus": { + "type": "Delay", + "range": { + "low": 30, + "high": 50, + "unit": "years" + }, + "direct_transition": "T1DM_Prevalence_Check" + }, + "T1DM_Prevalence_Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Race", + "race": "White" + }, + "distributions": [ + { + "distribution": 0.0045, + "transition": "T1DM_Onset" + }, + { + "distribution": 0.9955, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Black" + }, + "distributions": [ + { + "distribution": 0.0025, + "transition": "T1DM_Onset" + }, + { + "distribution": 0.9975, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Hispanic" + }, + "distributions": [ + { + "distribution": 0.002, + "transition": "T1DM_Onset" + }, + { + "distribution": 0.998, + "transition": "Terminal" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.003, + "transition": "T1DM_Onset" + }, + { + "distribution": 0.997, + "transition": "Terminal" + } + ] + } + ], + "remarks": [ + "Prevalence rates vary by race/ethnicity. T1DM is more common in White populations.", + "Source: https://www.cdc.gov/diabetes/pdfs/data/statistics/national-diabetes-statistics-report.pdf" + ] + }, + "T1DM_Onset": { + "type": "Simple", + "direct_transition": "T1DM_Symptoms" + }, + "T1DM_Symptoms": { + "type": "Symptom", + "symptom": "Polydipsia", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "T1DM_Symptom_Polyuria" + }, + "T1DM_Symptom_Polyuria": { + "type": "Symptom", + "symptom": "Polyuria", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "T1DM_Symptom_Polyphagia" + }, + "T1DM_Symptom_Polyphagia": { + "type": "Symptom", + "symptom": "Polyphagia", + "range": { + "low": 40, + "high": 90 + }, + "direct_transition": "T1DM_Symptom_Fatigue" + }, + "T1DM_Symptom_Fatigue": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "T1DM_Symptom_Weight_Loss" + }, + "T1DM_Symptom_Weight_Loss": { + "type": "Symptom", + "symptom": "Weight Loss", + "range": { + "low": 30, + "high": 80 + }, + "direct_transition": "T1DM_Initial_Encounter" + }, + "T1DM_Initial_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Polydipsia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem" + } + ], + "direct_transition": "T1DM_Diagnosis" + }, + "T1DM_Diagnosis": { + "type": "ConditionOnset", + "target_encounter": "T1DM_Initial_Encounter", + "assign_to_attribute": "diabetes_type_1", + "codes": [ + { + "system": "SNOMED-CT", + "code": "46635009", + "display": "Diabetes mellitus type 1" + }, + { + "system": "ICD-10-CM", + "code": "E10.9", + "display": "Type 1 diabetes mellitus without complications" + } + ], + "direct_transition": "T1DM_Lab_Glucose" + }, + "T1DM_Lab_Glucose": { + "type": "Procedure", + "target_encounter": "T1DM_Initial_Encounter", + "reason": "diabetes_type_1", + "codes": [ + { + "system": "LOINC", + "code": "2339-0", + "display": "Glucose [Mass/volume] in Blood" + } + ], + "direct_transition": "T1DM_Lab_Glucose_Result" + }, + "T1DM_Lab_Glucose_Result": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2339-0", + "display": "Glucose [Mass/volume] in Blood" + } + ], + "range": { + "low": 200, + "high": 700, + "unit": "mg/dL" + }, + "direct_transition": "T1DM_Lab_A1C" + }, + "T1DM_Lab_A1C": { + "type": "Procedure", + "target_encounter": "T1DM_Initial_Encounter", + "reason": "diabetes_type_1", + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c/Hemoglobin.total in Blood" + } + ], + "direct_transition": "T1DM_Lab_A1C_Result" + }, + "T1DM_Lab_A1C_Result": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c/Hemoglobin.total in Blood" + } + ], + "range": { + "low": 8, + "high": 14, + "unit": "%" + }, + "direct_transition": "T1DM_Prescribe_Insulin" + }, + "T1DM_Prescribe_Insulin": { + "type": "MedicationOrder", + "target_encounter": "T1DM_Initial_Encounter", + "reason": "diabetes_type_1", + "codes": [ + { + "system": "RxNorm", + "code": "575679", + "display": "Insulin, Aspart, Human 100 UNT/ML [NovoLog]" + } + ], + "direct_transition": "T1DM_Education" + }, + "T1DM_Education": { + "type": "Procedure", + "target_encounter": "T1DM_Initial_Encounter", + "reason": "diabetes_type_1", + "codes": [ + { + "system": "SNOMED-CT", + "code": "11816003", + "display": "Diabetes mellitus education" + } + ], + "direct_transition": "T1DM_End_Initial_Encounter" + }, + "T1DM_End_Initial_Encounter": { + "type": "EncounterEnd", + "direct_transition": "T1DM_Followup_Cycle" + }, + "T1DM_Followup_Cycle": { + "type": "Delay", + "range": { + "low": 3, + "high": 6, + "unit": "months" + }, + "direct_transition": "T1DM_Followup_Encounter" + }, + "T1DM_Followup_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "diabetes_type_1", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up" + } + ], + "direct_transition": "T1DM_Followup_A1C" + }, + "T1DM_Followup_A1C": { + "type": "Procedure", + "target_encounter": "T1DM_Followup_Encounter", + "reason": "diabetes_type_1", + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c/Hemoglobin.total in Blood" + } + ], + "direct_transition": "T1DM_Followup_A1C_Result" + }, + "T1DM_Followup_A1C_Result": { + "type": "Observation", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c/Hemoglobin.total in Blood" + } + ], + "range": { + "low": 6, + "high": 10, + "unit": "%" + }, + "direct_transition": "T1DM_Complication_Check" + }, + "T1DM_Complication_Check": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.05, + "transition": "T1DM_Complication_DKA" + }, + { + "distribution": 0.95, + "transition": "T1DM_End_Followup_Encounter" + } + ] + }, + "T1DM_Complication_DKA": { + "type": "ConditionOnset", + "target_encounter": "T1DM_Followup_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "420422005", + "display": "Diabetes mellitus type 1 with ketoacidosis" + }, + { + "system": "ICD-10-CM", + "code": "E10.10", + "display": "Type 1 diabetes mellitus with ketoacidosis without coma" + } + ], + "direct_transition": "T1DM_End_Followup_Encounter" + }, + "T1DM_End_Followup_Encounter": { + "type": "EncounterEnd", + "direct_transition": "T1DM_Followup_Cycle" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/kidney_transplant.json b/src/main/resources/modules/kidney_transplant.json new file mode 100644 index 0000000..aea07eb --- /dev/null +++ b/src/main/resources/modules/kidney_transplant.json @@ -0,0 +1,2192 @@ +{ + "name": "Kidney Transplant", + "remarks": [ + "Basic Kidney Transplant module." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Wait Until Kidney Required" + }, + "Wait Until Kidney Required": { + "type": "Guard", + "allow": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 4 + }, + "direct_transition": "Wait for Consultation" + }, + "Wait Until Kidney Available": { + "type": "Delay", + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 5, + "standardDeviation": 1 + } + }, + "unit": "years", + "direct_transition": "Initiate Dental Cleaning" + }, + "Reset Kidney Damage": { + "type": "SetAttribute", + "attribute": "ckd", + "value": 0, + "direct_transition": "End_CKD_1" + }, + "Transplant Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "Awaiting Transplant", + "telemedicine_possibility": "none", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305432006", + "display": "Admission to surgical transplant department (procedure)" + } + ], + "direct_transition": "Pretransplant_MetabolicPanel" + }, + "End Transplant Encounter": { + "type": "EncounterEnd", + "direct_transition": "Schedule Five Follow Ups" + }, + "Schedule Follow Up": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "unit": "weeks", + "direct_transition": "Follow Up Encounter" + }, + "Follow Up Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "History of Transplant", + "telemedicine_possibility": "none", + "codes": [ + { + "system": "SNOMED-CT", + "code": "439740005", + "display": "Postoperative follow-up visit (procedure)" + } + ], + "direct_transition": "Weekly MetabolicPanel" + }, + "End Follow Up": { + "type": "EncounterEnd", + "direct_transition": "Remaining Followups" + }, + "Schedule Five Follow Ups": { + "type": "SetAttribute", + "attribute": "remaining_kidney_transplant_followups", + "direct_transition": "Schedule Follow Up", + "value": 5 + }, + "Remaining Followups": { + "type": "Counter", + "attribute": "remaining_kidney_transplant_followups", + "action": "decrement", + "conditional_transition": [ + { + "transition": "Schedule Follow Up", + "condition": { + "condition_type": "Attribute", + "attribute": "remaining_kidney_transplant_followups", + "operator": ">", + "value": 0 + } + }, + { + "transition": "End Rejection" + } + ] + }, + "End_CKD_1": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "431855005", + "display": "Chronic kidney disease stage 1 (disorder)" + } + ], + "direct_transition": "End_CKD_2" + }, + "End_CKD_2": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "431856006", + "display": "Chronic kidney disease stage 2 (disorder)" + } + ], + "direct_transition": "End_CKD_3" + }, + "End_CKD_3": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "433144002", + "display": "Chronic kidney disease stage 3 (disorder)" + } + ], + "direct_transition": "End_CKD_4" + }, + "Medication Review": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "473231009", + "display": "Renal disorder medication review (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "reason": "History of Transplant", + "conditional_transition": [ + { + "transition": "Cancel Low Dose", + "condition": { + "condition_type": "Attribute", + "attribute": "kidney_transplant_rejection", + "operator": "==", + "value": true + } + }, + { + "transition": "Administer Immunosuppressive" + } + ] + }, + "Kidney Transplant": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "70536003", + "display": "Transplant of kidney (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 90, + "standardDeviation": 20 + } + }, + "unit": "minutes", + "direct_transition": "End_Waiting", + "reason": "Awaiting Transplant" + }, + "Consultation": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "dialysis_reason", + "telemedicine_possibility": "none", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Consultation_MetabolicPanel" + }, + "End Consultation": { + "type": "EncounterEnd", + "direct_transition": "Wait Until Kidney Available" + }, + "Awaiting Transplant": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698306007", + "display": "Awaiting transplantation of kidney (situation)" + } + ], + "direct_transition": "Referral", + "assign_to_attribute": "kidney_transplant_dental_reason" + }, + "Wait for Consultation": { + "type": "Delay", + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 3, + "standardDeviation": 1 + } + }, + "unit": "months", + "direct_transition": "Consultation" + }, + "History of Transplant": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "161665007", + "display": "History of renal transplant (situation)" + } + ], + "direct_transition": "Post Transplant Care Plan", + "assign_to_attribute": "kidney_transplant" + }, + "Administer Immunosuppressive": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 108515, + "display": "1 ML tacrolimus 5 MG/ML Injection" + } + ], + "direct_transition": "Followup Care", + "reason": "History of Transplant", + "administration": true + }, + "Weekly MetabolicPanel": { + "type": "DiagnosticReport", + "number_of_observations": 8, + "codes": [ + { + "system": "LOINC", + "code": "51990-0", + "display": "Basic Metabolic Panel" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2339-0", + "display": "Glucose" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "6299-2", + "display": "Urea Nitrogen" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Creatinine", + "codes": [ + { + "system": "LOINC", + "code": "38483-4", + "display": "Creatinine" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "49765-1", + "display": "Calcium" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2947-0", + "display": "Sodium" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "6298-4", + "display": "Potassium" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2069-3", + "display": "Chloride" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "20565-8", + "display": "Carbon Dioxide" + } + ], + "unit": "mmol/L" + } + ], + "direct_transition": "Weekly_CBC_Panel" + }, + "Weekly_CBC_Panel": { + "type": "DiagnosticReport", + "number_of_observations": 4, + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "Complete blood count (hemogram) panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*3/uL", + "range": { + "low": 3.5, + "high": 10.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*6/uL", + "range": { + "low": 3.9, + "high": 5.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "unit": "g/dL", + "range": { + "low": 12, + "high": 17.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "4544-3", + "display": "Hematocrit [Volume Fraction] of Blood by Automated count" + } + ], + "unit": "%", + "range": { + "low": 35, + "high": 50 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 80, + "high": 95 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 27, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "21000-5", + "display": "Erythrocyte distribution width [Entitic volume] by Automated count" + } + ], + "range": { + "low": 39, + "high": 46 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32207-3", + "display": "Platelet distribution width [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 520 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32623-1", + "display": "Platelet mean volume [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 9.4, + "high": 12.3 + } + } + ], + "direct_transition": "Weekly Urinalysis" + }, + "Weekly Urinalysis": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24356-8", + "display": "Urinalysis complete panel - Urine" + }, + { + "system": "LOINC", + "code": "24357-6", + "display": "Urinalysis macro (dipstick) panel - Urine" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "25428-4", + "display": "Glucose [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 0 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "5770-3", + "display": "Bilirubin.total [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 0 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "2514-8", + "display": "Ketones [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 0 + } + }, + { + "category": "laboratory", + "unit": "{SG}", + "codes": [ + { + "system": "LOINC", + "code": "5811-5", + "display": "Specific gravity of Urine by Test strip" + } + ], + "range": { + "low": 1.005, + "high": 1.025 + } + }, + { + "category": "laboratory", + "unit": "[pH]", + "codes": [ + { + "system": "LOINC", + "code": "5803-2", + "display": "pH of Urine by Test strip" + } + ], + "range": { + "low": 4.5, + "high": 8 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "20454-5", + "display": "Protein [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 0 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "5802-4", + "display": "Nitrite [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 0 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "5794-3", + "display": "Hemoglobin [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 0 + } + }, + { + "category": "laboratory", + "unit": "{presence}", + "codes": [ + { + "system": "LOINC", + "code": "5799-2", + "display": "Leukocyte esterase [Presence] in Urine by Test strip" + } + ], + "exact": { + "quantity": 0 + } + } + ], + "direct_transition": "Diagnose Rejection if applicable" + }, + "Evaluation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "428830000", + "display": "Pretransplant evaluation of kidney recipient (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "Administer_Immunosuppressive", + "reason": "Awaiting Transplant" + }, + "Referral": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "306316000", + "display": "Referral to transplant surgeon (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "End Consultation", + "reason": "Awaiting Transplant" + }, + "Consultation_MetabolicPanel": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24321-2", + "display": "Basic Metabolic 2000 Panel" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2339-0", + "display": "Glucose" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "6299-2", + "display": "Urea Nitrogen" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "38483-4", + "display": "Creatinine" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.5, + "high": 3 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "49765-1", + "display": "Calcium" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2947-0", + "display": "Sodium" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "6298-4", + "display": "Potassium" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2069-3", + "display": "Chloride" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "20565-8", + "display": "Carbon Dioxide" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted" + } + ], + "range": { + "low": 5, + "high": 14 + } + } + ], + "direct_transition": "Consultation_Urinalysis" + }, + "Consultation_Urinalysis": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24357-6", + "display": "Urinalysis macro (dipstick) panel - Urine" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5767-9", + "display": "Appearance of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "7766007", + "display": "Cloudy urine (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5767-9", + "display": "Odor of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167248002", + "display": "Urine smell ammoniacal (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "32167-9", + "display": "Clarity of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "300828005", + "display": "Translucent (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5778-6", + "display": "Color of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "371254008", + "display": "Brown color (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5792-7", + "display": "Glucose [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.5, + "high": 2.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "25428-4", + "display": "Glucose [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167265006", + "display": "Urine glucose test = ++ (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "20505-4", + "display": "Bilirubin.total [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.2, + "high": 1.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5770-3", + "display": "Bilirubin.total [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "275778006", + "display": "Finding of bilirubin in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5797-6", + "display": "Ketones [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 0, + "high": 20 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "2514-8", + "display": "Ketones [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167291007", + "display": "Urine ketone test = +++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5811-5", + "display": "Specific gravity of Urine by Test strip" + } + ], + "range": { + "low": 1.001, + "high": 1.039 + } + }, + { + "category": "laboratory", + "unit": "pH", + "codes": [ + { + "system": "LOINC", + "code": "5803-2", + "display": "pH of Urine by Test strip" + } + ], + "range": { + "low": 5, + "high": 7 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5804-0", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 250, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "20454-5", + "display": "Protein [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167277001", + "display": "Urine protein test = +++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5802-4", + "display": "Nitrite [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "314138001", + "display": "Nitrite not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5794-3", + "display": "Hemoglobin [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167297006", + "display": "Blood not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5799-2", + "display": "Leukocyte esterase [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "394717006", + "display": "Urine leukocytes not detected (finding)" + } + } + ], + "direct_transition": "Awaiting Transplant" + }, + "Followup Care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "711446003", + "display": "Transplantation of kidney regime (regime/therapy)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "End Follow Up", + "reason": "History of Transplant" + }, + "Post Transplant Care Plan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "734163000", + "display": "Care plan (record artifact)" + } + ], + "direct_transition": "Check for Rejection", + "activities": [ + { + "system": "SNOMED-CT", + "code": "711446003", + "display": "Transplantation of kidney regime (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "226007004", + "display": "Post-surgical wound care (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "182809008", + "display": "Renal function monitoring (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "226164007", + "display": "Very low sodium diet (finding)" + } + ], + "reason": "History of Transplant" + }, + "Begin Post Surgical Stay": { + "type": "SetAttribute", + "attribute": "kidney_transplant_los", + "direct_transition": "Next Day", + "distribution": { + "kind": "EXPONENTIAL", + "round": true, + "parameters": { + "mean": 4 + } + } + }, + "Pretransplant_Urinalysis": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24357-6", + "display": "Urinalysis macro (dipstick) panel - Urine" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5767-9", + "display": "Appearance of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "7766007", + "display": "Cloudy urine (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5767-9", + "display": "Odor of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167248002", + "display": "Urine smell ammoniacal (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "32167-9", + "display": "Clarity of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "300828005", + "display": "Translucent (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5778-6", + "display": "Color of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "371254008", + "display": "Brown color (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5792-7", + "display": "Glucose [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.5, + "high": 2.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "25428-4", + "display": "Glucose [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167265006", + "display": "Urine glucose test = ++ (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "20505-4", + "display": "Bilirubin.total [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.2, + "high": 1.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5770-3", + "display": "Bilirubin.total [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "275778006", + "display": "Finding of bilirubin in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5797-6", + "display": "Ketones [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 0, + "high": 20 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "2514-8", + "display": "Ketones [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167291007", + "display": "Urine ketone test = +++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5811-5", + "display": "Specific gravity of Urine by Test strip" + } + ], + "range": { + "low": 1.001, + "high": 1.039 + } + }, + { + "category": "laboratory", + "unit": "pH", + "codes": [ + { + "system": "LOINC", + "code": "5803-2", + "display": "pH of Urine by Test strip" + } + ], + "range": { + "low": 5, + "high": 7 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5804-0", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 250, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "20454-5", + "display": "Protein [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167277001", + "display": "Urine protein test = +++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5802-4", + "display": "Nitrite [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "314138001", + "display": "Nitrite not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5794-3", + "display": "Hemoglobin [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167297006", + "display": "Blood not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5799-2", + "display": "Leukocyte esterase [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "394717006", + "display": "Urine leukocytes not detected (finding)" + } + } + ], + "direct_transition": "Evaluation" + }, + "Pretransplant_MetabolicPanel": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24321-2", + "display": "Basic Metabolic 2000 Panel" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2339-0", + "display": "Glucose" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "6299-2", + "display": "Urea Nitrogen" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "38483-4", + "display": "Creatinine" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.5, + "high": 3 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "49765-1", + "display": "Calcium" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2947-0", + "display": "Sodium" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "6298-4", + "display": "Potassium" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2069-3", + "display": "Chloride" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "20565-8", + "display": "Carbon Dioxide" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted" + } + ], + "range": { + "low": 5, + "high": 14 + } + } + ], + "direct_transition": "Pretransplant_Urinalysis" + }, + "Administer_Immunosuppressive": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 108515, + "display": "1 ML tacrolimus 5 MG/ML Injection" + } + ], + "reason": "Awaiting Transplant", + "administration": true, + "direct_transition": "Kidney" + }, + "Stay?": { + "type": "Counter", + "attribute": "kidney_transplant_los", + "action": "decrement", + "conditional_transition": [ + { + "transition": "Next Day", + "condition": { + "condition_type": "Attribute", + "attribute": "kidney_transplant_los", + "operator": ">", + "value": 0 + } + }, + { + "transition": "Prescribe Immunosuppressant" + } + ] + }, + "Next Day": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "unit": "days", + "direct_transition": "Administer_Immunosuppressive_2" + }, + "Administer_Immunosuppressive_2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 108515, + "display": "1 ML tacrolimus 5 MG/ML Injection" + } + ], + "reason": "History of Transplant", + "administration": true, + "direct_transition": "Daily_MetabolicPanel" + }, + "Daily_MetabolicPanel": { + "type": "DiagnosticReport", + "number_of_observations": 8, + "codes": [ + { + "system": "LOINC", + "code": "51990-0", + "display": "Basic Metabolic Panel" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2339-0", + "display": "Glucose" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "6299-2", + "display": "Urea Nitrogen" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Creatinine", + "codes": [ + { + "system": "LOINC", + "code": "38483-4", + "display": "Creatinine" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "49765-1", + "display": "Calcium" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2947-0", + "display": "Sodium" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "6298-4", + "display": "Potassium" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2069-3", + "display": "Chloride" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "20565-8", + "display": "Carbon Dioxide" + } + ], + "unit": "mmol/L" + } + ], + "direct_transition": "Daily_CBC_Panel" + }, + "Daily_CBC_Panel": { + "type": "DiagnosticReport", + "number_of_observations": 4, + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "Complete blood count (hemogram) panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*3/uL", + "range": { + "low": 3.5, + "high": 10.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*6/uL", + "range": { + "low": 3.9, + "high": 5.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "unit": "g/dL", + "range": { + "low": 12, + "high": 17.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "4544-3", + "display": "Hematocrit [Volume Fraction] of Blood by Automated count" + } + ], + "unit": "%", + "range": { + "low": 35, + "high": 50 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 80, + "high": 95 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 27, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "21000-5", + "display": "Erythrocyte distribution width [Entitic volume] by Automated count" + } + ], + "range": { + "low": 39, + "high": 46 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32207-3", + "display": "Platelet distribution width [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 520 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32623-1", + "display": "Platelet mean volume [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 9.4, + "high": 12.3 + } + } + ], + "direct_transition": "Daily Followup Care" + }, + "Daily Followup Care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "711446003", + "display": "Transplantation of kidney regime (regime/therapy)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "reason": "History of Transplant", + "direct_transition": "Stay?" + }, + "Prescribe Immunosuppressant": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1664463, + "display": "24 HR tacrolimus 1 MG Extended Release Oral Tablet" + } + ], + "reason": "History of Transplant", + "administration": false, + "direct_transition": "End Transplant Encounter", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + }, + "as_needed": true + } + }, + "Kidney": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "119219003", + "display": "Kidney part (body structure)" + } + } + ], + "direct_transition": "Kidney Transplant" + }, + "End_Waiting": { + "type": "ConditionEnd", + "condition_onset": "Awaiting Transplant", + "direct_transition": "History of Transplant" + }, + "Rejection": { + "type": "SetAttribute", + "attribute": "kidney_transplant_rejection", + "direct_transition": "Reset Kidney Damage", + "value": true + }, + "Check for Rejection": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Rejection", + "distribution": 0.1 + }, + { + "transition": "Reset Kidney Damage", + "distribution": 0.9 + } + ] + }, + "Diagnose Rejection if applicable": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Transplant Rejection", + "condition": { + "condition_type": "Attribute", + "attribute": "kidney_transplant_rejection", + "operator": "==", + "value": true + } + }, + { + "transition": "Medication Review" + } + ] + }, + "Transplant Rejection": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "213150003", + "display": "Kidney transplant failure and rejection (disorder)" + } + ], + "direct_transition": "Medication Review" + }, + "Increase_Immunosuppressant": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1431987, + "display": "24 HR tacrolimus 5 MG Extended Release Oral Capsule" + } + ], + "reason": "History of Transplant", + "administration": false, + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + }, + "as_needed": true + }, + "direct_transition": "Clear Rejection" + }, + "Cancel Low Dose": { + "type": "MedicationEnd", + "direct_transition": "Increase_Immunosuppressant", + "medication_order": "Prescribe Immunosuppressant" + }, + "Clear Rejection": { + "type": "SetAttribute", + "attribute": "kidney_transplant_rejection", + "direct_transition": "Administer Immunosuppressive", + "value": false + }, + "End Rejection": { + "type": "ConditionEnd", + "direct_transition": "End Dysplasia", + "condition_onset": "Transplant Rejection" + }, + "End Dysplasia": { + "type": "ConditionEnd", + "direct_transition": "Wait Until Kidney Required", + "codes": [ + { + "system": "SNOMED-CT", + "code": "204949001", + "display": "Renal dysplasia (disorder)" + } + ] + }, + "End_CKD_4": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "431857002", + "display": "Chronic kidney disease stage 4 (disorder)" + } + ], + "direct_transition": "End_End_Stage_Renal_Disease" + }, + "End_End_Stage_Renal_Disease": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "46177005", + "display": "End-stage renal disease (disorder)" + } + ], + "direct_transition": "End any other dialysis reason" + }, + "End any other dialysis reason": { + "type": "ConditionEnd", + "direct_transition": "Begin Post Surgical Stay", + "referenced_by_attribute": "dialysis_reason" + }, + "Initiate Dental Cleaning": { + "type": "SetAttribute", + "attribute": "dental_referral", + "direct_transition": "Wait for Cleaning", + "value_attribute": "kidney_transplant_dental_reason" + }, + "Wait for Cleaning": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 7, + "low": 1 + } + }, + "unit": "days", + "direct_transition": "Check Cleaning Status" + }, + "Check Cleaning Status": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Wait for Cleaning", + "condition": { + "condition_type": "Attribute", + "attribute": "dental_referral", + "operator": "is not nil" + } + }, + { + "transition": "Transplant Encounter" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/AML.csv b/src/main/resources/modules/lookup_tables/AML.csv new file mode 100644 index 0000000..50a62af --- /dev/null +++ b/src/main/resources/modules/lookup_tables/AML.csv @@ -0,0 +1,13 @@ +gender,race,ethnicity,Levofloxacin,No_Levofloxacin_Prophylaxis +F,white,hispanic,0.174554813,0.825445187 +F,black,hispanic,0.266740323,0.733259677 +F,other,hispanic,0.181338426,0.818661575 +F,white,nonhispanic,0.272348285,0.727651715 +F,black,nonhispanic,0.416180272,0.583819728 +F,other,nonhispanic,0.282932383,0.717067617 +M,white,hispanic,0.170360288,0.829639713 +M,black,hispanic,0.260330594,0.739669406 +M,other,hispanic,0.176980891,0.823019109 +M,white,nonhispanic,0.265803798,0.734196202 +M,black,nonhispanic,0.406179524,0.593820476 +M,other,nonhispanic,0.276133562,0.723866438 diff --git a/src/main/resources/modules/lookup_tables/ace_arb_amlodipine_benazepril_product_distribution.csv b/src/main/resources/modules/lookup_tables/ace_arb_amlodipine_benazepril_product_distribution.csv new file mode 100644 index 0000000..cb0fe64 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/ace_arb_amlodipine_benazepril_product_distribution.csv @@ -0,0 +1,244 @@ +age,gender,state,Prescribe_Amlodipine_10_Mg_Benazepril_Hydrochloride_20_Mg_Oral_Capsule,Prescribe_Amlodipine_10_Mg_Benazepril_Hydrochloride_40_Mg_Oral_Capsule,Prescribe_Amlodipine_2_5_Mg_Benazepril_Hydrochloride_10_Mg_Oral_Capsule,Prescribe_Amlodipine_5_Mg_Benazepril_Hydrochloride_10_Mg_Oral_Capsule,Prescribe_Amlodipine_5_Mg_Benazepril_Hydrochloride_20_Mg_Oral_Capsule,Prescribe_Amlodipine_5_Mg_Benazepril_Hydrochloride_40_Mg_Oral_Capsule +26-35,M,Alabama,0.0,0.0,0.0,1.0,0.0,0.0 +26-35,M,Alaska,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,Arizona,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,Arkansas,0.0,0.0,0.0,1.0,0.0,0.0 +26-35,M,California,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,Colorado,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,Delaware,0.0,0.0,0.0,1.0,0.0,0.0 +26-35,M,District of Columbia,0.0,0.0,0.0,1.0,0.0,0.0 +26-35,M,Florida,0.0,0.0,0.0,1.0,0.0,0.0 +26-35,M,Georgia,0.0,0.0,0.0,1.0,0.0,0.0 +26-35,M,Hawaii,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,Idaho,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,Kentucky,0.0,0.0,0.0,1.0,0.0,0.0 +26-35,M,Louisiana,0.0,0.0,0.0,1.0,0.0,0.0 +26-35,M,Maryland,0.0,0.0,0.0,1.0,0.0,0.0 +26-35,M,Mississippi,0.0,0.0,0.0,1.0,0.0,0.0 +26-35,M,Montana,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,Nevada,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,New Mexico,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,North Carolina,0.0,0.0,0.0,1.0,0.0,0.0 +26-35,M,Oklahoma,0.0,0.0,0.0,1.0,0.0,0.0 +26-35,M,Oregon,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,South Carolina,0.0,0.0,0.0,1.0,0.0,0.0 +26-35,M,Tennessee,0.0,0.0,0.0,1.0,0.0,0.0 +26-35,M,Texas,0.0,0.0,0.0,1.0,0.0,0.0 +26-35,M,Utah,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,Virginia,0.0,0.0,0.0,1.0,0.0,0.0 +26-35,M,Washington,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,West Virginia,0.0,0.0,0.0,1.0,0.0,0.0 +26-35,M,Wyoming,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Connecticut,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,M,Maine,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,M,Massachusetts,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,M,New Hampshire,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,M,New Jersey,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,M,New York,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,M,Pennsylvania,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,M,Rhode Island,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,M,Vermont,0.0,0.0,1.0,0.0,0.0,0.0 +46-65,F,Alabama,0.0,0.167,0.0,0.0,0.551,0.282 +46-65,F,Alaska,0.0,0.0,0.0,1.0,0.0,0.0 +46-65,F,Arizona,0.0,0.0,0.0,1.0,0.0,0.0 +46-65,F,Arkansas,0.0,0.167,0.0,0.0,0.551,0.282 +46-65,F,California,0.0,0.0,0.0,1.0,0.0,0.0 +46-65,F,Colorado,0.0,0.0,0.0,1.0,0.0,0.0 +46-65,F,Connecticut,0.0,0.0,0.0,0.0,1.0,0.0 +46-65,F,Delaware,0.0,0.167,0.0,0.0,0.551,0.282 +46-65,F,District of Columbia,0.0,0.167,0.0,0.0,0.551,0.282 +46-65,F,Florida,0.0,0.167,0.0,0.0,0.551,0.282 +46-65,F,Georgia,0.0,0.167,0.0,0.0,0.551,0.282 +46-65,F,Hawaii,0.0,0.0,0.0,1.0,0.0,0.0 +46-65,F,Idaho,0.0,0.0,0.0,1.0,0.0,0.0 +46-65,F,Illinois,0.353,0.0,0.0,0.234,0.412,0.0 +46-65,F,Indiana,0.353,0.0,0.0,0.234,0.412,0.0 +46-65,F,Iowa,0.353,0.0,0.0,0.234,0.412,0.0 +46-65,F,Kansas,0.353,0.0,0.0,0.234,0.412,0.0 +46-65,F,Kentucky,0.0,0.167,0.0,0.0,0.551,0.282 +46-65,F,Louisiana,0.0,0.167,0.0,0.0,0.551,0.282 +46-65,F,Maine,0.0,0.0,0.0,0.0,1.0,0.0 +46-65,F,Maryland,0.0,0.167,0.0,0.0,0.551,0.282 +46-65,F,Massachusetts,0.0,0.0,0.0,0.0,1.0,0.0 +46-65,F,Michigan,0.353,0.0,0.0,0.234,0.412,0.0 +46-65,F,Minnesota,0.353,0.0,0.0,0.234,0.412,0.0 +46-65,F,Mississippi,0.0,0.167,0.0,0.0,0.551,0.282 +46-65,F,Missouri,0.353,0.0,0.0,0.234,0.412,0.0 +46-65,F,Montana,0.0,0.0,0.0,1.0,0.0,0.0 +46-65,F,Nebraska,0.353,0.0,0.0,0.234,0.412,0.0 +46-65,F,Nevada,0.0,0.0,0.0,1.0,0.0,0.0 +46-65,F,New Hampshire,0.0,0.0,0.0,0.0,1.0,0.0 +46-65,F,New Jersey,0.0,0.0,0.0,0.0,1.0,0.0 +46-65,F,New Mexico,0.0,0.0,0.0,1.0,0.0,0.0 +46-65,F,New York,0.0,0.0,0.0,0.0,1.0,0.0 +46-65,F,North Carolina,0.0,0.167,0.0,0.0,0.551,0.282 +46-65,F,North Dakota,0.353,0.0,0.0,0.234,0.412,0.0 +46-65,F,Ohio,0.353,0.0,0.0,0.234,0.412,0.0 +46-65,F,Oklahoma,0.0,0.167,0.0,0.0,0.551,0.282 +46-65,F,Oregon,0.0,0.0,0.0,1.0,0.0,0.0 +46-65,F,Pennsylvania,0.0,0.0,0.0,0.0,1.0,0.0 +46-65,F,Rhode Island,0.0,0.0,0.0,0.0,1.0,0.0 +46-65,F,South Carolina,0.0,0.167,0.0,0.0,0.551,0.282 +46-65,F,South Dakota,0.353,0.0,0.0,0.234,0.412,0.0 +46-65,F,Tennessee,0.0,0.167,0.0,0.0,0.551,0.282 +46-65,F,Texas,0.0,0.167,0.0,0.0,0.551,0.282 +46-65,F,Utah,0.0,0.0,0.0,1.0,0.0,0.0 +46-65,F,Vermont,0.0,0.0,0.0,0.0,1.0,0.0 +46-65,F,Virginia,0.0,0.167,0.0,0.0,0.551,0.282 +46-65,F,Washington,0.0,0.0,0.0,1.0,0.0,0.0 +46-65,F,West Virginia,0.0,0.167,0.0,0.0,0.551,0.282 +46-65,F,Wisconsin,0.353,0.0,0.0,0.234,0.412,0.0 +46-65,F,Wyoming,0.0,0.0,0.0,1.0,0.0,0.0 +46-65,M,Alabama,0.652,0.157,0.0,0.112,0.079,0.0 +46-65,M,Alaska,1.0,0.0,0.0,0.0,0.0,0.0 +46-65,M,Arizona,1.0,0.0,0.0,0.0,0.0,0.0 +46-65,M,Arkansas,0.652,0.157,0.0,0.112,0.079,0.0 +46-65,M,California,1.0,0.0,0.0,0.0,0.0,0.0 +46-65,M,Colorado,1.0,0.0,0.0,0.0,0.0,0.0 +46-65,M,Connecticut,0.458,0.333,0.0,0.0,0.0,0.21 +46-65,M,Delaware,0.652,0.157,0.0,0.112,0.079,0.0 +46-65,M,District of Columbia,0.652,0.157,0.0,0.112,0.079,0.0 +46-65,M,Florida,0.652,0.157,0.0,0.112,0.079,0.0 +46-65,M,Georgia,0.652,0.157,0.0,0.112,0.079,0.0 +46-65,M,Hawaii,1.0,0.0,0.0,0.0,0.0,0.0 +46-65,M,Idaho,1.0,0.0,0.0,0.0,0.0,0.0 +46-65,M,Illinois,0.321,0.277,0.162,0.24,0.0,0.0 +46-65,M,Indiana,0.321,0.277,0.162,0.24,0.0,0.0 +46-65,M,Iowa,0.321,0.277,0.162,0.24,0.0,0.0 +46-65,M,Kansas,0.321,0.277,0.162,0.24,0.0,0.0 +46-65,M,Kentucky,0.652,0.157,0.0,0.112,0.079,0.0 +46-65,M,Louisiana,0.652,0.157,0.0,0.112,0.079,0.0 +46-65,M,Maine,0.458,0.333,0.0,0.0,0.0,0.21 +46-65,M,Maryland,0.652,0.157,0.0,0.112,0.079,0.0 +46-65,M,Massachusetts,0.458,0.333,0.0,0.0,0.0,0.21 +46-65,M,Michigan,0.321,0.277,0.162,0.24,0.0,0.0 +46-65,M,Minnesota,0.321,0.277,0.162,0.24,0.0,0.0 +46-65,M,Mississippi,0.652,0.157,0.0,0.112,0.079,0.0 +46-65,M,Missouri,0.321,0.277,0.162,0.24,0.0,0.0 +46-65,M,Montana,1.0,0.0,0.0,0.0,0.0,0.0 +46-65,M,Nebraska,0.321,0.277,0.162,0.24,0.0,0.0 +46-65,M,Nevada,1.0,0.0,0.0,0.0,0.0,0.0 +46-65,M,New Hampshire,0.458,0.333,0.0,0.0,0.0,0.21 +46-65,M,New Jersey,0.458,0.333,0.0,0.0,0.0,0.21 +46-65,M,New Mexico,1.0,0.0,0.0,0.0,0.0,0.0 +46-65,M,New York,0.458,0.333,0.0,0.0,0.0,0.21 +46-65,M,North Carolina,0.652,0.157,0.0,0.112,0.079,0.0 +46-65,M,North Dakota,0.321,0.277,0.162,0.24,0.0,0.0 +46-65,M,Ohio,0.321,0.277,0.162,0.24,0.0,0.0 +46-65,M,Oklahoma,0.652,0.157,0.0,0.112,0.079,0.0 +46-65,M,Oregon,1.0,0.0,0.0,0.0,0.0,0.0 +46-65,M,Pennsylvania,0.458,0.333,0.0,0.0,0.0,0.21 +46-65,M,Rhode Island,0.458,0.333,0.0,0.0,0.0,0.21 +46-65,M,South Carolina,0.652,0.157,0.0,0.112,0.079,0.0 +46-65,M,South Dakota,0.321,0.277,0.162,0.24,0.0,0.0 +46-65,M,Tennessee,0.652,0.157,0.0,0.112,0.079,0.0 +46-65,M,Texas,0.652,0.157,0.0,0.112,0.079,0.0 +46-65,M,Utah,1.0,0.0,0.0,0.0,0.0,0.0 +46-65,M,Vermont,0.458,0.333,0.0,0.0,0.0,0.21 +46-65,M,Virginia,0.652,0.157,0.0,0.112,0.079,0.0 +46-65,M,Washington,1.0,0.0,0.0,0.0,0.0,0.0 +46-65,M,West Virginia,0.652,0.157,0.0,0.112,0.079,0.0 +46-65,M,Wisconsin,0.321,0.277,0.162,0.24,0.0,0.0 +46-65,M,Wyoming,1.0,0.0,0.0,0.0,0.0,0.0 +65-103,F,Alabama,0.038,0.415,0.0,0.0,0.548,0.0 +65-103,F,Alaska,0.664,0.0,0.0,0.255,0.081,0.0 +65-103,F,Arizona,0.664,0.0,0.0,0.255,0.081,0.0 +65-103,F,Arkansas,0.038,0.415,0.0,0.0,0.548,0.0 +65-103,F,California,0.664,0.0,0.0,0.255,0.081,0.0 +65-103,F,Colorado,0.664,0.0,0.0,0.255,0.081,0.0 +65-103,F,Connecticut,0.0,0.403,0.0,0.0,0.175,0.421 +65-103,F,Delaware,0.038,0.415,0.0,0.0,0.548,0.0 +65-103,F,District of Columbia,0.038,0.415,0.0,0.0,0.548,0.0 +65-103,F,Florida,0.038,0.415,0.0,0.0,0.548,0.0 +65-103,F,Georgia,0.038,0.415,0.0,0.0,0.548,0.0 +65-103,F,Hawaii,0.664,0.0,0.0,0.255,0.081,0.0 +65-103,F,Idaho,0.664,0.0,0.0,0.255,0.081,0.0 +65-103,F,Illinois,0.0,0.207,0.0,0.793,0.0,0.0 +65-103,F,Indiana,0.0,0.207,0.0,0.793,0.0,0.0 +65-103,F,Iowa,0.0,0.207,0.0,0.793,0.0,0.0 +65-103,F,Kansas,0.0,0.207,0.0,0.793,0.0,0.0 +65-103,F,Kentucky,0.038,0.415,0.0,0.0,0.548,0.0 +65-103,F,Louisiana,0.038,0.415,0.0,0.0,0.548,0.0 +65-103,F,Maine,0.0,0.403,0.0,0.0,0.175,0.421 +65-103,F,Maryland,0.038,0.415,0.0,0.0,0.548,0.0 +65-103,F,Massachusetts,0.0,0.403,0.0,0.0,0.175,0.421 +65-103,F,Michigan,0.0,0.207,0.0,0.793,0.0,0.0 +65-103,F,Minnesota,0.0,0.207,0.0,0.793,0.0,0.0 +65-103,F,Mississippi,0.038,0.415,0.0,0.0,0.548,0.0 +65-103,F,Missouri,0.0,0.207,0.0,0.793,0.0,0.0 +65-103,F,Montana,0.664,0.0,0.0,0.255,0.081,0.0 +65-103,F,Nebraska,0.0,0.207,0.0,0.793,0.0,0.0 +65-103,F,Nevada,0.664,0.0,0.0,0.255,0.081,0.0 +65-103,F,New Hampshire,0.0,0.403,0.0,0.0,0.175,0.421 +65-103,F,New Jersey,0.0,0.403,0.0,0.0,0.175,0.421 +65-103,F,New Mexico,0.664,0.0,0.0,0.255,0.081,0.0 +65-103,F,New York,0.0,0.403,0.0,0.0,0.175,0.421 +65-103,F,North Carolina,0.038,0.415,0.0,0.0,0.548,0.0 +65-103,F,North Dakota,0.0,0.207,0.0,0.793,0.0,0.0 +65-103,F,Ohio,0.0,0.207,0.0,0.793,0.0,0.0 +65-103,F,Oklahoma,0.038,0.415,0.0,0.0,0.548,0.0 +65-103,F,Oregon,0.664,0.0,0.0,0.255,0.081,0.0 +65-103,F,Pennsylvania,0.0,0.403,0.0,0.0,0.175,0.421 +65-103,F,Rhode Island,0.0,0.403,0.0,0.0,0.175,0.421 +65-103,F,South Carolina,0.038,0.415,0.0,0.0,0.548,0.0 +65-103,F,South Dakota,0.0,0.207,0.0,0.793,0.0,0.0 +65-103,F,Tennessee,0.038,0.415,0.0,0.0,0.548,0.0 +65-103,F,Texas,0.038,0.415,0.0,0.0,0.548,0.0 +65-103,F,Utah,0.664,0.0,0.0,0.255,0.081,0.0 +65-103,F,Vermont,0.0,0.403,0.0,0.0,0.175,0.421 +65-103,F,Virginia,0.038,0.415,0.0,0.0,0.548,0.0 +65-103,F,Washington,0.664,0.0,0.0,0.255,0.081,0.0 +65-103,F,West Virginia,0.038,0.415,0.0,0.0,0.548,0.0 +65-103,F,Wisconsin,0.0,0.207,0.0,0.793,0.0,0.0 +65-103,F,Wyoming,0.664,0.0,0.0,0.255,0.081,0.0 +65-103,M,Alabama,0.132,0.299,0.0,0.162,0.407,0.0 +65-103,M,Alaska,0.347,0.0,0.0,0.315,0.337,0.0 +65-103,M,Arizona,0.347,0.0,0.0,0.315,0.337,0.0 +65-103,M,Arkansas,0.132,0.299,0.0,0.162,0.407,0.0 +65-103,M,California,0.347,0.0,0.0,0.315,0.337,0.0 +65-103,M,Colorado,0.347,0.0,0.0,0.315,0.337,0.0 +65-103,M,Connecticut,0.077,0.155,0.218,0.14,0.41,0.0 +65-103,M,Delaware,0.132,0.299,0.0,0.162,0.407,0.0 +65-103,M,District of Columbia,0.132,0.299,0.0,0.162,0.407,0.0 +65-103,M,Florida,0.132,0.299,0.0,0.162,0.407,0.0 +65-103,M,Georgia,0.132,0.299,0.0,0.162,0.407,0.0 +65-103,M,Hawaii,0.347,0.0,0.0,0.315,0.337,0.0 +65-103,M,Idaho,0.347,0.0,0.0,0.315,0.337,0.0 +65-103,M,Illinois,0.541,0.058,0.0,0.342,0.058,0.0 +65-103,M,Indiana,0.541,0.058,0.0,0.342,0.058,0.0 +65-103,M,Iowa,0.541,0.058,0.0,0.342,0.058,0.0 +65-103,M,Kansas,0.541,0.058,0.0,0.342,0.058,0.0 +65-103,M,Kentucky,0.132,0.299,0.0,0.162,0.407,0.0 +65-103,M,Louisiana,0.132,0.299,0.0,0.162,0.407,0.0 +65-103,M,Maine,0.077,0.155,0.218,0.14,0.41,0.0 +65-103,M,Maryland,0.132,0.299,0.0,0.162,0.407,0.0 +65-103,M,Massachusetts,0.077,0.155,0.218,0.14,0.41,0.0 +65-103,M,Michigan,0.541,0.058,0.0,0.342,0.058,0.0 +65-103,M,Minnesota,0.541,0.058,0.0,0.342,0.058,0.0 +65-103,M,Mississippi,0.132,0.299,0.0,0.162,0.407,0.0 +65-103,M,Missouri,0.541,0.058,0.0,0.342,0.058,0.0 +65-103,M,Montana,0.347,0.0,0.0,0.315,0.337,0.0 +65-103,M,Nebraska,0.541,0.058,0.0,0.342,0.058,0.0 +65-103,M,Nevada,0.347,0.0,0.0,0.315,0.337,0.0 +65-103,M,New Hampshire,0.077,0.155,0.218,0.14,0.41,0.0 +65-103,M,New Jersey,0.077,0.155,0.218,0.14,0.41,0.0 +65-103,M,New Mexico,0.347,0.0,0.0,0.315,0.337,0.0 +65-103,M,New York,0.077,0.155,0.218,0.14,0.41,0.0 +65-103,M,North Carolina,0.132,0.299,0.0,0.162,0.407,0.0 +65-103,M,North Dakota,0.541,0.058,0.0,0.342,0.058,0.0 +65-103,M,Ohio,0.541,0.058,0.0,0.342,0.058,0.0 +65-103,M,Oklahoma,0.132,0.299,0.0,0.162,0.407,0.0 +65-103,M,Oregon,0.347,0.0,0.0,0.315,0.337,0.0 +65-103,M,Pennsylvania,0.077,0.155,0.218,0.14,0.41,0.0 +65-103,M,Rhode Island,0.077,0.155,0.218,0.14,0.41,0.0 +65-103,M,South Carolina,0.132,0.299,0.0,0.162,0.407,0.0 +65-103,M,South Dakota,0.541,0.058,0.0,0.342,0.058,0.0 +65-103,M,Tennessee,0.132,0.299,0.0,0.162,0.407,0.0 +65-103,M,Texas,0.132,0.299,0.0,0.162,0.407,0.0 +65-103,M,Utah,0.347,0.0,0.0,0.315,0.337,0.0 +65-103,M,Vermont,0.077,0.155,0.218,0.14,0.41,0.0 +65-103,M,Virginia,0.132,0.299,0.0,0.162,0.407,0.0 +65-103,M,Washington,0.347,0.0,0.0,0.315,0.337,0.0 +65-103,M,West Virginia,0.132,0.299,0.0,0.162,0.407,0.0 +65-103,M,Wisconsin,0.541,0.058,0.0,0.342,0.058,0.0 +65-103,M,Wyoming,0.347,0.0,0.0,0.315,0.337,0.0 diff --git a/src/main/resources/modules/lookup_tables/ace_arb_benazepril_hydrochlorothiazide_product_distribution.csv b/src/main/resources/modules/lookup_tables/ace_arb_benazepril_hydrochlorothiazide_product_distribution.csv new file mode 100644 index 0000000..706e03f --- /dev/null +++ b/src/main/resources/modules/lookup_tables/ace_arb_benazepril_hydrochlorothiazide_product_distribution.csv @@ -0,0 +1,170 @@ +age,gender,state,Prescribe_Benazepril_Hydrochloride_10_Mg_Hydrochlorothiazide_12_5_Mg_Oral_Tablet,Prescribe_Benazepril_Hydrochloride_20_Mg_Hydrochlorothiazide_12_5_Mg_Oral_Tablet,Prescribe_Benazepril_Hydrochloride_20_Mg_Hydrochlorothiazide_25_Mg_Oral_Tablet +36-45,M,Alabama,0.0,1.0,0.0 +36-45,M,Arkansas,0.0,1.0,0.0 +36-45,M,Delaware,0.0,1.0,0.0 +36-45,M,District of Columbia,0.0,1.0,0.0 +36-45,M,Florida,0.0,1.0,0.0 +36-45,M,Georgia,0.0,1.0,0.0 +36-45,M,Kentucky,0.0,1.0,0.0 +36-45,M,Louisiana,0.0,1.0,0.0 +36-45,M,Maryland,0.0,1.0,0.0 +36-45,M,Mississippi,0.0,1.0,0.0 +36-45,M,North Carolina,0.0,1.0,0.0 +36-45,M,Oklahoma,0.0,1.0,0.0 +36-45,M,South Carolina,0.0,1.0,0.0 +36-45,M,Tennessee,0.0,1.0,0.0 +36-45,M,Texas,0.0,1.0,0.0 +36-45,M,Virginia,0.0,1.0,0.0 +36-45,M,West Virginia,0.0,1.0,0.0 +46-65,F,Alabama,0.0,0.0,1.0 +46-65,F,Arkansas,0.0,0.0,1.0 +46-65,F,Delaware,0.0,0.0,1.0 +46-65,F,District of Columbia,0.0,0.0,1.0 +46-65,F,Florida,0.0,0.0,1.0 +46-65,F,Georgia,0.0,0.0,1.0 +46-65,F,Illinois,0.0,0.0,1.0 +46-65,F,Indiana,0.0,0.0,1.0 +46-65,F,Iowa,0.0,0.0,1.0 +46-65,F,Kansas,0.0,0.0,1.0 +46-65,F,Kentucky,0.0,0.0,1.0 +46-65,F,Louisiana,0.0,0.0,1.0 +46-65,F,Maryland,0.0,0.0,1.0 +46-65,F,Michigan,0.0,0.0,1.0 +46-65,F,Minnesota,0.0,0.0,1.0 +46-65,F,Mississippi,0.0,0.0,1.0 +46-65,F,Missouri,0.0,0.0,1.0 +46-65,F,Nebraska,0.0,0.0,1.0 +46-65,F,North Carolina,0.0,0.0,1.0 +46-65,F,North Dakota,0.0,0.0,1.0 +46-65,F,Ohio,0.0,0.0,1.0 +46-65,F,Oklahoma,0.0,0.0,1.0 +46-65,F,South Carolina,0.0,0.0,1.0 +46-65,F,South Dakota,0.0,0.0,1.0 +46-65,F,Tennessee,0.0,0.0,1.0 +46-65,F,Texas,0.0,0.0,1.0 +46-65,F,Virginia,0.0,0.0,1.0 +46-65,F,West Virginia,0.0,0.0,1.0 +46-65,F,Wisconsin,0.0,0.0,1.0 +46-65,M,Alabama,0.0,0.393,0.607 +46-65,M,Alaska,1.0,0.0,0.0 +46-65,M,Arizona,1.0,0.0,0.0 +46-65,M,Arkansas,0.0,0.393,0.607 +46-65,M,California,1.0,0.0,0.0 +46-65,M,Colorado,1.0,0.0,0.0 +46-65,M,Delaware,0.0,0.393,0.607 +46-65,M,District of Columbia,0.0,0.393,0.607 +46-65,M,Florida,0.0,0.393,0.607 +46-65,M,Georgia,0.0,0.393,0.607 +46-65,M,Hawaii,1.0,0.0,0.0 +46-65,M,Idaho,1.0,0.0,0.0 +46-65,M,Illinois,0.0,0.0,1.0 +46-65,M,Indiana,0.0,0.0,1.0 +46-65,M,Iowa,0.0,0.0,1.0 +46-65,M,Kansas,0.0,0.0,1.0 +46-65,M,Kentucky,0.0,0.393,0.607 +46-65,M,Louisiana,0.0,0.393,0.607 +46-65,M,Maryland,0.0,0.393,0.607 +46-65,M,Michigan,0.0,0.0,1.0 +46-65,M,Minnesota,0.0,0.0,1.0 +46-65,M,Mississippi,0.0,0.393,0.607 +46-65,M,Missouri,0.0,0.0,1.0 +46-65,M,Montana,1.0,0.0,0.0 +46-65,M,Nebraska,0.0,0.0,1.0 +46-65,M,Nevada,1.0,0.0,0.0 +46-65,M,New Mexico,1.0,0.0,0.0 +46-65,M,North Carolina,0.0,0.393,0.607 +46-65,M,North Dakota,0.0,0.0,1.0 +46-65,M,Ohio,0.0,0.0,1.0 +46-65,M,Oklahoma,0.0,0.393,0.607 +46-65,M,Oregon,1.0,0.0,0.0 +46-65,M,South Carolina,0.0,0.393,0.607 +46-65,M,South Dakota,0.0,0.0,1.0 +46-65,M,Tennessee,0.0,0.393,0.607 +46-65,M,Texas,0.0,0.393,0.607 +46-65,M,Utah,1.0,0.0,0.0 +46-65,M,Virginia,0.0,0.393,0.607 +46-65,M,Washington,1.0,0.0,0.0 +46-65,M,West Virginia,0.0,0.393,0.607 +46-65,M,Wisconsin,0.0,0.0,1.0 +46-65,M,Wyoming,1.0,0.0,0.0 +65-103,F,Alabama,0.204,0.796,0.0 +65-103,F,Alaska,0.5,0.0,0.5 +65-103,F,Arizona,0.5,0.0,0.5 +65-103,F,Arkansas,0.204,0.796,0.0 +65-103,F,California,0.5,0.0,0.5 +65-103,F,Colorado,0.5,0.0,0.5 +65-103,F,Connecticut,0.0,1.0,0.0 +65-103,F,Delaware,0.204,0.796,0.0 +65-103,F,District of Columbia,0.204,0.796,0.0 +65-103,F,Florida,0.204,0.796,0.0 +65-103,F,Georgia,0.204,0.796,0.0 +65-103,F,Hawaii,0.5,0.0,0.5 +65-103,F,Idaho,0.5,0.0,0.5 +65-103,F,Illinois,0.52,0.48,0.0 +65-103,F,Indiana,0.52,0.48,0.0 +65-103,F,Iowa,0.52,0.48,0.0 +65-103,F,Kansas,0.52,0.48,0.0 +65-103,F,Kentucky,0.204,0.796,0.0 +65-103,F,Louisiana,0.204,0.796,0.0 +65-103,F,Maine,0.0,1.0,0.0 +65-103,F,Maryland,0.204,0.796,0.0 +65-103,F,Massachusetts,0.0,1.0,0.0 +65-103,F,Michigan,0.52,0.48,0.0 +65-103,F,Minnesota,0.52,0.48,0.0 +65-103,F,Mississippi,0.204,0.796,0.0 +65-103,F,Missouri,0.52,0.48,0.0 +65-103,F,Montana,0.5,0.0,0.5 +65-103,F,Nebraska,0.52,0.48,0.0 +65-103,F,Nevada,0.5,0.0,0.5 +65-103,F,New Hampshire,0.0,1.0,0.0 +65-103,F,New Jersey,0.0,1.0,0.0 +65-103,F,New Mexico,0.5,0.0,0.5 +65-103,F,New York,0.0,1.0,0.0 +65-103,F,North Carolina,0.204,0.796,0.0 +65-103,F,North Dakota,0.52,0.48,0.0 +65-103,F,Ohio,0.52,0.48,0.0 +65-103,F,Oklahoma,0.204,0.796,0.0 +65-103,F,Oregon,0.5,0.0,0.5 +65-103,F,Pennsylvania,0.0,1.0,0.0 +65-103,F,Rhode Island,0.0,1.0,0.0 +65-103,F,South Carolina,0.204,0.796,0.0 +65-103,F,South Dakota,0.52,0.48,0.0 +65-103,F,Tennessee,0.204,0.796,0.0 +65-103,F,Texas,0.204,0.796,0.0 +65-103,F,Utah,0.5,0.0,0.5 +65-103,F,Vermont,0.0,1.0,0.0 +65-103,F,Virginia,0.204,0.796,0.0 +65-103,F,Washington,0.5,0.0,0.5 +65-103,F,West Virginia,0.204,0.796,0.0 +65-103,F,Wisconsin,0.52,0.48,0.0 +65-103,F,Wyoming,0.5,0.0,0.5 +65-103,M,Alabama,0.0,0.0,1.0 +65-103,M,Alaska,0.423,0.305,0.272 +65-103,M,Arizona,0.423,0.305,0.272 +65-103,M,Arkansas,0.0,0.0,1.0 +65-103,M,California,0.423,0.305,0.272 +65-103,M,Colorado,0.423,0.305,0.272 +65-103,M,Delaware,0.0,0.0,1.0 +65-103,M,District of Columbia,0.0,0.0,1.0 +65-103,M,Florida,0.0,0.0,1.0 +65-103,M,Georgia,0.0,0.0,1.0 +65-103,M,Hawaii,0.423,0.305,0.272 +65-103,M,Idaho,0.423,0.305,0.272 +65-103,M,Kentucky,0.0,0.0,1.0 +65-103,M,Louisiana,0.0,0.0,1.0 +65-103,M,Maryland,0.0,0.0,1.0 +65-103,M,Mississippi,0.0,0.0,1.0 +65-103,M,Montana,0.423,0.305,0.272 +65-103,M,Nevada,0.423,0.305,0.272 +65-103,M,New Mexico,0.423,0.305,0.272 +65-103,M,North Carolina,0.0,0.0,1.0 +65-103,M,Oklahoma,0.0,0.0,1.0 +65-103,M,Oregon,0.423,0.305,0.272 +65-103,M,South Carolina,0.0,0.0,1.0 +65-103,M,Tennessee,0.0,0.0,1.0 +65-103,M,Texas,0.0,0.0,1.0 +65-103,M,Utah,0.423,0.305,0.272 +65-103,M,Virginia,0.0,0.0,1.0 +65-103,M,Washington,0.423,0.305,0.272 +65-103,M,West Virginia,0.0,0.0,1.0 +65-103,M,Wyoming,0.423,0.305,0.272 diff --git a/src/main/resources/modules/lookup_tables/ace_arb_benazepril_product_distribution.csv b/src/main/resources/modules/lookup_tables/ace_arb_benazepril_product_distribution.csv new file mode 100644 index 0000000..e95ec60 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/ace_arb_benazepril_product_distribution.csv @@ -0,0 +1,285 @@ +age,gender,state,Prescribe_Benazepril_Hydrochloride_10_Mg_Oral_Tablet,Prescribe_Benazepril_Hydrochloride_20_Mg_Oral_Tablet,Prescribe_Benazepril_Hydrochloride_40_Mg_Oral_Tablet,Prescribe_Benazepril_Hydrochloride_5_Mg_Oral_Tablet +18-25,M,Connecticut,0.0,1.0,0.0,0.0 +18-25,M,Maine,0.0,1.0,0.0,0.0 +18-25,M,Massachusetts,0.0,1.0,0.0,0.0 +18-25,M,New Hampshire,0.0,1.0,0.0,0.0 +18-25,M,New Jersey,0.0,1.0,0.0,0.0 +18-25,M,New York,0.0,1.0,0.0,0.0 +18-25,M,Pennsylvania,0.0,1.0,0.0,0.0 +18-25,M,Rhode Island,0.0,1.0,0.0,0.0 +18-25,M,Vermont,0.0,1.0,0.0,0.0 +26-35,M,Alabama,0.0,0.0,1.0,0.0 +26-35,M,Arkansas,0.0,0.0,1.0,0.0 +26-35,M,Delaware,0.0,0.0,1.0,0.0 +26-35,M,District of Columbia,0.0,0.0,1.0,0.0 +26-35,M,Florida,0.0,0.0,1.0,0.0 +26-35,M,Georgia,0.0,0.0,1.0,0.0 +26-35,M,Kentucky,0.0,0.0,1.0,0.0 +26-35,M,Louisiana,0.0,0.0,1.0,0.0 +26-35,M,Maryland,0.0,0.0,1.0,0.0 +26-35,M,Mississippi,0.0,0.0,1.0,0.0 +26-35,M,North Carolina,0.0,0.0,1.0,0.0 +26-35,M,Oklahoma,0.0,0.0,1.0,0.0 +26-35,M,South Carolina,0.0,0.0,1.0,0.0 +26-35,M,Tennessee,0.0,0.0,1.0,0.0 +26-35,M,Texas,0.0,0.0,1.0,0.0 +26-35,M,Virginia,0.0,0.0,1.0,0.0 +26-35,M,West Virginia,0.0,0.0,1.0,0.0 +36-45,F,Alabama,0.0,0.065,0.0,0.935 +36-45,F,Alaska,0.0,0.0,1.0,0.0 +36-45,F,Arizona,0.0,0.0,1.0,0.0 +36-45,F,Arkansas,0.0,0.065,0.0,0.935 +36-45,F,California,0.0,0.0,1.0,0.0 +36-45,F,Colorado,0.0,0.0,1.0,0.0 +36-45,F,Delaware,0.0,0.065,0.0,0.935 +36-45,F,District of Columbia,0.0,0.065,0.0,0.935 +36-45,F,Florida,0.0,0.065,0.0,0.935 +36-45,F,Georgia,0.0,0.065,0.0,0.935 +36-45,F,Hawaii,0.0,0.0,1.0,0.0 +36-45,F,Idaho,0.0,0.0,1.0,0.0 +36-45,F,Kentucky,0.0,0.065,0.0,0.935 +36-45,F,Louisiana,0.0,0.065,0.0,0.935 +36-45,F,Maryland,0.0,0.065,0.0,0.935 +36-45,F,Mississippi,0.0,0.065,0.0,0.935 +36-45,F,Montana,0.0,0.0,1.0,0.0 +36-45,F,Nevada,0.0,0.0,1.0,0.0 +36-45,F,New Mexico,0.0,0.0,1.0,0.0 +36-45,F,North Carolina,0.0,0.065,0.0,0.935 +36-45,F,Oklahoma,0.0,0.065,0.0,0.935 +36-45,F,Oregon,0.0,0.0,1.0,0.0 +36-45,F,South Carolina,0.0,0.065,0.0,0.935 +36-45,F,Tennessee,0.0,0.065,0.0,0.935 +36-45,F,Texas,0.0,0.065,0.0,0.935 +36-45,F,Utah,0.0,0.0,1.0,0.0 +36-45,F,Virginia,0.0,0.065,0.0,0.935 +36-45,F,Washington,0.0,0.0,1.0,0.0 +36-45,F,West Virginia,0.0,0.065,0.0,0.935 +36-45,F,Wyoming,0.0,0.0,1.0,0.0 +36-45,M,Connecticut,0.0,0.0,1.0,0.0 +36-45,M,Illinois,0.0,0.0,1.0,0.0 +36-45,M,Indiana,0.0,0.0,1.0,0.0 +36-45,M,Iowa,0.0,0.0,1.0,0.0 +36-45,M,Kansas,0.0,0.0,1.0,0.0 +36-45,M,Maine,0.0,0.0,1.0,0.0 +36-45,M,Massachusetts,0.0,0.0,1.0,0.0 +36-45,M,Michigan,0.0,0.0,1.0,0.0 +36-45,M,Minnesota,0.0,0.0,1.0,0.0 +36-45,M,Missouri,0.0,0.0,1.0,0.0 +36-45,M,Nebraska,0.0,0.0,1.0,0.0 +36-45,M,New Hampshire,0.0,0.0,1.0,0.0 +36-45,M,New Jersey,0.0,0.0,1.0,0.0 +36-45,M,New York,0.0,0.0,1.0,0.0 +36-45,M,North Dakota,0.0,0.0,1.0,0.0 +36-45,M,Ohio,0.0,0.0,1.0,0.0 +36-45,M,Pennsylvania,0.0,0.0,1.0,0.0 +36-45,M,Rhode Island,0.0,0.0,1.0,0.0 +36-45,M,South Dakota,0.0,0.0,1.0,0.0 +36-45,M,Vermont,0.0,0.0,1.0,0.0 +36-45,M,Wisconsin,0.0,0.0,1.0,0.0 +4-7,F,Illinois,0.0,0.0,1.0,0.0 +4-7,F,Indiana,0.0,0.0,1.0,0.0 +4-7,F,Iowa,0.0,0.0,1.0,0.0 +4-7,F,Kansas,0.0,0.0,1.0,0.0 +4-7,F,Michigan,0.0,0.0,1.0,0.0 +4-7,F,Minnesota,0.0,0.0,1.0,0.0 +4-7,F,Missouri,0.0,0.0,1.0,0.0 +4-7,F,Nebraska,0.0,0.0,1.0,0.0 +4-7,F,North Dakota,0.0,0.0,1.0,0.0 +4-7,F,Ohio,0.0,0.0,1.0,0.0 +4-7,F,South Dakota,0.0,0.0,1.0,0.0 +4-7,F,Wisconsin,0.0,0.0,1.0,0.0 +46-65,F,Alabama,0.266,0.061,0.17,0.503 +46-65,F,Alaska,0.515,0.0,0.235,0.25 +46-65,F,Arizona,0.515,0.0,0.235,0.25 +46-65,F,Arkansas,0.266,0.061,0.17,0.503 +46-65,F,California,0.515,0.0,0.235,0.25 +46-65,F,Colorado,0.515,0.0,0.235,0.25 +46-65,F,Connecticut,0.393,0.393,0.215,0.0 +46-65,F,Delaware,0.266,0.061,0.17,0.503 +46-65,F,District of Columbia,0.266,0.061,0.17,0.503 +46-65,F,Florida,0.266,0.061,0.17,0.503 +46-65,F,Georgia,0.266,0.061,0.17,0.503 +46-65,F,Hawaii,0.515,0.0,0.235,0.25 +46-65,F,Idaho,0.515,0.0,0.235,0.25 +46-65,F,Illinois,0.294,0.294,0.412,0.0 +46-65,F,Indiana,0.294,0.294,0.412,0.0 +46-65,F,Iowa,0.294,0.294,0.412,0.0 +46-65,F,Kansas,0.294,0.294,0.412,0.0 +46-65,F,Kentucky,0.266,0.061,0.17,0.503 +46-65,F,Louisiana,0.266,0.061,0.17,0.503 +46-65,F,Maine,0.393,0.393,0.215,0.0 +46-65,F,Maryland,0.266,0.061,0.17,0.503 +46-65,F,Massachusetts,0.393,0.393,0.215,0.0 +46-65,F,Michigan,0.294,0.294,0.412,0.0 +46-65,F,Minnesota,0.294,0.294,0.412,0.0 +46-65,F,Mississippi,0.266,0.061,0.17,0.503 +46-65,F,Missouri,0.294,0.294,0.412,0.0 +46-65,F,Montana,0.515,0.0,0.235,0.25 +46-65,F,Nebraska,0.294,0.294,0.412,0.0 +46-65,F,Nevada,0.515,0.0,0.235,0.25 +46-65,F,New Hampshire,0.393,0.393,0.215,0.0 +46-65,F,New Jersey,0.393,0.393,0.215,0.0 +46-65,F,New Mexico,0.515,0.0,0.235,0.25 +46-65,F,New York,0.393,0.393,0.215,0.0 +46-65,F,North Carolina,0.266,0.061,0.17,0.503 +46-65,F,North Dakota,0.294,0.294,0.412,0.0 +46-65,F,Ohio,0.294,0.294,0.412,0.0 +46-65,F,Oklahoma,0.266,0.061,0.17,0.503 +46-65,F,Oregon,0.515,0.0,0.235,0.25 +46-65,F,Pennsylvania,0.393,0.393,0.215,0.0 +46-65,F,Rhode Island,0.393,0.393,0.215,0.0 +46-65,F,South Carolina,0.266,0.061,0.17,0.503 +46-65,F,South Dakota,0.294,0.294,0.412,0.0 +46-65,F,Tennessee,0.266,0.061,0.17,0.503 +46-65,F,Texas,0.266,0.061,0.17,0.503 +46-65,F,Utah,0.515,0.0,0.235,0.25 +46-65,F,Vermont,0.393,0.393,0.215,0.0 +46-65,F,Virginia,0.266,0.061,0.17,0.503 +46-65,F,Washington,0.515,0.0,0.235,0.25 +46-65,F,West Virginia,0.266,0.061,0.17,0.503 +46-65,F,Wisconsin,0.294,0.294,0.412,0.0 +46-65,F,Wyoming,0.515,0.0,0.235,0.25 +46-65,M,Alabama,0.133,0.597,0.27,0.0 +46-65,M,Alaska,0.092,0.609,0.299,0.0 +46-65,M,Arizona,0.092,0.609,0.299,0.0 +46-65,M,Arkansas,0.133,0.597,0.27,0.0 +46-65,M,California,0.092,0.609,0.299,0.0 +46-65,M,Colorado,0.092,0.609,0.299,0.0 +46-65,M,Delaware,0.133,0.597,0.27,0.0 +46-65,M,District of Columbia,0.133,0.597,0.27,0.0 +46-65,M,Florida,0.133,0.597,0.27,0.0 +46-65,M,Georgia,0.133,0.597,0.27,0.0 +46-65,M,Hawaii,0.092,0.609,0.299,0.0 +46-65,M,Idaho,0.092,0.609,0.299,0.0 +46-65,M,Illinois,0.0,0.506,0.494,0.0 +46-65,M,Indiana,0.0,0.506,0.494,0.0 +46-65,M,Iowa,0.0,0.506,0.494,0.0 +46-65,M,Kansas,0.0,0.506,0.494,0.0 +46-65,M,Kentucky,0.133,0.597,0.27,0.0 +46-65,M,Louisiana,0.133,0.597,0.27,0.0 +46-65,M,Maryland,0.133,0.597,0.27,0.0 +46-65,M,Michigan,0.0,0.506,0.494,0.0 +46-65,M,Minnesota,0.0,0.506,0.494,0.0 +46-65,M,Mississippi,0.133,0.597,0.27,0.0 +46-65,M,Missouri,0.0,0.506,0.494,0.0 +46-65,M,Montana,0.092,0.609,0.299,0.0 +46-65,M,Nebraska,0.0,0.506,0.494,0.0 +46-65,M,Nevada,0.092,0.609,0.299,0.0 +46-65,M,New Mexico,0.092,0.609,0.299,0.0 +46-65,M,North Carolina,0.133,0.597,0.27,0.0 +46-65,M,North Dakota,0.0,0.506,0.494,0.0 +46-65,M,Ohio,0.0,0.506,0.494,0.0 +46-65,M,Oklahoma,0.133,0.597,0.27,0.0 +46-65,M,Oregon,0.092,0.609,0.299,0.0 +46-65,M,South Carolina,0.133,0.597,0.27,0.0 +46-65,M,South Dakota,0.0,0.506,0.494,0.0 +46-65,M,Tennessee,0.133,0.597,0.27,0.0 +46-65,M,Texas,0.133,0.597,0.27,0.0 +46-65,M,Utah,0.092,0.609,0.299,0.0 +46-65,M,Virginia,0.133,0.597,0.27,0.0 +46-65,M,Washington,0.092,0.609,0.299,0.0 +46-65,M,West Virginia,0.133,0.597,0.27,0.0 +46-65,M,Wisconsin,0.0,0.506,0.494,0.0 +46-65,M,Wyoming,0.092,0.609,0.299,0.0 +65-103,F,Alabama,0.206,0.686,0.109,0.0 +65-103,F,Alaska,0.188,0.579,0.163,0.069 +65-103,F,Arizona,0.188,0.579,0.163,0.069 +65-103,F,Arkansas,0.206,0.686,0.109,0.0 +65-103,F,California,0.188,0.579,0.163,0.069 +65-103,F,Colorado,0.188,0.579,0.163,0.069 +65-103,F,Connecticut,0.086,0.465,0.45,0.0 +65-103,F,Delaware,0.206,0.686,0.109,0.0 +65-103,F,District of Columbia,0.206,0.686,0.109,0.0 +65-103,F,Florida,0.206,0.686,0.109,0.0 +65-103,F,Georgia,0.206,0.686,0.109,0.0 +65-103,F,Hawaii,0.188,0.579,0.163,0.069 +65-103,F,Idaho,0.188,0.579,0.163,0.069 +65-103,F,Illinois,0.562,0.31,0.128,0.0 +65-103,F,Indiana,0.562,0.31,0.128,0.0 +65-103,F,Iowa,0.562,0.31,0.128,0.0 +65-103,F,Kansas,0.562,0.31,0.128,0.0 +65-103,F,Kentucky,0.206,0.686,0.109,0.0 +65-103,F,Louisiana,0.206,0.686,0.109,0.0 +65-103,F,Maine,0.086,0.465,0.45,0.0 +65-103,F,Maryland,0.206,0.686,0.109,0.0 +65-103,F,Massachusetts,0.086,0.465,0.45,0.0 +65-103,F,Michigan,0.562,0.31,0.128,0.0 +65-103,F,Minnesota,0.562,0.31,0.128,0.0 +65-103,F,Mississippi,0.206,0.686,0.109,0.0 +65-103,F,Missouri,0.562,0.31,0.128,0.0 +65-103,F,Montana,0.188,0.579,0.163,0.069 +65-103,F,Nebraska,0.562,0.31,0.128,0.0 +65-103,F,Nevada,0.188,0.579,0.163,0.069 +65-103,F,New Hampshire,0.086,0.465,0.45,0.0 +65-103,F,New Jersey,0.086,0.465,0.45,0.0 +65-103,F,New Mexico,0.188,0.579,0.163,0.069 +65-103,F,New York,0.086,0.465,0.45,0.0 +65-103,F,North Carolina,0.206,0.686,0.109,0.0 +65-103,F,North Dakota,0.562,0.31,0.128,0.0 +65-103,F,Ohio,0.562,0.31,0.128,0.0 +65-103,F,Oklahoma,0.206,0.686,0.109,0.0 +65-103,F,Oregon,0.188,0.579,0.163,0.069 +65-103,F,Pennsylvania,0.086,0.465,0.45,0.0 +65-103,F,Rhode Island,0.086,0.465,0.45,0.0 +65-103,F,South Carolina,0.206,0.686,0.109,0.0 +65-103,F,South Dakota,0.562,0.31,0.128,0.0 +65-103,F,Tennessee,0.206,0.686,0.109,0.0 +65-103,F,Texas,0.206,0.686,0.109,0.0 +65-103,F,Utah,0.188,0.579,0.163,0.069 +65-103,F,Vermont,0.086,0.465,0.45,0.0 +65-103,F,Virginia,0.206,0.686,0.109,0.0 +65-103,F,Washington,0.188,0.579,0.163,0.069 +65-103,F,West Virginia,0.206,0.686,0.109,0.0 +65-103,F,Wisconsin,0.562,0.31,0.128,0.0 +65-103,F,Wyoming,0.188,0.579,0.163,0.069 +65-103,M,Alabama,0.141,0.496,0.364,0.0 +65-103,M,Alaska,0.0,0.427,0.422,0.151 +65-103,M,Arizona,0.0,0.427,0.422,0.151 +65-103,M,Arkansas,0.141,0.496,0.364,0.0 +65-103,M,California,0.0,0.427,0.422,0.151 +65-103,M,Colorado,0.0,0.427,0.422,0.151 +65-103,M,Connecticut,0.319,0.0,0.408,0.273 +65-103,M,Delaware,0.141,0.496,0.364,0.0 +65-103,M,District of Columbia,0.141,0.496,0.364,0.0 +65-103,M,Florida,0.141,0.496,0.364,0.0 +65-103,M,Georgia,0.141,0.496,0.364,0.0 +65-103,M,Hawaii,0.0,0.427,0.422,0.151 +65-103,M,Idaho,0.0,0.427,0.422,0.151 +65-103,M,Illinois,0.0,0.296,0.59,0.114 +65-103,M,Indiana,0.0,0.296,0.59,0.114 +65-103,M,Iowa,0.0,0.296,0.59,0.114 +65-103,M,Kansas,0.0,0.296,0.59,0.114 +65-103,M,Kentucky,0.141,0.496,0.364,0.0 +65-103,M,Louisiana,0.141,0.496,0.364,0.0 +65-103,M,Maine,0.319,0.0,0.408,0.273 +65-103,M,Maryland,0.141,0.496,0.364,0.0 +65-103,M,Massachusetts,0.319,0.0,0.408,0.273 +65-103,M,Michigan,0.0,0.296,0.59,0.114 +65-103,M,Minnesota,0.0,0.296,0.59,0.114 +65-103,M,Mississippi,0.141,0.496,0.364,0.0 +65-103,M,Missouri,0.0,0.296,0.59,0.114 +65-103,M,Montana,0.0,0.427,0.422,0.151 +65-103,M,Nebraska,0.0,0.296,0.59,0.114 +65-103,M,Nevada,0.0,0.427,0.422,0.151 +65-103,M,New Hampshire,0.319,0.0,0.408,0.273 +65-103,M,New Jersey,0.319,0.0,0.408,0.273 +65-103,M,New Mexico,0.0,0.427,0.422,0.151 +65-103,M,New York,0.319,0.0,0.408,0.273 +65-103,M,North Carolina,0.141,0.496,0.364,0.0 +65-103,M,North Dakota,0.0,0.296,0.59,0.114 +65-103,M,Ohio,0.0,0.296,0.59,0.114 +65-103,M,Oklahoma,0.141,0.496,0.364,0.0 +65-103,M,Oregon,0.0,0.427,0.422,0.151 +65-103,M,Pennsylvania,0.319,0.0,0.408,0.273 +65-103,M,Rhode Island,0.319,0.0,0.408,0.273 +65-103,M,South Carolina,0.141,0.496,0.364,0.0 +65-103,M,South Dakota,0.0,0.296,0.59,0.114 +65-103,M,Tennessee,0.141,0.496,0.364,0.0 +65-103,M,Texas,0.141,0.496,0.364,0.0 +65-103,M,Utah,0.0,0.427,0.422,0.151 +65-103,M,Vermont,0.319,0.0,0.408,0.273 +65-103,M,Virginia,0.141,0.496,0.364,0.0 +65-103,M,Washington,0.0,0.427,0.422,0.151 +65-103,M,West Virginia,0.141,0.496,0.364,0.0 +65-103,M,Wisconsin,0.0,0.296,0.59,0.114 +65-103,M,Wyoming,0.0,0.427,0.422,0.151 diff --git a/src/main/resources/modules/lookup_tables/ace_arb_enalapril_product_distribution.csv b/src/main/resources/modules/lookup_tables/ace_arb_enalapril_product_distribution.csv new file mode 100644 index 0000000..e5eadaa --- /dev/null +++ b/src/main/resources/modules/lookup_tables/ace_arb_enalapril_product_distribution.csv @@ -0,0 +1,277 @@ +age,gender,state,Prescribe_Enalapril_Maleate_10_Mg_Oral_Tablet,Prescribe_Enalapril_Maleate_1_Mg_Ml_Oral_Solution_Epaned,Prescribe_Enalapril_Maleate_20_Mg_Oral_Tablet,Prescribe_Enalapril_Maleate_2_5_Mg_Oral_Tablet,Prescribe_Enalapril_Maleate_5_Mg_Oral_Tablet +12-17,M,Illinois,0.0,0.0,0.0,1.0,0.0 +12-17,M,Indiana,0.0,0.0,0.0,1.0,0.0 +12-17,M,Iowa,0.0,0.0,0.0,1.0,0.0 +12-17,M,Kansas,0.0,0.0,0.0,1.0,0.0 +12-17,M,Michigan,0.0,0.0,0.0,1.0,0.0 +12-17,M,Minnesota,0.0,0.0,0.0,1.0,0.0 +12-17,M,Missouri,0.0,0.0,0.0,1.0,0.0 +12-17,M,Nebraska,0.0,0.0,0.0,1.0,0.0 +12-17,M,North Dakota,0.0,0.0,0.0,1.0,0.0 +12-17,M,Ohio,0.0,0.0,0.0,1.0,0.0 +12-17,M,South Dakota,0.0,0.0,0.0,1.0,0.0 +12-17,M,Wisconsin,0.0,0.0,0.0,1.0,0.0 +26-35,F,Alabama,0.5,0.0,0.5,0.0,0.0 +26-35,F,Arkansas,0.5,0.0,0.5,0.0,0.0 +26-35,F,Delaware,0.5,0.0,0.5,0.0,0.0 +26-35,F,District of Columbia,0.5,0.0,0.5,0.0,0.0 +26-35,F,Florida,0.5,0.0,0.5,0.0,0.0 +26-35,F,Georgia,0.5,0.0,0.5,0.0,0.0 +26-35,F,Kentucky,0.5,0.0,0.5,0.0,0.0 +26-35,F,Louisiana,0.5,0.0,0.5,0.0,0.0 +26-35,F,Maryland,0.5,0.0,0.5,0.0,0.0 +26-35,F,Mississippi,0.5,0.0,0.5,0.0,0.0 +26-35,F,North Carolina,0.5,0.0,0.5,0.0,0.0 +26-35,F,Oklahoma,0.5,0.0,0.5,0.0,0.0 +26-35,F,South Carolina,0.5,0.0,0.5,0.0,0.0 +26-35,F,Tennessee,0.5,0.0,0.5,0.0,0.0 +26-35,F,Texas,0.5,0.0,0.5,0.0,0.0 +26-35,F,Virginia,0.5,0.0,0.5,0.0,0.0 +26-35,F,West Virginia,0.5,0.0,0.5,0.0,0.0 +26-35,M,Alabama,1.0,0.0,0.0,0.0,0.0 +26-35,M,Arkansas,1.0,0.0,0.0,0.0,0.0 +26-35,M,Connecticut,1.0,0.0,0.0,0.0,0.0 +26-35,M,Delaware,1.0,0.0,0.0,0.0,0.0 +26-35,M,District of Columbia,1.0,0.0,0.0,0.0,0.0 +26-35,M,Florida,1.0,0.0,0.0,0.0,0.0 +26-35,M,Georgia,1.0,0.0,0.0,0.0,0.0 +26-35,M,Kentucky,1.0,0.0,0.0,0.0,0.0 +26-35,M,Louisiana,1.0,0.0,0.0,0.0,0.0 +26-35,M,Maine,1.0,0.0,0.0,0.0,0.0 +26-35,M,Maryland,1.0,0.0,0.0,0.0,0.0 +26-35,M,Massachusetts,1.0,0.0,0.0,0.0,0.0 +26-35,M,Mississippi,1.0,0.0,0.0,0.0,0.0 +26-35,M,New Hampshire,1.0,0.0,0.0,0.0,0.0 +26-35,M,New Jersey,1.0,0.0,0.0,0.0,0.0 +26-35,M,New York,1.0,0.0,0.0,0.0,0.0 +26-35,M,North Carolina,1.0,0.0,0.0,0.0,0.0 +26-35,M,Oklahoma,1.0,0.0,0.0,0.0,0.0 +26-35,M,Pennsylvania,1.0,0.0,0.0,0.0,0.0 +26-35,M,Rhode Island,1.0,0.0,0.0,0.0,0.0 +26-35,M,South Carolina,1.0,0.0,0.0,0.0,0.0 +26-35,M,Tennessee,1.0,0.0,0.0,0.0,0.0 +26-35,M,Texas,1.0,0.0,0.0,0.0,0.0 +26-35,M,Vermont,1.0,0.0,0.0,0.0,0.0 +26-35,M,Virginia,1.0,0.0,0.0,0.0,0.0 +26-35,M,West Virginia,1.0,0.0,0.0,0.0,0.0 +36-45,F,Alabama,0.0,0.0,1.0,0.0,0.0 +36-45,F,Arkansas,0.0,0.0,1.0,0.0,0.0 +36-45,F,Connecticut,1.0,0.0,0.0,0.0,0.0 +36-45,F,Delaware,0.0,0.0,1.0,0.0,0.0 +36-45,F,District of Columbia,0.0,0.0,1.0,0.0,0.0 +36-45,F,Florida,0.0,0.0,1.0,0.0,0.0 +36-45,F,Georgia,0.0,0.0,1.0,0.0,0.0 +36-45,F,Kentucky,0.0,0.0,1.0,0.0,0.0 +36-45,F,Louisiana,0.0,0.0,1.0,0.0,0.0 +36-45,F,Maine,1.0,0.0,0.0,0.0,0.0 +36-45,F,Maryland,0.0,0.0,1.0,0.0,0.0 +36-45,F,Massachusetts,1.0,0.0,0.0,0.0,0.0 +36-45,F,Mississippi,0.0,0.0,1.0,0.0,0.0 +36-45,F,New Hampshire,1.0,0.0,0.0,0.0,0.0 +36-45,F,New Jersey,1.0,0.0,0.0,0.0,0.0 +36-45,F,New York,1.0,0.0,0.0,0.0,0.0 +36-45,F,North Carolina,0.0,0.0,1.0,0.0,0.0 +36-45,F,Oklahoma,0.0,0.0,1.0,0.0,0.0 +36-45,F,Pennsylvania,1.0,0.0,0.0,0.0,0.0 +36-45,F,Rhode Island,1.0,0.0,0.0,0.0,0.0 +36-45,F,South Carolina,0.0,0.0,1.0,0.0,0.0 +36-45,F,Tennessee,0.0,0.0,1.0,0.0,0.0 +36-45,F,Texas,0.0,0.0,1.0,0.0,0.0 +36-45,F,Vermont,1.0,0.0,0.0,0.0,0.0 +36-45,F,Virginia,0.0,0.0,1.0,0.0,0.0 +36-45,F,West Virginia,0.0,0.0,1.0,0.0,0.0 +36-45,M,Illinois,0.452,0.0,0.548,0.0,0.0 +36-45,M,Indiana,0.452,0.0,0.548,0.0,0.0 +36-45,M,Iowa,0.452,0.0,0.548,0.0,0.0 +36-45,M,Kansas,0.452,0.0,0.548,0.0,0.0 +36-45,M,Michigan,0.452,0.0,0.548,0.0,0.0 +36-45,M,Minnesota,0.452,0.0,0.548,0.0,0.0 +36-45,M,Missouri,0.452,0.0,0.548,0.0,0.0 +36-45,M,Nebraska,0.452,0.0,0.548,0.0,0.0 +36-45,M,North Dakota,0.452,0.0,0.548,0.0,0.0 +36-45,M,Ohio,0.452,0.0,0.548,0.0,0.0 +36-45,M,South Dakota,0.452,0.0,0.548,0.0,0.0 +36-45,M,Wisconsin,0.452,0.0,0.548,0.0,0.0 +4-7,M,Alabama,0.0,1.0,0.0,0.0,0.0 +4-7,M,Arkansas,0.0,1.0,0.0,0.0,0.0 +4-7,M,Delaware,0.0,1.0,0.0,0.0,0.0 +4-7,M,District of Columbia,0.0,1.0,0.0,0.0,0.0 +4-7,M,Florida,0.0,1.0,0.0,0.0,0.0 +4-7,M,Georgia,0.0,1.0,0.0,0.0,0.0 +4-7,M,Kentucky,0.0,1.0,0.0,0.0,0.0 +4-7,M,Louisiana,0.0,1.0,0.0,0.0,0.0 +4-7,M,Maryland,0.0,1.0,0.0,0.0,0.0 +4-7,M,Mississippi,0.0,1.0,0.0,0.0,0.0 +4-7,M,North Carolina,0.0,1.0,0.0,0.0,0.0 +4-7,M,Oklahoma,0.0,1.0,0.0,0.0,0.0 +4-7,M,South Carolina,0.0,1.0,0.0,0.0,0.0 +4-7,M,Tennessee,0.0,1.0,0.0,0.0,0.0 +4-7,M,Texas,0.0,1.0,0.0,0.0,0.0 +4-7,M,Virginia,0.0,1.0,0.0,0.0,0.0 +4-7,M,West Virginia,0.0,1.0,0.0,0.0,0.0 +46-65,F,Alabama,0.452,0.0,0.116,0.0,0.432 +46-65,F,Arkansas,0.452,0.0,0.116,0.0,0.432 +46-65,F,Connecticut,0.423,0.0,0.358,0.117,0.102 +46-65,F,Delaware,0.452,0.0,0.116,0.0,0.432 +46-65,F,District of Columbia,0.452,0.0,0.116,0.0,0.432 +46-65,F,Florida,0.452,0.0,0.116,0.0,0.432 +46-65,F,Georgia,0.452,0.0,0.116,0.0,0.432 +46-65,F,Kentucky,0.452,0.0,0.116,0.0,0.432 +46-65,F,Louisiana,0.452,0.0,0.116,0.0,0.432 +46-65,F,Maine,0.423,0.0,0.358,0.117,0.102 +46-65,F,Maryland,0.452,0.0,0.116,0.0,0.432 +46-65,F,Massachusetts,0.423,0.0,0.358,0.117,0.102 +46-65,F,Mississippi,0.452,0.0,0.116,0.0,0.432 +46-65,F,New Hampshire,0.423,0.0,0.358,0.117,0.102 +46-65,F,New Jersey,0.423,0.0,0.358,0.117,0.102 +46-65,F,New York,0.423,0.0,0.358,0.117,0.102 +46-65,F,North Carolina,0.452,0.0,0.116,0.0,0.432 +46-65,F,Oklahoma,0.452,0.0,0.116,0.0,0.432 +46-65,F,Pennsylvania,0.423,0.0,0.358,0.117,0.102 +46-65,F,Rhode Island,0.423,0.0,0.358,0.117,0.102 +46-65,F,South Carolina,0.452,0.0,0.116,0.0,0.432 +46-65,F,Tennessee,0.452,0.0,0.116,0.0,0.432 +46-65,F,Texas,0.452,0.0,0.116,0.0,0.432 +46-65,F,Vermont,0.423,0.0,0.358,0.117,0.102 +46-65,F,Virginia,0.452,0.0,0.116,0.0,0.432 +46-65,F,West Virginia,0.452,0.0,0.116,0.0,0.432 +46-65,M,Alabama,0.415,0.0,0.486,0.0,0.098 +46-65,M,Alaska,0.669,0.0,0.331,0.0,0.0 +46-65,M,Arizona,0.669,0.0,0.331,0.0,0.0 +46-65,M,Arkansas,0.415,0.0,0.486,0.0,0.098 +46-65,M,California,0.669,0.0,0.331,0.0,0.0 +46-65,M,Colorado,0.669,0.0,0.331,0.0,0.0 +46-65,M,Connecticut,0.534,0.0,0.297,0.0,0.169 +46-65,M,Delaware,0.415,0.0,0.486,0.0,0.098 +46-65,M,District of Columbia,0.415,0.0,0.486,0.0,0.098 +46-65,M,Florida,0.415,0.0,0.486,0.0,0.098 +46-65,M,Georgia,0.415,0.0,0.486,0.0,0.098 +46-65,M,Hawaii,0.669,0.0,0.331,0.0,0.0 +46-65,M,Idaho,0.669,0.0,0.331,0.0,0.0 +46-65,M,Illinois,0.393,0.0,0.237,0.157,0.212 +46-65,M,Indiana,0.393,0.0,0.237,0.157,0.212 +46-65,M,Iowa,0.393,0.0,0.237,0.157,0.212 +46-65,M,Kansas,0.393,0.0,0.237,0.157,0.212 +46-65,M,Kentucky,0.415,0.0,0.486,0.0,0.098 +46-65,M,Louisiana,0.415,0.0,0.486,0.0,0.098 +46-65,M,Maine,0.534,0.0,0.297,0.0,0.169 +46-65,M,Maryland,0.415,0.0,0.486,0.0,0.098 +46-65,M,Massachusetts,0.534,0.0,0.297,0.0,0.169 +46-65,M,Michigan,0.393,0.0,0.237,0.157,0.212 +46-65,M,Minnesota,0.393,0.0,0.237,0.157,0.212 +46-65,M,Mississippi,0.415,0.0,0.486,0.0,0.098 +46-65,M,Missouri,0.393,0.0,0.237,0.157,0.212 +46-65,M,Montana,0.669,0.0,0.331,0.0,0.0 +46-65,M,Nebraska,0.393,0.0,0.237,0.157,0.212 +46-65,M,Nevada,0.669,0.0,0.331,0.0,0.0 +46-65,M,New Hampshire,0.534,0.0,0.297,0.0,0.169 +46-65,M,New Jersey,0.534,0.0,0.297,0.0,0.169 +46-65,M,New Mexico,0.669,0.0,0.331,0.0,0.0 +46-65,M,New York,0.534,0.0,0.297,0.0,0.169 +46-65,M,North Carolina,0.415,0.0,0.486,0.0,0.098 +46-65,M,North Dakota,0.393,0.0,0.237,0.157,0.212 +46-65,M,Ohio,0.393,0.0,0.237,0.157,0.212 +46-65,M,Oklahoma,0.415,0.0,0.486,0.0,0.098 +46-65,M,Oregon,0.669,0.0,0.331,0.0,0.0 +46-65,M,Pennsylvania,0.534,0.0,0.297,0.0,0.169 +46-65,M,Rhode Island,0.534,0.0,0.297,0.0,0.169 +46-65,M,South Carolina,0.415,0.0,0.486,0.0,0.098 +46-65,M,South Dakota,0.393,0.0,0.237,0.157,0.212 +46-65,M,Tennessee,0.415,0.0,0.486,0.0,0.098 +46-65,M,Texas,0.415,0.0,0.486,0.0,0.098 +46-65,M,Utah,0.669,0.0,0.331,0.0,0.0 +46-65,M,Vermont,0.534,0.0,0.297,0.0,0.169 +46-65,M,Virginia,0.415,0.0,0.486,0.0,0.098 +46-65,M,Washington,0.669,0.0,0.331,0.0,0.0 +46-65,M,West Virginia,0.415,0.0,0.486,0.0,0.098 +46-65,M,Wisconsin,0.393,0.0,0.237,0.157,0.212 +46-65,M,Wyoming,0.669,0.0,0.331,0.0,0.0 +65-103,F,Alabama,0.152,0.0,0.475,0.034,0.34 +65-103,F,Alaska,0.106,0.0,0.757,0.136,0.0 +65-103,F,Arizona,0.106,0.0,0.757,0.136,0.0 +65-103,F,Arkansas,0.152,0.0,0.475,0.034,0.34 +65-103,F,California,0.106,0.0,0.757,0.136,0.0 +65-103,F,Colorado,0.106,0.0,0.757,0.136,0.0 +65-103,F,Connecticut,0.111,0.0,0.627,0.221,0.041 +65-103,F,Delaware,0.152,0.0,0.475,0.034,0.34 +65-103,F,District of Columbia,0.152,0.0,0.475,0.034,0.34 +65-103,F,Florida,0.152,0.0,0.475,0.034,0.34 +65-103,F,Georgia,0.152,0.0,0.475,0.034,0.34 +65-103,F,Hawaii,0.106,0.0,0.757,0.136,0.0 +65-103,F,Idaho,0.106,0.0,0.757,0.136,0.0 +65-103,F,Illinois,0.142,0.0,0.596,0.262,0.0 +65-103,F,Indiana,0.142,0.0,0.596,0.262,0.0 +65-103,F,Iowa,0.142,0.0,0.596,0.262,0.0 +65-103,F,Kansas,0.142,0.0,0.596,0.262,0.0 +65-103,F,Kentucky,0.152,0.0,0.475,0.034,0.34 +65-103,F,Louisiana,0.152,0.0,0.475,0.034,0.34 +65-103,F,Maine,0.111,0.0,0.627,0.221,0.041 +65-103,F,Maryland,0.152,0.0,0.475,0.034,0.34 +65-103,F,Massachusetts,0.111,0.0,0.627,0.221,0.041 +65-103,F,Michigan,0.142,0.0,0.596,0.262,0.0 +65-103,F,Minnesota,0.142,0.0,0.596,0.262,0.0 +65-103,F,Mississippi,0.152,0.0,0.475,0.034,0.34 +65-103,F,Missouri,0.142,0.0,0.596,0.262,0.0 +65-103,F,Montana,0.106,0.0,0.757,0.136,0.0 +65-103,F,Nebraska,0.142,0.0,0.596,0.262,0.0 +65-103,F,Nevada,0.106,0.0,0.757,0.136,0.0 +65-103,F,New Hampshire,0.111,0.0,0.627,0.221,0.041 +65-103,F,New Jersey,0.111,0.0,0.627,0.221,0.041 +65-103,F,New Mexico,0.106,0.0,0.757,0.136,0.0 +65-103,F,New York,0.111,0.0,0.627,0.221,0.041 +65-103,F,North Carolina,0.152,0.0,0.475,0.034,0.34 +65-103,F,North Dakota,0.142,0.0,0.596,0.262,0.0 +65-103,F,Ohio,0.142,0.0,0.596,0.262,0.0 +65-103,F,Oklahoma,0.152,0.0,0.475,0.034,0.34 +65-103,F,Oregon,0.106,0.0,0.757,0.136,0.0 +65-103,F,Pennsylvania,0.111,0.0,0.627,0.221,0.041 +65-103,F,Rhode Island,0.111,0.0,0.627,0.221,0.041 +65-103,F,South Carolina,0.152,0.0,0.475,0.034,0.34 +65-103,F,South Dakota,0.142,0.0,0.596,0.262,0.0 +65-103,F,Tennessee,0.152,0.0,0.475,0.034,0.34 +65-103,F,Texas,0.152,0.0,0.475,0.034,0.34 +65-103,F,Utah,0.106,0.0,0.757,0.136,0.0 +65-103,F,Vermont,0.111,0.0,0.627,0.221,0.041 +65-103,F,Virginia,0.152,0.0,0.475,0.034,0.34 +65-103,F,Washington,0.106,0.0,0.757,0.136,0.0 +65-103,F,West Virginia,0.152,0.0,0.475,0.034,0.34 +65-103,F,Wisconsin,0.142,0.0,0.596,0.262,0.0 +65-103,F,Wyoming,0.106,0.0,0.757,0.136,0.0 +65-103,M,Alabama,0.202,0.0,0.332,0.189,0.277 +65-103,M,Arkansas,0.202,0.0,0.332,0.189,0.277 +65-103,M,Connecticut,0.737,0.0,0.0,0.141,0.122 +65-103,M,Delaware,0.202,0.0,0.332,0.189,0.277 +65-103,M,District of Columbia,0.202,0.0,0.332,0.189,0.277 +65-103,M,Florida,0.202,0.0,0.332,0.189,0.277 +65-103,M,Georgia,0.202,0.0,0.332,0.189,0.277 +65-103,M,Illinois,0.251,0.0,0.313,0.349,0.087 +65-103,M,Indiana,0.251,0.0,0.313,0.349,0.087 +65-103,M,Iowa,0.251,0.0,0.313,0.349,0.087 +65-103,M,Kansas,0.251,0.0,0.313,0.349,0.087 +65-103,M,Kentucky,0.202,0.0,0.332,0.189,0.277 +65-103,M,Louisiana,0.202,0.0,0.332,0.189,0.277 +65-103,M,Maine,0.737,0.0,0.0,0.141,0.122 +65-103,M,Maryland,0.202,0.0,0.332,0.189,0.277 +65-103,M,Massachusetts,0.737,0.0,0.0,0.141,0.122 +65-103,M,Michigan,0.251,0.0,0.313,0.349,0.087 +65-103,M,Minnesota,0.251,0.0,0.313,0.349,0.087 +65-103,M,Mississippi,0.202,0.0,0.332,0.189,0.277 +65-103,M,Missouri,0.251,0.0,0.313,0.349,0.087 +65-103,M,Nebraska,0.251,0.0,0.313,0.349,0.087 +65-103,M,New Hampshire,0.737,0.0,0.0,0.141,0.122 +65-103,M,New Jersey,0.737,0.0,0.0,0.141,0.122 +65-103,M,New York,0.737,0.0,0.0,0.141,0.122 +65-103,M,North Carolina,0.202,0.0,0.332,0.189,0.277 +65-103,M,North Dakota,0.251,0.0,0.313,0.349,0.087 +65-103,M,Ohio,0.251,0.0,0.313,0.349,0.087 +65-103,M,Oklahoma,0.202,0.0,0.332,0.189,0.277 +65-103,M,Pennsylvania,0.737,0.0,0.0,0.141,0.122 +65-103,M,Rhode Island,0.737,0.0,0.0,0.141,0.122 +65-103,M,South Carolina,0.202,0.0,0.332,0.189,0.277 +65-103,M,South Dakota,0.251,0.0,0.313,0.349,0.087 +65-103,M,Tennessee,0.202,0.0,0.332,0.189,0.277 +65-103,M,Texas,0.202,0.0,0.332,0.189,0.277 +65-103,M,Vermont,0.737,0.0,0.0,0.141,0.122 +65-103,M,Virginia,0.202,0.0,0.332,0.189,0.277 +65-103,M,West Virginia,0.202,0.0,0.332,0.189,0.277 +65-103,M,Wisconsin,0.251,0.0,0.313,0.349,0.087 diff --git a/src/main/resources/modules/lookup_tables/ace_arb_hydrochlorothiazide_lisinopril_product_distribution.csv b/src/main/resources/modules/lookup_tables/ace_arb_hydrochlorothiazide_lisinopril_product_distribution.csv new file mode 100644 index 0000000..4fb6aa4 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/ace_arb_hydrochlorothiazide_lisinopril_product_distribution.csv @@ -0,0 +1,352 @@ +age,gender,state,Prescribe_Hydrochlorothiazide_12_5_Mg_Lisinopril_10_Mg_Oral_Tablet,Prescribe_Hydrochlorothiazide_12_5_Mg_Lisinopril_20_Mg_Oral_Tablet,Prescribe_Hydrochlorothiazide_25_Mg_Lisinopril_20_Mg_Oral_Tablet +18-25,F,Alabama,0.0,0.0,0.0 +18-25,F,Arkansas,0.0,0.0,0.0 +18-25,F,Delaware,0.0,0.0,0.0 +18-25,F,District of Columbia,0.0,0.0,0.0 +18-25,F,Florida,0.0,0.0,0.0 +18-25,F,Georgia,0.0,0.0,0.0 +18-25,F,Kentucky,0.0,0.0,0.0 +18-25,F,Louisiana,0.0,0.0,0.0 +18-25,F,Maryland,0.0,0.0,0.0 +18-25,F,Mississippi,0.0,0.0,0.0 +18-25,F,North Carolina,0.0,0.0,0.0 +18-25,F,Oklahoma,0.0,0.0,0.0 +18-25,F,South Carolina,0.0,0.0,0.0 +18-25,F,Tennessee,0.0,0.0,0.0 +18-25,F,Texas,0.0,0.0,0.0 +18-25,F,Virginia,0.0,0.0,0.0 +18-25,F,West Virginia,0.0,0.0,0.0 +26-35,F,Alabama,0.0,1.0,0.0 +26-35,F,Arkansas,0.0,1.0,0.0 +26-35,F,Delaware,0.0,1.0,0.0 +26-35,F,District of Columbia,0.0,1.0,0.0 +26-35,F,Florida,0.0,1.0,0.0 +26-35,F,Georgia,0.0,1.0,0.0 +26-35,F,Illinois,1.0,0.0,0.0 +26-35,F,Indiana,1.0,0.0,0.0 +26-35,F,Iowa,1.0,0.0,0.0 +26-35,F,Kansas,1.0,0.0,0.0 +26-35,F,Kentucky,0.0,1.0,0.0 +26-35,F,Louisiana,0.0,1.0,0.0 +26-35,F,Maryland,0.0,1.0,0.0 +26-35,F,Michigan,1.0,0.0,0.0 +26-35,F,Minnesota,1.0,0.0,0.0 +26-35,F,Mississippi,0.0,1.0,0.0 +26-35,F,Missouri,1.0,0.0,0.0 +26-35,F,Nebraska,1.0,0.0,0.0 +26-35,F,North Carolina,0.0,1.0,0.0 +26-35,F,North Dakota,1.0,0.0,0.0 +26-35,F,Ohio,1.0,0.0,0.0 +26-35,F,Oklahoma,0.0,1.0,0.0 +26-35,F,South Carolina,0.0,1.0,0.0 +26-35,F,South Dakota,1.0,0.0,0.0 +26-35,F,Tennessee,0.0,1.0,0.0 +26-35,F,Texas,0.0,1.0,0.0 +26-35,F,Virginia,0.0,1.0,0.0 +26-35,F,West Virginia,0.0,1.0,0.0 +26-35,F,Wisconsin,1.0,0.0,0.0 +26-35,M,Illinois,0.382,0.618,0.0 +26-35,M,Indiana,0.382,0.618,0.0 +26-35,M,Iowa,0.382,0.618,0.0 +26-35,M,Kansas,0.382,0.618,0.0 +26-35,M,Michigan,0.382,0.618,0.0 +26-35,M,Minnesota,0.382,0.618,0.0 +26-35,M,Missouri,0.382,0.618,0.0 +26-35,M,Nebraska,0.382,0.618,0.0 +26-35,M,North Dakota,0.382,0.618,0.0 +26-35,M,Ohio,0.382,0.618,0.0 +26-35,M,South Dakota,0.382,0.618,0.0 +26-35,M,Wisconsin,0.382,0.618,0.0 +36-45,F,Alabama,0.122,0.284,0.594 +36-45,F,Arkansas,0.122,0.284,0.594 +36-45,F,Connecticut,0.0,0.0,1.0 +36-45,F,Delaware,0.122,0.284,0.594 +36-45,F,District of Columbia,0.122,0.284,0.594 +36-45,F,Florida,0.122,0.284,0.594 +36-45,F,Georgia,0.122,0.284,0.594 +36-45,F,Illinois,0.566,0.155,0.279 +36-45,F,Indiana,0.566,0.155,0.279 +36-45,F,Iowa,0.566,0.155,0.279 +36-45,F,Kansas,0.566,0.155,0.279 +36-45,F,Kentucky,0.122,0.284,0.594 +36-45,F,Louisiana,0.122,0.284,0.594 +36-45,F,Maine,0.0,0.0,1.0 +36-45,F,Maryland,0.122,0.284,0.594 +36-45,F,Massachusetts,0.0,0.0,1.0 +36-45,F,Michigan,0.566,0.155,0.279 +36-45,F,Minnesota,0.566,0.155,0.279 +36-45,F,Mississippi,0.122,0.284,0.594 +36-45,F,Missouri,0.566,0.155,0.279 +36-45,F,Nebraska,0.566,0.155,0.279 +36-45,F,New Hampshire,0.0,0.0,1.0 +36-45,F,New Jersey,0.0,0.0,1.0 +36-45,F,New York,0.0,0.0,1.0 +36-45,F,North Carolina,0.122,0.284,0.594 +36-45,F,North Dakota,0.566,0.155,0.279 +36-45,F,Ohio,0.566,0.155,0.279 +36-45,F,Oklahoma,0.122,0.284,0.594 +36-45,F,Pennsylvania,0.0,0.0,1.0 +36-45,F,Rhode Island,0.0,0.0,1.0 +36-45,F,South Carolina,0.122,0.284,0.594 +36-45,F,South Dakota,0.566,0.155,0.279 +36-45,F,Tennessee,0.122,0.284,0.594 +36-45,F,Texas,0.122,0.284,0.594 +36-45,F,Vermont,0.0,0.0,1.0 +36-45,F,Virginia,0.122,0.284,0.594 +36-45,F,West Virginia,0.122,0.284,0.594 +36-45,F,Wisconsin,0.566,0.155,0.279 +36-45,M,Alabama,0.326,0.459,0.215 +36-45,M,Alaska,0.0,0.478,0.522 +36-45,M,Arizona,0.0,0.478,0.522 +36-45,M,Arkansas,0.326,0.459,0.215 +36-45,M,California,0.0,0.478,0.522 +36-45,M,Colorado,0.0,0.478,0.522 +36-45,M,Connecticut,1.0,0.0,0.0 +36-45,M,Delaware,0.326,0.459,0.215 +36-45,M,District of Columbia,0.326,0.459,0.215 +36-45,M,Florida,0.326,0.459,0.215 +36-45,M,Georgia,0.326,0.459,0.215 +36-45,M,Hawaii,0.0,0.478,0.522 +36-45,M,Idaho,0.0,0.478,0.522 +36-45,M,Illinois,0.0,0.319,0.681 +36-45,M,Indiana,0.0,0.319,0.681 +36-45,M,Iowa,0.0,0.319,0.681 +36-45,M,Kansas,0.0,0.319,0.681 +36-45,M,Kentucky,0.326,0.459,0.215 +36-45,M,Louisiana,0.326,0.459,0.215 +36-45,M,Maine,1.0,0.0,0.0 +36-45,M,Maryland,0.326,0.459,0.215 +36-45,M,Massachusetts,1.0,0.0,0.0 +36-45,M,Michigan,0.0,0.319,0.681 +36-45,M,Minnesota,0.0,0.319,0.681 +36-45,M,Mississippi,0.326,0.459,0.215 +36-45,M,Missouri,0.0,0.319,0.681 +36-45,M,Montana,0.0,0.478,0.522 +36-45,M,Nebraska,0.0,0.319,0.681 +36-45,M,Nevada,0.0,0.478,0.522 +36-45,M,New Hampshire,1.0,0.0,0.0 +36-45,M,New Jersey,1.0,0.0,0.0 +36-45,M,New Mexico,0.0,0.478,0.522 +36-45,M,New York,1.0,0.0,0.0 +36-45,M,North Carolina,0.326,0.459,0.215 +36-45,M,North Dakota,0.0,0.319,0.681 +36-45,M,Ohio,0.0,0.319,0.681 +36-45,M,Oklahoma,0.326,0.459,0.215 +36-45,M,Oregon,0.0,0.478,0.522 +36-45,M,Pennsylvania,1.0,0.0,0.0 +36-45,M,Rhode Island,1.0,0.0,0.0 +36-45,M,South Carolina,0.326,0.459,0.215 +36-45,M,South Dakota,0.0,0.319,0.681 +36-45,M,Tennessee,0.326,0.459,0.215 +36-45,M,Texas,0.326,0.459,0.215 +36-45,M,Utah,0.0,0.478,0.522 +36-45,M,Vermont,1.0,0.0,0.0 +36-45,M,Virginia,0.326,0.459,0.215 +36-45,M,Washington,0.0,0.478,0.522 +36-45,M,West Virginia,0.326,0.459,0.215 +36-45,M,Wisconsin,0.0,0.319,0.681 +36-45,M,Wyoming,0.0,0.478,0.522 +46-65,F,Alabama,0.309,0.316,0.375 +46-65,F,Alaska,0.461,0.539,0.0 +46-65,F,Arizona,0.461,0.539,0.0 +46-65,F,Arkansas,0.309,0.316,0.375 +46-65,F,California,0.461,0.539,0.0 +46-65,F,Colorado,0.461,0.539,0.0 +46-65,F,Connecticut,0.059,0.628,0.313 +46-65,F,Delaware,0.309,0.316,0.375 +46-65,F,District of Columbia,0.309,0.316,0.375 +46-65,F,Florida,0.309,0.316,0.375 +46-65,F,Georgia,0.309,0.316,0.375 +46-65,F,Hawaii,0.461,0.539,0.0 +46-65,F,Idaho,0.461,0.539,0.0 +46-65,F,Illinois,0.196,0.286,0.517 +46-65,F,Indiana,0.196,0.286,0.517 +46-65,F,Iowa,0.196,0.286,0.517 +46-65,F,Kansas,0.196,0.286,0.517 +46-65,F,Kentucky,0.309,0.316,0.375 +46-65,F,Louisiana,0.309,0.316,0.375 +46-65,F,Maine,0.059,0.628,0.313 +46-65,F,Maryland,0.309,0.316,0.375 +46-65,F,Massachusetts,0.059,0.628,0.313 +46-65,F,Michigan,0.196,0.286,0.517 +46-65,F,Minnesota,0.196,0.286,0.517 +46-65,F,Mississippi,0.309,0.316,0.375 +46-65,F,Missouri,0.196,0.286,0.517 +46-65,F,Montana,0.461,0.539,0.0 +46-65,F,Nebraska,0.196,0.286,0.517 +46-65,F,Nevada,0.461,0.539,0.0 +46-65,F,New Hampshire,0.059,0.628,0.313 +46-65,F,New Jersey,0.059,0.628,0.313 +46-65,F,New Mexico,0.461,0.539,0.0 +46-65,F,New York,0.059,0.628,0.313 +46-65,F,North Carolina,0.309,0.316,0.375 +46-65,F,North Dakota,0.196,0.286,0.517 +46-65,F,Ohio,0.196,0.286,0.517 +46-65,F,Oklahoma,0.309,0.316,0.375 +46-65,F,Oregon,0.461,0.539,0.0 +46-65,F,Pennsylvania,0.059,0.628,0.313 +46-65,F,Rhode Island,0.059,0.628,0.313 +46-65,F,South Carolina,0.309,0.316,0.375 +46-65,F,South Dakota,0.196,0.286,0.517 +46-65,F,Tennessee,0.309,0.316,0.375 +46-65,F,Texas,0.309,0.316,0.375 +46-65,F,Utah,0.461,0.539,0.0 +46-65,F,Vermont,0.059,0.628,0.313 +46-65,F,Virginia,0.309,0.316,0.375 +46-65,F,Washington,0.461,0.539,0.0 +46-65,F,West Virginia,0.309,0.316,0.375 +46-65,F,Wisconsin,0.196,0.286,0.517 +46-65,F,Wyoming,0.461,0.539,0.0 +46-65,M,Alabama,0.337,0.296,0.367 +46-65,M,Alaska,0.296,0.378,0.326 +46-65,M,Arizona,0.296,0.378,0.326 +46-65,M,Arkansas,0.337,0.296,0.367 +46-65,M,California,0.296,0.378,0.326 +46-65,M,Colorado,0.296,0.378,0.326 +46-65,M,Connecticut,0.297,0.254,0.45 +46-65,M,Delaware,0.337,0.296,0.367 +46-65,M,District of Columbia,0.337,0.296,0.367 +46-65,M,Florida,0.337,0.296,0.367 +46-65,M,Georgia,0.337,0.296,0.367 +46-65,M,Hawaii,0.296,0.378,0.326 +46-65,M,Idaho,0.296,0.378,0.326 +46-65,M,Illinois,0.537,0.11,0.353 +46-65,M,Indiana,0.537,0.11,0.353 +46-65,M,Iowa,0.537,0.11,0.353 +46-65,M,Kansas,0.537,0.11,0.353 +46-65,M,Kentucky,0.337,0.296,0.367 +46-65,M,Louisiana,0.337,0.296,0.367 +46-65,M,Maine,0.297,0.254,0.45 +46-65,M,Maryland,0.337,0.296,0.367 +46-65,M,Massachusetts,0.297,0.254,0.45 +46-65,M,Michigan,0.537,0.11,0.353 +46-65,M,Minnesota,0.537,0.11,0.353 +46-65,M,Mississippi,0.337,0.296,0.367 +46-65,M,Missouri,0.537,0.11,0.353 +46-65,M,Montana,0.296,0.378,0.326 +46-65,M,Nebraska,0.537,0.11,0.353 +46-65,M,Nevada,0.296,0.378,0.326 +46-65,M,New Hampshire,0.297,0.254,0.45 +46-65,M,New Jersey,0.297,0.254,0.45 +46-65,M,New Mexico,0.296,0.378,0.326 +46-65,M,New York,0.297,0.254,0.45 +46-65,M,North Carolina,0.337,0.296,0.367 +46-65,M,North Dakota,0.537,0.11,0.353 +46-65,M,Ohio,0.537,0.11,0.353 +46-65,M,Oklahoma,0.337,0.296,0.367 +46-65,M,Oregon,0.296,0.378,0.326 +46-65,M,Pennsylvania,0.297,0.254,0.45 +46-65,M,Rhode Island,0.297,0.254,0.45 +46-65,M,South Carolina,0.337,0.296,0.367 +46-65,M,South Dakota,0.537,0.11,0.353 +46-65,M,Tennessee,0.337,0.296,0.367 +46-65,M,Texas,0.337,0.296,0.367 +46-65,M,Utah,0.296,0.378,0.326 +46-65,M,Vermont,0.297,0.254,0.45 +46-65,M,Virginia,0.337,0.296,0.367 +46-65,M,Washington,0.296,0.378,0.326 +46-65,M,West Virginia,0.337,0.296,0.367 +46-65,M,Wisconsin,0.537,0.11,0.353 +46-65,M,Wyoming,0.296,0.378,0.326 +65-103,F,Alabama,0.357,0.388,0.254 +65-103,F,Alaska,0.46,0.54,0.0 +65-103,F,Arizona,0.46,0.54,0.0 +65-103,F,Arkansas,0.357,0.388,0.254 +65-103,F,California,0.46,0.54,0.0 +65-103,F,Colorado,0.46,0.54,0.0 +65-103,F,Connecticut,0.019,0.596,0.385 +65-103,F,Delaware,0.357,0.388,0.254 +65-103,F,District of Columbia,0.357,0.388,0.254 +65-103,F,Florida,0.357,0.388,0.254 +65-103,F,Georgia,0.357,0.388,0.254 +65-103,F,Hawaii,0.46,0.54,0.0 +65-103,F,Idaho,0.46,0.54,0.0 +65-103,F,Illinois,0.177,0.39,0.432 +65-103,F,Indiana,0.177,0.39,0.432 +65-103,F,Iowa,0.177,0.39,0.432 +65-103,F,Kansas,0.177,0.39,0.432 +65-103,F,Kentucky,0.357,0.388,0.254 +65-103,F,Louisiana,0.357,0.388,0.254 +65-103,F,Maine,0.019,0.596,0.385 +65-103,F,Maryland,0.357,0.388,0.254 +65-103,F,Massachusetts,0.019,0.596,0.385 +65-103,F,Michigan,0.177,0.39,0.432 +65-103,F,Minnesota,0.177,0.39,0.432 +65-103,F,Mississippi,0.357,0.388,0.254 +65-103,F,Missouri,0.177,0.39,0.432 +65-103,F,Montana,0.46,0.54,0.0 +65-103,F,Nebraska,0.177,0.39,0.432 +65-103,F,Nevada,0.46,0.54,0.0 +65-103,F,New Hampshire,0.019,0.596,0.385 +65-103,F,New Jersey,0.019,0.596,0.385 +65-103,F,New Mexico,0.46,0.54,0.0 +65-103,F,New York,0.019,0.596,0.385 +65-103,F,North Carolina,0.357,0.388,0.254 +65-103,F,North Dakota,0.177,0.39,0.432 +65-103,F,Ohio,0.177,0.39,0.432 +65-103,F,Oklahoma,0.357,0.388,0.254 +65-103,F,Oregon,0.46,0.54,0.0 +65-103,F,Pennsylvania,0.019,0.596,0.385 +65-103,F,Rhode Island,0.019,0.596,0.385 +65-103,F,South Carolina,0.357,0.388,0.254 +65-103,F,South Dakota,0.177,0.39,0.432 +65-103,F,Tennessee,0.357,0.388,0.254 +65-103,F,Texas,0.357,0.388,0.254 +65-103,F,Utah,0.46,0.54,0.0 +65-103,F,Vermont,0.019,0.596,0.385 +65-103,F,Virginia,0.357,0.388,0.254 +65-103,F,Washington,0.46,0.54,0.0 +65-103,F,West Virginia,0.357,0.388,0.254 +65-103,F,Wisconsin,0.177,0.39,0.432 +65-103,F,Wyoming,0.46,0.54,0.0 +65-103,M,Alabama,0.374,0.352,0.274 +65-103,M,Alaska,0.173,0.583,0.244 +65-103,M,Arizona,0.173,0.583,0.244 +65-103,M,Arkansas,0.374,0.352,0.274 +65-103,M,California,0.173,0.583,0.244 +65-103,M,Colorado,0.173,0.583,0.244 +65-103,M,Connecticut,0.346,0.371,0.283 +65-103,M,Delaware,0.374,0.352,0.274 +65-103,M,District of Columbia,0.374,0.352,0.274 +65-103,M,Florida,0.374,0.352,0.274 +65-103,M,Georgia,0.374,0.352,0.274 +65-103,M,Hawaii,0.173,0.583,0.244 +65-103,M,Idaho,0.173,0.583,0.244 +65-103,M,Illinois,0.327,0.484,0.188 +65-103,M,Indiana,0.327,0.484,0.188 +65-103,M,Iowa,0.327,0.484,0.188 +65-103,M,Kansas,0.327,0.484,0.188 +65-103,M,Kentucky,0.374,0.352,0.274 +65-103,M,Louisiana,0.374,0.352,0.274 +65-103,M,Maine,0.346,0.371,0.283 +65-103,M,Maryland,0.374,0.352,0.274 +65-103,M,Massachusetts,0.346,0.371,0.283 +65-103,M,Michigan,0.327,0.484,0.188 +65-103,M,Minnesota,0.327,0.484,0.188 +65-103,M,Mississippi,0.374,0.352,0.274 +65-103,M,Missouri,0.327,0.484,0.188 +65-103,M,Montana,0.173,0.583,0.244 +65-103,M,Nebraska,0.327,0.484,0.188 +65-103,M,Nevada,0.173,0.583,0.244 +65-103,M,New Hampshire,0.346,0.371,0.283 +65-103,M,New Jersey,0.346,0.371,0.283 +65-103,M,New Mexico,0.173,0.583,0.244 +65-103,M,New York,0.346,0.371,0.283 +65-103,M,North Carolina,0.374,0.352,0.274 +65-103,M,North Dakota,0.327,0.484,0.188 +65-103,M,Ohio,0.327,0.484,0.188 +65-103,M,Oklahoma,0.374,0.352,0.274 +65-103,M,Oregon,0.173,0.583,0.244 +65-103,M,Pennsylvania,0.346,0.371,0.283 +65-103,M,Rhode Island,0.346,0.371,0.283 +65-103,M,South Carolina,0.374,0.352,0.274 +65-103,M,South Dakota,0.327,0.484,0.188 +65-103,M,Tennessee,0.374,0.352,0.274 +65-103,M,Texas,0.374,0.352,0.274 +65-103,M,Utah,0.173,0.583,0.244 +65-103,M,Vermont,0.346,0.371,0.283 +65-103,M,Virginia,0.374,0.352,0.274 +65-103,M,Washington,0.173,0.583,0.244 +65-103,M,West Virginia,0.374,0.352,0.274 +65-103,M,Wisconsin,0.327,0.484,0.188 +65-103,M,Wyoming,0.173,0.583,0.244 diff --git a/src/main/resources/modules/lookup_tables/ace_arb_hydrochlorothiazide_losartan_product_distribution.csv b/src/main/resources/modules/lookup_tables/ace_arb_hydrochlorothiazide_losartan_product_distribution.csv new file mode 100644 index 0000000..6081892 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/ace_arb_hydrochlorothiazide_losartan_product_distribution.csv @@ -0,0 +1,352 @@ +age,gender,state,Prescribe_Hydrochlorothiazide_12_5_Mg_Losartan_Potassium_100_Mg_Oral_Tablet,Prescribe_Hydrochlorothiazide_12_5_Mg_Losartan_Potassium_100_Mg_Oral_Tablet_Hyzaar,Prescribe_Hydrochlorothiazide_12_5_Mg_Losartan_Potassium_50_Mg_Oral_Tablet,Prescribe_Hydrochlorothiazide_12_5_Mg_Losartan_Potassium_50_Mg_Oral_Tablet_Hyzaar,Prescribe_Hydrochlorothiazide_25_Mg_Losartan_Potassium_100_Mg_Oral_Tablet,Prescribe_Hydrochlorothiazide_25_Mg_Losartan_Potassium_100_Mg_Oral_Tablet_Hyzaar +18-25,M,Alabama,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Arkansas,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Delaware,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,District of Columbia,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Florida,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Georgia,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Kentucky,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Louisiana,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Maryland,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Mississippi,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,North Carolina,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Oklahoma,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,South Carolina,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Tennessee,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Texas,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Virginia,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,West Virginia,1.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Alabama,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Arkansas,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Delaware,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,District of Columbia,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Florida,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Georgia,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Illinois,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Indiana,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Iowa,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Kansas,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Kentucky,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Louisiana,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Maryland,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Michigan,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Minnesota,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Mississippi,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Missouri,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Nebraska,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,North Carolina,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,North Dakota,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Ohio,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Oklahoma,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,South Carolina,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,South Dakota,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Tennessee,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Texas,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Virginia,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,West Virginia,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,F,Wisconsin,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,Alaska,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Arizona,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,California,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Colorado,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Hawaii,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Idaho,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Illinois,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Indiana,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Iowa,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Kansas,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Michigan,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Minnesota,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Missouri,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Montana,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Nebraska,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Nevada,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,New Mexico,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,North Dakota,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Ohio,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Oregon,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,South Dakota,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Utah,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Washington,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Wisconsin,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Wyoming,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,Alabama,0.308,0.246,0.0,0.0,0.446,0.0 +36-45,F,Alaska,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Arizona,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Arkansas,0.308,0.246,0.0,0.0,0.446,0.0 +36-45,F,California,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Colorado,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Delaware,0.308,0.246,0.0,0.0,0.446,0.0 +36-45,F,District of Columbia,0.308,0.246,0.0,0.0,0.446,0.0 +36-45,F,Florida,0.308,0.246,0.0,0.0,0.446,0.0 +36-45,F,Georgia,0.308,0.246,0.0,0.0,0.446,0.0 +36-45,F,Hawaii,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Idaho,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Illinois,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,F,Indiana,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,F,Iowa,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,F,Kansas,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,F,Kentucky,0.308,0.246,0.0,0.0,0.446,0.0 +36-45,F,Louisiana,0.308,0.246,0.0,0.0,0.446,0.0 +36-45,F,Maryland,0.308,0.246,0.0,0.0,0.446,0.0 +36-45,F,Michigan,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,F,Minnesota,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,F,Mississippi,0.308,0.246,0.0,0.0,0.446,0.0 +36-45,F,Missouri,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,F,Montana,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Nebraska,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,F,Nevada,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,New Mexico,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,North Carolina,0.308,0.246,0.0,0.0,0.446,0.0 +36-45,F,North Dakota,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,F,Ohio,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,F,Oklahoma,0.308,0.246,0.0,0.0,0.446,0.0 +36-45,F,Oregon,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,South Carolina,0.308,0.246,0.0,0.0,0.446,0.0 +36-45,F,South Dakota,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,F,Tennessee,0.308,0.246,0.0,0.0,0.446,0.0 +36-45,F,Texas,0.308,0.246,0.0,0.0,0.446,0.0 +36-45,F,Utah,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Virginia,0.308,0.246,0.0,0.0,0.446,0.0 +36-45,F,Washington,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,West Virginia,0.308,0.246,0.0,0.0,0.446,0.0 +36-45,F,Wisconsin,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,F,Wyoming,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Alaska,0.558,0.0,0.442,0.0,0.0,0.0 +36-45,M,Arizona,0.558,0.0,0.442,0.0,0.0,0.0 +36-45,M,California,0.558,0.0,0.442,0.0,0.0,0.0 +36-45,M,Colorado,0.558,0.0,0.442,0.0,0.0,0.0 +36-45,M,Connecticut,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,Hawaii,0.558,0.0,0.442,0.0,0.0,0.0 +36-45,M,Idaho,0.558,0.0,0.442,0.0,0.0,0.0 +36-45,M,Illinois,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Indiana,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Iowa,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Kansas,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Maine,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,Massachusetts,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,Michigan,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Minnesota,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Missouri,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Montana,0.558,0.0,0.442,0.0,0.0,0.0 +36-45,M,Nebraska,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Nevada,0.558,0.0,0.442,0.0,0.0,0.0 +36-45,M,New Hampshire,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,New Jersey,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,New Mexico,0.558,0.0,0.442,0.0,0.0,0.0 +36-45,M,New York,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,North Dakota,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Ohio,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Oregon,0.558,0.0,0.442,0.0,0.0,0.0 +36-45,M,Pennsylvania,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,Rhode Island,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,South Dakota,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Utah,0.558,0.0,0.442,0.0,0.0,0.0 +36-45,M,Vermont,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,Washington,0.558,0.0,0.442,0.0,0.0,0.0 +36-45,M,Wisconsin,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Wyoming,0.558,0.0,0.442,0.0,0.0,0.0 +46-65,F,Alabama,0.095,0.0,0.318,0.0,0.588,0.0 +46-65,F,Alaska,0.0,0.0,0.567,0.0,0.433,0.0 +46-65,F,Arizona,0.0,0.0,0.567,0.0,0.433,0.0 +46-65,F,Arkansas,0.095,0.0,0.318,0.0,0.588,0.0 +46-65,F,California,0.0,0.0,0.567,0.0,0.433,0.0 +46-65,F,Colorado,0.0,0.0,0.567,0.0,0.433,0.0 +46-65,F,Connecticut,0.125,0.0,0.328,0.0,0.547,0.0 +46-65,F,Delaware,0.095,0.0,0.318,0.0,0.588,0.0 +46-65,F,District of Columbia,0.095,0.0,0.318,0.0,0.588,0.0 +46-65,F,Florida,0.095,0.0,0.318,0.0,0.588,0.0 +46-65,F,Georgia,0.095,0.0,0.318,0.0,0.588,0.0 +46-65,F,Hawaii,0.0,0.0,0.567,0.0,0.433,0.0 +46-65,F,Idaho,0.0,0.0,0.567,0.0,0.433,0.0 +46-65,F,Illinois,0.211,0.0,0.252,0.0,0.537,0.0 +46-65,F,Indiana,0.211,0.0,0.252,0.0,0.537,0.0 +46-65,F,Iowa,0.211,0.0,0.252,0.0,0.537,0.0 +46-65,F,Kansas,0.211,0.0,0.252,0.0,0.537,0.0 +46-65,F,Kentucky,0.095,0.0,0.318,0.0,0.588,0.0 +46-65,F,Louisiana,0.095,0.0,0.318,0.0,0.588,0.0 +46-65,F,Maine,0.125,0.0,0.328,0.0,0.547,0.0 +46-65,F,Maryland,0.095,0.0,0.318,0.0,0.588,0.0 +46-65,F,Massachusetts,0.125,0.0,0.328,0.0,0.547,0.0 +46-65,F,Michigan,0.211,0.0,0.252,0.0,0.537,0.0 +46-65,F,Minnesota,0.211,0.0,0.252,0.0,0.537,0.0 +46-65,F,Mississippi,0.095,0.0,0.318,0.0,0.588,0.0 +46-65,F,Missouri,0.211,0.0,0.252,0.0,0.537,0.0 +46-65,F,Montana,0.0,0.0,0.567,0.0,0.433,0.0 +46-65,F,Nebraska,0.211,0.0,0.252,0.0,0.537,0.0 +46-65,F,Nevada,0.0,0.0,0.567,0.0,0.433,0.0 +46-65,F,New Hampshire,0.125,0.0,0.328,0.0,0.547,0.0 +46-65,F,New Jersey,0.125,0.0,0.328,0.0,0.547,0.0 +46-65,F,New Mexico,0.0,0.0,0.567,0.0,0.433,0.0 +46-65,F,New York,0.125,0.0,0.328,0.0,0.547,0.0 +46-65,F,North Carolina,0.095,0.0,0.318,0.0,0.588,0.0 +46-65,F,North Dakota,0.211,0.0,0.252,0.0,0.537,0.0 +46-65,F,Ohio,0.211,0.0,0.252,0.0,0.537,0.0 +46-65,F,Oklahoma,0.095,0.0,0.318,0.0,0.588,0.0 +46-65,F,Oregon,0.0,0.0,0.567,0.0,0.433,0.0 +46-65,F,Pennsylvania,0.125,0.0,0.328,0.0,0.547,0.0 +46-65,F,Rhode Island,0.125,0.0,0.328,0.0,0.547,0.0 +46-65,F,South Carolina,0.095,0.0,0.318,0.0,0.588,0.0 +46-65,F,South Dakota,0.211,0.0,0.252,0.0,0.537,0.0 +46-65,F,Tennessee,0.095,0.0,0.318,0.0,0.588,0.0 +46-65,F,Texas,0.095,0.0,0.318,0.0,0.588,0.0 +46-65,F,Utah,0.0,0.0,0.567,0.0,0.433,0.0 +46-65,F,Vermont,0.125,0.0,0.328,0.0,0.547,0.0 +46-65,F,Virginia,0.095,0.0,0.318,0.0,0.588,0.0 +46-65,F,Washington,0.0,0.0,0.567,0.0,0.433,0.0 +46-65,F,West Virginia,0.095,0.0,0.318,0.0,0.588,0.0 +46-65,F,Wisconsin,0.211,0.0,0.252,0.0,0.537,0.0 +46-65,F,Wyoming,0.0,0.0,0.567,0.0,0.433,0.0 +46-65,M,Alabama,0.298,0.0,0.28,0.0,0.422,0.0 +46-65,M,Alaska,0.227,0.0,0.206,0.05,0.517,0.0 +46-65,M,Arizona,0.227,0.0,0.206,0.05,0.517,0.0 +46-65,M,Arkansas,0.298,0.0,0.28,0.0,0.422,0.0 +46-65,M,California,0.227,0.0,0.206,0.05,0.517,0.0 +46-65,M,Colorado,0.227,0.0,0.206,0.05,0.517,0.0 +46-65,M,Connecticut,0.0,0.0,0.246,0.0,0.754,0.0 +46-65,M,Delaware,0.298,0.0,0.28,0.0,0.422,0.0 +46-65,M,District of Columbia,0.298,0.0,0.28,0.0,0.422,0.0 +46-65,M,Florida,0.298,0.0,0.28,0.0,0.422,0.0 +46-65,M,Georgia,0.298,0.0,0.28,0.0,0.422,0.0 +46-65,M,Hawaii,0.227,0.0,0.206,0.05,0.517,0.0 +46-65,M,Idaho,0.227,0.0,0.206,0.05,0.517,0.0 +46-65,M,Illinois,0.0,0.0,0.553,0.0,0.447,0.0 +46-65,M,Indiana,0.0,0.0,0.553,0.0,0.447,0.0 +46-65,M,Iowa,0.0,0.0,0.553,0.0,0.447,0.0 +46-65,M,Kansas,0.0,0.0,0.553,0.0,0.447,0.0 +46-65,M,Kentucky,0.298,0.0,0.28,0.0,0.422,0.0 +46-65,M,Louisiana,0.298,0.0,0.28,0.0,0.422,0.0 +46-65,M,Maine,0.0,0.0,0.246,0.0,0.754,0.0 +46-65,M,Maryland,0.298,0.0,0.28,0.0,0.422,0.0 +46-65,M,Massachusetts,0.0,0.0,0.246,0.0,0.754,0.0 +46-65,M,Michigan,0.0,0.0,0.553,0.0,0.447,0.0 +46-65,M,Minnesota,0.0,0.0,0.553,0.0,0.447,0.0 +46-65,M,Mississippi,0.298,0.0,0.28,0.0,0.422,0.0 +46-65,M,Missouri,0.0,0.0,0.553,0.0,0.447,0.0 +46-65,M,Montana,0.227,0.0,0.206,0.05,0.517,0.0 +46-65,M,Nebraska,0.0,0.0,0.553,0.0,0.447,0.0 +46-65,M,Nevada,0.227,0.0,0.206,0.05,0.517,0.0 +46-65,M,New Hampshire,0.0,0.0,0.246,0.0,0.754,0.0 +46-65,M,New Jersey,0.0,0.0,0.246,0.0,0.754,0.0 +46-65,M,New Mexico,0.227,0.0,0.206,0.05,0.517,0.0 +46-65,M,New York,0.0,0.0,0.246,0.0,0.754,0.0 +46-65,M,North Carolina,0.298,0.0,0.28,0.0,0.422,0.0 +46-65,M,North Dakota,0.0,0.0,0.553,0.0,0.447,0.0 +46-65,M,Ohio,0.0,0.0,0.553,0.0,0.447,0.0 +46-65,M,Oklahoma,0.298,0.0,0.28,0.0,0.422,0.0 +46-65,M,Oregon,0.227,0.0,0.206,0.05,0.517,0.0 +46-65,M,Pennsylvania,0.0,0.0,0.246,0.0,0.754,0.0 +46-65,M,Rhode Island,0.0,0.0,0.246,0.0,0.754,0.0 +46-65,M,South Carolina,0.298,0.0,0.28,0.0,0.422,0.0 +46-65,M,South Dakota,0.0,0.0,0.553,0.0,0.447,0.0 +46-65,M,Tennessee,0.298,0.0,0.28,0.0,0.422,0.0 +46-65,M,Texas,0.298,0.0,0.28,0.0,0.422,0.0 +46-65,M,Utah,0.227,0.0,0.206,0.05,0.517,0.0 +46-65,M,Vermont,0.0,0.0,0.246,0.0,0.754,0.0 +46-65,M,Virginia,0.298,0.0,0.28,0.0,0.422,0.0 +46-65,M,Washington,0.227,0.0,0.206,0.05,0.517,0.0 +46-65,M,West Virginia,0.298,0.0,0.28,0.0,0.422,0.0 +46-65,M,Wisconsin,0.0,0.0,0.553,0.0,0.447,0.0 +46-65,M,Wyoming,0.227,0.0,0.206,0.05,0.517,0.0 +65-103,F,Alabama,0.192,0.0,0.297,0.0,0.487,0.025 +65-103,F,Alaska,0.141,0.0,0.498,0.0,0.361,0.0 +65-103,F,Arizona,0.141,0.0,0.498,0.0,0.361,0.0 +65-103,F,Arkansas,0.192,0.0,0.297,0.0,0.487,0.025 +65-103,F,California,0.141,0.0,0.498,0.0,0.361,0.0 +65-103,F,Colorado,0.141,0.0,0.498,0.0,0.361,0.0 +65-103,F,Connecticut,0.172,0.0,0.278,0.0,0.55,0.0 +65-103,F,Delaware,0.192,0.0,0.297,0.0,0.487,0.025 +65-103,F,District of Columbia,0.192,0.0,0.297,0.0,0.487,0.025 +65-103,F,Florida,0.192,0.0,0.297,0.0,0.487,0.025 +65-103,F,Georgia,0.192,0.0,0.297,0.0,0.487,0.025 +65-103,F,Hawaii,0.141,0.0,0.498,0.0,0.361,0.0 +65-103,F,Idaho,0.141,0.0,0.498,0.0,0.361,0.0 +65-103,F,Illinois,0.357,0.0,0.361,0.0,0.283,0.0 +65-103,F,Indiana,0.357,0.0,0.361,0.0,0.283,0.0 +65-103,F,Iowa,0.357,0.0,0.361,0.0,0.283,0.0 +65-103,F,Kansas,0.357,0.0,0.361,0.0,0.283,0.0 +65-103,F,Kentucky,0.192,0.0,0.297,0.0,0.487,0.025 +65-103,F,Louisiana,0.192,0.0,0.297,0.0,0.487,0.025 +65-103,F,Maine,0.172,0.0,0.278,0.0,0.55,0.0 +65-103,F,Maryland,0.192,0.0,0.297,0.0,0.487,0.025 +65-103,F,Massachusetts,0.172,0.0,0.278,0.0,0.55,0.0 +65-103,F,Michigan,0.357,0.0,0.361,0.0,0.283,0.0 +65-103,F,Minnesota,0.357,0.0,0.361,0.0,0.283,0.0 +65-103,F,Mississippi,0.192,0.0,0.297,0.0,0.487,0.025 +65-103,F,Missouri,0.357,0.0,0.361,0.0,0.283,0.0 +65-103,F,Montana,0.141,0.0,0.498,0.0,0.361,0.0 +65-103,F,Nebraska,0.357,0.0,0.361,0.0,0.283,0.0 +65-103,F,Nevada,0.141,0.0,0.498,0.0,0.361,0.0 +65-103,F,New Hampshire,0.172,0.0,0.278,0.0,0.55,0.0 +65-103,F,New Jersey,0.172,0.0,0.278,0.0,0.55,0.0 +65-103,F,New Mexico,0.141,0.0,0.498,0.0,0.361,0.0 +65-103,F,New York,0.172,0.0,0.278,0.0,0.55,0.0 +65-103,F,North Carolina,0.192,0.0,0.297,0.0,0.487,0.025 +65-103,F,North Dakota,0.357,0.0,0.361,0.0,0.283,0.0 +65-103,F,Ohio,0.357,0.0,0.361,0.0,0.283,0.0 +65-103,F,Oklahoma,0.192,0.0,0.297,0.0,0.487,0.025 +65-103,F,Oregon,0.141,0.0,0.498,0.0,0.361,0.0 +65-103,F,Pennsylvania,0.172,0.0,0.278,0.0,0.55,0.0 +65-103,F,Rhode Island,0.172,0.0,0.278,0.0,0.55,0.0 +65-103,F,South Carolina,0.192,0.0,0.297,0.0,0.487,0.025 +65-103,F,South Dakota,0.357,0.0,0.361,0.0,0.283,0.0 +65-103,F,Tennessee,0.192,0.0,0.297,0.0,0.487,0.025 +65-103,F,Texas,0.192,0.0,0.297,0.0,0.487,0.025 +65-103,F,Utah,0.141,0.0,0.498,0.0,0.361,0.0 +65-103,F,Vermont,0.172,0.0,0.278,0.0,0.55,0.0 +65-103,F,Virginia,0.192,0.0,0.297,0.0,0.487,0.025 +65-103,F,Washington,0.141,0.0,0.498,0.0,0.361,0.0 +65-103,F,West Virginia,0.192,0.0,0.297,0.0,0.487,0.025 +65-103,F,Wisconsin,0.357,0.0,0.361,0.0,0.283,0.0 +65-103,F,Wyoming,0.141,0.0,0.498,0.0,0.361,0.0 +65-103,M,Alabama,0.055,0.0,0.246,0.0,0.642,0.057 +65-103,M,Alaska,0.083,0.0,0.784,0.0,0.132,0.0 +65-103,M,Arizona,0.083,0.0,0.784,0.0,0.132,0.0 +65-103,M,Arkansas,0.055,0.0,0.246,0.0,0.642,0.057 +65-103,M,California,0.083,0.0,0.784,0.0,0.132,0.0 +65-103,M,Colorado,0.083,0.0,0.784,0.0,0.132,0.0 +65-103,M,Connecticut,0.418,0.0,0.414,0.0,0.168,0.0 +65-103,M,Delaware,0.055,0.0,0.246,0.0,0.642,0.057 +65-103,M,District of Columbia,0.055,0.0,0.246,0.0,0.642,0.057 +65-103,M,Florida,0.055,0.0,0.246,0.0,0.642,0.057 +65-103,M,Georgia,0.055,0.0,0.246,0.0,0.642,0.057 +65-103,M,Hawaii,0.083,0.0,0.784,0.0,0.132,0.0 +65-103,M,Idaho,0.083,0.0,0.784,0.0,0.132,0.0 +65-103,M,Illinois,0.064,0.0,0.303,0.0,0.633,0.0 +65-103,M,Indiana,0.064,0.0,0.303,0.0,0.633,0.0 +65-103,M,Iowa,0.064,0.0,0.303,0.0,0.633,0.0 +65-103,M,Kansas,0.064,0.0,0.303,0.0,0.633,0.0 +65-103,M,Kentucky,0.055,0.0,0.246,0.0,0.642,0.057 +65-103,M,Louisiana,0.055,0.0,0.246,0.0,0.642,0.057 +65-103,M,Maine,0.418,0.0,0.414,0.0,0.168,0.0 +65-103,M,Maryland,0.055,0.0,0.246,0.0,0.642,0.057 +65-103,M,Massachusetts,0.418,0.0,0.414,0.0,0.168,0.0 +65-103,M,Michigan,0.064,0.0,0.303,0.0,0.633,0.0 +65-103,M,Minnesota,0.064,0.0,0.303,0.0,0.633,0.0 +65-103,M,Mississippi,0.055,0.0,0.246,0.0,0.642,0.057 +65-103,M,Missouri,0.064,0.0,0.303,0.0,0.633,0.0 +65-103,M,Montana,0.083,0.0,0.784,0.0,0.132,0.0 +65-103,M,Nebraska,0.064,0.0,0.303,0.0,0.633,0.0 +65-103,M,Nevada,0.083,0.0,0.784,0.0,0.132,0.0 +65-103,M,New Hampshire,0.418,0.0,0.414,0.0,0.168,0.0 +65-103,M,New Jersey,0.418,0.0,0.414,0.0,0.168,0.0 +65-103,M,New Mexico,0.083,0.0,0.784,0.0,0.132,0.0 +65-103,M,New York,0.418,0.0,0.414,0.0,0.168,0.0 +65-103,M,North Carolina,0.055,0.0,0.246,0.0,0.642,0.057 +65-103,M,North Dakota,0.064,0.0,0.303,0.0,0.633,0.0 +65-103,M,Ohio,0.064,0.0,0.303,0.0,0.633,0.0 +65-103,M,Oklahoma,0.055,0.0,0.246,0.0,0.642,0.057 +65-103,M,Oregon,0.083,0.0,0.784,0.0,0.132,0.0 +65-103,M,Pennsylvania,0.418,0.0,0.414,0.0,0.168,0.0 +65-103,M,Rhode Island,0.418,0.0,0.414,0.0,0.168,0.0 +65-103,M,South Carolina,0.055,0.0,0.246,0.0,0.642,0.057 +65-103,M,South Dakota,0.064,0.0,0.303,0.0,0.633,0.0 +65-103,M,Tennessee,0.055,0.0,0.246,0.0,0.642,0.057 +65-103,M,Texas,0.055,0.0,0.246,0.0,0.642,0.057 +65-103,M,Utah,0.083,0.0,0.784,0.0,0.132,0.0 +65-103,M,Vermont,0.418,0.0,0.414,0.0,0.168,0.0 +65-103,M,Virginia,0.055,0.0,0.246,0.0,0.642,0.057 +65-103,M,Washington,0.083,0.0,0.784,0.0,0.132,0.0 +65-103,M,West Virginia,0.055,0.0,0.246,0.0,0.642,0.057 +65-103,M,Wisconsin,0.064,0.0,0.303,0.0,0.633,0.0 +65-103,M,Wyoming,0.083,0.0,0.784,0.0,0.132,0.0 diff --git a/src/main/resources/modules/lookup_tables/ace_arb_hydrochlorothiazide_valsartan_product_distribution.csv b/src/main/resources/modules/lookup_tables/ace_arb_hydrochlorothiazide_valsartan_product_distribution.csv new file mode 100644 index 0000000..0a6deeb --- /dev/null +++ b/src/main/resources/modules/lookup_tables/ace_arb_hydrochlorothiazide_valsartan_product_distribution.csv @@ -0,0 +1,238 @@ +age,gender,state,Prescribe_Hydrochlorothiazide_12_5_Mg_Valsartan_160_Mg_Oral_Tablet,Prescribe_Hydrochlorothiazide_12_5_Mg_Valsartan_320_Mg_Oral_Tablet,Prescribe_Hydrochlorothiazide_12_5_Mg_Valsartan_80_Mg_Oral_Tablet,Prescribe_Hydrochlorothiazide_25_Mg_Valsartan_160_Mg_Oral_Tablet,Prescribe_Hydrochlorothiazide_25_Mg_Valsartan_320_Mg_Oral_Tablet +36-45,F,Alabama,0.0,0.0,0.0,0.0,1.0 +36-45,F,Alaska,1.0,0.0,0.0,0.0,0.0 +36-45,F,Arizona,1.0,0.0,0.0,0.0,0.0 +36-45,F,Arkansas,0.0,0.0,0.0,0.0,1.0 +36-45,F,California,1.0,0.0,0.0,0.0,0.0 +36-45,F,Colorado,1.0,0.0,0.0,0.0,0.0 +36-45,F,Delaware,0.0,0.0,0.0,0.0,1.0 +36-45,F,District of Columbia,0.0,0.0,0.0,0.0,1.0 +36-45,F,Florida,0.0,0.0,0.0,0.0,1.0 +36-45,F,Georgia,0.0,0.0,0.0,0.0,1.0 +36-45,F,Hawaii,1.0,0.0,0.0,0.0,0.0 +36-45,F,Idaho,1.0,0.0,0.0,0.0,0.0 +36-45,F,Kentucky,0.0,0.0,0.0,0.0,1.0 +36-45,F,Louisiana,0.0,0.0,0.0,0.0,1.0 +36-45,F,Maryland,0.0,0.0,0.0,0.0,1.0 +36-45,F,Mississippi,0.0,0.0,0.0,0.0,1.0 +36-45,F,Montana,1.0,0.0,0.0,0.0,0.0 +36-45,F,Nevada,1.0,0.0,0.0,0.0,0.0 +36-45,F,New Mexico,1.0,0.0,0.0,0.0,0.0 +36-45,F,North Carolina,0.0,0.0,0.0,0.0,1.0 +36-45,F,Oklahoma,0.0,0.0,0.0,0.0,1.0 +36-45,F,Oregon,1.0,0.0,0.0,0.0,0.0 +36-45,F,South Carolina,0.0,0.0,0.0,0.0,1.0 +36-45,F,Tennessee,0.0,0.0,0.0,0.0,1.0 +36-45,F,Texas,0.0,0.0,0.0,0.0,1.0 +36-45,F,Utah,1.0,0.0,0.0,0.0,0.0 +36-45,F,Virginia,0.0,0.0,0.0,0.0,1.0 +36-45,F,Washington,1.0,0.0,0.0,0.0,0.0 +36-45,F,West Virginia,0.0,0.0,0.0,0.0,1.0 +36-45,F,Wyoming,1.0,0.0,0.0,0.0,0.0 +36-45,M,Alabama,0.0,0.0,0.342,0.0,0.658 +36-45,M,Arkansas,0.0,0.0,0.342,0.0,0.658 +36-45,M,Delaware,0.0,0.0,0.342,0.0,0.658 +36-45,M,District of Columbia,0.0,0.0,0.342,0.0,0.658 +36-45,M,Florida,0.0,0.0,0.342,0.0,0.658 +36-45,M,Georgia,0.0,0.0,0.342,0.0,0.658 +36-45,M,Illinois,0.0,0.0,1.0,0.0,0.0 +36-45,M,Indiana,0.0,0.0,1.0,0.0,0.0 +36-45,M,Iowa,0.0,0.0,1.0,0.0,0.0 +36-45,M,Kansas,0.0,0.0,1.0,0.0,0.0 +36-45,M,Kentucky,0.0,0.0,0.342,0.0,0.658 +36-45,M,Louisiana,0.0,0.0,0.342,0.0,0.658 +36-45,M,Maryland,0.0,0.0,0.342,0.0,0.658 +36-45,M,Michigan,0.0,0.0,1.0,0.0,0.0 +36-45,M,Minnesota,0.0,0.0,1.0,0.0,0.0 +36-45,M,Mississippi,0.0,0.0,0.342,0.0,0.658 +36-45,M,Missouri,0.0,0.0,1.0,0.0,0.0 +36-45,M,Nebraska,0.0,0.0,1.0,0.0,0.0 +36-45,M,North Carolina,0.0,0.0,0.342,0.0,0.658 +36-45,M,North Dakota,0.0,0.0,1.0,0.0,0.0 +36-45,M,Ohio,0.0,0.0,1.0,0.0,0.0 +36-45,M,Oklahoma,0.0,0.0,0.342,0.0,0.658 +36-45,M,South Carolina,0.0,0.0,0.342,0.0,0.658 +36-45,M,South Dakota,0.0,0.0,1.0,0.0,0.0 +36-45,M,Tennessee,0.0,0.0,0.342,0.0,0.658 +36-45,M,Texas,0.0,0.0,0.342,0.0,0.658 +36-45,M,Virginia,0.0,0.0,0.342,0.0,0.658 +36-45,M,West Virginia,0.0,0.0,0.342,0.0,0.658 +36-45,M,Wisconsin,0.0,0.0,1.0,0.0,0.0 +46-65,F,Alabama,0.135,0.0,0.297,0.049,0.519 +46-65,F,Arkansas,0.135,0.0,0.297,0.049,0.519 +46-65,F,Connecticut,0.497,0.0,0.0,0.435,0.069 +46-65,F,Delaware,0.135,0.0,0.297,0.049,0.519 +46-65,F,District of Columbia,0.135,0.0,0.297,0.049,0.519 +46-65,F,Florida,0.135,0.0,0.297,0.049,0.519 +46-65,F,Georgia,0.135,0.0,0.297,0.049,0.519 +46-65,F,Illinois,0.0,0.0,1.0,0.0,0.0 +46-65,F,Indiana,0.0,0.0,1.0,0.0,0.0 +46-65,F,Iowa,0.0,0.0,1.0,0.0,0.0 +46-65,F,Kansas,0.0,0.0,1.0,0.0,0.0 +46-65,F,Kentucky,0.135,0.0,0.297,0.049,0.519 +46-65,F,Louisiana,0.135,0.0,0.297,0.049,0.519 +46-65,F,Maine,0.497,0.0,0.0,0.435,0.069 +46-65,F,Maryland,0.135,0.0,0.297,0.049,0.519 +46-65,F,Massachusetts,0.497,0.0,0.0,0.435,0.069 +46-65,F,Michigan,0.0,0.0,1.0,0.0,0.0 +46-65,F,Minnesota,0.0,0.0,1.0,0.0,0.0 +46-65,F,Mississippi,0.135,0.0,0.297,0.049,0.519 +46-65,F,Missouri,0.0,0.0,1.0,0.0,0.0 +46-65,F,Nebraska,0.0,0.0,1.0,0.0,0.0 +46-65,F,New Hampshire,0.497,0.0,0.0,0.435,0.069 +46-65,F,New Jersey,0.497,0.0,0.0,0.435,0.069 +46-65,F,New York,0.497,0.0,0.0,0.435,0.069 +46-65,F,North Carolina,0.135,0.0,0.297,0.049,0.519 +46-65,F,North Dakota,0.0,0.0,1.0,0.0,0.0 +46-65,F,Ohio,0.0,0.0,1.0,0.0,0.0 +46-65,F,Oklahoma,0.135,0.0,0.297,0.049,0.519 +46-65,F,Pennsylvania,0.497,0.0,0.0,0.435,0.069 +46-65,F,Rhode Island,0.497,0.0,0.0,0.435,0.069 +46-65,F,South Carolina,0.135,0.0,0.297,0.049,0.519 +46-65,F,South Dakota,0.0,0.0,1.0,0.0,0.0 +46-65,F,Tennessee,0.135,0.0,0.297,0.049,0.519 +46-65,F,Texas,0.135,0.0,0.297,0.049,0.519 +46-65,F,Vermont,0.497,0.0,0.0,0.435,0.069 +46-65,F,Virginia,0.135,0.0,0.297,0.049,0.519 +46-65,F,West Virginia,0.135,0.0,0.297,0.049,0.519 +46-65,F,Wisconsin,0.0,0.0,1.0,0.0,0.0 +46-65,M,Alabama,0.216,0.091,0.178,0.389,0.126 +46-65,M,Alaska,1.0,0.0,0.0,0.0,0.0 +46-65,M,Arizona,1.0,0.0,0.0,0.0,0.0 +46-65,M,Arkansas,0.216,0.091,0.178,0.389,0.126 +46-65,M,California,1.0,0.0,0.0,0.0,0.0 +46-65,M,Colorado,1.0,0.0,0.0,0.0,0.0 +46-65,M,Connecticut,0.229,0.0,0.315,0.228,0.228 +46-65,M,Delaware,0.216,0.091,0.178,0.389,0.126 +46-65,M,District of Columbia,0.216,0.091,0.178,0.389,0.126 +46-65,M,Florida,0.216,0.091,0.178,0.389,0.126 +46-65,M,Georgia,0.216,0.091,0.178,0.389,0.126 +46-65,M,Hawaii,1.0,0.0,0.0,0.0,0.0 +46-65,M,Idaho,1.0,0.0,0.0,0.0,0.0 +46-65,M,Illinois,0.157,0.105,0.0,0.406,0.332 +46-65,M,Indiana,0.157,0.105,0.0,0.406,0.332 +46-65,M,Iowa,0.157,0.105,0.0,0.406,0.332 +46-65,M,Kansas,0.157,0.105,0.0,0.406,0.332 +46-65,M,Kentucky,0.216,0.091,0.178,0.389,0.126 +46-65,M,Louisiana,0.216,0.091,0.178,0.389,0.126 +46-65,M,Maine,0.229,0.0,0.315,0.228,0.228 +46-65,M,Maryland,0.216,0.091,0.178,0.389,0.126 +46-65,M,Massachusetts,0.229,0.0,0.315,0.228,0.228 +46-65,M,Michigan,0.157,0.105,0.0,0.406,0.332 +46-65,M,Minnesota,0.157,0.105,0.0,0.406,0.332 +46-65,M,Mississippi,0.216,0.091,0.178,0.389,0.126 +46-65,M,Missouri,0.157,0.105,0.0,0.406,0.332 +46-65,M,Montana,1.0,0.0,0.0,0.0,0.0 +46-65,M,Nebraska,0.157,0.105,0.0,0.406,0.332 +46-65,M,Nevada,1.0,0.0,0.0,0.0,0.0 +46-65,M,New Hampshire,0.229,0.0,0.315,0.228,0.228 +46-65,M,New Jersey,0.229,0.0,0.315,0.228,0.228 +46-65,M,New Mexico,1.0,0.0,0.0,0.0,0.0 +46-65,M,New York,0.229,0.0,0.315,0.228,0.228 +46-65,M,North Carolina,0.216,0.091,0.178,0.389,0.126 +46-65,M,North Dakota,0.157,0.105,0.0,0.406,0.332 +46-65,M,Ohio,0.157,0.105,0.0,0.406,0.332 +46-65,M,Oklahoma,0.216,0.091,0.178,0.389,0.126 +46-65,M,Oregon,1.0,0.0,0.0,0.0,0.0 +46-65,M,Pennsylvania,0.229,0.0,0.315,0.228,0.228 +46-65,M,Rhode Island,0.229,0.0,0.315,0.228,0.228 +46-65,M,South Carolina,0.216,0.091,0.178,0.389,0.126 +46-65,M,South Dakota,0.157,0.105,0.0,0.406,0.332 +46-65,M,Tennessee,0.216,0.091,0.178,0.389,0.126 +46-65,M,Texas,0.216,0.091,0.178,0.389,0.126 +46-65,M,Utah,1.0,0.0,0.0,0.0,0.0 +46-65,M,Vermont,0.229,0.0,0.315,0.228,0.228 +46-65,M,Virginia,0.216,0.091,0.178,0.389,0.126 +46-65,M,Washington,1.0,0.0,0.0,0.0,0.0 +46-65,M,West Virginia,0.216,0.091,0.178,0.389,0.126 +46-65,M,Wisconsin,0.157,0.105,0.0,0.406,0.332 +46-65,M,Wyoming,1.0,0.0,0.0,0.0,0.0 +65-103,F,Alabama,0.335,0.058,0.207,0.073,0.328 +65-103,F,Alaska,0.55,0.0,0.45,0.0,0.0 +65-103,F,Arizona,0.55,0.0,0.45,0.0,0.0 +65-103,F,Arkansas,0.335,0.058,0.207,0.073,0.328 +65-103,F,California,0.55,0.0,0.45,0.0,0.0 +65-103,F,Colorado,0.55,0.0,0.45,0.0,0.0 +65-103,F,Connecticut,0.471,0.0,0.096,0.366,0.067 +65-103,F,Delaware,0.335,0.058,0.207,0.073,0.328 +65-103,F,District of Columbia,0.335,0.058,0.207,0.073,0.328 +65-103,F,Florida,0.335,0.058,0.207,0.073,0.328 +65-103,F,Georgia,0.335,0.058,0.207,0.073,0.328 +65-103,F,Hawaii,0.55,0.0,0.45,0.0,0.0 +65-103,F,Idaho,0.55,0.0,0.45,0.0,0.0 +65-103,F,Illinois,0.0,0.0,0.0,0.0,1.0 +65-103,F,Indiana,0.0,0.0,0.0,0.0,1.0 +65-103,F,Iowa,0.0,0.0,0.0,0.0,1.0 +65-103,F,Kansas,0.0,0.0,0.0,0.0,1.0 +65-103,F,Kentucky,0.335,0.058,0.207,0.073,0.328 +65-103,F,Louisiana,0.335,0.058,0.207,0.073,0.328 +65-103,F,Maine,0.471,0.0,0.096,0.366,0.067 +65-103,F,Maryland,0.335,0.058,0.207,0.073,0.328 +65-103,F,Massachusetts,0.471,0.0,0.096,0.366,0.067 +65-103,F,Michigan,0.0,0.0,0.0,0.0,1.0 +65-103,F,Minnesota,0.0,0.0,0.0,0.0,1.0 +65-103,F,Mississippi,0.335,0.058,0.207,0.073,0.328 +65-103,F,Missouri,0.0,0.0,0.0,0.0,1.0 +65-103,F,Montana,0.55,0.0,0.45,0.0,0.0 +65-103,F,Nebraska,0.0,0.0,0.0,0.0,1.0 +65-103,F,Nevada,0.55,0.0,0.45,0.0,0.0 +65-103,F,New Hampshire,0.471,0.0,0.096,0.366,0.067 +65-103,F,New Jersey,0.471,0.0,0.096,0.366,0.067 +65-103,F,New Mexico,0.55,0.0,0.45,0.0,0.0 +65-103,F,New York,0.471,0.0,0.096,0.366,0.067 +65-103,F,North Carolina,0.335,0.058,0.207,0.073,0.328 +65-103,F,North Dakota,0.0,0.0,0.0,0.0,1.0 +65-103,F,Ohio,0.0,0.0,0.0,0.0,1.0 +65-103,F,Oklahoma,0.335,0.058,0.207,0.073,0.328 +65-103,F,Oregon,0.55,0.0,0.45,0.0,0.0 +65-103,F,Pennsylvania,0.471,0.0,0.096,0.366,0.067 +65-103,F,Rhode Island,0.471,0.0,0.096,0.366,0.067 +65-103,F,South Carolina,0.335,0.058,0.207,0.073,0.328 +65-103,F,South Dakota,0.0,0.0,0.0,0.0,1.0 +65-103,F,Tennessee,0.335,0.058,0.207,0.073,0.328 +65-103,F,Texas,0.335,0.058,0.207,0.073,0.328 +65-103,F,Utah,0.55,0.0,0.45,0.0,0.0 +65-103,F,Vermont,0.471,0.0,0.096,0.366,0.067 +65-103,F,Virginia,0.335,0.058,0.207,0.073,0.328 +65-103,F,Washington,0.55,0.0,0.45,0.0,0.0 +65-103,F,West Virginia,0.335,0.058,0.207,0.073,0.328 +65-103,F,Wisconsin,0.0,0.0,0.0,0.0,1.0 +65-103,F,Wyoming,0.55,0.0,0.45,0.0,0.0 +65-103,M,Alabama,0.322,0.091,0.0,0.443,0.144 +65-103,M,Arkansas,0.322,0.091,0.0,0.443,0.144 +65-103,M,Connecticut,0.14,0.128,0.0,0.0,0.732 +65-103,M,Delaware,0.322,0.091,0.0,0.443,0.144 +65-103,M,District of Columbia,0.322,0.091,0.0,0.443,0.144 +65-103,M,Florida,0.322,0.091,0.0,0.443,0.144 +65-103,M,Georgia,0.322,0.091,0.0,0.443,0.144 +65-103,M,Illinois,0.199,0.0,0.0,0.801,0.0 +65-103,M,Indiana,0.199,0.0,0.0,0.801,0.0 +65-103,M,Iowa,0.199,0.0,0.0,0.801,0.0 +65-103,M,Kansas,0.199,0.0,0.0,0.801,0.0 +65-103,M,Kentucky,0.322,0.091,0.0,0.443,0.144 +65-103,M,Louisiana,0.322,0.091,0.0,0.443,0.144 +65-103,M,Maine,0.14,0.128,0.0,0.0,0.732 +65-103,M,Maryland,0.322,0.091,0.0,0.443,0.144 +65-103,M,Massachusetts,0.14,0.128,0.0,0.0,0.732 +65-103,M,Michigan,0.199,0.0,0.0,0.801,0.0 +65-103,M,Minnesota,0.199,0.0,0.0,0.801,0.0 +65-103,M,Mississippi,0.322,0.091,0.0,0.443,0.144 +65-103,M,Missouri,0.199,0.0,0.0,0.801,0.0 +65-103,M,Nebraska,0.199,0.0,0.0,0.801,0.0 +65-103,M,New Hampshire,0.14,0.128,0.0,0.0,0.732 +65-103,M,New Jersey,0.14,0.128,0.0,0.0,0.732 +65-103,M,New York,0.14,0.128,0.0,0.0,0.732 +65-103,M,North Carolina,0.322,0.091,0.0,0.443,0.144 +65-103,M,North Dakota,0.199,0.0,0.0,0.801,0.0 +65-103,M,Ohio,0.199,0.0,0.0,0.801,0.0 +65-103,M,Oklahoma,0.322,0.091,0.0,0.443,0.144 +65-103,M,Pennsylvania,0.14,0.128,0.0,0.0,0.732 +65-103,M,Rhode Island,0.14,0.128,0.0,0.0,0.732 +65-103,M,South Carolina,0.322,0.091,0.0,0.443,0.144 +65-103,M,South Dakota,0.199,0.0,0.0,0.801,0.0 +65-103,M,Tennessee,0.322,0.091,0.0,0.443,0.144 +65-103,M,Texas,0.322,0.091,0.0,0.443,0.144 +65-103,M,Vermont,0.14,0.128,0.0,0.0,0.732 +65-103,M,Virginia,0.322,0.091,0.0,0.443,0.144 +65-103,M,West Virginia,0.322,0.091,0.0,0.443,0.144 +65-103,M,Wisconsin,0.199,0.0,0.0,0.801,0.0 diff --git a/src/main/resources/modules/lookup_tables/ace_arb_ingredient_distribution.csv b/src/main/resources/modules/lookup_tables/ace_arb_ingredient_distribution.csv new file mode 100644 index 0000000..656a801 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/ace_arb_ingredient_distribution.csv @@ -0,0 +1,612 @@ +age,gender,state,Prescribe_Amlodipine_Benazepril,Prescribe_Benazepril,Prescribe_Benazepril_Hydrochlorothiazide,Prescribe_Enalapril,Prescribe_Hydrochlorothiazide_Lisinopril,Prescribe_Hydrochlorothiazide_Losartan,Prescribe_Hydrochlorothiazide_Valsartan,Prescribe_Irbesartan,Prescribe_Lisinopril,Prescribe_Losartan,Prescribe_Quinapril,Prescribe_Ramipril,Prescribe_Sacubitril_Valsartan,Prescribe_Telmisartan,Prescribe_Valsartan +0-3,M,Alabama,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +0-3,M,Arkansas,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +0-3,M,Delaware,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +0-3,M,District of Columbia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +0-3,M,Florida,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +0-3,M,Georgia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +0-3,M,Kentucky,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +0-3,M,Louisiana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +0-3,M,Maryland,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +0-3,M,Mississippi,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +0-3,M,North Carolina,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +0-3,M,Oklahoma,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +0-3,M,South Carolina,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +0-3,M,Tennessee,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +0-3,M,Texas,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +0-3,M,Virginia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +0-3,M,West Virginia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,F,Alabama,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,F,Arkansas,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,F,Delaware,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,F,District of Columbia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,F,Florida,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,F,Georgia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,F,Kentucky,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,F,Louisiana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,F,Maryland,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,F,Mississippi,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,F,North Carolina,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,F,Oklahoma,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,F,South Carolina,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,F,Tennessee,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,F,Texas,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,F,Virginia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,F,West Virginia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Alabama,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Arkansas,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Delaware,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,District of Columbia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Florida,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Georgia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Illinois,0.0,0.0,0.0,0.842,0.0,0.0,0.0,0.0,0.158,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Indiana,0.0,0.0,0.0,0.842,0.0,0.0,0.0,0.0,0.158,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Iowa,0.0,0.0,0.0,0.842,0.0,0.0,0.0,0.0,0.158,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Kansas,0.0,0.0,0.0,0.842,0.0,0.0,0.0,0.0,0.158,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Kentucky,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Louisiana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Maryland,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Michigan,0.0,0.0,0.0,0.842,0.0,0.0,0.0,0.0,0.158,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Minnesota,0.0,0.0,0.0,0.842,0.0,0.0,0.0,0.0,0.158,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Mississippi,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Missouri,0.0,0.0,0.0,0.842,0.0,0.0,0.0,0.0,0.158,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Nebraska,0.0,0.0,0.0,0.842,0.0,0.0,0.0,0.0,0.158,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,North Carolina,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,North Dakota,0.0,0.0,0.0,0.842,0.0,0.0,0.0,0.0,0.158,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Ohio,0.0,0.0,0.0,0.842,0.0,0.0,0.0,0.0,0.158,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Oklahoma,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,South Carolina,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,South Dakota,0.0,0.0,0.0,0.842,0.0,0.0,0.0,0.0,0.158,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Tennessee,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Texas,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Virginia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,West Virginia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Wisconsin,0.0,0.0,0.0,0.842,0.0,0.0,0.0,0.0,0.158,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Alabama,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Alaska,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Arizona,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Arkansas,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,California,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Colorado,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Connecticut,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Delaware,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,District of Columbia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Florida,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Georgia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Hawaii,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Idaho,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Illinois,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +18-25,F,Indiana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +18-25,F,Iowa,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +18-25,F,Kansas,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +18-25,F,Kentucky,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Louisiana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Maine,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Maryland,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Massachusetts,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Michigan,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +18-25,F,Minnesota,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +18-25,F,Mississippi,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Missouri,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +18-25,F,Montana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Nebraska,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +18-25,F,Nevada,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,New Hampshire,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,New Jersey,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,New Mexico,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,New York,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,North Carolina,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,North Dakota,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +18-25,F,Ohio,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +18-25,F,Oklahoma,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Oregon,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Pennsylvania,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Rhode Island,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,South Carolina,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,South Dakota,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +18-25,F,Tennessee,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Texas,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Utah,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Vermont,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Virginia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Washington,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,West Virginia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Wisconsin,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +18-25,F,Wyoming,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Alabama,0.0,0.0,0.0,0.0,0.0,0.334,0.0,0.0,0.666,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Alaska,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.632,0.368,0.0,0.0,0.0,0.0,0.0 +18-25,M,Arizona,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.632,0.368,0.0,0.0,0.0,0.0,0.0 +18-25,M,Arkansas,0.0,0.0,0.0,0.0,0.0,0.334,0.0,0.0,0.666,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,California,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.632,0.368,0.0,0.0,0.0,0.0,0.0 +18-25,M,Colorado,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.632,0.368,0.0,0.0,0.0,0.0,0.0 +18-25,M,Connecticut,0.0,0.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.21 +18-25,M,Delaware,0.0,0.0,0.0,0.0,0.0,0.334,0.0,0.0,0.666,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,District of Columbia,0.0,0.0,0.0,0.0,0.0,0.334,0.0,0.0,0.666,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Florida,0.0,0.0,0.0,0.0,0.0,0.334,0.0,0.0,0.666,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Georgia,0.0,0.0,0.0,0.0,0.0,0.334,0.0,0.0,0.666,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Hawaii,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.632,0.368,0.0,0.0,0.0,0.0,0.0 +18-25,M,Idaho,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.632,0.368,0.0,0.0,0.0,0.0,0.0 +18-25,M,Illinois,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Indiana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Iowa,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Kansas,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Kentucky,0.0,0.0,0.0,0.0,0.0,0.334,0.0,0.0,0.666,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Louisiana,0.0,0.0,0.0,0.0,0.0,0.334,0.0,0.0,0.666,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Maine,0.0,0.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.21 +18-25,M,Maryland,0.0,0.0,0.0,0.0,0.0,0.334,0.0,0.0,0.666,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Massachusetts,0.0,0.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.21 +18-25,M,Michigan,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Minnesota,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Mississippi,0.0,0.0,0.0,0.0,0.0,0.334,0.0,0.0,0.666,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Missouri,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Montana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.632,0.368,0.0,0.0,0.0,0.0,0.0 +18-25,M,Nebraska,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Nevada,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.632,0.368,0.0,0.0,0.0,0.0,0.0 +18-25,M,New Hampshire,0.0,0.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.21 +18-25,M,New Jersey,0.0,0.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.21 +18-25,M,New Mexico,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.632,0.368,0.0,0.0,0.0,0.0,0.0 +18-25,M,New York,0.0,0.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.21 +18-25,M,North Carolina,0.0,0.0,0.0,0.0,0.0,0.334,0.0,0.0,0.666,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,North Dakota,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Ohio,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Oklahoma,0.0,0.0,0.0,0.0,0.0,0.334,0.0,0.0,0.666,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Oregon,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.632,0.368,0.0,0.0,0.0,0.0,0.0 +18-25,M,Pennsylvania,0.0,0.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.21 +18-25,M,Rhode Island,0.0,0.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.21 +18-25,M,South Carolina,0.0,0.0,0.0,0.0,0.0,0.334,0.0,0.0,0.666,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,South Dakota,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Tennessee,0.0,0.0,0.0,0.0,0.0,0.334,0.0,0.0,0.666,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Texas,0.0,0.0,0.0,0.0,0.0,0.334,0.0,0.0,0.666,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Utah,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.632,0.368,0.0,0.0,0.0,0.0,0.0 +18-25,M,Vermont,0.0,0.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.21 +18-25,M,Virginia,0.0,0.0,0.0,0.0,0.0,0.334,0.0,0.0,0.666,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Washington,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.632,0.368,0.0,0.0,0.0,0.0,0.0 +18-25,M,West Virginia,0.0,0.0,0.0,0.0,0.0,0.334,0.0,0.0,0.666,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Wisconsin,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Wyoming,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.632,0.368,0.0,0.0,0.0,0.0,0.0 +26-35,F,Alabama,0.0,0.0,0.0,0.04,0.03,0.016,0.0,0.044,0.494,0.227,0.0,0.0,0.0,0.073,0.075 +26-35,F,Alaska,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.373,0.627,0.0,0.0,0.0,0.0,0.0 +26-35,F,Arizona,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.373,0.627,0.0,0.0,0.0,0.0,0.0 +26-35,F,Arkansas,0.0,0.0,0.0,0.04,0.03,0.016,0.0,0.044,0.494,0.227,0.0,0.0,0.0,0.073,0.075 +26-35,F,California,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.373,0.627,0.0,0.0,0.0,0.0,0.0 +26-35,F,Colorado,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.373,0.627,0.0,0.0,0.0,0.0,0.0 +26-35,F,Connecticut,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Delaware,0.0,0.0,0.0,0.04,0.03,0.016,0.0,0.044,0.494,0.227,0.0,0.0,0.0,0.073,0.075 +26-35,F,District of Columbia,0.0,0.0,0.0,0.04,0.03,0.016,0.0,0.044,0.494,0.227,0.0,0.0,0.0,0.073,0.075 +26-35,F,Florida,0.0,0.0,0.0,0.04,0.03,0.016,0.0,0.044,0.494,0.227,0.0,0.0,0.0,0.073,0.075 +26-35,F,Georgia,0.0,0.0,0.0,0.04,0.03,0.016,0.0,0.044,0.494,0.227,0.0,0.0,0.0,0.073,0.075 +26-35,F,Hawaii,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.373,0.627,0.0,0.0,0.0,0.0,0.0 +26-35,F,Idaho,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.373,0.627,0.0,0.0,0.0,0.0,0.0 +26-35,F,Illinois,0.0,0.0,0.0,0.0,0.368,0.148,0.0,0.0,0.485,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Indiana,0.0,0.0,0.0,0.0,0.368,0.148,0.0,0.0,0.485,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Iowa,0.0,0.0,0.0,0.0,0.368,0.148,0.0,0.0,0.485,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Kansas,0.0,0.0,0.0,0.0,0.368,0.148,0.0,0.0,0.485,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Kentucky,0.0,0.0,0.0,0.04,0.03,0.016,0.0,0.044,0.494,0.227,0.0,0.0,0.0,0.073,0.075 +26-35,F,Louisiana,0.0,0.0,0.0,0.04,0.03,0.016,0.0,0.044,0.494,0.227,0.0,0.0,0.0,0.073,0.075 +26-35,F,Maine,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Maryland,0.0,0.0,0.0,0.04,0.03,0.016,0.0,0.044,0.494,0.227,0.0,0.0,0.0,0.073,0.075 +26-35,F,Massachusetts,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Michigan,0.0,0.0,0.0,0.0,0.368,0.148,0.0,0.0,0.485,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Minnesota,0.0,0.0,0.0,0.0,0.368,0.148,0.0,0.0,0.485,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Mississippi,0.0,0.0,0.0,0.04,0.03,0.016,0.0,0.044,0.494,0.227,0.0,0.0,0.0,0.073,0.075 +26-35,F,Missouri,0.0,0.0,0.0,0.0,0.368,0.148,0.0,0.0,0.485,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Montana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.373,0.627,0.0,0.0,0.0,0.0,0.0 +26-35,F,Nebraska,0.0,0.0,0.0,0.0,0.368,0.148,0.0,0.0,0.485,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Nevada,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.373,0.627,0.0,0.0,0.0,0.0,0.0 +26-35,F,New Hampshire,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,New Jersey,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,New Mexico,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.373,0.627,0.0,0.0,0.0,0.0,0.0 +26-35,F,New York,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,North Carolina,0.0,0.0,0.0,0.04,0.03,0.016,0.0,0.044,0.494,0.227,0.0,0.0,0.0,0.073,0.075 +26-35,F,North Dakota,0.0,0.0,0.0,0.0,0.368,0.148,0.0,0.0,0.485,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Ohio,0.0,0.0,0.0,0.0,0.368,0.148,0.0,0.0,0.485,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Oklahoma,0.0,0.0,0.0,0.04,0.03,0.016,0.0,0.044,0.494,0.227,0.0,0.0,0.0,0.073,0.075 +26-35,F,Oregon,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.373,0.627,0.0,0.0,0.0,0.0,0.0 +26-35,F,Pennsylvania,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Rhode Island,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,South Carolina,0.0,0.0,0.0,0.04,0.03,0.016,0.0,0.044,0.494,0.227,0.0,0.0,0.0,0.073,0.075 +26-35,F,South Dakota,0.0,0.0,0.0,0.0,0.368,0.148,0.0,0.0,0.485,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Tennessee,0.0,0.0,0.0,0.04,0.03,0.016,0.0,0.044,0.494,0.227,0.0,0.0,0.0,0.073,0.075 +26-35,F,Texas,0.0,0.0,0.0,0.04,0.03,0.016,0.0,0.044,0.494,0.227,0.0,0.0,0.0,0.073,0.075 +26-35,F,Utah,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.373,0.627,0.0,0.0,0.0,0.0,0.0 +26-35,F,Vermont,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Virginia,0.0,0.0,0.0,0.04,0.03,0.016,0.0,0.044,0.494,0.227,0.0,0.0,0.0,0.073,0.075 +26-35,F,Washington,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.373,0.627,0.0,0.0,0.0,0.0,0.0 +26-35,F,West Virginia,0.0,0.0,0.0,0.04,0.03,0.016,0.0,0.044,0.494,0.227,0.0,0.0,0.0,0.073,0.075 +26-35,F,Wisconsin,0.0,0.0,0.0,0.0,0.368,0.148,0.0,0.0,0.485,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Wyoming,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.373,0.627,0.0,0.0,0.0,0.0,0.0 +26-35,M,Alabama,0.056,0.033,0.0,0.04,0.0,0.0,0.0,0.0,0.692,0.153,0.0,0.0,0.027,0.0,0.0 +26-35,M,Alaska,0.144,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.538,0.161,0.0,0.0,0.157,0.0,0.0 +26-35,M,Arizona,0.144,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.538,0.161,0.0,0.0,0.157,0.0,0.0 +26-35,M,Arkansas,0.056,0.033,0.0,0.04,0.0,0.0,0.0,0.0,0.692,0.153,0.0,0.0,0.027,0.0,0.0 +26-35,M,California,0.144,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.538,0.161,0.0,0.0,0.157,0.0,0.0 +26-35,M,Colorado,0.144,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.538,0.161,0.0,0.0,0.157,0.0,0.0 +26-35,M,Connecticut,0.0,0.0,0.0,0.167,0.0,0.0,0.0,0.0,0.525,0.264,0.0,0.0,0.0,0.0,0.044 +26-35,M,Delaware,0.056,0.033,0.0,0.04,0.0,0.0,0.0,0.0,0.692,0.153,0.0,0.0,0.027,0.0,0.0 +26-35,M,District of Columbia,0.056,0.033,0.0,0.04,0.0,0.0,0.0,0.0,0.692,0.153,0.0,0.0,0.027,0.0,0.0 +26-35,M,Florida,0.056,0.033,0.0,0.04,0.0,0.0,0.0,0.0,0.692,0.153,0.0,0.0,0.027,0.0,0.0 +26-35,M,Georgia,0.056,0.033,0.0,0.04,0.0,0.0,0.0,0.0,0.692,0.153,0.0,0.0,0.027,0.0,0.0 +26-35,M,Hawaii,0.144,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.538,0.161,0.0,0.0,0.157,0.0,0.0 +26-35,M,Idaho,0.144,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.538,0.161,0.0,0.0,0.157,0.0,0.0 +26-35,M,Illinois,0.0,0.0,0.0,0.0,0.24,0.0,0.0,0.0,0.76,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Indiana,0.0,0.0,0.0,0.0,0.24,0.0,0.0,0.0,0.76,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Iowa,0.0,0.0,0.0,0.0,0.24,0.0,0.0,0.0,0.76,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Kansas,0.0,0.0,0.0,0.0,0.24,0.0,0.0,0.0,0.76,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Kentucky,0.056,0.033,0.0,0.04,0.0,0.0,0.0,0.0,0.692,0.153,0.0,0.0,0.027,0.0,0.0 +26-35,M,Louisiana,0.056,0.033,0.0,0.04,0.0,0.0,0.0,0.0,0.692,0.153,0.0,0.0,0.027,0.0,0.0 +26-35,M,Maine,0.0,0.0,0.0,0.167,0.0,0.0,0.0,0.0,0.525,0.264,0.0,0.0,0.0,0.0,0.044 +26-35,M,Maryland,0.056,0.033,0.0,0.04,0.0,0.0,0.0,0.0,0.692,0.153,0.0,0.0,0.027,0.0,0.0 +26-35,M,Massachusetts,0.0,0.0,0.0,0.167,0.0,0.0,0.0,0.0,0.525,0.264,0.0,0.0,0.0,0.0,0.044 +26-35,M,Michigan,0.0,0.0,0.0,0.0,0.24,0.0,0.0,0.0,0.76,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Minnesota,0.0,0.0,0.0,0.0,0.24,0.0,0.0,0.0,0.76,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Mississippi,0.056,0.033,0.0,0.04,0.0,0.0,0.0,0.0,0.692,0.153,0.0,0.0,0.027,0.0,0.0 +26-35,M,Missouri,0.0,0.0,0.0,0.0,0.24,0.0,0.0,0.0,0.76,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Montana,0.144,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.538,0.161,0.0,0.0,0.157,0.0,0.0 +26-35,M,Nebraska,0.0,0.0,0.0,0.0,0.24,0.0,0.0,0.0,0.76,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Nevada,0.144,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.538,0.161,0.0,0.0,0.157,0.0,0.0 +26-35,M,New Hampshire,0.0,0.0,0.0,0.167,0.0,0.0,0.0,0.0,0.525,0.264,0.0,0.0,0.0,0.0,0.044 +26-35,M,New Jersey,0.0,0.0,0.0,0.167,0.0,0.0,0.0,0.0,0.525,0.264,0.0,0.0,0.0,0.0,0.044 +26-35,M,New Mexico,0.144,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.538,0.161,0.0,0.0,0.157,0.0,0.0 +26-35,M,New York,0.0,0.0,0.0,0.167,0.0,0.0,0.0,0.0,0.525,0.264,0.0,0.0,0.0,0.0,0.044 +26-35,M,North Carolina,0.056,0.033,0.0,0.04,0.0,0.0,0.0,0.0,0.692,0.153,0.0,0.0,0.027,0.0,0.0 +26-35,M,North Dakota,0.0,0.0,0.0,0.0,0.24,0.0,0.0,0.0,0.76,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Ohio,0.0,0.0,0.0,0.0,0.24,0.0,0.0,0.0,0.76,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Oklahoma,0.056,0.033,0.0,0.04,0.0,0.0,0.0,0.0,0.692,0.153,0.0,0.0,0.027,0.0,0.0 +26-35,M,Oregon,0.144,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.538,0.161,0.0,0.0,0.157,0.0,0.0 +26-35,M,Pennsylvania,0.0,0.0,0.0,0.167,0.0,0.0,0.0,0.0,0.525,0.264,0.0,0.0,0.0,0.0,0.044 +26-35,M,Rhode Island,0.0,0.0,0.0,0.167,0.0,0.0,0.0,0.0,0.525,0.264,0.0,0.0,0.0,0.0,0.044 +26-35,M,South Carolina,0.056,0.033,0.0,0.04,0.0,0.0,0.0,0.0,0.692,0.153,0.0,0.0,0.027,0.0,0.0 +26-35,M,South Dakota,0.0,0.0,0.0,0.0,0.24,0.0,0.0,0.0,0.76,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Tennessee,0.056,0.033,0.0,0.04,0.0,0.0,0.0,0.0,0.692,0.153,0.0,0.0,0.027,0.0,0.0 +26-35,M,Texas,0.056,0.033,0.0,0.04,0.0,0.0,0.0,0.0,0.692,0.153,0.0,0.0,0.027,0.0,0.0 +26-35,M,Utah,0.144,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.538,0.161,0.0,0.0,0.157,0.0,0.0 +26-35,M,Vermont,0.0,0.0,0.0,0.167,0.0,0.0,0.0,0.0,0.525,0.264,0.0,0.0,0.0,0.0,0.044 +26-35,M,Virginia,0.056,0.033,0.0,0.04,0.0,0.0,0.0,0.0,0.692,0.153,0.0,0.0,0.027,0.0,0.0 +26-35,M,Washington,0.144,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.538,0.161,0.0,0.0,0.157,0.0,0.0 +26-35,M,West Virginia,0.056,0.033,0.0,0.04,0.0,0.0,0.0,0.0,0.692,0.153,0.0,0.0,0.027,0.0,0.0 +26-35,M,Wisconsin,0.0,0.0,0.0,0.0,0.24,0.0,0.0,0.0,0.76,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Wyoming,0.144,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.538,0.161,0.0,0.0,0.157,0.0,0.0 +36-45,F,Alabama,0.0,0.036,0.0,0.01,0.087,0.044,0.008,0.0,0.606,0.192,0.0,0.009,0.0,0.0,0.007 +36-45,F,Alaska,0.0,0.012,0.0,0.0,0.0,0.037,0.072,0.0,0.559,0.32,0.0,0.0,0.0,0.0,0.0 +36-45,F,Arizona,0.0,0.012,0.0,0.0,0.0,0.037,0.072,0.0,0.559,0.32,0.0,0.0,0.0,0.0,0.0 +36-45,F,Arkansas,0.0,0.036,0.0,0.01,0.087,0.044,0.008,0.0,0.606,0.192,0.0,0.009,0.0,0.0,0.007 +36-45,F,California,0.0,0.012,0.0,0.0,0.0,0.037,0.072,0.0,0.559,0.32,0.0,0.0,0.0,0.0,0.0 +36-45,F,Colorado,0.0,0.012,0.0,0.0,0.0,0.037,0.072,0.0,0.559,0.32,0.0,0.0,0.0,0.0,0.0 +36-45,F,Connecticut,0.0,0.0,0.0,0.139,0.05,0.0,0.0,0.0,0.691,0.12,0.0,0.0,0.0,0.0,0.0 +36-45,F,Delaware,0.0,0.036,0.0,0.01,0.087,0.044,0.008,0.0,0.606,0.192,0.0,0.009,0.0,0.0,0.007 +36-45,F,District of Columbia,0.0,0.036,0.0,0.01,0.087,0.044,0.008,0.0,0.606,0.192,0.0,0.009,0.0,0.0,0.007 +36-45,F,Florida,0.0,0.036,0.0,0.01,0.087,0.044,0.008,0.0,0.606,0.192,0.0,0.009,0.0,0.0,0.007 +36-45,F,Georgia,0.0,0.036,0.0,0.01,0.087,0.044,0.008,0.0,0.606,0.192,0.0,0.009,0.0,0.0,0.007 +36-45,F,Hawaii,0.0,0.012,0.0,0.0,0.0,0.037,0.072,0.0,0.559,0.32,0.0,0.0,0.0,0.0,0.0 +36-45,F,Idaho,0.0,0.012,0.0,0.0,0.0,0.037,0.072,0.0,0.559,0.32,0.0,0.0,0.0,0.0,0.0 +36-45,F,Illinois,0.0,0.0,0.0,0.0,0.147,0.028,0.0,0.0,0.513,0.241,0.0,0.0,0.0,0.0,0.072 +36-45,F,Indiana,0.0,0.0,0.0,0.0,0.147,0.028,0.0,0.0,0.513,0.241,0.0,0.0,0.0,0.0,0.072 +36-45,F,Iowa,0.0,0.0,0.0,0.0,0.147,0.028,0.0,0.0,0.513,0.241,0.0,0.0,0.0,0.0,0.072 +36-45,F,Kansas,0.0,0.0,0.0,0.0,0.147,0.028,0.0,0.0,0.513,0.241,0.0,0.0,0.0,0.0,0.072 +36-45,F,Kentucky,0.0,0.036,0.0,0.01,0.087,0.044,0.008,0.0,0.606,0.192,0.0,0.009,0.0,0.0,0.007 +36-45,F,Louisiana,0.0,0.036,0.0,0.01,0.087,0.044,0.008,0.0,0.606,0.192,0.0,0.009,0.0,0.0,0.007 +36-45,F,Maine,0.0,0.0,0.0,0.139,0.05,0.0,0.0,0.0,0.691,0.12,0.0,0.0,0.0,0.0,0.0 +36-45,F,Maryland,0.0,0.036,0.0,0.01,0.087,0.044,0.008,0.0,0.606,0.192,0.0,0.009,0.0,0.0,0.007 +36-45,F,Massachusetts,0.0,0.0,0.0,0.139,0.05,0.0,0.0,0.0,0.691,0.12,0.0,0.0,0.0,0.0,0.0 +36-45,F,Michigan,0.0,0.0,0.0,0.0,0.147,0.028,0.0,0.0,0.513,0.241,0.0,0.0,0.0,0.0,0.072 +36-45,F,Minnesota,0.0,0.0,0.0,0.0,0.147,0.028,0.0,0.0,0.513,0.241,0.0,0.0,0.0,0.0,0.072 +36-45,F,Mississippi,0.0,0.036,0.0,0.01,0.087,0.044,0.008,0.0,0.606,0.192,0.0,0.009,0.0,0.0,0.007 +36-45,F,Missouri,0.0,0.0,0.0,0.0,0.147,0.028,0.0,0.0,0.513,0.241,0.0,0.0,0.0,0.0,0.072 +36-45,F,Montana,0.0,0.012,0.0,0.0,0.0,0.037,0.072,0.0,0.559,0.32,0.0,0.0,0.0,0.0,0.0 +36-45,F,Nebraska,0.0,0.0,0.0,0.0,0.147,0.028,0.0,0.0,0.513,0.241,0.0,0.0,0.0,0.0,0.072 +36-45,F,Nevada,0.0,0.012,0.0,0.0,0.0,0.037,0.072,0.0,0.559,0.32,0.0,0.0,0.0,0.0,0.0 +36-45,F,New Hampshire,0.0,0.0,0.0,0.139,0.05,0.0,0.0,0.0,0.691,0.12,0.0,0.0,0.0,0.0,0.0 +36-45,F,New Jersey,0.0,0.0,0.0,0.139,0.05,0.0,0.0,0.0,0.691,0.12,0.0,0.0,0.0,0.0,0.0 +36-45,F,New Mexico,0.0,0.012,0.0,0.0,0.0,0.037,0.072,0.0,0.559,0.32,0.0,0.0,0.0,0.0,0.0 +36-45,F,New York,0.0,0.0,0.0,0.139,0.05,0.0,0.0,0.0,0.691,0.12,0.0,0.0,0.0,0.0,0.0 +36-45,F,North Carolina,0.0,0.036,0.0,0.01,0.087,0.044,0.008,0.0,0.606,0.192,0.0,0.009,0.0,0.0,0.007 +36-45,F,North Dakota,0.0,0.0,0.0,0.0,0.147,0.028,0.0,0.0,0.513,0.241,0.0,0.0,0.0,0.0,0.072 +36-45,F,Ohio,0.0,0.0,0.0,0.0,0.147,0.028,0.0,0.0,0.513,0.241,0.0,0.0,0.0,0.0,0.072 +36-45,F,Oklahoma,0.0,0.036,0.0,0.01,0.087,0.044,0.008,0.0,0.606,0.192,0.0,0.009,0.0,0.0,0.007 +36-45,F,Oregon,0.0,0.012,0.0,0.0,0.0,0.037,0.072,0.0,0.559,0.32,0.0,0.0,0.0,0.0,0.0 +36-45,F,Pennsylvania,0.0,0.0,0.0,0.139,0.05,0.0,0.0,0.0,0.691,0.12,0.0,0.0,0.0,0.0,0.0 +36-45,F,Rhode Island,0.0,0.0,0.0,0.139,0.05,0.0,0.0,0.0,0.691,0.12,0.0,0.0,0.0,0.0,0.0 +36-45,F,South Carolina,0.0,0.036,0.0,0.01,0.087,0.044,0.008,0.0,0.606,0.192,0.0,0.009,0.0,0.0,0.007 +36-45,F,South Dakota,0.0,0.0,0.0,0.0,0.147,0.028,0.0,0.0,0.513,0.241,0.0,0.0,0.0,0.0,0.072 +36-45,F,Tennessee,0.0,0.036,0.0,0.01,0.087,0.044,0.008,0.0,0.606,0.192,0.0,0.009,0.0,0.0,0.007 +36-45,F,Texas,0.0,0.036,0.0,0.01,0.087,0.044,0.008,0.0,0.606,0.192,0.0,0.009,0.0,0.0,0.007 +36-45,F,Utah,0.0,0.012,0.0,0.0,0.0,0.037,0.072,0.0,0.559,0.32,0.0,0.0,0.0,0.0,0.0 +36-45,F,Vermont,0.0,0.0,0.0,0.139,0.05,0.0,0.0,0.0,0.691,0.12,0.0,0.0,0.0,0.0,0.0 +36-45,F,Virginia,0.0,0.036,0.0,0.01,0.087,0.044,0.008,0.0,0.606,0.192,0.0,0.009,0.0,0.0,0.007 +36-45,F,Washington,0.0,0.012,0.0,0.0,0.0,0.037,0.072,0.0,0.559,0.32,0.0,0.0,0.0,0.0,0.0 +36-45,F,West Virginia,0.0,0.036,0.0,0.01,0.087,0.044,0.008,0.0,0.606,0.192,0.0,0.009,0.0,0.0,0.007 +36-45,F,Wisconsin,0.0,0.0,0.0,0.0,0.147,0.028,0.0,0.0,0.513,0.241,0.0,0.0,0.0,0.0,0.072 +36-45,F,Wyoming,0.0,0.012,0.0,0.0,0.0,0.037,0.072,0.0,0.559,0.32,0.0,0.0,0.0,0.0,0.0 +36-45,M,Alabama,0.0,0.0,0.018,0.0,0.075,0.0,0.032,0.028,0.562,0.192,0.0,0.013,0.01,0.0,0.07 +36-45,M,Alaska,0.0,0.0,0.0,0.0,0.101,0.035,0.0,0.0,0.607,0.153,0.0,0.0,0.07,0.0,0.034 +36-45,M,Arizona,0.0,0.0,0.0,0.0,0.101,0.035,0.0,0.0,0.607,0.153,0.0,0.0,0.07,0.0,0.034 +36-45,M,Arkansas,0.0,0.0,0.018,0.0,0.075,0.0,0.032,0.028,0.562,0.192,0.0,0.013,0.01,0.0,0.07 +36-45,M,California,0.0,0.0,0.0,0.0,0.101,0.035,0.0,0.0,0.607,0.153,0.0,0.0,0.07,0.0,0.034 +36-45,M,Colorado,0.0,0.0,0.0,0.0,0.101,0.035,0.0,0.0,0.607,0.153,0.0,0.0,0.07,0.0,0.034 +36-45,M,Connecticut,0.036,0.014,0.0,0.0,0.068,0.054,0.0,0.013,0.615,0.103,0.0,0.034,0.0,0.0,0.064 +36-45,M,Delaware,0.0,0.0,0.018,0.0,0.075,0.0,0.032,0.028,0.562,0.192,0.0,0.013,0.01,0.0,0.07 +36-45,M,District of Columbia,0.0,0.0,0.018,0.0,0.075,0.0,0.032,0.028,0.562,0.192,0.0,0.013,0.01,0.0,0.07 +36-45,M,Florida,0.0,0.0,0.018,0.0,0.075,0.0,0.032,0.028,0.562,0.192,0.0,0.013,0.01,0.0,0.07 +36-45,M,Georgia,0.0,0.0,0.018,0.0,0.075,0.0,0.032,0.028,0.562,0.192,0.0,0.013,0.01,0.0,0.07 +36-45,M,Hawaii,0.0,0.0,0.0,0.0,0.101,0.035,0.0,0.0,0.607,0.153,0.0,0.0,0.07,0.0,0.034 +36-45,M,Idaho,0.0,0.0,0.0,0.0,0.101,0.035,0.0,0.0,0.607,0.153,0.0,0.0,0.07,0.0,0.034 +36-45,M,Illinois,0.0,0.011,0.0,0.075,0.038,0.04,0.019,0.032,0.578,0.175,0.0,0.0,0.0,0.0,0.031 +36-45,M,Indiana,0.0,0.011,0.0,0.075,0.038,0.04,0.019,0.032,0.578,0.175,0.0,0.0,0.0,0.0,0.031 +36-45,M,Iowa,0.0,0.011,0.0,0.075,0.038,0.04,0.019,0.032,0.578,0.175,0.0,0.0,0.0,0.0,0.031 +36-45,M,Kansas,0.0,0.011,0.0,0.075,0.038,0.04,0.019,0.032,0.578,0.175,0.0,0.0,0.0,0.0,0.031 +36-45,M,Kentucky,0.0,0.0,0.018,0.0,0.075,0.0,0.032,0.028,0.562,0.192,0.0,0.013,0.01,0.0,0.07 +36-45,M,Louisiana,0.0,0.0,0.018,0.0,0.075,0.0,0.032,0.028,0.562,0.192,0.0,0.013,0.01,0.0,0.07 +36-45,M,Maine,0.036,0.014,0.0,0.0,0.068,0.054,0.0,0.013,0.615,0.103,0.0,0.034,0.0,0.0,0.064 +36-45,M,Maryland,0.0,0.0,0.018,0.0,0.075,0.0,0.032,0.028,0.562,0.192,0.0,0.013,0.01,0.0,0.07 +36-45,M,Massachusetts,0.036,0.014,0.0,0.0,0.068,0.054,0.0,0.013,0.615,0.103,0.0,0.034,0.0,0.0,0.064 +36-45,M,Michigan,0.0,0.011,0.0,0.075,0.038,0.04,0.019,0.032,0.578,0.175,0.0,0.0,0.0,0.0,0.031 +36-45,M,Minnesota,0.0,0.011,0.0,0.075,0.038,0.04,0.019,0.032,0.578,0.175,0.0,0.0,0.0,0.0,0.031 +36-45,M,Mississippi,0.0,0.0,0.018,0.0,0.075,0.0,0.032,0.028,0.562,0.192,0.0,0.013,0.01,0.0,0.07 +36-45,M,Missouri,0.0,0.011,0.0,0.075,0.038,0.04,0.019,0.032,0.578,0.175,0.0,0.0,0.0,0.0,0.031 +36-45,M,Montana,0.0,0.0,0.0,0.0,0.101,0.035,0.0,0.0,0.607,0.153,0.0,0.0,0.07,0.0,0.034 +36-45,M,Nebraska,0.0,0.011,0.0,0.075,0.038,0.04,0.019,0.032,0.578,0.175,0.0,0.0,0.0,0.0,0.031 +36-45,M,Nevada,0.0,0.0,0.0,0.0,0.101,0.035,0.0,0.0,0.607,0.153,0.0,0.0,0.07,0.0,0.034 +36-45,M,New Hampshire,0.036,0.014,0.0,0.0,0.068,0.054,0.0,0.013,0.615,0.103,0.0,0.034,0.0,0.0,0.064 +36-45,M,New Jersey,0.036,0.014,0.0,0.0,0.068,0.054,0.0,0.013,0.615,0.103,0.0,0.034,0.0,0.0,0.064 +36-45,M,New Mexico,0.0,0.0,0.0,0.0,0.101,0.035,0.0,0.0,0.607,0.153,0.0,0.0,0.07,0.0,0.034 +36-45,M,New York,0.036,0.014,0.0,0.0,0.068,0.054,0.0,0.013,0.615,0.103,0.0,0.034,0.0,0.0,0.064 +36-45,M,North Carolina,0.0,0.0,0.018,0.0,0.075,0.0,0.032,0.028,0.562,0.192,0.0,0.013,0.01,0.0,0.07 +36-45,M,North Dakota,0.0,0.011,0.0,0.075,0.038,0.04,0.019,0.032,0.578,0.175,0.0,0.0,0.0,0.0,0.031 +36-45,M,Ohio,0.0,0.011,0.0,0.075,0.038,0.04,0.019,0.032,0.578,0.175,0.0,0.0,0.0,0.0,0.031 +36-45,M,Oklahoma,0.0,0.0,0.018,0.0,0.075,0.0,0.032,0.028,0.562,0.192,0.0,0.013,0.01,0.0,0.07 +36-45,M,Oregon,0.0,0.0,0.0,0.0,0.101,0.035,0.0,0.0,0.607,0.153,0.0,0.0,0.07,0.0,0.034 +36-45,M,Pennsylvania,0.036,0.014,0.0,0.0,0.068,0.054,0.0,0.013,0.615,0.103,0.0,0.034,0.0,0.0,0.064 +36-45,M,Rhode Island,0.036,0.014,0.0,0.0,0.068,0.054,0.0,0.013,0.615,0.103,0.0,0.034,0.0,0.0,0.064 +36-45,M,South Carolina,0.0,0.0,0.018,0.0,0.075,0.0,0.032,0.028,0.562,0.192,0.0,0.013,0.01,0.0,0.07 +36-45,M,South Dakota,0.0,0.011,0.0,0.075,0.038,0.04,0.019,0.032,0.578,0.175,0.0,0.0,0.0,0.0,0.031 +36-45,M,Tennessee,0.0,0.0,0.018,0.0,0.075,0.0,0.032,0.028,0.562,0.192,0.0,0.013,0.01,0.0,0.07 +36-45,M,Texas,0.0,0.0,0.018,0.0,0.075,0.0,0.032,0.028,0.562,0.192,0.0,0.013,0.01,0.0,0.07 +36-45,M,Utah,0.0,0.0,0.0,0.0,0.101,0.035,0.0,0.0,0.607,0.153,0.0,0.0,0.07,0.0,0.034 +36-45,M,Vermont,0.036,0.014,0.0,0.0,0.068,0.054,0.0,0.013,0.615,0.103,0.0,0.034,0.0,0.0,0.064 +36-45,M,Virginia,0.0,0.0,0.018,0.0,0.075,0.0,0.032,0.028,0.562,0.192,0.0,0.013,0.01,0.0,0.07 +36-45,M,Washington,0.0,0.0,0.0,0.0,0.101,0.035,0.0,0.0,0.607,0.153,0.0,0.0,0.07,0.0,0.034 +36-45,M,West Virginia,0.0,0.0,0.018,0.0,0.075,0.0,0.032,0.028,0.562,0.192,0.0,0.013,0.01,0.0,0.07 +36-45,M,Wisconsin,0.0,0.011,0.0,0.075,0.038,0.04,0.019,0.032,0.578,0.175,0.0,0.0,0.0,0.0,0.031 +36-45,M,Wyoming,0.0,0.0,0.0,0.0,0.101,0.035,0.0,0.0,0.607,0.153,0.0,0.0,0.07,0.0,0.034 +4-7,F,Illinois,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,F,Indiana,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,F,Iowa,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,F,Kansas,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,F,Michigan,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,F,Minnesota,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,F,Missouri,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,F,Nebraska,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,F,North Dakota,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,F,Ohio,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,F,South Dakota,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,F,Wisconsin,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Alabama,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Arkansas,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Connecticut,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +4-7,M,Delaware,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,District of Columbia,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Florida,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Georgia,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Kentucky,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Louisiana,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Maine,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +4-7,M,Maryland,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Massachusetts,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +4-7,M,Mississippi,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,New Hampshire,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +4-7,M,New Jersey,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +4-7,M,New York,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +4-7,M,North Carolina,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Oklahoma,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Pennsylvania,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +4-7,M,Rhode Island,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +4-7,M,South Carolina,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Tennessee,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Texas,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Vermont,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.5,0.0,0.0,0.0,0.0,0.0 +4-7,M,Virginia,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,West Virginia,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +46-65,F,Alabama,0.016,0.029,0.008,0.012,0.109,0.122,0.008,0.015,0.362,0.239,0.006,0.016,0.0,0.008,0.05 +46-65,F,Alaska,0.003,0.041,0.0,0.0,0.048,0.081,0.0,0.012,0.456,0.312,0.0,0.011,0.0,0.01,0.027 +46-65,F,Arizona,0.003,0.041,0.0,0.0,0.048,0.081,0.0,0.012,0.456,0.312,0.0,0.011,0.0,0.01,0.027 +46-65,F,Arkansas,0.016,0.029,0.008,0.012,0.109,0.122,0.008,0.015,0.362,0.239,0.006,0.016,0.0,0.008,0.05 +46-65,F,California,0.003,0.041,0.0,0.0,0.048,0.081,0.0,0.012,0.456,0.312,0.0,0.011,0.0,0.01,0.027 +46-65,F,Colorado,0.003,0.041,0.0,0.0,0.048,0.081,0.0,0.012,0.456,0.312,0.0,0.011,0.0,0.01,0.027 +46-65,F,Connecticut,0.01,0.009,0.0,0.054,0.062,0.162,0.034,0.013,0.413,0.152,0.011,0.034,0.011,0.0,0.036 +46-65,F,Delaware,0.016,0.029,0.008,0.012,0.109,0.122,0.008,0.015,0.362,0.239,0.006,0.016,0.0,0.008,0.05 +46-65,F,District of Columbia,0.016,0.029,0.008,0.012,0.109,0.122,0.008,0.015,0.362,0.239,0.006,0.016,0.0,0.008,0.05 +46-65,F,Florida,0.016,0.029,0.008,0.012,0.109,0.122,0.008,0.015,0.362,0.239,0.006,0.016,0.0,0.008,0.05 +46-65,F,Georgia,0.016,0.029,0.008,0.012,0.109,0.122,0.008,0.015,0.362,0.239,0.006,0.016,0.0,0.008,0.05 +46-65,F,Hawaii,0.003,0.041,0.0,0.0,0.048,0.081,0.0,0.012,0.456,0.312,0.0,0.011,0.0,0.01,0.027 +46-65,F,Idaho,0.003,0.041,0.0,0.0,0.048,0.081,0.0,0.012,0.456,0.312,0.0,0.011,0.0,0.01,0.027 +46-65,F,Illinois,0.017,0.009,0.007,0.0,0.119,0.055,0.009,0.008,0.476,0.214,0.0,0.022,0.002,0.008,0.055 +46-65,F,Indiana,0.017,0.009,0.007,0.0,0.119,0.055,0.009,0.008,0.476,0.214,0.0,0.022,0.002,0.008,0.055 +46-65,F,Iowa,0.017,0.009,0.007,0.0,0.119,0.055,0.009,0.008,0.476,0.214,0.0,0.022,0.002,0.008,0.055 +46-65,F,Kansas,0.017,0.009,0.007,0.0,0.119,0.055,0.009,0.008,0.476,0.214,0.0,0.022,0.002,0.008,0.055 +46-65,F,Kentucky,0.016,0.029,0.008,0.012,0.109,0.122,0.008,0.015,0.362,0.239,0.006,0.016,0.0,0.008,0.05 +46-65,F,Louisiana,0.016,0.029,0.008,0.012,0.109,0.122,0.008,0.015,0.362,0.239,0.006,0.016,0.0,0.008,0.05 +46-65,F,Maine,0.01,0.009,0.0,0.054,0.062,0.162,0.034,0.013,0.413,0.152,0.011,0.034,0.011,0.0,0.036 +46-65,F,Maryland,0.016,0.029,0.008,0.012,0.109,0.122,0.008,0.015,0.362,0.239,0.006,0.016,0.0,0.008,0.05 +46-65,F,Massachusetts,0.01,0.009,0.0,0.054,0.062,0.162,0.034,0.013,0.413,0.152,0.011,0.034,0.011,0.0,0.036 +46-65,F,Michigan,0.017,0.009,0.007,0.0,0.119,0.055,0.009,0.008,0.476,0.214,0.0,0.022,0.002,0.008,0.055 +46-65,F,Minnesota,0.017,0.009,0.007,0.0,0.119,0.055,0.009,0.008,0.476,0.214,0.0,0.022,0.002,0.008,0.055 +46-65,F,Mississippi,0.016,0.029,0.008,0.012,0.109,0.122,0.008,0.015,0.362,0.239,0.006,0.016,0.0,0.008,0.05 +46-65,F,Missouri,0.017,0.009,0.007,0.0,0.119,0.055,0.009,0.008,0.476,0.214,0.0,0.022,0.002,0.008,0.055 +46-65,F,Montana,0.003,0.041,0.0,0.0,0.048,0.081,0.0,0.012,0.456,0.312,0.0,0.011,0.0,0.01,0.027 +46-65,F,Nebraska,0.017,0.009,0.007,0.0,0.119,0.055,0.009,0.008,0.476,0.214,0.0,0.022,0.002,0.008,0.055 +46-65,F,Nevada,0.003,0.041,0.0,0.0,0.048,0.081,0.0,0.012,0.456,0.312,0.0,0.011,0.0,0.01,0.027 +46-65,F,New Hampshire,0.01,0.009,0.0,0.054,0.062,0.162,0.034,0.013,0.413,0.152,0.011,0.034,0.011,0.0,0.036 +46-65,F,New Jersey,0.01,0.009,0.0,0.054,0.062,0.162,0.034,0.013,0.413,0.152,0.011,0.034,0.011,0.0,0.036 +46-65,F,New Mexico,0.003,0.041,0.0,0.0,0.048,0.081,0.0,0.012,0.456,0.312,0.0,0.011,0.0,0.01,0.027 +46-65,F,New York,0.01,0.009,0.0,0.054,0.062,0.162,0.034,0.013,0.413,0.152,0.011,0.034,0.011,0.0,0.036 +46-65,F,North Carolina,0.016,0.029,0.008,0.012,0.109,0.122,0.008,0.015,0.362,0.239,0.006,0.016,0.0,0.008,0.05 +46-65,F,North Dakota,0.017,0.009,0.007,0.0,0.119,0.055,0.009,0.008,0.476,0.214,0.0,0.022,0.002,0.008,0.055 +46-65,F,Ohio,0.017,0.009,0.007,0.0,0.119,0.055,0.009,0.008,0.476,0.214,0.0,0.022,0.002,0.008,0.055 +46-65,F,Oklahoma,0.016,0.029,0.008,0.012,0.109,0.122,0.008,0.015,0.362,0.239,0.006,0.016,0.0,0.008,0.05 +46-65,F,Oregon,0.003,0.041,0.0,0.0,0.048,0.081,0.0,0.012,0.456,0.312,0.0,0.011,0.0,0.01,0.027 +46-65,F,Pennsylvania,0.01,0.009,0.0,0.054,0.062,0.162,0.034,0.013,0.413,0.152,0.011,0.034,0.011,0.0,0.036 +46-65,F,Rhode Island,0.01,0.009,0.0,0.054,0.062,0.162,0.034,0.013,0.413,0.152,0.011,0.034,0.011,0.0,0.036 +46-65,F,South Carolina,0.016,0.029,0.008,0.012,0.109,0.122,0.008,0.015,0.362,0.239,0.006,0.016,0.0,0.008,0.05 +46-65,F,South Dakota,0.017,0.009,0.007,0.0,0.119,0.055,0.009,0.008,0.476,0.214,0.0,0.022,0.002,0.008,0.055 +46-65,F,Tennessee,0.016,0.029,0.008,0.012,0.109,0.122,0.008,0.015,0.362,0.239,0.006,0.016,0.0,0.008,0.05 +46-65,F,Texas,0.016,0.029,0.008,0.012,0.109,0.122,0.008,0.015,0.362,0.239,0.006,0.016,0.0,0.008,0.05 +46-65,F,Utah,0.003,0.041,0.0,0.0,0.048,0.081,0.0,0.012,0.456,0.312,0.0,0.011,0.0,0.01,0.027 +46-65,F,Vermont,0.01,0.009,0.0,0.054,0.062,0.162,0.034,0.013,0.413,0.152,0.011,0.034,0.011,0.0,0.036 +46-65,F,Virginia,0.016,0.029,0.008,0.012,0.109,0.122,0.008,0.015,0.362,0.239,0.006,0.016,0.0,0.008,0.05 +46-65,F,Washington,0.003,0.041,0.0,0.0,0.048,0.081,0.0,0.012,0.456,0.312,0.0,0.011,0.0,0.01,0.027 +46-65,F,West Virginia,0.016,0.029,0.008,0.012,0.109,0.122,0.008,0.015,0.362,0.239,0.006,0.016,0.0,0.008,0.05 +46-65,F,Wisconsin,0.017,0.009,0.007,0.0,0.119,0.055,0.009,0.008,0.476,0.214,0.0,0.022,0.002,0.008,0.055 +46-65,F,Wyoming,0.003,0.041,0.0,0.0,0.048,0.081,0.0,0.012,0.456,0.312,0.0,0.011,0.0,0.01,0.027 +46-65,M,Alabama,0.015,0.034,0.007,0.014,0.068,0.041,0.018,0.014,0.468,0.22,0.0,0.016,0.011,0.024,0.049 +46-65,M,Alaska,0.005,0.051,0.014,0.022,0.065,0.076,0.011,0.02,0.459,0.264,0.005,0.0,0.0,0.008,0.002 +46-65,M,Arizona,0.005,0.051,0.014,0.022,0.065,0.076,0.011,0.02,0.459,0.264,0.005,0.0,0.0,0.008,0.002 +46-65,M,Arkansas,0.015,0.034,0.007,0.014,0.068,0.041,0.018,0.014,0.468,0.22,0.0,0.016,0.011,0.024,0.049 +46-65,M,California,0.005,0.051,0.014,0.022,0.065,0.076,0.011,0.02,0.459,0.264,0.005,0.0,0.0,0.008,0.002 +46-65,M,Colorado,0.005,0.051,0.014,0.022,0.065,0.076,0.011,0.02,0.459,0.264,0.005,0.0,0.0,0.008,0.002 +46-65,M,Connecticut,0.023,0.0,0.0,0.055,0.097,0.05,0.029,0.027,0.38,0.243,0.024,0.054,0.0,0.0,0.017 +46-65,M,Delaware,0.015,0.034,0.007,0.014,0.068,0.041,0.018,0.014,0.468,0.22,0.0,0.016,0.011,0.024,0.049 +46-65,M,District of Columbia,0.015,0.034,0.007,0.014,0.068,0.041,0.018,0.014,0.468,0.22,0.0,0.016,0.011,0.024,0.049 +46-65,M,Florida,0.015,0.034,0.007,0.014,0.068,0.041,0.018,0.014,0.468,0.22,0.0,0.016,0.011,0.024,0.049 +46-65,M,Georgia,0.015,0.034,0.007,0.014,0.068,0.041,0.018,0.014,0.468,0.22,0.0,0.016,0.011,0.024,0.049 +46-65,M,Hawaii,0.005,0.051,0.014,0.022,0.065,0.076,0.011,0.02,0.459,0.264,0.005,0.0,0.0,0.008,0.002 +46-65,M,Idaho,0.005,0.051,0.014,0.022,0.065,0.076,0.011,0.02,0.459,0.264,0.005,0.0,0.0,0.008,0.002 +46-65,M,Illinois,0.027,0.016,0.009,0.022,0.1,0.016,0.04,0.028,0.567,0.12,0.0,0.013,0.0,0.007,0.035 +46-65,M,Indiana,0.027,0.016,0.009,0.022,0.1,0.016,0.04,0.028,0.567,0.12,0.0,0.013,0.0,0.007,0.035 +46-65,M,Iowa,0.027,0.016,0.009,0.022,0.1,0.016,0.04,0.028,0.567,0.12,0.0,0.013,0.0,0.007,0.035 +46-65,M,Kansas,0.027,0.016,0.009,0.022,0.1,0.016,0.04,0.028,0.567,0.12,0.0,0.013,0.0,0.007,0.035 +46-65,M,Kentucky,0.015,0.034,0.007,0.014,0.068,0.041,0.018,0.014,0.468,0.22,0.0,0.016,0.011,0.024,0.049 +46-65,M,Louisiana,0.015,0.034,0.007,0.014,0.068,0.041,0.018,0.014,0.468,0.22,0.0,0.016,0.011,0.024,0.049 +46-65,M,Maine,0.023,0.0,0.0,0.055,0.097,0.05,0.029,0.027,0.38,0.243,0.024,0.054,0.0,0.0,0.017 +46-65,M,Maryland,0.015,0.034,0.007,0.014,0.068,0.041,0.018,0.014,0.468,0.22,0.0,0.016,0.011,0.024,0.049 +46-65,M,Massachusetts,0.023,0.0,0.0,0.055,0.097,0.05,0.029,0.027,0.38,0.243,0.024,0.054,0.0,0.0,0.017 +46-65,M,Michigan,0.027,0.016,0.009,0.022,0.1,0.016,0.04,0.028,0.567,0.12,0.0,0.013,0.0,0.007,0.035 +46-65,M,Minnesota,0.027,0.016,0.009,0.022,0.1,0.016,0.04,0.028,0.567,0.12,0.0,0.013,0.0,0.007,0.035 +46-65,M,Mississippi,0.015,0.034,0.007,0.014,0.068,0.041,0.018,0.014,0.468,0.22,0.0,0.016,0.011,0.024,0.049 +46-65,M,Missouri,0.027,0.016,0.009,0.022,0.1,0.016,0.04,0.028,0.567,0.12,0.0,0.013,0.0,0.007,0.035 +46-65,M,Montana,0.005,0.051,0.014,0.022,0.065,0.076,0.011,0.02,0.459,0.264,0.005,0.0,0.0,0.008,0.002 +46-65,M,Nebraska,0.027,0.016,0.009,0.022,0.1,0.016,0.04,0.028,0.567,0.12,0.0,0.013,0.0,0.007,0.035 +46-65,M,Nevada,0.005,0.051,0.014,0.022,0.065,0.076,0.011,0.02,0.459,0.264,0.005,0.0,0.0,0.008,0.002 +46-65,M,New Hampshire,0.023,0.0,0.0,0.055,0.097,0.05,0.029,0.027,0.38,0.243,0.024,0.054,0.0,0.0,0.017 +46-65,M,New Jersey,0.023,0.0,0.0,0.055,0.097,0.05,0.029,0.027,0.38,0.243,0.024,0.054,0.0,0.0,0.017 +46-65,M,New Mexico,0.005,0.051,0.014,0.022,0.065,0.076,0.011,0.02,0.459,0.264,0.005,0.0,0.0,0.008,0.002 +46-65,M,New York,0.023,0.0,0.0,0.055,0.097,0.05,0.029,0.027,0.38,0.243,0.024,0.054,0.0,0.0,0.017 +46-65,M,North Carolina,0.015,0.034,0.007,0.014,0.068,0.041,0.018,0.014,0.468,0.22,0.0,0.016,0.011,0.024,0.049 +46-65,M,North Dakota,0.027,0.016,0.009,0.022,0.1,0.016,0.04,0.028,0.567,0.12,0.0,0.013,0.0,0.007,0.035 +46-65,M,Ohio,0.027,0.016,0.009,0.022,0.1,0.016,0.04,0.028,0.567,0.12,0.0,0.013,0.0,0.007,0.035 +46-65,M,Oklahoma,0.015,0.034,0.007,0.014,0.068,0.041,0.018,0.014,0.468,0.22,0.0,0.016,0.011,0.024,0.049 +46-65,M,Oregon,0.005,0.051,0.014,0.022,0.065,0.076,0.011,0.02,0.459,0.264,0.005,0.0,0.0,0.008,0.002 +46-65,M,Pennsylvania,0.023,0.0,0.0,0.055,0.097,0.05,0.029,0.027,0.38,0.243,0.024,0.054,0.0,0.0,0.017 +46-65,M,Rhode Island,0.023,0.0,0.0,0.055,0.097,0.05,0.029,0.027,0.38,0.243,0.024,0.054,0.0,0.0,0.017 +46-65,M,South Carolina,0.015,0.034,0.007,0.014,0.068,0.041,0.018,0.014,0.468,0.22,0.0,0.016,0.011,0.024,0.049 +46-65,M,South Dakota,0.027,0.016,0.009,0.022,0.1,0.016,0.04,0.028,0.567,0.12,0.0,0.013,0.0,0.007,0.035 +46-65,M,Tennessee,0.015,0.034,0.007,0.014,0.068,0.041,0.018,0.014,0.468,0.22,0.0,0.016,0.011,0.024,0.049 +46-65,M,Texas,0.015,0.034,0.007,0.014,0.068,0.041,0.018,0.014,0.468,0.22,0.0,0.016,0.011,0.024,0.049 +46-65,M,Utah,0.005,0.051,0.014,0.022,0.065,0.076,0.011,0.02,0.459,0.264,0.005,0.0,0.0,0.008,0.002 +46-65,M,Vermont,0.023,0.0,0.0,0.055,0.097,0.05,0.029,0.027,0.38,0.243,0.024,0.054,0.0,0.0,0.017 +46-65,M,Virginia,0.015,0.034,0.007,0.014,0.068,0.041,0.018,0.014,0.468,0.22,0.0,0.016,0.011,0.024,0.049 +46-65,M,Washington,0.005,0.051,0.014,0.022,0.065,0.076,0.011,0.02,0.459,0.264,0.005,0.0,0.0,0.008,0.002 +46-65,M,West Virginia,0.015,0.034,0.007,0.014,0.068,0.041,0.018,0.014,0.468,0.22,0.0,0.016,0.011,0.024,0.049 +46-65,M,Wisconsin,0.027,0.016,0.009,0.022,0.1,0.016,0.04,0.028,0.567,0.12,0.0,0.013,0.0,0.007,0.035 +46-65,M,Wyoming,0.005,0.051,0.014,0.022,0.065,0.076,0.011,0.02,0.459,0.264,0.005,0.0,0.0,0.008,0.002 +65-103,F,Alabama,0.018,0.028,0.004,0.027,0.065,0.098,0.026,0.024,0.345,0.313,0.005,0.013,0.0,0.005,0.028 +65-103,F,Alaska,0.016,0.046,0.002,0.023,0.022,0.058,0.004,0.023,0.384,0.361,0.001,0.016,0.004,0.004,0.038 +65-103,F,Arizona,0.016,0.046,0.002,0.023,0.022,0.058,0.004,0.023,0.384,0.361,0.001,0.016,0.004,0.004,0.038 +65-103,F,Arkansas,0.018,0.028,0.004,0.027,0.065,0.098,0.026,0.024,0.345,0.313,0.005,0.013,0.0,0.005,0.028 +65-103,F,California,0.016,0.046,0.002,0.023,0.022,0.058,0.004,0.023,0.384,0.361,0.001,0.016,0.004,0.004,0.038 +65-103,F,Colorado,0.016,0.046,0.002,0.023,0.022,0.058,0.004,0.023,0.384,0.361,0.001,0.016,0.004,0.004,0.038 +65-103,F,Connecticut,0.014,0.036,0.012,0.055,0.062,0.084,0.05,0.034,0.322,0.21,0.014,0.019,0.0,0.0,0.089 +65-103,F,Delaware,0.018,0.028,0.004,0.027,0.065,0.098,0.026,0.024,0.345,0.313,0.005,0.013,0.0,0.005,0.028 +65-103,F,District of Columbia,0.018,0.028,0.004,0.027,0.065,0.098,0.026,0.024,0.345,0.313,0.005,0.013,0.0,0.005,0.028 +65-103,F,Florida,0.018,0.028,0.004,0.027,0.065,0.098,0.026,0.024,0.345,0.313,0.005,0.013,0.0,0.005,0.028 +65-103,F,Georgia,0.018,0.028,0.004,0.027,0.065,0.098,0.026,0.024,0.345,0.313,0.005,0.013,0.0,0.005,0.028 +65-103,F,Hawaii,0.016,0.046,0.002,0.023,0.022,0.058,0.004,0.023,0.384,0.361,0.001,0.016,0.004,0.004,0.038 +65-103,F,Idaho,0.016,0.046,0.002,0.023,0.022,0.058,0.004,0.023,0.384,0.361,0.001,0.016,0.004,0.004,0.038 +65-103,F,Illinois,0.016,0.032,0.007,0.02,0.068,0.06,0.007,0.029,0.362,0.33,0.004,0.0,0.013,0.006,0.044 +65-103,F,Indiana,0.016,0.032,0.007,0.02,0.068,0.06,0.007,0.029,0.362,0.33,0.004,0.0,0.013,0.006,0.044 +65-103,F,Iowa,0.016,0.032,0.007,0.02,0.068,0.06,0.007,0.029,0.362,0.33,0.004,0.0,0.013,0.006,0.044 +65-103,F,Kansas,0.016,0.032,0.007,0.02,0.068,0.06,0.007,0.029,0.362,0.33,0.004,0.0,0.013,0.006,0.044 +65-103,F,Kentucky,0.018,0.028,0.004,0.027,0.065,0.098,0.026,0.024,0.345,0.313,0.005,0.013,0.0,0.005,0.028 +65-103,F,Louisiana,0.018,0.028,0.004,0.027,0.065,0.098,0.026,0.024,0.345,0.313,0.005,0.013,0.0,0.005,0.028 +65-103,F,Maine,0.014,0.036,0.012,0.055,0.062,0.084,0.05,0.034,0.322,0.21,0.014,0.019,0.0,0.0,0.089 +65-103,F,Maryland,0.018,0.028,0.004,0.027,0.065,0.098,0.026,0.024,0.345,0.313,0.005,0.013,0.0,0.005,0.028 +65-103,F,Massachusetts,0.014,0.036,0.012,0.055,0.062,0.084,0.05,0.034,0.322,0.21,0.014,0.019,0.0,0.0,0.089 +65-103,F,Michigan,0.016,0.032,0.007,0.02,0.068,0.06,0.007,0.029,0.362,0.33,0.004,0.0,0.013,0.006,0.044 +65-103,F,Minnesota,0.016,0.032,0.007,0.02,0.068,0.06,0.007,0.029,0.362,0.33,0.004,0.0,0.013,0.006,0.044 +65-103,F,Mississippi,0.018,0.028,0.004,0.027,0.065,0.098,0.026,0.024,0.345,0.313,0.005,0.013,0.0,0.005,0.028 +65-103,F,Missouri,0.016,0.032,0.007,0.02,0.068,0.06,0.007,0.029,0.362,0.33,0.004,0.0,0.013,0.006,0.044 +65-103,F,Montana,0.016,0.046,0.002,0.023,0.022,0.058,0.004,0.023,0.384,0.361,0.001,0.016,0.004,0.004,0.038 +65-103,F,Nebraska,0.016,0.032,0.007,0.02,0.068,0.06,0.007,0.029,0.362,0.33,0.004,0.0,0.013,0.006,0.044 +65-103,F,Nevada,0.016,0.046,0.002,0.023,0.022,0.058,0.004,0.023,0.384,0.361,0.001,0.016,0.004,0.004,0.038 +65-103,F,New Hampshire,0.014,0.036,0.012,0.055,0.062,0.084,0.05,0.034,0.322,0.21,0.014,0.019,0.0,0.0,0.089 +65-103,F,New Jersey,0.014,0.036,0.012,0.055,0.062,0.084,0.05,0.034,0.322,0.21,0.014,0.019,0.0,0.0,0.089 +65-103,F,New Mexico,0.016,0.046,0.002,0.023,0.022,0.058,0.004,0.023,0.384,0.361,0.001,0.016,0.004,0.004,0.038 +65-103,F,New York,0.014,0.036,0.012,0.055,0.062,0.084,0.05,0.034,0.322,0.21,0.014,0.019,0.0,0.0,0.089 +65-103,F,North Carolina,0.018,0.028,0.004,0.027,0.065,0.098,0.026,0.024,0.345,0.313,0.005,0.013,0.0,0.005,0.028 +65-103,F,North Dakota,0.016,0.032,0.007,0.02,0.068,0.06,0.007,0.029,0.362,0.33,0.004,0.0,0.013,0.006,0.044 +65-103,F,Ohio,0.016,0.032,0.007,0.02,0.068,0.06,0.007,0.029,0.362,0.33,0.004,0.0,0.013,0.006,0.044 +65-103,F,Oklahoma,0.018,0.028,0.004,0.027,0.065,0.098,0.026,0.024,0.345,0.313,0.005,0.013,0.0,0.005,0.028 +65-103,F,Oregon,0.016,0.046,0.002,0.023,0.022,0.058,0.004,0.023,0.384,0.361,0.001,0.016,0.004,0.004,0.038 +65-103,F,Pennsylvania,0.014,0.036,0.012,0.055,0.062,0.084,0.05,0.034,0.322,0.21,0.014,0.019,0.0,0.0,0.089 +65-103,F,Rhode Island,0.014,0.036,0.012,0.055,0.062,0.084,0.05,0.034,0.322,0.21,0.014,0.019,0.0,0.0,0.089 +65-103,F,South Carolina,0.018,0.028,0.004,0.027,0.065,0.098,0.026,0.024,0.345,0.313,0.005,0.013,0.0,0.005,0.028 +65-103,F,South Dakota,0.016,0.032,0.007,0.02,0.068,0.06,0.007,0.029,0.362,0.33,0.004,0.0,0.013,0.006,0.044 +65-103,F,Tennessee,0.018,0.028,0.004,0.027,0.065,0.098,0.026,0.024,0.345,0.313,0.005,0.013,0.0,0.005,0.028 +65-103,F,Texas,0.018,0.028,0.004,0.027,0.065,0.098,0.026,0.024,0.345,0.313,0.005,0.013,0.0,0.005,0.028 +65-103,F,Utah,0.016,0.046,0.002,0.023,0.022,0.058,0.004,0.023,0.384,0.361,0.001,0.016,0.004,0.004,0.038 +65-103,F,Vermont,0.014,0.036,0.012,0.055,0.062,0.084,0.05,0.034,0.322,0.21,0.014,0.019,0.0,0.0,0.089 +65-103,F,Virginia,0.018,0.028,0.004,0.027,0.065,0.098,0.026,0.024,0.345,0.313,0.005,0.013,0.0,0.005,0.028 +65-103,F,Washington,0.016,0.046,0.002,0.023,0.022,0.058,0.004,0.023,0.384,0.361,0.001,0.016,0.004,0.004,0.038 +65-103,F,West Virginia,0.018,0.028,0.004,0.027,0.065,0.098,0.026,0.024,0.345,0.313,0.005,0.013,0.0,0.005,0.028 +65-103,F,Wisconsin,0.016,0.032,0.007,0.02,0.068,0.06,0.007,0.029,0.362,0.33,0.004,0.0,0.013,0.006,0.044 +65-103,F,Wyoming,0.016,0.046,0.002,0.023,0.022,0.058,0.004,0.023,0.384,0.361,0.001,0.016,0.004,0.004,0.038 +65-103,M,Alabama,0.028,0.02,0.003,0.011,0.071,0.047,0.008,0.018,0.419,0.247,0.011,0.069,0.009,0.007,0.032 +65-103,M,Alaska,0.011,0.026,0.014,0.0,0.055,0.05,0.0,0.037,0.474,0.275,0.0,0.02,0.003,0.005,0.031 +65-103,M,Arizona,0.011,0.026,0.014,0.0,0.055,0.05,0.0,0.037,0.474,0.275,0.0,0.02,0.003,0.005,0.031 +65-103,M,Arkansas,0.028,0.02,0.003,0.011,0.071,0.047,0.008,0.018,0.419,0.247,0.011,0.069,0.009,0.007,0.032 +65-103,M,California,0.011,0.026,0.014,0.0,0.055,0.05,0.0,0.037,0.474,0.275,0.0,0.02,0.003,0.005,0.031 +65-103,M,Colorado,0.011,0.026,0.014,0.0,0.055,0.05,0.0,0.037,0.474,0.275,0.0,0.02,0.003,0.005,0.031 +65-103,M,Connecticut,0.048,0.021,0.0,0.046,0.038,0.025,0.031,0.012,0.4,0.248,0.033,0.028,0.0,0.007,0.063 +65-103,M,Delaware,0.028,0.02,0.003,0.011,0.071,0.047,0.008,0.018,0.419,0.247,0.011,0.069,0.009,0.007,0.032 +65-103,M,District of Columbia,0.028,0.02,0.003,0.011,0.071,0.047,0.008,0.018,0.419,0.247,0.011,0.069,0.009,0.007,0.032 +65-103,M,Florida,0.028,0.02,0.003,0.011,0.071,0.047,0.008,0.018,0.419,0.247,0.011,0.069,0.009,0.007,0.032 +65-103,M,Georgia,0.028,0.02,0.003,0.011,0.071,0.047,0.008,0.018,0.419,0.247,0.011,0.069,0.009,0.007,0.032 +65-103,M,Hawaii,0.011,0.026,0.014,0.0,0.055,0.05,0.0,0.037,0.474,0.275,0.0,0.02,0.003,0.005,0.031 +65-103,M,Idaho,0.011,0.026,0.014,0.0,0.055,0.05,0.0,0.037,0.474,0.275,0.0,0.02,0.003,0.005,0.031 +65-103,M,Illinois,0.022,0.021,0.0,0.037,0.062,0.057,0.011,0.029,0.453,0.207,0.003,0.002,0.021,0.003,0.072 +65-103,M,Indiana,0.022,0.021,0.0,0.037,0.062,0.057,0.011,0.029,0.453,0.207,0.003,0.002,0.021,0.003,0.072 +65-103,M,Iowa,0.022,0.021,0.0,0.037,0.062,0.057,0.011,0.029,0.453,0.207,0.003,0.002,0.021,0.003,0.072 +65-103,M,Kansas,0.022,0.021,0.0,0.037,0.062,0.057,0.011,0.029,0.453,0.207,0.003,0.002,0.021,0.003,0.072 +65-103,M,Kentucky,0.028,0.02,0.003,0.011,0.071,0.047,0.008,0.018,0.419,0.247,0.011,0.069,0.009,0.007,0.032 +65-103,M,Louisiana,0.028,0.02,0.003,0.011,0.071,0.047,0.008,0.018,0.419,0.247,0.011,0.069,0.009,0.007,0.032 +65-103,M,Maine,0.048,0.021,0.0,0.046,0.038,0.025,0.031,0.012,0.4,0.248,0.033,0.028,0.0,0.007,0.063 +65-103,M,Maryland,0.028,0.02,0.003,0.011,0.071,0.047,0.008,0.018,0.419,0.247,0.011,0.069,0.009,0.007,0.032 +65-103,M,Massachusetts,0.048,0.021,0.0,0.046,0.038,0.025,0.031,0.012,0.4,0.248,0.033,0.028,0.0,0.007,0.063 +65-103,M,Michigan,0.022,0.021,0.0,0.037,0.062,0.057,0.011,0.029,0.453,0.207,0.003,0.002,0.021,0.003,0.072 +65-103,M,Minnesota,0.022,0.021,0.0,0.037,0.062,0.057,0.011,0.029,0.453,0.207,0.003,0.002,0.021,0.003,0.072 +65-103,M,Mississippi,0.028,0.02,0.003,0.011,0.071,0.047,0.008,0.018,0.419,0.247,0.011,0.069,0.009,0.007,0.032 +65-103,M,Missouri,0.022,0.021,0.0,0.037,0.062,0.057,0.011,0.029,0.453,0.207,0.003,0.002,0.021,0.003,0.072 +65-103,M,Montana,0.011,0.026,0.014,0.0,0.055,0.05,0.0,0.037,0.474,0.275,0.0,0.02,0.003,0.005,0.031 +65-103,M,Nebraska,0.022,0.021,0.0,0.037,0.062,0.057,0.011,0.029,0.453,0.207,0.003,0.002,0.021,0.003,0.072 +65-103,M,Nevada,0.011,0.026,0.014,0.0,0.055,0.05,0.0,0.037,0.474,0.275,0.0,0.02,0.003,0.005,0.031 +65-103,M,New Hampshire,0.048,0.021,0.0,0.046,0.038,0.025,0.031,0.012,0.4,0.248,0.033,0.028,0.0,0.007,0.063 +65-103,M,New Jersey,0.048,0.021,0.0,0.046,0.038,0.025,0.031,0.012,0.4,0.248,0.033,0.028,0.0,0.007,0.063 +65-103,M,New Mexico,0.011,0.026,0.014,0.0,0.055,0.05,0.0,0.037,0.474,0.275,0.0,0.02,0.003,0.005,0.031 +65-103,M,New York,0.048,0.021,0.0,0.046,0.038,0.025,0.031,0.012,0.4,0.248,0.033,0.028,0.0,0.007,0.063 +65-103,M,North Carolina,0.028,0.02,0.003,0.011,0.071,0.047,0.008,0.018,0.419,0.247,0.011,0.069,0.009,0.007,0.032 +65-103,M,North Dakota,0.022,0.021,0.0,0.037,0.062,0.057,0.011,0.029,0.453,0.207,0.003,0.002,0.021,0.003,0.072 +65-103,M,Ohio,0.022,0.021,0.0,0.037,0.062,0.057,0.011,0.029,0.453,0.207,0.003,0.002,0.021,0.003,0.072 +65-103,M,Oklahoma,0.028,0.02,0.003,0.011,0.071,0.047,0.008,0.018,0.419,0.247,0.011,0.069,0.009,0.007,0.032 +65-103,M,Oregon,0.011,0.026,0.014,0.0,0.055,0.05,0.0,0.037,0.474,0.275,0.0,0.02,0.003,0.005,0.031 +65-103,M,Pennsylvania,0.048,0.021,0.0,0.046,0.038,0.025,0.031,0.012,0.4,0.248,0.033,0.028,0.0,0.007,0.063 +65-103,M,Rhode Island,0.048,0.021,0.0,0.046,0.038,0.025,0.031,0.012,0.4,0.248,0.033,0.028,0.0,0.007,0.063 +65-103,M,South Carolina,0.028,0.02,0.003,0.011,0.071,0.047,0.008,0.018,0.419,0.247,0.011,0.069,0.009,0.007,0.032 +65-103,M,South Dakota,0.022,0.021,0.0,0.037,0.062,0.057,0.011,0.029,0.453,0.207,0.003,0.002,0.021,0.003,0.072 +65-103,M,Tennessee,0.028,0.02,0.003,0.011,0.071,0.047,0.008,0.018,0.419,0.247,0.011,0.069,0.009,0.007,0.032 +65-103,M,Texas,0.028,0.02,0.003,0.011,0.071,0.047,0.008,0.018,0.419,0.247,0.011,0.069,0.009,0.007,0.032 +65-103,M,Utah,0.011,0.026,0.014,0.0,0.055,0.05,0.0,0.037,0.474,0.275,0.0,0.02,0.003,0.005,0.031 +65-103,M,Vermont,0.048,0.021,0.0,0.046,0.038,0.025,0.031,0.012,0.4,0.248,0.033,0.028,0.0,0.007,0.063 +65-103,M,Virginia,0.028,0.02,0.003,0.011,0.071,0.047,0.008,0.018,0.419,0.247,0.011,0.069,0.009,0.007,0.032 +65-103,M,Washington,0.011,0.026,0.014,0.0,0.055,0.05,0.0,0.037,0.474,0.275,0.0,0.02,0.003,0.005,0.031 +65-103,M,West Virginia,0.028,0.02,0.003,0.011,0.071,0.047,0.008,0.018,0.419,0.247,0.011,0.069,0.009,0.007,0.032 +65-103,M,Wisconsin,0.022,0.021,0.0,0.037,0.062,0.057,0.011,0.029,0.453,0.207,0.003,0.002,0.021,0.003,0.072 +65-103,M,Wyoming,0.011,0.026,0.014,0.0,0.055,0.05,0.0,0.037,0.474,0.275,0.0,0.02,0.003,0.005,0.031 diff --git a/src/main/resources/modules/lookup_tables/ace_arb_irbesartan_product_distribution.csv b/src/main/resources/modules/lookup_tables/ace_arb_irbesartan_product_distribution.csv new file mode 100644 index 0000000..582a284 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/ace_arb_irbesartan_product_distribution.csv @@ -0,0 +1,260 @@ +age,gender,state,Prescribe_Irbesartan_150_Mg_Oral_Tablet,Prescribe_Irbesartan_300_Mg_Oral_Tablet,Prescribe_Irbesartan_75_Mg_Oral_Tablet +26-35,F,Alabama,0.0,1.0,0.0 +26-35,F,Arkansas,0.0,1.0,0.0 +26-35,F,Delaware,0.0,1.0,0.0 +26-35,F,District of Columbia,0.0,1.0,0.0 +26-35,F,Florida,0.0,1.0,0.0 +26-35,F,Georgia,0.0,1.0,0.0 +26-35,F,Kentucky,0.0,1.0,0.0 +26-35,F,Louisiana,0.0,1.0,0.0 +26-35,F,Maryland,0.0,1.0,0.0 +26-35,F,Mississippi,0.0,1.0,0.0 +26-35,F,North Carolina,0.0,1.0,0.0 +26-35,F,Oklahoma,0.0,1.0,0.0 +26-35,F,South Carolina,0.0,1.0,0.0 +26-35,F,Tennessee,0.0,1.0,0.0 +26-35,F,Texas,0.0,1.0,0.0 +26-35,F,Virginia,0.0,1.0,0.0 +26-35,F,West Virginia,0.0,1.0,0.0 +36-45,M,Alabama,1.0,0.0,0.0 +36-45,M,Arkansas,1.0,0.0,0.0 +36-45,M,Connecticut,0.0,1.0,0.0 +36-45,M,Delaware,1.0,0.0,0.0 +36-45,M,District of Columbia,1.0,0.0,0.0 +36-45,M,Florida,1.0,0.0,0.0 +36-45,M,Georgia,1.0,0.0,0.0 +36-45,M,Illinois,0.0,1.0,0.0 +36-45,M,Indiana,0.0,1.0,0.0 +36-45,M,Iowa,0.0,1.0,0.0 +36-45,M,Kansas,0.0,1.0,0.0 +36-45,M,Kentucky,1.0,0.0,0.0 +36-45,M,Louisiana,1.0,0.0,0.0 +36-45,M,Maine,0.0,1.0,0.0 +36-45,M,Maryland,1.0,0.0,0.0 +36-45,M,Massachusetts,0.0,1.0,0.0 +36-45,M,Michigan,0.0,1.0,0.0 +36-45,M,Minnesota,0.0,1.0,0.0 +36-45,M,Mississippi,1.0,0.0,0.0 +36-45,M,Missouri,0.0,1.0,0.0 +36-45,M,Nebraska,0.0,1.0,0.0 +36-45,M,New Hampshire,0.0,1.0,0.0 +36-45,M,New Jersey,0.0,1.0,0.0 +36-45,M,New York,0.0,1.0,0.0 +36-45,M,North Carolina,1.0,0.0,0.0 +36-45,M,North Dakota,0.0,1.0,0.0 +36-45,M,Ohio,0.0,1.0,0.0 +36-45,M,Oklahoma,1.0,0.0,0.0 +36-45,M,Pennsylvania,0.0,1.0,0.0 +36-45,M,Rhode Island,0.0,1.0,0.0 +36-45,M,South Carolina,1.0,0.0,0.0 +36-45,M,South Dakota,0.0,1.0,0.0 +36-45,M,Tennessee,1.0,0.0,0.0 +36-45,M,Texas,1.0,0.0,0.0 +36-45,M,Vermont,0.0,1.0,0.0 +36-45,M,Virginia,1.0,0.0,0.0 +36-45,M,West Virginia,1.0,0.0,0.0 +36-45,M,Wisconsin,0.0,1.0,0.0 +46-65,F,Alabama,0.462,0.538,0.0 +46-65,F,Alaska,1.0,0.0,0.0 +46-65,F,Arizona,1.0,0.0,0.0 +46-65,F,Arkansas,0.462,0.538,0.0 +46-65,F,California,1.0,0.0,0.0 +46-65,F,Colorado,1.0,0.0,0.0 +46-65,F,Connecticut,0.419,0.581,0.0 +46-65,F,Delaware,0.462,0.538,0.0 +46-65,F,District of Columbia,0.462,0.538,0.0 +46-65,F,Florida,0.462,0.538,0.0 +46-65,F,Georgia,0.462,0.538,0.0 +46-65,F,Hawaii,1.0,0.0,0.0 +46-65,F,Idaho,1.0,0.0,0.0 +46-65,F,Illinois,0.0,1.0,0.0 +46-65,F,Indiana,0.0,1.0,0.0 +46-65,F,Iowa,0.0,1.0,0.0 +46-65,F,Kansas,0.0,1.0,0.0 +46-65,F,Kentucky,0.462,0.538,0.0 +46-65,F,Louisiana,0.462,0.538,0.0 +46-65,F,Maine,0.419,0.581,0.0 +46-65,F,Maryland,0.462,0.538,0.0 +46-65,F,Massachusetts,0.419,0.581,0.0 +46-65,F,Michigan,0.0,1.0,0.0 +46-65,F,Minnesota,0.0,1.0,0.0 +46-65,F,Mississippi,0.462,0.538,0.0 +46-65,F,Missouri,0.0,1.0,0.0 +46-65,F,Montana,1.0,0.0,0.0 +46-65,F,Nebraska,0.0,1.0,0.0 +46-65,F,Nevada,1.0,0.0,0.0 +46-65,F,New Hampshire,0.419,0.581,0.0 +46-65,F,New Jersey,0.419,0.581,0.0 +46-65,F,New Mexico,1.0,0.0,0.0 +46-65,F,New York,0.419,0.581,0.0 +46-65,F,North Carolina,0.462,0.538,0.0 +46-65,F,North Dakota,0.0,1.0,0.0 +46-65,F,Ohio,0.0,1.0,0.0 +46-65,F,Oklahoma,0.462,0.538,0.0 +46-65,F,Oregon,1.0,0.0,0.0 +46-65,F,Pennsylvania,0.419,0.581,0.0 +46-65,F,Rhode Island,0.419,0.581,0.0 +46-65,F,South Carolina,0.462,0.538,0.0 +46-65,F,South Dakota,0.0,1.0,0.0 +46-65,F,Tennessee,0.462,0.538,0.0 +46-65,F,Texas,0.462,0.538,0.0 +46-65,F,Utah,1.0,0.0,0.0 +46-65,F,Vermont,0.419,0.581,0.0 +46-65,F,Virginia,0.462,0.538,0.0 +46-65,F,Washington,1.0,0.0,0.0 +46-65,F,West Virginia,0.462,0.538,0.0 +46-65,F,Wisconsin,0.0,1.0,0.0 +46-65,F,Wyoming,1.0,0.0,0.0 +46-65,M,Alabama,0.159,0.0,0.841 +46-65,M,Alaska,0.609,0.391,0.0 +46-65,M,Arizona,0.609,0.391,0.0 +46-65,M,Arkansas,0.159,0.0,0.841 +46-65,M,California,0.609,0.391,0.0 +46-65,M,Colorado,0.609,0.391,0.0 +46-65,M,Connecticut,1.0,0.0,0.0 +46-65,M,Delaware,0.159,0.0,0.841 +46-65,M,District of Columbia,0.159,0.0,0.841 +46-65,M,Florida,0.159,0.0,0.841 +46-65,M,Georgia,0.159,0.0,0.841 +46-65,M,Hawaii,0.609,0.391,0.0 +46-65,M,Idaho,0.609,0.391,0.0 +46-65,M,Illinois,0.0,1.0,0.0 +46-65,M,Indiana,0.0,1.0,0.0 +46-65,M,Iowa,0.0,1.0,0.0 +46-65,M,Kansas,0.0,1.0,0.0 +46-65,M,Kentucky,0.159,0.0,0.841 +46-65,M,Louisiana,0.159,0.0,0.841 +46-65,M,Maine,1.0,0.0,0.0 +46-65,M,Maryland,0.159,0.0,0.841 +46-65,M,Massachusetts,1.0,0.0,0.0 +46-65,M,Michigan,0.0,1.0,0.0 +46-65,M,Minnesota,0.0,1.0,0.0 +46-65,M,Mississippi,0.159,0.0,0.841 +46-65,M,Missouri,0.0,1.0,0.0 +46-65,M,Montana,0.609,0.391,0.0 +46-65,M,Nebraska,0.0,1.0,0.0 +46-65,M,Nevada,0.609,0.391,0.0 +46-65,M,New Hampshire,1.0,0.0,0.0 +46-65,M,New Jersey,1.0,0.0,0.0 +46-65,M,New Mexico,0.609,0.391,0.0 +46-65,M,New York,1.0,0.0,0.0 +46-65,M,North Carolina,0.159,0.0,0.841 +46-65,M,North Dakota,0.0,1.0,0.0 +46-65,M,Ohio,0.0,1.0,0.0 +46-65,M,Oklahoma,0.159,0.0,0.841 +46-65,M,Oregon,0.609,0.391,0.0 +46-65,M,Pennsylvania,1.0,0.0,0.0 +46-65,M,Rhode Island,1.0,0.0,0.0 +46-65,M,South Carolina,0.159,0.0,0.841 +46-65,M,South Dakota,0.0,1.0,0.0 +46-65,M,Tennessee,0.159,0.0,0.841 +46-65,M,Texas,0.159,0.0,0.841 +46-65,M,Utah,0.609,0.391,0.0 +46-65,M,Vermont,1.0,0.0,0.0 +46-65,M,Virginia,0.159,0.0,0.841 +46-65,M,Washington,0.609,0.391,0.0 +46-65,M,West Virginia,0.159,0.0,0.841 +46-65,M,Wisconsin,0.0,1.0,0.0 +46-65,M,Wyoming,0.609,0.391,0.0 +65-103,F,Alabama,0.254,0.746,0.0 +65-103,F,Alaska,0.473,0.11,0.417 +65-103,F,Arizona,0.473,0.11,0.417 +65-103,F,Arkansas,0.254,0.746,0.0 +65-103,F,California,0.473,0.11,0.417 +65-103,F,Colorado,0.473,0.11,0.417 +65-103,F,Connecticut,0.532,0.373,0.095 +65-103,F,Delaware,0.254,0.746,0.0 +65-103,F,District of Columbia,0.254,0.746,0.0 +65-103,F,Florida,0.254,0.746,0.0 +65-103,F,Georgia,0.254,0.746,0.0 +65-103,F,Hawaii,0.473,0.11,0.417 +65-103,F,Idaho,0.473,0.11,0.417 +65-103,F,Illinois,0.521,0.479,0.0 +65-103,F,Indiana,0.521,0.479,0.0 +65-103,F,Iowa,0.521,0.479,0.0 +65-103,F,Kansas,0.521,0.479,0.0 +65-103,F,Kentucky,0.254,0.746,0.0 +65-103,F,Louisiana,0.254,0.746,0.0 +65-103,F,Maine,0.532,0.373,0.095 +65-103,F,Maryland,0.254,0.746,0.0 +65-103,F,Massachusetts,0.532,0.373,0.095 +65-103,F,Michigan,0.521,0.479,0.0 +65-103,F,Minnesota,0.521,0.479,0.0 +65-103,F,Mississippi,0.254,0.746,0.0 +65-103,F,Missouri,0.521,0.479,0.0 +65-103,F,Montana,0.473,0.11,0.417 +65-103,F,Nebraska,0.521,0.479,0.0 +65-103,F,Nevada,0.473,0.11,0.417 +65-103,F,New Hampshire,0.532,0.373,0.095 +65-103,F,New Jersey,0.532,0.373,0.095 +65-103,F,New Mexico,0.473,0.11,0.417 +65-103,F,New York,0.532,0.373,0.095 +65-103,F,North Carolina,0.254,0.746,0.0 +65-103,F,North Dakota,0.521,0.479,0.0 +65-103,F,Ohio,0.521,0.479,0.0 +65-103,F,Oklahoma,0.254,0.746,0.0 +65-103,F,Oregon,0.473,0.11,0.417 +65-103,F,Pennsylvania,0.532,0.373,0.095 +65-103,F,Rhode Island,0.532,0.373,0.095 +65-103,F,South Carolina,0.254,0.746,0.0 +65-103,F,South Dakota,0.521,0.479,0.0 +65-103,F,Tennessee,0.254,0.746,0.0 +65-103,F,Texas,0.254,0.746,0.0 +65-103,F,Utah,0.473,0.11,0.417 +65-103,F,Vermont,0.532,0.373,0.095 +65-103,F,Virginia,0.254,0.746,0.0 +65-103,F,Washington,0.473,0.11,0.417 +65-103,F,West Virginia,0.254,0.746,0.0 +65-103,F,Wisconsin,0.521,0.479,0.0 +65-103,F,Wyoming,0.473,0.11,0.417 +65-103,M,Alabama,0.493,0.291,0.216 +65-103,M,Alaska,0.543,0.342,0.115 +65-103,M,Arizona,0.543,0.342,0.115 +65-103,M,Arkansas,0.493,0.291,0.216 +65-103,M,California,0.543,0.342,0.115 +65-103,M,Colorado,0.543,0.342,0.115 +65-103,M,Connecticut,0.371,0.379,0.25 +65-103,M,Delaware,0.493,0.291,0.216 +65-103,M,District of Columbia,0.493,0.291,0.216 +65-103,M,Florida,0.493,0.291,0.216 +65-103,M,Georgia,0.493,0.291,0.216 +65-103,M,Hawaii,0.543,0.342,0.115 +65-103,M,Idaho,0.543,0.342,0.115 +65-103,M,Illinois,0.311,0.689,0.0 +65-103,M,Indiana,0.311,0.689,0.0 +65-103,M,Iowa,0.311,0.689,0.0 +65-103,M,Kansas,0.311,0.689,0.0 +65-103,M,Kentucky,0.493,0.291,0.216 +65-103,M,Louisiana,0.493,0.291,0.216 +65-103,M,Maine,0.371,0.379,0.25 +65-103,M,Maryland,0.493,0.291,0.216 +65-103,M,Massachusetts,0.371,0.379,0.25 +65-103,M,Michigan,0.311,0.689,0.0 +65-103,M,Minnesota,0.311,0.689,0.0 +65-103,M,Mississippi,0.493,0.291,0.216 +65-103,M,Missouri,0.311,0.689,0.0 +65-103,M,Montana,0.543,0.342,0.115 +65-103,M,Nebraska,0.311,0.689,0.0 +65-103,M,Nevada,0.543,0.342,0.115 +65-103,M,New Hampshire,0.371,0.379,0.25 +65-103,M,New Jersey,0.371,0.379,0.25 +65-103,M,New Mexico,0.543,0.342,0.115 +65-103,M,New York,0.371,0.379,0.25 +65-103,M,North Carolina,0.493,0.291,0.216 +65-103,M,North Dakota,0.311,0.689,0.0 +65-103,M,Ohio,0.311,0.689,0.0 +65-103,M,Oklahoma,0.493,0.291,0.216 +65-103,M,Oregon,0.543,0.342,0.115 +65-103,M,Pennsylvania,0.371,0.379,0.25 +65-103,M,Rhode Island,0.371,0.379,0.25 +65-103,M,South Carolina,0.493,0.291,0.216 +65-103,M,South Dakota,0.311,0.689,0.0 +65-103,M,Tennessee,0.493,0.291,0.216 +65-103,M,Texas,0.493,0.291,0.216 +65-103,M,Utah,0.543,0.342,0.115 +65-103,M,Vermont,0.371,0.379,0.25 +65-103,M,Virginia,0.493,0.291,0.216 +65-103,M,Washington,0.543,0.342,0.115 +65-103,M,West Virginia,0.493,0.291,0.216 +65-103,M,Wisconsin,0.311,0.689,0.0 +65-103,M,Wyoming,0.543,0.342,0.115 diff --git a/src/main/resources/modules/lookup_tables/ace_arb_lisinopril_product_distribution.csv b/src/main/resources/modules/lookup_tables/ace_arb_lisinopril_product_distribution.csv new file mode 100644 index 0000000..9fdcdf5 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/ace_arb_lisinopril_product_distribution.csv @@ -0,0 +1,574 @@ +age,gender,state,Prescribe_Lisinopril_10_Mg_Oral_Tablet,Prescribe_Lisinopril_1_Mg_Ml_Oral_Solution_Qbrelis,Prescribe_Lisinopril_20_Mg_Oral_Tablet,Prescribe_Lisinopril_2_5_Mg_Oral_Tablet,Prescribe_Lisinopril_30_Mg_Oral_Tablet,Prescribe_Lisinopril_40_Mg_Oral_Tablet,Prescribe_Lisinopril_5_Mg_Oral_Tablet +0-3,M,Alabama,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +0-3,M,Arkansas,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +0-3,M,Delaware,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +0-3,M,District of Columbia,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +0-3,M,Florida,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +0-3,M,Georgia,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +0-3,M,Kentucky,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +0-3,M,Louisiana,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +0-3,M,Maryland,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +0-3,M,Mississippi,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +0-3,M,North Carolina,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +0-3,M,Oklahoma,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +0-3,M,South Carolina,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +0-3,M,Tennessee,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +0-3,M,Texas,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +0-3,M,Virginia,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +0-3,M,West Virginia,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +12-17,F,Alabama,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +12-17,F,Arkansas,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +12-17,F,Delaware,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +12-17,F,District of Columbia,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +12-17,F,Florida,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +12-17,F,Georgia,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +12-17,F,Kentucky,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +12-17,F,Louisiana,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +12-17,F,Maryland,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +12-17,F,Mississippi,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +12-17,F,North Carolina,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +12-17,F,Oklahoma,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +12-17,F,South Carolina,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +12-17,F,Tennessee,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +12-17,F,Texas,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +12-17,F,Virginia,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +12-17,F,West Virginia,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +12-17,M,Alabama,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,M,Arkansas,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,M,Delaware,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,M,District of Columbia,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,M,Florida,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,M,Georgia,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,M,Illinois,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +12-17,M,Indiana,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +12-17,M,Iowa,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +12-17,M,Kansas,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +12-17,M,Kentucky,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,M,Louisiana,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,M,Maryland,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,M,Michigan,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +12-17,M,Minnesota,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +12-17,M,Mississippi,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,M,Missouri,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +12-17,M,Nebraska,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +12-17,M,North Carolina,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,M,North Dakota,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +12-17,M,Ohio,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +12-17,M,Oklahoma,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,M,South Carolina,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,M,South Dakota,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +12-17,M,Tennessee,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,M,Texas,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,M,Virginia,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,M,West Virginia,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,M,Wisconsin,0.0,0.0,0.0,1.0,0.0,0.0,0.0 +18-25,F,Alabama,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Alaska,0.5,0.0,0.5,0.0,0.0,0.0,0.0 +18-25,F,Arizona,0.5,0.0,0.5,0.0,0.0,0.0,0.0 +18-25,F,Arkansas,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,California,0.5,0.0,0.5,0.0,0.0,0.0,0.0 +18-25,F,Colorado,0.5,0.0,0.5,0.0,0.0,0.0,0.0 +18-25,F,Connecticut,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,F,Delaware,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,District of Columbia,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Florida,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Georgia,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Hawaii,0.5,0.0,0.5,0.0,0.0,0.0,0.0 +18-25,F,Idaho,0.5,0.0,0.5,0.0,0.0,0.0,0.0 +18-25,F,Illinois,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Indiana,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Iowa,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Kansas,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Kentucky,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Louisiana,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Maine,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,F,Maryland,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Massachusetts,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,F,Michigan,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Minnesota,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Mississippi,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Missouri,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Montana,0.5,0.0,0.5,0.0,0.0,0.0,0.0 +18-25,F,Nebraska,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Nevada,0.5,0.0,0.5,0.0,0.0,0.0,0.0 +18-25,F,New Hampshire,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,F,New Jersey,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,F,New Mexico,0.5,0.0,0.5,0.0,0.0,0.0,0.0 +18-25,F,New York,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,F,North Carolina,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,North Dakota,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Ohio,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Oklahoma,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Oregon,0.5,0.0,0.5,0.0,0.0,0.0,0.0 +18-25,F,Pennsylvania,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,F,Rhode Island,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,F,South Carolina,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,South Dakota,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Tennessee,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Texas,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Utah,0.5,0.0,0.5,0.0,0.0,0.0,0.0 +18-25,F,Vermont,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,F,Virginia,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Washington,0.5,0.0,0.5,0.0,0.0,0.0,0.0 +18-25,F,West Virginia,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Wisconsin,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Wyoming,0.5,0.0,0.5,0.0,0.0,0.0,0.0 +18-25,M,Alabama,0.0,0.0,0.0,0.0,0.0,0.685,0.315 +18-25,M,Alaska,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Arizona,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Arkansas,0.0,0.0,0.0,0.0,0.0,0.685,0.315 +18-25,M,California,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Colorado,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Delaware,0.0,0.0,0.0,0.0,0.0,0.685,0.315 +18-25,M,District of Columbia,0.0,0.0,0.0,0.0,0.0,0.685,0.315 +18-25,M,Florida,0.0,0.0,0.0,0.0,0.0,0.685,0.315 +18-25,M,Georgia,0.0,0.0,0.0,0.0,0.0,0.685,0.315 +18-25,M,Hawaii,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Idaho,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Illinois,0.693,0.0,0.0,0.0,0.307,0.0,0.0 +18-25,M,Indiana,0.693,0.0,0.0,0.0,0.307,0.0,0.0 +18-25,M,Iowa,0.693,0.0,0.0,0.0,0.307,0.0,0.0 +18-25,M,Kansas,0.693,0.0,0.0,0.0,0.307,0.0,0.0 +18-25,M,Kentucky,0.0,0.0,0.0,0.0,0.0,0.685,0.315 +18-25,M,Louisiana,0.0,0.0,0.0,0.0,0.0,0.685,0.315 +18-25,M,Maryland,0.0,0.0,0.0,0.0,0.0,0.685,0.315 +18-25,M,Michigan,0.693,0.0,0.0,0.0,0.307,0.0,0.0 +18-25,M,Minnesota,0.693,0.0,0.0,0.0,0.307,0.0,0.0 +18-25,M,Mississippi,0.0,0.0,0.0,0.0,0.0,0.685,0.315 +18-25,M,Missouri,0.693,0.0,0.0,0.0,0.307,0.0,0.0 +18-25,M,Montana,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Nebraska,0.693,0.0,0.0,0.0,0.307,0.0,0.0 +18-25,M,Nevada,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,New Mexico,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,North Carolina,0.0,0.0,0.0,0.0,0.0,0.685,0.315 +18-25,M,North Dakota,0.693,0.0,0.0,0.0,0.307,0.0,0.0 +18-25,M,Ohio,0.693,0.0,0.0,0.0,0.307,0.0,0.0 +18-25,M,Oklahoma,0.0,0.0,0.0,0.0,0.0,0.685,0.315 +18-25,M,Oregon,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,South Carolina,0.0,0.0,0.0,0.0,0.0,0.685,0.315 +18-25,M,South Dakota,0.693,0.0,0.0,0.0,0.307,0.0,0.0 +18-25,M,Tennessee,0.0,0.0,0.0,0.0,0.0,0.685,0.315 +18-25,M,Texas,0.0,0.0,0.0,0.0,0.0,0.685,0.315 +18-25,M,Utah,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Virginia,0.0,0.0,0.0,0.0,0.0,0.685,0.315 +18-25,M,Washington,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,West Virginia,0.0,0.0,0.0,0.0,0.0,0.685,0.315 +18-25,M,Wisconsin,0.693,0.0,0.0,0.0,0.307,0.0,0.0 +18-25,M,Wyoming,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Alabama,0.292,0.0,0.216,0.137,0.054,0.102,0.2 +26-35,F,Alaska,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Arizona,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Arkansas,0.292,0.0,0.216,0.137,0.054,0.102,0.2 +26-35,F,California,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Colorado,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Connecticut,0.0,0.0,0.717,0.0,0.0,0.283,0.0 +26-35,F,Delaware,0.292,0.0,0.216,0.137,0.054,0.102,0.2 +26-35,F,District of Columbia,0.292,0.0,0.216,0.137,0.054,0.102,0.2 +26-35,F,Florida,0.292,0.0,0.216,0.137,0.054,0.102,0.2 +26-35,F,Georgia,0.292,0.0,0.216,0.137,0.054,0.102,0.2 +26-35,F,Hawaii,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Idaho,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Illinois,0.0,0.0,0.316,0.445,0.0,0.0,0.238 +26-35,F,Indiana,0.0,0.0,0.316,0.445,0.0,0.0,0.238 +26-35,F,Iowa,0.0,0.0,0.316,0.445,0.0,0.0,0.238 +26-35,F,Kansas,0.0,0.0,0.316,0.445,0.0,0.0,0.238 +26-35,F,Kentucky,0.292,0.0,0.216,0.137,0.054,0.102,0.2 +26-35,F,Louisiana,0.292,0.0,0.216,0.137,0.054,0.102,0.2 +26-35,F,Maine,0.0,0.0,0.717,0.0,0.0,0.283,0.0 +26-35,F,Maryland,0.292,0.0,0.216,0.137,0.054,0.102,0.2 +26-35,F,Massachusetts,0.0,0.0,0.717,0.0,0.0,0.283,0.0 +26-35,F,Michigan,0.0,0.0,0.316,0.445,0.0,0.0,0.238 +26-35,F,Minnesota,0.0,0.0,0.316,0.445,0.0,0.0,0.238 +26-35,F,Mississippi,0.292,0.0,0.216,0.137,0.054,0.102,0.2 +26-35,F,Missouri,0.0,0.0,0.316,0.445,0.0,0.0,0.238 +26-35,F,Montana,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Nebraska,0.0,0.0,0.316,0.445,0.0,0.0,0.238 +26-35,F,Nevada,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,New Hampshire,0.0,0.0,0.717,0.0,0.0,0.283,0.0 +26-35,F,New Jersey,0.0,0.0,0.717,0.0,0.0,0.283,0.0 +26-35,F,New Mexico,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,New York,0.0,0.0,0.717,0.0,0.0,0.283,0.0 +26-35,F,North Carolina,0.292,0.0,0.216,0.137,0.054,0.102,0.2 +26-35,F,North Dakota,0.0,0.0,0.316,0.445,0.0,0.0,0.238 +26-35,F,Ohio,0.0,0.0,0.316,0.445,0.0,0.0,0.238 +26-35,F,Oklahoma,0.292,0.0,0.216,0.137,0.054,0.102,0.2 +26-35,F,Oregon,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Pennsylvania,0.0,0.0,0.717,0.0,0.0,0.283,0.0 +26-35,F,Rhode Island,0.0,0.0,0.717,0.0,0.0,0.283,0.0 +26-35,F,South Carolina,0.292,0.0,0.216,0.137,0.054,0.102,0.2 +26-35,F,South Dakota,0.0,0.0,0.316,0.445,0.0,0.0,0.238 +26-35,F,Tennessee,0.292,0.0,0.216,0.137,0.054,0.102,0.2 +26-35,F,Texas,0.292,0.0,0.216,0.137,0.054,0.102,0.2 +26-35,F,Utah,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Vermont,0.0,0.0,0.717,0.0,0.0,0.283,0.0 +26-35,F,Virginia,0.292,0.0,0.216,0.137,0.054,0.102,0.2 +26-35,F,Washington,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,West Virginia,0.292,0.0,0.216,0.137,0.054,0.102,0.2 +26-35,F,Wisconsin,0.0,0.0,0.316,0.445,0.0,0.0,0.238 +26-35,F,Wyoming,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,M,Alabama,0.537,0.0,0.036,0.085,0.0,0.285,0.056 +26-35,M,Alaska,0.0,0.0,0.566,0.0,0.0,0.0,0.434 +26-35,M,Arizona,0.0,0.0,0.566,0.0,0.0,0.0,0.434 +26-35,M,Arkansas,0.537,0.0,0.036,0.085,0.0,0.285,0.056 +26-35,M,California,0.0,0.0,0.566,0.0,0.0,0.0,0.434 +26-35,M,Colorado,0.0,0.0,0.566,0.0,0.0,0.0,0.434 +26-35,M,Connecticut,0.839,0.0,0.0,0.0,0.0,0.101,0.06 +26-35,M,Delaware,0.537,0.0,0.036,0.085,0.0,0.285,0.056 +26-35,M,District of Columbia,0.537,0.0,0.036,0.085,0.0,0.285,0.056 +26-35,M,Florida,0.537,0.0,0.036,0.085,0.0,0.285,0.056 +26-35,M,Georgia,0.537,0.0,0.036,0.085,0.0,0.285,0.056 +26-35,M,Hawaii,0.0,0.0,0.566,0.0,0.0,0.0,0.434 +26-35,M,Idaho,0.0,0.0,0.566,0.0,0.0,0.0,0.434 +26-35,M,Illinois,0.366,0.0,0.372,0.0,0.0,0.059,0.203 +26-35,M,Indiana,0.366,0.0,0.372,0.0,0.0,0.059,0.203 +26-35,M,Iowa,0.366,0.0,0.372,0.0,0.0,0.059,0.203 +26-35,M,Kansas,0.366,0.0,0.372,0.0,0.0,0.059,0.203 +26-35,M,Kentucky,0.537,0.0,0.036,0.085,0.0,0.285,0.056 +26-35,M,Louisiana,0.537,0.0,0.036,0.085,0.0,0.285,0.056 +26-35,M,Maine,0.839,0.0,0.0,0.0,0.0,0.101,0.06 +26-35,M,Maryland,0.537,0.0,0.036,0.085,0.0,0.285,0.056 +26-35,M,Massachusetts,0.839,0.0,0.0,0.0,0.0,0.101,0.06 +26-35,M,Michigan,0.366,0.0,0.372,0.0,0.0,0.059,0.203 +26-35,M,Minnesota,0.366,0.0,0.372,0.0,0.0,0.059,0.203 +26-35,M,Mississippi,0.537,0.0,0.036,0.085,0.0,0.285,0.056 +26-35,M,Missouri,0.366,0.0,0.372,0.0,0.0,0.059,0.203 +26-35,M,Montana,0.0,0.0,0.566,0.0,0.0,0.0,0.434 +26-35,M,Nebraska,0.366,0.0,0.372,0.0,0.0,0.059,0.203 +26-35,M,Nevada,0.0,0.0,0.566,0.0,0.0,0.0,0.434 +26-35,M,New Hampshire,0.839,0.0,0.0,0.0,0.0,0.101,0.06 +26-35,M,New Jersey,0.839,0.0,0.0,0.0,0.0,0.101,0.06 +26-35,M,New Mexico,0.0,0.0,0.566,0.0,0.0,0.0,0.434 +26-35,M,New York,0.839,0.0,0.0,0.0,0.0,0.101,0.06 +26-35,M,North Carolina,0.537,0.0,0.036,0.085,0.0,0.285,0.056 +26-35,M,North Dakota,0.366,0.0,0.372,0.0,0.0,0.059,0.203 +26-35,M,Ohio,0.366,0.0,0.372,0.0,0.0,0.059,0.203 +26-35,M,Oklahoma,0.537,0.0,0.036,0.085,0.0,0.285,0.056 +26-35,M,Oregon,0.0,0.0,0.566,0.0,0.0,0.0,0.434 +26-35,M,Pennsylvania,0.839,0.0,0.0,0.0,0.0,0.101,0.06 +26-35,M,Rhode Island,0.839,0.0,0.0,0.0,0.0,0.101,0.06 +26-35,M,South Carolina,0.537,0.0,0.036,0.085,0.0,0.285,0.056 +26-35,M,South Dakota,0.366,0.0,0.372,0.0,0.0,0.059,0.203 +26-35,M,Tennessee,0.537,0.0,0.036,0.085,0.0,0.285,0.056 +26-35,M,Texas,0.537,0.0,0.036,0.085,0.0,0.285,0.056 +26-35,M,Utah,0.0,0.0,0.566,0.0,0.0,0.0,0.434 +26-35,M,Vermont,0.839,0.0,0.0,0.0,0.0,0.101,0.06 +26-35,M,Virginia,0.537,0.0,0.036,0.085,0.0,0.285,0.056 +26-35,M,Washington,0.0,0.0,0.566,0.0,0.0,0.0,0.434 +26-35,M,West Virginia,0.537,0.0,0.036,0.085,0.0,0.285,0.056 +26-35,M,Wisconsin,0.366,0.0,0.372,0.0,0.0,0.059,0.203 +26-35,M,Wyoming,0.0,0.0,0.566,0.0,0.0,0.0,0.434 +36-45,F,Alabama,0.446,0.0,0.186,0.106,0.0,0.033,0.229 +36-45,F,Alaska,0.272,0.0,0.102,0.163,0.0,0.293,0.17 +36-45,F,Arizona,0.272,0.0,0.102,0.163,0.0,0.293,0.17 +36-45,F,Arkansas,0.446,0.0,0.186,0.106,0.0,0.033,0.229 +36-45,F,California,0.272,0.0,0.102,0.163,0.0,0.293,0.17 +36-45,F,Colorado,0.272,0.0,0.102,0.163,0.0,0.293,0.17 +36-45,F,Connecticut,0.335,0.0,0.4,0.148,0.0,0.0,0.117 +36-45,F,Delaware,0.446,0.0,0.186,0.106,0.0,0.033,0.229 +36-45,F,District of Columbia,0.446,0.0,0.186,0.106,0.0,0.033,0.229 +36-45,F,Florida,0.446,0.0,0.186,0.106,0.0,0.033,0.229 +36-45,F,Georgia,0.446,0.0,0.186,0.106,0.0,0.033,0.229 +36-45,F,Hawaii,0.272,0.0,0.102,0.163,0.0,0.293,0.17 +36-45,F,Idaho,0.272,0.0,0.102,0.163,0.0,0.293,0.17 +36-45,F,Illinois,0.093,0.0,0.592,0.086,0.0,0.144,0.084 +36-45,F,Indiana,0.093,0.0,0.592,0.086,0.0,0.144,0.084 +36-45,F,Iowa,0.093,0.0,0.592,0.086,0.0,0.144,0.084 +36-45,F,Kansas,0.093,0.0,0.592,0.086,0.0,0.144,0.084 +36-45,F,Kentucky,0.446,0.0,0.186,0.106,0.0,0.033,0.229 +36-45,F,Louisiana,0.446,0.0,0.186,0.106,0.0,0.033,0.229 +36-45,F,Maine,0.335,0.0,0.4,0.148,0.0,0.0,0.117 +36-45,F,Maryland,0.446,0.0,0.186,0.106,0.0,0.033,0.229 +36-45,F,Massachusetts,0.335,0.0,0.4,0.148,0.0,0.0,0.117 +36-45,F,Michigan,0.093,0.0,0.592,0.086,0.0,0.144,0.084 +36-45,F,Minnesota,0.093,0.0,0.592,0.086,0.0,0.144,0.084 +36-45,F,Mississippi,0.446,0.0,0.186,0.106,0.0,0.033,0.229 +36-45,F,Missouri,0.093,0.0,0.592,0.086,0.0,0.144,0.084 +36-45,F,Montana,0.272,0.0,0.102,0.163,0.0,0.293,0.17 +36-45,F,Nebraska,0.093,0.0,0.592,0.086,0.0,0.144,0.084 +36-45,F,Nevada,0.272,0.0,0.102,0.163,0.0,0.293,0.17 +36-45,F,New Hampshire,0.335,0.0,0.4,0.148,0.0,0.0,0.117 +36-45,F,New Jersey,0.335,0.0,0.4,0.148,0.0,0.0,0.117 +36-45,F,New Mexico,0.272,0.0,0.102,0.163,0.0,0.293,0.17 +36-45,F,New York,0.335,0.0,0.4,0.148,0.0,0.0,0.117 +36-45,F,North Carolina,0.446,0.0,0.186,0.106,0.0,0.033,0.229 +36-45,F,North Dakota,0.093,0.0,0.592,0.086,0.0,0.144,0.084 +36-45,F,Ohio,0.093,0.0,0.592,0.086,0.0,0.144,0.084 +36-45,F,Oklahoma,0.446,0.0,0.186,0.106,0.0,0.033,0.229 +36-45,F,Oregon,0.272,0.0,0.102,0.163,0.0,0.293,0.17 +36-45,F,Pennsylvania,0.335,0.0,0.4,0.148,0.0,0.0,0.117 +36-45,F,Rhode Island,0.335,0.0,0.4,0.148,0.0,0.0,0.117 +36-45,F,South Carolina,0.446,0.0,0.186,0.106,0.0,0.033,0.229 +36-45,F,South Dakota,0.093,0.0,0.592,0.086,0.0,0.144,0.084 +36-45,F,Tennessee,0.446,0.0,0.186,0.106,0.0,0.033,0.229 +36-45,F,Texas,0.446,0.0,0.186,0.106,0.0,0.033,0.229 +36-45,F,Utah,0.272,0.0,0.102,0.163,0.0,0.293,0.17 +36-45,F,Vermont,0.335,0.0,0.4,0.148,0.0,0.0,0.117 +36-45,F,Virginia,0.446,0.0,0.186,0.106,0.0,0.033,0.229 +36-45,F,Washington,0.272,0.0,0.102,0.163,0.0,0.293,0.17 +36-45,F,West Virginia,0.446,0.0,0.186,0.106,0.0,0.033,0.229 +36-45,F,Wisconsin,0.093,0.0,0.592,0.086,0.0,0.144,0.084 +36-45,F,Wyoming,0.272,0.0,0.102,0.163,0.0,0.293,0.17 +36-45,M,Alabama,0.468,0.0,0.174,0.028,0.022,0.172,0.136 +36-45,M,Alaska,0.243,0.0,0.393,0.05,0.043,0.108,0.163 +36-45,M,Arizona,0.243,0.0,0.393,0.05,0.043,0.108,0.163 +36-45,M,Arkansas,0.468,0.0,0.174,0.028,0.022,0.172,0.136 +36-45,M,California,0.243,0.0,0.393,0.05,0.043,0.108,0.163 +36-45,M,Colorado,0.243,0.0,0.393,0.05,0.043,0.108,0.163 +36-45,M,Connecticut,0.446,0.0,0.193,0.132,0.0,0.12,0.109 +36-45,M,Delaware,0.468,0.0,0.174,0.028,0.022,0.172,0.136 +36-45,M,District of Columbia,0.468,0.0,0.174,0.028,0.022,0.172,0.136 +36-45,M,Florida,0.468,0.0,0.174,0.028,0.022,0.172,0.136 +36-45,M,Georgia,0.468,0.0,0.174,0.028,0.022,0.172,0.136 +36-45,M,Hawaii,0.243,0.0,0.393,0.05,0.043,0.108,0.163 +36-45,M,Idaho,0.243,0.0,0.393,0.05,0.043,0.108,0.163 +36-45,M,Illinois,0.442,0.0,0.208,0.0,0.0,0.182,0.167 +36-45,M,Indiana,0.442,0.0,0.208,0.0,0.0,0.182,0.167 +36-45,M,Iowa,0.442,0.0,0.208,0.0,0.0,0.182,0.167 +36-45,M,Kansas,0.442,0.0,0.208,0.0,0.0,0.182,0.167 +36-45,M,Kentucky,0.468,0.0,0.174,0.028,0.022,0.172,0.136 +36-45,M,Louisiana,0.468,0.0,0.174,0.028,0.022,0.172,0.136 +36-45,M,Maine,0.446,0.0,0.193,0.132,0.0,0.12,0.109 +36-45,M,Maryland,0.468,0.0,0.174,0.028,0.022,0.172,0.136 +36-45,M,Massachusetts,0.446,0.0,0.193,0.132,0.0,0.12,0.109 +36-45,M,Michigan,0.442,0.0,0.208,0.0,0.0,0.182,0.167 +36-45,M,Minnesota,0.442,0.0,0.208,0.0,0.0,0.182,0.167 +36-45,M,Mississippi,0.468,0.0,0.174,0.028,0.022,0.172,0.136 +36-45,M,Missouri,0.442,0.0,0.208,0.0,0.0,0.182,0.167 +36-45,M,Montana,0.243,0.0,0.393,0.05,0.043,0.108,0.163 +36-45,M,Nebraska,0.442,0.0,0.208,0.0,0.0,0.182,0.167 +36-45,M,Nevada,0.243,0.0,0.393,0.05,0.043,0.108,0.163 +36-45,M,New Hampshire,0.446,0.0,0.193,0.132,0.0,0.12,0.109 +36-45,M,New Jersey,0.446,0.0,0.193,0.132,0.0,0.12,0.109 +36-45,M,New Mexico,0.243,0.0,0.393,0.05,0.043,0.108,0.163 +36-45,M,New York,0.446,0.0,0.193,0.132,0.0,0.12,0.109 +36-45,M,North Carolina,0.468,0.0,0.174,0.028,0.022,0.172,0.136 +36-45,M,North Dakota,0.442,0.0,0.208,0.0,0.0,0.182,0.167 +36-45,M,Ohio,0.442,0.0,0.208,0.0,0.0,0.182,0.167 +36-45,M,Oklahoma,0.468,0.0,0.174,0.028,0.022,0.172,0.136 +36-45,M,Oregon,0.243,0.0,0.393,0.05,0.043,0.108,0.163 +36-45,M,Pennsylvania,0.446,0.0,0.193,0.132,0.0,0.12,0.109 +36-45,M,Rhode Island,0.446,0.0,0.193,0.132,0.0,0.12,0.109 +36-45,M,South Carolina,0.468,0.0,0.174,0.028,0.022,0.172,0.136 +36-45,M,South Dakota,0.442,0.0,0.208,0.0,0.0,0.182,0.167 +36-45,M,Tennessee,0.468,0.0,0.174,0.028,0.022,0.172,0.136 +36-45,M,Texas,0.468,0.0,0.174,0.028,0.022,0.172,0.136 +36-45,M,Utah,0.243,0.0,0.393,0.05,0.043,0.108,0.163 +36-45,M,Vermont,0.446,0.0,0.193,0.132,0.0,0.12,0.109 +36-45,M,Virginia,0.468,0.0,0.174,0.028,0.022,0.172,0.136 +36-45,M,Washington,0.243,0.0,0.393,0.05,0.043,0.108,0.163 +36-45,M,West Virginia,0.468,0.0,0.174,0.028,0.022,0.172,0.136 +36-45,M,Wisconsin,0.442,0.0,0.208,0.0,0.0,0.182,0.167 +36-45,M,Wyoming,0.243,0.0,0.393,0.05,0.043,0.108,0.163 +4-7,M,Connecticut,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Maine,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Massachusetts,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,New Hampshire,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,New Jersey,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,New York,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Pennsylvania,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Rhode Island,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Vermont,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +46-65,F,Alabama,0.367,0.0,0.264,0.066,0.0,0.136,0.166 +46-65,F,Alaska,0.231,0.0,0.376,0.002,0.009,0.27,0.111 +46-65,F,Arizona,0.231,0.0,0.376,0.002,0.009,0.27,0.111 +46-65,F,Arkansas,0.367,0.0,0.264,0.066,0.0,0.136,0.166 +46-65,F,California,0.231,0.0,0.376,0.002,0.009,0.27,0.111 +46-65,F,Colorado,0.231,0.0,0.376,0.002,0.009,0.27,0.111 +46-65,F,Connecticut,0.292,0.0,0.254,0.094,0.032,0.132,0.195 +46-65,F,Delaware,0.367,0.0,0.264,0.066,0.0,0.136,0.166 +46-65,F,District of Columbia,0.367,0.0,0.264,0.066,0.0,0.136,0.166 +46-65,F,Florida,0.367,0.0,0.264,0.066,0.0,0.136,0.166 +46-65,F,Georgia,0.367,0.0,0.264,0.066,0.0,0.136,0.166 +46-65,F,Hawaii,0.231,0.0,0.376,0.002,0.009,0.27,0.111 +46-65,F,Idaho,0.231,0.0,0.376,0.002,0.009,0.27,0.111 +46-65,F,Illinois,0.307,0.0,0.328,0.052,0.016,0.118,0.18 +46-65,F,Indiana,0.307,0.0,0.328,0.052,0.016,0.118,0.18 +46-65,F,Iowa,0.307,0.0,0.328,0.052,0.016,0.118,0.18 +46-65,F,Kansas,0.307,0.0,0.328,0.052,0.016,0.118,0.18 +46-65,F,Kentucky,0.367,0.0,0.264,0.066,0.0,0.136,0.166 +46-65,F,Louisiana,0.367,0.0,0.264,0.066,0.0,0.136,0.166 +46-65,F,Maine,0.292,0.0,0.254,0.094,0.032,0.132,0.195 +46-65,F,Maryland,0.367,0.0,0.264,0.066,0.0,0.136,0.166 +46-65,F,Massachusetts,0.292,0.0,0.254,0.094,0.032,0.132,0.195 +46-65,F,Michigan,0.307,0.0,0.328,0.052,0.016,0.118,0.18 +46-65,F,Minnesota,0.307,0.0,0.328,0.052,0.016,0.118,0.18 +46-65,F,Mississippi,0.367,0.0,0.264,0.066,0.0,0.136,0.166 +46-65,F,Missouri,0.307,0.0,0.328,0.052,0.016,0.118,0.18 +46-65,F,Montana,0.231,0.0,0.376,0.002,0.009,0.27,0.111 +46-65,F,Nebraska,0.307,0.0,0.328,0.052,0.016,0.118,0.18 +46-65,F,Nevada,0.231,0.0,0.376,0.002,0.009,0.27,0.111 +46-65,F,New Hampshire,0.292,0.0,0.254,0.094,0.032,0.132,0.195 +46-65,F,New Jersey,0.292,0.0,0.254,0.094,0.032,0.132,0.195 +46-65,F,New Mexico,0.231,0.0,0.376,0.002,0.009,0.27,0.111 +46-65,F,New York,0.292,0.0,0.254,0.094,0.032,0.132,0.195 +46-65,F,North Carolina,0.367,0.0,0.264,0.066,0.0,0.136,0.166 +46-65,F,North Dakota,0.307,0.0,0.328,0.052,0.016,0.118,0.18 +46-65,F,Ohio,0.307,0.0,0.328,0.052,0.016,0.118,0.18 +46-65,F,Oklahoma,0.367,0.0,0.264,0.066,0.0,0.136,0.166 +46-65,F,Oregon,0.231,0.0,0.376,0.002,0.009,0.27,0.111 +46-65,F,Pennsylvania,0.292,0.0,0.254,0.094,0.032,0.132,0.195 +46-65,F,Rhode Island,0.292,0.0,0.254,0.094,0.032,0.132,0.195 +46-65,F,South Carolina,0.367,0.0,0.264,0.066,0.0,0.136,0.166 +46-65,F,South Dakota,0.307,0.0,0.328,0.052,0.016,0.118,0.18 +46-65,F,Tennessee,0.367,0.0,0.264,0.066,0.0,0.136,0.166 +46-65,F,Texas,0.367,0.0,0.264,0.066,0.0,0.136,0.166 +46-65,F,Utah,0.231,0.0,0.376,0.002,0.009,0.27,0.111 +46-65,F,Vermont,0.292,0.0,0.254,0.094,0.032,0.132,0.195 +46-65,F,Virginia,0.367,0.0,0.264,0.066,0.0,0.136,0.166 +46-65,F,Washington,0.231,0.0,0.376,0.002,0.009,0.27,0.111 +46-65,F,West Virginia,0.367,0.0,0.264,0.066,0.0,0.136,0.166 +46-65,F,Wisconsin,0.307,0.0,0.328,0.052,0.016,0.118,0.18 +46-65,F,Wyoming,0.231,0.0,0.376,0.002,0.009,0.27,0.111 +46-65,M,Alabama,0.379,0.0,0.273,0.041,0.013,0.163,0.131 +46-65,M,Alaska,0.289,0.0,0.352,0.098,0.028,0.151,0.082 +46-65,M,Arizona,0.289,0.0,0.352,0.098,0.028,0.151,0.082 +46-65,M,Arkansas,0.379,0.0,0.273,0.041,0.013,0.163,0.131 +46-65,M,California,0.289,0.0,0.352,0.098,0.028,0.151,0.082 +46-65,M,Colorado,0.289,0.0,0.352,0.098,0.028,0.151,0.082 +46-65,M,Connecticut,0.289,0.0,0.238,0.036,0.011,0.136,0.289 +46-65,M,Delaware,0.379,0.0,0.273,0.041,0.013,0.163,0.131 +46-65,M,District of Columbia,0.379,0.0,0.273,0.041,0.013,0.163,0.131 +46-65,M,Florida,0.379,0.0,0.273,0.041,0.013,0.163,0.131 +46-65,M,Georgia,0.379,0.0,0.273,0.041,0.013,0.163,0.131 +46-65,M,Hawaii,0.289,0.0,0.352,0.098,0.028,0.151,0.082 +46-65,M,Idaho,0.289,0.0,0.352,0.098,0.028,0.151,0.082 +46-65,M,Illinois,0.401,0.0,0.219,0.04,0.014,0.165,0.16 +46-65,M,Indiana,0.401,0.0,0.219,0.04,0.014,0.165,0.16 +46-65,M,Iowa,0.401,0.0,0.219,0.04,0.014,0.165,0.16 +46-65,M,Kansas,0.401,0.0,0.219,0.04,0.014,0.165,0.16 +46-65,M,Kentucky,0.379,0.0,0.273,0.041,0.013,0.163,0.131 +46-65,M,Louisiana,0.379,0.0,0.273,0.041,0.013,0.163,0.131 +46-65,M,Maine,0.289,0.0,0.238,0.036,0.011,0.136,0.289 +46-65,M,Maryland,0.379,0.0,0.273,0.041,0.013,0.163,0.131 +46-65,M,Massachusetts,0.289,0.0,0.238,0.036,0.011,0.136,0.289 +46-65,M,Michigan,0.401,0.0,0.219,0.04,0.014,0.165,0.16 +46-65,M,Minnesota,0.401,0.0,0.219,0.04,0.014,0.165,0.16 +46-65,M,Mississippi,0.379,0.0,0.273,0.041,0.013,0.163,0.131 +46-65,M,Missouri,0.401,0.0,0.219,0.04,0.014,0.165,0.16 +46-65,M,Montana,0.289,0.0,0.352,0.098,0.028,0.151,0.082 +46-65,M,Nebraska,0.401,0.0,0.219,0.04,0.014,0.165,0.16 +46-65,M,Nevada,0.289,0.0,0.352,0.098,0.028,0.151,0.082 +46-65,M,New Hampshire,0.289,0.0,0.238,0.036,0.011,0.136,0.289 +46-65,M,New Jersey,0.289,0.0,0.238,0.036,0.011,0.136,0.289 +46-65,M,New Mexico,0.289,0.0,0.352,0.098,0.028,0.151,0.082 +46-65,M,New York,0.289,0.0,0.238,0.036,0.011,0.136,0.289 +46-65,M,North Carolina,0.379,0.0,0.273,0.041,0.013,0.163,0.131 +46-65,M,North Dakota,0.401,0.0,0.219,0.04,0.014,0.165,0.16 +46-65,M,Ohio,0.401,0.0,0.219,0.04,0.014,0.165,0.16 +46-65,M,Oklahoma,0.379,0.0,0.273,0.041,0.013,0.163,0.131 +46-65,M,Oregon,0.289,0.0,0.352,0.098,0.028,0.151,0.082 +46-65,M,Pennsylvania,0.289,0.0,0.238,0.036,0.011,0.136,0.289 +46-65,M,Rhode Island,0.289,0.0,0.238,0.036,0.011,0.136,0.289 +46-65,M,South Carolina,0.379,0.0,0.273,0.041,0.013,0.163,0.131 +46-65,M,South Dakota,0.401,0.0,0.219,0.04,0.014,0.165,0.16 +46-65,M,Tennessee,0.379,0.0,0.273,0.041,0.013,0.163,0.131 +46-65,M,Texas,0.379,0.0,0.273,0.041,0.013,0.163,0.131 +46-65,M,Utah,0.289,0.0,0.352,0.098,0.028,0.151,0.082 +46-65,M,Vermont,0.289,0.0,0.238,0.036,0.011,0.136,0.289 +46-65,M,Virginia,0.379,0.0,0.273,0.041,0.013,0.163,0.131 +46-65,M,Washington,0.289,0.0,0.352,0.098,0.028,0.151,0.082 +46-65,M,West Virginia,0.379,0.0,0.273,0.041,0.013,0.163,0.131 +46-65,M,Wisconsin,0.401,0.0,0.219,0.04,0.014,0.165,0.16 +46-65,M,Wyoming,0.289,0.0,0.352,0.098,0.028,0.151,0.082 +65-103,F,Alabama,0.251,0.0,0.287,0.084,0.006,0.224,0.147 +65-103,F,Alaska,0.24,0.0,0.387,0.037,0.014,0.205,0.117 +65-103,F,Arizona,0.24,0.0,0.387,0.037,0.014,0.205,0.117 +65-103,F,Arkansas,0.251,0.0,0.287,0.084,0.006,0.224,0.147 +65-103,F,California,0.24,0.0,0.387,0.037,0.014,0.205,0.117 +65-103,F,Colorado,0.24,0.0,0.387,0.037,0.014,0.205,0.117 +65-103,F,Connecticut,0.308,0.0,0.228,0.098,0.029,0.082,0.254 +65-103,F,Delaware,0.251,0.0,0.287,0.084,0.006,0.224,0.147 +65-103,F,District of Columbia,0.251,0.0,0.287,0.084,0.006,0.224,0.147 +65-103,F,Florida,0.251,0.0,0.287,0.084,0.006,0.224,0.147 +65-103,F,Georgia,0.251,0.0,0.287,0.084,0.006,0.224,0.147 +65-103,F,Hawaii,0.24,0.0,0.387,0.037,0.014,0.205,0.117 +65-103,F,Idaho,0.24,0.0,0.387,0.037,0.014,0.205,0.117 +65-103,F,Illinois,0.289,0.0,0.287,0.079,0.048,0.148,0.149 +65-103,F,Indiana,0.289,0.0,0.287,0.079,0.048,0.148,0.149 +65-103,F,Iowa,0.289,0.0,0.287,0.079,0.048,0.148,0.149 +65-103,F,Kansas,0.289,0.0,0.287,0.079,0.048,0.148,0.149 +65-103,F,Kentucky,0.251,0.0,0.287,0.084,0.006,0.224,0.147 +65-103,F,Louisiana,0.251,0.0,0.287,0.084,0.006,0.224,0.147 +65-103,F,Maine,0.308,0.0,0.228,0.098,0.029,0.082,0.254 +65-103,F,Maryland,0.251,0.0,0.287,0.084,0.006,0.224,0.147 +65-103,F,Massachusetts,0.308,0.0,0.228,0.098,0.029,0.082,0.254 +65-103,F,Michigan,0.289,0.0,0.287,0.079,0.048,0.148,0.149 +65-103,F,Minnesota,0.289,0.0,0.287,0.079,0.048,0.148,0.149 +65-103,F,Mississippi,0.251,0.0,0.287,0.084,0.006,0.224,0.147 +65-103,F,Missouri,0.289,0.0,0.287,0.079,0.048,0.148,0.149 +65-103,F,Montana,0.24,0.0,0.387,0.037,0.014,0.205,0.117 +65-103,F,Nebraska,0.289,0.0,0.287,0.079,0.048,0.148,0.149 +65-103,F,Nevada,0.24,0.0,0.387,0.037,0.014,0.205,0.117 +65-103,F,New Hampshire,0.308,0.0,0.228,0.098,0.029,0.082,0.254 +65-103,F,New Jersey,0.308,0.0,0.228,0.098,0.029,0.082,0.254 +65-103,F,New Mexico,0.24,0.0,0.387,0.037,0.014,0.205,0.117 +65-103,F,New York,0.308,0.0,0.228,0.098,0.029,0.082,0.254 +65-103,F,North Carolina,0.251,0.0,0.287,0.084,0.006,0.224,0.147 +65-103,F,North Dakota,0.289,0.0,0.287,0.079,0.048,0.148,0.149 +65-103,F,Ohio,0.289,0.0,0.287,0.079,0.048,0.148,0.149 +65-103,F,Oklahoma,0.251,0.0,0.287,0.084,0.006,0.224,0.147 +65-103,F,Oregon,0.24,0.0,0.387,0.037,0.014,0.205,0.117 +65-103,F,Pennsylvania,0.308,0.0,0.228,0.098,0.029,0.082,0.254 +65-103,F,Rhode Island,0.308,0.0,0.228,0.098,0.029,0.082,0.254 +65-103,F,South Carolina,0.251,0.0,0.287,0.084,0.006,0.224,0.147 +65-103,F,South Dakota,0.289,0.0,0.287,0.079,0.048,0.148,0.149 +65-103,F,Tennessee,0.251,0.0,0.287,0.084,0.006,0.224,0.147 +65-103,F,Texas,0.251,0.0,0.287,0.084,0.006,0.224,0.147 +65-103,F,Utah,0.24,0.0,0.387,0.037,0.014,0.205,0.117 +65-103,F,Vermont,0.308,0.0,0.228,0.098,0.029,0.082,0.254 +65-103,F,Virginia,0.251,0.0,0.287,0.084,0.006,0.224,0.147 +65-103,F,Washington,0.24,0.0,0.387,0.037,0.014,0.205,0.117 +65-103,F,West Virginia,0.251,0.0,0.287,0.084,0.006,0.224,0.147 +65-103,F,Wisconsin,0.289,0.0,0.287,0.079,0.048,0.148,0.149 +65-103,F,Wyoming,0.24,0.0,0.387,0.037,0.014,0.205,0.117 +65-103,M,Alabama,0.241,0.0,0.241,0.059,0.006,0.281,0.172 +65-103,M,Alaska,0.175,0.0,0.25,0.114,0.012,0.297,0.152 +65-103,M,Arizona,0.175,0.0,0.25,0.114,0.012,0.297,0.152 +65-103,M,Arkansas,0.241,0.0,0.241,0.059,0.006,0.281,0.172 +65-103,M,California,0.175,0.0,0.25,0.114,0.012,0.297,0.152 +65-103,M,Colorado,0.175,0.0,0.25,0.114,0.012,0.297,0.152 +65-103,M,Connecticut,0.269,0.0,0.202,0.146,0.001,0.279,0.102 +65-103,M,Delaware,0.241,0.0,0.241,0.059,0.006,0.281,0.172 +65-103,M,District of Columbia,0.241,0.0,0.241,0.059,0.006,0.281,0.172 +65-103,M,Florida,0.241,0.0,0.241,0.059,0.006,0.281,0.172 +65-103,M,Georgia,0.241,0.0,0.241,0.059,0.006,0.281,0.172 +65-103,M,Hawaii,0.175,0.0,0.25,0.114,0.012,0.297,0.152 +65-103,M,Idaho,0.175,0.0,0.25,0.114,0.012,0.297,0.152 +65-103,M,Illinois,0.195,0.0,0.305,0.126,0.034,0.211,0.131 +65-103,M,Indiana,0.195,0.0,0.305,0.126,0.034,0.211,0.131 +65-103,M,Iowa,0.195,0.0,0.305,0.126,0.034,0.211,0.131 +65-103,M,Kansas,0.195,0.0,0.305,0.126,0.034,0.211,0.131 +65-103,M,Kentucky,0.241,0.0,0.241,0.059,0.006,0.281,0.172 +65-103,M,Louisiana,0.241,0.0,0.241,0.059,0.006,0.281,0.172 +65-103,M,Maine,0.269,0.0,0.202,0.146,0.001,0.279,0.102 +65-103,M,Maryland,0.241,0.0,0.241,0.059,0.006,0.281,0.172 +65-103,M,Massachusetts,0.269,0.0,0.202,0.146,0.001,0.279,0.102 +65-103,M,Michigan,0.195,0.0,0.305,0.126,0.034,0.211,0.131 +65-103,M,Minnesota,0.195,0.0,0.305,0.126,0.034,0.211,0.131 +65-103,M,Mississippi,0.241,0.0,0.241,0.059,0.006,0.281,0.172 +65-103,M,Missouri,0.195,0.0,0.305,0.126,0.034,0.211,0.131 +65-103,M,Montana,0.175,0.0,0.25,0.114,0.012,0.297,0.152 +65-103,M,Nebraska,0.195,0.0,0.305,0.126,0.034,0.211,0.131 +65-103,M,Nevada,0.175,0.0,0.25,0.114,0.012,0.297,0.152 +65-103,M,New Hampshire,0.269,0.0,0.202,0.146,0.001,0.279,0.102 +65-103,M,New Jersey,0.269,0.0,0.202,0.146,0.001,0.279,0.102 +65-103,M,New Mexico,0.175,0.0,0.25,0.114,0.012,0.297,0.152 +65-103,M,New York,0.269,0.0,0.202,0.146,0.001,0.279,0.102 +65-103,M,North Carolina,0.241,0.0,0.241,0.059,0.006,0.281,0.172 +65-103,M,North Dakota,0.195,0.0,0.305,0.126,0.034,0.211,0.131 +65-103,M,Ohio,0.195,0.0,0.305,0.126,0.034,0.211,0.131 +65-103,M,Oklahoma,0.241,0.0,0.241,0.059,0.006,0.281,0.172 +65-103,M,Oregon,0.175,0.0,0.25,0.114,0.012,0.297,0.152 +65-103,M,Pennsylvania,0.269,0.0,0.202,0.146,0.001,0.279,0.102 +65-103,M,Rhode Island,0.269,0.0,0.202,0.146,0.001,0.279,0.102 +65-103,M,South Carolina,0.241,0.0,0.241,0.059,0.006,0.281,0.172 +65-103,M,South Dakota,0.195,0.0,0.305,0.126,0.034,0.211,0.131 +65-103,M,Tennessee,0.241,0.0,0.241,0.059,0.006,0.281,0.172 +65-103,M,Texas,0.241,0.0,0.241,0.059,0.006,0.281,0.172 +65-103,M,Utah,0.175,0.0,0.25,0.114,0.012,0.297,0.152 +65-103,M,Vermont,0.269,0.0,0.202,0.146,0.001,0.279,0.102 +65-103,M,Virginia,0.241,0.0,0.241,0.059,0.006,0.281,0.172 +65-103,M,Washington,0.175,0.0,0.25,0.114,0.012,0.297,0.152 +65-103,M,West Virginia,0.241,0.0,0.241,0.059,0.006,0.281,0.172 +65-103,M,Wisconsin,0.195,0.0,0.305,0.126,0.034,0.211,0.131 +65-103,M,Wyoming,0.175,0.0,0.25,0.114,0.012,0.297,0.152 diff --git a/src/main/resources/modules/lookup_tables/ace_arb_losartan_product_distribution.csv b/src/main/resources/modules/lookup_tables/ace_arb_losartan_product_distribution.csv new file mode 100644 index 0000000..624c600 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/ace_arb_losartan_product_distribution.csv @@ -0,0 +1,410 @@ +age,gender,state,Prescribe_Losartan_Potassium_100_Mg_Oral_Tablet,Prescribe_Losartan_Potassium_25_Mg_Oral_Tablet,Prescribe_Losartan_Potassium_25_Mg_Oral_Tablet_Cozaar,Prescribe_Losartan_Potassium_50_Mg_Oral_Tablet,Prescribe_Losartan_Potassium_50_Mg_Oral_Tablet_Cozaar +18-25,F,Illinois,0.0,0.0,0.0,1.0,0.0 +18-25,F,Indiana,0.0,0.0,0.0,1.0,0.0 +18-25,F,Iowa,0.0,0.0,0.0,1.0,0.0 +18-25,F,Kansas,0.0,0.0,0.0,1.0,0.0 +18-25,F,Michigan,0.0,0.0,0.0,1.0,0.0 +18-25,F,Minnesota,0.0,0.0,0.0,1.0,0.0 +18-25,F,Missouri,0.0,0.0,0.0,1.0,0.0 +18-25,F,Nebraska,0.0,0.0,0.0,1.0,0.0 +18-25,F,North Dakota,0.0,0.0,0.0,1.0,0.0 +18-25,F,Ohio,0.0,0.0,0.0,1.0,0.0 +18-25,F,South Dakota,0.0,0.0,0.0,1.0,0.0 +18-25,F,Wisconsin,0.0,0.0,0.0,1.0,0.0 +18-25,M,Alaska,1.0,0.0,0.0,0.0,0.0 +18-25,M,Arizona,1.0,0.0,0.0,0.0,0.0 +18-25,M,California,1.0,0.0,0.0,0.0,0.0 +18-25,M,Colorado,1.0,0.0,0.0,0.0,0.0 +18-25,M,Hawaii,1.0,0.0,0.0,0.0,0.0 +18-25,M,Idaho,1.0,0.0,0.0,0.0,0.0 +18-25,M,Montana,1.0,0.0,0.0,0.0,0.0 +18-25,M,Nevada,1.0,0.0,0.0,0.0,0.0 +18-25,M,New Mexico,1.0,0.0,0.0,0.0,0.0 +18-25,M,Oregon,1.0,0.0,0.0,0.0,0.0 +18-25,M,Utah,1.0,0.0,0.0,0.0,0.0 +18-25,M,Washington,1.0,0.0,0.0,0.0,0.0 +18-25,M,Wyoming,1.0,0.0,0.0,0.0,0.0 +26-35,F,Alabama,0.395,0.144,0.0,0.461,0.0 +26-35,F,Alaska,0.0,1.0,0.0,0.0,0.0 +26-35,F,Arizona,0.0,1.0,0.0,0.0,0.0 +26-35,F,Arkansas,0.395,0.144,0.0,0.461,0.0 +26-35,F,California,0.0,1.0,0.0,0.0,0.0 +26-35,F,Colorado,0.0,1.0,0.0,0.0,0.0 +26-35,F,Delaware,0.395,0.144,0.0,0.461,0.0 +26-35,F,District of Columbia,0.395,0.144,0.0,0.461,0.0 +26-35,F,Florida,0.395,0.144,0.0,0.461,0.0 +26-35,F,Georgia,0.395,0.144,0.0,0.461,0.0 +26-35,F,Hawaii,0.0,1.0,0.0,0.0,0.0 +26-35,F,Idaho,0.0,1.0,0.0,0.0,0.0 +26-35,F,Kentucky,0.395,0.144,0.0,0.461,0.0 +26-35,F,Louisiana,0.395,0.144,0.0,0.461,0.0 +26-35,F,Maryland,0.395,0.144,0.0,0.461,0.0 +26-35,F,Mississippi,0.395,0.144,0.0,0.461,0.0 +26-35,F,Montana,0.0,1.0,0.0,0.0,0.0 +26-35,F,Nevada,0.0,1.0,0.0,0.0,0.0 +26-35,F,New Mexico,0.0,1.0,0.0,0.0,0.0 +26-35,F,North Carolina,0.395,0.144,0.0,0.461,0.0 +26-35,F,Oklahoma,0.395,0.144,0.0,0.461,0.0 +26-35,F,Oregon,0.0,1.0,0.0,0.0,0.0 +26-35,F,South Carolina,0.395,0.144,0.0,0.461,0.0 +26-35,F,Tennessee,0.395,0.144,0.0,0.461,0.0 +26-35,F,Texas,0.395,0.144,0.0,0.461,0.0 +26-35,F,Utah,0.0,1.0,0.0,0.0,0.0 +26-35,F,Virginia,0.395,0.144,0.0,0.461,0.0 +26-35,F,Washington,0.0,1.0,0.0,0.0,0.0 +26-35,F,West Virginia,0.395,0.144,0.0,0.461,0.0 +26-35,F,Wyoming,0.0,1.0,0.0,0.0,0.0 +26-35,M,Alabama,0.659,0.0,0.0,0.341,0.0 +26-35,M,Alaska,1.0,0.0,0.0,0.0,0.0 +26-35,M,Arizona,1.0,0.0,0.0,0.0,0.0 +26-35,M,Arkansas,0.659,0.0,0.0,0.341,0.0 +26-35,M,California,1.0,0.0,0.0,0.0,0.0 +26-35,M,Colorado,1.0,0.0,0.0,0.0,0.0 +26-35,M,Connecticut,1.0,0.0,0.0,0.0,0.0 +26-35,M,Delaware,0.659,0.0,0.0,0.341,0.0 +26-35,M,District of Columbia,0.659,0.0,0.0,0.341,0.0 +26-35,M,Florida,0.659,0.0,0.0,0.341,0.0 +26-35,M,Georgia,0.659,0.0,0.0,0.341,0.0 +26-35,M,Hawaii,1.0,0.0,0.0,0.0,0.0 +26-35,M,Idaho,1.0,0.0,0.0,0.0,0.0 +26-35,M,Kentucky,0.659,0.0,0.0,0.341,0.0 +26-35,M,Louisiana,0.659,0.0,0.0,0.341,0.0 +26-35,M,Maine,1.0,0.0,0.0,0.0,0.0 +26-35,M,Maryland,0.659,0.0,0.0,0.341,0.0 +26-35,M,Massachusetts,1.0,0.0,0.0,0.0,0.0 +26-35,M,Mississippi,0.659,0.0,0.0,0.341,0.0 +26-35,M,Montana,1.0,0.0,0.0,0.0,0.0 +26-35,M,Nevada,1.0,0.0,0.0,0.0,0.0 +26-35,M,New Hampshire,1.0,0.0,0.0,0.0,0.0 +26-35,M,New Jersey,1.0,0.0,0.0,0.0,0.0 +26-35,M,New Mexico,1.0,0.0,0.0,0.0,0.0 +26-35,M,New York,1.0,0.0,0.0,0.0,0.0 +26-35,M,North Carolina,0.659,0.0,0.0,0.341,0.0 +26-35,M,Oklahoma,0.659,0.0,0.0,0.341,0.0 +26-35,M,Oregon,1.0,0.0,0.0,0.0,0.0 +26-35,M,Pennsylvania,1.0,0.0,0.0,0.0,0.0 +26-35,M,Rhode Island,1.0,0.0,0.0,0.0,0.0 +26-35,M,South Carolina,0.659,0.0,0.0,0.341,0.0 +26-35,M,Tennessee,0.659,0.0,0.0,0.341,0.0 +26-35,M,Texas,0.659,0.0,0.0,0.341,0.0 +26-35,M,Utah,1.0,0.0,0.0,0.0,0.0 +26-35,M,Vermont,1.0,0.0,0.0,0.0,0.0 +26-35,M,Virginia,0.659,0.0,0.0,0.341,0.0 +26-35,M,Washington,1.0,0.0,0.0,0.0,0.0 +26-35,M,West Virginia,0.659,0.0,0.0,0.341,0.0 +26-35,M,Wyoming,1.0,0.0,0.0,0.0,0.0 +36-45,F,Alabama,0.376,0.158,0.0,0.466,0.0 +36-45,F,Alaska,0.0,0.413,0.0,0.587,0.0 +36-45,F,Arizona,0.0,0.413,0.0,0.587,0.0 +36-45,F,Arkansas,0.376,0.158,0.0,0.466,0.0 +36-45,F,California,0.0,0.413,0.0,0.587,0.0 +36-45,F,Colorado,0.0,0.413,0.0,0.587,0.0 +36-45,F,Connecticut,1.0,0.0,0.0,0.0,0.0 +36-45,F,Delaware,0.376,0.158,0.0,0.466,0.0 +36-45,F,District of Columbia,0.376,0.158,0.0,0.466,0.0 +36-45,F,Florida,0.376,0.158,0.0,0.466,0.0 +36-45,F,Georgia,0.376,0.158,0.0,0.466,0.0 +36-45,F,Hawaii,0.0,0.413,0.0,0.587,0.0 +36-45,F,Idaho,0.0,0.413,0.0,0.587,0.0 +36-45,F,Illinois,0.0,0.316,0.0,0.684,0.0 +36-45,F,Indiana,0.0,0.316,0.0,0.684,0.0 +36-45,F,Iowa,0.0,0.316,0.0,0.684,0.0 +36-45,F,Kansas,0.0,0.316,0.0,0.684,0.0 +36-45,F,Kentucky,0.376,0.158,0.0,0.466,0.0 +36-45,F,Louisiana,0.376,0.158,0.0,0.466,0.0 +36-45,F,Maine,1.0,0.0,0.0,0.0,0.0 +36-45,F,Maryland,0.376,0.158,0.0,0.466,0.0 +36-45,F,Massachusetts,1.0,0.0,0.0,0.0,0.0 +36-45,F,Michigan,0.0,0.316,0.0,0.684,0.0 +36-45,F,Minnesota,0.0,0.316,0.0,0.684,0.0 +36-45,F,Mississippi,0.376,0.158,0.0,0.466,0.0 +36-45,F,Missouri,0.0,0.316,0.0,0.684,0.0 +36-45,F,Montana,0.0,0.413,0.0,0.587,0.0 +36-45,F,Nebraska,0.0,0.316,0.0,0.684,0.0 +36-45,F,Nevada,0.0,0.413,0.0,0.587,0.0 +36-45,F,New Hampshire,1.0,0.0,0.0,0.0,0.0 +36-45,F,New Jersey,1.0,0.0,0.0,0.0,0.0 +36-45,F,New Mexico,0.0,0.413,0.0,0.587,0.0 +36-45,F,New York,1.0,0.0,0.0,0.0,0.0 +36-45,F,North Carolina,0.376,0.158,0.0,0.466,0.0 +36-45,F,North Dakota,0.0,0.316,0.0,0.684,0.0 +36-45,F,Ohio,0.0,0.316,0.0,0.684,0.0 +36-45,F,Oklahoma,0.376,0.158,0.0,0.466,0.0 +36-45,F,Oregon,0.0,0.413,0.0,0.587,0.0 +36-45,F,Pennsylvania,1.0,0.0,0.0,0.0,0.0 +36-45,F,Rhode Island,1.0,0.0,0.0,0.0,0.0 +36-45,F,South Carolina,0.376,0.158,0.0,0.466,0.0 +36-45,F,South Dakota,0.0,0.316,0.0,0.684,0.0 +36-45,F,Tennessee,0.376,0.158,0.0,0.466,0.0 +36-45,F,Texas,0.376,0.158,0.0,0.466,0.0 +36-45,F,Utah,0.0,0.413,0.0,0.587,0.0 +36-45,F,Vermont,1.0,0.0,0.0,0.0,0.0 +36-45,F,Virginia,0.376,0.158,0.0,0.466,0.0 +36-45,F,Washington,0.0,0.413,0.0,0.587,0.0 +36-45,F,West Virginia,0.376,0.158,0.0,0.466,0.0 +36-45,F,Wisconsin,0.0,0.316,0.0,0.684,0.0 +36-45,F,Wyoming,0.0,0.413,0.0,0.587,0.0 +36-45,M,Alabama,0.66,0.283,0.0,0.057,0.0 +36-45,M,Alaska,0.155,0.0,0.0,0.845,0.0 +36-45,M,Arizona,0.155,0.0,0.0,0.845,0.0 +36-45,M,Arkansas,0.66,0.283,0.0,0.057,0.0 +36-45,M,California,0.155,0.0,0.0,0.845,0.0 +36-45,M,Colorado,0.155,0.0,0.0,0.845,0.0 +36-45,M,Connecticut,0.753,0.0,0.0,0.247,0.0 +36-45,M,Delaware,0.66,0.283,0.0,0.057,0.0 +36-45,M,District of Columbia,0.66,0.283,0.0,0.057,0.0 +36-45,M,Florida,0.66,0.283,0.0,0.057,0.0 +36-45,M,Georgia,0.66,0.283,0.0,0.057,0.0 +36-45,M,Hawaii,0.155,0.0,0.0,0.845,0.0 +36-45,M,Idaho,0.155,0.0,0.0,0.845,0.0 +36-45,M,Illinois,0.539,0.189,0.0,0.272,0.0 +36-45,M,Indiana,0.539,0.189,0.0,0.272,0.0 +36-45,M,Iowa,0.539,0.189,0.0,0.272,0.0 +36-45,M,Kansas,0.539,0.189,0.0,0.272,0.0 +36-45,M,Kentucky,0.66,0.283,0.0,0.057,0.0 +36-45,M,Louisiana,0.66,0.283,0.0,0.057,0.0 +36-45,M,Maine,0.753,0.0,0.0,0.247,0.0 +36-45,M,Maryland,0.66,0.283,0.0,0.057,0.0 +36-45,M,Massachusetts,0.753,0.0,0.0,0.247,0.0 +36-45,M,Michigan,0.539,0.189,0.0,0.272,0.0 +36-45,M,Minnesota,0.539,0.189,0.0,0.272,0.0 +36-45,M,Mississippi,0.66,0.283,0.0,0.057,0.0 +36-45,M,Missouri,0.539,0.189,0.0,0.272,0.0 +36-45,M,Montana,0.155,0.0,0.0,0.845,0.0 +36-45,M,Nebraska,0.539,0.189,0.0,0.272,0.0 +36-45,M,Nevada,0.155,0.0,0.0,0.845,0.0 +36-45,M,New Hampshire,0.753,0.0,0.0,0.247,0.0 +36-45,M,New Jersey,0.753,0.0,0.0,0.247,0.0 +36-45,M,New Mexico,0.155,0.0,0.0,0.845,0.0 +36-45,M,New York,0.753,0.0,0.0,0.247,0.0 +36-45,M,North Carolina,0.66,0.283,0.0,0.057,0.0 +36-45,M,North Dakota,0.539,0.189,0.0,0.272,0.0 +36-45,M,Ohio,0.539,0.189,0.0,0.272,0.0 +36-45,M,Oklahoma,0.66,0.283,0.0,0.057,0.0 +36-45,M,Oregon,0.155,0.0,0.0,0.845,0.0 +36-45,M,Pennsylvania,0.753,0.0,0.0,0.247,0.0 +36-45,M,Rhode Island,0.753,0.0,0.0,0.247,0.0 +36-45,M,South Carolina,0.66,0.283,0.0,0.057,0.0 +36-45,M,South Dakota,0.539,0.189,0.0,0.272,0.0 +36-45,M,Tennessee,0.66,0.283,0.0,0.057,0.0 +36-45,M,Texas,0.66,0.283,0.0,0.057,0.0 +36-45,M,Utah,0.155,0.0,0.0,0.845,0.0 +36-45,M,Vermont,0.753,0.0,0.0,0.247,0.0 +36-45,M,Virginia,0.66,0.283,0.0,0.057,0.0 +36-45,M,Washington,0.155,0.0,0.0,0.845,0.0 +36-45,M,West Virginia,0.66,0.283,0.0,0.057,0.0 +36-45,M,Wisconsin,0.539,0.189,0.0,0.272,0.0 +36-45,M,Wyoming,0.155,0.0,0.0,0.845,0.0 +4-7,M,Connecticut,1.0,0.0,0.0,0.0,0.0 +4-7,M,Maine,1.0,0.0,0.0,0.0,0.0 +4-7,M,Massachusetts,1.0,0.0,0.0,0.0,0.0 +4-7,M,New Hampshire,1.0,0.0,0.0,0.0,0.0 +4-7,M,New Jersey,1.0,0.0,0.0,0.0,0.0 +4-7,M,New York,1.0,0.0,0.0,0.0,0.0 +4-7,M,Pennsylvania,1.0,0.0,0.0,0.0,0.0 +4-7,M,Rhode Island,1.0,0.0,0.0,0.0,0.0 +4-7,M,Vermont,1.0,0.0,0.0,0.0,0.0 +46-65,F,Alabama,0.368,0.215,0.0,0.416,0.0 +46-65,F,Alaska,0.375,0.322,0.0,0.304,0.0 +46-65,F,Arizona,0.375,0.322,0.0,0.304,0.0 +46-65,F,Arkansas,0.368,0.215,0.0,0.416,0.0 +46-65,F,California,0.375,0.322,0.0,0.304,0.0 +46-65,F,Colorado,0.375,0.322,0.0,0.304,0.0 +46-65,F,Connecticut,0.403,0.173,0.0,0.424,0.0 +46-65,F,Delaware,0.368,0.215,0.0,0.416,0.0 +46-65,F,District of Columbia,0.368,0.215,0.0,0.416,0.0 +46-65,F,Florida,0.368,0.215,0.0,0.416,0.0 +46-65,F,Georgia,0.368,0.215,0.0,0.416,0.0 +46-65,F,Hawaii,0.375,0.322,0.0,0.304,0.0 +46-65,F,Idaho,0.375,0.322,0.0,0.304,0.0 +46-65,F,Illinois,0.356,0.137,0.0,0.507,0.0 +46-65,F,Indiana,0.356,0.137,0.0,0.507,0.0 +46-65,F,Iowa,0.356,0.137,0.0,0.507,0.0 +46-65,F,Kansas,0.356,0.137,0.0,0.507,0.0 +46-65,F,Kentucky,0.368,0.215,0.0,0.416,0.0 +46-65,F,Louisiana,0.368,0.215,0.0,0.416,0.0 +46-65,F,Maine,0.403,0.173,0.0,0.424,0.0 +46-65,F,Maryland,0.368,0.215,0.0,0.416,0.0 +46-65,F,Massachusetts,0.403,0.173,0.0,0.424,0.0 +46-65,F,Michigan,0.356,0.137,0.0,0.507,0.0 +46-65,F,Minnesota,0.356,0.137,0.0,0.507,0.0 +46-65,F,Mississippi,0.368,0.215,0.0,0.416,0.0 +46-65,F,Missouri,0.356,0.137,0.0,0.507,0.0 +46-65,F,Montana,0.375,0.322,0.0,0.304,0.0 +46-65,F,Nebraska,0.356,0.137,0.0,0.507,0.0 +46-65,F,Nevada,0.375,0.322,0.0,0.304,0.0 +46-65,F,New Hampshire,0.403,0.173,0.0,0.424,0.0 +46-65,F,New Jersey,0.403,0.173,0.0,0.424,0.0 +46-65,F,New Mexico,0.375,0.322,0.0,0.304,0.0 +46-65,F,New York,0.403,0.173,0.0,0.424,0.0 +46-65,F,North Carolina,0.368,0.215,0.0,0.416,0.0 +46-65,F,North Dakota,0.356,0.137,0.0,0.507,0.0 +46-65,F,Ohio,0.356,0.137,0.0,0.507,0.0 +46-65,F,Oklahoma,0.368,0.215,0.0,0.416,0.0 +46-65,F,Oregon,0.375,0.322,0.0,0.304,0.0 +46-65,F,Pennsylvania,0.403,0.173,0.0,0.424,0.0 +46-65,F,Rhode Island,0.403,0.173,0.0,0.424,0.0 +46-65,F,South Carolina,0.368,0.215,0.0,0.416,0.0 +46-65,F,South Dakota,0.356,0.137,0.0,0.507,0.0 +46-65,F,Tennessee,0.368,0.215,0.0,0.416,0.0 +46-65,F,Texas,0.368,0.215,0.0,0.416,0.0 +46-65,F,Utah,0.375,0.322,0.0,0.304,0.0 +46-65,F,Vermont,0.403,0.173,0.0,0.424,0.0 +46-65,F,Virginia,0.368,0.215,0.0,0.416,0.0 +46-65,F,Washington,0.375,0.322,0.0,0.304,0.0 +46-65,F,West Virginia,0.368,0.215,0.0,0.416,0.0 +46-65,F,Wisconsin,0.356,0.137,0.0,0.507,0.0 +46-65,F,Wyoming,0.375,0.322,0.0,0.304,0.0 +46-65,M,Alabama,0.444,0.256,0.0,0.294,0.006 +46-65,M,Alaska,0.316,0.26,0.0,0.424,0.0 +46-65,M,Arizona,0.316,0.26,0.0,0.424,0.0 +46-65,M,Arkansas,0.444,0.256,0.0,0.294,0.006 +46-65,M,California,0.316,0.26,0.0,0.424,0.0 +46-65,M,Colorado,0.316,0.26,0.0,0.424,0.0 +46-65,M,Connecticut,0.344,0.055,0.0,0.601,0.0 +46-65,M,Delaware,0.444,0.256,0.0,0.294,0.006 +46-65,M,District of Columbia,0.444,0.256,0.0,0.294,0.006 +46-65,M,Florida,0.444,0.256,0.0,0.294,0.006 +46-65,M,Georgia,0.444,0.256,0.0,0.294,0.006 +46-65,M,Hawaii,0.316,0.26,0.0,0.424,0.0 +46-65,M,Idaho,0.316,0.26,0.0,0.424,0.0 +46-65,M,Illinois,0.237,0.32,0.0,0.444,0.0 +46-65,M,Indiana,0.237,0.32,0.0,0.444,0.0 +46-65,M,Iowa,0.237,0.32,0.0,0.444,0.0 +46-65,M,Kansas,0.237,0.32,0.0,0.444,0.0 +46-65,M,Kentucky,0.444,0.256,0.0,0.294,0.006 +46-65,M,Louisiana,0.444,0.256,0.0,0.294,0.006 +46-65,M,Maine,0.344,0.055,0.0,0.601,0.0 +46-65,M,Maryland,0.444,0.256,0.0,0.294,0.006 +46-65,M,Massachusetts,0.344,0.055,0.0,0.601,0.0 +46-65,M,Michigan,0.237,0.32,0.0,0.444,0.0 +46-65,M,Minnesota,0.237,0.32,0.0,0.444,0.0 +46-65,M,Mississippi,0.444,0.256,0.0,0.294,0.006 +46-65,M,Missouri,0.237,0.32,0.0,0.444,0.0 +46-65,M,Montana,0.316,0.26,0.0,0.424,0.0 +46-65,M,Nebraska,0.237,0.32,0.0,0.444,0.0 +46-65,M,Nevada,0.316,0.26,0.0,0.424,0.0 +46-65,M,New Hampshire,0.344,0.055,0.0,0.601,0.0 +46-65,M,New Jersey,0.344,0.055,0.0,0.601,0.0 +46-65,M,New Mexico,0.316,0.26,0.0,0.424,0.0 +46-65,M,New York,0.344,0.055,0.0,0.601,0.0 +46-65,M,North Carolina,0.444,0.256,0.0,0.294,0.006 +46-65,M,North Dakota,0.237,0.32,0.0,0.444,0.0 +46-65,M,Ohio,0.237,0.32,0.0,0.444,0.0 +46-65,M,Oklahoma,0.444,0.256,0.0,0.294,0.006 +46-65,M,Oregon,0.316,0.26,0.0,0.424,0.0 +46-65,M,Pennsylvania,0.344,0.055,0.0,0.601,0.0 +46-65,M,Rhode Island,0.344,0.055,0.0,0.601,0.0 +46-65,M,South Carolina,0.444,0.256,0.0,0.294,0.006 +46-65,M,South Dakota,0.237,0.32,0.0,0.444,0.0 +46-65,M,Tennessee,0.444,0.256,0.0,0.294,0.006 +46-65,M,Texas,0.444,0.256,0.0,0.294,0.006 +46-65,M,Utah,0.316,0.26,0.0,0.424,0.0 +46-65,M,Vermont,0.344,0.055,0.0,0.601,0.0 +46-65,M,Virginia,0.444,0.256,0.0,0.294,0.006 +46-65,M,Washington,0.316,0.26,0.0,0.424,0.0 +46-65,M,West Virginia,0.444,0.256,0.0,0.294,0.006 +46-65,M,Wisconsin,0.237,0.32,0.0,0.444,0.0 +46-65,M,Wyoming,0.316,0.26,0.0,0.424,0.0 +65-103,F,Alabama,0.429,0.2,0.0,0.371,0.0 +65-103,F,Alaska,0.393,0.218,0.003,0.386,0.0 +65-103,F,Arizona,0.393,0.218,0.003,0.386,0.0 +65-103,F,Arkansas,0.429,0.2,0.0,0.371,0.0 +65-103,F,California,0.393,0.218,0.003,0.386,0.0 +65-103,F,Colorado,0.393,0.218,0.003,0.386,0.0 +65-103,F,Connecticut,0.401,0.164,0.0,0.435,0.0 +65-103,F,Delaware,0.429,0.2,0.0,0.371,0.0 +65-103,F,District of Columbia,0.429,0.2,0.0,0.371,0.0 +65-103,F,Florida,0.429,0.2,0.0,0.371,0.0 +65-103,F,Georgia,0.429,0.2,0.0,0.371,0.0 +65-103,F,Hawaii,0.393,0.218,0.003,0.386,0.0 +65-103,F,Idaho,0.393,0.218,0.003,0.386,0.0 +65-103,F,Illinois,0.416,0.168,0.0,0.416,0.0 +65-103,F,Indiana,0.416,0.168,0.0,0.416,0.0 +65-103,F,Iowa,0.416,0.168,0.0,0.416,0.0 +65-103,F,Kansas,0.416,0.168,0.0,0.416,0.0 +65-103,F,Kentucky,0.429,0.2,0.0,0.371,0.0 +65-103,F,Louisiana,0.429,0.2,0.0,0.371,0.0 +65-103,F,Maine,0.401,0.164,0.0,0.435,0.0 +65-103,F,Maryland,0.429,0.2,0.0,0.371,0.0 +65-103,F,Massachusetts,0.401,0.164,0.0,0.435,0.0 +65-103,F,Michigan,0.416,0.168,0.0,0.416,0.0 +65-103,F,Minnesota,0.416,0.168,0.0,0.416,0.0 +65-103,F,Mississippi,0.429,0.2,0.0,0.371,0.0 +65-103,F,Missouri,0.416,0.168,0.0,0.416,0.0 +65-103,F,Montana,0.393,0.218,0.003,0.386,0.0 +65-103,F,Nebraska,0.416,0.168,0.0,0.416,0.0 +65-103,F,Nevada,0.393,0.218,0.003,0.386,0.0 +65-103,F,New Hampshire,0.401,0.164,0.0,0.435,0.0 +65-103,F,New Jersey,0.401,0.164,0.0,0.435,0.0 +65-103,F,New Mexico,0.393,0.218,0.003,0.386,0.0 +65-103,F,New York,0.401,0.164,0.0,0.435,0.0 +65-103,F,North Carolina,0.429,0.2,0.0,0.371,0.0 +65-103,F,North Dakota,0.416,0.168,0.0,0.416,0.0 +65-103,F,Ohio,0.416,0.168,0.0,0.416,0.0 +65-103,F,Oklahoma,0.429,0.2,0.0,0.371,0.0 +65-103,F,Oregon,0.393,0.218,0.003,0.386,0.0 +65-103,F,Pennsylvania,0.401,0.164,0.0,0.435,0.0 +65-103,F,Rhode Island,0.401,0.164,0.0,0.435,0.0 +65-103,F,South Carolina,0.429,0.2,0.0,0.371,0.0 +65-103,F,South Dakota,0.416,0.168,0.0,0.416,0.0 +65-103,F,Tennessee,0.429,0.2,0.0,0.371,0.0 +65-103,F,Texas,0.429,0.2,0.0,0.371,0.0 +65-103,F,Utah,0.393,0.218,0.003,0.386,0.0 +65-103,F,Vermont,0.401,0.164,0.0,0.435,0.0 +65-103,F,Virginia,0.429,0.2,0.0,0.371,0.0 +65-103,F,Washington,0.393,0.218,0.003,0.386,0.0 +65-103,F,West Virginia,0.429,0.2,0.0,0.371,0.0 +65-103,F,Wisconsin,0.416,0.168,0.0,0.416,0.0 +65-103,F,Wyoming,0.393,0.218,0.003,0.386,0.0 +65-103,M,Alabama,0.477,0.202,0.0,0.321,0.0 +65-103,M,Alaska,0.332,0.29,0.0,0.379,0.0 +65-103,M,Arizona,0.332,0.29,0.0,0.379,0.0 +65-103,M,Arkansas,0.477,0.202,0.0,0.321,0.0 +65-103,M,California,0.332,0.29,0.0,0.379,0.0 +65-103,M,Colorado,0.332,0.29,0.0,0.379,0.0 +65-103,M,Connecticut,0.479,0.23,0.0,0.291,0.0 +65-103,M,Delaware,0.477,0.202,0.0,0.321,0.0 +65-103,M,District of Columbia,0.477,0.202,0.0,0.321,0.0 +65-103,M,Florida,0.477,0.202,0.0,0.321,0.0 +65-103,M,Georgia,0.477,0.202,0.0,0.321,0.0 +65-103,M,Hawaii,0.332,0.29,0.0,0.379,0.0 +65-103,M,Idaho,0.332,0.29,0.0,0.379,0.0 +65-103,M,Illinois,0.541,0.121,0.0,0.337,0.0 +65-103,M,Indiana,0.541,0.121,0.0,0.337,0.0 +65-103,M,Iowa,0.541,0.121,0.0,0.337,0.0 +65-103,M,Kansas,0.541,0.121,0.0,0.337,0.0 +65-103,M,Kentucky,0.477,0.202,0.0,0.321,0.0 +65-103,M,Louisiana,0.477,0.202,0.0,0.321,0.0 +65-103,M,Maine,0.479,0.23,0.0,0.291,0.0 +65-103,M,Maryland,0.477,0.202,0.0,0.321,0.0 +65-103,M,Massachusetts,0.479,0.23,0.0,0.291,0.0 +65-103,M,Michigan,0.541,0.121,0.0,0.337,0.0 +65-103,M,Minnesota,0.541,0.121,0.0,0.337,0.0 +65-103,M,Mississippi,0.477,0.202,0.0,0.321,0.0 +65-103,M,Missouri,0.541,0.121,0.0,0.337,0.0 +65-103,M,Montana,0.332,0.29,0.0,0.379,0.0 +65-103,M,Nebraska,0.541,0.121,0.0,0.337,0.0 +65-103,M,Nevada,0.332,0.29,0.0,0.379,0.0 +65-103,M,New Hampshire,0.479,0.23,0.0,0.291,0.0 +65-103,M,New Jersey,0.479,0.23,0.0,0.291,0.0 +65-103,M,New Mexico,0.332,0.29,0.0,0.379,0.0 +65-103,M,New York,0.479,0.23,0.0,0.291,0.0 +65-103,M,North Carolina,0.477,0.202,0.0,0.321,0.0 +65-103,M,North Dakota,0.541,0.121,0.0,0.337,0.0 +65-103,M,Ohio,0.541,0.121,0.0,0.337,0.0 +65-103,M,Oklahoma,0.477,0.202,0.0,0.321,0.0 +65-103,M,Oregon,0.332,0.29,0.0,0.379,0.0 +65-103,M,Pennsylvania,0.479,0.23,0.0,0.291,0.0 +65-103,M,Rhode Island,0.479,0.23,0.0,0.291,0.0 +65-103,M,South Carolina,0.477,0.202,0.0,0.321,0.0 +65-103,M,South Dakota,0.541,0.121,0.0,0.337,0.0 +65-103,M,Tennessee,0.477,0.202,0.0,0.321,0.0 +65-103,M,Texas,0.477,0.202,0.0,0.321,0.0 +65-103,M,Utah,0.332,0.29,0.0,0.379,0.0 +65-103,M,Vermont,0.479,0.23,0.0,0.291,0.0 +65-103,M,Virginia,0.477,0.202,0.0,0.321,0.0 +65-103,M,Washington,0.332,0.29,0.0,0.379,0.0 +65-103,M,West Virginia,0.477,0.202,0.0,0.321,0.0 +65-103,M,Wisconsin,0.541,0.121,0.0,0.337,0.0 +65-103,M,Wyoming,0.332,0.29,0.0,0.379,0.0 diff --git a/src/main/resources/modules/lookup_tables/ace_arb_quinapril_product_distribution.csv b/src/main/resources/modules/lookup_tables/ace_arb_quinapril_product_distribution.csv new file mode 100644 index 0000000..1f90279 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/ace_arb_quinapril_product_distribution.csv @@ -0,0 +1,138 @@ +age,gender,state,Prescribe_Quinapril_10_Mg_Oral_Tablet,Prescribe_Quinapril_20_Mg_Oral_Tablet,Prescribe_Quinapril_40_Mg_Oral_Tablet,Prescribe_Quinapril_5_Mg_Oral_Tablet +46-65,F,Alabama,0.0,0.0,0.485,0.515 +46-65,F,Arkansas,0.0,0.0,0.485,0.515 +46-65,F,Connecticut,0.0,0.0,1.0,0.0 +46-65,F,Delaware,0.0,0.0,0.485,0.515 +46-65,F,District of Columbia,0.0,0.0,0.485,0.515 +46-65,F,Florida,0.0,0.0,0.485,0.515 +46-65,F,Georgia,0.0,0.0,0.485,0.515 +46-65,F,Kentucky,0.0,0.0,0.485,0.515 +46-65,F,Louisiana,0.0,0.0,0.485,0.515 +46-65,F,Maine,0.0,0.0,1.0,0.0 +46-65,F,Maryland,0.0,0.0,0.485,0.515 +46-65,F,Massachusetts,0.0,0.0,1.0,0.0 +46-65,F,Mississippi,0.0,0.0,0.485,0.515 +46-65,F,New Hampshire,0.0,0.0,1.0,0.0 +46-65,F,New Jersey,0.0,0.0,1.0,0.0 +46-65,F,New York,0.0,0.0,1.0,0.0 +46-65,F,North Carolina,0.0,0.0,0.485,0.515 +46-65,F,Oklahoma,0.0,0.0,0.485,0.515 +46-65,F,Pennsylvania,0.0,0.0,1.0,0.0 +46-65,F,Rhode Island,0.0,0.0,1.0,0.0 +46-65,F,South Carolina,0.0,0.0,0.485,0.515 +46-65,F,Tennessee,0.0,0.0,0.485,0.515 +46-65,F,Texas,0.0,0.0,0.485,0.515 +46-65,F,Vermont,0.0,0.0,1.0,0.0 +46-65,F,Virginia,0.0,0.0,0.485,0.515 +46-65,F,West Virginia,0.0,0.0,0.485,0.515 +46-65,M,Alaska,0.0,0.0,1.0,0.0 +46-65,M,Arizona,0.0,0.0,1.0,0.0 +46-65,M,California,0.0,0.0,1.0,0.0 +46-65,M,Colorado,0.0,0.0,1.0,0.0 +46-65,M,Connecticut,0.0,0.146,0.854,0.0 +46-65,M,Hawaii,0.0,0.0,1.0,0.0 +46-65,M,Idaho,0.0,0.0,1.0,0.0 +46-65,M,Maine,0.0,0.146,0.854,0.0 +46-65,M,Massachusetts,0.0,0.146,0.854,0.0 +46-65,M,Montana,0.0,0.0,1.0,0.0 +46-65,M,Nevada,0.0,0.0,1.0,0.0 +46-65,M,New Hampshire,0.0,0.146,0.854,0.0 +46-65,M,New Jersey,0.0,0.146,0.854,0.0 +46-65,M,New Mexico,0.0,0.0,1.0,0.0 +46-65,M,New York,0.0,0.146,0.854,0.0 +46-65,M,Oregon,0.0,0.0,1.0,0.0 +46-65,M,Pennsylvania,0.0,0.146,0.854,0.0 +46-65,M,Rhode Island,0.0,0.146,0.854,0.0 +46-65,M,Utah,0.0,0.0,1.0,0.0 +46-65,M,Vermont,0.0,0.146,0.854,0.0 +46-65,M,Washington,0.0,0.0,1.0,0.0 +46-65,M,Wyoming,0.0,0.0,1.0,0.0 +65-103,F,Alabama,0.0,0.456,0.544,0.0 +65-103,F,Alaska,0.0,1.0,0.0,0.0 +65-103,F,Arizona,0.0,1.0,0.0,0.0 +65-103,F,Arkansas,0.0,0.456,0.544,0.0 +65-103,F,California,0.0,1.0,0.0,0.0 +65-103,F,Colorado,0.0,1.0,0.0,0.0 +65-103,F,Connecticut,0.0,0.549,0.451,0.0 +65-103,F,Delaware,0.0,0.456,0.544,0.0 +65-103,F,District of Columbia,0.0,0.456,0.544,0.0 +65-103,F,Florida,0.0,0.456,0.544,0.0 +65-103,F,Georgia,0.0,0.456,0.544,0.0 +65-103,F,Hawaii,0.0,1.0,0.0,0.0 +65-103,F,Idaho,0.0,1.0,0.0,0.0 +65-103,F,Illinois,1.0,0.0,0.0,0.0 +65-103,F,Indiana,1.0,0.0,0.0,0.0 +65-103,F,Iowa,1.0,0.0,0.0,0.0 +65-103,F,Kansas,1.0,0.0,0.0,0.0 +65-103,F,Kentucky,0.0,0.456,0.544,0.0 +65-103,F,Louisiana,0.0,0.456,0.544,0.0 +65-103,F,Maine,0.0,0.549,0.451,0.0 +65-103,F,Maryland,0.0,0.456,0.544,0.0 +65-103,F,Massachusetts,0.0,0.549,0.451,0.0 +65-103,F,Michigan,1.0,0.0,0.0,0.0 +65-103,F,Minnesota,1.0,0.0,0.0,0.0 +65-103,F,Mississippi,0.0,0.456,0.544,0.0 +65-103,F,Missouri,1.0,0.0,0.0,0.0 +65-103,F,Montana,0.0,1.0,0.0,0.0 +65-103,F,Nebraska,1.0,0.0,0.0,0.0 +65-103,F,Nevada,0.0,1.0,0.0,0.0 +65-103,F,New Hampshire,0.0,0.549,0.451,0.0 +65-103,F,New Jersey,0.0,0.549,0.451,0.0 +65-103,F,New Mexico,0.0,1.0,0.0,0.0 +65-103,F,New York,0.0,0.549,0.451,0.0 +65-103,F,North Carolina,0.0,0.456,0.544,0.0 +65-103,F,North Dakota,1.0,0.0,0.0,0.0 +65-103,F,Ohio,1.0,0.0,0.0,0.0 +65-103,F,Oklahoma,0.0,0.456,0.544,0.0 +65-103,F,Oregon,0.0,1.0,0.0,0.0 +65-103,F,Pennsylvania,0.0,0.549,0.451,0.0 +65-103,F,Rhode Island,0.0,0.549,0.451,0.0 +65-103,F,South Carolina,0.0,0.456,0.544,0.0 +65-103,F,South Dakota,1.0,0.0,0.0,0.0 +65-103,F,Tennessee,0.0,0.456,0.544,0.0 +65-103,F,Texas,0.0,0.456,0.544,0.0 +65-103,F,Utah,0.0,1.0,0.0,0.0 +65-103,F,Vermont,0.0,0.549,0.451,0.0 +65-103,F,Virginia,0.0,0.456,0.544,0.0 +65-103,F,Washington,0.0,1.0,0.0,0.0 +65-103,F,West Virginia,0.0,0.456,0.544,0.0 +65-103,F,Wisconsin,1.0,0.0,0.0,0.0 +65-103,F,Wyoming,0.0,1.0,0.0,0.0 +65-103,M,Alabama,0.165,0.0,0.835,0.0 +65-103,M,Arkansas,0.165,0.0,0.835,0.0 +65-103,M,Connecticut,0.217,0.23,0.553,0.0 +65-103,M,Delaware,0.165,0.0,0.835,0.0 +65-103,M,District of Columbia,0.165,0.0,0.835,0.0 +65-103,M,Florida,0.165,0.0,0.835,0.0 +65-103,M,Georgia,0.165,0.0,0.835,0.0 +65-103,M,Illinois,1.0,0.0,0.0,0.0 +65-103,M,Indiana,1.0,0.0,0.0,0.0 +65-103,M,Iowa,1.0,0.0,0.0,0.0 +65-103,M,Kansas,1.0,0.0,0.0,0.0 +65-103,M,Kentucky,0.165,0.0,0.835,0.0 +65-103,M,Louisiana,0.165,0.0,0.835,0.0 +65-103,M,Maine,0.217,0.23,0.553,0.0 +65-103,M,Maryland,0.165,0.0,0.835,0.0 +65-103,M,Massachusetts,0.217,0.23,0.553,0.0 +65-103,M,Michigan,1.0,0.0,0.0,0.0 +65-103,M,Minnesota,1.0,0.0,0.0,0.0 +65-103,M,Mississippi,0.165,0.0,0.835,0.0 +65-103,M,Missouri,1.0,0.0,0.0,0.0 +65-103,M,Nebraska,1.0,0.0,0.0,0.0 +65-103,M,New Hampshire,0.217,0.23,0.553,0.0 +65-103,M,New Jersey,0.217,0.23,0.553,0.0 +65-103,M,New York,0.217,0.23,0.553,0.0 +65-103,M,North Carolina,0.165,0.0,0.835,0.0 +65-103,M,North Dakota,1.0,0.0,0.0,0.0 +65-103,M,Ohio,1.0,0.0,0.0,0.0 +65-103,M,Oklahoma,0.165,0.0,0.835,0.0 +65-103,M,Pennsylvania,0.217,0.23,0.553,0.0 +65-103,M,Rhode Island,0.217,0.23,0.553,0.0 +65-103,M,South Carolina,0.165,0.0,0.835,0.0 +65-103,M,South Dakota,1.0,0.0,0.0,0.0 +65-103,M,Tennessee,0.165,0.0,0.835,0.0 +65-103,M,Texas,0.165,0.0,0.835,0.0 +65-103,M,Vermont,0.217,0.23,0.553,0.0 +65-103,M,Virginia,0.165,0.0,0.835,0.0 +65-103,M,West Virginia,0.165,0.0,0.835,0.0 +65-103,M,Wisconsin,1.0,0.0,0.0,0.0 diff --git a/src/main/resources/modules/lookup_tables/ace_arb_ramipril_product_distribution.csv b/src/main/resources/modules/lookup_tables/ace_arb_ramipril_product_distribution.csv new file mode 100644 index 0000000..eb7033b --- /dev/null +++ b/src/main/resources/modules/lookup_tables/ace_arb_ramipril_product_distribution.csv @@ -0,0 +1,223 @@ +age,gender,state,Prescribe_Ramipril_10_Mg_Oral_Capsule,Prescribe_Ramipril_1_25_Mg_Oral_Capsule,Prescribe_Ramipril_2_5_Mg_Oral_Capsule,Prescribe_Ramipril_5_Mg_Oral_Capsule +36-45,F,Alabama,0.0,0.0,0.0,1.0 +36-45,F,Arkansas,0.0,0.0,0.0,1.0 +36-45,F,Delaware,0.0,0.0,0.0,1.0 +36-45,F,District of Columbia,0.0,0.0,0.0,1.0 +36-45,F,Florida,0.0,0.0,0.0,1.0 +36-45,F,Georgia,0.0,0.0,0.0,1.0 +36-45,F,Kentucky,0.0,0.0,0.0,1.0 +36-45,F,Louisiana,0.0,0.0,0.0,1.0 +36-45,F,Maryland,0.0,0.0,0.0,1.0 +36-45,F,Mississippi,0.0,0.0,0.0,1.0 +36-45,F,North Carolina,0.0,0.0,0.0,1.0 +36-45,F,Oklahoma,0.0,0.0,0.0,1.0 +36-45,F,South Carolina,0.0,0.0,0.0,1.0 +36-45,F,Tennessee,0.0,0.0,0.0,1.0 +36-45,F,Texas,0.0,0.0,0.0,1.0 +36-45,F,Virginia,0.0,0.0,0.0,1.0 +36-45,F,West Virginia,0.0,0.0,0.0,1.0 +36-45,M,Alabama,1.0,0.0,0.0,0.0 +36-45,M,Arkansas,1.0,0.0,0.0,0.0 +36-45,M,Connecticut,1.0,0.0,0.0,0.0 +36-45,M,Delaware,1.0,0.0,0.0,0.0 +36-45,M,District of Columbia,1.0,0.0,0.0,0.0 +36-45,M,Florida,1.0,0.0,0.0,0.0 +36-45,M,Georgia,1.0,0.0,0.0,0.0 +36-45,M,Kentucky,1.0,0.0,0.0,0.0 +36-45,M,Louisiana,1.0,0.0,0.0,0.0 +36-45,M,Maine,1.0,0.0,0.0,0.0 +36-45,M,Maryland,1.0,0.0,0.0,0.0 +36-45,M,Massachusetts,1.0,0.0,0.0,0.0 +36-45,M,Mississippi,1.0,0.0,0.0,0.0 +36-45,M,New Hampshire,1.0,0.0,0.0,0.0 +36-45,M,New Jersey,1.0,0.0,0.0,0.0 +36-45,M,New York,1.0,0.0,0.0,0.0 +36-45,M,North Carolina,1.0,0.0,0.0,0.0 +36-45,M,Oklahoma,1.0,0.0,0.0,0.0 +36-45,M,Pennsylvania,1.0,0.0,0.0,0.0 +36-45,M,Rhode Island,1.0,0.0,0.0,0.0 +36-45,M,South Carolina,1.0,0.0,0.0,0.0 +36-45,M,Tennessee,1.0,0.0,0.0,0.0 +36-45,M,Texas,1.0,0.0,0.0,0.0 +36-45,M,Vermont,1.0,0.0,0.0,0.0 +36-45,M,Virginia,1.0,0.0,0.0,0.0 +36-45,M,West Virginia,1.0,0.0,0.0,0.0 +46-65,F,Alabama,0.448,0.0,0.275,0.276 +46-65,F,Alaska,0.0,0.0,0.0,1.0 +46-65,F,Arizona,0.0,0.0,0.0,1.0 +46-65,F,Arkansas,0.448,0.0,0.275,0.276 +46-65,F,California,0.0,0.0,0.0,1.0 +46-65,F,Colorado,0.0,0.0,0.0,1.0 +46-65,F,Connecticut,0.74,0.0,0.26,0.0 +46-65,F,Delaware,0.448,0.0,0.275,0.276 +46-65,F,District of Columbia,0.448,0.0,0.275,0.276 +46-65,F,Florida,0.448,0.0,0.275,0.276 +46-65,F,Georgia,0.448,0.0,0.275,0.276 +46-65,F,Hawaii,0.0,0.0,0.0,1.0 +46-65,F,Idaho,0.0,0.0,0.0,1.0 +46-65,F,Illinois,0.844,0.0,0.156,0.0 +46-65,F,Indiana,0.844,0.0,0.156,0.0 +46-65,F,Iowa,0.844,0.0,0.156,0.0 +46-65,F,Kansas,0.844,0.0,0.156,0.0 +46-65,F,Kentucky,0.448,0.0,0.275,0.276 +46-65,F,Louisiana,0.448,0.0,0.275,0.276 +46-65,F,Maine,0.74,0.0,0.26,0.0 +46-65,F,Maryland,0.448,0.0,0.275,0.276 +46-65,F,Massachusetts,0.74,0.0,0.26,0.0 +46-65,F,Michigan,0.844,0.0,0.156,0.0 +46-65,F,Minnesota,0.844,0.0,0.156,0.0 +46-65,F,Mississippi,0.448,0.0,0.275,0.276 +46-65,F,Missouri,0.844,0.0,0.156,0.0 +46-65,F,Montana,0.0,0.0,0.0,1.0 +46-65,F,Nebraska,0.844,0.0,0.156,0.0 +46-65,F,Nevada,0.0,0.0,0.0,1.0 +46-65,F,New Hampshire,0.74,0.0,0.26,0.0 +46-65,F,New Jersey,0.74,0.0,0.26,0.0 +46-65,F,New Mexico,0.0,0.0,0.0,1.0 +46-65,F,New York,0.74,0.0,0.26,0.0 +46-65,F,North Carolina,0.448,0.0,0.275,0.276 +46-65,F,North Dakota,0.844,0.0,0.156,0.0 +46-65,F,Ohio,0.844,0.0,0.156,0.0 +46-65,F,Oklahoma,0.448,0.0,0.275,0.276 +46-65,F,Oregon,0.0,0.0,0.0,1.0 +46-65,F,Pennsylvania,0.74,0.0,0.26,0.0 +46-65,F,Rhode Island,0.74,0.0,0.26,0.0 +46-65,F,South Carolina,0.448,0.0,0.275,0.276 +46-65,F,South Dakota,0.844,0.0,0.156,0.0 +46-65,F,Tennessee,0.448,0.0,0.275,0.276 +46-65,F,Texas,0.448,0.0,0.275,0.276 +46-65,F,Utah,0.0,0.0,0.0,1.0 +46-65,F,Vermont,0.74,0.0,0.26,0.0 +46-65,F,Virginia,0.448,0.0,0.275,0.276 +46-65,F,Washington,0.0,0.0,0.0,1.0 +46-65,F,West Virginia,0.448,0.0,0.275,0.276 +46-65,F,Wisconsin,0.844,0.0,0.156,0.0 +46-65,F,Wyoming,0.0,0.0,0.0,1.0 +46-65,M,Alabama,0.423,0.161,0.128,0.288 +46-65,M,Arkansas,0.423,0.161,0.128,0.288 +46-65,M,Connecticut,0.279,0.275,0.447,0.0 +46-65,M,Delaware,0.423,0.161,0.128,0.288 +46-65,M,District of Columbia,0.423,0.161,0.128,0.288 +46-65,M,Florida,0.423,0.161,0.128,0.288 +46-65,M,Georgia,0.423,0.161,0.128,0.288 +46-65,M,Illinois,0.5,0.0,0.5,0.0 +46-65,M,Indiana,0.5,0.0,0.5,0.0 +46-65,M,Iowa,0.5,0.0,0.5,0.0 +46-65,M,Kansas,0.5,0.0,0.5,0.0 +46-65,M,Kentucky,0.423,0.161,0.128,0.288 +46-65,M,Louisiana,0.423,0.161,0.128,0.288 +46-65,M,Maine,0.279,0.275,0.447,0.0 +46-65,M,Maryland,0.423,0.161,0.128,0.288 +46-65,M,Massachusetts,0.279,0.275,0.447,0.0 +46-65,M,Michigan,0.5,0.0,0.5,0.0 +46-65,M,Minnesota,0.5,0.0,0.5,0.0 +46-65,M,Mississippi,0.423,0.161,0.128,0.288 +46-65,M,Missouri,0.5,0.0,0.5,0.0 +46-65,M,Nebraska,0.5,0.0,0.5,0.0 +46-65,M,New Hampshire,0.279,0.275,0.447,0.0 +46-65,M,New Jersey,0.279,0.275,0.447,0.0 +46-65,M,New York,0.279,0.275,0.447,0.0 +46-65,M,North Carolina,0.423,0.161,0.128,0.288 +46-65,M,North Dakota,0.5,0.0,0.5,0.0 +46-65,M,Ohio,0.5,0.0,0.5,0.0 +46-65,M,Oklahoma,0.423,0.161,0.128,0.288 +46-65,M,Pennsylvania,0.279,0.275,0.447,0.0 +46-65,M,Rhode Island,0.279,0.275,0.447,0.0 +46-65,M,South Carolina,0.423,0.161,0.128,0.288 +46-65,M,South Dakota,0.5,0.0,0.5,0.0 +46-65,M,Tennessee,0.423,0.161,0.128,0.288 +46-65,M,Texas,0.423,0.161,0.128,0.288 +46-65,M,Vermont,0.279,0.275,0.447,0.0 +46-65,M,Virginia,0.423,0.161,0.128,0.288 +46-65,M,West Virginia,0.423,0.161,0.128,0.288 +46-65,M,Wisconsin,0.5,0.0,0.5,0.0 +65-103,F,Alabama,0.927,0.0,0.0,0.073 +65-103,F,Alaska,0.876,0.0,0.0,0.124 +65-103,F,Arizona,0.876,0.0,0.0,0.124 +65-103,F,Arkansas,0.927,0.0,0.0,0.073 +65-103,F,California,0.876,0.0,0.0,0.124 +65-103,F,Colorado,0.876,0.0,0.0,0.124 +65-103,F,Connecticut,0.378,0.0,0.34,0.282 +65-103,F,Delaware,0.927,0.0,0.0,0.073 +65-103,F,District of Columbia,0.927,0.0,0.0,0.073 +65-103,F,Florida,0.927,0.0,0.0,0.073 +65-103,F,Georgia,0.927,0.0,0.0,0.073 +65-103,F,Hawaii,0.876,0.0,0.0,0.124 +65-103,F,Idaho,0.876,0.0,0.0,0.124 +65-103,F,Kentucky,0.927,0.0,0.0,0.073 +65-103,F,Louisiana,0.927,0.0,0.0,0.073 +65-103,F,Maine,0.378,0.0,0.34,0.282 +65-103,F,Maryland,0.927,0.0,0.0,0.073 +65-103,F,Massachusetts,0.378,0.0,0.34,0.282 +65-103,F,Mississippi,0.927,0.0,0.0,0.073 +65-103,F,Montana,0.876,0.0,0.0,0.124 +65-103,F,Nevada,0.876,0.0,0.0,0.124 +65-103,F,New Hampshire,0.378,0.0,0.34,0.282 +65-103,F,New Jersey,0.378,0.0,0.34,0.282 +65-103,F,New Mexico,0.876,0.0,0.0,0.124 +65-103,F,New York,0.378,0.0,0.34,0.282 +65-103,F,North Carolina,0.927,0.0,0.0,0.073 +65-103,F,Oklahoma,0.927,0.0,0.0,0.073 +65-103,F,Oregon,0.876,0.0,0.0,0.124 +65-103,F,Pennsylvania,0.378,0.0,0.34,0.282 +65-103,F,Rhode Island,0.378,0.0,0.34,0.282 +65-103,F,South Carolina,0.927,0.0,0.0,0.073 +65-103,F,Tennessee,0.927,0.0,0.0,0.073 +65-103,F,Texas,0.927,0.0,0.0,0.073 +65-103,F,Utah,0.876,0.0,0.0,0.124 +65-103,F,Vermont,0.378,0.0,0.34,0.282 +65-103,F,Virginia,0.927,0.0,0.0,0.073 +65-103,F,Washington,0.876,0.0,0.0,0.124 +65-103,F,West Virginia,0.927,0.0,0.0,0.073 +65-103,F,Wyoming,0.876,0.0,0.0,0.124 +65-103,M,Alabama,0.327,0.0,0.113,0.559 +65-103,M,Alaska,0.596,0.0,0.091,0.313 +65-103,M,Arizona,0.596,0.0,0.091,0.313 +65-103,M,Arkansas,0.327,0.0,0.113,0.559 +65-103,M,California,0.596,0.0,0.091,0.313 +65-103,M,Colorado,0.596,0.0,0.091,0.313 +65-103,M,Connecticut,0.356,0.0,0.442,0.202 +65-103,M,Delaware,0.327,0.0,0.113,0.559 +65-103,M,District of Columbia,0.327,0.0,0.113,0.559 +65-103,M,Florida,0.327,0.0,0.113,0.559 +65-103,M,Georgia,0.327,0.0,0.113,0.559 +65-103,M,Hawaii,0.596,0.0,0.091,0.313 +65-103,M,Idaho,0.596,0.0,0.091,0.313 +65-103,M,Illinois,0.0,0.0,0.0,1.0 +65-103,M,Indiana,0.0,0.0,0.0,1.0 +65-103,M,Iowa,0.0,0.0,0.0,1.0 +65-103,M,Kansas,0.0,0.0,0.0,1.0 +65-103,M,Kentucky,0.327,0.0,0.113,0.559 +65-103,M,Louisiana,0.327,0.0,0.113,0.559 +65-103,M,Maine,0.356,0.0,0.442,0.202 +65-103,M,Maryland,0.327,0.0,0.113,0.559 +65-103,M,Massachusetts,0.356,0.0,0.442,0.202 +65-103,M,Michigan,0.0,0.0,0.0,1.0 +65-103,M,Minnesota,0.0,0.0,0.0,1.0 +65-103,M,Mississippi,0.327,0.0,0.113,0.559 +65-103,M,Missouri,0.0,0.0,0.0,1.0 +65-103,M,Montana,0.596,0.0,0.091,0.313 +65-103,M,Nebraska,0.0,0.0,0.0,1.0 +65-103,M,Nevada,0.596,0.0,0.091,0.313 +65-103,M,New Hampshire,0.356,0.0,0.442,0.202 +65-103,M,New Jersey,0.356,0.0,0.442,0.202 +65-103,M,New Mexico,0.596,0.0,0.091,0.313 +65-103,M,New York,0.356,0.0,0.442,0.202 +65-103,M,North Carolina,0.327,0.0,0.113,0.559 +65-103,M,North Dakota,0.0,0.0,0.0,1.0 +65-103,M,Ohio,0.0,0.0,0.0,1.0 +65-103,M,Oklahoma,0.327,0.0,0.113,0.559 +65-103,M,Oregon,0.596,0.0,0.091,0.313 +65-103,M,Pennsylvania,0.356,0.0,0.442,0.202 +65-103,M,Rhode Island,0.356,0.0,0.442,0.202 +65-103,M,South Carolina,0.327,0.0,0.113,0.559 +65-103,M,South Dakota,0.0,0.0,0.0,1.0 +65-103,M,Tennessee,0.327,0.0,0.113,0.559 +65-103,M,Texas,0.327,0.0,0.113,0.559 +65-103,M,Utah,0.596,0.0,0.091,0.313 +65-103,M,Vermont,0.356,0.0,0.442,0.202 +65-103,M,Virginia,0.327,0.0,0.113,0.559 +65-103,M,Washington,0.596,0.0,0.091,0.313 +65-103,M,West Virginia,0.327,0.0,0.113,0.559 +65-103,M,Wisconsin,0.0,0.0,0.0,1.0 +65-103,M,Wyoming,0.596,0.0,0.091,0.313 diff --git a/src/main/resources/modules/lookup_tables/ace_arb_sacubitril_valsartan_product_distribution.csv b/src/main/resources/modules/lookup_tables/ace_arb_sacubitril_valsartan_product_distribution.csv new file mode 100644 index 0000000..880fe27 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/ace_arb_sacubitril_valsartan_product_distribution.csv @@ -0,0 +1,166 @@ +age,gender,state,Prescribe_Sacubitril_24_Mg_Valsartan_26_Mg_Oral_Tablet_Entresto,Prescribe_Sacubitril_49_Mg_Valsartan_51_Mg_Oral_Tablet_Entresto,Prescribe_Sacubitril_97_Mg_Valsartan_103_Mg_Oral_Tablet_Entresto +26-35,M,Alabama,0.0,0.0,1.0 +26-35,M,Alaska,0.0,0.0,1.0 +26-35,M,Arizona,0.0,0.0,1.0 +26-35,M,Arkansas,0.0,0.0,1.0 +26-35,M,California,0.0,0.0,1.0 +26-35,M,Colorado,0.0,0.0,1.0 +26-35,M,Delaware,0.0,0.0,1.0 +26-35,M,District of Columbia,0.0,0.0,1.0 +26-35,M,Florida,0.0,0.0,1.0 +26-35,M,Georgia,0.0,0.0,1.0 +26-35,M,Hawaii,0.0,0.0,1.0 +26-35,M,Idaho,0.0,0.0,1.0 +26-35,M,Kentucky,0.0,0.0,1.0 +26-35,M,Louisiana,0.0,0.0,1.0 +26-35,M,Maryland,0.0,0.0,1.0 +26-35,M,Mississippi,0.0,0.0,1.0 +26-35,M,Montana,0.0,0.0,1.0 +26-35,M,Nevada,0.0,0.0,1.0 +26-35,M,New Mexico,0.0,0.0,1.0 +26-35,M,North Carolina,0.0,0.0,1.0 +26-35,M,Oklahoma,0.0,0.0,1.0 +26-35,M,Oregon,0.0,0.0,1.0 +26-35,M,South Carolina,0.0,0.0,1.0 +26-35,M,Tennessee,0.0,0.0,1.0 +26-35,M,Texas,0.0,0.0,1.0 +26-35,M,Utah,0.0,0.0,1.0 +26-35,M,Virginia,0.0,0.0,1.0 +26-35,M,Washington,0.0,0.0,1.0 +26-35,M,West Virginia,0.0,0.0,1.0 +26-35,M,Wyoming,0.0,0.0,1.0 +36-45,M,Alabama,0.0,1.0,0.0 +36-45,M,Alaska,1.0,0.0,0.0 +36-45,M,Arizona,1.0,0.0,0.0 +36-45,M,Arkansas,0.0,1.0,0.0 +36-45,M,California,1.0,0.0,0.0 +36-45,M,Colorado,1.0,0.0,0.0 +36-45,M,Delaware,0.0,1.0,0.0 +36-45,M,District of Columbia,0.0,1.0,0.0 +36-45,M,Florida,0.0,1.0,0.0 +36-45,M,Georgia,0.0,1.0,0.0 +36-45,M,Hawaii,1.0,0.0,0.0 +36-45,M,Idaho,1.0,0.0,0.0 +36-45,M,Kentucky,0.0,1.0,0.0 +36-45,M,Louisiana,0.0,1.0,0.0 +36-45,M,Maryland,0.0,1.0,0.0 +36-45,M,Mississippi,0.0,1.0,0.0 +36-45,M,Montana,1.0,0.0,0.0 +36-45,M,Nevada,1.0,0.0,0.0 +36-45,M,New Mexico,1.0,0.0,0.0 +36-45,M,North Carolina,0.0,1.0,0.0 +36-45,M,Oklahoma,0.0,1.0,0.0 +36-45,M,Oregon,1.0,0.0,0.0 +36-45,M,South Carolina,0.0,1.0,0.0 +36-45,M,Tennessee,0.0,1.0,0.0 +36-45,M,Texas,0.0,1.0,0.0 +36-45,M,Utah,1.0,0.0,0.0 +36-45,M,Virginia,0.0,1.0,0.0 +36-45,M,Washington,1.0,0.0,0.0 +36-45,M,West Virginia,0.0,1.0,0.0 +36-45,M,Wyoming,1.0,0.0,0.0 +46-65,F,Connecticut,1.0,0.0,0.0 +46-65,F,Illinois,1.0,0.0,0.0 +46-65,F,Indiana,1.0,0.0,0.0 +46-65,F,Iowa,1.0,0.0,0.0 +46-65,F,Kansas,1.0,0.0,0.0 +46-65,F,Maine,1.0,0.0,0.0 +46-65,F,Massachusetts,1.0,0.0,0.0 +46-65,F,Michigan,1.0,0.0,0.0 +46-65,F,Minnesota,1.0,0.0,0.0 +46-65,F,Missouri,1.0,0.0,0.0 +46-65,F,Nebraska,1.0,0.0,0.0 +46-65,F,New Hampshire,1.0,0.0,0.0 +46-65,F,New Jersey,1.0,0.0,0.0 +46-65,F,New York,1.0,0.0,0.0 +46-65,F,North Dakota,1.0,0.0,0.0 +46-65,F,Ohio,1.0,0.0,0.0 +46-65,F,Pennsylvania,1.0,0.0,0.0 +46-65,F,Rhode Island,1.0,0.0,0.0 +46-65,F,South Dakota,1.0,0.0,0.0 +46-65,F,Vermont,1.0,0.0,0.0 +46-65,F,Wisconsin,1.0,0.0,0.0 +46-65,M,Alabama,0.219,0.781,0.0 +46-65,M,Arkansas,0.219,0.781,0.0 +46-65,M,Delaware,0.219,0.781,0.0 +46-65,M,District of Columbia,0.219,0.781,0.0 +46-65,M,Florida,0.219,0.781,0.0 +46-65,M,Georgia,0.219,0.781,0.0 +46-65,M,Kentucky,0.219,0.781,0.0 +46-65,M,Louisiana,0.219,0.781,0.0 +46-65,M,Maryland,0.219,0.781,0.0 +46-65,M,Mississippi,0.219,0.781,0.0 +46-65,M,North Carolina,0.219,0.781,0.0 +46-65,M,Oklahoma,0.219,0.781,0.0 +46-65,M,South Carolina,0.219,0.781,0.0 +46-65,M,Tennessee,0.219,0.781,0.0 +46-65,M,Texas,0.219,0.781,0.0 +46-65,M,Virginia,0.219,0.781,0.0 +46-65,M,West Virginia,0.219,0.781,0.0 +65-103,F,Alaska,0.0,0.0,1.0 +65-103,F,Arizona,0.0,0.0,1.0 +65-103,F,California,0.0,0.0,1.0 +65-103,F,Colorado,0.0,0.0,1.0 +65-103,F,Hawaii,0.0,0.0,1.0 +65-103,F,Idaho,0.0,0.0,1.0 +65-103,F,Illinois,0.663,0.0,0.337 +65-103,F,Indiana,0.663,0.0,0.337 +65-103,F,Iowa,0.663,0.0,0.337 +65-103,F,Kansas,0.663,0.0,0.337 +65-103,F,Michigan,0.663,0.0,0.337 +65-103,F,Minnesota,0.663,0.0,0.337 +65-103,F,Missouri,0.663,0.0,0.337 +65-103,F,Montana,0.0,0.0,1.0 +65-103,F,Nebraska,0.663,0.0,0.337 +65-103,F,Nevada,0.0,0.0,1.0 +65-103,F,New Mexico,0.0,0.0,1.0 +65-103,F,North Dakota,0.663,0.0,0.337 +65-103,F,Ohio,0.663,0.0,0.337 +65-103,F,Oregon,0.0,0.0,1.0 +65-103,F,South Dakota,0.663,0.0,0.337 +65-103,F,Utah,0.0,0.0,1.0 +65-103,F,Washington,0.0,0.0,1.0 +65-103,F,Wisconsin,0.663,0.0,0.337 +65-103,F,Wyoming,0.0,0.0,1.0 +65-103,M,Alabama,0.501,0.234,0.265 +65-103,M,Alaska,0.0,1.0,0.0 +65-103,M,Arizona,0.0,1.0,0.0 +65-103,M,Arkansas,0.501,0.234,0.265 +65-103,M,California,0.0,1.0,0.0 +65-103,M,Colorado,0.0,1.0,0.0 +65-103,M,Delaware,0.501,0.234,0.265 +65-103,M,District of Columbia,0.501,0.234,0.265 +65-103,M,Florida,0.501,0.234,0.265 +65-103,M,Georgia,0.501,0.234,0.265 +65-103,M,Hawaii,0.0,1.0,0.0 +65-103,M,Idaho,0.0,1.0,0.0 +65-103,M,Illinois,0.658,0.0,0.342 +65-103,M,Indiana,0.658,0.0,0.342 +65-103,M,Iowa,0.658,0.0,0.342 +65-103,M,Kansas,0.658,0.0,0.342 +65-103,M,Kentucky,0.501,0.234,0.265 +65-103,M,Louisiana,0.501,0.234,0.265 +65-103,M,Maryland,0.501,0.234,0.265 +65-103,M,Michigan,0.658,0.0,0.342 +65-103,M,Minnesota,0.658,0.0,0.342 +65-103,M,Mississippi,0.501,0.234,0.265 +65-103,M,Missouri,0.658,0.0,0.342 +65-103,M,Montana,0.0,1.0,0.0 +65-103,M,Nebraska,0.658,0.0,0.342 +65-103,M,Nevada,0.0,1.0,0.0 +65-103,M,New Mexico,0.0,1.0,0.0 +65-103,M,North Carolina,0.501,0.234,0.265 +65-103,M,North Dakota,0.658,0.0,0.342 +65-103,M,Ohio,0.658,0.0,0.342 +65-103,M,Oklahoma,0.501,0.234,0.265 +65-103,M,Oregon,0.0,1.0,0.0 +65-103,M,South Carolina,0.501,0.234,0.265 +65-103,M,South Dakota,0.658,0.0,0.342 +65-103,M,Tennessee,0.501,0.234,0.265 +65-103,M,Texas,0.501,0.234,0.265 +65-103,M,Utah,0.0,1.0,0.0 +65-103,M,Virginia,0.501,0.234,0.265 +65-103,M,Washington,0.0,1.0,0.0 +65-103,M,West Virginia,0.501,0.234,0.265 +65-103,M,Wisconsin,0.658,0.0,0.342 +65-103,M,Wyoming,0.0,1.0,0.0 diff --git a/src/main/resources/modules/lookup_tables/ace_arb_telmisartan_product_distribution.csv b/src/main/resources/modules/lookup_tables/ace_arb_telmisartan_product_distribution.csv new file mode 100644 index 0000000..e90196f --- /dev/null +++ b/src/main/resources/modules/lookup_tables/ace_arb_telmisartan_product_distribution.csv @@ -0,0 +1,195 @@ +age,gender,state,Prescribe_Telmisartan_20_Mg_Oral_Tablet,Prescribe_Telmisartan_20_Mg_Oral_Tablet_Micardis,Prescribe_Telmisartan_40_Mg_Oral_Tablet,Prescribe_Telmisartan_80_Mg_Oral_Tablet,Prescribe_Telmisartan_80_Mg_Oral_Tablet_Micardis +26-35,F,Alabama,0.0,0.0,1.0,0.0,0.0 +26-35,F,Arkansas,0.0,0.0,1.0,0.0,0.0 +26-35,F,Delaware,0.0,0.0,1.0,0.0,0.0 +26-35,F,District of Columbia,0.0,0.0,1.0,0.0,0.0 +26-35,F,Florida,0.0,0.0,1.0,0.0,0.0 +26-35,F,Georgia,0.0,0.0,1.0,0.0,0.0 +26-35,F,Kentucky,0.0,0.0,1.0,0.0,0.0 +26-35,F,Louisiana,0.0,0.0,1.0,0.0,0.0 +26-35,F,Maryland,0.0,0.0,1.0,0.0,0.0 +26-35,F,Mississippi,0.0,0.0,1.0,0.0,0.0 +26-35,F,North Carolina,0.0,0.0,1.0,0.0,0.0 +26-35,F,Oklahoma,0.0,0.0,1.0,0.0,0.0 +26-35,F,South Carolina,0.0,0.0,1.0,0.0,0.0 +26-35,F,Tennessee,0.0,0.0,1.0,0.0,0.0 +26-35,F,Texas,0.0,0.0,1.0,0.0,0.0 +26-35,F,Virginia,0.0,0.0,1.0,0.0,0.0 +26-35,F,West Virginia,0.0,0.0,1.0,0.0,0.0 +46-65,F,Alabama,0.0,0.0,0.38,0.163,0.457 +46-65,F,Alaska,0.0,0.068,0.932,0.0,0.0 +46-65,F,Arizona,0.0,0.068,0.932,0.0,0.0 +46-65,F,Arkansas,0.0,0.0,0.38,0.163,0.457 +46-65,F,California,0.0,0.068,0.932,0.0,0.0 +46-65,F,Colorado,0.0,0.068,0.932,0.0,0.0 +46-65,F,Delaware,0.0,0.0,0.38,0.163,0.457 +46-65,F,District of Columbia,0.0,0.0,0.38,0.163,0.457 +46-65,F,Florida,0.0,0.0,0.38,0.163,0.457 +46-65,F,Georgia,0.0,0.0,0.38,0.163,0.457 +46-65,F,Hawaii,0.0,0.068,0.932,0.0,0.0 +46-65,F,Idaho,0.0,0.068,0.932,0.0,0.0 +46-65,F,Illinois,1.0,0.0,0.0,0.0,0.0 +46-65,F,Indiana,1.0,0.0,0.0,0.0,0.0 +46-65,F,Iowa,1.0,0.0,0.0,0.0,0.0 +46-65,F,Kansas,1.0,0.0,0.0,0.0,0.0 +46-65,F,Kentucky,0.0,0.0,0.38,0.163,0.457 +46-65,F,Louisiana,0.0,0.0,0.38,0.163,0.457 +46-65,F,Maryland,0.0,0.0,0.38,0.163,0.457 +46-65,F,Michigan,1.0,0.0,0.0,0.0,0.0 +46-65,F,Minnesota,1.0,0.0,0.0,0.0,0.0 +46-65,F,Mississippi,0.0,0.0,0.38,0.163,0.457 +46-65,F,Missouri,1.0,0.0,0.0,0.0,0.0 +46-65,F,Montana,0.0,0.068,0.932,0.0,0.0 +46-65,F,Nebraska,1.0,0.0,0.0,0.0,0.0 +46-65,F,Nevada,0.0,0.068,0.932,0.0,0.0 +46-65,F,New Mexico,0.0,0.068,0.932,0.0,0.0 +46-65,F,North Carolina,0.0,0.0,0.38,0.163,0.457 +46-65,F,North Dakota,1.0,0.0,0.0,0.0,0.0 +46-65,F,Ohio,1.0,0.0,0.0,0.0,0.0 +46-65,F,Oklahoma,0.0,0.0,0.38,0.163,0.457 +46-65,F,Oregon,0.0,0.068,0.932,0.0,0.0 +46-65,F,South Carolina,0.0,0.0,0.38,0.163,0.457 +46-65,F,South Dakota,1.0,0.0,0.0,0.0,0.0 +46-65,F,Tennessee,0.0,0.0,0.38,0.163,0.457 +46-65,F,Texas,0.0,0.0,0.38,0.163,0.457 +46-65,F,Utah,0.0,0.068,0.932,0.0,0.0 +46-65,F,Virginia,0.0,0.0,0.38,0.163,0.457 +46-65,F,Washington,0.0,0.068,0.932,0.0,0.0 +46-65,F,West Virginia,0.0,0.0,0.38,0.163,0.457 +46-65,F,Wisconsin,1.0,0.0,0.0,0.0,0.0 +46-65,F,Wyoming,0.0,0.068,0.932,0.0,0.0 +46-65,M,Alabama,0.0,0.0,0.0,0.936,0.064 +46-65,M,Alaska,0.0,0.0,0.48,0.26,0.26 +46-65,M,Arizona,0.0,0.0,0.48,0.26,0.26 +46-65,M,Arkansas,0.0,0.0,0.0,0.936,0.064 +46-65,M,California,0.0,0.0,0.48,0.26,0.26 +46-65,M,Colorado,0.0,0.0,0.48,0.26,0.26 +46-65,M,Delaware,0.0,0.0,0.0,0.936,0.064 +46-65,M,District of Columbia,0.0,0.0,0.0,0.936,0.064 +46-65,M,Florida,0.0,0.0,0.0,0.936,0.064 +46-65,M,Georgia,0.0,0.0,0.0,0.936,0.064 +46-65,M,Hawaii,0.0,0.0,0.48,0.26,0.26 +46-65,M,Idaho,0.0,0.0,0.48,0.26,0.26 +46-65,M,Illinois,0.0,0.0,0.0,1.0,0.0 +46-65,M,Indiana,0.0,0.0,0.0,1.0,0.0 +46-65,M,Iowa,0.0,0.0,0.0,1.0,0.0 +46-65,M,Kansas,0.0,0.0,0.0,1.0,0.0 +46-65,M,Kentucky,0.0,0.0,0.0,0.936,0.064 +46-65,M,Louisiana,0.0,0.0,0.0,0.936,0.064 +46-65,M,Maryland,0.0,0.0,0.0,0.936,0.064 +46-65,M,Michigan,0.0,0.0,0.0,1.0,0.0 +46-65,M,Minnesota,0.0,0.0,0.0,1.0,0.0 +46-65,M,Mississippi,0.0,0.0,0.0,0.936,0.064 +46-65,M,Missouri,0.0,0.0,0.0,1.0,0.0 +46-65,M,Montana,0.0,0.0,0.48,0.26,0.26 +46-65,M,Nebraska,0.0,0.0,0.0,1.0,0.0 +46-65,M,Nevada,0.0,0.0,0.48,0.26,0.26 +46-65,M,New Mexico,0.0,0.0,0.48,0.26,0.26 +46-65,M,North Carolina,0.0,0.0,0.0,0.936,0.064 +46-65,M,North Dakota,0.0,0.0,0.0,1.0,0.0 +46-65,M,Ohio,0.0,0.0,0.0,1.0,0.0 +46-65,M,Oklahoma,0.0,0.0,0.0,0.936,0.064 +46-65,M,Oregon,0.0,0.0,0.48,0.26,0.26 +46-65,M,South Carolina,0.0,0.0,0.0,0.936,0.064 +46-65,M,South Dakota,0.0,0.0,0.0,1.0,0.0 +46-65,M,Tennessee,0.0,0.0,0.0,0.936,0.064 +46-65,M,Texas,0.0,0.0,0.0,0.936,0.064 +46-65,M,Utah,0.0,0.0,0.48,0.26,0.26 +46-65,M,Virginia,0.0,0.0,0.0,0.936,0.064 +46-65,M,Washington,0.0,0.0,0.48,0.26,0.26 +46-65,M,West Virginia,0.0,0.0,0.0,0.936,0.064 +46-65,M,Wisconsin,0.0,0.0,0.0,1.0,0.0 +46-65,M,Wyoming,0.0,0.0,0.48,0.26,0.26 +65-103,F,Alabama,0.0,0.0,0.255,0.745,0.0 +65-103,F,Alaska,0.0,0.0,1.0,0.0,0.0 +65-103,F,Arizona,0.0,0.0,1.0,0.0,0.0 +65-103,F,Arkansas,0.0,0.0,0.255,0.745,0.0 +65-103,F,California,0.0,0.0,1.0,0.0,0.0 +65-103,F,Colorado,0.0,0.0,1.0,0.0,0.0 +65-103,F,Delaware,0.0,0.0,0.255,0.745,0.0 +65-103,F,District of Columbia,0.0,0.0,0.255,0.745,0.0 +65-103,F,Florida,0.0,0.0,0.255,0.745,0.0 +65-103,F,Georgia,0.0,0.0,0.255,0.745,0.0 +65-103,F,Hawaii,0.0,0.0,1.0,0.0,0.0 +65-103,F,Idaho,0.0,0.0,1.0,0.0,0.0 +65-103,F,Illinois,0.0,0.0,0.0,1.0,0.0 +65-103,F,Indiana,0.0,0.0,0.0,1.0,0.0 +65-103,F,Iowa,0.0,0.0,0.0,1.0,0.0 +65-103,F,Kansas,0.0,0.0,0.0,1.0,0.0 +65-103,F,Kentucky,0.0,0.0,0.255,0.745,0.0 +65-103,F,Louisiana,0.0,0.0,0.255,0.745,0.0 +65-103,F,Maryland,0.0,0.0,0.255,0.745,0.0 +65-103,F,Michigan,0.0,0.0,0.0,1.0,0.0 +65-103,F,Minnesota,0.0,0.0,0.0,1.0,0.0 +65-103,F,Mississippi,0.0,0.0,0.255,0.745,0.0 +65-103,F,Missouri,0.0,0.0,0.0,1.0,0.0 +65-103,F,Montana,0.0,0.0,1.0,0.0,0.0 +65-103,F,Nebraska,0.0,0.0,0.0,1.0,0.0 +65-103,F,Nevada,0.0,0.0,1.0,0.0,0.0 +65-103,F,New Mexico,0.0,0.0,1.0,0.0,0.0 +65-103,F,North Carolina,0.0,0.0,0.255,0.745,0.0 +65-103,F,North Dakota,0.0,0.0,0.0,1.0,0.0 +65-103,F,Ohio,0.0,0.0,0.0,1.0,0.0 +65-103,F,Oklahoma,0.0,0.0,0.255,0.745,0.0 +65-103,F,Oregon,0.0,0.0,1.0,0.0,0.0 +65-103,F,South Carolina,0.0,0.0,0.255,0.745,0.0 +65-103,F,South Dakota,0.0,0.0,0.0,1.0,0.0 +65-103,F,Tennessee,0.0,0.0,0.255,0.745,0.0 +65-103,F,Texas,0.0,0.0,0.255,0.745,0.0 +65-103,F,Utah,0.0,0.0,1.0,0.0,0.0 +65-103,F,Virginia,0.0,0.0,0.255,0.745,0.0 +65-103,F,Washington,0.0,0.0,1.0,0.0,0.0 +65-103,F,West Virginia,0.0,0.0,0.255,0.745,0.0 +65-103,F,Wisconsin,0.0,0.0,0.0,1.0,0.0 +65-103,F,Wyoming,0.0,0.0,1.0,0.0,0.0 +65-103,M,Alabama,0.0,0.0,0.605,0.104,0.291 +65-103,M,Alaska,0.0,0.0,0.0,0.659,0.341 +65-103,M,Arizona,0.0,0.0,0.0,0.659,0.341 +65-103,M,Arkansas,0.0,0.0,0.605,0.104,0.291 +65-103,M,California,0.0,0.0,0.0,0.659,0.341 +65-103,M,Colorado,0.0,0.0,0.0,0.659,0.341 +65-103,M,Connecticut,0.0,0.0,0.0,0.5,0.5 +65-103,M,Delaware,0.0,0.0,0.605,0.104,0.291 +65-103,M,District of Columbia,0.0,0.0,0.605,0.104,0.291 +65-103,M,Florida,0.0,0.0,0.605,0.104,0.291 +65-103,M,Georgia,0.0,0.0,0.605,0.104,0.291 +65-103,M,Hawaii,0.0,0.0,0.0,0.659,0.341 +65-103,M,Idaho,0.0,0.0,0.0,0.659,0.341 +65-103,M,Illinois,0.0,0.0,0.0,0.5,0.5 +65-103,M,Indiana,0.0,0.0,0.0,0.5,0.5 +65-103,M,Iowa,0.0,0.0,0.0,0.5,0.5 +65-103,M,Kansas,0.0,0.0,0.0,0.5,0.5 +65-103,M,Kentucky,0.0,0.0,0.605,0.104,0.291 +65-103,M,Louisiana,0.0,0.0,0.605,0.104,0.291 +65-103,M,Maine,0.0,0.0,0.0,0.5,0.5 +65-103,M,Maryland,0.0,0.0,0.605,0.104,0.291 +65-103,M,Massachusetts,0.0,0.0,0.0,0.5,0.5 +65-103,M,Michigan,0.0,0.0,0.0,0.5,0.5 +65-103,M,Minnesota,0.0,0.0,0.0,0.5,0.5 +65-103,M,Mississippi,0.0,0.0,0.605,0.104,0.291 +65-103,M,Missouri,0.0,0.0,0.0,0.5,0.5 +65-103,M,Montana,0.0,0.0,0.0,0.659,0.341 +65-103,M,Nebraska,0.0,0.0,0.0,0.5,0.5 +65-103,M,Nevada,0.0,0.0,0.0,0.659,0.341 +65-103,M,New Hampshire,0.0,0.0,0.0,0.5,0.5 +65-103,M,New Jersey,0.0,0.0,0.0,0.5,0.5 +65-103,M,New Mexico,0.0,0.0,0.0,0.659,0.341 +65-103,M,New York,0.0,0.0,0.0,0.5,0.5 +65-103,M,North Carolina,0.0,0.0,0.605,0.104,0.291 +65-103,M,North Dakota,0.0,0.0,0.0,0.5,0.5 +65-103,M,Ohio,0.0,0.0,0.0,0.5,0.5 +65-103,M,Oklahoma,0.0,0.0,0.605,0.104,0.291 +65-103,M,Oregon,0.0,0.0,0.0,0.659,0.341 +65-103,M,Pennsylvania,0.0,0.0,0.0,0.5,0.5 +65-103,M,Rhode Island,0.0,0.0,0.0,0.5,0.5 +65-103,M,South Carolina,0.0,0.0,0.605,0.104,0.291 +65-103,M,South Dakota,0.0,0.0,0.0,0.5,0.5 +65-103,M,Tennessee,0.0,0.0,0.605,0.104,0.291 +65-103,M,Texas,0.0,0.0,0.605,0.104,0.291 +65-103,M,Utah,0.0,0.0,0.0,0.659,0.341 +65-103,M,Vermont,0.0,0.0,0.0,0.5,0.5 +65-103,M,Virginia,0.0,0.0,0.605,0.104,0.291 +65-103,M,Washington,0.0,0.0,0.0,0.659,0.341 +65-103,M,West Virginia,0.0,0.0,0.605,0.104,0.291 +65-103,M,Wisconsin,0.0,0.0,0.0,0.5,0.5 +65-103,M,Wyoming,0.0,0.0,0.0,0.659,0.341 diff --git a/src/main/resources/modules/lookup_tables/ace_arb_valsartan_product_distribution.csv b/src/main/resources/modules/lookup_tables/ace_arb_valsartan_product_distribution.csv new file mode 100644 index 0000000..7e7fd9e --- /dev/null +++ b/src/main/resources/modules/lookup_tables/ace_arb_valsartan_product_distribution.csv @@ -0,0 +1,320 @@ +age,gender,state,Prescribe_Valsartan_160_Mg_Oral_Tablet,Prescribe_Valsartan_320_Mg_Oral_Tablet,Prescribe_Valsartan_320_Mg_Oral_Tablet_Diovan,Prescribe_Valsartan_40_Mg_Oral_Tablet,Prescribe_Valsartan_80_Mg_Oral_Tablet +18-25,M,Connecticut,1.0,0.0,0.0,0.0,0.0 +18-25,M,Maine,1.0,0.0,0.0,0.0,0.0 +18-25,M,Massachusetts,1.0,0.0,0.0,0.0,0.0 +18-25,M,New Hampshire,1.0,0.0,0.0,0.0,0.0 +18-25,M,New Jersey,1.0,0.0,0.0,0.0,0.0 +18-25,M,New York,1.0,0.0,0.0,0.0,0.0 +18-25,M,Pennsylvania,1.0,0.0,0.0,0.0,0.0 +18-25,M,Rhode Island,1.0,0.0,0.0,0.0,0.0 +18-25,M,Vermont,1.0,0.0,0.0,0.0,0.0 +26-35,F,Alabama,0.0,0.586,0.0,0.0,0.414 +26-35,F,Arkansas,0.0,0.586,0.0,0.0,0.414 +26-35,F,Delaware,0.0,0.586,0.0,0.0,0.414 +26-35,F,District of Columbia,0.0,0.586,0.0,0.0,0.414 +26-35,F,Florida,0.0,0.586,0.0,0.0,0.414 +26-35,F,Georgia,0.0,0.586,0.0,0.0,0.414 +26-35,F,Kentucky,0.0,0.586,0.0,0.0,0.414 +26-35,F,Louisiana,0.0,0.586,0.0,0.0,0.414 +26-35,F,Maryland,0.0,0.586,0.0,0.0,0.414 +26-35,F,Mississippi,0.0,0.586,0.0,0.0,0.414 +26-35,F,North Carolina,0.0,0.586,0.0,0.0,0.414 +26-35,F,Oklahoma,0.0,0.586,0.0,0.0,0.414 +26-35,F,South Carolina,0.0,0.586,0.0,0.0,0.414 +26-35,F,Tennessee,0.0,0.586,0.0,0.0,0.414 +26-35,F,Texas,0.0,0.586,0.0,0.0,0.414 +26-35,F,Virginia,0.0,0.586,0.0,0.0,0.414 +26-35,F,West Virginia,0.0,0.586,0.0,0.0,0.414 +26-35,M,Connecticut,0.0,0.0,0.0,0.0,1.0 +26-35,M,Maine,0.0,0.0,0.0,0.0,1.0 +26-35,M,Massachusetts,0.0,0.0,0.0,0.0,1.0 +26-35,M,New Hampshire,0.0,0.0,0.0,0.0,1.0 +26-35,M,New Jersey,0.0,0.0,0.0,0.0,1.0 +26-35,M,New York,0.0,0.0,0.0,0.0,1.0 +26-35,M,Pennsylvania,0.0,0.0,0.0,0.0,1.0 +26-35,M,Rhode Island,0.0,0.0,0.0,0.0,1.0 +26-35,M,Vermont,0.0,0.0,0.0,0.0,1.0 +36-45,F,Alabama,0.0,1.0,0.0,0.0,0.0 +36-45,F,Arkansas,0.0,1.0,0.0,0.0,0.0 +36-45,F,Delaware,0.0,1.0,0.0,0.0,0.0 +36-45,F,District of Columbia,0.0,1.0,0.0,0.0,0.0 +36-45,F,Florida,0.0,1.0,0.0,0.0,0.0 +36-45,F,Georgia,0.0,1.0,0.0,0.0,0.0 +36-45,F,Illinois,0.0,0.0,0.0,0.0,1.0 +36-45,F,Indiana,0.0,0.0,0.0,0.0,1.0 +36-45,F,Iowa,0.0,0.0,0.0,0.0,1.0 +36-45,F,Kansas,0.0,0.0,0.0,0.0,1.0 +36-45,F,Kentucky,0.0,1.0,0.0,0.0,0.0 +36-45,F,Louisiana,0.0,1.0,0.0,0.0,0.0 +36-45,F,Maryland,0.0,1.0,0.0,0.0,0.0 +36-45,F,Michigan,0.0,0.0,0.0,0.0,1.0 +36-45,F,Minnesota,0.0,0.0,0.0,0.0,1.0 +36-45,F,Mississippi,0.0,1.0,0.0,0.0,0.0 +36-45,F,Missouri,0.0,0.0,0.0,0.0,1.0 +36-45,F,Nebraska,0.0,0.0,0.0,0.0,1.0 +36-45,F,North Carolina,0.0,1.0,0.0,0.0,0.0 +36-45,F,North Dakota,0.0,0.0,0.0,0.0,1.0 +36-45,F,Ohio,0.0,0.0,0.0,0.0,1.0 +36-45,F,Oklahoma,0.0,1.0,0.0,0.0,0.0 +36-45,F,South Carolina,0.0,1.0,0.0,0.0,0.0 +36-45,F,South Dakota,0.0,0.0,0.0,0.0,1.0 +36-45,F,Tennessee,0.0,1.0,0.0,0.0,0.0 +36-45,F,Texas,0.0,1.0,0.0,0.0,0.0 +36-45,F,Virginia,0.0,1.0,0.0,0.0,0.0 +36-45,F,West Virginia,0.0,1.0,0.0,0.0,0.0 +36-45,F,Wisconsin,0.0,0.0,0.0,0.0,1.0 +36-45,M,Alabama,0.166,0.166,0.0,0.0,0.667 +36-45,M,Alaska,0.0,0.0,0.0,0.0,1.0 +36-45,M,Arizona,0.0,0.0,0.0,0.0,1.0 +36-45,M,Arkansas,0.166,0.166,0.0,0.0,0.667 +36-45,M,California,0.0,0.0,0.0,0.0,1.0 +36-45,M,Colorado,0.0,0.0,0.0,0.0,1.0 +36-45,M,Connecticut,0.496,0.0,0.0,0.504,0.0 +36-45,M,Delaware,0.166,0.166,0.0,0.0,0.667 +36-45,M,District of Columbia,0.166,0.166,0.0,0.0,0.667 +36-45,M,Florida,0.166,0.166,0.0,0.0,0.667 +36-45,M,Georgia,0.166,0.166,0.0,0.0,0.667 +36-45,M,Hawaii,0.0,0.0,0.0,0.0,1.0 +36-45,M,Idaho,0.0,0.0,0.0,0.0,1.0 +36-45,M,Illinois,0.379,0.0,0.0,0.0,0.621 +36-45,M,Indiana,0.379,0.0,0.0,0.0,0.621 +36-45,M,Iowa,0.379,0.0,0.0,0.0,0.621 +36-45,M,Kansas,0.379,0.0,0.0,0.0,0.621 +36-45,M,Kentucky,0.166,0.166,0.0,0.0,0.667 +36-45,M,Louisiana,0.166,0.166,0.0,0.0,0.667 +36-45,M,Maine,0.496,0.0,0.0,0.504,0.0 +36-45,M,Maryland,0.166,0.166,0.0,0.0,0.667 +36-45,M,Massachusetts,0.496,0.0,0.0,0.504,0.0 +36-45,M,Michigan,0.379,0.0,0.0,0.0,0.621 +36-45,M,Minnesota,0.379,0.0,0.0,0.0,0.621 +36-45,M,Mississippi,0.166,0.166,0.0,0.0,0.667 +36-45,M,Missouri,0.379,0.0,0.0,0.0,0.621 +36-45,M,Montana,0.0,0.0,0.0,0.0,1.0 +36-45,M,Nebraska,0.379,0.0,0.0,0.0,0.621 +36-45,M,Nevada,0.0,0.0,0.0,0.0,1.0 +36-45,M,New Hampshire,0.496,0.0,0.0,0.504,0.0 +36-45,M,New Jersey,0.496,0.0,0.0,0.504,0.0 +36-45,M,New Mexico,0.0,0.0,0.0,0.0,1.0 +36-45,M,New York,0.496,0.0,0.0,0.504,0.0 +36-45,M,North Carolina,0.166,0.166,0.0,0.0,0.667 +36-45,M,North Dakota,0.379,0.0,0.0,0.0,0.621 +36-45,M,Ohio,0.379,0.0,0.0,0.0,0.621 +36-45,M,Oklahoma,0.166,0.166,0.0,0.0,0.667 +36-45,M,Oregon,0.0,0.0,0.0,0.0,1.0 +36-45,M,Pennsylvania,0.496,0.0,0.0,0.504,0.0 +36-45,M,Rhode Island,0.496,0.0,0.0,0.504,0.0 +36-45,M,South Carolina,0.166,0.166,0.0,0.0,0.667 +36-45,M,South Dakota,0.379,0.0,0.0,0.0,0.621 +36-45,M,Tennessee,0.166,0.166,0.0,0.0,0.667 +36-45,M,Texas,0.166,0.166,0.0,0.0,0.667 +36-45,M,Utah,0.0,0.0,0.0,0.0,1.0 +36-45,M,Vermont,0.496,0.0,0.0,0.504,0.0 +36-45,M,Virginia,0.166,0.166,0.0,0.0,0.667 +36-45,M,Washington,0.0,0.0,0.0,0.0,1.0 +36-45,M,West Virginia,0.166,0.166,0.0,0.0,0.667 +36-45,M,Wisconsin,0.379,0.0,0.0,0.0,0.621 +36-45,M,Wyoming,0.0,0.0,0.0,0.0,1.0 +46-65,F,Alabama,0.513,0.212,0.0,0.0,0.275 +46-65,F,Alaska,0.0,0.144,0.0,0.0,0.856 +46-65,F,Arizona,0.0,0.144,0.0,0.0,0.856 +46-65,F,Arkansas,0.513,0.212,0.0,0.0,0.275 +46-65,F,California,0.0,0.144,0.0,0.0,0.856 +46-65,F,Colorado,0.0,0.144,0.0,0.0,0.856 +46-65,F,Connecticut,0.593,0.184,0.0,0.128,0.095 +46-65,F,Delaware,0.513,0.212,0.0,0.0,0.275 +46-65,F,District of Columbia,0.513,0.212,0.0,0.0,0.275 +46-65,F,Florida,0.513,0.212,0.0,0.0,0.275 +46-65,F,Georgia,0.513,0.212,0.0,0.0,0.275 +46-65,F,Hawaii,0.0,0.144,0.0,0.0,0.856 +46-65,F,Idaho,0.0,0.144,0.0,0.0,0.856 +46-65,F,Illinois,0.498,0.347,0.0,0.0,0.155 +46-65,F,Indiana,0.498,0.347,0.0,0.0,0.155 +46-65,F,Iowa,0.498,0.347,0.0,0.0,0.155 +46-65,F,Kansas,0.498,0.347,0.0,0.0,0.155 +46-65,F,Kentucky,0.513,0.212,0.0,0.0,0.275 +46-65,F,Louisiana,0.513,0.212,0.0,0.0,0.275 +46-65,F,Maine,0.593,0.184,0.0,0.128,0.095 +46-65,F,Maryland,0.513,0.212,0.0,0.0,0.275 +46-65,F,Massachusetts,0.593,0.184,0.0,0.128,0.095 +46-65,F,Michigan,0.498,0.347,0.0,0.0,0.155 +46-65,F,Minnesota,0.498,0.347,0.0,0.0,0.155 +46-65,F,Mississippi,0.513,0.212,0.0,0.0,0.275 +46-65,F,Missouri,0.498,0.347,0.0,0.0,0.155 +46-65,F,Montana,0.0,0.144,0.0,0.0,0.856 +46-65,F,Nebraska,0.498,0.347,0.0,0.0,0.155 +46-65,F,Nevada,0.0,0.144,0.0,0.0,0.856 +46-65,F,New Hampshire,0.593,0.184,0.0,0.128,0.095 +46-65,F,New Jersey,0.593,0.184,0.0,0.128,0.095 +46-65,F,New Mexico,0.0,0.144,0.0,0.0,0.856 +46-65,F,New York,0.593,0.184,0.0,0.128,0.095 +46-65,F,North Carolina,0.513,0.212,0.0,0.0,0.275 +46-65,F,North Dakota,0.498,0.347,0.0,0.0,0.155 +46-65,F,Ohio,0.498,0.347,0.0,0.0,0.155 +46-65,F,Oklahoma,0.513,0.212,0.0,0.0,0.275 +46-65,F,Oregon,0.0,0.144,0.0,0.0,0.856 +46-65,F,Pennsylvania,0.593,0.184,0.0,0.128,0.095 +46-65,F,Rhode Island,0.593,0.184,0.0,0.128,0.095 +46-65,F,South Carolina,0.513,0.212,0.0,0.0,0.275 +46-65,F,South Dakota,0.498,0.347,0.0,0.0,0.155 +46-65,F,Tennessee,0.513,0.212,0.0,0.0,0.275 +46-65,F,Texas,0.513,0.212,0.0,0.0,0.275 +46-65,F,Utah,0.0,0.144,0.0,0.0,0.856 +46-65,F,Vermont,0.593,0.184,0.0,0.128,0.095 +46-65,F,Virginia,0.513,0.212,0.0,0.0,0.275 +46-65,F,Washington,0.0,0.144,0.0,0.0,0.856 +46-65,F,West Virginia,0.513,0.212,0.0,0.0,0.275 +46-65,F,Wisconsin,0.498,0.347,0.0,0.0,0.155 +46-65,F,Wyoming,0.0,0.144,0.0,0.0,0.856 +46-65,M,Alabama,0.289,0.259,0.0,0.074,0.378 +46-65,M,Alaska,1.0,0.0,0.0,0.0,0.0 +46-65,M,Arizona,1.0,0.0,0.0,0.0,0.0 +46-65,M,Arkansas,0.289,0.259,0.0,0.074,0.378 +46-65,M,California,1.0,0.0,0.0,0.0,0.0 +46-65,M,Colorado,1.0,0.0,0.0,0.0,0.0 +46-65,M,Connecticut,0.0,0.643,0.0,0.0,0.357 +46-65,M,Delaware,0.289,0.259,0.0,0.074,0.378 +46-65,M,District of Columbia,0.289,0.259,0.0,0.074,0.378 +46-65,M,Florida,0.289,0.259,0.0,0.074,0.378 +46-65,M,Georgia,0.289,0.259,0.0,0.074,0.378 +46-65,M,Hawaii,1.0,0.0,0.0,0.0,0.0 +46-65,M,Idaho,1.0,0.0,0.0,0.0,0.0 +46-65,M,Illinois,0.381,0.227,0.128,0.0,0.264 +46-65,M,Indiana,0.381,0.227,0.128,0.0,0.264 +46-65,M,Iowa,0.381,0.227,0.128,0.0,0.264 +46-65,M,Kansas,0.381,0.227,0.128,0.0,0.264 +46-65,M,Kentucky,0.289,0.259,0.0,0.074,0.378 +46-65,M,Louisiana,0.289,0.259,0.0,0.074,0.378 +46-65,M,Maine,0.0,0.643,0.0,0.0,0.357 +46-65,M,Maryland,0.289,0.259,0.0,0.074,0.378 +46-65,M,Massachusetts,0.0,0.643,0.0,0.0,0.357 +46-65,M,Michigan,0.381,0.227,0.128,0.0,0.264 +46-65,M,Minnesota,0.381,0.227,0.128,0.0,0.264 +46-65,M,Mississippi,0.289,0.259,0.0,0.074,0.378 +46-65,M,Missouri,0.381,0.227,0.128,0.0,0.264 +46-65,M,Montana,1.0,0.0,0.0,0.0,0.0 +46-65,M,Nebraska,0.381,0.227,0.128,0.0,0.264 +46-65,M,Nevada,1.0,0.0,0.0,0.0,0.0 +46-65,M,New Hampshire,0.0,0.643,0.0,0.0,0.357 +46-65,M,New Jersey,0.0,0.643,0.0,0.0,0.357 +46-65,M,New Mexico,1.0,0.0,0.0,0.0,0.0 +46-65,M,New York,0.0,0.643,0.0,0.0,0.357 +46-65,M,North Carolina,0.289,0.259,0.0,0.074,0.378 +46-65,M,North Dakota,0.381,0.227,0.128,0.0,0.264 +46-65,M,Ohio,0.381,0.227,0.128,0.0,0.264 +46-65,M,Oklahoma,0.289,0.259,0.0,0.074,0.378 +46-65,M,Oregon,1.0,0.0,0.0,0.0,0.0 +46-65,M,Pennsylvania,0.0,0.643,0.0,0.0,0.357 +46-65,M,Rhode Island,0.0,0.643,0.0,0.0,0.357 +46-65,M,South Carolina,0.289,0.259,0.0,0.074,0.378 +46-65,M,South Dakota,0.381,0.227,0.128,0.0,0.264 +46-65,M,Tennessee,0.289,0.259,0.0,0.074,0.378 +46-65,M,Texas,0.289,0.259,0.0,0.074,0.378 +46-65,M,Utah,1.0,0.0,0.0,0.0,0.0 +46-65,M,Vermont,0.0,0.643,0.0,0.0,0.357 +46-65,M,Virginia,0.289,0.259,0.0,0.074,0.378 +46-65,M,Washington,1.0,0.0,0.0,0.0,0.0 +46-65,M,West Virginia,0.289,0.259,0.0,0.074,0.378 +46-65,M,Wisconsin,0.381,0.227,0.128,0.0,0.264 +46-65,M,Wyoming,1.0,0.0,0.0,0.0,0.0 +65-103,F,Alabama,0.436,0.48,0.0,0.0,0.084 +65-103,F,Alaska,0.072,0.368,0.0,0.0,0.561 +65-103,F,Arizona,0.072,0.368,0.0,0.0,0.561 +65-103,F,Arkansas,0.436,0.48,0.0,0.0,0.084 +65-103,F,California,0.072,0.368,0.0,0.0,0.561 +65-103,F,Colorado,0.072,0.368,0.0,0.0,0.561 +65-103,F,Connecticut,0.302,0.346,0.0,0.027,0.325 +65-103,F,Delaware,0.436,0.48,0.0,0.0,0.084 +65-103,F,District of Columbia,0.436,0.48,0.0,0.0,0.084 +65-103,F,Florida,0.436,0.48,0.0,0.0,0.084 +65-103,F,Georgia,0.436,0.48,0.0,0.0,0.084 +65-103,F,Hawaii,0.072,0.368,0.0,0.0,0.561 +65-103,F,Idaho,0.072,0.368,0.0,0.0,0.561 +65-103,F,Illinois,0.278,0.181,0.038,0.066,0.437 +65-103,F,Indiana,0.278,0.181,0.038,0.066,0.437 +65-103,F,Iowa,0.278,0.181,0.038,0.066,0.437 +65-103,F,Kansas,0.278,0.181,0.038,0.066,0.437 +65-103,F,Kentucky,0.436,0.48,0.0,0.0,0.084 +65-103,F,Louisiana,0.436,0.48,0.0,0.0,0.084 +65-103,F,Maine,0.302,0.346,0.0,0.027,0.325 +65-103,F,Maryland,0.436,0.48,0.0,0.0,0.084 +65-103,F,Massachusetts,0.302,0.346,0.0,0.027,0.325 +65-103,F,Michigan,0.278,0.181,0.038,0.066,0.437 +65-103,F,Minnesota,0.278,0.181,0.038,0.066,0.437 +65-103,F,Mississippi,0.436,0.48,0.0,0.0,0.084 +65-103,F,Missouri,0.278,0.181,0.038,0.066,0.437 +65-103,F,Montana,0.072,0.368,0.0,0.0,0.561 +65-103,F,Nebraska,0.278,0.181,0.038,0.066,0.437 +65-103,F,Nevada,0.072,0.368,0.0,0.0,0.561 +65-103,F,New Hampshire,0.302,0.346,0.0,0.027,0.325 +65-103,F,New Jersey,0.302,0.346,0.0,0.027,0.325 +65-103,F,New Mexico,0.072,0.368,0.0,0.0,0.561 +65-103,F,New York,0.302,0.346,0.0,0.027,0.325 +65-103,F,North Carolina,0.436,0.48,0.0,0.0,0.084 +65-103,F,North Dakota,0.278,0.181,0.038,0.066,0.437 +65-103,F,Ohio,0.278,0.181,0.038,0.066,0.437 +65-103,F,Oklahoma,0.436,0.48,0.0,0.0,0.084 +65-103,F,Oregon,0.072,0.368,0.0,0.0,0.561 +65-103,F,Pennsylvania,0.302,0.346,0.0,0.027,0.325 +65-103,F,Rhode Island,0.302,0.346,0.0,0.027,0.325 +65-103,F,South Carolina,0.436,0.48,0.0,0.0,0.084 +65-103,F,South Dakota,0.278,0.181,0.038,0.066,0.437 +65-103,F,Tennessee,0.436,0.48,0.0,0.0,0.084 +65-103,F,Texas,0.436,0.48,0.0,0.0,0.084 +65-103,F,Utah,0.072,0.368,0.0,0.0,0.561 +65-103,F,Vermont,0.302,0.346,0.0,0.027,0.325 +65-103,F,Virginia,0.436,0.48,0.0,0.0,0.084 +65-103,F,Washington,0.072,0.368,0.0,0.0,0.561 +65-103,F,West Virginia,0.436,0.48,0.0,0.0,0.084 +65-103,F,Wisconsin,0.278,0.181,0.038,0.066,0.437 +65-103,F,Wyoming,0.072,0.368,0.0,0.0,0.561 +65-103,M,Alabama,0.41,0.429,0.0,0.0,0.161 +65-103,M,Alaska,0.237,0.338,0.0,0.0,0.425 +65-103,M,Arizona,0.237,0.338,0.0,0.0,0.425 +65-103,M,Arkansas,0.41,0.429,0.0,0.0,0.161 +65-103,M,California,0.237,0.338,0.0,0.0,0.425 +65-103,M,Colorado,0.237,0.338,0.0,0.0,0.425 +65-103,M,Connecticut,0.604,0.15,0.0,0.051,0.195 +65-103,M,Delaware,0.41,0.429,0.0,0.0,0.161 +65-103,M,District of Columbia,0.41,0.429,0.0,0.0,0.161 +65-103,M,Florida,0.41,0.429,0.0,0.0,0.161 +65-103,M,Georgia,0.41,0.429,0.0,0.0,0.161 +65-103,M,Hawaii,0.237,0.338,0.0,0.0,0.425 +65-103,M,Idaho,0.237,0.338,0.0,0.0,0.425 +65-103,M,Illinois,0.278,0.221,0.139,0.046,0.316 +65-103,M,Indiana,0.278,0.221,0.139,0.046,0.316 +65-103,M,Iowa,0.278,0.221,0.139,0.046,0.316 +65-103,M,Kansas,0.278,0.221,0.139,0.046,0.316 +65-103,M,Kentucky,0.41,0.429,0.0,0.0,0.161 +65-103,M,Louisiana,0.41,0.429,0.0,0.0,0.161 +65-103,M,Maine,0.604,0.15,0.0,0.051,0.195 +65-103,M,Maryland,0.41,0.429,0.0,0.0,0.161 +65-103,M,Massachusetts,0.604,0.15,0.0,0.051,0.195 +65-103,M,Michigan,0.278,0.221,0.139,0.046,0.316 +65-103,M,Minnesota,0.278,0.221,0.139,0.046,0.316 +65-103,M,Mississippi,0.41,0.429,0.0,0.0,0.161 +65-103,M,Missouri,0.278,0.221,0.139,0.046,0.316 +65-103,M,Montana,0.237,0.338,0.0,0.0,0.425 +65-103,M,Nebraska,0.278,0.221,0.139,0.046,0.316 +65-103,M,Nevada,0.237,0.338,0.0,0.0,0.425 +65-103,M,New Hampshire,0.604,0.15,0.0,0.051,0.195 +65-103,M,New Jersey,0.604,0.15,0.0,0.051,0.195 +65-103,M,New Mexico,0.237,0.338,0.0,0.0,0.425 +65-103,M,New York,0.604,0.15,0.0,0.051,0.195 +65-103,M,North Carolina,0.41,0.429,0.0,0.0,0.161 +65-103,M,North Dakota,0.278,0.221,0.139,0.046,0.316 +65-103,M,Ohio,0.278,0.221,0.139,0.046,0.316 +65-103,M,Oklahoma,0.41,0.429,0.0,0.0,0.161 +65-103,M,Oregon,0.237,0.338,0.0,0.0,0.425 +65-103,M,Pennsylvania,0.604,0.15,0.0,0.051,0.195 +65-103,M,Rhode Island,0.604,0.15,0.0,0.051,0.195 +65-103,M,South Carolina,0.41,0.429,0.0,0.0,0.161 +65-103,M,South Dakota,0.278,0.221,0.139,0.046,0.316 +65-103,M,Tennessee,0.41,0.429,0.0,0.0,0.161 +65-103,M,Texas,0.41,0.429,0.0,0.0,0.161 +65-103,M,Utah,0.237,0.338,0.0,0.0,0.425 +65-103,M,Vermont,0.604,0.15,0.0,0.051,0.195 +65-103,M,Virginia,0.41,0.429,0.0,0.0,0.161 +65-103,M,Washington,0.237,0.338,0.0,0.0,0.425 +65-103,M,West Virginia,0.41,0.429,0.0,0.0,0.161 +65-103,M,Wisconsin,0.278,0.221,0.139,0.046,0.316 +65-103,M,Wyoming,0.237,0.338,0.0,0.0,0.425 diff --git a/src/main/resources/modules/lookup_tables/beta_blocker_atenolol_product_distribution.csv b/src/main/resources/modules/lookup_tables/beta_blocker_atenolol_product_distribution.csv new file mode 100644 index 0000000..ed7f851 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/beta_blocker_atenolol_product_distribution.csv @@ -0,0 +1,397 @@ +age,gender,state,Prescribe_Atenolol_100_Mg_Oral_Tablet,Prescribe_Atenolol_25_Mg_Oral_Tablet,Prescribe_Atenolol_50_Mg_Oral_Tablet +12-17,M,Alabama,0.0,1.0,0.0 +12-17,M,Arkansas,0.0,1.0,0.0 +12-17,M,Delaware,0.0,1.0,0.0 +12-17,M,District of Columbia,0.0,1.0,0.0 +12-17,M,Florida,0.0,1.0,0.0 +12-17,M,Georgia,0.0,1.0,0.0 +12-17,M,Kentucky,0.0,1.0,0.0 +12-17,M,Louisiana,0.0,1.0,0.0 +12-17,M,Maryland,0.0,1.0,0.0 +12-17,M,Mississippi,0.0,1.0,0.0 +12-17,M,North Carolina,0.0,1.0,0.0 +12-17,M,Oklahoma,0.0,1.0,0.0 +12-17,M,South Carolina,0.0,1.0,0.0 +12-17,M,Tennessee,0.0,1.0,0.0 +12-17,M,Texas,0.0,1.0,0.0 +12-17,M,Virginia,0.0,1.0,0.0 +12-17,M,West Virginia,0.0,1.0,0.0 +18-25,F,Alabama,0.0,0.0,1.0 +18-25,F,Alaska,0.0,1.0,0.0 +18-25,F,Arizona,0.0,1.0,0.0 +18-25,F,Arkansas,0.0,0.0,1.0 +18-25,F,California,0.0,1.0,0.0 +18-25,F,Colorado,0.0,1.0,0.0 +18-25,F,Delaware,0.0,0.0,1.0 +18-25,F,District of Columbia,0.0,0.0,1.0 +18-25,F,Florida,0.0,0.0,1.0 +18-25,F,Georgia,0.0,0.0,1.0 +18-25,F,Hawaii,0.0,1.0,0.0 +18-25,F,Idaho,0.0,1.0,0.0 +18-25,F,Kentucky,0.0,0.0,1.0 +18-25,F,Louisiana,0.0,0.0,1.0 +18-25,F,Maryland,0.0,0.0,1.0 +18-25,F,Mississippi,0.0,0.0,1.0 +18-25,F,Montana,0.0,1.0,0.0 +18-25,F,Nevada,0.0,1.0,0.0 +18-25,F,New Mexico,0.0,1.0,0.0 +18-25,F,North Carolina,0.0,0.0,1.0 +18-25,F,Oklahoma,0.0,0.0,1.0 +18-25,F,Oregon,0.0,1.0,0.0 +18-25,F,South Carolina,0.0,0.0,1.0 +18-25,F,Tennessee,0.0,0.0,1.0 +18-25,F,Texas,0.0,0.0,1.0 +18-25,F,Utah,0.0,1.0,0.0 +18-25,F,Virginia,0.0,0.0,1.0 +18-25,F,Washington,0.0,1.0,0.0 +18-25,F,West Virginia,0.0,0.0,1.0 +18-25,F,Wyoming,0.0,1.0,0.0 +26-35,F,Alaska,0.0,1.0,0.0 +26-35,F,Arizona,0.0,1.0,0.0 +26-35,F,California,0.0,1.0,0.0 +26-35,F,Colorado,0.0,1.0,0.0 +26-35,F,Hawaii,0.0,1.0,0.0 +26-35,F,Idaho,0.0,1.0,0.0 +26-35,F,Montana,0.0,1.0,0.0 +26-35,F,Nevada,0.0,1.0,0.0 +26-35,F,New Mexico,0.0,1.0,0.0 +26-35,F,Oregon,0.0,1.0,0.0 +26-35,F,Utah,0.0,1.0,0.0 +26-35,F,Washington,0.0,1.0,0.0 +26-35,F,Wyoming,0.0,1.0,0.0 +26-35,M,Alabama,0.0,0.0,1.0 +26-35,M,Alaska,0.0,1.0,0.0 +26-35,M,Arizona,0.0,1.0,0.0 +26-35,M,Arkansas,0.0,0.0,1.0 +26-35,M,California,0.0,1.0,0.0 +26-35,M,Colorado,0.0,1.0,0.0 +26-35,M,Delaware,0.0,0.0,1.0 +26-35,M,District of Columbia,0.0,0.0,1.0 +26-35,M,Florida,0.0,0.0,1.0 +26-35,M,Georgia,0.0,0.0,1.0 +26-35,M,Hawaii,0.0,1.0,0.0 +26-35,M,Idaho,0.0,1.0,0.0 +26-35,M,Illinois,0.0,1.0,0.0 +26-35,M,Indiana,0.0,1.0,0.0 +26-35,M,Iowa,0.0,1.0,0.0 +26-35,M,Kansas,0.0,1.0,0.0 +26-35,M,Kentucky,0.0,0.0,1.0 +26-35,M,Louisiana,0.0,0.0,1.0 +26-35,M,Maryland,0.0,0.0,1.0 +26-35,M,Michigan,0.0,1.0,0.0 +26-35,M,Minnesota,0.0,1.0,0.0 +26-35,M,Mississippi,0.0,0.0,1.0 +26-35,M,Missouri,0.0,1.0,0.0 +26-35,M,Montana,0.0,1.0,0.0 +26-35,M,Nebraska,0.0,1.0,0.0 +26-35,M,Nevada,0.0,1.0,0.0 +26-35,M,New Mexico,0.0,1.0,0.0 +26-35,M,North Carolina,0.0,0.0,1.0 +26-35,M,North Dakota,0.0,1.0,0.0 +26-35,M,Ohio,0.0,1.0,0.0 +26-35,M,Oklahoma,0.0,0.0,1.0 +26-35,M,Oregon,0.0,1.0,0.0 +26-35,M,South Carolina,0.0,0.0,1.0 +26-35,M,South Dakota,0.0,1.0,0.0 +26-35,M,Tennessee,0.0,0.0,1.0 +26-35,M,Texas,0.0,0.0,1.0 +26-35,M,Utah,0.0,1.0,0.0 +26-35,M,Virginia,0.0,0.0,1.0 +26-35,M,Washington,0.0,1.0,0.0 +26-35,M,West Virginia,0.0,0.0,1.0 +26-35,M,Wisconsin,0.0,1.0,0.0 +26-35,M,Wyoming,0.0,1.0,0.0 +36-45,F,Alabama,0.0,0.515,0.485 +36-45,F,Alaska,0.0,0.25,0.75 +36-45,F,Arizona,0.0,0.25,0.75 +36-45,F,Arkansas,0.0,0.515,0.485 +36-45,F,California,0.0,0.25,0.75 +36-45,F,Colorado,0.0,0.25,0.75 +36-45,F,Connecticut,0.0,0.0,1.0 +36-45,F,Delaware,0.0,0.515,0.485 +36-45,F,District of Columbia,0.0,0.515,0.485 +36-45,F,Florida,0.0,0.515,0.485 +36-45,F,Georgia,0.0,0.515,0.485 +36-45,F,Hawaii,0.0,0.25,0.75 +36-45,F,Idaho,0.0,0.25,0.75 +36-45,F,Illinois,0.0,0.452,0.548 +36-45,F,Indiana,0.0,0.452,0.548 +36-45,F,Iowa,0.0,0.452,0.548 +36-45,F,Kansas,0.0,0.452,0.548 +36-45,F,Kentucky,0.0,0.515,0.485 +36-45,F,Louisiana,0.0,0.515,0.485 +36-45,F,Maine,0.0,0.0,1.0 +36-45,F,Maryland,0.0,0.515,0.485 +36-45,F,Massachusetts,0.0,0.0,1.0 +36-45,F,Michigan,0.0,0.452,0.548 +36-45,F,Minnesota,0.0,0.452,0.548 +36-45,F,Mississippi,0.0,0.515,0.485 +36-45,F,Missouri,0.0,0.452,0.548 +36-45,F,Montana,0.0,0.25,0.75 +36-45,F,Nebraska,0.0,0.452,0.548 +36-45,F,Nevada,0.0,0.25,0.75 +36-45,F,New Hampshire,0.0,0.0,1.0 +36-45,F,New Jersey,0.0,0.0,1.0 +36-45,F,New Mexico,0.0,0.25,0.75 +36-45,F,New York,0.0,0.0,1.0 +36-45,F,North Carolina,0.0,0.515,0.485 +36-45,F,North Dakota,0.0,0.452,0.548 +36-45,F,Ohio,0.0,0.452,0.548 +36-45,F,Oklahoma,0.0,0.515,0.485 +36-45,F,Oregon,0.0,0.25,0.75 +36-45,F,Pennsylvania,0.0,0.0,1.0 +36-45,F,Rhode Island,0.0,0.0,1.0 +36-45,F,South Carolina,0.0,0.515,0.485 +36-45,F,South Dakota,0.0,0.452,0.548 +36-45,F,Tennessee,0.0,0.515,0.485 +36-45,F,Texas,0.0,0.515,0.485 +36-45,F,Utah,0.0,0.25,0.75 +36-45,F,Vermont,0.0,0.0,1.0 +36-45,F,Virginia,0.0,0.515,0.485 +36-45,F,Washington,0.0,0.25,0.75 +36-45,F,West Virginia,0.0,0.515,0.485 +36-45,F,Wisconsin,0.0,0.452,0.548 +36-45,F,Wyoming,0.0,0.25,0.75 +36-45,M,Alabama,0.21,0.0,0.79 +36-45,M,Alaska,0.0,1.0,0.0 +36-45,M,Arizona,0.0,1.0,0.0 +36-45,M,Arkansas,0.21,0.0,0.79 +36-45,M,California,0.0,1.0,0.0 +36-45,M,Colorado,0.0,1.0,0.0 +36-45,M,Connecticut,1.0,0.0,0.0 +36-45,M,Delaware,0.21,0.0,0.79 +36-45,M,District of Columbia,0.21,0.0,0.79 +36-45,M,Florida,0.21,0.0,0.79 +36-45,M,Georgia,0.21,0.0,0.79 +36-45,M,Hawaii,0.0,1.0,0.0 +36-45,M,Idaho,0.0,1.0,0.0 +36-45,M,Kentucky,0.21,0.0,0.79 +36-45,M,Louisiana,0.21,0.0,0.79 +36-45,M,Maine,1.0,0.0,0.0 +36-45,M,Maryland,0.21,0.0,0.79 +36-45,M,Massachusetts,1.0,0.0,0.0 +36-45,M,Mississippi,0.21,0.0,0.79 +36-45,M,Montana,0.0,1.0,0.0 +36-45,M,Nevada,0.0,1.0,0.0 +36-45,M,New Hampshire,1.0,0.0,0.0 +36-45,M,New Jersey,1.0,0.0,0.0 +36-45,M,New Mexico,0.0,1.0,0.0 +36-45,M,New York,1.0,0.0,0.0 +36-45,M,North Carolina,0.21,0.0,0.79 +36-45,M,Oklahoma,0.21,0.0,0.79 +36-45,M,Oregon,0.0,1.0,0.0 +36-45,M,Pennsylvania,1.0,0.0,0.0 +36-45,M,Rhode Island,1.0,0.0,0.0 +36-45,M,South Carolina,0.21,0.0,0.79 +36-45,M,Tennessee,0.21,0.0,0.79 +36-45,M,Texas,0.21,0.0,0.79 +36-45,M,Utah,0.0,1.0,0.0 +36-45,M,Vermont,1.0,0.0,0.0 +36-45,M,Virginia,0.21,0.0,0.79 +36-45,M,Washington,0.0,1.0,0.0 +36-45,M,West Virginia,0.21,0.0,0.79 +36-45,M,Wyoming,0.0,1.0,0.0 +46-65,F,Alabama,0.0,0.59,0.41 +46-65,F,Alaska,0.0,0.629,0.371 +46-65,F,Arizona,0.0,0.629,0.371 +46-65,F,Arkansas,0.0,0.59,0.41 +46-65,F,California,0.0,0.629,0.371 +46-65,F,Colorado,0.0,0.629,0.371 +46-65,F,Connecticut,0.256,0.491,0.253 +46-65,F,Delaware,0.0,0.59,0.41 +46-65,F,District of Columbia,0.0,0.59,0.41 +46-65,F,Florida,0.0,0.59,0.41 +46-65,F,Georgia,0.0,0.59,0.41 +46-65,F,Hawaii,0.0,0.629,0.371 +46-65,F,Idaho,0.0,0.629,0.371 +46-65,F,Illinois,0.14,0.46,0.4 +46-65,F,Indiana,0.14,0.46,0.4 +46-65,F,Iowa,0.14,0.46,0.4 +46-65,F,Kansas,0.14,0.46,0.4 +46-65,F,Kentucky,0.0,0.59,0.41 +46-65,F,Louisiana,0.0,0.59,0.41 +46-65,F,Maine,0.256,0.491,0.253 +46-65,F,Maryland,0.0,0.59,0.41 +46-65,F,Massachusetts,0.256,0.491,0.253 +46-65,F,Michigan,0.14,0.46,0.4 +46-65,F,Minnesota,0.14,0.46,0.4 +46-65,F,Mississippi,0.0,0.59,0.41 +46-65,F,Missouri,0.14,0.46,0.4 +46-65,F,Montana,0.0,0.629,0.371 +46-65,F,Nebraska,0.14,0.46,0.4 +46-65,F,Nevada,0.0,0.629,0.371 +46-65,F,New Hampshire,0.256,0.491,0.253 +46-65,F,New Jersey,0.256,0.491,0.253 +46-65,F,New Mexico,0.0,0.629,0.371 +46-65,F,New York,0.256,0.491,0.253 +46-65,F,North Carolina,0.0,0.59,0.41 +46-65,F,North Dakota,0.14,0.46,0.4 +46-65,F,Ohio,0.14,0.46,0.4 +46-65,F,Oklahoma,0.0,0.59,0.41 +46-65,F,Oregon,0.0,0.629,0.371 +46-65,F,Pennsylvania,0.256,0.491,0.253 +46-65,F,Rhode Island,0.256,0.491,0.253 +46-65,F,South Carolina,0.0,0.59,0.41 +46-65,F,South Dakota,0.14,0.46,0.4 +46-65,F,Tennessee,0.0,0.59,0.41 +46-65,F,Texas,0.0,0.59,0.41 +46-65,F,Utah,0.0,0.629,0.371 +46-65,F,Vermont,0.256,0.491,0.253 +46-65,F,Virginia,0.0,0.59,0.41 +46-65,F,Washington,0.0,0.629,0.371 +46-65,F,West Virginia,0.0,0.59,0.41 +46-65,F,Wisconsin,0.14,0.46,0.4 +46-65,F,Wyoming,0.0,0.629,0.371 +46-65,M,Alabama,0.109,0.58,0.311 +46-65,M,Alaska,0.195,0.174,0.631 +46-65,M,Arizona,0.195,0.174,0.631 +46-65,M,Arkansas,0.109,0.58,0.311 +46-65,M,California,0.195,0.174,0.631 +46-65,M,Colorado,0.195,0.174,0.631 +46-65,M,Connecticut,0.086,0.635,0.279 +46-65,M,Delaware,0.109,0.58,0.311 +46-65,M,District of Columbia,0.109,0.58,0.311 +46-65,M,Florida,0.109,0.58,0.311 +46-65,M,Georgia,0.109,0.58,0.311 +46-65,M,Hawaii,0.195,0.174,0.631 +46-65,M,Idaho,0.195,0.174,0.631 +46-65,M,Illinois,0.262,0.296,0.442 +46-65,M,Indiana,0.262,0.296,0.442 +46-65,M,Iowa,0.262,0.296,0.442 +46-65,M,Kansas,0.262,0.296,0.442 +46-65,M,Kentucky,0.109,0.58,0.311 +46-65,M,Louisiana,0.109,0.58,0.311 +46-65,M,Maine,0.086,0.635,0.279 +46-65,M,Maryland,0.109,0.58,0.311 +46-65,M,Massachusetts,0.086,0.635,0.279 +46-65,M,Michigan,0.262,0.296,0.442 +46-65,M,Minnesota,0.262,0.296,0.442 +46-65,M,Mississippi,0.109,0.58,0.311 +46-65,M,Missouri,0.262,0.296,0.442 +46-65,M,Montana,0.195,0.174,0.631 +46-65,M,Nebraska,0.262,0.296,0.442 +46-65,M,Nevada,0.195,0.174,0.631 +46-65,M,New Hampshire,0.086,0.635,0.279 +46-65,M,New Jersey,0.086,0.635,0.279 +46-65,M,New Mexico,0.195,0.174,0.631 +46-65,M,New York,0.086,0.635,0.279 +46-65,M,North Carolina,0.109,0.58,0.311 +46-65,M,North Dakota,0.262,0.296,0.442 +46-65,M,Ohio,0.262,0.296,0.442 +46-65,M,Oklahoma,0.109,0.58,0.311 +46-65,M,Oregon,0.195,0.174,0.631 +46-65,M,Pennsylvania,0.086,0.635,0.279 +46-65,M,Rhode Island,0.086,0.635,0.279 +46-65,M,South Carolina,0.109,0.58,0.311 +46-65,M,South Dakota,0.262,0.296,0.442 +46-65,M,Tennessee,0.109,0.58,0.311 +46-65,M,Texas,0.109,0.58,0.311 +46-65,M,Utah,0.195,0.174,0.631 +46-65,M,Vermont,0.086,0.635,0.279 +46-65,M,Virginia,0.109,0.58,0.311 +46-65,M,Washington,0.195,0.174,0.631 +46-65,M,West Virginia,0.109,0.58,0.311 +46-65,M,Wisconsin,0.262,0.296,0.442 +46-65,M,Wyoming,0.195,0.174,0.631 +65-103,F,Alabama,0.09,0.525,0.385 +65-103,F,Alaska,0.074,0.411,0.515 +65-103,F,Arizona,0.074,0.411,0.515 +65-103,F,Arkansas,0.09,0.525,0.385 +65-103,F,California,0.074,0.411,0.515 +65-103,F,Colorado,0.074,0.411,0.515 +65-103,F,Connecticut,0.074,0.287,0.639 +65-103,F,Delaware,0.09,0.525,0.385 +65-103,F,District of Columbia,0.09,0.525,0.385 +65-103,F,Florida,0.09,0.525,0.385 +65-103,F,Georgia,0.09,0.525,0.385 +65-103,F,Hawaii,0.074,0.411,0.515 +65-103,F,Idaho,0.074,0.411,0.515 +65-103,F,Illinois,0.089,0.363,0.548 +65-103,F,Indiana,0.089,0.363,0.548 +65-103,F,Iowa,0.089,0.363,0.548 +65-103,F,Kansas,0.089,0.363,0.548 +65-103,F,Kentucky,0.09,0.525,0.385 +65-103,F,Louisiana,0.09,0.525,0.385 +65-103,F,Maine,0.074,0.287,0.639 +65-103,F,Maryland,0.09,0.525,0.385 +65-103,F,Massachusetts,0.074,0.287,0.639 +65-103,F,Michigan,0.089,0.363,0.548 +65-103,F,Minnesota,0.089,0.363,0.548 +65-103,F,Mississippi,0.09,0.525,0.385 +65-103,F,Missouri,0.089,0.363,0.548 +65-103,F,Montana,0.074,0.411,0.515 +65-103,F,Nebraska,0.089,0.363,0.548 +65-103,F,Nevada,0.074,0.411,0.515 +65-103,F,New Hampshire,0.074,0.287,0.639 +65-103,F,New Jersey,0.074,0.287,0.639 +65-103,F,New Mexico,0.074,0.411,0.515 +65-103,F,New York,0.074,0.287,0.639 +65-103,F,North Carolina,0.09,0.525,0.385 +65-103,F,North Dakota,0.089,0.363,0.548 +65-103,F,Ohio,0.089,0.363,0.548 +65-103,F,Oklahoma,0.09,0.525,0.385 +65-103,F,Oregon,0.074,0.411,0.515 +65-103,F,Pennsylvania,0.074,0.287,0.639 +65-103,F,Rhode Island,0.074,0.287,0.639 +65-103,F,South Carolina,0.09,0.525,0.385 +65-103,F,South Dakota,0.089,0.363,0.548 +65-103,F,Tennessee,0.09,0.525,0.385 +65-103,F,Texas,0.09,0.525,0.385 +65-103,F,Utah,0.074,0.411,0.515 +65-103,F,Vermont,0.074,0.287,0.639 +65-103,F,Virginia,0.09,0.525,0.385 +65-103,F,Washington,0.074,0.411,0.515 +65-103,F,West Virginia,0.09,0.525,0.385 +65-103,F,Wisconsin,0.089,0.363,0.548 +65-103,F,Wyoming,0.074,0.411,0.515 +65-103,M,Alabama,0.028,0.65,0.322 +65-103,M,Alaska,0.047,0.361,0.593 +65-103,M,Arizona,0.047,0.361,0.593 +65-103,M,Arkansas,0.028,0.65,0.322 +65-103,M,California,0.047,0.361,0.593 +65-103,M,Colorado,0.047,0.361,0.593 +65-103,M,Connecticut,0.041,0.693,0.266 +65-103,M,Delaware,0.028,0.65,0.322 +65-103,M,District of Columbia,0.028,0.65,0.322 +65-103,M,Florida,0.028,0.65,0.322 +65-103,M,Georgia,0.028,0.65,0.322 +65-103,M,Hawaii,0.047,0.361,0.593 +65-103,M,Idaho,0.047,0.361,0.593 +65-103,M,Illinois,0.178,0.329,0.493 +65-103,M,Indiana,0.178,0.329,0.493 +65-103,M,Iowa,0.178,0.329,0.493 +65-103,M,Kansas,0.178,0.329,0.493 +65-103,M,Kentucky,0.028,0.65,0.322 +65-103,M,Louisiana,0.028,0.65,0.322 +65-103,M,Maine,0.041,0.693,0.266 +65-103,M,Maryland,0.028,0.65,0.322 +65-103,M,Massachusetts,0.041,0.693,0.266 +65-103,M,Michigan,0.178,0.329,0.493 +65-103,M,Minnesota,0.178,0.329,0.493 +65-103,M,Mississippi,0.028,0.65,0.322 +65-103,M,Missouri,0.178,0.329,0.493 +65-103,M,Montana,0.047,0.361,0.593 +65-103,M,Nebraska,0.178,0.329,0.493 +65-103,M,Nevada,0.047,0.361,0.593 +65-103,M,New Hampshire,0.041,0.693,0.266 +65-103,M,New Jersey,0.041,0.693,0.266 +65-103,M,New Mexico,0.047,0.361,0.593 +65-103,M,New York,0.041,0.693,0.266 +65-103,M,North Carolina,0.028,0.65,0.322 +65-103,M,North Dakota,0.178,0.329,0.493 +65-103,M,Ohio,0.178,0.329,0.493 +65-103,M,Oklahoma,0.028,0.65,0.322 +65-103,M,Oregon,0.047,0.361,0.593 +65-103,M,Pennsylvania,0.041,0.693,0.266 +65-103,M,Rhode Island,0.041,0.693,0.266 +65-103,M,South Carolina,0.028,0.65,0.322 +65-103,M,South Dakota,0.178,0.329,0.493 +65-103,M,Tennessee,0.028,0.65,0.322 +65-103,M,Texas,0.028,0.65,0.322 +65-103,M,Utah,0.047,0.361,0.593 +65-103,M,Vermont,0.041,0.693,0.266 +65-103,M,Virginia,0.028,0.65,0.322 +65-103,M,Washington,0.047,0.361,0.593 +65-103,M,West Virginia,0.028,0.65,0.322 +65-103,M,Wisconsin,0.178,0.329,0.493 +65-103,M,Wyoming,0.047,0.361,0.593 diff --git a/src/main/resources/modules/lookup_tables/beta_blocker_bisoprolol_hydrochlorothiazide_product_distribution.csv b/src/main/resources/modules/lookup_tables/beta_blocker_bisoprolol_hydrochlorothiazide_product_distribution.csv new file mode 100644 index 0000000..e4e4137 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/beta_blocker_bisoprolol_hydrochlorothiazide_product_distribution.csv @@ -0,0 +1,170 @@ +age,gender,state,Prescribe_Bisoprolol_Fumarate_10_Mg_Hydrochlorothiazide_6_25_Mg_Oral_Tablet,Prescribe_Bisoprolol_Fumarate_2_5_Mg_Hydrochlorothiazide_6_25_Mg_Oral_Tablet,Prescribe_Bisoprolol_Fumarate_5_Mg_Hydrochlorothiazide_6_25_Mg_Oral_Tablet +26-35,F,Alabama,0.0,0.0,1.0 +26-35,F,Arkansas,0.0,0.0,1.0 +26-35,F,Delaware,0.0,0.0,1.0 +26-35,F,District of Columbia,0.0,0.0,1.0 +26-35,F,Florida,0.0,0.0,1.0 +26-35,F,Georgia,0.0,0.0,1.0 +26-35,F,Kentucky,0.0,0.0,1.0 +26-35,F,Louisiana,0.0,0.0,1.0 +26-35,F,Maryland,0.0,0.0,1.0 +26-35,F,Mississippi,0.0,0.0,1.0 +26-35,F,North Carolina,0.0,0.0,1.0 +26-35,F,Oklahoma,0.0,0.0,1.0 +26-35,F,South Carolina,0.0,0.0,1.0 +26-35,F,Tennessee,0.0,0.0,1.0 +26-35,F,Texas,0.0,0.0,1.0 +26-35,F,Virginia,0.0,0.0,1.0 +26-35,F,West Virginia,0.0,0.0,1.0 +36-45,M,Illinois,0.0,0.308,0.692 +36-45,M,Indiana,0.0,0.308,0.692 +36-45,M,Iowa,0.0,0.308,0.692 +36-45,M,Kansas,0.0,0.308,0.692 +36-45,M,Michigan,0.0,0.308,0.692 +36-45,M,Minnesota,0.0,0.308,0.692 +36-45,M,Missouri,0.0,0.308,0.692 +36-45,M,Nebraska,0.0,0.308,0.692 +36-45,M,North Dakota,0.0,0.308,0.692 +36-45,M,Ohio,0.0,0.308,0.692 +36-45,M,South Dakota,0.0,0.308,0.692 +36-45,M,Wisconsin,0.0,0.308,0.692 +46-65,F,Alabama,0.489,0.33,0.181 +46-65,F,Alaska,0.0,1.0,0.0 +46-65,F,Arizona,0.0,1.0,0.0 +46-65,F,Arkansas,0.489,0.33,0.181 +46-65,F,California,0.0,1.0,0.0 +46-65,F,Colorado,0.0,1.0,0.0 +46-65,F,Connecticut,0.266,0.734,0.0 +46-65,F,Delaware,0.489,0.33,0.181 +46-65,F,District of Columbia,0.489,0.33,0.181 +46-65,F,Florida,0.489,0.33,0.181 +46-65,F,Georgia,0.489,0.33,0.181 +46-65,F,Hawaii,0.0,1.0,0.0 +46-65,F,Idaho,0.0,1.0,0.0 +46-65,F,Illinois,1.0,0.0,0.0 +46-65,F,Indiana,1.0,0.0,0.0 +46-65,F,Iowa,1.0,0.0,0.0 +46-65,F,Kansas,1.0,0.0,0.0 +46-65,F,Kentucky,0.489,0.33,0.181 +46-65,F,Louisiana,0.489,0.33,0.181 +46-65,F,Maine,0.266,0.734,0.0 +46-65,F,Maryland,0.489,0.33,0.181 +46-65,F,Massachusetts,0.266,0.734,0.0 +46-65,F,Michigan,1.0,0.0,0.0 +46-65,F,Minnesota,1.0,0.0,0.0 +46-65,F,Mississippi,0.489,0.33,0.181 +46-65,F,Missouri,1.0,0.0,0.0 +46-65,F,Montana,0.0,1.0,0.0 +46-65,F,Nebraska,1.0,0.0,0.0 +46-65,F,Nevada,0.0,1.0,0.0 +46-65,F,New Hampshire,0.266,0.734,0.0 +46-65,F,New Jersey,0.266,0.734,0.0 +46-65,F,New Mexico,0.0,1.0,0.0 +46-65,F,New York,0.266,0.734,0.0 +46-65,F,North Carolina,0.489,0.33,0.181 +46-65,F,North Dakota,1.0,0.0,0.0 +46-65,F,Ohio,1.0,0.0,0.0 +46-65,F,Oklahoma,0.489,0.33,0.181 +46-65,F,Oregon,0.0,1.0,0.0 +46-65,F,Pennsylvania,0.266,0.734,0.0 +46-65,F,Rhode Island,0.266,0.734,0.0 +46-65,F,South Carolina,0.489,0.33,0.181 +46-65,F,South Dakota,1.0,0.0,0.0 +46-65,F,Tennessee,0.489,0.33,0.181 +46-65,F,Texas,0.489,0.33,0.181 +46-65,F,Utah,0.0,1.0,0.0 +46-65,F,Vermont,0.266,0.734,0.0 +46-65,F,Virginia,0.489,0.33,0.181 +46-65,F,Washington,0.0,1.0,0.0 +46-65,F,West Virginia,0.489,0.33,0.181 +46-65,F,Wisconsin,1.0,0.0,0.0 +46-65,F,Wyoming,0.0,1.0,0.0 +46-65,M,Alabama,0.0,0.436,0.564 +46-65,M,Arkansas,0.0,0.436,0.564 +46-65,M,Connecticut,0.0,1.0,0.0 +46-65,M,Delaware,0.0,0.436,0.564 +46-65,M,District of Columbia,0.0,0.436,0.564 +46-65,M,Florida,0.0,0.436,0.564 +46-65,M,Georgia,0.0,0.436,0.564 +46-65,M,Kentucky,0.0,0.436,0.564 +46-65,M,Louisiana,0.0,0.436,0.564 +46-65,M,Maine,0.0,1.0,0.0 +46-65,M,Maryland,0.0,0.436,0.564 +46-65,M,Massachusetts,0.0,1.0,0.0 +46-65,M,Mississippi,0.0,0.436,0.564 +46-65,M,New Hampshire,0.0,1.0,0.0 +46-65,M,New Jersey,0.0,1.0,0.0 +46-65,M,New York,0.0,1.0,0.0 +46-65,M,North Carolina,0.0,0.436,0.564 +46-65,M,Oklahoma,0.0,0.436,0.564 +46-65,M,Pennsylvania,0.0,1.0,0.0 +46-65,M,Rhode Island,0.0,1.0,0.0 +46-65,M,South Carolina,0.0,0.436,0.564 +46-65,M,Tennessee,0.0,0.436,0.564 +46-65,M,Texas,0.0,0.436,0.564 +46-65,M,Vermont,0.0,1.0,0.0 +46-65,M,Virginia,0.0,0.436,0.564 +46-65,M,West Virginia,0.0,0.436,0.564 +65-103,F,Alabama,0.436,0.114,0.45 +65-103,F,Alaska,0.0,0.236,0.764 +65-103,F,Arizona,0.0,0.236,0.764 +65-103,F,Arkansas,0.436,0.114,0.45 +65-103,F,California,0.0,0.236,0.764 +65-103,F,Colorado,0.0,0.236,0.764 +65-103,F,Connecticut,0.292,0.708,0.0 +65-103,F,Delaware,0.436,0.114,0.45 +65-103,F,District of Columbia,0.436,0.114,0.45 +65-103,F,Florida,0.436,0.114,0.45 +65-103,F,Georgia,0.436,0.114,0.45 +65-103,F,Hawaii,0.0,0.236,0.764 +65-103,F,Idaho,0.0,0.236,0.764 +65-103,F,Illinois,0.0,0.515,0.485 +65-103,F,Indiana,0.0,0.515,0.485 +65-103,F,Iowa,0.0,0.515,0.485 +65-103,F,Kansas,0.0,0.515,0.485 +65-103,F,Kentucky,0.436,0.114,0.45 +65-103,F,Louisiana,0.436,0.114,0.45 +65-103,F,Maine,0.292,0.708,0.0 +65-103,F,Maryland,0.436,0.114,0.45 +65-103,F,Massachusetts,0.292,0.708,0.0 +65-103,F,Michigan,0.0,0.515,0.485 +65-103,F,Minnesota,0.0,0.515,0.485 +65-103,F,Mississippi,0.436,0.114,0.45 +65-103,F,Missouri,0.0,0.515,0.485 +65-103,F,Montana,0.0,0.236,0.764 +65-103,F,Nebraska,0.0,0.515,0.485 +65-103,F,Nevada,0.0,0.236,0.764 +65-103,F,New Hampshire,0.292,0.708,0.0 +65-103,F,New Jersey,0.292,0.708,0.0 +65-103,F,New Mexico,0.0,0.236,0.764 +65-103,F,New York,0.292,0.708,0.0 +65-103,F,North Carolina,0.436,0.114,0.45 +65-103,F,North Dakota,0.0,0.515,0.485 +65-103,F,Ohio,0.0,0.515,0.485 +65-103,F,Oklahoma,0.436,0.114,0.45 +65-103,F,Oregon,0.0,0.236,0.764 +65-103,F,Pennsylvania,0.292,0.708,0.0 +65-103,F,Rhode Island,0.292,0.708,0.0 +65-103,F,South Carolina,0.436,0.114,0.45 +65-103,F,South Dakota,0.0,0.515,0.485 +65-103,F,Tennessee,0.436,0.114,0.45 +65-103,F,Texas,0.436,0.114,0.45 +65-103,F,Utah,0.0,0.236,0.764 +65-103,F,Vermont,0.292,0.708,0.0 +65-103,F,Virginia,0.436,0.114,0.45 +65-103,F,Washington,0.0,0.236,0.764 +65-103,F,West Virginia,0.436,0.114,0.45 +65-103,F,Wisconsin,0.0,0.515,0.485 +65-103,F,Wyoming,0.0,0.236,0.764 +65-103,M,Illinois,0.0,0.0,0.0 +65-103,M,Indiana,0.0,0.0,0.0 +65-103,M,Iowa,0.0,0.0,0.0 +65-103,M,Kansas,0.0,0.0,0.0 +65-103,M,Michigan,0.0,0.0,0.0 +65-103,M,Minnesota,0.0,0.0,0.0 +65-103,M,Missouri,0.0,0.0,0.0 +65-103,M,Nebraska,0.0,0.0,0.0 +65-103,M,North Dakota,0.0,0.0,0.0 +65-103,M,Ohio,0.0,0.0,0.0 +65-103,M,South Dakota,0.0,0.0,0.0 +65-103,M,Wisconsin,0.0,0.0,0.0 diff --git a/src/main/resources/modules/lookup_tables/beta_blocker_bisoprolol_product_distribution.csv b/src/main/resources/modules/lookup_tables/beta_blocker_bisoprolol_product_distribution.csv new file mode 100644 index 0000000..6f9db21 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/beta_blocker_bisoprolol_product_distribution.csv @@ -0,0 +1,192 @@ +age,gender,state,Prescribe_Bisoprolol_Fumarate_10_Mg_Oral_Tablet,Prescribe_Bisoprolol_Fumarate_5_Mg_Oral_Tablet +36-45,M,Connecticut,0.0,1.0 +36-45,M,Maine,0.0,1.0 +36-45,M,Massachusetts,0.0,1.0 +36-45,M,New Hampshire,0.0,1.0 +36-45,M,New Jersey,0.0,1.0 +36-45,M,New York,0.0,1.0 +36-45,M,Pennsylvania,0.0,1.0 +36-45,M,Rhode Island,0.0,1.0 +36-45,M,Vermont,0.0,1.0 +46-65,F,Alabama,0.0,1.0 +46-65,F,Alaska,0.37,0.63 +46-65,F,Arizona,0.37,0.63 +46-65,F,Arkansas,0.0,1.0 +46-65,F,California,0.37,0.63 +46-65,F,Colorado,0.37,0.63 +46-65,F,Connecticut,0.161,0.839 +46-65,F,Delaware,0.0,1.0 +46-65,F,District of Columbia,0.0,1.0 +46-65,F,Florida,0.0,1.0 +46-65,F,Georgia,0.0,1.0 +46-65,F,Hawaii,0.37,0.63 +46-65,F,Idaho,0.37,0.63 +46-65,F,Illinois,0.277,0.723 +46-65,F,Indiana,0.277,0.723 +46-65,F,Iowa,0.277,0.723 +46-65,F,Kansas,0.277,0.723 +46-65,F,Kentucky,0.0,1.0 +46-65,F,Louisiana,0.0,1.0 +46-65,F,Maine,0.161,0.839 +46-65,F,Maryland,0.0,1.0 +46-65,F,Massachusetts,0.161,0.839 +46-65,F,Michigan,0.277,0.723 +46-65,F,Minnesota,0.277,0.723 +46-65,F,Mississippi,0.0,1.0 +46-65,F,Missouri,0.277,0.723 +46-65,F,Montana,0.37,0.63 +46-65,F,Nebraska,0.277,0.723 +46-65,F,Nevada,0.37,0.63 +46-65,F,New Hampshire,0.161,0.839 +46-65,F,New Jersey,0.161,0.839 +46-65,F,New Mexico,0.37,0.63 +46-65,F,New York,0.161,0.839 +46-65,F,North Carolina,0.0,1.0 +46-65,F,North Dakota,0.277,0.723 +46-65,F,Ohio,0.277,0.723 +46-65,F,Oklahoma,0.0,1.0 +46-65,F,Oregon,0.37,0.63 +46-65,F,Pennsylvania,0.161,0.839 +46-65,F,Rhode Island,0.161,0.839 +46-65,F,South Carolina,0.0,1.0 +46-65,F,South Dakota,0.277,0.723 +46-65,F,Tennessee,0.0,1.0 +46-65,F,Texas,0.0,1.0 +46-65,F,Utah,0.37,0.63 +46-65,F,Vermont,0.161,0.839 +46-65,F,Virginia,0.0,1.0 +46-65,F,Washington,0.37,0.63 +46-65,F,West Virginia,0.0,1.0 +46-65,F,Wisconsin,0.277,0.723 +46-65,F,Wyoming,0.37,0.63 +46-65,M,Alabama,0.603,0.397 +46-65,M,Arkansas,0.603,0.397 +46-65,M,Connecticut,0.0,1.0 +46-65,M,Delaware,0.603,0.397 +46-65,M,District of Columbia,0.603,0.397 +46-65,M,Florida,0.603,0.397 +46-65,M,Georgia,0.603,0.397 +46-65,M,Illinois,0.0,1.0 +46-65,M,Indiana,0.0,1.0 +46-65,M,Iowa,0.0,1.0 +46-65,M,Kansas,0.0,1.0 +46-65,M,Kentucky,0.603,0.397 +46-65,M,Louisiana,0.603,0.397 +46-65,M,Maine,0.0,1.0 +46-65,M,Maryland,0.603,0.397 +46-65,M,Massachusetts,0.0,1.0 +46-65,M,Michigan,0.0,1.0 +46-65,M,Minnesota,0.0,1.0 +46-65,M,Mississippi,0.603,0.397 +46-65,M,Missouri,0.0,1.0 +46-65,M,Nebraska,0.0,1.0 +46-65,M,New Hampshire,0.0,1.0 +46-65,M,New Jersey,0.0,1.0 +46-65,M,New York,0.0,1.0 +46-65,M,North Carolina,0.603,0.397 +46-65,M,North Dakota,0.0,1.0 +46-65,M,Ohio,0.0,1.0 +46-65,M,Oklahoma,0.603,0.397 +46-65,M,Pennsylvania,0.0,1.0 +46-65,M,Rhode Island,0.0,1.0 +46-65,M,South Carolina,0.603,0.397 +46-65,M,South Dakota,0.0,1.0 +46-65,M,Tennessee,0.603,0.397 +46-65,M,Texas,0.603,0.397 +46-65,M,Vermont,0.0,1.0 +46-65,M,Virginia,0.603,0.397 +46-65,M,West Virginia,0.603,0.397 +46-65,M,Wisconsin,0.0,1.0 +65-103,F,Alabama,0.427,0.573 +65-103,F,Alaska,0.216,0.784 +65-103,F,Arizona,0.216,0.784 +65-103,F,Arkansas,0.427,0.573 +65-103,F,California,0.216,0.784 +65-103,F,Colorado,0.216,0.784 +65-103,F,Connecticut,1.0,0.0 +65-103,F,Delaware,0.427,0.573 +65-103,F,District of Columbia,0.427,0.573 +65-103,F,Florida,0.427,0.573 +65-103,F,Georgia,0.427,0.573 +65-103,F,Hawaii,0.216,0.784 +65-103,F,Idaho,0.216,0.784 +65-103,F,Illinois,0.282,0.718 +65-103,F,Indiana,0.282,0.718 +65-103,F,Iowa,0.282,0.718 +65-103,F,Kansas,0.282,0.718 +65-103,F,Kentucky,0.427,0.573 +65-103,F,Louisiana,0.427,0.573 +65-103,F,Maine,1.0,0.0 +65-103,F,Maryland,0.427,0.573 +65-103,F,Massachusetts,1.0,0.0 +65-103,F,Michigan,0.282,0.718 +65-103,F,Minnesota,0.282,0.718 +65-103,F,Mississippi,0.427,0.573 +65-103,F,Missouri,0.282,0.718 +65-103,F,Montana,0.216,0.784 +65-103,F,Nebraska,0.282,0.718 +65-103,F,Nevada,0.216,0.784 +65-103,F,New Hampshire,1.0,0.0 +65-103,F,New Jersey,1.0,0.0 +65-103,F,New Mexico,0.216,0.784 +65-103,F,New York,1.0,0.0 +65-103,F,North Carolina,0.427,0.573 +65-103,F,North Dakota,0.282,0.718 +65-103,F,Ohio,0.282,0.718 +65-103,F,Oklahoma,0.427,0.573 +65-103,F,Oregon,0.216,0.784 +65-103,F,Pennsylvania,1.0,0.0 +65-103,F,Rhode Island,1.0,0.0 +65-103,F,South Carolina,0.427,0.573 +65-103,F,South Dakota,0.282,0.718 +65-103,F,Tennessee,0.427,0.573 +65-103,F,Texas,0.427,0.573 +65-103,F,Utah,0.216,0.784 +65-103,F,Vermont,1.0,0.0 +65-103,F,Virginia,0.427,0.573 +65-103,F,Washington,0.216,0.784 +65-103,F,West Virginia,0.427,0.573 +65-103,F,Wisconsin,0.282,0.718 +65-103,F,Wyoming,0.216,0.784 +65-103,M,Alabama,0.426,0.574 +65-103,M,Alaska,0.0,1.0 +65-103,M,Arizona,0.0,1.0 +65-103,M,Arkansas,0.426,0.574 +65-103,M,California,0.0,1.0 +65-103,M,Colorado,0.0,1.0 +65-103,M,Delaware,0.426,0.574 +65-103,M,District of Columbia,0.426,0.574 +65-103,M,Florida,0.426,0.574 +65-103,M,Georgia,0.426,0.574 +65-103,M,Hawaii,0.0,1.0 +65-103,M,Idaho,0.0,1.0 +65-103,M,Illinois,0.0,1.0 +65-103,M,Indiana,0.0,1.0 +65-103,M,Iowa,0.0,1.0 +65-103,M,Kansas,0.0,1.0 +65-103,M,Kentucky,0.426,0.574 +65-103,M,Louisiana,0.426,0.574 +65-103,M,Maryland,0.426,0.574 +65-103,M,Michigan,0.0,1.0 +65-103,M,Minnesota,0.0,1.0 +65-103,M,Mississippi,0.426,0.574 +65-103,M,Missouri,0.0,1.0 +65-103,M,Montana,0.0,1.0 +65-103,M,Nebraska,0.0,1.0 +65-103,M,Nevada,0.0,1.0 +65-103,M,New Mexico,0.0,1.0 +65-103,M,North Carolina,0.426,0.574 +65-103,M,North Dakota,0.0,1.0 +65-103,M,Ohio,0.0,1.0 +65-103,M,Oklahoma,0.426,0.574 +65-103,M,Oregon,0.0,1.0 +65-103,M,South Carolina,0.426,0.574 +65-103,M,South Dakota,0.0,1.0 +65-103,M,Tennessee,0.426,0.574 +65-103,M,Texas,0.426,0.574 +65-103,M,Utah,0.0,1.0 +65-103,M,Virginia,0.426,0.574 +65-103,M,Washington,0.0,1.0 +65-103,M,West Virginia,0.426,0.574 +65-103,M,Wisconsin,0.0,1.0 +65-103,M,Wyoming,0.0,1.0 diff --git a/src/main/resources/modules/lookup_tables/beta_blocker_carvedilol_product_distribution.csv b/src/main/resources/modules/lookup_tables/beta_blocker_carvedilol_product_distribution.csv new file mode 100644 index 0000000..ee15219 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/beta_blocker_carvedilol_product_distribution.csv @@ -0,0 +1,375 @@ +age,gender,state,Prescribe_24_Hr_Carvedilol_Phosphate_10_Mg_Extended_Release_Oral_Capsule,Prescribe_24_Hr_Carvedilol_Phosphate_20_Mg_Extended_Release_Oral_Capsule,Prescribe_24_Hr_Carvedilol_Phosphate_20_Mg_Extended_Release_Oral_Capsule_Coreg,Prescribe_Carvedilol_12_5_Mg_Oral_Tablet,Prescribe_Carvedilol_12_5_Mg_Oral_Tablet_Coreg,Prescribe_Carvedilol_25_Mg_Oral_Tablet,Prescribe_Carvedilol_25_Mg_Oral_Tablet_Coreg,Prescribe_Carvedilol_3_125_Mg_Oral_Tablet,Prescribe_Carvedilol_6_25_Mg_Oral_Tablet,Prescribe_Carvedilol_6_25_Mg_Oral_Tablet_Coreg +0-3,M,Alabama,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Arkansas,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Delaware,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,District of Columbia,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Florida,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Georgia,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Kentucky,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Louisiana,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Maryland,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Mississippi,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,North Carolina,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Oklahoma,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,South Carolina,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Tennessee,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Texas,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Virginia,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,West Virginia,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Alabama,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Arkansas,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Delaware,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,District of Columbia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Florida,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Georgia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Kentucky,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Louisiana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Maryland,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Mississippi,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,North Carolina,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Oklahoma,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,South Carolina,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Tennessee,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Texas,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Virginia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,West Virginia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Alabama,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Alaska,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Arizona,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Arkansas,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,California,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Colorado,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Delaware,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,District of Columbia,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Florida,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Georgia,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Hawaii,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Idaho,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Kentucky,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Louisiana,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Maryland,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Mississippi,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Montana,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Nevada,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,New Mexico,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,North Carolina,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Oklahoma,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Oregon,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,South Carolina,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Tennessee,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Texas,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Utah,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Virginia,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Washington,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,West Virginia,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Wyoming,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,M,Alaska,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,M,Arizona,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,M,California,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,M,Colorado,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,M,Connecticut,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,Hawaii,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,M,Idaho,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,M,Illinois,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Indiana,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Iowa,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Kansas,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Maine,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,Massachusetts,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,Michigan,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Minnesota,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Missouri,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Montana,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,M,Nebraska,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Nevada,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,M,New Hampshire,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,New Jersey,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,New Mexico,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,M,New York,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,North Dakota,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Ohio,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Oregon,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,M,Pennsylvania,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,Rhode Island,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,South Dakota,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Utah,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,M,Vermont,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +26-35,M,Washington,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,M,Wisconsin,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Wyoming,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +36-45,F,Alabama,0.0,0.0,0.0,0.16,0.0,0.495,0.0,0.345,0.0,0.0 +36-45,F,Alaska,0.0,0.0,0.0,0.0,0.0,0.842,0.0,0.0,0.158,0.0 +36-45,F,Arizona,0.0,0.0,0.0,0.0,0.0,0.842,0.0,0.0,0.158,0.0 +36-45,F,Arkansas,0.0,0.0,0.0,0.16,0.0,0.495,0.0,0.345,0.0,0.0 +36-45,F,California,0.0,0.0,0.0,0.0,0.0,0.842,0.0,0.0,0.158,0.0 +36-45,F,Colorado,0.0,0.0,0.0,0.0,0.0,0.842,0.0,0.0,0.158,0.0 +36-45,F,Delaware,0.0,0.0,0.0,0.16,0.0,0.495,0.0,0.345,0.0,0.0 +36-45,F,District of Columbia,0.0,0.0,0.0,0.16,0.0,0.495,0.0,0.345,0.0,0.0 +36-45,F,Florida,0.0,0.0,0.0,0.16,0.0,0.495,0.0,0.345,0.0,0.0 +36-45,F,Georgia,0.0,0.0,0.0,0.16,0.0,0.495,0.0,0.345,0.0,0.0 +36-45,F,Hawaii,0.0,0.0,0.0,0.0,0.0,0.842,0.0,0.0,0.158,0.0 +36-45,F,Idaho,0.0,0.0,0.0,0.0,0.0,0.842,0.0,0.0,0.158,0.0 +36-45,F,Illinois,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Indiana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Iowa,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Kansas,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Kentucky,0.0,0.0,0.0,0.16,0.0,0.495,0.0,0.345,0.0,0.0 +36-45,F,Louisiana,0.0,0.0,0.0,0.16,0.0,0.495,0.0,0.345,0.0,0.0 +36-45,F,Maryland,0.0,0.0,0.0,0.16,0.0,0.495,0.0,0.345,0.0,0.0 +36-45,F,Michigan,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Minnesota,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Mississippi,0.0,0.0,0.0,0.16,0.0,0.495,0.0,0.345,0.0,0.0 +36-45,F,Missouri,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Montana,0.0,0.0,0.0,0.0,0.0,0.842,0.0,0.0,0.158,0.0 +36-45,F,Nebraska,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Nevada,0.0,0.0,0.0,0.0,0.0,0.842,0.0,0.0,0.158,0.0 +36-45,F,New Mexico,0.0,0.0,0.0,0.0,0.0,0.842,0.0,0.0,0.158,0.0 +36-45,F,North Carolina,0.0,0.0,0.0,0.16,0.0,0.495,0.0,0.345,0.0,0.0 +36-45,F,North Dakota,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Ohio,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Oklahoma,0.0,0.0,0.0,0.16,0.0,0.495,0.0,0.345,0.0,0.0 +36-45,F,Oregon,0.0,0.0,0.0,0.0,0.0,0.842,0.0,0.0,0.158,0.0 +36-45,F,South Carolina,0.0,0.0,0.0,0.16,0.0,0.495,0.0,0.345,0.0,0.0 +36-45,F,South Dakota,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Tennessee,0.0,0.0,0.0,0.16,0.0,0.495,0.0,0.345,0.0,0.0 +36-45,F,Texas,0.0,0.0,0.0,0.16,0.0,0.495,0.0,0.345,0.0,0.0 +36-45,F,Utah,0.0,0.0,0.0,0.0,0.0,0.842,0.0,0.0,0.158,0.0 +36-45,F,Virginia,0.0,0.0,0.0,0.16,0.0,0.495,0.0,0.345,0.0,0.0 +36-45,F,Washington,0.0,0.0,0.0,0.0,0.0,0.842,0.0,0.0,0.158,0.0 +36-45,F,West Virginia,0.0,0.0,0.0,0.16,0.0,0.495,0.0,0.345,0.0,0.0 +36-45,F,Wisconsin,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,F,Wyoming,0.0,0.0,0.0,0.0,0.0,0.842,0.0,0.0,0.158,0.0 +36-45,M,Alabama,0.0,0.0,0.0,0.0,0.0,0.465,0.0,0.0,0.535,0.0 +36-45,M,Alaska,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Arizona,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Arkansas,0.0,0.0,0.0,0.0,0.0,0.465,0.0,0.0,0.535,0.0 +36-45,M,California,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Colorado,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Delaware,0.0,0.0,0.0,0.0,0.0,0.465,0.0,0.0,0.535,0.0 +36-45,M,District of Columbia,0.0,0.0,0.0,0.0,0.0,0.465,0.0,0.0,0.535,0.0 +36-45,M,Florida,0.0,0.0,0.0,0.0,0.0,0.465,0.0,0.0,0.535,0.0 +36-45,M,Georgia,0.0,0.0,0.0,0.0,0.0,0.465,0.0,0.0,0.535,0.0 +36-45,M,Hawaii,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Idaho,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Kentucky,0.0,0.0,0.0,0.0,0.0,0.465,0.0,0.0,0.535,0.0 +36-45,M,Louisiana,0.0,0.0,0.0,0.0,0.0,0.465,0.0,0.0,0.535,0.0 +36-45,M,Maryland,0.0,0.0,0.0,0.0,0.0,0.465,0.0,0.0,0.535,0.0 +36-45,M,Mississippi,0.0,0.0,0.0,0.0,0.0,0.465,0.0,0.0,0.535,0.0 +36-45,M,Montana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Nevada,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,New Mexico,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,North Carolina,0.0,0.0,0.0,0.0,0.0,0.465,0.0,0.0,0.535,0.0 +36-45,M,Oklahoma,0.0,0.0,0.0,0.0,0.0,0.465,0.0,0.0,0.535,0.0 +36-45,M,Oregon,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,South Carolina,0.0,0.0,0.0,0.0,0.0,0.465,0.0,0.0,0.535,0.0 +36-45,M,Tennessee,0.0,0.0,0.0,0.0,0.0,0.465,0.0,0.0,0.535,0.0 +36-45,M,Texas,0.0,0.0,0.0,0.0,0.0,0.465,0.0,0.0,0.535,0.0 +36-45,M,Utah,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Virginia,0.0,0.0,0.0,0.0,0.0,0.465,0.0,0.0,0.535,0.0 +36-45,M,Washington,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,West Virginia,0.0,0.0,0.0,0.0,0.0,0.465,0.0,0.0,0.535,0.0 +36-45,M,Wyoming,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +46-65,F,Alabama,0.033,0.0,0.0,0.214,0.0,0.152,0.0,0.295,0.306,0.0 +46-65,F,Alaska,0.0,0.0,0.0,0.103,0.0,0.527,0.0,0.211,0.159,0.0 +46-65,F,Arizona,0.0,0.0,0.0,0.103,0.0,0.527,0.0,0.211,0.159,0.0 +46-65,F,Arkansas,0.033,0.0,0.0,0.214,0.0,0.152,0.0,0.295,0.306,0.0 +46-65,F,California,0.0,0.0,0.0,0.103,0.0,0.527,0.0,0.211,0.159,0.0 +46-65,F,Colorado,0.0,0.0,0.0,0.103,0.0,0.527,0.0,0.211,0.159,0.0 +46-65,F,Connecticut,0.0,0.0,0.0,0.319,0.0,0.102,0.0,0.218,0.361,0.0 +46-65,F,Delaware,0.033,0.0,0.0,0.214,0.0,0.152,0.0,0.295,0.306,0.0 +46-65,F,District of Columbia,0.033,0.0,0.0,0.214,0.0,0.152,0.0,0.295,0.306,0.0 +46-65,F,Florida,0.033,0.0,0.0,0.214,0.0,0.152,0.0,0.295,0.306,0.0 +46-65,F,Georgia,0.033,0.0,0.0,0.214,0.0,0.152,0.0,0.295,0.306,0.0 +46-65,F,Hawaii,0.0,0.0,0.0,0.103,0.0,0.527,0.0,0.211,0.159,0.0 +46-65,F,Idaho,0.0,0.0,0.0,0.103,0.0,0.527,0.0,0.211,0.159,0.0 +46-65,F,Illinois,0.0,0.0,0.0,0.066,0.0,0.594,0.0,0.113,0.227,0.0 +46-65,F,Indiana,0.0,0.0,0.0,0.066,0.0,0.594,0.0,0.113,0.227,0.0 +46-65,F,Iowa,0.0,0.0,0.0,0.066,0.0,0.594,0.0,0.113,0.227,0.0 +46-65,F,Kansas,0.0,0.0,0.0,0.066,0.0,0.594,0.0,0.113,0.227,0.0 +46-65,F,Kentucky,0.033,0.0,0.0,0.214,0.0,0.152,0.0,0.295,0.306,0.0 +46-65,F,Louisiana,0.033,0.0,0.0,0.214,0.0,0.152,0.0,0.295,0.306,0.0 +46-65,F,Maine,0.0,0.0,0.0,0.319,0.0,0.102,0.0,0.218,0.361,0.0 +46-65,F,Maryland,0.033,0.0,0.0,0.214,0.0,0.152,0.0,0.295,0.306,0.0 +46-65,F,Massachusetts,0.0,0.0,0.0,0.319,0.0,0.102,0.0,0.218,0.361,0.0 +46-65,F,Michigan,0.0,0.0,0.0,0.066,0.0,0.594,0.0,0.113,0.227,0.0 +46-65,F,Minnesota,0.0,0.0,0.0,0.066,0.0,0.594,0.0,0.113,0.227,0.0 +46-65,F,Mississippi,0.033,0.0,0.0,0.214,0.0,0.152,0.0,0.295,0.306,0.0 +46-65,F,Missouri,0.0,0.0,0.0,0.066,0.0,0.594,0.0,0.113,0.227,0.0 +46-65,F,Montana,0.0,0.0,0.0,0.103,0.0,0.527,0.0,0.211,0.159,0.0 +46-65,F,Nebraska,0.0,0.0,0.0,0.066,0.0,0.594,0.0,0.113,0.227,0.0 +46-65,F,Nevada,0.0,0.0,0.0,0.103,0.0,0.527,0.0,0.211,0.159,0.0 +46-65,F,New Hampshire,0.0,0.0,0.0,0.319,0.0,0.102,0.0,0.218,0.361,0.0 +46-65,F,New Jersey,0.0,0.0,0.0,0.319,0.0,0.102,0.0,0.218,0.361,0.0 +46-65,F,New Mexico,0.0,0.0,0.0,0.103,0.0,0.527,0.0,0.211,0.159,0.0 +46-65,F,New York,0.0,0.0,0.0,0.319,0.0,0.102,0.0,0.218,0.361,0.0 +46-65,F,North Carolina,0.033,0.0,0.0,0.214,0.0,0.152,0.0,0.295,0.306,0.0 +46-65,F,North Dakota,0.0,0.0,0.0,0.066,0.0,0.594,0.0,0.113,0.227,0.0 +46-65,F,Ohio,0.0,0.0,0.0,0.066,0.0,0.594,0.0,0.113,0.227,0.0 +46-65,F,Oklahoma,0.033,0.0,0.0,0.214,0.0,0.152,0.0,0.295,0.306,0.0 +46-65,F,Oregon,0.0,0.0,0.0,0.103,0.0,0.527,0.0,0.211,0.159,0.0 +46-65,F,Pennsylvania,0.0,0.0,0.0,0.319,0.0,0.102,0.0,0.218,0.361,0.0 +46-65,F,Rhode Island,0.0,0.0,0.0,0.319,0.0,0.102,0.0,0.218,0.361,0.0 +46-65,F,South Carolina,0.033,0.0,0.0,0.214,0.0,0.152,0.0,0.295,0.306,0.0 +46-65,F,South Dakota,0.0,0.0,0.0,0.066,0.0,0.594,0.0,0.113,0.227,0.0 +46-65,F,Tennessee,0.033,0.0,0.0,0.214,0.0,0.152,0.0,0.295,0.306,0.0 +46-65,F,Texas,0.033,0.0,0.0,0.214,0.0,0.152,0.0,0.295,0.306,0.0 +46-65,F,Utah,0.0,0.0,0.0,0.103,0.0,0.527,0.0,0.211,0.159,0.0 +46-65,F,Vermont,0.0,0.0,0.0,0.319,0.0,0.102,0.0,0.218,0.361,0.0 +46-65,F,Virginia,0.033,0.0,0.0,0.214,0.0,0.152,0.0,0.295,0.306,0.0 +46-65,F,Washington,0.0,0.0,0.0,0.103,0.0,0.527,0.0,0.211,0.159,0.0 +46-65,F,West Virginia,0.033,0.0,0.0,0.214,0.0,0.152,0.0,0.295,0.306,0.0 +46-65,F,Wisconsin,0.0,0.0,0.0,0.066,0.0,0.594,0.0,0.113,0.227,0.0 +46-65,F,Wyoming,0.0,0.0,0.0,0.103,0.0,0.527,0.0,0.211,0.159,0.0 +46-65,M,Alabama,0.0,0.0,0.0,0.177,0.0,0.34,0.0,0.179,0.304,0.0 +46-65,M,Alaska,0.0,0.0,0.0,0.261,0.0,0.135,0.0,0.51,0.083,0.01 +46-65,M,Arizona,0.0,0.0,0.0,0.261,0.0,0.135,0.0,0.51,0.083,0.01 +46-65,M,Arkansas,0.0,0.0,0.0,0.177,0.0,0.34,0.0,0.179,0.304,0.0 +46-65,M,California,0.0,0.0,0.0,0.261,0.0,0.135,0.0,0.51,0.083,0.01 +46-65,M,Colorado,0.0,0.0,0.0,0.261,0.0,0.135,0.0,0.51,0.083,0.01 +46-65,M,Connecticut,0.0,0.0,0.152,0.293,0.0,0.337,0.0,0.163,0.055,0.0 +46-65,M,Delaware,0.0,0.0,0.0,0.177,0.0,0.34,0.0,0.179,0.304,0.0 +46-65,M,District of Columbia,0.0,0.0,0.0,0.177,0.0,0.34,0.0,0.179,0.304,0.0 +46-65,M,Florida,0.0,0.0,0.0,0.177,0.0,0.34,0.0,0.179,0.304,0.0 +46-65,M,Georgia,0.0,0.0,0.0,0.177,0.0,0.34,0.0,0.179,0.304,0.0 +46-65,M,Hawaii,0.0,0.0,0.0,0.261,0.0,0.135,0.0,0.51,0.083,0.01 +46-65,M,Idaho,0.0,0.0,0.0,0.261,0.0,0.135,0.0,0.51,0.083,0.01 +46-65,M,Illinois,0.0,0.0,0.0,0.181,0.0,0.318,0.051,0.209,0.24,0.0 +46-65,M,Indiana,0.0,0.0,0.0,0.181,0.0,0.318,0.051,0.209,0.24,0.0 +46-65,M,Iowa,0.0,0.0,0.0,0.181,0.0,0.318,0.051,0.209,0.24,0.0 +46-65,M,Kansas,0.0,0.0,0.0,0.181,0.0,0.318,0.051,0.209,0.24,0.0 +46-65,M,Kentucky,0.0,0.0,0.0,0.177,0.0,0.34,0.0,0.179,0.304,0.0 +46-65,M,Louisiana,0.0,0.0,0.0,0.177,0.0,0.34,0.0,0.179,0.304,0.0 +46-65,M,Maine,0.0,0.0,0.152,0.293,0.0,0.337,0.0,0.163,0.055,0.0 +46-65,M,Maryland,0.0,0.0,0.0,0.177,0.0,0.34,0.0,0.179,0.304,0.0 +46-65,M,Massachusetts,0.0,0.0,0.152,0.293,0.0,0.337,0.0,0.163,0.055,0.0 +46-65,M,Michigan,0.0,0.0,0.0,0.181,0.0,0.318,0.051,0.209,0.24,0.0 +46-65,M,Minnesota,0.0,0.0,0.0,0.181,0.0,0.318,0.051,0.209,0.24,0.0 +46-65,M,Mississippi,0.0,0.0,0.0,0.177,0.0,0.34,0.0,0.179,0.304,0.0 +46-65,M,Missouri,0.0,0.0,0.0,0.181,0.0,0.318,0.051,0.209,0.24,0.0 +46-65,M,Montana,0.0,0.0,0.0,0.261,0.0,0.135,0.0,0.51,0.083,0.01 +46-65,M,Nebraska,0.0,0.0,0.0,0.181,0.0,0.318,0.051,0.209,0.24,0.0 +46-65,M,Nevada,0.0,0.0,0.0,0.261,0.0,0.135,0.0,0.51,0.083,0.01 +46-65,M,New Hampshire,0.0,0.0,0.152,0.293,0.0,0.337,0.0,0.163,0.055,0.0 +46-65,M,New Jersey,0.0,0.0,0.152,0.293,0.0,0.337,0.0,0.163,0.055,0.0 +46-65,M,New Mexico,0.0,0.0,0.0,0.261,0.0,0.135,0.0,0.51,0.083,0.01 +46-65,M,New York,0.0,0.0,0.152,0.293,0.0,0.337,0.0,0.163,0.055,0.0 +46-65,M,North Carolina,0.0,0.0,0.0,0.177,0.0,0.34,0.0,0.179,0.304,0.0 +46-65,M,North Dakota,0.0,0.0,0.0,0.181,0.0,0.318,0.051,0.209,0.24,0.0 +46-65,M,Ohio,0.0,0.0,0.0,0.181,0.0,0.318,0.051,0.209,0.24,0.0 +46-65,M,Oklahoma,0.0,0.0,0.0,0.177,0.0,0.34,0.0,0.179,0.304,0.0 +46-65,M,Oregon,0.0,0.0,0.0,0.261,0.0,0.135,0.0,0.51,0.083,0.01 +46-65,M,Pennsylvania,0.0,0.0,0.152,0.293,0.0,0.337,0.0,0.163,0.055,0.0 +46-65,M,Rhode Island,0.0,0.0,0.152,0.293,0.0,0.337,0.0,0.163,0.055,0.0 +46-65,M,South Carolina,0.0,0.0,0.0,0.177,0.0,0.34,0.0,0.179,0.304,0.0 +46-65,M,South Dakota,0.0,0.0,0.0,0.181,0.0,0.318,0.051,0.209,0.24,0.0 +46-65,M,Tennessee,0.0,0.0,0.0,0.177,0.0,0.34,0.0,0.179,0.304,0.0 +46-65,M,Texas,0.0,0.0,0.0,0.177,0.0,0.34,0.0,0.179,0.304,0.0 +46-65,M,Utah,0.0,0.0,0.0,0.261,0.0,0.135,0.0,0.51,0.083,0.01 +46-65,M,Vermont,0.0,0.0,0.152,0.293,0.0,0.337,0.0,0.163,0.055,0.0 +46-65,M,Virginia,0.0,0.0,0.0,0.177,0.0,0.34,0.0,0.179,0.304,0.0 +46-65,M,Washington,0.0,0.0,0.0,0.261,0.0,0.135,0.0,0.51,0.083,0.01 +46-65,M,West Virginia,0.0,0.0,0.0,0.177,0.0,0.34,0.0,0.179,0.304,0.0 +46-65,M,Wisconsin,0.0,0.0,0.0,0.181,0.0,0.318,0.051,0.209,0.24,0.0 +46-65,M,Wyoming,0.0,0.0,0.0,0.261,0.0,0.135,0.0,0.51,0.083,0.01 +65-103,F,Alabama,0.0,0.0,0.0,0.278,0.0,0.295,0.0,0.163,0.264,0.0 +65-103,F,Alaska,0.0,0.0,0.0,0.264,0.0,0.284,0.0,0.3,0.153,0.0 +65-103,F,Arizona,0.0,0.0,0.0,0.264,0.0,0.284,0.0,0.3,0.153,0.0 +65-103,F,Arkansas,0.0,0.0,0.0,0.278,0.0,0.295,0.0,0.163,0.264,0.0 +65-103,F,California,0.0,0.0,0.0,0.264,0.0,0.284,0.0,0.3,0.153,0.0 +65-103,F,Colorado,0.0,0.0,0.0,0.264,0.0,0.284,0.0,0.3,0.153,0.0 +65-103,F,Connecticut,0.0,0.0,0.0,0.105,0.0,0.222,0.0,0.328,0.345,0.0 +65-103,F,Delaware,0.0,0.0,0.0,0.278,0.0,0.295,0.0,0.163,0.264,0.0 +65-103,F,District of Columbia,0.0,0.0,0.0,0.278,0.0,0.295,0.0,0.163,0.264,0.0 +65-103,F,Florida,0.0,0.0,0.0,0.278,0.0,0.295,0.0,0.163,0.264,0.0 +65-103,F,Georgia,0.0,0.0,0.0,0.278,0.0,0.295,0.0,0.163,0.264,0.0 +65-103,F,Hawaii,0.0,0.0,0.0,0.264,0.0,0.284,0.0,0.3,0.153,0.0 +65-103,F,Idaho,0.0,0.0,0.0,0.264,0.0,0.284,0.0,0.3,0.153,0.0 +65-103,F,Illinois,0.0,0.0,0.0,0.523,0.0,0.215,0.0,0.139,0.123,0.0 +65-103,F,Indiana,0.0,0.0,0.0,0.523,0.0,0.215,0.0,0.139,0.123,0.0 +65-103,F,Iowa,0.0,0.0,0.0,0.523,0.0,0.215,0.0,0.139,0.123,0.0 +65-103,F,Kansas,0.0,0.0,0.0,0.523,0.0,0.215,0.0,0.139,0.123,0.0 +65-103,F,Kentucky,0.0,0.0,0.0,0.278,0.0,0.295,0.0,0.163,0.264,0.0 +65-103,F,Louisiana,0.0,0.0,0.0,0.278,0.0,0.295,0.0,0.163,0.264,0.0 +65-103,F,Maine,0.0,0.0,0.0,0.105,0.0,0.222,0.0,0.328,0.345,0.0 +65-103,F,Maryland,0.0,0.0,0.0,0.278,0.0,0.295,0.0,0.163,0.264,0.0 +65-103,F,Massachusetts,0.0,0.0,0.0,0.105,0.0,0.222,0.0,0.328,0.345,0.0 +65-103,F,Michigan,0.0,0.0,0.0,0.523,0.0,0.215,0.0,0.139,0.123,0.0 +65-103,F,Minnesota,0.0,0.0,0.0,0.523,0.0,0.215,0.0,0.139,0.123,0.0 +65-103,F,Mississippi,0.0,0.0,0.0,0.278,0.0,0.295,0.0,0.163,0.264,0.0 +65-103,F,Missouri,0.0,0.0,0.0,0.523,0.0,0.215,0.0,0.139,0.123,0.0 +65-103,F,Montana,0.0,0.0,0.0,0.264,0.0,0.284,0.0,0.3,0.153,0.0 +65-103,F,Nebraska,0.0,0.0,0.0,0.523,0.0,0.215,0.0,0.139,0.123,0.0 +65-103,F,Nevada,0.0,0.0,0.0,0.264,0.0,0.284,0.0,0.3,0.153,0.0 +65-103,F,New Hampshire,0.0,0.0,0.0,0.105,0.0,0.222,0.0,0.328,0.345,0.0 +65-103,F,New Jersey,0.0,0.0,0.0,0.105,0.0,0.222,0.0,0.328,0.345,0.0 +65-103,F,New Mexico,0.0,0.0,0.0,0.264,0.0,0.284,0.0,0.3,0.153,0.0 +65-103,F,New York,0.0,0.0,0.0,0.105,0.0,0.222,0.0,0.328,0.345,0.0 +65-103,F,North Carolina,0.0,0.0,0.0,0.278,0.0,0.295,0.0,0.163,0.264,0.0 +65-103,F,North Dakota,0.0,0.0,0.0,0.523,0.0,0.215,0.0,0.139,0.123,0.0 +65-103,F,Ohio,0.0,0.0,0.0,0.523,0.0,0.215,0.0,0.139,0.123,0.0 +65-103,F,Oklahoma,0.0,0.0,0.0,0.278,0.0,0.295,0.0,0.163,0.264,0.0 +65-103,F,Oregon,0.0,0.0,0.0,0.264,0.0,0.284,0.0,0.3,0.153,0.0 +65-103,F,Pennsylvania,0.0,0.0,0.0,0.105,0.0,0.222,0.0,0.328,0.345,0.0 +65-103,F,Rhode Island,0.0,0.0,0.0,0.105,0.0,0.222,0.0,0.328,0.345,0.0 +65-103,F,South Carolina,0.0,0.0,0.0,0.278,0.0,0.295,0.0,0.163,0.264,0.0 +65-103,F,South Dakota,0.0,0.0,0.0,0.523,0.0,0.215,0.0,0.139,0.123,0.0 +65-103,F,Tennessee,0.0,0.0,0.0,0.278,0.0,0.295,0.0,0.163,0.264,0.0 +65-103,F,Texas,0.0,0.0,0.0,0.278,0.0,0.295,0.0,0.163,0.264,0.0 +65-103,F,Utah,0.0,0.0,0.0,0.264,0.0,0.284,0.0,0.3,0.153,0.0 +65-103,F,Vermont,0.0,0.0,0.0,0.105,0.0,0.222,0.0,0.328,0.345,0.0 +65-103,F,Virginia,0.0,0.0,0.0,0.278,0.0,0.295,0.0,0.163,0.264,0.0 +65-103,F,Washington,0.0,0.0,0.0,0.264,0.0,0.284,0.0,0.3,0.153,0.0 +65-103,F,West Virginia,0.0,0.0,0.0,0.278,0.0,0.295,0.0,0.163,0.264,0.0 +65-103,F,Wisconsin,0.0,0.0,0.0,0.523,0.0,0.215,0.0,0.139,0.123,0.0 +65-103,F,Wyoming,0.0,0.0,0.0,0.264,0.0,0.284,0.0,0.3,0.153,0.0 +65-103,M,Alabama,0.0,0.003,0.0,0.238,0.015,0.146,0.0,0.283,0.315,0.0 +65-103,M,Alaska,0.0,0.0,0.0,0.259,0.0,0.211,0.0,0.371,0.159,0.0 +65-103,M,Arizona,0.0,0.0,0.0,0.259,0.0,0.211,0.0,0.371,0.159,0.0 +65-103,M,Arkansas,0.0,0.003,0.0,0.238,0.015,0.146,0.0,0.283,0.315,0.0 +65-103,M,California,0.0,0.0,0.0,0.259,0.0,0.211,0.0,0.371,0.159,0.0 +65-103,M,Colorado,0.0,0.0,0.0,0.259,0.0,0.211,0.0,0.371,0.159,0.0 +65-103,M,Connecticut,0.0,0.0,0.0,0.219,0.0,0.334,0.0,0.15,0.297,0.0 +65-103,M,Delaware,0.0,0.003,0.0,0.238,0.015,0.146,0.0,0.283,0.315,0.0 +65-103,M,District of Columbia,0.0,0.003,0.0,0.238,0.015,0.146,0.0,0.283,0.315,0.0 +65-103,M,Florida,0.0,0.003,0.0,0.238,0.015,0.146,0.0,0.283,0.315,0.0 +65-103,M,Georgia,0.0,0.003,0.0,0.238,0.015,0.146,0.0,0.283,0.315,0.0 +65-103,M,Hawaii,0.0,0.0,0.0,0.259,0.0,0.211,0.0,0.371,0.159,0.0 +65-103,M,Idaho,0.0,0.0,0.0,0.259,0.0,0.211,0.0,0.371,0.159,0.0 +65-103,M,Illinois,0.0,0.0,0.0,0.327,0.0,0.397,0.0,0.072,0.204,0.0 +65-103,M,Indiana,0.0,0.0,0.0,0.327,0.0,0.397,0.0,0.072,0.204,0.0 +65-103,M,Iowa,0.0,0.0,0.0,0.327,0.0,0.397,0.0,0.072,0.204,0.0 +65-103,M,Kansas,0.0,0.0,0.0,0.327,0.0,0.397,0.0,0.072,0.204,0.0 +65-103,M,Kentucky,0.0,0.003,0.0,0.238,0.015,0.146,0.0,0.283,0.315,0.0 +65-103,M,Louisiana,0.0,0.003,0.0,0.238,0.015,0.146,0.0,0.283,0.315,0.0 +65-103,M,Maine,0.0,0.0,0.0,0.219,0.0,0.334,0.0,0.15,0.297,0.0 +65-103,M,Maryland,0.0,0.003,0.0,0.238,0.015,0.146,0.0,0.283,0.315,0.0 +65-103,M,Massachusetts,0.0,0.0,0.0,0.219,0.0,0.334,0.0,0.15,0.297,0.0 +65-103,M,Michigan,0.0,0.0,0.0,0.327,0.0,0.397,0.0,0.072,0.204,0.0 +65-103,M,Minnesota,0.0,0.0,0.0,0.327,0.0,0.397,0.0,0.072,0.204,0.0 +65-103,M,Mississippi,0.0,0.003,0.0,0.238,0.015,0.146,0.0,0.283,0.315,0.0 +65-103,M,Missouri,0.0,0.0,0.0,0.327,0.0,0.397,0.0,0.072,0.204,0.0 +65-103,M,Montana,0.0,0.0,0.0,0.259,0.0,0.211,0.0,0.371,0.159,0.0 +65-103,M,Nebraska,0.0,0.0,0.0,0.327,0.0,0.397,0.0,0.072,0.204,0.0 +65-103,M,Nevada,0.0,0.0,0.0,0.259,0.0,0.211,0.0,0.371,0.159,0.0 +65-103,M,New Hampshire,0.0,0.0,0.0,0.219,0.0,0.334,0.0,0.15,0.297,0.0 +65-103,M,New Jersey,0.0,0.0,0.0,0.219,0.0,0.334,0.0,0.15,0.297,0.0 +65-103,M,New Mexico,0.0,0.0,0.0,0.259,0.0,0.211,0.0,0.371,0.159,0.0 +65-103,M,New York,0.0,0.0,0.0,0.219,0.0,0.334,0.0,0.15,0.297,0.0 +65-103,M,North Carolina,0.0,0.003,0.0,0.238,0.015,0.146,0.0,0.283,0.315,0.0 +65-103,M,North Dakota,0.0,0.0,0.0,0.327,0.0,0.397,0.0,0.072,0.204,0.0 +65-103,M,Ohio,0.0,0.0,0.0,0.327,0.0,0.397,0.0,0.072,0.204,0.0 +65-103,M,Oklahoma,0.0,0.003,0.0,0.238,0.015,0.146,0.0,0.283,0.315,0.0 +65-103,M,Oregon,0.0,0.0,0.0,0.259,0.0,0.211,0.0,0.371,0.159,0.0 +65-103,M,Pennsylvania,0.0,0.0,0.0,0.219,0.0,0.334,0.0,0.15,0.297,0.0 +65-103,M,Rhode Island,0.0,0.0,0.0,0.219,0.0,0.334,0.0,0.15,0.297,0.0 +65-103,M,South Carolina,0.0,0.003,0.0,0.238,0.015,0.146,0.0,0.283,0.315,0.0 +65-103,M,South Dakota,0.0,0.0,0.0,0.327,0.0,0.397,0.0,0.072,0.204,0.0 +65-103,M,Tennessee,0.0,0.003,0.0,0.238,0.015,0.146,0.0,0.283,0.315,0.0 +65-103,M,Texas,0.0,0.003,0.0,0.238,0.015,0.146,0.0,0.283,0.315,0.0 +65-103,M,Utah,0.0,0.0,0.0,0.259,0.0,0.211,0.0,0.371,0.159,0.0 +65-103,M,Vermont,0.0,0.0,0.0,0.219,0.0,0.334,0.0,0.15,0.297,0.0 +65-103,M,Virginia,0.0,0.003,0.0,0.238,0.015,0.146,0.0,0.283,0.315,0.0 +65-103,M,Washington,0.0,0.0,0.0,0.259,0.0,0.211,0.0,0.371,0.159,0.0 +65-103,M,West Virginia,0.0,0.003,0.0,0.238,0.015,0.146,0.0,0.283,0.315,0.0 +65-103,M,Wisconsin,0.0,0.0,0.0,0.327,0.0,0.397,0.0,0.072,0.204,0.0 +65-103,M,Wyoming,0.0,0.0,0.0,0.259,0.0,0.211,0.0,0.371,0.159,0.0 diff --git a/src/main/resources/modules/lookup_tables/beta_blocker_ingredient_distribution.csv b/src/main/resources/modules/lookup_tables/beta_blocker_ingredient_distribution.csv new file mode 100644 index 0000000..379d97b --- /dev/null +++ b/src/main/resources/modules/lookup_tables/beta_blocker_ingredient_distribution.csv @@ -0,0 +1,560 @@ +age,gender,state,Prescribe_Atenolol,Prescribe_Bisoprolol,Prescribe_Bisoprolol_Hydrochlorothiazide,Prescribe_Carvedilol,Prescribe_Labetalol,Prescribe_Metoprolol,Prescribe_Nebivolol,Prescribe_Propranolol +0-3,M,Alabama,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Arkansas,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Delaware,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,District of Columbia,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Florida,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Georgia,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Kentucky,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Louisiana,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Maryland,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Mississippi,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,North Carolina,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Oklahoma,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,South Carolina,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Tennessee,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Texas,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,Virginia,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +0-3,M,West Virginia,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,F,Alabama,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +12-17,F,Arkansas,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +12-17,F,Delaware,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +12-17,F,District of Columbia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +12-17,F,Florida,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +12-17,F,Georgia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +12-17,F,Kentucky,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +12-17,F,Louisiana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +12-17,F,Maryland,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +12-17,F,Mississippi,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +12-17,F,North Carolina,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +12-17,F,Oklahoma,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +12-17,F,South Carolina,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +12-17,F,Tennessee,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +12-17,F,Texas,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +12-17,F,Virginia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +12-17,F,West Virginia,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +12-17,M,Alabama,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Arkansas,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Delaware,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,District of Columbia,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Florida,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Georgia,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Illinois,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +12-17,M,Indiana,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +12-17,M,Iowa,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +12-17,M,Kansas,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +12-17,M,Kentucky,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Louisiana,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Maryland,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Michigan,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +12-17,M,Minnesota,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +12-17,M,Mississippi,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Missouri,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +12-17,M,Nebraska,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +12-17,M,North Carolina,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,North Dakota,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +12-17,M,Ohio,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +12-17,M,Oklahoma,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,South Carolina,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,South Dakota,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +12-17,M,Tennessee,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Texas,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Virginia,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,West Virginia,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +12-17,M,Wisconsin,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,Alabama,0.495,0.0,0.0,0.0,0.0,0.0,0.0,0.505 +18-25,F,Alaska,0.682,0.0,0.0,0.0,0.0,0.0,0.0,0.318 +18-25,F,Arizona,0.682,0.0,0.0,0.0,0.0,0.0,0.0,0.318 +18-25,F,Arkansas,0.495,0.0,0.0,0.0,0.0,0.0,0.0,0.505 +18-25,F,California,0.682,0.0,0.0,0.0,0.0,0.0,0.0,0.318 +18-25,F,Colorado,0.682,0.0,0.0,0.0,0.0,0.0,0.0,0.318 +18-25,F,Connecticut,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,Delaware,0.495,0.0,0.0,0.0,0.0,0.0,0.0,0.505 +18-25,F,District of Columbia,0.495,0.0,0.0,0.0,0.0,0.0,0.0,0.505 +18-25,F,Florida,0.495,0.0,0.0,0.0,0.0,0.0,0.0,0.505 +18-25,F,Georgia,0.495,0.0,0.0,0.0,0.0,0.0,0.0,0.505 +18-25,F,Hawaii,0.682,0.0,0.0,0.0,0.0,0.0,0.0,0.318 +18-25,F,Idaho,0.682,0.0,0.0,0.0,0.0,0.0,0.0,0.318 +18-25,F,Illinois,0.0,0.0,0.0,0.0,0.0,0.809,0.0,0.191 +18-25,F,Indiana,0.0,0.0,0.0,0.0,0.0,0.809,0.0,0.191 +18-25,F,Iowa,0.0,0.0,0.0,0.0,0.0,0.809,0.0,0.191 +18-25,F,Kansas,0.0,0.0,0.0,0.0,0.0,0.809,0.0,0.191 +18-25,F,Kentucky,0.495,0.0,0.0,0.0,0.0,0.0,0.0,0.505 +18-25,F,Louisiana,0.495,0.0,0.0,0.0,0.0,0.0,0.0,0.505 +18-25,F,Maine,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,Maryland,0.495,0.0,0.0,0.0,0.0,0.0,0.0,0.505 +18-25,F,Massachusetts,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,Michigan,0.0,0.0,0.0,0.0,0.0,0.809,0.0,0.191 +18-25,F,Minnesota,0.0,0.0,0.0,0.0,0.0,0.809,0.0,0.191 +18-25,F,Mississippi,0.495,0.0,0.0,0.0,0.0,0.0,0.0,0.505 +18-25,F,Missouri,0.0,0.0,0.0,0.0,0.0,0.809,0.0,0.191 +18-25,F,Montana,0.682,0.0,0.0,0.0,0.0,0.0,0.0,0.318 +18-25,F,Nebraska,0.0,0.0,0.0,0.0,0.0,0.809,0.0,0.191 +18-25,F,Nevada,0.682,0.0,0.0,0.0,0.0,0.0,0.0,0.318 +18-25,F,New Hampshire,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,New Jersey,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,New Mexico,0.682,0.0,0.0,0.0,0.0,0.0,0.0,0.318 +18-25,F,New York,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,North Carolina,0.495,0.0,0.0,0.0,0.0,0.0,0.0,0.505 +18-25,F,North Dakota,0.0,0.0,0.0,0.0,0.0,0.809,0.0,0.191 +18-25,F,Ohio,0.0,0.0,0.0,0.0,0.0,0.809,0.0,0.191 +18-25,F,Oklahoma,0.495,0.0,0.0,0.0,0.0,0.0,0.0,0.505 +18-25,F,Oregon,0.682,0.0,0.0,0.0,0.0,0.0,0.0,0.318 +18-25,F,Pennsylvania,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,Rhode Island,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,South Carolina,0.495,0.0,0.0,0.0,0.0,0.0,0.0,0.505 +18-25,F,South Dakota,0.0,0.0,0.0,0.0,0.0,0.809,0.0,0.191 +18-25,F,Tennessee,0.495,0.0,0.0,0.0,0.0,0.0,0.0,0.505 +18-25,F,Texas,0.495,0.0,0.0,0.0,0.0,0.0,0.0,0.505 +18-25,F,Utah,0.682,0.0,0.0,0.0,0.0,0.0,0.0,0.318 +18-25,F,Vermont,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,Virginia,0.495,0.0,0.0,0.0,0.0,0.0,0.0,0.505 +18-25,F,Washington,0.682,0.0,0.0,0.0,0.0,0.0,0.0,0.318 +18-25,F,West Virginia,0.495,0.0,0.0,0.0,0.0,0.0,0.0,0.505 +18-25,F,Wisconsin,0.0,0.0,0.0,0.0,0.0,0.809,0.0,0.191 +18-25,F,Wyoming,0.682,0.0,0.0,0.0,0.0,0.0,0.0,0.318 +18-25,M,Alaska,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Arizona,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,California,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Colorado,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Hawaii,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Idaho,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Illinois,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Indiana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Iowa,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Kansas,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Michigan,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Minnesota,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Missouri,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Montana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Nebraska,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Nevada,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,New Mexico,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,North Dakota,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Ohio,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Oregon,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,South Dakota,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Utah,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Washington,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Wisconsin,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +18-25,M,Wyoming,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +26-35,F,Alabama,0.0,0.0,0.056,0.081,0.364,0.05,0.0,0.449 +26-35,F,Alaska,0.177,0.0,0.0,0.05,0.086,0.0,0.0,0.686 +26-35,F,Arizona,0.177,0.0,0.0,0.05,0.086,0.0,0.0,0.686 +26-35,F,Arkansas,0.0,0.0,0.056,0.081,0.364,0.05,0.0,0.449 +26-35,F,California,0.177,0.0,0.0,0.05,0.086,0.0,0.0,0.686 +26-35,F,Colorado,0.177,0.0,0.0,0.05,0.086,0.0,0.0,0.686 +26-35,F,Connecticut,0.0,0.0,0.0,0.0,0.975,0.0,0.0,0.025 +26-35,F,Delaware,0.0,0.0,0.056,0.081,0.364,0.05,0.0,0.449 +26-35,F,District of Columbia,0.0,0.0,0.056,0.081,0.364,0.05,0.0,0.449 +26-35,F,Florida,0.0,0.0,0.056,0.081,0.364,0.05,0.0,0.449 +26-35,F,Georgia,0.0,0.0,0.056,0.081,0.364,0.05,0.0,0.449 +26-35,F,Hawaii,0.177,0.0,0.0,0.05,0.086,0.0,0.0,0.686 +26-35,F,Idaho,0.177,0.0,0.0,0.05,0.086,0.0,0.0,0.686 +26-35,F,Illinois,0.0,0.0,0.0,0.0,0.203,0.127,0.0,0.671 +26-35,F,Indiana,0.0,0.0,0.0,0.0,0.203,0.127,0.0,0.671 +26-35,F,Iowa,0.0,0.0,0.0,0.0,0.203,0.127,0.0,0.671 +26-35,F,Kansas,0.0,0.0,0.0,0.0,0.203,0.127,0.0,0.671 +26-35,F,Kentucky,0.0,0.0,0.056,0.081,0.364,0.05,0.0,0.449 +26-35,F,Louisiana,0.0,0.0,0.056,0.081,0.364,0.05,0.0,0.449 +26-35,F,Maine,0.0,0.0,0.0,0.0,0.975,0.0,0.0,0.025 +26-35,F,Maryland,0.0,0.0,0.056,0.081,0.364,0.05,0.0,0.449 +26-35,F,Massachusetts,0.0,0.0,0.0,0.0,0.975,0.0,0.0,0.025 +26-35,F,Michigan,0.0,0.0,0.0,0.0,0.203,0.127,0.0,0.671 +26-35,F,Minnesota,0.0,0.0,0.0,0.0,0.203,0.127,0.0,0.671 +26-35,F,Mississippi,0.0,0.0,0.056,0.081,0.364,0.05,0.0,0.449 +26-35,F,Missouri,0.0,0.0,0.0,0.0,0.203,0.127,0.0,0.671 +26-35,F,Montana,0.177,0.0,0.0,0.05,0.086,0.0,0.0,0.686 +26-35,F,Nebraska,0.0,0.0,0.0,0.0,0.203,0.127,0.0,0.671 +26-35,F,Nevada,0.177,0.0,0.0,0.05,0.086,0.0,0.0,0.686 +26-35,F,New Hampshire,0.0,0.0,0.0,0.0,0.975,0.0,0.0,0.025 +26-35,F,New Jersey,0.0,0.0,0.0,0.0,0.975,0.0,0.0,0.025 +26-35,F,New Mexico,0.177,0.0,0.0,0.05,0.086,0.0,0.0,0.686 +26-35,F,New York,0.0,0.0,0.0,0.0,0.975,0.0,0.0,0.025 +26-35,F,North Carolina,0.0,0.0,0.056,0.081,0.364,0.05,0.0,0.449 +26-35,F,North Dakota,0.0,0.0,0.0,0.0,0.203,0.127,0.0,0.671 +26-35,F,Ohio,0.0,0.0,0.0,0.0,0.203,0.127,0.0,0.671 +26-35,F,Oklahoma,0.0,0.0,0.056,0.081,0.364,0.05,0.0,0.449 +26-35,F,Oregon,0.177,0.0,0.0,0.05,0.086,0.0,0.0,0.686 +26-35,F,Pennsylvania,0.0,0.0,0.0,0.0,0.975,0.0,0.0,0.025 +26-35,F,Rhode Island,0.0,0.0,0.0,0.0,0.975,0.0,0.0,0.025 +26-35,F,South Carolina,0.0,0.0,0.056,0.081,0.364,0.05,0.0,0.449 +26-35,F,South Dakota,0.0,0.0,0.0,0.0,0.203,0.127,0.0,0.671 +26-35,F,Tennessee,0.0,0.0,0.056,0.081,0.364,0.05,0.0,0.449 +26-35,F,Texas,0.0,0.0,0.056,0.081,0.364,0.05,0.0,0.449 +26-35,F,Utah,0.177,0.0,0.0,0.05,0.086,0.0,0.0,0.686 +26-35,F,Vermont,0.0,0.0,0.0,0.0,0.975,0.0,0.0,0.025 +26-35,F,Virginia,0.0,0.0,0.056,0.081,0.364,0.05,0.0,0.449 +26-35,F,Washington,0.177,0.0,0.0,0.05,0.086,0.0,0.0,0.686 +26-35,F,West Virginia,0.0,0.0,0.056,0.081,0.364,0.05,0.0,0.449 +26-35,F,Wisconsin,0.0,0.0,0.0,0.0,0.203,0.127,0.0,0.671 +26-35,F,Wyoming,0.177,0.0,0.0,0.05,0.086,0.0,0.0,0.686 +26-35,M,Alabama,0.142,0.0,0.0,0.0,0.079,0.398,0.0,0.381 +26-35,M,Alaska,0.175,0.0,0.0,0.412,0.0,0.0,0.0,0.413 +26-35,M,Arizona,0.175,0.0,0.0,0.412,0.0,0.0,0.0,0.413 +26-35,M,Arkansas,0.142,0.0,0.0,0.0,0.079,0.398,0.0,0.381 +26-35,M,California,0.175,0.0,0.0,0.412,0.0,0.0,0.0,0.413 +26-35,M,Colorado,0.175,0.0,0.0,0.412,0.0,0.0,0.0,0.413 +26-35,M,Connecticut,0.0,0.0,0.0,0.277,0.0,0.723,0.0,0.0 +26-35,M,Delaware,0.142,0.0,0.0,0.0,0.079,0.398,0.0,0.381 +26-35,M,District of Columbia,0.142,0.0,0.0,0.0,0.079,0.398,0.0,0.381 +26-35,M,Florida,0.142,0.0,0.0,0.0,0.079,0.398,0.0,0.381 +26-35,M,Georgia,0.142,0.0,0.0,0.0,0.079,0.398,0.0,0.381 +26-35,M,Hawaii,0.175,0.0,0.0,0.412,0.0,0.0,0.0,0.413 +26-35,M,Idaho,0.175,0.0,0.0,0.412,0.0,0.0,0.0,0.413 +26-35,M,Illinois,0.256,0.0,0.0,0.066,0.0,0.431,0.0,0.248 +26-35,M,Indiana,0.256,0.0,0.0,0.066,0.0,0.431,0.0,0.248 +26-35,M,Iowa,0.256,0.0,0.0,0.066,0.0,0.431,0.0,0.248 +26-35,M,Kansas,0.256,0.0,0.0,0.066,0.0,0.431,0.0,0.248 +26-35,M,Kentucky,0.142,0.0,0.0,0.0,0.079,0.398,0.0,0.381 +26-35,M,Louisiana,0.142,0.0,0.0,0.0,0.079,0.398,0.0,0.381 +26-35,M,Maine,0.0,0.0,0.0,0.277,0.0,0.723,0.0,0.0 +26-35,M,Maryland,0.142,0.0,0.0,0.0,0.079,0.398,0.0,0.381 +26-35,M,Massachusetts,0.0,0.0,0.0,0.277,0.0,0.723,0.0,0.0 +26-35,M,Michigan,0.256,0.0,0.0,0.066,0.0,0.431,0.0,0.248 +26-35,M,Minnesota,0.256,0.0,0.0,0.066,0.0,0.431,0.0,0.248 +26-35,M,Mississippi,0.142,0.0,0.0,0.0,0.079,0.398,0.0,0.381 +26-35,M,Missouri,0.256,0.0,0.0,0.066,0.0,0.431,0.0,0.248 +26-35,M,Montana,0.175,0.0,0.0,0.412,0.0,0.0,0.0,0.413 +26-35,M,Nebraska,0.256,0.0,0.0,0.066,0.0,0.431,0.0,0.248 +26-35,M,Nevada,0.175,0.0,0.0,0.412,0.0,0.0,0.0,0.413 +26-35,M,New Hampshire,0.0,0.0,0.0,0.277,0.0,0.723,0.0,0.0 +26-35,M,New Jersey,0.0,0.0,0.0,0.277,0.0,0.723,0.0,0.0 +26-35,M,New Mexico,0.175,0.0,0.0,0.412,0.0,0.0,0.0,0.413 +26-35,M,New York,0.0,0.0,0.0,0.277,0.0,0.723,0.0,0.0 +26-35,M,North Carolina,0.142,0.0,0.0,0.0,0.079,0.398,0.0,0.381 +26-35,M,North Dakota,0.256,0.0,0.0,0.066,0.0,0.431,0.0,0.248 +26-35,M,Ohio,0.256,0.0,0.0,0.066,0.0,0.431,0.0,0.248 +26-35,M,Oklahoma,0.142,0.0,0.0,0.0,0.079,0.398,0.0,0.381 +26-35,M,Oregon,0.175,0.0,0.0,0.412,0.0,0.0,0.0,0.413 +26-35,M,Pennsylvania,0.0,0.0,0.0,0.277,0.0,0.723,0.0,0.0 +26-35,M,Rhode Island,0.0,0.0,0.0,0.277,0.0,0.723,0.0,0.0 +26-35,M,South Carolina,0.142,0.0,0.0,0.0,0.079,0.398,0.0,0.381 +26-35,M,South Dakota,0.256,0.0,0.0,0.066,0.0,0.431,0.0,0.248 +26-35,M,Tennessee,0.142,0.0,0.0,0.0,0.079,0.398,0.0,0.381 +26-35,M,Texas,0.142,0.0,0.0,0.0,0.079,0.398,0.0,0.381 +26-35,M,Utah,0.175,0.0,0.0,0.412,0.0,0.0,0.0,0.413 +26-35,M,Vermont,0.0,0.0,0.0,0.277,0.0,0.723,0.0,0.0 +26-35,M,Virginia,0.142,0.0,0.0,0.0,0.079,0.398,0.0,0.381 +26-35,M,Washington,0.175,0.0,0.0,0.412,0.0,0.0,0.0,0.413 +26-35,M,West Virginia,0.142,0.0,0.0,0.0,0.079,0.398,0.0,0.381 +26-35,M,Wisconsin,0.256,0.0,0.0,0.066,0.0,0.431,0.0,0.248 +26-35,M,Wyoming,0.175,0.0,0.0,0.412,0.0,0.0,0.0,0.413 +36-45,F,Alabama,0.092,0.0,0.0,0.075,0.17,0.567,0.019,0.078 +36-45,F,Alaska,0.331,0.0,0.0,0.184,0.0,0.236,0.0,0.25 +36-45,F,Arizona,0.331,0.0,0.0,0.184,0.0,0.236,0.0,0.25 +36-45,F,Arkansas,0.092,0.0,0.0,0.075,0.17,0.567,0.019,0.078 +36-45,F,California,0.331,0.0,0.0,0.184,0.0,0.236,0.0,0.25 +36-45,F,Colorado,0.331,0.0,0.0,0.184,0.0,0.236,0.0,0.25 +36-45,F,Connecticut,0.17,0.0,0.0,0.0,0.073,0.409,0.0,0.348 +36-45,F,Delaware,0.092,0.0,0.0,0.075,0.17,0.567,0.019,0.078 +36-45,F,District of Columbia,0.092,0.0,0.0,0.075,0.17,0.567,0.019,0.078 +36-45,F,Florida,0.092,0.0,0.0,0.075,0.17,0.567,0.019,0.078 +36-45,F,Georgia,0.092,0.0,0.0,0.075,0.17,0.567,0.019,0.078 +36-45,F,Hawaii,0.331,0.0,0.0,0.184,0.0,0.236,0.0,0.25 +36-45,F,Idaho,0.331,0.0,0.0,0.184,0.0,0.236,0.0,0.25 +36-45,F,Illinois,0.194,0.0,0.0,0.066,0.183,0.36,0.0,0.197 +36-45,F,Indiana,0.194,0.0,0.0,0.066,0.183,0.36,0.0,0.197 +36-45,F,Iowa,0.194,0.0,0.0,0.066,0.183,0.36,0.0,0.197 +36-45,F,Kansas,0.194,0.0,0.0,0.066,0.183,0.36,0.0,0.197 +36-45,F,Kentucky,0.092,0.0,0.0,0.075,0.17,0.567,0.019,0.078 +36-45,F,Louisiana,0.092,0.0,0.0,0.075,0.17,0.567,0.019,0.078 +36-45,F,Maine,0.17,0.0,0.0,0.0,0.073,0.409,0.0,0.348 +36-45,F,Maryland,0.092,0.0,0.0,0.075,0.17,0.567,0.019,0.078 +36-45,F,Massachusetts,0.17,0.0,0.0,0.0,0.073,0.409,0.0,0.348 +36-45,F,Michigan,0.194,0.0,0.0,0.066,0.183,0.36,0.0,0.197 +36-45,F,Minnesota,0.194,0.0,0.0,0.066,0.183,0.36,0.0,0.197 +36-45,F,Mississippi,0.092,0.0,0.0,0.075,0.17,0.567,0.019,0.078 +36-45,F,Missouri,0.194,0.0,0.0,0.066,0.183,0.36,0.0,0.197 +36-45,F,Montana,0.331,0.0,0.0,0.184,0.0,0.236,0.0,0.25 +36-45,F,Nebraska,0.194,0.0,0.0,0.066,0.183,0.36,0.0,0.197 +36-45,F,Nevada,0.331,0.0,0.0,0.184,0.0,0.236,0.0,0.25 +36-45,F,New Hampshire,0.17,0.0,0.0,0.0,0.073,0.409,0.0,0.348 +36-45,F,New Jersey,0.17,0.0,0.0,0.0,0.073,0.409,0.0,0.348 +36-45,F,New Mexico,0.331,0.0,0.0,0.184,0.0,0.236,0.0,0.25 +36-45,F,New York,0.17,0.0,0.0,0.0,0.073,0.409,0.0,0.348 +36-45,F,North Carolina,0.092,0.0,0.0,0.075,0.17,0.567,0.019,0.078 +36-45,F,North Dakota,0.194,0.0,0.0,0.066,0.183,0.36,0.0,0.197 +36-45,F,Ohio,0.194,0.0,0.0,0.066,0.183,0.36,0.0,0.197 +36-45,F,Oklahoma,0.092,0.0,0.0,0.075,0.17,0.567,0.019,0.078 +36-45,F,Oregon,0.331,0.0,0.0,0.184,0.0,0.236,0.0,0.25 +36-45,F,Pennsylvania,0.17,0.0,0.0,0.0,0.073,0.409,0.0,0.348 +36-45,F,Rhode Island,0.17,0.0,0.0,0.0,0.073,0.409,0.0,0.348 +36-45,F,South Carolina,0.092,0.0,0.0,0.075,0.17,0.567,0.019,0.078 +36-45,F,South Dakota,0.194,0.0,0.0,0.066,0.183,0.36,0.0,0.197 +36-45,F,Tennessee,0.092,0.0,0.0,0.075,0.17,0.567,0.019,0.078 +36-45,F,Texas,0.092,0.0,0.0,0.075,0.17,0.567,0.019,0.078 +36-45,F,Utah,0.331,0.0,0.0,0.184,0.0,0.236,0.0,0.25 +36-45,F,Vermont,0.17,0.0,0.0,0.0,0.073,0.409,0.0,0.348 +36-45,F,Virginia,0.092,0.0,0.0,0.075,0.17,0.567,0.019,0.078 +36-45,F,Washington,0.331,0.0,0.0,0.184,0.0,0.236,0.0,0.25 +36-45,F,West Virginia,0.092,0.0,0.0,0.075,0.17,0.567,0.019,0.078 +36-45,F,Wisconsin,0.194,0.0,0.0,0.066,0.183,0.36,0.0,0.197 +36-45,F,Wyoming,0.331,0.0,0.0,0.184,0.0,0.236,0.0,0.25 +36-45,M,Alabama,0.128,0.0,0.0,0.107,0.045,0.653,0.067,0.0 +36-45,M,Alaska,0.246,0.0,0.0,0.087,0.0,0.575,0.0,0.093 +36-45,M,Arizona,0.246,0.0,0.0,0.087,0.0,0.575,0.0,0.093 +36-45,M,Arkansas,0.128,0.0,0.0,0.107,0.045,0.653,0.067,0.0 +36-45,M,California,0.246,0.0,0.0,0.087,0.0,0.575,0.0,0.093 +36-45,M,Colorado,0.246,0.0,0.0,0.087,0.0,0.575,0.0,0.093 +36-45,M,Connecticut,0.059,0.145,0.0,0.0,0.0,0.771,0.0,0.025 +36-45,M,Delaware,0.128,0.0,0.0,0.107,0.045,0.653,0.067,0.0 +36-45,M,District of Columbia,0.128,0.0,0.0,0.107,0.045,0.653,0.067,0.0 +36-45,M,Florida,0.128,0.0,0.0,0.107,0.045,0.653,0.067,0.0 +36-45,M,Georgia,0.128,0.0,0.0,0.107,0.045,0.653,0.067,0.0 +36-45,M,Hawaii,0.246,0.0,0.0,0.087,0.0,0.575,0.0,0.093 +36-45,M,Idaho,0.246,0.0,0.0,0.087,0.0,0.575,0.0,0.093 +36-45,M,Illinois,0.0,0.0,0.252,0.0,0.0,0.439,0.0,0.308 +36-45,M,Indiana,0.0,0.0,0.252,0.0,0.0,0.439,0.0,0.308 +36-45,M,Iowa,0.0,0.0,0.252,0.0,0.0,0.439,0.0,0.308 +36-45,M,Kansas,0.0,0.0,0.252,0.0,0.0,0.439,0.0,0.308 +36-45,M,Kentucky,0.128,0.0,0.0,0.107,0.045,0.653,0.067,0.0 +36-45,M,Louisiana,0.128,0.0,0.0,0.107,0.045,0.653,0.067,0.0 +36-45,M,Maine,0.059,0.145,0.0,0.0,0.0,0.771,0.0,0.025 +36-45,M,Maryland,0.128,0.0,0.0,0.107,0.045,0.653,0.067,0.0 +36-45,M,Massachusetts,0.059,0.145,0.0,0.0,0.0,0.771,0.0,0.025 +36-45,M,Michigan,0.0,0.0,0.252,0.0,0.0,0.439,0.0,0.308 +36-45,M,Minnesota,0.0,0.0,0.252,0.0,0.0,0.439,0.0,0.308 +36-45,M,Mississippi,0.128,0.0,0.0,0.107,0.045,0.653,0.067,0.0 +36-45,M,Missouri,0.0,0.0,0.252,0.0,0.0,0.439,0.0,0.308 +36-45,M,Montana,0.246,0.0,0.0,0.087,0.0,0.575,0.0,0.093 +36-45,M,Nebraska,0.0,0.0,0.252,0.0,0.0,0.439,0.0,0.308 +36-45,M,Nevada,0.246,0.0,0.0,0.087,0.0,0.575,0.0,0.093 +36-45,M,New Hampshire,0.059,0.145,0.0,0.0,0.0,0.771,0.0,0.025 +36-45,M,New Jersey,0.059,0.145,0.0,0.0,0.0,0.771,0.0,0.025 +36-45,M,New Mexico,0.246,0.0,0.0,0.087,0.0,0.575,0.0,0.093 +36-45,M,New York,0.059,0.145,0.0,0.0,0.0,0.771,0.0,0.025 +36-45,M,North Carolina,0.128,0.0,0.0,0.107,0.045,0.653,0.067,0.0 +36-45,M,North Dakota,0.0,0.0,0.252,0.0,0.0,0.439,0.0,0.308 +36-45,M,Ohio,0.0,0.0,0.252,0.0,0.0,0.439,0.0,0.308 +36-45,M,Oklahoma,0.128,0.0,0.0,0.107,0.045,0.653,0.067,0.0 +36-45,M,Oregon,0.246,0.0,0.0,0.087,0.0,0.575,0.0,0.093 +36-45,M,Pennsylvania,0.059,0.145,0.0,0.0,0.0,0.771,0.0,0.025 +36-45,M,Rhode Island,0.059,0.145,0.0,0.0,0.0,0.771,0.0,0.025 +36-45,M,South Carolina,0.128,0.0,0.0,0.107,0.045,0.653,0.067,0.0 +36-45,M,South Dakota,0.0,0.0,0.252,0.0,0.0,0.439,0.0,0.308 +36-45,M,Tennessee,0.128,0.0,0.0,0.107,0.045,0.653,0.067,0.0 +36-45,M,Texas,0.128,0.0,0.0,0.107,0.045,0.653,0.067,0.0 +36-45,M,Utah,0.246,0.0,0.0,0.087,0.0,0.575,0.0,0.093 +36-45,M,Vermont,0.059,0.145,0.0,0.0,0.0,0.771,0.0,0.025 +36-45,M,Virginia,0.128,0.0,0.0,0.107,0.045,0.653,0.067,0.0 +36-45,M,Washington,0.246,0.0,0.0,0.087,0.0,0.575,0.0,0.093 +36-45,M,West Virginia,0.128,0.0,0.0,0.107,0.045,0.653,0.067,0.0 +36-45,M,Wisconsin,0.0,0.0,0.252,0.0,0.0,0.439,0.0,0.308 +36-45,M,Wyoming,0.246,0.0,0.0,0.087,0.0,0.575,0.0,0.093 +46-65,F,Alabama,0.138,0.017,0.026,0.219,0.01,0.461,0.03,0.099 +46-65,F,Alaska,0.089,0.037,0.021,0.101,0.0,0.479,0.058,0.216 +46-65,F,Arizona,0.089,0.037,0.021,0.101,0.0,0.479,0.058,0.216 +46-65,F,Arkansas,0.138,0.017,0.026,0.219,0.01,0.461,0.03,0.099 +46-65,F,California,0.089,0.037,0.021,0.101,0.0,0.479,0.058,0.216 +46-65,F,Colorado,0.089,0.037,0.021,0.101,0.0,0.479,0.058,0.216 +46-65,F,Connecticut,0.299,0.037,0.031,0.104,0.015,0.461,0.027,0.027 +46-65,F,Delaware,0.138,0.017,0.026,0.219,0.01,0.461,0.03,0.099 +46-65,F,District of Columbia,0.138,0.017,0.026,0.219,0.01,0.461,0.03,0.099 +46-65,F,Florida,0.138,0.017,0.026,0.219,0.01,0.461,0.03,0.099 +46-65,F,Georgia,0.138,0.017,0.026,0.219,0.01,0.461,0.03,0.099 +46-65,F,Hawaii,0.089,0.037,0.021,0.101,0.0,0.479,0.058,0.216 +46-65,F,Idaho,0.089,0.037,0.021,0.101,0.0,0.479,0.058,0.216 +46-65,F,Illinois,0.147,0.034,0.023,0.116,0.007,0.56,0.025,0.088 +46-65,F,Indiana,0.147,0.034,0.023,0.116,0.007,0.56,0.025,0.088 +46-65,F,Iowa,0.147,0.034,0.023,0.116,0.007,0.56,0.025,0.088 +46-65,F,Kansas,0.147,0.034,0.023,0.116,0.007,0.56,0.025,0.088 +46-65,F,Kentucky,0.138,0.017,0.026,0.219,0.01,0.461,0.03,0.099 +46-65,F,Louisiana,0.138,0.017,0.026,0.219,0.01,0.461,0.03,0.099 +46-65,F,Maine,0.299,0.037,0.031,0.104,0.015,0.461,0.027,0.027 +46-65,F,Maryland,0.138,0.017,0.026,0.219,0.01,0.461,0.03,0.099 +46-65,F,Massachusetts,0.299,0.037,0.031,0.104,0.015,0.461,0.027,0.027 +46-65,F,Michigan,0.147,0.034,0.023,0.116,0.007,0.56,0.025,0.088 +46-65,F,Minnesota,0.147,0.034,0.023,0.116,0.007,0.56,0.025,0.088 +46-65,F,Mississippi,0.138,0.017,0.026,0.219,0.01,0.461,0.03,0.099 +46-65,F,Missouri,0.147,0.034,0.023,0.116,0.007,0.56,0.025,0.088 +46-65,F,Montana,0.089,0.037,0.021,0.101,0.0,0.479,0.058,0.216 +46-65,F,Nebraska,0.147,0.034,0.023,0.116,0.007,0.56,0.025,0.088 +46-65,F,Nevada,0.089,0.037,0.021,0.101,0.0,0.479,0.058,0.216 +46-65,F,New Hampshire,0.299,0.037,0.031,0.104,0.015,0.461,0.027,0.027 +46-65,F,New Jersey,0.299,0.037,0.031,0.104,0.015,0.461,0.027,0.027 +46-65,F,New Mexico,0.089,0.037,0.021,0.101,0.0,0.479,0.058,0.216 +46-65,F,New York,0.299,0.037,0.031,0.104,0.015,0.461,0.027,0.027 +46-65,F,North Carolina,0.138,0.017,0.026,0.219,0.01,0.461,0.03,0.099 +46-65,F,North Dakota,0.147,0.034,0.023,0.116,0.007,0.56,0.025,0.088 +46-65,F,Ohio,0.147,0.034,0.023,0.116,0.007,0.56,0.025,0.088 +46-65,F,Oklahoma,0.138,0.017,0.026,0.219,0.01,0.461,0.03,0.099 +46-65,F,Oregon,0.089,0.037,0.021,0.101,0.0,0.479,0.058,0.216 +46-65,F,Pennsylvania,0.299,0.037,0.031,0.104,0.015,0.461,0.027,0.027 +46-65,F,Rhode Island,0.299,0.037,0.031,0.104,0.015,0.461,0.027,0.027 +46-65,F,South Carolina,0.138,0.017,0.026,0.219,0.01,0.461,0.03,0.099 +46-65,F,South Dakota,0.147,0.034,0.023,0.116,0.007,0.56,0.025,0.088 +46-65,F,Tennessee,0.138,0.017,0.026,0.219,0.01,0.461,0.03,0.099 +46-65,F,Texas,0.138,0.017,0.026,0.219,0.01,0.461,0.03,0.099 +46-65,F,Utah,0.089,0.037,0.021,0.101,0.0,0.479,0.058,0.216 +46-65,F,Vermont,0.299,0.037,0.031,0.104,0.015,0.461,0.027,0.027 +46-65,F,Virginia,0.138,0.017,0.026,0.219,0.01,0.461,0.03,0.099 +46-65,F,Washington,0.089,0.037,0.021,0.101,0.0,0.479,0.058,0.216 +46-65,F,West Virginia,0.138,0.017,0.026,0.219,0.01,0.461,0.03,0.099 +46-65,F,Wisconsin,0.147,0.034,0.023,0.116,0.007,0.56,0.025,0.088 +46-65,F,Wyoming,0.089,0.037,0.021,0.101,0.0,0.479,0.058,0.216 +46-65,M,Alabama,0.137,0.023,0.013,0.229,0.026,0.41,0.078,0.084 +46-65,M,Alaska,0.166,0.0,0.0,0.163,0.021,0.604,0.007,0.039 +46-65,M,Arizona,0.166,0.0,0.0,0.163,0.021,0.604,0.007,0.039 +46-65,M,Arkansas,0.137,0.023,0.013,0.229,0.026,0.41,0.078,0.084 +46-65,M,California,0.166,0.0,0.0,0.163,0.021,0.604,0.007,0.039 +46-65,M,Colorado,0.166,0.0,0.0,0.163,0.021,0.604,0.007,0.039 +46-65,M,Connecticut,0.075,0.006,0.027,0.104,0.05,0.688,0.019,0.032 +46-65,M,Delaware,0.137,0.023,0.013,0.229,0.026,0.41,0.078,0.084 +46-65,M,District of Columbia,0.137,0.023,0.013,0.229,0.026,0.41,0.078,0.084 +46-65,M,Florida,0.137,0.023,0.013,0.229,0.026,0.41,0.078,0.084 +46-65,M,Georgia,0.137,0.023,0.013,0.229,0.026,0.41,0.078,0.084 +46-65,M,Hawaii,0.166,0.0,0.0,0.163,0.021,0.604,0.007,0.039 +46-65,M,Idaho,0.166,0.0,0.0,0.163,0.021,0.604,0.007,0.039 +46-65,M,Illinois,0.174,0.008,0.0,0.104,0.016,0.656,0.017,0.024 +46-65,M,Indiana,0.174,0.008,0.0,0.104,0.016,0.656,0.017,0.024 +46-65,M,Iowa,0.174,0.008,0.0,0.104,0.016,0.656,0.017,0.024 +46-65,M,Kansas,0.174,0.008,0.0,0.104,0.016,0.656,0.017,0.024 +46-65,M,Kentucky,0.137,0.023,0.013,0.229,0.026,0.41,0.078,0.084 +46-65,M,Louisiana,0.137,0.023,0.013,0.229,0.026,0.41,0.078,0.084 +46-65,M,Maine,0.075,0.006,0.027,0.104,0.05,0.688,0.019,0.032 +46-65,M,Maryland,0.137,0.023,0.013,0.229,0.026,0.41,0.078,0.084 +46-65,M,Massachusetts,0.075,0.006,0.027,0.104,0.05,0.688,0.019,0.032 +46-65,M,Michigan,0.174,0.008,0.0,0.104,0.016,0.656,0.017,0.024 +46-65,M,Minnesota,0.174,0.008,0.0,0.104,0.016,0.656,0.017,0.024 +46-65,M,Mississippi,0.137,0.023,0.013,0.229,0.026,0.41,0.078,0.084 +46-65,M,Missouri,0.174,0.008,0.0,0.104,0.016,0.656,0.017,0.024 +46-65,M,Montana,0.166,0.0,0.0,0.163,0.021,0.604,0.007,0.039 +46-65,M,Nebraska,0.174,0.008,0.0,0.104,0.016,0.656,0.017,0.024 +46-65,M,Nevada,0.166,0.0,0.0,0.163,0.021,0.604,0.007,0.039 +46-65,M,New Hampshire,0.075,0.006,0.027,0.104,0.05,0.688,0.019,0.032 +46-65,M,New Jersey,0.075,0.006,0.027,0.104,0.05,0.688,0.019,0.032 +46-65,M,New Mexico,0.166,0.0,0.0,0.163,0.021,0.604,0.007,0.039 +46-65,M,New York,0.075,0.006,0.027,0.104,0.05,0.688,0.019,0.032 +46-65,M,North Carolina,0.137,0.023,0.013,0.229,0.026,0.41,0.078,0.084 +46-65,M,North Dakota,0.174,0.008,0.0,0.104,0.016,0.656,0.017,0.024 +46-65,M,Ohio,0.174,0.008,0.0,0.104,0.016,0.656,0.017,0.024 +46-65,M,Oklahoma,0.137,0.023,0.013,0.229,0.026,0.41,0.078,0.084 +46-65,M,Oregon,0.166,0.0,0.0,0.163,0.021,0.604,0.007,0.039 +46-65,M,Pennsylvania,0.075,0.006,0.027,0.104,0.05,0.688,0.019,0.032 +46-65,M,Rhode Island,0.075,0.006,0.027,0.104,0.05,0.688,0.019,0.032 +46-65,M,South Carolina,0.137,0.023,0.013,0.229,0.026,0.41,0.078,0.084 +46-65,M,South Dakota,0.174,0.008,0.0,0.104,0.016,0.656,0.017,0.024 +46-65,M,Tennessee,0.137,0.023,0.013,0.229,0.026,0.41,0.078,0.084 +46-65,M,Texas,0.137,0.023,0.013,0.229,0.026,0.41,0.078,0.084 +46-65,M,Utah,0.166,0.0,0.0,0.163,0.021,0.604,0.007,0.039 +46-65,M,Vermont,0.075,0.006,0.027,0.104,0.05,0.688,0.019,0.032 +46-65,M,Virginia,0.137,0.023,0.013,0.229,0.026,0.41,0.078,0.084 +46-65,M,Washington,0.166,0.0,0.0,0.163,0.021,0.604,0.007,0.039 +46-65,M,West Virginia,0.137,0.023,0.013,0.229,0.026,0.41,0.078,0.084 +46-65,M,Wisconsin,0.174,0.008,0.0,0.104,0.016,0.656,0.017,0.024 +46-65,M,Wyoming,0.166,0.0,0.0,0.163,0.021,0.604,0.007,0.039 +65-103,F,Alabama,0.164,0.013,0.016,0.215,0.019,0.511,0.014,0.05 +65-103,F,Alaska,0.285,0.024,0.009,0.145,0.008,0.44,0.022,0.067 +65-103,F,Arizona,0.285,0.024,0.009,0.145,0.008,0.44,0.022,0.067 +65-103,F,Arkansas,0.164,0.013,0.016,0.215,0.019,0.511,0.014,0.05 +65-103,F,California,0.285,0.024,0.009,0.145,0.008,0.44,0.022,0.067 +65-103,F,Colorado,0.285,0.024,0.009,0.145,0.008,0.44,0.022,0.067 +65-103,F,Connecticut,0.14,0.005,0.013,0.08,0.028,0.7,0.008,0.026 +65-103,F,Delaware,0.164,0.013,0.016,0.215,0.019,0.511,0.014,0.05 +65-103,F,District of Columbia,0.164,0.013,0.016,0.215,0.019,0.511,0.014,0.05 +65-103,F,Florida,0.164,0.013,0.016,0.215,0.019,0.511,0.014,0.05 +65-103,F,Georgia,0.164,0.013,0.016,0.215,0.019,0.511,0.014,0.05 +65-103,F,Hawaii,0.285,0.024,0.009,0.145,0.008,0.44,0.022,0.067 +65-103,F,Idaho,0.285,0.024,0.009,0.145,0.008,0.44,0.022,0.067 +65-103,F,Illinois,0.232,0.011,0.01,0.174,0.009,0.516,0.0,0.049 +65-103,F,Indiana,0.232,0.011,0.01,0.174,0.009,0.516,0.0,0.049 +65-103,F,Iowa,0.232,0.011,0.01,0.174,0.009,0.516,0.0,0.049 +65-103,F,Kansas,0.232,0.011,0.01,0.174,0.009,0.516,0.0,0.049 +65-103,F,Kentucky,0.164,0.013,0.016,0.215,0.019,0.511,0.014,0.05 +65-103,F,Louisiana,0.164,0.013,0.016,0.215,0.019,0.511,0.014,0.05 +65-103,F,Maine,0.14,0.005,0.013,0.08,0.028,0.7,0.008,0.026 +65-103,F,Maryland,0.164,0.013,0.016,0.215,0.019,0.511,0.014,0.05 +65-103,F,Massachusetts,0.14,0.005,0.013,0.08,0.028,0.7,0.008,0.026 +65-103,F,Michigan,0.232,0.011,0.01,0.174,0.009,0.516,0.0,0.049 +65-103,F,Minnesota,0.232,0.011,0.01,0.174,0.009,0.516,0.0,0.049 +65-103,F,Mississippi,0.164,0.013,0.016,0.215,0.019,0.511,0.014,0.05 +65-103,F,Missouri,0.232,0.011,0.01,0.174,0.009,0.516,0.0,0.049 +65-103,F,Montana,0.285,0.024,0.009,0.145,0.008,0.44,0.022,0.067 +65-103,F,Nebraska,0.232,0.011,0.01,0.174,0.009,0.516,0.0,0.049 +65-103,F,Nevada,0.285,0.024,0.009,0.145,0.008,0.44,0.022,0.067 +65-103,F,New Hampshire,0.14,0.005,0.013,0.08,0.028,0.7,0.008,0.026 +65-103,F,New Jersey,0.14,0.005,0.013,0.08,0.028,0.7,0.008,0.026 +65-103,F,New Mexico,0.285,0.024,0.009,0.145,0.008,0.44,0.022,0.067 +65-103,F,New York,0.14,0.005,0.013,0.08,0.028,0.7,0.008,0.026 +65-103,F,North Carolina,0.164,0.013,0.016,0.215,0.019,0.511,0.014,0.05 +65-103,F,North Dakota,0.232,0.011,0.01,0.174,0.009,0.516,0.0,0.049 +65-103,F,Ohio,0.232,0.011,0.01,0.174,0.009,0.516,0.0,0.049 +65-103,F,Oklahoma,0.164,0.013,0.016,0.215,0.019,0.511,0.014,0.05 +65-103,F,Oregon,0.285,0.024,0.009,0.145,0.008,0.44,0.022,0.067 +65-103,F,Pennsylvania,0.14,0.005,0.013,0.08,0.028,0.7,0.008,0.026 +65-103,F,Rhode Island,0.14,0.005,0.013,0.08,0.028,0.7,0.008,0.026 +65-103,F,South Carolina,0.164,0.013,0.016,0.215,0.019,0.511,0.014,0.05 +65-103,F,South Dakota,0.232,0.011,0.01,0.174,0.009,0.516,0.0,0.049 +65-103,F,Tennessee,0.164,0.013,0.016,0.215,0.019,0.511,0.014,0.05 +65-103,F,Texas,0.164,0.013,0.016,0.215,0.019,0.511,0.014,0.05 +65-103,F,Utah,0.285,0.024,0.009,0.145,0.008,0.44,0.022,0.067 +65-103,F,Vermont,0.14,0.005,0.013,0.08,0.028,0.7,0.008,0.026 +65-103,F,Virginia,0.164,0.013,0.016,0.215,0.019,0.511,0.014,0.05 +65-103,F,Washington,0.285,0.024,0.009,0.145,0.008,0.44,0.022,0.067 +65-103,F,West Virginia,0.164,0.013,0.016,0.215,0.019,0.511,0.014,0.05 +65-103,F,Wisconsin,0.232,0.011,0.01,0.174,0.009,0.516,0.0,0.049 +65-103,F,Wyoming,0.285,0.024,0.009,0.145,0.008,0.44,0.022,0.067 +65-103,M,Alabama,0.127,0.01,0.0,0.255,0.009,0.568,0.017,0.014 +65-103,M,Alaska,0.157,0.013,0.0,0.25,0.009,0.522,0.019,0.029 +65-103,M,Arizona,0.157,0.013,0.0,0.25,0.009,0.522,0.019,0.029 +65-103,M,Arkansas,0.127,0.01,0.0,0.255,0.009,0.568,0.017,0.014 +65-103,M,California,0.157,0.013,0.0,0.25,0.009,0.522,0.019,0.029 +65-103,M,Colorado,0.157,0.013,0.0,0.25,0.009,0.522,0.019,0.029 +65-103,M,Connecticut,0.077,0.0,0.0,0.145,0.029,0.696,0.017,0.037 +65-103,M,Delaware,0.127,0.01,0.0,0.255,0.009,0.568,0.017,0.014 +65-103,M,District of Columbia,0.127,0.01,0.0,0.255,0.009,0.568,0.017,0.014 +65-103,M,Florida,0.127,0.01,0.0,0.255,0.009,0.568,0.017,0.014 +65-103,M,Georgia,0.127,0.01,0.0,0.255,0.009,0.568,0.017,0.014 +65-103,M,Hawaii,0.157,0.013,0.0,0.25,0.009,0.522,0.019,0.029 +65-103,M,Idaho,0.157,0.013,0.0,0.25,0.009,0.522,0.019,0.029 +65-103,M,Illinois,0.121,0.005,0.0,0.176,0.006,0.644,0.015,0.033 +65-103,M,Indiana,0.121,0.005,0.0,0.176,0.006,0.644,0.015,0.033 +65-103,M,Iowa,0.121,0.005,0.0,0.176,0.006,0.644,0.015,0.033 +65-103,M,Kansas,0.121,0.005,0.0,0.176,0.006,0.644,0.015,0.033 +65-103,M,Kentucky,0.127,0.01,0.0,0.255,0.009,0.568,0.017,0.014 +65-103,M,Louisiana,0.127,0.01,0.0,0.255,0.009,0.568,0.017,0.014 +65-103,M,Maine,0.077,0.0,0.0,0.145,0.029,0.696,0.017,0.037 +65-103,M,Maryland,0.127,0.01,0.0,0.255,0.009,0.568,0.017,0.014 +65-103,M,Massachusetts,0.077,0.0,0.0,0.145,0.029,0.696,0.017,0.037 +65-103,M,Michigan,0.121,0.005,0.0,0.176,0.006,0.644,0.015,0.033 +65-103,M,Minnesota,0.121,0.005,0.0,0.176,0.006,0.644,0.015,0.033 +65-103,M,Mississippi,0.127,0.01,0.0,0.255,0.009,0.568,0.017,0.014 +65-103,M,Missouri,0.121,0.005,0.0,0.176,0.006,0.644,0.015,0.033 +65-103,M,Montana,0.157,0.013,0.0,0.25,0.009,0.522,0.019,0.029 +65-103,M,Nebraska,0.121,0.005,0.0,0.176,0.006,0.644,0.015,0.033 +65-103,M,Nevada,0.157,0.013,0.0,0.25,0.009,0.522,0.019,0.029 +65-103,M,New Hampshire,0.077,0.0,0.0,0.145,0.029,0.696,0.017,0.037 +65-103,M,New Jersey,0.077,0.0,0.0,0.145,0.029,0.696,0.017,0.037 +65-103,M,New Mexico,0.157,0.013,0.0,0.25,0.009,0.522,0.019,0.029 +65-103,M,New York,0.077,0.0,0.0,0.145,0.029,0.696,0.017,0.037 +65-103,M,North Carolina,0.127,0.01,0.0,0.255,0.009,0.568,0.017,0.014 +65-103,M,North Dakota,0.121,0.005,0.0,0.176,0.006,0.644,0.015,0.033 +65-103,M,Ohio,0.121,0.005,0.0,0.176,0.006,0.644,0.015,0.033 +65-103,M,Oklahoma,0.127,0.01,0.0,0.255,0.009,0.568,0.017,0.014 +65-103,M,Oregon,0.157,0.013,0.0,0.25,0.009,0.522,0.019,0.029 +65-103,M,Pennsylvania,0.077,0.0,0.0,0.145,0.029,0.696,0.017,0.037 +65-103,M,Rhode Island,0.077,0.0,0.0,0.145,0.029,0.696,0.017,0.037 +65-103,M,South Carolina,0.127,0.01,0.0,0.255,0.009,0.568,0.017,0.014 +65-103,M,South Dakota,0.121,0.005,0.0,0.176,0.006,0.644,0.015,0.033 +65-103,M,Tennessee,0.127,0.01,0.0,0.255,0.009,0.568,0.017,0.014 +65-103,M,Texas,0.127,0.01,0.0,0.255,0.009,0.568,0.017,0.014 +65-103,M,Utah,0.157,0.013,0.0,0.25,0.009,0.522,0.019,0.029 +65-103,M,Vermont,0.077,0.0,0.0,0.145,0.029,0.696,0.017,0.037 +65-103,M,Virginia,0.127,0.01,0.0,0.255,0.009,0.568,0.017,0.014 +65-103,M,Washington,0.157,0.013,0.0,0.25,0.009,0.522,0.019,0.029 +65-103,M,West Virginia,0.127,0.01,0.0,0.255,0.009,0.568,0.017,0.014 +65-103,M,Wisconsin,0.121,0.005,0.0,0.176,0.006,0.644,0.015,0.033 +65-103,M,Wyoming,0.157,0.013,0.0,0.25,0.009,0.522,0.019,0.029 +8-11,F,Illinois,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +8-11,F,Indiana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +8-11,F,Iowa,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +8-11,F,Kansas,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +8-11,F,Michigan,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +8-11,F,Minnesota,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +8-11,F,Missouri,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +8-11,F,Nebraska,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +8-11,F,North Dakota,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +8-11,F,Ohio,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +8-11,F,South Dakota,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +8-11,F,Wisconsin,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 diff --git a/src/main/resources/modules/lookup_tables/beta_blocker_labetalol_product_distribution.csv b/src/main/resources/modules/lookup_tables/beta_blocker_labetalol_product_distribution.csv new file mode 100644 index 0000000..38aab0f --- /dev/null +++ b/src/main/resources/modules/lookup_tables/beta_blocker_labetalol_product_distribution.csv @@ -0,0 +1,328 @@ +age,gender,state,Prescribe_Labetalol_Hydrochloride_100_Mg_Oral_Tablet,Prescribe_Labetalol_Hydrochloride_200_Mg_Oral_Tablet,Prescribe_Labetalol_Hydrochloride_300_Mg_Oral_Tablet +26-35,F,Alabama,0.534,0.466,0.0 +26-35,F,Alaska,0.0,0.0,1.0 +26-35,F,Arizona,0.0,0.0,1.0 +26-35,F,Arkansas,0.534,0.466,0.0 +26-35,F,California,0.0,0.0,1.0 +26-35,F,Colorado,0.0,0.0,1.0 +26-35,F,Connecticut,1.0,0.0,0.0 +26-35,F,Delaware,0.534,0.466,0.0 +26-35,F,District of Columbia,0.534,0.466,0.0 +26-35,F,Florida,0.534,0.466,0.0 +26-35,F,Georgia,0.534,0.466,0.0 +26-35,F,Hawaii,0.0,0.0,1.0 +26-35,F,Idaho,0.0,0.0,1.0 +26-35,F,Illinois,0.538,0.462,0.0 +26-35,F,Indiana,0.538,0.462,0.0 +26-35,F,Iowa,0.538,0.462,0.0 +26-35,F,Kansas,0.538,0.462,0.0 +26-35,F,Kentucky,0.534,0.466,0.0 +26-35,F,Louisiana,0.534,0.466,0.0 +26-35,F,Maine,1.0,0.0,0.0 +26-35,F,Maryland,0.534,0.466,0.0 +26-35,F,Massachusetts,1.0,0.0,0.0 +26-35,F,Michigan,0.538,0.462,0.0 +26-35,F,Minnesota,0.538,0.462,0.0 +26-35,F,Mississippi,0.534,0.466,0.0 +26-35,F,Missouri,0.538,0.462,0.0 +26-35,F,Montana,0.0,0.0,1.0 +26-35,F,Nebraska,0.538,0.462,0.0 +26-35,F,Nevada,0.0,0.0,1.0 +26-35,F,New Hampshire,1.0,0.0,0.0 +26-35,F,New Jersey,1.0,0.0,0.0 +26-35,F,New Mexico,0.0,0.0,1.0 +26-35,F,New York,1.0,0.0,0.0 +26-35,F,North Carolina,0.534,0.466,0.0 +26-35,F,North Dakota,0.538,0.462,0.0 +26-35,F,Ohio,0.538,0.462,0.0 +26-35,F,Oklahoma,0.534,0.466,0.0 +26-35,F,Oregon,0.0,0.0,1.0 +26-35,F,Pennsylvania,1.0,0.0,0.0 +26-35,F,Rhode Island,1.0,0.0,0.0 +26-35,F,South Carolina,0.534,0.466,0.0 +26-35,F,South Dakota,0.538,0.462,0.0 +26-35,F,Tennessee,0.534,0.466,0.0 +26-35,F,Texas,0.534,0.466,0.0 +26-35,F,Utah,0.0,0.0,1.0 +26-35,F,Vermont,1.0,0.0,0.0 +26-35,F,Virginia,0.534,0.466,0.0 +26-35,F,Washington,0.0,0.0,1.0 +26-35,F,West Virginia,0.534,0.466,0.0 +26-35,F,Wisconsin,0.538,0.462,0.0 +26-35,F,Wyoming,0.0,0.0,1.0 +26-35,M,Alabama,1.0,0.0,0.0 +26-35,M,Arkansas,1.0,0.0,0.0 +26-35,M,Delaware,1.0,0.0,0.0 +26-35,M,District of Columbia,1.0,0.0,0.0 +26-35,M,Florida,1.0,0.0,0.0 +26-35,M,Georgia,1.0,0.0,0.0 +26-35,M,Kentucky,1.0,0.0,0.0 +26-35,M,Louisiana,1.0,0.0,0.0 +26-35,M,Maryland,1.0,0.0,0.0 +26-35,M,Mississippi,1.0,0.0,0.0 +26-35,M,North Carolina,1.0,0.0,0.0 +26-35,M,Oklahoma,1.0,0.0,0.0 +26-35,M,South Carolina,1.0,0.0,0.0 +26-35,M,Tennessee,1.0,0.0,0.0 +26-35,M,Texas,1.0,0.0,0.0 +26-35,M,Virginia,1.0,0.0,0.0 +26-35,M,West Virginia,1.0,0.0,0.0 +36-45,F,Alabama,0.582,0.299,0.119 +36-45,F,Arkansas,0.582,0.299,0.119 +36-45,F,Connecticut,0.0,1.0,0.0 +36-45,F,Delaware,0.582,0.299,0.119 +36-45,F,District of Columbia,0.582,0.299,0.119 +36-45,F,Florida,0.582,0.299,0.119 +36-45,F,Georgia,0.582,0.299,0.119 +36-45,F,Illinois,0.84,0.08,0.08 +36-45,F,Indiana,0.84,0.08,0.08 +36-45,F,Iowa,0.84,0.08,0.08 +36-45,F,Kansas,0.84,0.08,0.08 +36-45,F,Kentucky,0.582,0.299,0.119 +36-45,F,Louisiana,0.582,0.299,0.119 +36-45,F,Maine,0.0,1.0,0.0 +36-45,F,Maryland,0.582,0.299,0.119 +36-45,F,Massachusetts,0.0,1.0,0.0 +36-45,F,Michigan,0.84,0.08,0.08 +36-45,F,Minnesota,0.84,0.08,0.08 +36-45,F,Mississippi,0.582,0.299,0.119 +36-45,F,Missouri,0.84,0.08,0.08 +36-45,F,Nebraska,0.84,0.08,0.08 +36-45,F,New Hampshire,0.0,1.0,0.0 +36-45,F,New Jersey,0.0,1.0,0.0 +36-45,F,New York,0.0,1.0,0.0 +36-45,F,North Carolina,0.582,0.299,0.119 +36-45,F,North Dakota,0.84,0.08,0.08 +36-45,F,Ohio,0.84,0.08,0.08 +36-45,F,Oklahoma,0.582,0.299,0.119 +36-45,F,Pennsylvania,0.0,1.0,0.0 +36-45,F,Rhode Island,0.0,1.0,0.0 +36-45,F,South Carolina,0.582,0.299,0.119 +36-45,F,South Dakota,0.84,0.08,0.08 +36-45,F,Tennessee,0.582,0.299,0.119 +36-45,F,Texas,0.582,0.299,0.119 +36-45,F,Vermont,0.0,1.0,0.0 +36-45,F,Virginia,0.582,0.299,0.119 +36-45,F,West Virginia,0.582,0.299,0.119 +36-45,F,Wisconsin,0.84,0.08,0.08 +36-45,M,Alabama,0.0,1.0,0.0 +36-45,M,Alaska,0.0,0.0,0.0 +36-45,M,Arizona,0.0,0.0,0.0 +36-45,M,Arkansas,0.0,1.0,0.0 +36-45,M,California,0.0,0.0,0.0 +36-45,M,Colorado,0.0,0.0,0.0 +36-45,M,Delaware,0.0,1.0,0.0 +36-45,M,District of Columbia,0.0,1.0,0.0 +36-45,M,Florida,0.0,1.0,0.0 +36-45,M,Georgia,0.0,1.0,0.0 +36-45,M,Hawaii,0.0,0.0,0.0 +36-45,M,Idaho,0.0,0.0,0.0 +36-45,M,Kentucky,0.0,1.0,0.0 +36-45,M,Louisiana,0.0,1.0,0.0 +36-45,M,Maryland,0.0,1.0,0.0 +36-45,M,Mississippi,0.0,1.0,0.0 +36-45,M,Montana,0.0,0.0,0.0 +36-45,M,Nevada,0.0,0.0,0.0 +36-45,M,New Mexico,0.0,0.0,0.0 +36-45,M,North Carolina,0.0,1.0,0.0 +36-45,M,Oklahoma,0.0,1.0,0.0 +36-45,M,Oregon,0.0,0.0,0.0 +36-45,M,South Carolina,0.0,1.0,0.0 +36-45,M,Tennessee,0.0,1.0,0.0 +36-45,M,Texas,0.0,1.0,0.0 +36-45,M,Utah,0.0,0.0,0.0 +36-45,M,Virginia,0.0,1.0,0.0 +36-45,M,Washington,0.0,0.0,0.0 +36-45,M,West Virginia,0.0,1.0,0.0 +36-45,M,Wyoming,0.0,0.0,0.0 +46-65,F,Alabama,0.607,0.0,0.393 +46-65,F,Arkansas,0.607,0.0,0.393 +46-65,F,Connecticut,0.0,0.605,0.395 +46-65,F,Delaware,0.607,0.0,0.393 +46-65,F,District of Columbia,0.607,0.0,0.393 +46-65,F,Florida,0.607,0.0,0.393 +46-65,F,Georgia,0.607,0.0,0.393 +46-65,F,Illinois,0.0,1.0,0.0 +46-65,F,Indiana,0.0,1.0,0.0 +46-65,F,Iowa,0.0,1.0,0.0 +46-65,F,Kansas,0.0,1.0,0.0 +46-65,F,Kentucky,0.607,0.0,0.393 +46-65,F,Louisiana,0.607,0.0,0.393 +46-65,F,Maine,0.0,0.605,0.395 +46-65,F,Maryland,0.607,0.0,0.393 +46-65,F,Massachusetts,0.0,0.605,0.395 +46-65,F,Michigan,0.0,1.0,0.0 +46-65,F,Minnesota,0.0,1.0,0.0 +46-65,F,Mississippi,0.607,0.0,0.393 +46-65,F,Missouri,0.0,1.0,0.0 +46-65,F,Nebraska,0.0,1.0,0.0 +46-65,F,New Hampshire,0.0,0.605,0.395 +46-65,F,New Jersey,0.0,0.605,0.395 +46-65,F,New York,0.0,0.605,0.395 +46-65,F,North Carolina,0.607,0.0,0.393 +46-65,F,North Dakota,0.0,1.0,0.0 +46-65,F,Ohio,0.0,1.0,0.0 +46-65,F,Oklahoma,0.607,0.0,0.393 +46-65,F,Pennsylvania,0.0,0.605,0.395 +46-65,F,Rhode Island,0.0,0.605,0.395 +46-65,F,South Carolina,0.607,0.0,0.393 +46-65,F,South Dakota,0.0,1.0,0.0 +46-65,F,Tennessee,0.607,0.0,0.393 +46-65,F,Texas,0.607,0.0,0.393 +46-65,F,Vermont,0.0,0.605,0.395 +46-65,F,Virginia,0.607,0.0,0.393 +46-65,F,West Virginia,0.607,0.0,0.393 +46-65,F,Wisconsin,0.0,1.0,0.0 +46-65,M,Alabama,0.353,0.106,0.541 +46-65,M,Alaska,0.0,1.0,0.0 +46-65,M,Arizona,0.0,1.0,0.0 +46-65,M,Arkansas,0.353,0.106,0.541 +46-65,M,California,0.0,1.0,0.0 +46-65,M,Colorado,0.0,1.0,0.0 +46-65,M,Connecticut,0.25,0.299,0.45 +46-65,M,Delaware,0.353,0.106,0.541 +46-65,M,District of Columbia,0.353,0.106,0.541 +46-65,M,Florida,0.353,0.106,0.541 +46-65,M,Georgia,0.353,0.106,0.541 +46-65,M,Hawaii,0.0,1.0,0.0 +46-65,M,Idaho,0.0,1.0,0.0 +46-65,M,Illinois,0.0,1.0,0.0 +46-65,M,Indiana,0.0,1.0,0.0 +46-65,M,Iowa,0.0,1.0,0.0 +46-65,M,Kansas,0.0,1.0,0.0 +46-65,M,Kentucky,0.353,0.106,0.541 +46-65,M,Louisiana,0.353,0.106,0.541 +46-65,M,Maine,0.25,0.299,0.45 +46-65,M,Maryland,0.353,0.106,0.541 +46-65,M,Massachusetts,0.25,0.299,0.45 +46-65,M,Michigan,0.0,1.0,0.0 +46-65,M,Minnesota,0.0,1.0,0.0 +46-65,M,Mississippi,0.353,0.106,0.541 +46-65,M,Missouri,0.0,1.0,0.0 +46-65,M,Montana,0.0,1.0,0.0 +46-65,M,Nebraska,0.0,1.0,0.0 +46-65,M,Nevada,0.0,1.0,0.0 +46-65,M,New Hampshire,0.25,0.299,0.45 +46-65,M,New Jersey,0.25,0.299,0.45 +46-65,M,New Mexico,0.0,1.0,0.0 +46-65,M,New York,0.25,0.299,0.45 +46-65,M,North Carolina,0.353,0.106,0.541 +46-65,M,North Dakota,0.0,1.0,0.0 +46-65,M,Ohio,0.0,1.0,0.0 +46-65,M,Oklahoma,0.353,0.106,0.541 +46-65,M,Oregon,0.0,1.0,0.0 +46-65,M,Pennsylvania,0.25,0.299,0.45 +46-65,M,Rhode Island,0.25,0.299,0.45 +46-65,M,South Carolina,0.353,0.106,0.541 +46-65,M,South Dakota,0.0,1.0,0.0 +46-65,M,Tennessee,0.353,0.106,0.541 +46-65,M,Texas,0.353,0.106,0.541 +46-65,M,Utah,0.0,1.0,0.0 +46-65,M,Vermont,0.25,0.299,0.45 +46-65,M,Virginia,0.353,0.106,0.541 +46-65,M,Washington,0.0,1.0,0.0 +46-65,M,West Virginia,0.353,0.106,0.541 +46-65,M,Wisconsin,0.0,1.0,0.0 +46-65,M,Wyoming,0.0,1.0,0.0 +65-103,F,Alabama,0.701,0.299,0.0 +65-103,F,Alaska,0.633,0.367,0.0 +65-103,F,Arizona,0.633,0.367,0.0 +65-103,F,Arkansas,0.701,0.299,0.0 +65-103,F,California,0.633,0.367,0.0 +65-103,F,Colorado,0.633,0.367,0.0 +65-103,F,Connecticut,0.428,0.099,0.473 +65-103,F,Delaware,0.701,0.299,0.0 +65-103,F,District of Columbia,0.701,0.299,0.0 +65-103,F,Florida,0.701,0.299,0.0 +65-103,F,Georgia,0.701,0.299,0.0 +65-103,F,Hawaii,0.633,0.367,0.0 +65-103,F,Idaho,0.633,0.367,0.0 +65-103,F,Illinois,0.312,0.375,0.312 +65-103,F,Indiana,0.312,0.375,0.312 +65-103,F,Iowa,0.312,0.375,0.312 +65-103,F,Kansas,0.312,0.375,0.312 +65-103,F,Kentucky,0.701,0.299,0.0 +65-103,F,Louisiana,0.701,0.299,0.0 +65-103,F,Maine,0.428,0.099,0.473 +65-103,F,Maryland,0.701,0.299,0.0 +65-103,F,Massachusetts,0.428,0.099,0.473 +65-103,F,Michigan,0.312,0.375,0.312 +65-103,F,Minnesota,0.312,0.375,0.312 +65-103,F,Mississippi,0.701,0.299,0.0 +65-103,F,Missouri,0.312,0.375,0.312 +65-103,F,Montana,0.633,0.367,0.0 +65-103,F,Nebraska,0.312,0.375,0.312 +65-103,F,Nevada,0.633,0.367,0.0 +65-103,F,New Hampshire,0.428,0.099,0.473 +65-103,F,New Jersey,0.428,0.099,0.473 +65-103,F,New Mexico,0.633,0.367,0.0 +65-103,F,New York,0.428,0.099,0.473 +65-103,F,North Carolina,0.701,0.299,0.0 +65-103,F,North Dakota,0.312,0.375,0.312 +65-103,F,Ohio,0.312,0.375,0.312 +65-103,F,Oklahoma,0.701,0.299,0.0 +65-103,F,Oregon,0.633,0.367,0.0 +65-103,F,Pennsylvania,0.428,0.099,0.473 +65-103,F,Rhode Island,0.428,0.099,0.473 +65-103,F,South Carolina,0.701,0.299,0.0 +65-103,F,South Dakota,0.312,0.375,0.312 +65-103,F,Tennessee,0.701,0.299,0.0 +65-103,F,Texas,0.701,0.299,0.0 +65-103,F,Utah,0.633,0.367,0.0 +65-103,F,Vermont,0.428,0.099,0.473 +65-103,F,Virginia,0.701,0.299,0.0 +65-103,F,Washington,0.633,0.367,0.0 +65-103,F,West Virginia,0.701,0.299,0.0 +65-103,F,Wisconsin,0.312,0.375,0.312 +65-103,F,Wyoming,0.633,0.367,0.0 +65-103,M,Alabama,0.506,0.494,0.0 +65-103,M,Alaska,0.0,0.313,0.687 +65-103,M,Arizona,0.0,0.313,0.687 +65-103,M,Arkansas,0.506,0.494,0.0 +65-103,M,California,0.0,0.313,0.687 +65-103,M,Colorado,0.0,0.313,0.687 +65-103,M,Connecticut,0.311,0.523,0.166 +65-103,M,Delaware,0.506,0.494,0.0 +65-103,M,District of Columbia,0.506,0.494,0.0 +65-103,M,Florida,0.506,0.494,0.0 +65-103,M,Georgia,0.506,0.494,0.0 +65-103,M,Hawaii,0.0,0.313,0.687 +65-103,M,Idaho,0.0,0.313,0.687 +65-103,M,Illinois,0.0,1.0,0.0 +65-103,M,Indiana,0.0,1.0,0.0 +65-103,M,Iowa,0.0,1.0,0.0 +65-103,M,Kansas,0.0,1.0,0.0 +65-103,M,Kentucky,0.506,0.494,0.0 +65-103,M,Louisiana,0.506,0.494,0.0 +65-103,M,Maine,0.311,0.523,0.166 +65-103,M,Maryland,0.506,0.494,0.0 +65-103,M,Massachusetts,0.311,0.523,0.166 +65-103,M,Michigan,0.0,1.0,0.0 +65-103,M,Minnesota,0.0,1.0,0.0 +65-103,M,Mississippi,0.506,0.494,0.0 +65-103,M,Missouri,0.0,1.0,0.0 +65-103,M,Montana,0.0,0.313,0.687 +65-103,M,Nebraska,0.0,1.0,0.0 +65-103,M,Nevada,0.0,0.313,0.687 +65-103,M,New Hampshire,0.311,0.523,0.166 +65-103,M,New Jersey,0.311,0.523,0.166 +65-103,M,New Mexico,0.0,0.313,0.687 +65-103,M,New York,0.311,0.523,0.166 +65-103,M,North Carolina,0.506,0.494,0.0 +65-103,M,North Dakota,0.0,1.0,0.0 +65-103,M,Ohio,0.0,1.0,0.0 +65-103,M,Oklahoma,0.506,0.494,0.0 +65-103,M,Oregon,0.0,0.313,0.687 +65-103,M,Pennsylvania,0.311,0.523,0.166 +65-103,M,Rhode Island,0.311,0.523,0.166 +65-103,M,South Carolina,0.506,0.494,0.0 +65-103,M,South Dakota,0.0,1.0,0.0 +65-103,M,Tennessee,0.506,0.494,0.0 +65-103,M,Texas,0.506,0.494,0.0 +65-103,M,Utah,0.0,0.313,0.687 +65-103,M,Vermont,0.311,0.523,0.166 +65-103,M,Virginia,0.506,0.494,0.0 +65-103,M,Washington,0.0,0.313,0.687 +65-103,M,West Virginia,0.506,0.494,0.0 +65-103,M,Wisconsin,0.0,1.0,0.0 +65-103,M,Wyoming,0.0,0.313,0.687 diff --git a/src/main/resources/modules/lookup_tables/beta_blocker_metoprolol_product_distribution.csv b/src/main/resources/modules/lookup_tables/beta_blocker_metoprolol_product_distribution.csv new file mode 100644 index 0000000..f779fa2 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/beta_blocker_metoprolol_product_distribution.csv @@ -0,0 +1,407 @@ +age,gender,state,Prescribe_24_Hr_Metoprolol_Succinate_100_Mg_Extended_Release_Oral_Tablet,Prescribe_24_Hr_Metoprolol_Succinate_200_Mg_Extended_Release_Oral_Tablet,Prescribe_24_Hr_Metoprolol_Succinate_25_Mg_Extended_Release_Oral_Tablet,Prescribe_24_Hr_Metoprolol_Succinate_25_Mg_Extended_Release_Oral_Tablet_Toprol,Prescribe_24_Hr_Metoprolol_Succinate_50_Mg_Extended_Release_Oral_Tablet,Prescribe_24_Hr_Metoprolol_Succinate_50_Mg_Extended_Release_Oral_Tablet_Toprol,Prescribe_5_Ml_Metoprolol_Tartrate_1_Mg_Ml_Cartridge,Prescribe_5_Ml_Metoprolol_Tartrate_1_Mg_Ml_Injection,Prescribe_Metoprolol_Tartrate_100_Mg_Oral_Tablet,Prescribe_Metoprolol_Tartrate_25_Mg_Oral_Tablet,Prescribe_Metoprolol_Tartrate_50_Mg_Oral_Tablet,Prescribe_Metoprolol_Tartrate_50_Mg_Oral_Tablet_Lopressor +12-17,M,Illinois,0.0,0.0,0.0,0.0,0.0,0.0,0.333,0.333,0.0,0.333,0.0,0.0 +12-17,M,Indiana,0.0,0.0,0.0,0.0,0.0,0.0,0.333,0.333,0.0,0.333,0.0,0.0 +12-17,M,Iowa,0.0,0.0,0.0,0.0,0.0,0.0,0.333,0.333,0.0,0.333,0.0,0.0 +12-17,M,Kansas,0.0,0.0,0.0,0.0,0.0,0.0,0.333,0.333,0.0,0.333,0.0,0.0 +12-17,M,Michigan,0.0,0.0,0.0,0.0,0.0,0.0,0.333,0.333,0.0,0.333,0.0,0.0 +12-17,M,Minnesota,0.0,0.0,0.0,0.0,0.0,0.0,0.333,0.333,0.0,0.333,0.0,0.0 +12-17,M,Missouri,0.0,0.0,0.0,0.0,0.0,0.0,0.333,0.333,0.0,0.333,0.0,0.0 +12-17,M,Nebraska,0.0,0.0,0.0,0.0,0.0,0.0,0.333,0.333,0.0,0.333,0.0,0.0 +12-17,M,North Dakota,0.0,0.0,0.0,0.0,0.0,0.0,0.333,0.333,0.0,0.333,0.0,0.0 +12-17,M,Ohio,0.0,0.0,0.0,0.0,0.0,0.0,0.333,0.333,0.0,0.333,0.0,0.0 +12-17,M,South Dakota,0.0,0.0,0.0,0.0,0.0,0.0,0.333,0.333,0.0,0.333,0.0,0.0 +12-17,M,Wisconsin,0.0,0.0,0.0,0.0,0.0,0.0,0.333,0.333,0.0,0.333,0.0,0.0 +18-25,F,Connecticut,0.0,0.0,0.0,0.0,0.749,0.0,0.0,0.0,0.0,0.251,0.0,0.0 +18-25,F,Illinois,0.0,0.0,0.0,0.0,0.543,0.0,0.0,0.0,0.0,0.211,0.246,0.0 +18-25,F,Indiana,0.0,0.0,0.0,0.0,0.543,0.0,0.0,0.0,0.0,0.211,0.246,0.0 +18-25,F,Iowa,0.0,0.0,0.0,0.0,0.543,0.0,0.0,0.0,0.0,0.211,0.246,0.0 +18-25,F,Kansas,0.0,0.0,0.0,0.0,0.543,0.0,0.0,0.0,0.0,0.211,0.246,0.0 +18-25,F,Maine,0.0,0.0,0.0,0.0,0.749,0.0,0.0,0.0,0.0,0.251,0.0,0.0 +18-25,F,Massachusetts,0.0,0.0,0.0,0.0,0.749,0.0,0.0,0.0,0.0,0.251,0.0,0.0 +18-25,F,Michigan,0.0,0.0,0.0,0.0,0.543,0.0,0.0,0.0,0.0,0.211,0.246,0.0 +18-25,F,Minnesota,0.0,0.0,0.0,0.0,0.543,0.0,0.0,0.0,0.0,0.211,0.246,0.0 +18-25,F,Missouri,0.0,0.0,0.0,0.0,0.543,0.0,0.0,0.0,0.0,0.211,0.246,0.0 +18-25,F,Nebraska,0.0,0.0,0.0,0.0,0.543,0.0,0.0,0.0,0.0,0.211,0.246,0.0 +18-25,F,New Hampshire,0.0,0.0,0.0,0.0,0.749,0.0,0.0,0.0,0.0,0.251,0.0,0.0 +18-25,F,New Jersey,0.0,0.0,0.0,0.0,0.749,0.0,0.0,0.0,0.0,0.251,0.0,0.0 +18-25,F,New York,0.0,0.0,0.0,0.0,0.749,0.0,0.0,0.0,0.0,0.251,0.0,0.0 +18-25,F,North Dakota,0.0,0.0,0.0,0.0,0.543,0.0,0.0,0.0,0.0,0.211,0.246,0.0 +18-25,F,Ohio,0.0,0.0,0.0,0.0,0.543,0.0,0.0,0.0,0.0,0.211,0.246,0.0 +18-25,F,Pennsylvania,0.0,0.0,0.0,0.0,0.749,0.0,0.0,0.0,0.0,0.251,0.0,0.0 +18-25,F,Rhode Island,0.0,0.0,0.0,0.0,0.749,0.0,0.0,0.0,0.0,0.251,0.0,0.0 +18-25,F,South Dakota,0.0,0.0,0.0,0.0,0.543,0.0,0.0,0.0,0.0,0.211,0.246,0.0 +18-25,F,Vermont,0.0,0.0,0.0,0.0,0.749,0.0,0.0,0.0,0.0,0.251,0.0,0.0 +18-25,F,Wisconsin,0.0,0.0,0.0,0.0,0.543,0.0,0.0,0.0,0.0,0.211,0.246,0.0 +26-35,F,Alabama,0.0,0.0,0.647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.353,0.0 +26-35,F,Arkansas,0.0,0.0,0.647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.353,0.0 +26-35,F,Delaware,0.0,0.0,0.647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.353,0.0 +26-35,F,District of Columbia,0.0,0.0,0.647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.353,0.0 +26-35,F,Florida,0.0,0.0,0.647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.353,0.0 +26-35,F,Georgia,0.0,0.0,0.647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.353,0.0 +26-35,F,Illinois,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Indiana,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Iowa,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Kansas,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Kentucky,0.0,0.0,0.647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.353,0.0 +26-35,F,Louisiana,0.0,0.0,0.647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.353,0.0 +26-35,F,Maryland,0.0,0.0,0.647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.353,0.0 +26-35,F,Michigan,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Minnesota,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Mississippi,0.0,0.0,0.647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.353,0.0 +26-35,F,Missouri,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Nebraska,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,North Carolina,0.0,0.0,0.647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.353,0.0 +26-35,F,North Dakota,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Ohio,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Oklahoma,0.0,0.0,0.647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.353,0.0 +26-35,F,South Carolina,0.0,0.0,0.647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.353,0.0 +26-35,F,South Dakota,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Tennessee,0.0,0.0,0.647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.353,0.0 +26-35,F,Texas,0.0,0.0,0.647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.353,0.0 +26-35,F,Virginia,0.0,0.0,0.647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.353,0.0 +26-35,F,West Virginia,0.0,0.0,0.647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.353,0.0 +26-35,F,Wisconsin,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Alabama,0.0,0.0,0.0,0.0,0.453,0.0,0.0,0.0,0.0,0.03,0.517,0.0 +26-35,M,Arkansas,0.0,0.0,0.0,0.0,0.453,0.0,0.0,0.0,0.0,0.03,0.517,0.0 +26-35,M,Connecticut,0.352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.648,0.0 +26-35,M,Delaware,0.0,0.0,0.0,0.0,0.453,0.0,0.0,0.0,0.0,0.03,0.517,0.0 +26-35,M,District of Columbia,0.0,0.0,0.0,0.0,0.453,0.0,0.0,0.0,0.0,0.03,0.517,0.0 +26-35,M,Florida,0.0,0.0,0.0,0.0,0.453,0.0,0.0,0.0,0.0,0.03,0.517,0.0 +26-35,M,Georgia,0.0,0.0,0.0,0.0,0.453,0.0,0.0,0.0,0.0,0.03,0.517,0.0 +26-35,M,Illinois,0.0,0.0,0.483,0.0,0.517,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Indiana,0.0,0.0,0.483,0.0,0.517,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Iowa,0.0,0.0,0.483,0.0,0.517,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Kansas,0.0,0.0,0.483,0.0,0.517,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Kentucky,0.0,0.0,0.0,0.0,0.453,0.0,0.0,0.0,0.0,0.03,0.517,0.0 +26-35,M,Louisiana,0.0,0.0,0.0,0.0,0.453,0.0,0.0,0.0,0.0,0.03,0.517,0.0 +26-35,M,Maine,0.352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.648,0.0 +26-35,M,Maryland,0.0,0.0,0.0,0.0,0.453,0.0,0.0,0.0,0.0,0.03,0.517,0.0 +26-35,M,Massachusetts,0.352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.648,0.0 +26-35,M,Michigan,0.0,0.0,0.483,0.0,0.517,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Minnesota,0.0,0.0,0.483,0.0,0.517,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Mississippi,0.0,0.0,0.0,0.0,0.453,0.0,0.0,0.0,0.0,0.03,0.517,0.0 +26-35,M,Missouri,0.0,0.0,0.483,0.0,0.517,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Nebraska,0.0,0.0,0.483,0.0,0.517,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,New Hampshire,0.352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.648,0.0 +26-35,M,New Jersey,0.352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.648,0.0 +26-35,M,New York,0.352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.648,0.0 +26-35,M,North Carolina,0.0,0.0,0.0,0.0,0.453,0.0,0.0,0.0,0.0,0.03,0.517,0.0 +26-35,M,North Dakota,0.0,0.0,0.483,0.0,0.517,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Ohio,0.0,0.0,0.483,0.0,0.517,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Oklahoma,0.0,0.0,0.0,0.0,0.453,0.0,0.0,0.0,0.0,0.03,0.517,0.0 +26-35,M,Pennsylvania,0.352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.648,0.0 +26-35,M,Rhode Island,0.352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.648,0.0 +26-35,M,South Carolina,0.0,0.0,0.0,0.0,0.453,0.0,0.0,0.0,0.0,0.03,0.517,0.0 +26-35,M,South Dakota,0.0,0.0,0.483,0.0,0.517,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Tennessee,0.0,0.0,0.0,0.0,0.453,0.0,0.0,0.0,0.0,0.03,0.517,0.0 +26-35,M,Texas,0.0,0.0,0.0,0.0,0.453,0.0,0.0,0.0,0.0,0.03,0.517,0.0 +26-35,M,Vermont,0.352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.648,0.0 +26-35,M,Virginia,0.0,0.0,0.0,0.0,0.453,0.0,0.0,0.0,0.0,0.03,0.517,0.0 +26-35,M,West Virginia,0.0,0.0,0.0,0.0,0.453,0.0,0.0,0.0,0.0,0.03,0.517,0.0 +26-35,M,Wisconsin,0.0,0.0,0.483,0.0,0.517,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,Alabama,0.149,0.0,0.165,0.0,0.087,0.0,0.0,0.0,0.047,0.529,0.023,0.0 +36-45,F,Alaska,0.0,0.0,0.0,0.0,0.833,0.0,0.0,0.0,0.167,0.0,0.0,0.0 +36-45,F,Arizona,0.0,0.0,0.0,0.0,0.833,0.0,0.0,0.0,0.167,0.0,0.0,0.0 +36-45,F,Arkansas,0.149,0.0,0.165,0.0,0.087,0.0,0.0,0.0,0.047,0.529,0.023,0.0 +36-45,F,California,0.0,0.0,0.0,0.0,0.833,0.0,0.0,0.0,0.167,0.0,0.0,0.0 +36-45,F,Colorado,0.0,0.0,0.0,0.0,0.833,0.0,0.0,0.0,0.167,0.0,0.0,0.0 +36-45,F,Connecticut,0.0,0.0,0.124,0.0,0.464,0.0,0.0,0.0,0.0,0.412,0.0,0.0 +36-45,F,Delaware,0.149,0.0,0.165,0.0,0.087,0.0,0.0,0.0,0.047,0.529,0.023,0.0 +36-45,F,District of Columbia,0.149,0.0,0.165,0.0,0.087,0.0,0.0,0.0,0.047,0.529,0.023,0.0 +36-45,F,Florida,0.149,0.0,0.165,0.0,0.087,0.0,0.0,0.0,0.047,0.529,0.023,0.0 +36-45,F,Georgia,0.149,0.0,0.165,0.0,0.087,0.0,0.0,0.0,0.047,0.529,0.023,0.0 +36-45,F,Hawaii,0.0,0.0,0.0,0.0,0.833,0.0,0.0,0.0,0.167,0.0,0.0,0.0 +36-45,F,Idaho,0.0,0.0,0.0,0.0,0.833,0.0,0.0,0.0,0.167,0.0,0.0,0.0 +36-45,F,Illinois,0.105,0.0,0.105,0.0,0.0,0.0,0.0,0.0,0.194,0.401,0.195,0.0 +36-45,F,Indiana,0.105,0.0,0.105,0.0,0.0,0.0,0.0,0.0,0.194,0.401,0.195,0.0 +36-45,F,Iowa,0.105,0.0,0.105,0.0,0.0,0.0,0.0,0.0,0.194,0.401,0.195,0.0 +36-45,F,Kansas,0.105,0.0,0.105,0.0,0.0,0.0,0.0,0.0,0.194,0.401,0.195,0.0 +36-45,F,Kentucky,0.149,0.0,0.165,0.0,0.087,0.0,0.0,0.0,0.047,0.529,0.023,0.0 +36-45,F,Louisiana,0.149,0.0,0.165,0.0,0.087,0.0,0.0,0.0,0.047,0.529,0.023,0.0 +36-45,F,Maine,0.0,0.0,0.124,0.0,0.464,0.0,0.0,0.0,0.0,0.412,0.0,0.0 +36-45,F,Maryland,0.149,0.0,0.165,0.0,0.087,0.0,0.0,0.0,0.047,0.529,0.023,0.0 +36-45,F,Massachusetts,0.0,0.0,0.124,0.0,0.464,0.0,0.0,0.0,0.0,0.412,0.0,0.0 +36-45,F,Michigan,0.105,0.0,0.105,0.0,0.0,0.0,0.0,0.0,0.194,0.401,0.195,0.0 +36-45,F,Minnesota,0.105,0.0,0.105,0.0,0.0,0.0,0.0,0.0,0.194,0.401,0.195,0.0 +36-45,F,Mississippi,0.149,0.0,0.165,0.0,0.087,0.0,0.0,0.0,0.047,0.529,0.023,0.0 +36-45,F,Missouri,0.105,0.0,0.105,0.0,0.0,0.0,0.0,0.0,0.194,0.401,0.195,0.0 +36-45,F,Montana,0.0,0.0,0.0,0.0,0.833,0.0,0.0,0.0,0.167,0.0,0.0,0.0 +36-45,F,Nebraska,0.105,0.0,0.105,0.0,0.0,0.0,0.0,0.0,0.194,0.401,0.195,0.0 +36-45,F,Nevada,0.0,0.0,0.0,0.0,0.833,0.0,0.0,0.0,0.167,0.0,0.0,0.0 +36-45,F,New Hampshire,0.0,0.0,0.124,0.0,0.464,0.0,0.0,0.0,0.0,0.412,0.0,0.0 +36-45,F,New Jersey,0.0,0.0,0.124,0.0,0.464,0.0,0.0,0.0,0.0,0.412,0.0,0.0 +36-45,F,New Mexico,0.0,0.0,0.0,0.0,0.833,0.0,0.0,0.0,0.167,0.0,0.0,0.0 +36-45,F,New York,0.0,0.0,0.124,0.0,0.464,0.0,0.0,0.0,0.0,0.412,0.0,0.0 +36-45,F,North Carolina,0.149,0.0,0.165,0.0,0.087,0.0,0.0,0.0,0.047,0.529,0.023,0.0 +36-45,F,North Dakota,0.105,0.0,0.105,0.0,0.0,0.0,0.0,0.0,0.194,0.401,0.195,0.0 +36-45,F,Ohio,0.105,0.0,0.105,0.0,0.0,0.0,0.0,0.0,0.194,0.401,0.195,0.0 +36-45,F,Oklahoma,0.149,0.0,0.165,0.0,0.087,0.0,0.0,0.0,0.047,0.529,0.023,0.0 +36-45,F,Oregon,0.0,0.0,0.0,0.0,0.833,0.0,0.0,0.0,0.167,0.0,0.0,0.0 +36-45,F,Pennsylvania,0.0,0.0,0.124,0.0,0.464,0.0,0.0,0.0,0.0,0.412,0.0,0.0 +36-45,F,Rhode Island,0.0,0.0,0.124,0.0,0.464,0.0,0.0,0.0,0.0,0.412,0.0,0.0 +36-45,F,South Carolina,0.149,0.0,0.165,0.0,0.087,0.0,0.0,0.0,0.047,0.529,0.023,0.0 +36-45,F,South Dakota,0.105,0.0,0.105,0.0,0.0,0.0,0.0,0.0,0.194,0.401,0.195,0.0 +36-45,F,Tennessee,0.149,0.0,0.165,0.0,0.087,0.0,0.0,0.0,0.047,0.529,0.023,0.0 +36-45,F,Texas,0.149,0.0,0.165,0.0,0.087,0.0,0.0,0.0,0.047,0.529,0.023,0.0 +36-45,F,Utah,0.0,0.0,0.0,0.0,0.833,0.0,0.0,0.0,0.167,0.0,0.0,0.0 +36-45,F,Vermont,0.0,0.0,0.124,0.0,0.464,0.0,0.0,0.0,0.0,0.412,0.0,0.0 +36-45,F,Virginia,0.149,0.0,0.165,0.0,0.087,0.0,0.0,0.0,0.047,0.529,0.023,0.0 +36-45,F,Washington,0.0,0.0,0.0,0.0,0.833,0.0,0.0,0.0,0.167,0.0,0.0,0.0 +36-45,F,West Virginia,0.149,0.0,0.165,0.0,0.087,0.0,0.0,0.0,0.047,0.529,0.023,0.0 +36-45,F,Wisconsin,0.105,0.0,0.105,0.0,0.0,0.0,0.0,0.0,0.194,0.401,0.195,0.0 +36-45,F,Wyoming,0.0,0.0,0.0,0.0,0.833,0.0,0.0,0.0,0.167,0.0,0.0,0.0 +36-45,M,Alabama,0.135,0.07,0.0,0.0,0.163,0.0,0.0,0.0,0.038,0.33,0.264,0.0 +36-45,M,Alaska,0.0,0.0,0.162,0.0,0.203,0.0,0.0,0.0,0.0,0.635,0.0,0.0 +36-45,M,Arizona,0.0,0.0,0.162,0.0,0.203,0.0,0.0,0.0,0.0,0.635,0.0,0.0 +36-45,M,Arkansas,0.135,0.07,0.0,0.0,0.163,0.0,0.0,0.0,0.038,0.33,0.264,0.0 +36-45,M,California,0.0,0.0,0.162,0.0,0.203,0.0,0.0,0.0,0.0,0.635,0.0,0.0 +36-45,M,Colorado,0.0,0.0,0.162,0.0,0.203,0.0,0.0,0.0,0.0,0.635,0.0,0.0 +36-45,M,Connecticut,0.0,0.0,0.189,0.0,0.386,0.0,0.0,0.0,0.0,0.236,0.189,0.0 +36-45,M,Delaware,0.135,0.07,0.0,0.0,0.163,0.0,0.0,0.0,0.038,0.33,0.264,0.0 +36-45,M,District of Columbia,0.135,0.07,0.0,0.0,0.163,0.0,0.0,0.0,0.038,0.33,0.264,0.0 +36-45,M,Florida,0.135,0.07,0.0,0.0,0.163,0.0,0.0,0.0,0.038,0.33,0.264,0.0 +36-45,M,Georgia,0.135,0.07,0.0,0.0,0.163,0.0,0.0,0.0,0.038,0.33,0.264,0.0 +36-45,M,Hawaii,0.0,0.0,0.162,0.0,0.203,0.0,0.0,0.0,0.0,0.635,0.0,0.0 +36-45,M,Idaho,0.0,0.0,0.162,0.0,0.203,0.0,0.0,0.0,0.0,0.635,0.0,0.0 +36-45,M,Illinois,0.0,0.0,0.159,0.0,0.0,0.0,0.0,0.0,0.422,0.0,0.419,0.0 +36-45,M,Indiana,0.0,0.0,0.159,0.0,0.0,0.0,0.0,0.0,0.422,0.0,0.419,0.0 +36-45,M,Iowa,0.0,0.0,0.159,0.0,0.0,0.0,0.0,0.0,0.422,0.0,0.419,0.0 +36-45,M,Kansas,0.0,0.0,0.159,0.0,0.0,0.0,0.0,0.0,0.422,0.0,0.419,0.0 +36-45,M,Kentucky,0.135,0.07,0.0,0.0,0.163,0.0,0.0,0.0,0.038,0.33,0.264,0.0 +36-45,M,Louisiana,0.135,0.07,0.0,0.0,0.163,0.0,0.0,0.0,0.038,0.33,0.264,0.0 +36-45,M,Maine,0.0,0.0,0.189,0.0,0.386,0.0,0.0,0.0,0.0,0.236,0.189,0.0 +36-45,M,Maryland,0.135,0.07,0.0,0.0,0.163,0.0,0.0,0.0,0.038,0.33,0.264,0.0 +36-45,M,Massachusetts,0.0,0.0,0.189,0.0,0.386,0.0,0.0,0.0,0.0,0.236,0.189,0.0 +36-45,M,Michigan,0.0,0.0,0.159,0.0,0.0,0.0,0.0,0.0,0.422,0.0,0.419,0.0 +36-45,M,Minnesota,0.0,0.0,0.159,0.0,0.0,0.0,0.0,0.0,0.422,0.0,0.419,0.0 +36-45,M,Mississippi,0.135,0.07,0.0,0.0,0.163,0.0,0.0,0.0,0.038,0.33,0.264,0.0 +36-45,M,Missouri,0.0,0.0,0.159,0.0,0.0,0.0,0.0,0.0,0.422,0.0,0.419,0.0 +36-45,M,Montana,0.0,0.0,0.162,0.0,0.203,0.0,0.0,0.0,0.0,0.635,0.0,0.0 +36-45,M,Nebraska,0.0,0.0,0.159,0.0,0.0,0.0,0.0,0.0,0.422,0.0,0.419,0.0 +36-45,M,Nevada,0.0,0.0,0.162,0.0,0.203,0.0,0.0,0.0,0.0,0.635,0.0,0.0 +36-45,M,New Hampshire,0.0,0.0,0.189,0.0,0.386,0.0,0.0,0.0,0.0,0.236,0.189,0.0 +36-45,M,New Jersey,0.0,0.0,0.189,0.0,0.386,0.0,0.0,0.0,0.0,0.236,0.189,0.0 +36-45,M,New Mexico,0.0,0.0,0.162,0.0,0.203,0.0,0.0,0.0,0.0,0.635,0.0,0.0 +36-45,M,New York,0.0,0.0,0.189,0.0,0.386,0.0,0.0,0.0,0.0,0.236,0.189,0.0 +36-45,M,North Carolina,0.135,0.07,0.0,0.0,0.163,0.0,0.0,0.0,0.038,0.33,0.264,0.0 +36-45,M,North Dakota,0.0,0.0,0.159,0.0,0.0,0.0,0.0,0.0,0.422,0.0,0.419,0.0 +36-45,M,Ohio,0.0,0.0,0.159,0.0,0.0,0.0,0.0,0.0,0.422,0.0,0.419,0.0 +36-45,M,Oklahoma,0.135,0.07,0.0,0.0,0.163,0.0,0.0,0.0,0.038,0.33,0.264,0.0 +36-45,M,Oregon,0.0,0.0,0.162,0.0,0.203,0.0,0.0,0.0,0.0,0.635,0.0,0.0 +36-45,M,Pennsylvania,0.0,0.0,0.189,0.0,0.386,0.0,0.0,0.0,0.0,0.236,0.189,0.0 +36-45,M,Rhode Island,0.0,0.0,0.189,0.0,0.386,0.0,0.0,0.0,0.0,0.236,0.189,0.0 +36-45,M,South Carolina,0.135,0.07,0.0,0.0,0.163,0.0,0.0,0.0,0.038,0.33,0.264,0.0 +36-45,M,South Dakota,0.0,0.0,0.159,0.0,0.0,0.0,0.0,0.0,0.422,0.0,0.419,0.0 +36-45,M,Tennessee,0.135,0.07,0.0,0.0,0.163,0.0,0.0,0.0,0.038,0.33,0.264,0.0 +36-45,M,Texas,0.135,0.07,0.0,0.0,0.163,0.0,0.0,0.0,0.038,0.33,0.264,0.0 +36-45,M,Utah,0.0,0.0,0.162,0.0,0.203,0.0,0.0,0.0,0.0,0.635,0.0,0.0 +36-45,M,Vermont,0.0,0.0,0.189,0.0,0.386,0.0,0.0,0.0,0.0,0.236,0.189,0.0 +36-45,M,Virginia,0.135,0.07,0.0,0.0,0.163,0.0,0.0,0.0,0.038,0.33,0.264,0.0 +36-45,M,Washington,0.0,0.0,0.162,0.0,0.203,0.0,0.0,0.0,0.0,0.635,0.0,0.0 +36-45,M,West Virginia,0.135,0.07,0.0,0.0,0.163,0.0,0.0,0.0,0.038,0.33,0.264,0.0 +36-45,M,Wisconsin,0.0,0.0,0.159,0.0,0.0,0.0,0.0,0.0,0.422,0.0,0.419,0.0 +36-45,M,Wyoming,0.0,0.0,0.162,0.0,0.203,0.0,0.0,0.0,0.0,0.635,0.0,0.0 +46-65,F,Alabama,0.125,0.008,0.277,0.0,0.16,0.0,0.0,0.0,0.05,0.149,0.232,0.0 +46-65,F,Alaska,0.171,0.034,0.042,0.0,0.205,0.0,0.0,0.0,0.148,0.177,0.222,0.0 +46-65,F,Arizona,0.171,0.034,0.042,0.0,0.205,0.0,0.0,0.0,0.148,0.177,0.222,0.0 +46-65,F,Arkansas,0.125,0.008,0.277,0.0,0.16,0.0,0.0,0.0,0.05,0.149,0.232,0.0 +46-65,F,California,0.171,0.034,0.042,0.0,0.205,0.0,0.0,0.0,0.148,0.177,0.222,0.0 +46-65,F,Colorado,0.171,0.034,0.042,0.0,0.205,0.0,0.0,0.0,0.148,0.177,0.222,0.0 +46-65,F,Connecticut,0.155,0.043,0.153,0.0,0.28,0.0,0.0,0.0,0.081,0.194,0.094,0.0 +46-65,F,Delaware,0.125,0.008,0.277,0.0,0.16,0.0,0.0,0.0,0.05,0.149,0.232,0.0 +46-65,F,District of Columbia,0.125,0.008,0.277,0.0,0.16,0.0,0.0,0.0,0.05,0.149,0.232,0.0 +46-65,F,Florida,0.125,0.008,0.277,0.0,0.16,0.0,0.0,0.0,0.05,0.149,0.232,0.0 +46-65,F,Georgia,0.125,0.008,0.277,0.0,0.16,0.0,0.0,0.0,0.05,0.149,0.232,0.0 +46-65,F,Hawaii,0.171,0.034,0.042,0.0,0.205,0.0,0.0,0.0,0.148,0.177,0.222,0.0 +46-65,F,Idaho,0.171,0.034,0.042,0.0,0.205,0.0,0.0,0.0,0.148,0.177,0.222,0.0 +46-65,F,Illinois,0.096,0.049,0.23,0.0,0.246,0.0,0.0,0.0,0.0,0.189,0.19,0.0 +46-65,F,Indiana,0.096,0.049,0.23,0.0,0.246,0.0,0.0,0.0,0.0,0.189,0.19,0.0 +46-65,F,Iowa,0.096,0.049,0.23,0.0,0.246,0.0,0.0,0.0,0.0,0.189,0.19,0.0 +46-65,F,Kansas,0.096,0.049,0.23,0.0,0.246,0.0,0.0,0.0,0.0,0.189,0.19,0.0 +46-65,F,Kentucky,0.125,0.008,0.277,0.0,0.16,0.0,0.0,0.0,0.05,0.149,0.232,0.0 +46-65,F,Louisiana,0.125,0.008,0.277,0.0,0.16,0.0,0.0,0.0,0.05,0.149,0.232,0.0 +46-65,F,Maine,0.155,0.043,0.153,0.0,0.28,0.0,0.0,0.0,0.081,0.194,0.094,0.0 +46-65,F,Maryland,0.125,0.008,0.277,0.0,0.16,0.0,0.0,0.0,0.05,0.149,0.232,0.0 +46-65,F,Massachusetts,0.155,0.043,0.153,0.0,0.28,0.0,0.0,0.0,0.081,0.194,0.094,0.0 +46-65,F,Michigan,0.096,0.049,0.23,0.0,0.246,0.0,0.0,0.0,0.0,0.189,0.19,0.0 +46-65,F,Minnesota,0.096,0.049,0.23,0.0,0.246,0.0,0.0,0.0,0.0,0.189,0.19,0.0 +46-65,F,Mississippi,0.125,0.008,0.277,0.0,0.16,0.0,0.0,0.0,0.05,0.149,0.232,0.0 +46-65,F,Missouri,0.096,0.049,0.23,0.0,0.246,0.0,0.0,0.0,0.0,0.189,0.19,0.0 +46-65,F,Montana,0.171,0.034,0.042,0.0,0.205,0.0,0.0,0.0,0.148,0.177,0.222,0.0 +46-65,F,Nebraska,0.096,0.049,0.23,0.0,0.246,0.0,0.0,0.0,0.0,0.189,0.19,0.0 +46-65,F,Nevada,0.171,0.034,0.042,0.0,0.205,0.0,0.0,0.0,0.148,0.177,0.222,0.0 +46-65,F,New Hampshire,0.155,0.043,0.153,0.0,0.28,0.0,0.0,0.0,0.081,0.194,0.094,0.0 +46-65,F,New Jersey,0.155,0.043,0.153,0.0,0.28,0.0,0.0,0.0,0.081,0.194,0.094,0.0 +46-65,F,New Mexico,0.171,0.034,0.042,0.0,0.205,0.0,0.0,0.0,0.148,0.177,0.222,0.0 +46-65,F,New York,0.155,0.043,0.153,0.0,0.28,0.0,0.0,0.0,0.081,0.194,0.094,0.0 +46-65,F,North Carolina,0.125,0.008,0.277,0.0,0.16,0.0,0.0,0.0,0.05,0.149,0.232,0.0 +46-65,F,North Dakota,0.096,0.049,0.23,0.0,0.246,0.0,0.0,0.0,0.0,0.189,0.19,0.0 +46-65,F,Ohio,0.096,0.049,0.23,0.0,0.246,0.0,0.0,0.0,0.0,0.189,0.19,0.0 +46-65,F,Oklahoma,0.125,0.008,0.277,0.0,0.16,0.0,0.0,0.0,0.05,0.149,0.232,0.0 +46-65,F,Oregon,0.171,0.034,0.042,0.0,0.205,0.0,0.0,0.0,0.148,0.177,0.222,0.0 +46-65,F,Pennsylvania,0.155,0.043,0.153,0.0,0.28,0.0,0.0,0.0,0.081,0.194,0.094,0.0 +46-65,F,Rhode Island,0.155,0.043,0.153,0.0,0.28,0.0,0.0,0.0,0.081,0.194,0.094,0.0 +46-65,F,South Carolina,0.125,0.008,0.277,0.0,0.16,0.0,0.0,0.0,0.05,0.149,0.232,0.0 +46-65,F,South Dakota,0.096,0.049,0.23,0.0,0.246,0.0,0.0,0.0,0.0,0.189,0.19,0.0 +46-65,F,Tennessee,0.125,0.008,0.277,0.0,0.16,0.0,0.0,0.0,0.05,0.149,0.232,0.0 +46-65,F,Texas,0.125,0.008,0.277,0.0,0.16,0.0,0.0,0.0,0.05,0.149,0.232,0.0 +46-65,F,Utah,0.171,0.034,0.042,0.0,0.205,0.0,0.0,0.0,0.148,0.177,0.222,0.0 +46-65,F,Vermont,0.155,0.043,0.153,0.0,0.28,0.0,0.0,0.0,0.081,0.194,0.094,0.0 +46-65,F,Virginia,0.125,0.008,0.277,0.0,0.16,0.0,0.0,0.0,0.05,0.149,0.232,0.0 +46-65,F,Washington,0.171,0.034,0.042,0.0,0.205,0.0,0.0,0.0,0.148,0.177,0.222,0.0 +46-65,F,West Virginia,0.125,0.008,0.277,0.0,0.16,0.0,0.0,0.0,0.05,0.149,0.232,0.0 +46-65,F,Wisconsin,0.096,0.049,0.23,0.0,0.246,0.0,0.0,0.0,0.0,0.189,0.19,0.0 +46-65,F,Wyoming,0.171,0.034,0.042,0.0,0.205,0.0,0.0,0.0,0.148,0.177,0.222,0.0 +46-65,M,Alabama,0.121,0.019,0.182,0.0,0.172,0.0,0.0,0.0,0.057,0.22,0.228,0.0 +46-65,M,Alaska,0.234,0.067,0.117,0.0,0.112,0.0,0.0,0.0,0.039,0.22,0.212,0.0 +46-65,M,Arizona,0.234,0.067,0.117,0.0,0.112,0.0,0.0,0.0,0.039,0.22,0.212,0.0 +46-65,M,Arkansas,0.121,0.019,0.182,0.0,0.172,0.0,0.0,0.0,0.057,0.22,0.228,0.0 +46-65,M,California,0.234,0.067,0.117,0.0,0.112,0.0,0.0,0.0,0.039,0.22,0.212,0.0 +46-65,M,Colorado,0.234,0.067,0.117,0.0,0.112,0.0,0.0,0.0,0.039,0.22,0.212,0.0 +46-65,M,Connecticut,0.151,0.013,0.288,0.0,0.268,0.011,0.0,0.0,0.009,0.226,0.033,0.0 +46-65,M,Delaware,0.121,0.019,0.182,0.0,0.172,0.0,0.0,0.0,0.057,0.22,0.228,0.0 +46-65,M,District of Columbia,0.121,0.019,0.182,0.0,0.172,0.0,0.0,0.0,0.057,0.22,0.228,0.0 +46-65,M,Florida,0.121,0.019,0.182,0.0,0.172,0.0,0.0,0.0,0.057,0.22,0.228,0.0 +46-65,M,Georgia,0.121,0.019,0.182,0.0,0.172,0.0,0.0,0.0,0.057,0.22,0.228,0.0 +46-65,M,Hawaii,0.234,0.067,0.117,0.0,0.112,0.0,0.0,0.0,0.039,0.22,0.212,0.0 +46-65,M,Idaho,0.234,0.067,0.117,0.0,0.112,0.0,0.0,0.0,0.039,0.22,0.212,0.0 +46-65,M,Illinois,0.178,0.0,0.174,0.014,0.157,0.0,0.0,0.0,0.078,0.211,0.175,0.013 +46-65,M,Indiana,0.178,0.0,0.174,0.014,0.157,0.0,0.0,0.0,0.078,0.211,0.175,0.013 +46-65,M,Iowa,0.178,0.0,0.174,0.014,0.157,0.0,0.0,0.0,0.078,0.211,0.175,0.013 +46-65,M,Kansas,0.178,0.0,0.174,0.014,0.157,0.0,0.0,0.0,0.078,0.211,0.175,0.013 +46-65,M,Kentucky,0.121,0.019,0.182,0.0,0.172,0.0,0.0,0.0,0.057,0.22,0.228,0.0 +46-65,M,Louisiana,0.121,0.019,0.182,0.0,0.172,0.0,0.0,0.0,0.057,0.22,0.228,0.0 +46-65,M,Maine,0.151,0.013,0.288,0.0,0.268,0.011,0.0,0.0,0.009,0.226,0.033,0.0 +46-65,M,Maryland,0.121,0.019,0.182,0.0,0.172,0.0,0.0,0.0,0.057,0.22,0.228,0.0 +46-65,M,Massachusetts,0.151,0.013,0.288,0.0,0.268,0.011,0.0,0.0,0.009,0.226,0.033,0.0 +46-65,M,Michigan,0.178,0.0,0.174,0.014,0.157,0.0,0.0,0.0,0.078,0.211,0.175,0.013 +46-65,M,Minnesota,0.178,0.0,0.174,0.014,0.157,0.0,0.0,0.0,0.078,0.211,0.175,0.013 +46-65,M,Mississippi,0.121,0.019,0.182,0.0,0.172,0.0,0.0,0.0,0.057,0.22,0.228,0.0 +46-65,M,Missouri,0.178,0.0,0.174,0.014,0.157,0.0,0.0,0.0,0.078,0.211,0.175,0.013 +46-65,M,Montana,0.234,0.067,0.117,0.0,0.112,0.0,0.0,0.0,0.039,0.22,0.212,0.0 +46-65,M,Nebraska,0.178,0.0,0.174,0.014,0.157,0.0,0.0,0.0,0.078,0.211,0.175,0.013 +46-65,M,Nevada,0.234,0.067,0.117,0.0,0.112,0.0,0.0,0.0,0.039,0.22,0.212,0.0 +46-65,M,New Hampshire,0.151,0.013,0.288,0.0,0.268,0.011,0.0,0.0,0.009,0.226,0.033,0.0 +46-65,M,New Jersey,0.151,0.013,0.288,0.0,0.268,0.011,0.0,0.0,0.009,0.226,0.033,0.0 +46-65,M,New Mexico,0.234,0.067,0.117,0.0,0.112,0.0,0.0,0.0,0.039,0.22,0.212,0.0 +46-65,M,New York,0.151,0.013,0.288,0.0,0.268,0.011,0.0,0.0,0.009,0.226,0.033,0.0 +46-65,M,North Carolina,0.121,0.019,0.182,0.0,0.172,0.0,0.0,0.0,0.057,0.22,0.228,0.0 +46-65,M,North Dakota,0.178,0.0,0.174,0.014,0.157,0.0,0.0,0.0,0.078,0.211,0.175,0.013 +46-65,M,Ohio,0.178,0.0,0.174,0.014,0.157,0.0,0.0,0.0,0.078,0.211,0.175,0.013 +46-65,M,Oklahoma,0.121,0.019,0.182,0.0,0.172,0.0,0.0,0.0,0.057,0.22,0.228,0.0 +46-65,M,Oregon,0.234,0.067,0.117,0.0,0.112,0.0,0.0,0.0,0.039,0.22,0.212,0.0 +46-65,M,Pennsylvania,0.151,0.013,0.288,0.0,0.268,0.011,0.0,0.0,0.009,0.226,0.033,0.0 +46-65,M,Rhode Island,0.151,0.013,0.288,0.0,0.268,0.011,0.0,0.0,0.009,0.226,0.033,0.0 +46-65,M,South Carolina,0.121,0.019,0.182,0.0,0.172,0.0,0.0,0.0,0.057,0.22,0.228,0.0 +46-65,M,South Dakota,0.178,0.0,0.174,0.014,0.157,0.0,0.0,0.0,0.078,0.211,0.175,0.013 +46-65,M,Tennessee,0.121,0.019,0.182,0.0,0.172,0.0,0.0,0.0,0.057,0.22,0.228,0.0 +46-65,M,Texas,0.121,0.019,0.182,0.0,0.172,0.0,0.0,0.0,0.057,0.22,0.228,0.0 +46-65,M,Utah,0.234,0.067,0.117,0.0,0.112,0.0,0.0,0.0,0.039,0.22,0.212,0.0 +46-65,M,Vermont,0.151,0.013,0.288,0.0,0.268,0.011,0.0,0.0,0.009,0.226,0.033,0.0 +46-65,M,Virginia,0.121,0.019,0.182,0.0,0.172,0.0,0.0,0.0,0.057,0.22,0.228,0.0 +46-65,M,Washington,0.234,0.067,0.117,0.0,0.112,0.0,0.0,0.0,0.039,0.22,0.212,0.0 +46-65,M,West Virginia,0.121,0.019,0.182,0.0,0.172,0.0,0.0,0.0,0.057,0.22,0.228,0.0 +46-65,M,Wisconsin,0.178,0.0,0.174,0.014,0.157,0.0,0.0,0.0,0.078,0.211,0.175,0.013 +46-65,M,Wyoming,0.234,0.067,0.117,0.0,0.112,0.0,0.0,0.0,0.039,0.22,0.212,0.0 +65-103,F,Alabama,0.13,0.011,0.196,0.023,0.215,0.0,0.0,0.0,0.032,0.211,0.183,0.0 +65-103,F,Alaska,0.071,0.0,0.13,0.019,0.145,0.012,0.0,0.0,0.037,0.408,0.178,0.0 +65-103,F,Arizona,0.071,0.0,0.13,0.019,0.145,0.012,0.0,0.0,0.037,0.408,0.178,0.0 +65-103,F,Arkansas,0.13,0.011,0.196,0.023,0.215,0.0,0.0,0.0,0.032,0.211,0.183,0.0 +65-103,F,California,0.071,0.0,0.13,0.019,0.145,0.012,0.0,0.0,0.037,0.408,0.178,0.0 +65-103,F,Colorado,0.071,0.0,0.13,0.019,0.145,0.012,0.0,0.0,0.037,0.408,0.178,0.0 +65-103,F,Connecticut,0.223,0.019,0.232,0.0,0.175,0.006,0.0,0.0,0.019,0.208,0.118,0.0 +65-103,F,Delaware,0.13,0.011,0.196,0.023,0.215,0.0,0.0,0.0,0.032,0.211,0.183,0.0 +65-103,F,District of Columbia,0.13,0.011,0.196,0.023,0.215,0.0,0.0,0.0,0.032,0.211,0.183,0.0 +65-103,F,Florida,0.13,0.011,0.196,0.023,0.215,0.0,0.0,0.0,0.032,0.211,0.183,0.0 +65-103,F,Georgia,0.13,0.011,0.196,0.023,0.215,0.0,0.0,0.0,0.032,0.211,0.183,0.0 +65-103,F,Hawaii,0.071,0.0,0.13,0.019,0.145,0.012,0.0,0.0,0.037,0.408,0.178,0.0 +65-103,F,Idaho,0.071,0.0,0.13,0.019,0.145,0.012,0.0,0.0,0.037,0.408,0.178,0.0 +65-103,F,Illinois,0.089,0.011,0.177,0.0,0.176,0.009,0.0,0.0,0.029,0.256,0.252,0.0 +65-103,F,Indiana,0.089,0.011,0.177,0.0,0.176,0.009,0.0,0.0,0.029,0.256,0.252,0.0 +65-103,F,Iowa,0.089,0.011,0.177,0.0,0.176,0.009,0.0,0.0,0.029,0.256,0.252,0.0 +65-103,F,Kansas,0.089,0.011,0.177,0.0,0.176,0.009,0.0,0.0,0.029,0.256,0.252,0.0 +65-103,F,Kentucky,0.13,0.011,0.196,0.023,0.215,0.0,0.0,0.0,0.032,0.211,0.183,0.0 +65-103,F,Louisiana,0.13,0.011,0.196,0.023,0.215,0.0,0.0,0.0,0.032,0.211,0.183,0.0 +65-103,F,Maine,0.223,0.019,0.232,0.0,0.175,0.006,0.0,0.0,0.019,0.208,0.118,0.0 +65-103,F,Maryland,0.13,0.011,0.196,0.023,0.215,0.0,0.0,0.0,0.032,0.211,0.183,0.0 +65-103,F,Massachusetts,0.223,0.019,0.232,0.0,0.175,0.006,0.0,0.0,0.019,0.208,0.118,0.0 +65-103,F,Michigan,0.089,0.011,0.177,0.0,0.176,0.009,0.0,0.0,0.029,0.256,0.252,0.0 +65-103,F,Minnesota,0.089,0.011,0.177,0.0,0.176,0.009,0.0,0.0,0.029,0.256,0.252,0.0 +65-103,F,Mississippi,0.13,0.011,0.196,0.023,0.215,0.0,0.0,0.0,0.032,0.211,0.183,0.0 +65-103,F,Missouri,0.089,0.011,0.177,0.0,0.176,0.009,0.0,0.0,0.029,0.256,0.252,0.0 +65-103,F,Montana,0.071,0.0,0.13,0.019,0.145,0.012,0.0,0.0,0.037,0.408,0.178,0.0 +65-103,F,Nebraska,0.089,0.011,0.177,0.0,0.176,0.009,0.0,0.0,0.029,0.256,0.252,0.0 +65-103,F,Nevada,0.071,0.0,0.13,0.019,0.145,0.012,0.0,0.0,0.037,0.408,0.178,0.0 +65-103,F,New Hampshire,0.223,0.019,0.232,0.0,0.175,0.006,0.0,0.0,0.019,0.208,0.118,0.0 +65-103,F,New Jersey,0.223,0.019,0.232,0.0,0.175,0.006,0.0,0.0,0.019,0.208,0.118,0.0 +65-103,F,New Mexico,0.071,0.0,0.13,0.019,0.145,0.012,0.0,0.0,0.037,0.408,0.178,0.0 +65-103,F,New York,0.223,0.019,0.232,0.0,0.175,0.006,0.0,0.0,0.019,0.208,0.118,0.0 +65-103,F,North Carolina,0.13,0.011,0.196,0.023,0.215,0.0,0.0,0.0,0.032,0.211,0.183,0.0 +65-103,F,North Dakota,0.089,0.011,0.177,0.0,0.176,0.009,0.0,0.0,0.029,0.256,0.252,0.0 +65-103,F,Ohio,0.089,0.011,0.177,0.0,0.176,0.009,0.0,0.0,0.029,0.256,0.252,0.0 +65-103,F,Oklahoma,0.13,0.011,0.196,0.023,0.215,0.0,0.0,0.0,0.032,0.211,0.183,0.0 +65-103,F,Oregon,0.071,0.0,0.13,0.019,0.145,0.012,0.0,0.0,0.037,0.408,0.178,0.0 +65-103,F,Pennsylvania,0.223,0.019,0.232,0.0,0.175,0.006,0.0,0.0,0.019,0.208,0.118,0.0 +65-103,F,Rhode Island,0.223,0.019,0.232,0.0,0.175,0.006,0.0,0.0,0.019,0.208,0.118,0.0 +65-103,F,South Carolina,0.13,0.011,0.196,0.023,0.215,0.0,0.0,0.0,0.032,0.211,0.183,0.0 +65-103,F,South Dakota,0.089,0.011,0.177,0.0,0.176,0.009,0.0,0.0,0.029,0.256,0.252,0.0 +65-103,F,Tennessee,0.13,0.011,0.196,0.023,0.215,0.0,0.0,0.0,0.032,0.211,0.183,0.0 +65-103,F,Texas,0.13,0.011,0.196,0.023,0.215,0.0,0.0,0.0,0.032,0.211,0.183,0.0 +65-103,F,Utah,0.071,0.0,0.13,0.019,0.145,0.012,0.0,0.0,0.037,0.408,0.178,0.0 +65-103,F,Vermont,0.223,0.019,0.232,0.0,0.175,0.006,0.0,0.0,0.019,0.208,0.118,0.0 +65-103,F,Virginia,0.13,0.011,0.196,0.023,0.215,0.0,0.0,0.0,0.032,0.211,0.183,0.0 +65-103,F,Washington,0.071,0.0,0.13,0.019,0.145,0.012,0.0,0.0,0.037,0.408,0.178,0.0 +65-103,F,West Virginia,0.13,0.011,0.196,0.023,0.215,0.0,0.0,0.0,0.032,0.211,0.183,0.0 +65-103,F,Wisconsin,0.089,0.011,0.177,0.0,0.176,0.009,0.0,0.0,0.029,0.256,0.252,0.0 +65-103,F,Wyoming,0.071,0.0,0.13,0.019,0.145,0.012,0.0,0.0,0.037,0.408,0.178,0.0 +65-103,M,Alabama,0.038,0.012,0.237,0.005,0.192,0.005,0.0,0.0,0.03,0.249,0.231,0.0 +65-103,M,Alaska,0.107,0.016,0.117,0.005,0.153,0.0,0.0,0.0,0.104,0.277,0.221,0.0 +65-103,M,Arizona,0.107,0.016,0.117,0.005,0.153,0.0,0.0,0.0,0.104,0.277,0.221,0.0 +65-103,M,Arkansas,0.038,0.012,0.237,0.005,0.192,0.005,0.0,0.0,0.03,0.249,0.231,0.0 +65-103,M,California,0.107,0.016,0.117,0.005,0.153,0.0,0.0,0.0,0.104,0.277,0.221,0.0 +65-103,M,Colorado,0.107,0.016,0.117,0.005,0.153,0.0,0.0,0.0,0.104,0.277,0.221,0.0 +65-103,M,Connecticut,0.148,0.008,0.137,0.012,0.202,0.006,0.0,0.0,0.047,0.293,0.138,0.008 +65-103,M,Delaware,0.038,0.012,0.237,0.005,0.192,0.005,0.0,0.0,0.03,0.249,0.231,0.0 +65-103,M,District of Columbia,0.038,0.012,0.237,0.005,0.192,0.005,0.0,0.0,0.03,0.249,0.231,0.0 +65-103,M,Florida,0.038,0.012,0.237,0.005,0.192,0.005,0.0,0.0,0.03,0.249,0.231,0.0 +65-103,M,Georgia,0.038,0.012,0.237,0.005,0.192,0.005,0.0,0.0,0.03,0.249,0.231,0.0 +65-103,M,Hawaii,0.107,0.016,0.117,0.005,0.153,0.0,0.0,0.0,0.104,0.277,0.221,0.0 +65-103,M,Idaho,0.107,0.016,0.117,0.005,0.153,0.0,0.0,0.0,0.104,0.277,0.221,0.0 +65-103,M,Illinois,0.106,0.033,0.22,0.0,0.182,0.005,0.0,0.0,0.049,0.229,0.176,0.0 +65-103,M,Indiana,0.106,0.033,0.22,0.0,0.182,0.005,0.0,0.0,0.049,0.229,0.176,0.0 +65-103,M,Iowa,0.106,0.033,0.22,0.0,0.182,0.005,0.0,0.0,0.049,0.229,0.176,0.0 +65-103,M,Kansas,0.106,0.033,0.22,0.0,0.182,0.005,0.0,0.0,0.049,0.229,0.176,0.0 +65-103,M,Kentucky,0.038,0.012,0.237,0.005,0.192,0.005,0.0,0.0,0.03,0.249,0.231,0.0 +65-103,M,Louisiana,0.038,0.012,0.237,0.005,0.192,0.005,0.0,0.0,0.03,0.249,0.231,0.0 +65-103,M,Maine,0.148,0.008,0.137,0.012,0.202,0.006,0.0,0.0,0.047,0.293,0.138,0.008 +65-103,M,Maryland,0.038,0.012,0.237,0.005,0.192,0.005,0.0,0.0,0.03,0.249,0.231,0.0 +65-103,M,Massachusetts,0.148,0.008,0.137,0.012,0.202,0.006,0.0,0.0,0.047,0.293,0.138,0.008 +65-103,M,Michigan,0.106,0.033,0.22,0.0,0.182,0.005,0.0,0.0,0.049,0.229,0.176,0.0 +65-103,M,Minnesota,0.106,0.033,0.22,0.0,0.182,0.005,0.0,0.0,0.049,0.229,0.176,0.0 +65-103,M,Mississippi,0.038,0.012,0.237,0.005,0.192,0.005,0.0,0.0,0.03,0.249,0.231,0.0 +65-103,M,Missouri,0.106,0.033,0.22,0.0,0.182,0.005,0.0,0.0,0.049,0.229,0.176,0.0 +65-103,M,Montana,0.107,0.016,0.117,0.005,0.153,0.0,0.0,0.0,0.104,0.277,0.221,0.0 +65-103,M,Nebraska,0.106,0.033,0.22,0.0,0.182,0.005,0.0,0.0,0.049,0.229,0.176,0.0 +65-103,M,Nevada,0.107,0.016,0.117,0.005,0.153,0.0,0.0,0.0,0.104,0.277,0.221,0.0 +65-103,M,New Hampshire,0.148,0.008,0.137,0.012,0.202,0.006,0.0,0.0,0.047,0.293,0.138,0.008 +65-103,M,New Jersey,0.148,0.008,0.137,0.012,0.202,0.006,0.0,0.0,0.047,0.293,0.138,0.008 +65-103,M,New Mexico,0.107,0.016,0.117,0.005,0.153,0.0,0.0,0.0,0.104,0.277,0.221,0.0 +65-103,M,New York,0.148,0.008,0.137,0.012,0.202,0.006,0.0,0.0,0.047,0.293,0.138,0.008 +65-103,M,North Carolina,0.038,0.012,0.237,0.005,0.192,0.005,0.0,0.0,0.03,0.249,0.231,0.0 +65-103,M,North Dakota,0.106,0.033,0.22,0.0,0.182,0.005,0.0,0.0,0.049,0.229,0.176,0.0 +65-103,M,Ohio,0.106,0.033,0.22,0.0,0.182,0.005,0.0,0.0,0.049,0.229,0.176,0.0 +65-103,M,Oklahoma,0.038,0.012,0.237,0.005,0.192,0.005,0.0,0.0,0.03,0.249,0.231,0.0 +65-103,M,Oregon,0.107,0.016,0.117,0.005,0.153,0.0,0.0,0.0,0.104,0.277,0.221,0.0 +65-103,M,Pennsylvania,0.148,0.008,0.137,0.012,0.202,0.006,0.0,0.0,0.047,0.293,0.138,0.008 +65-103,M,Rhode Island,0.148,0.008,0.137,0.012,0.202,0.006,0.0,0.0,0.047,0.293,0.138,0.008 +65-103,M,South Carolina,0.038,0.012,0.237,0.005,0.192,0.005,0.0,0.0,0.03,0.249,0.231,0.0 +65-103,M,South Dakota,0.106,0.033,0.22,0.0,0.182,0.005,0.0,0.0,0.049,0.229,0.176,0.0 +65-103,M,Tennessee,0.038,0.012,0.237,0.005,0.192,0.005,0.0,0.0,0.03,0.249,0.231,0.0 +65-103,M,Texas,0.038,0.012,0.237,0.005,0.192,0.005,0.0,0.0,0.03,0.249,0.231,0.0 +65-103,M,Utah,0.107,0.016,0.117,0.005,0.153,0.0,0.0,0.0,0.104,0.277,0.221,0.0 +65-103,M,Vermont,0.148,0.008,0.137,0.012,0.202,0.006,0.0,0.0,0.047,0.293,0.138,0.008 +65-103,M,Virginia,0.038,0.012,0.237,0.005,0.192,0.005,0.0,0.0,0.03,0.249,0.231,0.0 +65-103,M,Washington,0.107,0.016,0.117,0.005,0.153,0.0,0.0,0.0,0.104,0.277,0.221,0.0 +65-103,M,West Virginia,0.038,0.012,0.237,0.005,0.192,0.005,0.0,0.0,0.03,0.249,0.231,0.0 +65-103,M,Wisconsin,0.106,0.033,0.22,0.0,0.182,0.005,0.0,0.0,0.049,0.229,0.176,0.0 +65-103,M,Wyoming,0.107,0.016,0.117,0.005,0.153,0.0,0.0,0.0,0.104,0.277,0.221,0.0 diff --git a/src/main/resources/modules/lookup_tables/beta_blocker_nebivolol_product_distribution.csv b/src/main/resources/modules/lookup_tables/beta_blocker_nebivolol_product_distribution.csv new file mode 100644 index 0000000..252d29e --- /dev/null +++ b/src/main/resources/modules/lookup_tables/beta_blocker_nebivolol_product_distribution.csv @@ -0,0 +1,227 @@ +age,gender,state,Prescribe_Nebivolol_10_Mg_Oral_Tablet_Bystolic,Prescribe_Nebivolol_20_Mg_Oral_Tablet_Bystolic,Prescribe_Nebivolol_2_5_Mg_Oral_Tablet_Bystolic,Prescribe_Nebivolol_5_Mg_Oral_Tablet_Bystolic +36-45,F,Alabama,0.0,0.0,0.0,1.0 +36-45,F,Arkansas,0.0,0.0,0.0,1.0 +36-45,F,Delaware,0.0,0.0,0.0,1.0 +36-45,F,District of Columbia,0.0,0.0,0.0,1.0 +36-45,F,Florida,0.0,0.0,0.0,1.0 +36-45,F,Georgia,0.0,0.0,0.0,1.0 +36-45,F,Kentucky,0.0,0.0,0.0,1.0 +36-45,F,Louisiana,0.0,0.0,0.0,1.0 +36-45,F,Maryland,0.0,0.0,0.0,1.0 +36-45,F,Mississippi,0.0,0.0,0.0,1.0 +36-45,F,North Carolina,0.0,0.0,0.0,1.0 +36-45,F,Oklahoma,0.0,0.0,0.0,1.0 +36-45,F,South Carolina,0.0,0.0,0.0,1.0 +36-45,F,Tennessee,0.0,0.0,0.0,1.0 +36-45,F,Texas,0.0,0.0,0.0,1.0 +36-45,F,Virginia,0.0,0.0,0.0,1.0 +36-45,F,West Virginia,0.0,0.0,0.0,1.0 +36-45,M,Alabama,0.0,0.0,0.245,0.755 +36-45,M,Arkansas,0.0,0.0,0.245,0.755 +36-45,M,Delaware,0.0,0.0,0.245,0.755 +36-45,M,District of Columbia,0.0,0.0,0.245,0.755 +36-45,M,Florida,0.0,0.0,0.245,0.755 +36-45,M,Georgia,0.0,0.0,0.245,0.755 +36-45,M,Kentucky,0.0,0.0,0.245,0.755 +36-45,M,Louisiana,0.0,0.0,0.245,0.755 +36-45,M,Maryland,0.0,0.0,0.245,0.755 +36-45,M,Mississippi,0.0,0.0,0.245,0.755 +36-45,M,North Carolina,0.0,0.0,0.245,0.755 +36-45,M,Oklahoma,0.0,0.0,0.245,0.755 +36-45,M,South Carolina,0.0,0.0,0.245,0.755 +36-45,M,Tennessee,0.0,0.0,0.245,0.755 +36-45,M,Texas,0.0,0.0,0.245,0.755 +36-45,M,Virginia,0.0,0.0,0.245,0.755 +36-45,M,West Virginia,0.0,0.0,0.245,0.755 +46-65,F,Alabama,0.454,0.135,0.115,0.296 +46-65,F,Alaska,0.224,0.0,0.0,0.776 +46-65,F,Arizona,0.224,0.0,0.0,0.776 +46-65,F,Arkansas,0.454,0.135,0.115,0.296 +46-65,F,California,0.224,0.0,0.0,0.776 +46-65,F,Colorado,0.224,0.0,0.0,0.776 +46-65,F,Connecticut,0.538,0.0,0.0,0.462 +46-65,F,Delaware,0.454,0.135,0.115,0.296 +46-65,F,District of Columbia,0.454,0.135,0.115,0.296 +46-65,F,Florida,0.454,0.135,0.115,0.296 +46-65,F,Georgia,0.454,0.135,0.115,0.296 +46-65,F,Hawaii,0.224,0.0,0.0,0.776 +46-65,F,Idaho,0.224,0.0,0.0,0.776 +46-65,F,Illinois,0.0,0.396,0.0,0.604 +46-65,F,Indiana,0.0,0.396,0.0,0.604 +46-65,F,Iowa,0.0,0.396,0.0,0.604 +46-65,F,Kansas,0.0,0.396,0.0,0.604 +46-65,F,Kentucky,0.454,0.135,0.115,0.296 +46-65,F,Louisiana,0.454,0.135,0.115,0.296 +46-65,F,Maine,0.538,0.0,0.0,0.462 +46-65,F,Maryland,0.454,0.135,0.115,0.296 +46-65,F,Massachusetts,0.538,0.0,0.0,0.462 +46-65,F,Michigan,0.0,0.396,0.0,0.604 +46-65,F,Minnesota,0.0,0.396,0.0,0.604 +46-65,F,Mississippi,0.454,0.135,0.115,0.296 +46-65,F,Missouri,0.0,0.396,0.0,0.604 +46-65,F,Montana,0.224,0.0,0.0,0.776 +46-65,F,Nebraska,0.0,0.396,0.0,0.604 +46-65,F,Nevada,0.224,0.0,0.0,0.776 +46-65,F,New Hampshire,0.538,0.0,0.0,0.462 +46-65,F,New Jersey,0.538,0.0,0.0,0.462 +46-65,F,New Mexico,0.224,0.0,0.0,0.776 +46-65,F,New York,0.538,0.0,0.0,0.462 +46-65,F,North Carolina,0.454,0.135,0.115,0.296 +46-65,F,North Dakota,0.0,0.396,0.0,0.604 +46-65,F,Ohio,0.0,0.396,0.0,0.604 +46-65,F,Oklahoma,0.454,0.135,0.115,0.296 +46-65,F,Oregon,0.224,0.0,0.0,0.776 +46-65,F,Pennsylvania,0.538,0.0,0.0,0.462 +46-65,F,Rhode Island,0.538,0.0,0.0,0.462 +46-65,F,South Carolina,0.454,0.135,0.115,0.296 +46-65,F,South Dakota,0.0,0.396,0.0,0.604 +46-65,F,Tennessee,0.454,0.135,0.115,0.296 +46-65,F,Texas,0.454,0.135,0.115,0.296 +46-65,F,Utah,0.224,0.0,0.0,0.776 +46-65,F,Vermont,0.538,0.0,0.0,0.462 +46-65,F,Virginia,0.454,0.135,0.115,0.296 +46-65,F,Washington,0.224,0.0,0.0,0.776 +46-65,F,West Virginia,0.454,0.135,0.115,0.296 +46-65,F,Wisconsin,0.0,0.396,0.0,0.604 +46-65,F,Wyoming,0.224,0.0,0.0,0.776 +46-65,M,Alabama,0.43,0.0,0.0,0.57 +46-65,M,Alaska,0.0,0.0,0.0,1.0 +46-65,M,Arizona,0.0,0.0,0.0,1.0 +46-65,M,Arkansas,0.43,0.0,0.0,0.57 +46-65,M,California,0.0,0.0,0.0,1.0 +46-65,M,Colorado,0.0,0.0,0.0,1.0 +46-65,M,Connecticut,0.722,0.0,0.0,0.278 +46-65,M,Delaware,0.43,0.0,0.0,0.57 +46-65,M,District of Columbia,0.43,0.0,0.0,0.57 +46-65,M,Florida,0.43,0.0,0.0,0.57 +46-65,M,Georgia,0.43,0.0,0.0,0.57 +46-65,M,Hawaii,0.0,0.0,0.0,1.0 +46-65,M,Idaho,0.0,0.0,0.0,1.0 +46-65,M,Illinois,1.0,0.0,0.0,0.0 +46-65,M,Indiana,1.0,0.0,0.0,0.0 +46-65,M,Iowa,1.0,0.0,0.0,0.0 +46-65,M,Kansas,1.0,0.0,0.0,0.0 +46-65,M,Kentucky,0.43,0.0,0.0,0.57 +46-65,M,Louisiana,0.43,0.0,0.0,0.57 +46-65,M,Maine,0.722,0.0,0.0,0.278 +46-65,M,Maryland,0.43,0.0,0.0,0.57 +46-65,M,Massachusetts,0.722,0.0,0.0,0.278 +46-65,M,Michigan,1.0,0.0,0.0,0.0 +46-65,M,Minnesota,1.0,0.0,0.0,0.0 +46-65,M,Mississippi,0.43,0.0,0.0,0.57 +46-65,M,Missouri,1.0,0.0,0.0,0.0 +46-65,M,Montana,0.0,0.0,0.0,1.0 +46-65,M,Nebraska,1.0,0.0,0.0,0.0 +46-65,M,Nevada,0.0,0.0,0.0,1.0 +46-65,M,New Hampshire,0.722,0.0,0.0,0.278 +46-65,M,New Jersey,0.722,0.0,0.0,0.278 +46-65,M,New Mexico,0.0,0.0,0.0,1.0 +46-65,M,New York,0.722,0.0,0.0,0.278 +46-65,M,North Carolina,0.43,0.0,0.0,0.57 +46-65,M,North Dakota,1.0,0.0,0.0,0.0 +46-65,M,Ohio,1.0,0.0,0.0,0.0 +46-65,M,Oklahoma,0.43,0.0,0.0,0.57 +46-65,M,Oregon,0.0,0.0,0.0,1.0 +46-65,M,Pennsylvania,0.722,0.0,0.0,0.278 +46-65,M,Rhode Island,0.722,0.0,0.0,0.278 +46-65,M,South Carolina,0.43,0.0,0.0,0.57 +46-65,M,South Dakota,1.0,0.0,0.0,0.0 +46-65,M,Tennessee,0.43,0.0,0.0,0.57 +46-65,M,Texas,0.43,0.0,0.0,0.57 +46-65,M,Utah,0.0,0.0,0.0,1.0 +46-65,M,Vermont,0.722,0.0,0.0,0.278 +46-65,M,Virginia,0.43,0.0,0.0,0.57 +46-65,M,Washington,0.0,0.0,0.0,1.0 +46-65,M,West Virginia,0.43,0.0,0.0,0.57 +46-65,M,Wisconsin,1.0,0.0,0.0,0.0 +46-65,M,Wyoming,0.0,0.0,0.0,1.0 +65-103,F,Alabama,0.54,0.0,0.0,0.46 +65-103,F,Alaska,0.287,0.143,0.0,0.57 +65-103,F,Arizona,0.287,0.143,0.0,0.57 +65-103,F,Arkansas,0.54,0.0,0.0,0.46 +65-103,F,California,0.287,0.143,0.0,0.57 +65-103,F,Colorado,0.287,0.143,0.0,0.57 +65-103,F,Connecticut,1.0,0.0,0.0,0.0 +65-103,F,Delaware,0.54,0.0,0.0,0.46 +65-103,F,District of Columbia,0.54,0.0,0.0,0.46 +65-103,F,Florida,0.54,0.0,0.0,0.46 +65-103,F,Georgia,0.54,0.0,0.0,0.46 +65-103,F,Hawaii,0.287,0.143,0.0,0.57 +65-103,F,Idaho,0.287,0.143,0.0,0.57 +65-103,F,Kentucky,0.54,0.0,0.0,0.46 +65-103,F,Louisiana,0.54,0.0,0.0,0.46 +65-103,F,Maine,1.0,0.0,0.0,0.0 +65-103,F,Maryland,0.54,0.0,0.0,0.46 +65-103,F,Massachusetts,1.0,0.0,0.0,0.0 +65-103,F,Mississippi,0.54,0.0,0.0,0.46 +65-103,F,Montana,0.287,0.143,0.0,0.57 +65-103,F,Nevada,0.287,0.143,0.0,0.57 +65-103,F,New Hampshire,1.0,0.0,0.0,0.0 +65-103,F,New Jersey,1.0,0.0,0.0,0.0 +65-103,F,New Mexico,0.287,0.143,0.0,0.57 +65-103,F,New York,1.0,0.0,0.0,0.0 +65-103,F,North Carolina,0.54,0.0,0.0,0.46 +65-103,F,Oklahoma,0.54,0.0,0.0,0.46 +65-103,F,Oregon,0.287,0.143,0.0,0.57 +65-103,F,Pennsylvania,1.0,0.0,0.0,0.0 +65-103,F,Rhode Island,1.0,0.0,0.0,0.0 +65-103,F,South Carolina,0.54,0.0,0.0,0.46 +65-103,F,Tennessee,0.54,0.0,0.0,0.46 +65-103,F,Texas,0.54,0.0,0.0,0.46 +65-103,F,Utah,0.287,0.143,0.0,0.57 +65-103,F,Vermont,1.0,0.0,0.0,0.0 +65-103,F,Virginia,0.54,0.0,0.0,0.46 +65-103,F,Washington,0.287,0.143,0.0,0.57 +65-103,F,West Virginia,0.54,0.0,0.0,0.46 +65-103,F,Wyoming,0.287,0.143,0.0,0.57 +65-103,M,Alabama,0.481,0.126,0.0,0.393 +65-103,M,Alaska,0.372,0.165,0.0,0.463 +65-103,M,Arizona,0.372,0.165,0.0,0.463 +65-103,M,Arkansas,0.481,0.126,0.0,0.393 +65-103,M,California,0.372,0.165,0.0,0.463 +65-103,M,Colorado,0.372,0.165,0.0,0.463 +65-103,M,Connecticut,0.0,1.0,0.0,0.0 +65-103,M,Delaware,0.481,0.126,0.0,0.393 +65-103,M,District of Columbia,0.481,0.126,0.0,0.393 +65-103,M,Florida,0.481,0.126,0.0,0.393 +65-103,M,Georgia,0.481,0.126,0.0,0.393 +65-103,M,Hawaii,0.372,0.165,0.0,0.463 +65-103,M,Idaho,0.372,0.165,0.0,0.463 +65-103,M,Illinois,0.598,0.402,0.0,0.0 +65-103,M,Indiana,0.598,0.402,0.0,0.0 +65-103,M,Iowa,0.598,0.402,0.0,0.0 +65-103,M,Kansas,0.598,0.402,0.0,0.0 +65-103,M,Kentucky,0.481,0.126,0.0,0.393 +65-103,M,Louisiana,0.481,0.126,0.0,0.393 +65-103,M,Maine,0.0,1.0,0.0,0.0 +65-103,M,Maryland,0.481,0.126,0.0,0.393 +65-103,M,Massachusetts,0.0,1.0,0.0,0.0 +65-103,M,Michigan,0.598,0.402,0.0,0.0 +65-103,M,Minnesota,0.598,0.402,0.0,0.0 +65-103,M,Mississippi,0.481,0.126,0.0,0.393 +65-103,M,Missouri,0.598,0.402,0.0,0.0 +65-103,M,Montana,0.372,0.165,0.0,0.463 +65-103,M,Nebraska,0.598,0.402,0.0,0.0 +65-103,M,Nevada,0.372,0.165,0.0,0.463 +65-103,M,New Hampshire,0.0,1.0,0.0,0.0 +65-103,M,New Jersey,0.0,1.0,0.0,0.0 +65-103,M,New Mexico,0.372,0.165,0.0,0.463 +65-103,M,New York,0.0,1.0,0.0,0.0 +65-103,M,North Carolina,0.481,0.126,0.0,0.393 +65-103,M,North Dakota,0.598,0.402,0.0,0.0 +65-103,M,Ohio,0.598,0.402,0.0,0.0 +65-103,M,Oklahoma,0.481,0.126,0.0,0.393 +65-103,M,Oregon,0.372,0.165,0.0,0.463 +65-103,M,Pennsylvania,0.0,1.0,0.0,0.0 +65-103,M,Rhode Island,0.0,1.0,0.0,0.0 +65-103,M,South Carolina,0.481,0.126,0.0,0.393 +65-103,M,South Dakota,0.598,0.402,0.0,0.0 +65-103,M,Tennessee,0.481,0.126,0.0,0.393 +65-103,M,Texas,0.481,0.126,0.0,0.393 +65-103,M,Utah,0.372,0.165,0.0,0.463 +65-103,M,Vermont,0.0,1.0,0.0,0.0 +65-103,M,Virginia,0.481,0.126,0.0,0.393 +65-103,M,Washington,0.372,0.165,0.0,0.463 +65-103,M,West Virginia,0.481,0.126,0.0,0.393 +65-103,M,Wisconsin,0.598,0.402,0.0,0.0 +65-103,M,Wyoming,0.372,0.165,0.0,0.463 diff --git a/src/main/resources/modules/lookup_tables/beta_blocker_propranolol_product_distribution.csv b/src/main/resources/modules/lookup_tables/beta_blocker_propranolol_product_distribution.csv new file mode 100644 index 0000000..6dc582f --- /dev/null +++ b/src/main/resources/modules/lookup_tables/beta_blocker_propranolol_product_distribution.csv @@ -0,0 +1,479 @@ +age,gender,state,Prescribe_24_Hr_Propranolol_Hydrochloride_120_Mg_Extended_Release_Oral_Capsule,Prescribe_24_Hr_Propranolol_Hydrochloride_160_Mg_Extended_Release_Oral_Capsule,Prescribe_24_Hr_Propranolol_Hydrochloride_60_Mg_Extended_Release_Oral_Capsule,Prescribe_24_Hr_Propranolol_Hydrochloride_80_Mg_Extended_Release_Oral_Capsule,Prescribe_Propranolol_Hydrochloride_10_Mg_Oral_Tablet,Prescribe_Propranolol_Hydrochloride_20_Mg_Oral_Tablet,Prescribe_Propranolol_Hydrochloride_40_Mg_Oral_Tablet,Prescribe_Propranolol_Hydrochloride_60_Mg_Oral_Tablet,Prescribe_Propranolol_Hydrochloride_80_Mg_Oral_Tablet +12-17,F,Alabama,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,F,Arkansas,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,F,Delaware,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,F,District of Columbia,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,F,Florida,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,F,Georgia,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,F,Kentucky,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,F,Louisiana,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,F,Maryland,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,F,Mississippi,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,F,North Carolina,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,F,Oklahoma,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,F,South Carolina,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,F,Tennessee,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,F,Texas,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,F,Virginia,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +12-17,F,West Virginia,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Alabama,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Alaska,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,Arizona,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,Arkansas,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,California,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,Colorado,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,Delaware,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,District of Columbia,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Florida,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Georgia,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Hawaii,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,Idaho,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,Illinois,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Indiana,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Iowa,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Kansas,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Kentucky,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Louisiana,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Maryland,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Michigan,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Minnesota,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Mississippi,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Missouri,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Montana,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,Nebraska,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Nevada,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,New Mexico,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,North Carolina,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,North Dakota,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Ohio,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Oklahoma,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Oregon,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,South Carolina,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,South Dakota,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Tennessee,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Texas,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Utah,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,Virginia,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Washington,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,F,West Virginia,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,F,Wisconsin,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Wyoming,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0 +18-25,M,Alaska,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,M,Arizona,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,M,California,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,M,Colorado,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,M,Hawaii,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,M,Idaho,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,M,Illinois,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Indiana,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Iowa,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Kansas,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Michigan,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Minnesota,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Missouri,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Montana,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,M,Nebraska,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Nevada,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,M,New Mexico,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,M,North Dakota,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Ohio,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Oregon,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,M,South Dakota,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Utah,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,M,Washington,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +18-25,M,Wisconsin,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,M,Wyoming,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +26-35,F,Alabama,0.0,0.0,0.204,0.0,0.398,0.187,0.21,0.0,0.0 +26-35,F,Alaska,0.0,0.0,0.0,0.0,0.637,0.041,0.323,0.0,0.0 +26-35,F,Arizona,0.0,0.0,0.0,0.0,0.637,0.041,0.323,0.0,0.0 +26-35,F,Arkansas,0.0,0.0,0.204,0.0,0.398,0.187,0.21,0.0,0.0 +26-35,F,California,0.0,0.0,0.0,0.0,0.637,0.041,0.323,0.0,0.0 +26-35,F,Colorado,0.0,0.0,0.0,0.0,0.637,0.041,0.323,0.0,0.0 +26-35,F,Connecticut,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Delaware,0.0,0.0,0.204,0.0,0.398,0.187,0.21,0.0,0.0 +26-35,F,District of Columbia,0.0,0.0,0.204,0.0,0.398,0.187,0.21,0.0,0.0 +26-35,F,Florida,0.0,0.0,0.204,0.0,0.398,0.187,0.21,0.0,0.0 +26-35,F,Georgia,0.0,0.0,0.204,0.0,0.398,0.187,0.21,0.0,0.0 +26-35,F,Hawaii,0.0,0.0,0.0,0.0,0.637,0.041,0.323,0.0,0.0 +26-35,F,Idaho,0.0,0.0,0.0,0.0,0.637,0.041,0.323,0.0,0.0 +26-35,F,Illinois,0.0,0.0,0.41,0.0,0.18,0.41,0.0,0.0,0.0 +26-35,F,Indiana,0.0,0.0,0.41,0.0,0.18,0.41,0.0,0.0,0.0 +26-35,F,Iowa,0.0,0.0,0.41,0.0,0.18,0.41,0.0,0.0,0.0 +26-35,F,Kansas,0.0,0.0,0.41,0.0,0.18,0.41,0.0,0.0,0.0 +26-35,F,Kentucky,0.0,0.0,0.204,0.0,0.398,0.187,0.21,0.0,0.0 +26-35,F,Louisiana,0.0,0.0,0.204,0.0,0.398,0.187,0.21,0.0,0.0 +26-35,F,Maine,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Maryland,0.0,0.0,0.204,0.0,0.398,0.187,0.21,0.0,0.0 +26-35,F,Massachusetts,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Michigan,0.0,0.0,0.41,0.0,0.18,0.41,0.0,0.0,0.0 +26-35,F,Minnesota,0.0,0.0,0.41,0.0,0.18,0.41,0.0,0.0,0.0 +26-35,F,Mississippi,0.0,0.0,0.204,0.0,0.398,0.187,0.21,0.0,0.0 +26-35,F,Missouri,0.0,0.0,0.41,0.0,0.18,0.41,0.0,0.0,0.0 +26-35,F,Montana,0.0,0.0,0.0,0.0,0.637,0.041,0.323,0.0,0.0 +26-35,F,Nebraska,0.0,0.0,0.41,0.0,0.18,0.41,0.0,0.0,0.0 +26-35,F,Nevada,0.0,0.0,0.0,0.0,0.637,0.041,0.323,0.0,0.0 +26-35,F,New Hampshire,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,New Jersey,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,New Mexico,0.0,0.0,0.0,0.0,0.637,0.041,0.323,0.0,0.0 +26-35,F,New York,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,North Carolina,0.0,0.0,0.204,0.0,0.398,0.187,0.21,0.0,0.0 +26-35,F,North Dakota,0.0,0.0,0.41,0.0,0.18,0.41,0.0,0.0,0.0 +26-35,F,Ohio,0.0,0.0,0.41,0.0,0.18,0.41,0.0,0.0,0.0 +26-35,F,Oklahoma,0.0,0.0,0.204,0.0,0.398,0.187,0.21,0.0,0.0 +26-35,F,Oregon,0.0,0.0,0.0,0.0,0.637,0.041,0.323,0.0,0.0 +26-35,F,Pennsylvania,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Rhode Island,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,South Carolina,0.0,0.0,0.204,0.0,0.398,0.187,0.21,0.0,0.0 +26-35,F,South Dakota,0.0,0.0,0.41,0.0,0.18,0.41,0.0,0.0,0.0 +26-35,F,Tennessee,0.0,0.0,0.204,0.0,0.398,0.187,0.21,0.0,0.0 +26-35,F,Texas,0.0,0.0,0.204,0.0,0.398,0.187,0.21,0.0,0.0 +26-35,F,Utah,0.0,0.0,0.0,0.0,0.637,0.041,0.323,0.0,0.0 +26-35,F,Vermont,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Virginia,0.0,0.0,0.204,0.0,0.398,0.187,0.21,0.0,0.0 +26-35,F,Washington,0.0,0.0,0.0,0.0,0.637,0.041,0.323,0.0,0.0 +26-35,F,West Virginia,0.0,0.0,0.204,0.0,0.398,0.187,0.21,0.0,0.0 +26-35,F,Wisconsin,0.0,0.0,0.41,0.0,0.18,0.41,0.0,0.0,0.0 +26-35,F,Wyoming,0.0,0.0,0.0,0.0,0.637,0.041,0.323,0.0,0.0 +26-35,M,Alabama,0.0,0.0,0.0,0.252,0.0,0.174,0.574,0.0,0.0 +26-35,M,Alaska,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +26-35,M,Arizona,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +26-35,M,Arkansas,0.0,0.0,0.0,0.252,0.0,0.174,0.574,0.0,0.0 +26-35,M,California,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +26-35,M,Colorado,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +26-35,M,Delaware,0.0,0.0,0.0,0.252,0.0,0.174,0.574,0.0,0.0 +26-35,M,District of Columbia,0.0,0.0,0.0,0.252,0.0,0.174,0.574,0.0,0.0 +26-35,M,Florida,0.0,0.0,0.0,0.252,0.0,0.174,0.574,0.0,0.0 +26-35,M,Georgia,0.0,0.0,0.0,0.252,0.0,0.174,0.574,0.0,0.0 +26-35,M,Hawaii,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +26-35,M,Idaho,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +26-35,M,Illinois,0.0,0.0,0.0,0.479,0.132,0.0,0.389,0.0,0.0 +26-35,M,Indiana,0.0,0.0,0.0,0.479,0.132,0.0,0.389,0.0,0.0 +26-35,M,Iowa,0.0,0.0,0.0,0.479,0.132,0.0,0.389,0.0,0.0 +26-35,M,Kansas,0.0,0.0,0.0,0.479,0.132,0.0,0.389,0.0,0.0 +26-35,M,Kentucky,0.0,0.0,0.0,0.252,0.0,0.174,0.574,0.0,0.0 +26-35,M,Louisiana,0.0,0.0,0.0,0.252,0.0,0.174,0.574,0.0,0.0 +26-35,M,Maryland,0.0,0.0,0.0,0.252,0.0,0.174,0.574,0.0,0.0 +26-35,M,Michigan,0.0,0.0,0.0,0.479,0.132,0.0,0.389,0.0,0.0 +26-35,M,Minnesota,0.0,0.0,0.0,0.479,0.132,0.0,0.389,0.0,0.0 +26-35,M,Mississippi,0.0,0.0,0.0,0.252,0.0,0.174,0.574,0.0,0.0 +26-35,M,Missouri,0.0,0.0,0.0,0.479,0.132,0.0,0.389,0.0,0.0 +26-35,M,Montana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +26-35,M,Nebraska,0.0,0.0,0.0,0.479,0.132,0.0,0.389,0.0,0.0 +26-35,M,Nevada,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +26-35,M,New Mexico,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +26-35,M,North Carolina,0.0,0.0,0.0,0.252,0.0,0.174,0.574,0.0,0.0 +26-35,M,North Dakota,0.0,0.0,0.0,0.479,0.132,0.0,0.389,0.0,0.0 +26-35,M,Ohio,0.0,0.0,0.0,0.479,0.132,0.0,0.389,0.0,0.0 +26-35,M,Oklahoma,0.0,0.0,0.0,0.252,0.0,0.174,0.574,0.0,0.0 +26-35,M,Oregon,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +26-35,M,South Carolina,0.0,0.0,0.0,0.252,0.0,0.174,0.574,0.0,0.0 +26-35,M,South Dakota,0.0,0.0,0.0,0.479,0.132,0.0,0.389,0.0,0.0 +26-35,M,Tennessee,0.0,0.0,0.0,0.252,0.0,0.174,0.574,0.0,0.0 +26-35,M,Texas,0.0,0.0,0.0,0.252,0.0,0.174,0.574,0.0,0.0 +26-35,M,Utah,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +26-35,M,Virginia,0.0,0.0,0.0,0.252,0.0,0.174,0.574,0.0,0.0 +26-35,M,Washington,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +26-35,M,West Virginia,0.0,0.0,0.0,0.252,0.0,0.174,0.574,0.0,0.0 +26-35,M,Wisconsin,0.0,0.0,0.0,0.479,0.132,0.0,0.389,0.0,0.0 +26-35,M,Wyoming,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 +36-45,F,Alabama,0.0,0.0,0.301,0.0,0.0,0.428,0.271,0.0,0.0 +36-45,F,Alaska,0.0,0.849,0.0,0.0,0.151,0.0,0.0,0.0,0.0 +36-45,F,Arizona,0.0,0.849,0.0,0.0,0.151,0.0,0.0,0.0,0.0 +36-45,F,Arkansas,0.0,0.0,0.301,0.0,0.0,0.428,0.271,0.0,0.0 +36-45,F,California,0.0,0.849,0.0,0.0,0.151,0.0,0.0,0.0,0.0 +36-45,F,Colorado,0.0,0.849,0.0,0.0,0.151,0.0,0.0,0.0,0.0 +36-45,F,Connecticut,0.0,0.0,0.0,0.0,0.191,0.573,0.237,0.0,0.0 +36-45,F,Delaware,0.0,0.0,0.301,0.0,0.0,0.428,0.271,0.0,0.0 +36-45,F,District of Columbia,0.0,0.0,0.301,0.0,0.0,0.428,0.271,0.0,0.0 +36-45,F,Florida,0.0,0.0,0.301,0.0,0.0,0.428,0.271,0.0,0.0 +36-45,F,Georgia,0.0,0.0,0.301,0.0,0.0,0.428,0.271,0.0,0.0 +36-45,F,Hawaii,0.0,0.849,0.0,0.0,0.151,0.0,0.0,0.0,0.0 +36-45,F,Idaho,0.0,0.849,0.0,0.0,0.151,0.0,0.0,0.0,0.0 +36-45,F,Illinois,0.153,0.0,0.307,0.27,0.0,0.0,0.27,0.0,0.0 +36-45,F,Indiana,0.153,0.0,0.307,0.27,0.0,0.0,0.27,0.0,0.0 +36-45,F,Iowa,0.153,0.0,0.307,0.27,0.0,0.0,0.27,0.0,0.0 +36-45,F,Kansas,0.153,0.0,0.307,0.27,0.0,0.0,0.27,0.0,0.0 +36-45,F,Kentucky,0.0,0.0,0.301,0.0,0.0,0.428,0.271,0.0,0.0 +36-45,F,Louisiana,0.0,0.0,0.301,0.0,0.0,0.428,0.271,0.0,0.0 +36-45,F,Maine,0.0,0.0,0.0,0.0,0.191,0.573,0.237,0.0,0.0 +36-45,F,Maryland,0.0,0.0,0.301,0.0,0.0,0.428,0.271,0.0,0.0 +36-45,F,Massachusetts,0.0,0.0,0.0,0.0,0.191,0.573,0.237,0.0,0.0 +36-45,F,Michigan,0.153,0.0,0.307,0.27,0.0,0.0,0.27,0.0,0.0 +36-45,F,Minnesota,0.153,0.0,0.307,0.27,0.0,0.0,0.27,0.0,0.0 +36-45,F,Mississippi,0.0,0.0,0.301,0.0,0.0,0.428,0.271,0.0,0.0 +36-45,F,Missouri,0.153,0.0,0.307,0.27,0.0,0.0,0.27,0.0,0.0 +36-45,F,Montana,0.0,0.849,0.0,0.0,0.151,0.0,0.0,0.0,0.0 +36-45,F,Nebraska,0.153,0.0,0.307,0.27,0.0,0.0,0.27,0.0,0.0 +36-45,F,Nevada,0.0,0.849,0.0,0.0,0.151,0.0,0.0,0.0,0.0 +36-45,F,New Hampshire,0.0,0.0,0.0,0.0,0.191,0.573,0.237,0.0,0.0 +36-45,F,New Jersey,0.0,0.0,0.0,0.0,0.191,0.573,0.237,0.0,0.0 +36-45,F,New Mexico,0.0,0.849,0.0,0.0,0.151,0.0,0.0,0.0,0.0 +36-45,F,New York,0.0,0.0,0.0,0.0,0.191,0.573,0.237,0.0,0.0 +36-45,F,North Carolina,0.0,0.0,0.301,0.0,0.0,0.428,0.271,0.0,0.0 +36-45,F,North Dakota,0.153,0.0,0.307,0.27,0.0,0.0,0.27,0.0,0.0 +36-45,F,Ohio,0.153,0.0,0.307,0.27,0.0,0.0,0.27,0.0,0.0 +36-45,F,Oklahoma,0.0,0.0,0.301,0.0,0.0,0.428,0.271,0.0,0.0 +36-45,F,Oregon,0.0,0.849,0.0,0.0,0.151,0.0,0.0,0.0,0.0 +36-45,F,Pennsylvania,0.0,0.0,0.0,0.0,0.191,0.573,0.237,0.0,0.0 +36-45,F,Rhode Island,0.0,0.0,0.0,0.0,0.191,0.573,0.237,0.0,0.0 +36-45,F,South Carolina,0.0,0.0,0.301,0.0,0.0,0.428,0.271,0.0,0.0 +36-45,F,South Dakota,0.153,0.0,0.307,0.27,0.0,0.0,0.27,0.0,0.0 +36-45,F,Tennessee,0.0,0.0,0.301,0.0,0.0,0.428,0.271,0.0,0.0 +36-45,F,Texas,0.0,0.0,0.301,0.0,0.0,0.428,0.271,0.0,0.0 +36-45,F,Utah,0.0,0.849,0.0,0.0,0.151,0.0,0.0,0.0,0.0 +36-45,F,Vermont,0.0,0.0,0.0,0.0,0.191,0.573,0.237,0.0,0.0 +36-45,F,Virginia,0.0,0.0,0.301,0.0,0.0,0.428,0.271,0.0,0.0 +36-45,F,Washington,0.0,0.849,0.0,0.0,0.151,0.0,0.0,0.0,0.0 +36-45,F,West Virginia,0.0,0.0,0.301,0.0,0.0,0.428,0.271,0.0,0.0 +36-45,F,Wisconsin,0.153,0.0,0.307,0.27,0.0,0.0,0.27,0.0,0.0 +36-45,F,Wyoming,0.0,0.849,0.0,0.0,0.151,0.0,0.0,0.0,0.0 +36-45,M,Alaska,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Arizona,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,California,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Colorado,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Connecticut,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,Hawaii,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Idaho,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Illinois,0.0,0.0,0.241,0.241,0.252,0.265,0.0,0.0,0.0 +36-45,M,Indiana,0.0,0.0,0.241,0.241,0.252,0.265,0.0,0.0,0.0 +36-45,M,Iowa,0.0,0.0,0.241,0.241,0.252,0.265,0.0,0.0,0.0 +36-45,M,Kansas,0.0,0.0,0.241,0.241,0.252,0.265,0.0,0.0,0.0 +36-45,M,Maine,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,Massachusetts,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,Michigan,0.0,0.0,0.241,0.241,0.252,0.265,0.0,0.0,0.0 +36-45,M,Minnesota,0.0,0.0,0.241,0.241,0.252,0.265,0.0,0.0,0.0 +36-45,M,Missouri,0.0,0.0,0.241,0.241,0.252,0.265,0.0,0.0,0.0 +36-45,M,Montana,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Nebraska,0.0,0.0,0.241,0.241,0.252,0.265,0.0,0.0,0.0 +36-45,M,Nevada,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,New Hampshire,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,New Jersey,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,New Mexico,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,New York,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,North Dakota,0.0,0.0,0.241,0.241,0.252,0.265,0.0,0.0,0.0 +36-45,M,Ohio,0.0,0.0,0.241,0.241,0.252,0.265,0.0,0.0,0.0 +36-45,M,Oregon,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Pennsylvania,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,Rhode Island,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,South Dakota,0.0,0.0,0.241,0.241,0.252,0.265,0.0,0.0,0.0 +36-45,M,Utah,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Vermont,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,Washington,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +36-45,M,Wisconsin,0.0,0.0,0.241,0.241,0.252,0.265,0.0,0.0,0.0 +36-45,M,Wyoming,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0 +46-65,F,Alabama,0.0,0.0,0.157,0.0,0.0,0.706,0.0,0.0,0.137 +46-65,F,Alaska,0.0,0.0,0.0,0.0,0.275,0.434,0.291,0.0,0.0 +46-65,F,Arizona,0.0,0.0,0.0,0.0,0.275,0.434,0.291,0.0,0.0 +46-65,F,Arkansas,0.0,0.0,0.157,0.0,0.0,0.706,0.0,0.0,0.137 +46-65,F,California,0.0,0.0,0.0,0.0,0.275,0.434,0.291,0.0,0.0 +46-65,F,Colorado,0.0,0.0,0.0,0.0,0.275,0.434,0.291,0.0,0.0 +46-65,F,Connecticut,0.0,0.507,0.0,0.0,0.391,0.102,0.0,0.0,0.0 +46-65,F,Delaware,0.0,0.0,0.157,0.0,0.0,0.706,0.0,0.0,0.137 +46-65,F,District of Columbia,0.0,0.0,0.157,0.0,0.0,0.706,0.0,0.0,0.137 +46-65,F,Florida,0.0,0.0,0.157,0.0,0.0,0.706,0.0,0.0,0.137 +46-65,F,Georgia,0.0,0.0,0.157,0.0,0.0,0.706,0.0,0.0,0.137 +46-65,F,Hawaii,0.0,0.0,0.0,0.0,0.275,0.434,0.291,0.0,0.0 +46-65,F,Idaho,0.0,0.0,0.0,0.0,0.275,0.434,0.291,0.0,0.0 +46-65,F,Illinois,0.0,0.0,0.155,0.0,0.168,0.484,0.088,0.0,0.105 +46-65,F,Indiana,0.0,0.0,0.155,0.0,0.168,0.484,0.088,0.0,0.105 +46-65,F,Iowa,0.0,0.0,0.155,0.0,0.168,0.484,0.088,0.0,0.105 +46-65,F,Kansas,0.0,0.0,0.155,0.0,0.168,0.484,0.088,0.0,0.105 +46-65,F,Kentucky,0.0,0.0,0.157,0.0,0.0,0.706,0.0,0.0,0.137 +46-65,F,Louisiana,0.0,0.0,0.157,0.0,0.0,0.706,0.0,0.0,0.137 +46-65,F,Maine,0.0,0.507,0.0,0.0,0.391,0.102,0.0,0.0,0.0 +46-65,F,Maryland,0.0,0.0,0.157,0.0,0.0,0.706,0.0,0.0,0.137 +46-65,F,Massachusetts,0.0,0.507,0.0,0.0,0.391,0.102,0.0,0.0,0.0 +46-65,F,Michigan,0.0,0.0,0.155,0.0,0.168,0.484,0.088,0.0,0.105 +46-65,F,Minnesota,0.0,0.0,0.155,0.0,0.168,0.484,0.088,0.0,0.105 +46-65,F,Mississippi,0.0,0.0,0.157,0.0,0.0,0.706,0.0,0.0,0.137 +46-65,F,Missouri,0.0,0.0,0.155,0.0,0.168,0.484,0.088,0.0,0.105 +46-65,F,Montana,0.0,0.0,0.0,0.0,0.275,0.434,0.291,0.0,0.0 +46-65,F,Nebraska,0.0,0.0,0.155,0.0,0.168,0.484,0.088,0.0,0.105 +46-65,F,Nevada,0.0,0.0,0.0,0.0,0.275,0.434,0.291,0.0,0.0 +46-65,F,New Hampshire,0.0,0.507,0.0,0.0,0.391,0.102,0.0,0.0,0.0 +46-65,F,New Jersey,0.0,0.507,0.0,0.0,0.391,0.102,0.0,0.0,0.0 +46-65,F,New Mexico,0.0,0.0,0.0,0.0,0.275,0.434,0.291,0.0,0.0 +46-65,F,New York,0.0,0.507,0.0,0.0,0.391,0.102,0.0,0.0,0.0 +46-65,F,North Carolina,0.0,0.0,0.157,0.0,0.0,0.706,0.0,0.0,0.137 +46-65,F,North Dakota,0.0,0.0,0.155,0.0,0.168,0.484,0.088,0.0,0.105 +46-65,F,Ohio,0.0,0.0,0.155,0.0,0.168,0.484,0.088,0.0,0.105 +46-65,F,Oklahoma,0.0,0.0,0.157,0.0,0.0,0.706,0.0,0.0,0.137 +46-65,F,Oregon,0.0,0.0,0.0,0.0,0.275,0.434,0.291,0.0,0.0 +46-65,F,Pennsylvania,0.0,0.507,0.0,0.0,0.391,0.102,0.0,0.0,0.0 +46-65,F,Rhode Island,0.0,0.507,0.0,0.0,0.391,0.102,0.0,0.0,0.0 +46-65,F,South Carolina,0.0,0.0,0.157,0.0,0.0,0.706,0.0,0.0,0.137 +46-65,F,South Dakota,0.0,0.0,0.155,0.0,0.168,0.484,0.088,0.0,0.105 +46-65,F,Tennessee,0.0,0.0,0.157,0.0,0.0,0.706,0.0,0.0,0.137 +46-65,F,Texas,0.0,0.0,0.157,0.0,0.0,0.706,0.0,0.0,0.137 +46-65,F,Utah,0.0,0.0,0.0,0.0,0.275,0.434,0.291,0.0,0.0 +46-65,F,Vermont,0.0,0.507,0.0,0.0,0.391,0.102,0.0,0.0,0.0 +46-65,F,Virginia,0.0,0.0,0.157,0.0,0.0,0.706,0.0,0.0,0.137 +46-65,F,Washington,0.0,0.0,0.0,0.0,0.275,0.434,0.291,0.0,0.0 +46-65,F,West Virginia,0.0,0.0,0.157,0.0,0.0,0.706,0.0,0.0,0.137 +46-65,F,Wisconsin,0.0,0.0,0.155,0.0,0.168,0.484,0.088,0.0,0.105 +46-65,F,Wyoming,0.0,0.0,0.0,0.0,0.275,0.434,0.291,0.0,0.0 +46-65,M,Alabama,0.026,0.083,0.135,0.064,0.094,0.1,0.498,0.0,0.0 +46-65,M,Alaska,0.0,0.214,0.0,0.214,0.0,0.286,0.287,0.0,0.0 +46-65,M,Arizona,0.0,0.214,0.0,0.214,0.0,0.286,0.287,0.0,0.0 +46-65,M,Arkansas,0.026,0.083,0.135,0.064,0.094,0.1,0.498,0.0,0.0 +46-65,M,California,0.0,0.214,0.0,0.214,0.0,0.286,0.287,0.0,0.0 +46-65,M,Colorado,0.0,0.214,0.0,0.214,0.0,0.286,0.287,0.0,0.0 +46-65,M,Connecticut,0.0,0.0,0.445,0.0,0.0,0.0,0.212,0.343,0.0 +46-65,M,Delaware,0.026,0.083,0.135,0.064,0.094,0.1,0.498,0.0,0.0 +46-65,M,District of Columbia,0.026,0.083,0.135,0.064,0.094,0.1,0.498,0.0,0.0 +46-65,M,Florida,0.026,0.083,0.135,0.064,0.094,0.1,0.498,0.0,0.0 +46-65,M,Georgia,0.026,0.083,0.135,0.064,0.094,0.1,0.498,0.0,0.0 +46-65,M,Hawaii,0.0,0.214,0.0,0.214,0.0,0.286,0.287,0.0,0.0 +46-65,M,Idaho,0.0,0.214,0.0,0.214,0.0,0.286,0.287,0.0,0.0 +46-65,M,Illinois,0.0,0.398,0.0,0.269,0.0,0.0,0.0,0.333,0.0 +46-65,M,Indiana,0.0,0.398,0.0,0.269,0.0,0.0,0.0,0.333,0.0 +46-65,M,Iowa,0.0,0.398,0.0,0.269,0.0,0.0,0.0,0.333,0.0 +46-65,M,Kansas,0.0,0.398,0.0,0.269,0.0,0.0,0.0,0.333,0.0 +46-65,M,Kentucky,0.026,0.083,0.135,0.064,0.094,0.1,0.498,0.0,0.0 +46-65,M,Louisiana,0.026,0.083,0.135,0.064,0.094,0.1,0.498,0.0,0.0 +46-65,M,Maine,0.0,0.0,0.445,0.0,0.0,0.0,0.212,0.343,0.0 +46-65,M,Maryland,0.026,0.083,0.135,0.064,0.094,0.1,0.498,0.0,0.0 +46-65,M,Massachusetts,0.0,0.0,0.445,0.0,0.0,0.0,0.212,0.343,0.0 +46-65,M,Michigan,0.0,0.398,0.0,0.269,0.0,0.0,0.0,0.333,0.0 +46-65,M,Minnesota,0.0,0.398,0.0,0.269,0.0,0.0,0.0,0.333,0.0 +46-65,M,Mississippi,0.026,0.083,0.135,0.064,0.094,0.1,0.498,0.0,0.0 +46-65,M,Missouri,0.0,0.398,0.0,0.269,0.0,0.0,0.0,0.333,0.0 +46-65,M,Montana,0.0,0.214,0.0,0.214,0.0,0.286,0.287,0.0,0.0 +46-65,M,Nebraska,0.0,0.398,0.0,0.269,0.0,0.0,0.0,0.333,0.0 +46-65,M,Nevada,0.0,0.214,0.0,0.214,0.0,0.286,0.287,0.0,0.0 +46-65,M,New Hampshire,0.0,0.0,0.445,0.0,0.0,0.0,0.212,0.343,0.0 +46-65,M,New Jersey,0.0,0.0,0.445,0.0,0.0,0.0,0.212,0.343,0.0 +46-65,M,New Mexico,0.0,0.214,0.0,0.214,0.0,0.286,0.287,0.0,0.0 +46-65,M,New York,0.0,0.0,0.445,0.0,0.0,0.0,0.212,0.343,0.0 +46-65,M,North Carolina,0.026,0.083,0.135,0.064,0.094,0.1,0.498,0.0,0.0 +46-65,M,North Dakota,0.0,0.398,0.0,0.269,0.0,0.0,0.0,0.333,0.0 +46-65,M,Ohio,0.0,0.398,0.0,0.269,0.0,0.0,0.0,0.333,0.0 +46-65,M,Oklahoma,0.026,0.083,0.135,0.064,0.094,0.1,0.498,0.0,0.0 +46-65,M,Oregon,0.0,0.214,0.0,0.214,0.0,0.286,0.287,0.0,0.0 +46-65,M,Pennsylvania,0.0,0.0,0.445,0.0,0.0,0.0,0.212,0.343,0.0 +46-65,M,Rhode Island,0.0,0.0,0.445,0.0,0.0,0.0,0.212,0.343,0.0 +46-65,M,South Carolina,0.026,0.083,0.135,0.064,0.094,0.1,0.498,0.0,0.0 +46-65,M,South Dakota,0.0,0.398,0.0,0.269,0.0,0.0,0.0,0.333,0.0 +46-65,M,Tennessee,0.026,0.083,0.135,0.064,0.094,0.1,0.498,0.0,0.0 +46-65,M,Texas,0.026,0.083,0.135,0.064,0.094,0.1,0.498,0.0,0.0 +46-65,M,Utah,0.0,0.214,0.0,0.214,0.0,0.286,0.287,0.0,0.0 +46-65,M,Vermont,0.0,0.0,0.445,0.0,0.0,0.0,0.212,0.343,0.0 +46-65,M,Virginia,0.026,0.083,0.135,0.064,0.094,0.1,0.498,0.0,0.0 +46-65,M,Washington,0.0,0.214,0.0,0.214,0.0,0.286,0.287,0.0,0.0 +46-65,M,West Virginia,0.026,0.083,0.135,0.064,0.094,0.1,0.498,0.0,0.0 +46-65,M,Wisconsin,0.0,0.398,0.0,0.269,0.0,0.0,0.0,0.333,0.0 +46-65,M,Wyoming,0.0,0.214,0.0,0.214,0.0,0.286,0.287,0.0,0.0 +65-103,F,Alabama,0.072,0.045,0.122,0.041,0.252,0.258,0.209,0.0,0.0 +65-103,F,Alaska,0.0,0.0,0.138,0.0,0.342,0.52,0.0,0.0,0.0 +65-103,F,Arizona,0.0,0.0,0.138,0.0,0.342,0.52,0.0,0.0,0.0 +65-103,F,Arkansas,0.072,0.045,0.122,0.041,0.252,0.258,0.209,0.0,0.0 +65-103,F,California,0.0,0.0,0.138,0.0,0.342,0.52,0.0,0.0,0.0 +65-103,F,Colorado,0.0,0.0,0.138,0.0,0.342,0.52,0.0,0.0,0.0 +65-103,F,Connecticut,0.0,0.0,0.0,0.094,0.675,0.0,0.231,0.0,0.0 +65-103,F,Delaware,0.072,0.045,0.122,0.041,0.252,0.258,0.209,0.0,0.0 +65-103,F,District of Columbia,0.072,0.045,0.122,0.041,0.252,0.258,0.209,0.0,0.0 +65-103,F,Florida,0.072,0.045,0.122,0.041,0.252,0.258,0.209,0.0,0.0 +65-103,F,Georgia,0.072,0.045,0.122,0.041,0.252,0.258,0.209,0.0,0.0 +65-103,F,Hawaii,0.0,0.0,0.138,0.0,0.342,0.52,0.0,0.0,0.0 +65-103,F,Idaho,0.0,0.0,0.138,0.0,0.342,0.52,0.0,0.0,0.0 +65-103,F,Illinois,0.164,0.0,0.184,0.114,0.14,0.119,0.165,0.0,0.114 +65-103,F,Indiana,0.164,0.0,0.184,0.114,0.14,0.119,0.165,0.0,0.114 +65-103,F,Iowa,0.164,0.0,0.184,0.114,0.14,0.119,0.165,0.0,0.114 +65-103,F,Kansas,0.164,0.0,0.184,0.114,0.14,0.119,0.165,0.0,0.114 +65-103,F,Kentucky,0.072,0.045,0.122,0.041,0.252,0.258,0.209,0.0,0.0 +65-103,F,Louisiana,0.072,0.045,0.122,0.041,0.252,0.258,0.209,0.0,0.0 +65-103,F,Maine,0.0,0.0,0.0,0.094,0.675,0.0,0.231,0.0,0.0 +65-103,F,Maryland,0.072,0.045,0.122,0.041,0.252,0.258,0.209,0.0,0.0 +65-103,F,Massachusetts,0.0,0.0,0.0,0.094,0.675,0.0,0.231,0.0,0.0 +65-103,F,Michigan,0.164,0.0,0.184,0.114,0.14,0.119,0.165,0.0,0.114 +65-103,F,Minnesota,0.164,0.0,0.184,0.114,0.14,0.119,0.165,0.0,0.114 +65-103,F,Mississippi,0.072,0.045,0.122,0.041,0.252,0.258,0.209,0.0,0.0 +65-103,F,Missouri,0.164,0.0,0.184,0.114,0.14,0.119,0.165,0.0,0.114 +65-103,F,Montana,0.0,0.0,0.138,0.0,0.342,0.52,0.0,0.0,0.0 +65-103,F,Nebraska,0.164,0.0,0.184,0.114,0.14,0.119,0.165,0.0,0.114 +65-103,F,Nevada,0.0,0.0,0.138,0.0,0.342,0.52,0.0,0.0,0.0 +65-103,F,New Hampshire,0.0,0.0,0.0,0.094,0.675,0.0,0.231,0.0,0.0 +65-103,F,New Jersey,0.0,0.0,0.0,0.094,0.675,0.0,0.231,0.0,0.0 +65-103,F,New Mexico,0.0,0.0,0.138,0.0,0.342,0.52,0.0,0.0,0.0 +65-103,F,New York,0.0,0.0,0.0,0.094,0.675,0.0,0.231,0.0,0.0 +65-103,F,North Carolina,0.072,0.045,0.122,0.041,0.252,0.258,0.209,0.0,0.0 +65-103,F,North Dakota,0.164,0.0,0.184,0.114,0.14,0.119,0.165,0.0,0.114 +65-103,F,Ohio,0.164,0.0,0.184,0.114,0.14,0.119,0.165,0.0,0.114 +65-103,F,Oklahoma,0.072,0.045,0.122,0.041,0.252,0.258,0.209,0.0,0.0 +65-103,F,Oregon,0.0,0.0,0.138,0.0,0.342,0.52,0.0,0.0,0.0 +65-103,F,Pennsylvania,0.0,0.0,0.0,0.094,0.675,0.0,0.231,0.0,0.0 +65-103,F,Rhode Island,0.0,0.0,0.0,0.094,0.675,0.0,0.231,0.0,0.0 +65-103,F,South Carolina,0.072,0.045,0.122,0.041,0.252,0.258,0.209,0.0,0.0 +65-103,F,South Dakota,0.164,0.0,0.184,0.114,0.14,0.119,0.165,0.0,0.114 +65-103,F,Tennessee,0.072,0.045,0.122,0.041,0.252,0.258,0.209,0.0,0.0 +65-103,F,Texas,0.072,0.045,0.122,0.041,0.252,0.258,0.209,0.0,0.0 +65-103,F,Utah,0.0,0.0,0.138,0.0,0.342,0.52,0.0,0.0,0.0 +65-103,F,Vermont,0.0,0.0,0.0,0.094,0.675,0.0,0.231,0.0,0.0 +65-103,F,Virginia,0.072,0.045,0.122,0.041,0.252,0.258,0.209,0.0,0.0 +65-103,F,Washington,0.0,0.0,0.138,0.0,0.342,0.52,0.0,0.0,0.0 +65-103,F,West Virginia,0.072,0.045,0.122,0.041,0.252,0.258,0.209,0.0,0.0 +65-103,F,Wisconsin,0.164,0.0,0.184,0.114,0.14,0.119,0.165,0.0,0.114 +65-103,F,Wyoming,0.0,0.0,0.138,0.0,0.342,0.52,0.0,0.0,0.0 +65-103,M,Alabama,0.0,0.0,0.0,0.0,0.109,0.0,0.757,0.0,0.134 +65-103,M,Alaska,0.0,0.0,0.0,0.193,0.313,0.0,0.351,0.143,0.0 +65-103,M,Arizona,0.0,0.0,0.0,0.193,0.313,0.0,0.351,0.143,0.0 +65-103,M,Arkansas,0.0,0.0,0.0,0.0,0.109,0.0,0.757,0.0,0.134 +65-103,M,California,0.0,0.0,0.0,0.193,0.313,0.0,0.351,0.143,0.0 +65-103,M,Colorado,0.0,0.0,0.0,0.193,0.313,0.0,0.351,0.143,0.0 +65-103,M,Connecticut,0.263,0.0,0.737,0.0,0.0,0.0,0.0,0.0,0.0 +65-103,M,Delaware,0.0,0.0,0.0,0.0,0.109,0.0,0.757,0.0,0.134 +65-103,M,District of Columbia,0.0,0.0,0.0,0.0,0.109,0.0,0.757,0.0,0.134 +65-103,M,Florida,0.0,0.0,0.0,0.0,0.109,0.0,0.757,0.0,0.134 +65-103,M,Georgia,0.0,0.0,0.0,0.0,0.109,0.0,0.757,0.0,0.134 +65-103,M,Hawaii,0.0,0.0,0.0,0.193,0.313,0.0,0.351,0.143,0.0 +65-103,M,Idaho,0.0,0.0,0.0,0.193,0.313,0.0,0.351,0.143,0.0 +65-103,M,Illinois,0.055,0.281,0.133,0.0,0.349,0.0,0.0,0.0,0.182 +65-103,M,Indiana,0.055,0.281,0.133,0.0,0.349,0.0,0.0,0.0,0.182 +65-103,M,Iowa,0.055,0.281,0.133,0.0,0.349,0.0,0.0,0.0,0.182 +65-103,M,Kansas,0.055,0.281,0.133,0.0,0.349,0.0,0.0,0.0,0.182 +65-103,M,Kentucky,0.0,0.0,0.0,0.0,0.109,0.0,0.757,0.0,0.134 +65-103,M,Louisiana,0.0,0.0,0.0,0.0,0.109,0.0,0.757,0.0,0.134 +65-103,M,Maine,0.263,0.0,0.737,0.0,0.0,0.0,0.0,0.0,0.0 +65-103,M,Maryland,0.0,0.0,0.0,0.0,0.109,0.0,0.757,0.0,0.134 +65-103,M,Massachusetts,0.263,0.0,0.737,0.0,0.0,0.0,0.0,0.0,0.0 +65-103,M,Michigan,0.055,0.281,0.133,0.0,0.349,0.0,0.0,0.0,0.182 +65-103,M,Minnesota,0.055,0.281,0.133,0.0,0.349,0.0,0.0,0.0,0.182 +65-103,M,Mississippi,0.0,0.0,0.0,0.0,0.109,0.0,0.757,0.0,0.134 +65-103,M,Missouri,0.055,0.281,0.133,0.0,0.349,0.0,0.0,0.0,0.182 +65-103,M,Montana,0.0,0.0,0.0,0.193,0.313,0.0,0.351,0.143,0.0 +65-103,M,Nebraska,0.055,0.281,0.133,0.0,0.349,0.0,0.0,0.0,0.182 +65-103,M,Nevada,0.0,0.0,0.0,0.193,0.313,0.0,0.351,0.143,0.0 +65-103,M,New Hampshire,0.263,0.0,0.737,0.0,0.0,0.0,0.0,0.0,0.0 +65-103,M,New Jersey,0.263,0.0,0.737,0.0,0.0,0.0,0.0,0.0,0.0 +65-103,M,New Mexico,0.0,0.0,0.0,0.193,0.313,0.0,0.351,0.143,0.0 +65-103,M,New York,0.263,0.0,0.737,0.0,0.0,0.0,0.0,0.0,0.0 +65-103,M,North Carolina,0.0,0.0,0.0,0.0,0.109,0.0,0.757,0.0,0.134 +65-103,M,North Dakota,0.055,0.281,0.133,0.0,0.349,0.0,0.0,0.0,0.182 +65-103,M,Ohio,0.055,0.281,0.133,0.0,0.349,0.0,0.0,0.0,0.182 +65-103,M,Oklahoma,0.0,0.0,0.0,0.0,0.109,0.0,0.757,0.0,0.134 +65-103,M,Oregon,0.0,0.0,0.0,0.193,0.313,0.0,0.351,0.143,0.0 +65-103,M,Pennsylvania,0.263,0.0,0.737,0.0,0.0,0.0,0.0,0.0,0.0 +65-103,M,Rhode Island,0.263,0.0,0.737,0.0,0.0,0.0,0.0,0.0,0.0 +65-103,M,South Carolina,0.0,0.0,0.0,0.0,0.109,0.0,0.757,0.0,0.134 +65-103,M,South Dakota,0.055,0.281,0.133,0.0,0.349,0.0,0.0,0.0,0.182 +65-103,M,Tennessee,0.0,0.0,0.0,0.0,0.109,0.0,0.757,0.0,0.134 +65-103,M,Texas,0.0,0.0,0.0,0.0,0.109,0.0,0.757,0.0,0.134 +65-103,M,Utah,0.0,0.0,0.0,0.193,0.313,0.0,0.351,0.143,0.0 +65-103,M,Vermont,0.263,0.0,0.737,0.0,0.0,0.0,0.0,0.0,0.0 +65-103,M,Virginia,0.0,0.0,0.0,0.0,0.109,0.0,0.757,0.0,0.134 +65-103,M,Washington,0.0,0.0,0.0,0.193,0.313,0.0,0.351,0.143,0.0 +65-103,M,West Virginia,0.0,0.0,0.0,0.0,0.109,0.0,0.757,0.0,0.134 +65-103,M,Wisconsin,0.055,0.281,0.133,0.0,0.349,0.0,0.0,0.0,0.182 +65-103,M,Wyoming,0.0,0.0,0.0,0.193,0.313,0.0,0.351,0.143,0.0 +8-11,F,Illinois,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +8-11,F,Indiana,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +8-11,F,Iowa,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +8-11,F,Kansas,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +8-11,F,Michigan,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +8-11,F,Minnesota,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +8-11,F,Missouri,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +8-11,F,Nebraska,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +8-11,F,North Dakota,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +8-11,F,Ohio,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +8-11,F,South Dakota,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 +8-11,F,Wisconsin,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0 diff --git a/src/main/resources/modules/lookup_tables/cabg_details_num_art_cond.csv b/src/main/resources/modules/lookup_tables/cabg_details_num_art_cond.csv new file mode 100644 index 0000000..9e91876 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/cabg_details_num_art_cond.csv @@ -0,0 +1,7 @@ +cabg_number_of_grafts,Art_Cond_1,Art_Cond_2,Art_Cond_3,Art_Cond_4,Art_Cond_5,Art_Cond_6 +1,0.846,0.154,0.000,0.000,0.000,0.000 +2,0.432,0.347,0.080,0.070,0.065,0.005 +3,0.543,0.285,0.153,0.011,0.005,0.003 +4,0.543,0.285,0.153,0.011,0.005,0.003 +5,0.543,0.285,0.153,0.011,0.005,0.003 +6,0.0,1.0,0.0,0.0,0.0,0.0 \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/cabg_details_num_grafts.csv b/src/main/resources/modules/lookup_tables/cabg_details_num_grafts.csv new file mode 100644 index 0000000..8682651 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/cabg_details_num_grafts.csv @@ -0,0 +1,5 @@ +operative_status,Graft_No_1,Graft_No_2,Graft_No_3,Graft_No_4,Graft_No_5,Graft_No_6 +elective,0.035,0.294,0.483,0.160,0.029,0.000 +emergent,0.037,0.287,0.537,0.120,0.019,0.000 +emergent_salvage,0.000,0.333,0.667,0.000,0.000,0.000 +urgent,0.013,0.249,0.504,0.203,0.029,0.001 \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/cabg_details_operative_approach.csv b/src/main/resources/modules/lookup_tables/cabg_details_operative_approach.csv new file mode 100644 index 0000000..d6fd832 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/cabg_details_operative_approach.csv @@ -0,0 +1,5 @@ +operative_status,Sternotomy,Thoracotomy,Anything Else +elective,0.978,0.018,0.004 +emergent,1,0,0 +emergent_salvage,1,0,0 +urgent,0.989,0.011,0 \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/covid-19-severity-outcomes.csv b/src/main/resources/modules/lookup_tables/covid-19-severity-outcomes.csv new file mode 100644 index 0000000..4c66c21 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/covid-19-severity-outcomes.csv @@ -0,0 +1,7 @@ +age,covid19_risk,Negative Severity,General Severity,Severe Severity,Critical Severity +50-110,high,0,0.58,0.21,0.21 +20-49,high,0,0.76,0.12,0.12 +0-19,high,0,0.9,0.05,0.05 +50-110,low,0.05,0.74,0.21,0 +20-49,low,0.05,0.83,0.12,0 +0-19,low,0.05,0.9,0.05,0 \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/covid-19-survival-outcomes.csv b/src/main/resources/modules/lookup_tables/covid-19-survival-outcomes.csv new file mode 100644 index 0000000..ce34cad --- /dev/null +++ b/src/main/resources/modules/lookup_tables/covid-19-survival-outcomes.csv @@ -0,0 +1,45 @@ +age,gender,covid19_severity,Survival: Survivor,Survival: Non-Survivor +0-9,M,critical,0.95,0.05 +10-19,M,critical,0.95,0.05 +20-29,M,critical,0.858,0.142 +30-39,M,critical,0.908,0.092 +40-49,M,critical,0.836,0.164 +50-59,M,critical,0.756,0.244 +60-69,M,critical,0.626,0.374 +70-79,M,critical,0.284,0.716 +80-89,M,critical,0,1 +90-110,M,critical,0,1 +0-9,M,severe,1,0 +10-19,M,severe,1,0 +20-29,M,severe,0.929,0.071 +30-39,M,severe,0.954,0.046 +40-49,M,severe,0.918,0.082 +50-59,M,severe,0.878,0.122 +60-69,M,severe,0.813,0.187 +70-79,M,severe,0.642,0.358 +80-89,M,severe,0.394,0.606 +90-110,M,severe,0.364,0.636 +0-110,M,general,1,0 +0-110,M,negative,1,0 +0-9,F,critical,0.98,0.02 +10-19,F,critical,0.98,0.02 +20-29,F,critical,0.964,0.036 +30-39,F,critical,0.95,0.05 +40-49,F,critical,0.95,0.05 +50-59,F,critical,0.862,0.138 +60-69,F,critical,0.76,0.24 +70-79,F,critical,0.452,0.548 +80-89,F,critical,0.038,0.962 +90-110,F,critical,0.072,0.928 +0-9,F,severe,1,0 +10-19,F,severe,1,0 +20-29,F,severe,0.982,0.018 +30-39,F,severe,0.975,0.025 +40-49,F,severe,0.975,0.025 +50-59,F,severe,0.931,0.069 +60-69,F,severe,0.88,0.12 +70-79,F,severe,0.726,0.274 +80-89,F,severe,0.519,0.481 +90-110,F,severe,0.536,0.464 +0-110,F,general,1,0 +0-110,F,negative,1,0 \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/covid19_prob.csv b/src/main/resources/modules/lookup_tables/covid19_prob.csv new file mode 100644 index 0000000..cb8eea9 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/covid19_prob.csv @@ -0,0 +1,603 @@ +time,Check Vaccine Status,Terminal,Wait Until Exposure +1579651200000-1579737599999,0,0.0001,0.9999 +1579737600000-1579823999999,0,0.0001,0.9999 +1579824000000-1579910399999,1.2e-8,0.0001,0.999899988 +1579910400000-1579996799999,0,0.0001,0.9999 +1579996800000-1580083199999,3.6e-8,0.0001,0.999899964 +1580083200000-1580169599999,0,0.0001,0.9999 +1580169600000-1580255999999,0,0.0001,0.9999 +1580256000000-1580342399999,1.2e-8,0.0001,0.999899988 +1580342400000-1580428799999,0,0.0001,0.9999 +1580428800000-1580515199999,2.4e-8,0.0001,0.999899976 +1580515200000-1580601599999,0,0.0001,0.9999 +1580601600000-1580687999999,0,0.0001,0.9999 +1580688000000-1580774399999,3.6e-8,0.0001,0.999899964 +1580774400000-1580860799999,0,0.0001,0.9999 +1580860800000-1580947199999,0,0.0001,0.9999 +1580947200000-1581033599999,1.2e-8,0.0001,0.999899988 +1581033600000-1581119999999,0,0.0001,0.9999 +1581120000000-1581206399999,0,0.0001,0.9999 +1581206400000-1581292799999,0,0.0001,0.9999 +1581292800000-1581379199999,0,0.0001,0.9999 +1581379200000-1581465599999,1.2e-8,0.0001,0.999899988 +1581465600000-1581551999999,0,0.0001,0.9999 +1581552000000-1581638399999,1.2e-8,0.0001,0.999899988 +1581638400000-1581724799999,0,0.0001,0.9999 +1581724800000-1581811199999,0,0.0001,0.9999 +1581811200000-1581897599999,0,0.0001,0.9999 +1581897600000-1581983999999,0,0.0001,0.9999 +1581984000000-1582070399999,0,0.0001,0.9999 +1582070400000-1582156799999,0,0.0001,0.9999 +1582156800000-1582243199999,0,0.0001,0.9999 +1582243200000-1582329599999,2.4e-8,0.0001,0.999899976 +1582329600000-1582415999999,0,0.0001,0.9999 +1582416000000-1582502399999,0,0.0001,0.9999 +1582502400000-1582588799999,0,0.0001,0.9999 +1582588800000-1582675199999,0,0.0001,0.9999 +1582675200000-1582761599999,0,0.0001,0.9999 +1582761600000-1582847999999,1.2e-8,0.0001,0.999899988 +1582848000000-1582934399999,0,0.0001,0.9999 +1582934400000-1583020799999,9.6e-8,0.0001,0.999899904 +1583020800000-1583107199999,8.400000000000001e-8,0.0001,0.999899916 +1583107200000-1583193599999,2.7600000000000004e-7,0.0001,0.999899724 +1583193600000-1583279999999,2.28e-7,0.0001,0.999899772 +1583280000000-1583366399999,3.96e-7,0.0001,0.999899604 +1583366400000-1583452799999,9.240000000000001e-7,0.0001,0.999899076 +1583452800000-1583539199999,6.36e-7,0.0001,0.999899364 +1583539200000-1583625599999,0.000001996,0.0001,0.999898004 +1583625600000-1583711999999,0.000001392,0.0001,0.999898608 +1583712000000-1583798399999,9.000000000000001e-7,0.0001,0.9998991 +1583798400000-1583884799999,0.00000226,0.0001,0.99989774 +1583884800000-1583971199999,0.000004384000000000001,0.0001,0.999895616 +1583971200000-1584057599999,0.000005276,0.0001,0.999894724 +1584057600000-1584143999999,0.000007604,0.0001,0.999892396 +1584144000000-1584230399999,0.000009119999999999999,0.0001,0.99989088 +1584230400000-1584316799999,0.000002812,0.0001,0.999897188 +1584316800000-1584403199999,0.000017628,0.0001,0.999882372 +1584403200000-1584489599999,0.000022024,0.0001,0.999877976 +1584489600000-1584575999999,0.000031924,0.0001,0.999868076 +1584576000000-1584662399999,0.000053996,0.0001,0.999846004 +1584662400000-1584748799999,0.0000765,0.0001,0.9998235 +1584748800000-1584835199999,0.00007203199999999999,0.0001,0.999827968 +1584835200000-1584921599999,0.000106608,0.0001,0.999793392 +1584921600000-1585007999999,0.000135024,0.0001,0.999764976 +1585008000000-1585094399999,0.00012758799999999999,0.0001,0.999772412 +1585094400000-1585180799999,0.00014516800000000002,0.0001,0.999754832 +1585180800000-1585267199999,0.00021454,0.0001,0.99968546 +1585267200000-1585353599999,0.00022456,0.0001,0.99967544 +1585353600000-1585439999999,0.000235856,0.0001,0.999664144 +1585440000000-1585526399999,0.000227072,0.0001,0.999672928 +1585526400000-1585612799999,0.00026525599999999996,0.0001,0.999634744 +1585612800000-1585699199999,0.00031613999999999996,0.0001,0.99958386 +1585699200000-1585785599999,0.000387872,0.0001,0.999512128 +1585785600000-1585871999999,0.000387196,0.0001,0.999512804 +1585872000000-1585958399999,0.00038817200000000005,0.0001,0.999511828 +1585958400000-1586044799999,0.00038912,0.0001,0.99951088 +1586044800000-1586131199999,0.000359192,0.0001,0.999540808 +1586131200000-1586217599999,0.000377152,0.0001,0.999522848 +1586217600000-1586303999999,0.000369812,0.0001,0.999530188 +1586304000000-1586390399999,0.00037525599999999997,0.0001,0.999524744 +1586390400000-1586476799999,0.00043188,0.0001,0.99946812 +1586476800000-1586563199999,0.000413356,0.0001,0.999486644 +1586563200000-1586649599999,0.00034943599999999995,0.0001,0.999550564 +1586649600000-1586735999999,0.00032748399999999996,0.0001,0.999572516 +1586736000000-1586822399999,0.000323676,0.0001,0.999576324 +1586822400000-1586908799999,0.000346252,0.0001,0.999553748 +1586908800000-1586995199999,0.00030527999999999995,0.0001,0.99959472 +1586995200000-1587081599999,0.000360476,0.0001,0.999539524 +1587081600000-1587167999999,0.000397292,0.0001,0.999502708 +1587168000000-1587254399999,0.000335304,0.0001,0.999564696 +1587254400000-1587340799999,0.00031313600000000005,0.0001,0.999586864 +1587340800000-1587427199999,0.000358288,0.0001,0.999541712 +1587427200000-1587513599999,0.00031150400000000005,0.0001,0.999588496 +1587513600000-1587599999999,0.00034736799999999997,0.0001,0.999552632 +1587600000000-1587686399999,0.00040385199999999995,0.0001,0.999496148 +1587686400000-1587772799999,0.000388412,0.0001,0.999511588 +1587772800000-1587859199999,0.00036501999999999997,0.0001,0.99953498 +1587859200000-1587945599999,0.000318256,0.0001,0.999581744 +1587945600000-1588031999999,0.00028493599999999996,0.0001,0.999615064 +1588032000000-1588118399999,0.000295272,0.0001,0.999604728 +1588118400000-1588204799999,0.000317908,0.0001,0.999582092 +1588204800000-1588291199999,0.00035089999999999996,0.0001,0.9995491 +1588291200000-1588377599999,0.000419412,0.0001,0.999480588 +1588377600000-1588463999999,0.00032858800000000005,0.0001,0.999571412 +1588464000000-1588550399999,0.00029222000000000004,0.0001,0.99960778 +1588550400000-1588636799999,0.00028918,0.0001,0.99961082 +1588636800000-1588723199999,0.000294704,0.0001,0.999605296 +1588723200000-1588809599999,0.000295188,0.0001,0.999604812 +1588809600000-1588895999999,0.000329572,0.0001,0.999570428 +1588896000000-1588982399999,0.00032236399999999995,0.0001,0.999577636 +1588982400000-1589068799999,0.00030248000000000004,0.0001,0.99959752 +1589068800000-1589155199999,0.00022595599999999998,0.0001,0.999674044 +1589155200000-1589241599999,0.00023183199999999999,0.0001,0.999668168 +1589241600000-1589327999999,0.00027550400000000004,0.0001,0.999624496 +1589328000000-1589414399999,0.000245504,0.0001,0.999654496 +1589414400000-1589500799999,0.00032220800000000004,0.0001,0.999577792 +1589500800000-1589587199999,0.000297168,0.0001,0.999602832 +1589587200000-1589673599999,0.00028995999999999997,0.0001,0.99961004 +1589673600000-1589759999999,0.000220956,0.0001,0.999679044 +1589760000000-1589846399999,0.00026900400000000004,0.0001,0.999630996 +1589846400000-1589932799999,0.000252064,0.0001,0.999647936 +1589932800000-1590019199999,0.00027304399999999996,0.0001,0.999626956 +1590019200000-1590105599999,0.000309604,0.0001,0.999590396 +1590105600000-1590191999999,0.000284156,0.0001,0.999615844 +1590192000000-1590278399999,0.000253508,0.0001,0.999646492 +1590278400000-1590364799999,0.00024122800000000002,0.0001,0.999658772 +1590364800000-1590451199999,0.000224224,0.0001,0.999675776 +1590451200000-1590537599999,0.000236252,0.0001,0.999663748 +1590537600000-1590623999999,0.000222892,0.0001,0.999677108 +1590624000000-1590710399999,0.00026817599999999996,0.0001,0.999631824 +1590710400000-1590796799999,0.000294104,0.0001,0.999605896 +1590796800000-1590883199999,0.00028394,0.0001,0.99961606 +1590883200000-1590969599999,0.000228084,0.0001,0.999671916 +1590969600000-1591055999999,0.000209232,0.0001,0.999690768 +1591056000000-1591142399999,0.000258336,0.0001,0.999641664 +1591142400000-1591228799999,0.000238584,0.0001,0.999661416 +1591228800000-1591315199999,0.000260212,0.0001,0.999639788 +1591315200000-1591401599999,0.00030524400000000003,0.0001,0.999594756 +1591401600000-1591487999999,0.000254024,0.0001,0.999645976 +1591488000000-1591574399999,0.000215396,0.0001,0.999684604 +1591574400000-1591660799999,0.000211656,0.0001,0.999688344 +1591660800000-1591747199999,0.00022086000000000002,0.0001,0.99967914 +1591747200000-1591833599999,0.000253676,0.0001,0.999646324 +1591833600000-1591919999999,0.00027833999999999997,0.0001,0.99962166 +1591920000000-1592006399999,0.000298312,0.0001,0.999601688 +1592006400000-1592092799999,0.000302924,0.0001,0.999597076 +1592092800000-1592179199999,0.000227576,0.0001,0.999672424 +1592179200000-1592265599999,0.000238224,0.0001,0.999661776 +1592265600000-1592351999999,0.00028436,0.0001,0.99961564 +1592352000000-1592438399999,0.000325272,0.0001,0.999574728 +1592438400000-1592524799999,0.000342876,0.0001,0.999557124 +1592524800000-1592611199999,0.000379004,0.0001,0.999520996 +1592611200000-1592697599999,0.000387848,0.0001,0.999512152 +1592697600000-1592783999999,0.00030218,0.0001,0.99959782 +1592784000000-1592870399999,0.000386212,0.0001,0.999513788 +1592870400000-1592956799999,0.000445424,0.0001,0.999454576 +1592956800000-1593043199999,0.000431076,0.0001,0.999468924 +1593043200000-1593129599999,0.00048452,0.0001,0.99941548 +1593129600000-1593215999999,0.00055268,0.0001,0.99934732 +1593216000000-1593302399999,0.000496584,0.0001,0.999403416 +1593302400000-1593388799999,0.000489424,0.0001,0.999410576 +1593388800000-1593475199999,0.000496212,0.0001,0.999403788 +1593475200000-1593561599999,0.00055774,0.0001,0.99934226 +1593561600000-1593647999999,0.00062262,0.0001,0.99927738 +1593648000000-1593734399999,0.000680472,0.0001,0.999219528 +1593734400000-1593820799999,0.000617,0.0001,0.999283 +1593820800000-1593907199999,0.0005490040000000001,0.0001,0.999350996 +1593907200000-1593993599999,0.0006097279999999999,0.0001,0.999290272 +1593993600000-1594079999999,0.00051792,0.0001,0.99938208 +1594080000000-1594166399999,0.0007288479999999999,0.0001,0.999171152 +1594166400000-1594252799999,0.000722336,0.0001,0.999177664 +1594252800000-1594339199999,0.000751052,0.0001,0.999148948 +1594339200000-1594425599999,0.000817712,0.0001,0.999082288 +1594425600000-1594511999999,0.000721084,0.0001,0.999178916 +1594512000000-1594598399999,0.0007019919999999999,0.0001,0.999198008 +1594598400000-1594684799999,0.000708048,0.0001,0.999191952 +1594684800000-1594771199999,0.0008176,0.0001,0.9990824 +1594771200000-1594857599999,0.000818144,0.0001,0.999081856 +1594857600000-1594943999999,0.000911524,0.0001,0.998988476 +1594944000000-1595030399999,0.000867932,0.0001,0.999032068 +1595030400000-1595116799999,0.000751376,0.0001,0.999148624 +1595116800000-1595203199999,0.0007263840000000001,0.0001,0.999173616 +1595203200000-1595289599999,0.0007462079999999999,0.0001,0.999153792 +1595289600000-1595375999999,0.000774504,0.0001,0.999125496 +1595376000000-1595462399999,0.000848024,0.0001,0.999051976 +1595462400000-1595548799999,0.0008223719999999999,0.0001,0.999077628 +1595548800000-1595635199999,0.0008809320000000001,0.0001,0.999019068 +1595635200000-1595721599999,0.0007803920000000001,0.0001,0.999119608 +1595721600000-1595807999999,0.0006586319999999999,0.0001,0.999241368 +1595808000000-1595894399999,0.000682264,0.0001,0.999217736 +1595894400000-1595980799999,0.000797944,0.0001,0.999102056 +1595980800000-1596067199999,0.0008635359999999999,0.0001,0.999036464 +1596067200000-1596153599999,0.000810608,0.0001,0.999089392 +1596153600000-1596239999999,0.0008256040000000001,0.0001,0.999074396 +1596240000000-1596326399999,0.000675236,0.0001,0.999224764 +1596326400000-1596412799999,0.000547516,0.0001,0.999352484 +1596412800000-1596499199999,0.000546696,0.0001,0.999353304 +1596499200000-1596585599999,0.000706188,0.0001,0.999193812 +1596585600000-1596671999999,0.000654412,0.0001,0.999245588 +1596672000000-1596758399999,0.000713072,0.0001,0.999186928 +1596758400000-1596844799999,0.000712544,0.0001,0.999187456 +1596844800000-1596931199999,0.0006504120000000001,0.0001,0.999249588 +1596931200000-1597017599999,0.000549932,0.0001,0.999350068 +1597017600000-1597103999999,0.000571976,0.0001,0.999328024 +1597104000000-1597190399999,0.000576772,0.0001,0.999323228 +1597190400000-1597276799999,0.000673324,0.0001,0.999226676 +1597276800000-1597363199999,0.000616564,0.0001,0.999283436 +1597363200000-1597449599999,0.0007850040000000001,0.0001,0.999114996 +1597449600000-1597535999999,0.000564132,0.0001,0.999335868 +1597536000000-1597622399999,0.00047113600000000004,0.0001,0.999428864 +1597622400000-1597708799999,0.000440328,0.0001,0.999459672 +1597708800000-1597795199999,0.000541124,0.0001,0.999358876 +1597795200000-1597881599999,0.0005685520000000001,0.0001,0.999331448 +1597881600000-1597967999999,0.0005291559999999999,0.0001,0.999370844 +1597968000000-1598054399999,0.000586852,0.0001,0.999313148 +1598054400000-1598140799999,0.000517416,0.0001,0.999382584 +1598140800000-1598227199999,0.00041148000000000004,0.0001,0.99948852 +1598227200000-1598313599999,0.000438336,0.0001,0.999461664 +1598313600000-1598399999999,0.000484856,0.0001,0.999415144 +1598400000000-1598486399999,0.0005427440000000001,0.0001,0.999357256 +1598486400000-1598572799999,0.0005454,0.0001,0.9993546 +1598572800000-1598659199999,0.000562692,0.0001,0.999337308 +1598659200000-1598745599999,0.000513668,0.0001,0.999386332 +1598745600000-1598831999999,0.000413392,0.0001,0.999486608 +1598832000000-1598918399999,0.000424876,0.0001,0.999475124 +1598918400000-1599004799999,0.000502772,0.0001,0.999397228 +1599004800000-1599091199999,0.000492848,0.0001,0.999407152 +1599091200000-1599177599999,0.00053168,0.0001,0.99936832 +1599177600000-1599263999999,0.0006053440000000001,0.0001,0.999294656 +1599264000000-1599350399999,0.000518536,0.0001,0.999381464 +1599350400000-1599436799999,0.0003751,0.0001,0.9995249 +1599436800000-1599523199999,0.0002837,0.0001,0.9996163 +1599523200000-1599609599999,0.000327136,0.0001,0.999572864 +1599609600000-1599695999999,0.0004091,0.0001,0.9994909 +1599696000000-1599782399999,0.000433216,0.0001,0.999466784 +1599782400000-1599868799999,0.000573948,0.0001,0.999326052 +1599868800000-1599955199999,0.00049382,0.0001,0.99940618 +1599955200000-1600041599999,0.000412996,0.0001,0.999487004 +1600041600000-1600127999999,0.000413584,0.0001,0.999486416 +1600128000000-1600214399999,0.000474512,0.0001,0.999425488 +1600214400000-1600300799999,0.00046894799999999996,0.0001,0.999431052 +1600300800000-1600387199999,0.000542228,0.0001,0.999357772 +1600387200000-1600473599999,0.00059214,0.0001,0.99930786 +1600473600000-1600559999999,0.000506988,0.0001,0.999393012 +1600560000000-1600646399999,0.00046201600000000004,0.0001,0.999437984 +1600646400000-1600732799999,0.000623308,0.0001,0.999276692 +1600732800000-1600819199999,0.000479004,0.0001,0.999420996 +1600819200000-1600905599999,0.000469416,0.0001,0.999430584 +1600905600000-1600991999999,0.0005659479999999999,0.0001,0.999334052 +1600992000000-1601078399999,0.000580268,0.0001,0.999319732 +1601078400000-1601164799999,0.000536736,0.0001,0.999363264 +1601164800000-1601251199999,0.000450912,0.0001,0.999449088 +1601251200000-1601337599999,0.000400028,0.0001,0.999499972 +1601337600000-1601423999999,0.0005207079999999999,0.0001,0.999379292 +1601424000000-1601510399999,0.000473912,0.0001,0.999426088 +1601510400000-1601596799999,0.0005484519999999999,0.0001,0.999351548 +1601596800000-1601683199999,0.000660264,0.0001,0.999239736 +1601683200000-1601769599999,0.000583656,0.0001,0.999316344 +1601769600000-1601855999999,0.000429396,0.0001,0.999470604 +1601856000000-1601942399999,0.00047307999999999996,0.0001,0.99942692 +1601942400000-1602028799999,0.0005441760000000001,0.0001,0.999355824 +1602028800000-1602115199999,0.00061344,0.0001,0.99928656 +1602115200000-1602201599999,0.000704072,0.0001,0.999195928 +1602201600000-1602287999999,0.0006774600000000001,0.0001,0.99922254 +1602288000000-1602374399999,0.00066024,0.0001,0.99923976 +1602374400000-1602460799999,0.0005524880000000001,0.0001,0.999347512 +1602460800000-1602547199999,0.000501916,0.0001,0.999398084 +1602547200000-1602633599999,0.00062756,0.0001,0.99927244 +1602633600000-1602719999999,0.000718236,0.0001,0.999181764 +1602720000000-1602806399999,0.000779504,0.0001,0.999120496 +1602806400000-1602892799999,0.0008308440000000001,0.0001,0.999069156 +1602892800000-1602979199999,0.000681892,0.0001,0.999218108 +1602979200000-1603065599999,0.00059322,0.0001,0.99930678 +1603065600000-1603151999999,0.000813624,0.0001,0.999086376 +1603152000000-1603238399999,0.0007443840000000001,0.0001,0.999155616 +1603238400000-1603324799999,0.0007605919999999999,0.0001,0.999139408 +1603324800000-1603411199999,0.000916872,0.0001,0.998983128 +1603411200000-1603497599999,0.000984432,0.0001,0.998915568 +1603497600000-1603583999999,0.000994452,0.0001,0.998905548 +1603584000000-1603670399999,0.000747384,0.0001,0.999152616 +1603670400000-1603756799999,0.000808688,0.0001,0.999091312 +1603756800000-1603843199999,0.000923264,0.0001,0.998976736 +1603843200000-1603929599999,0.000954308,0.0001,0.998945692 +1603929600000-1604015999999,0.0010936,0.0001,0.9988064 +1604016000000-1604102399999,0.001192664,0.0001,0.998707336 +1604102400000-1604188799999,0.0010784000000000002,0.0001,0.9988216 +1604188800000-1604275199999,0.0012603800000000002,0.0001,0.99863962 +1604275200000-1604361599999,0.001023816,0.0001,0.998876184 +1604361600000-1604447999999,0.0015282919999999999,0.0001,0.998371708 +1604448000000-1604534399999,0.001256068,0.0001,0.998643932 +1604534400000-1604620799999,0.001554332,0.0001,0.998345668 +1604620800000-1604707199999,0.001538352,0.0001,0.998361648 +1604707200000-1604793599999,0.0015320440000000002,0.0001,0.998367956 +1604793600000-1604879999999,0.001383752,0.0001,0.998516248 +1604880000000-1604966399999,0.0014470239999999999,0.0001,0.998452976 +1604966400000-1605052799999,0.001688192,0.0001,0.998211808 +1605052800000-1605139199999,0.001763212,0.0001,0.998136788 +1605139200000-1605225599999,0.001979484,0.0001,0.997920516 +1605225600000-1605311999999,0.002167496,0.0001,0.997732504 +1605312000000-1605398399999,0.002017644,0.0001,0.997882356 +1605398400000-1605484799999,0.0016383279999999999,0.0001,0.998261672 +1605484800000-1605571199999,0.001953928,0.0001,0.997946072 +1605571200000-1605657599999,0.00196998,0.0001,0.99793002 +1605657600000-1605743999999,0.002081624,0.0001,0.997818376 +1605744000000-1605830399999,0.002301008,0.0001,0.997598992 +1605830400000-1605916799999,0.002382988,0.0001,0.997517012 +1605916800000-1606003199999,0.0021559360000000002,0.0001,0.997744064 +1606003200000-1606089599999,0.0017655799999999999,0.0001,0.99813442 +1606089600000-1606175999999,0.002091692,0.0001,0.997808308 +1606176000000-1606262399999,0.002109176,0.0001,0.997790824 +1606262400000-1606348799999,0.0022036,0.0001,0.9976964 +1606348800000-1606435199999,0.001352008,0.0001,0.998547992 +1606435200000-1606521599999,0.002498332,0.0001,0.997401668 +1606521600000-1606607999999,0.00187028,0.0001,0.99802972 +1606608000000-1606694399999,0.001686052,0.0001,0.998213948 +1606694400000-1606780799999,0.001926256,0.0001,0.997973744 +1606780800000-1606867199999,0.00226292,0.0001,0.99763708 +1606867200000-1606953599999,0.002437788,0.0001,0.997462212 +1606953600000-1607039999999,0.00268442,0.0001,0.99721558 +1607040000000-1607126399999,0.002795236,0.0001,0.997104764 +1607126400000-1607212799999,0.002592984,0.0001,0.997307016 +1607212800000-1607299199999,0.002177768,0.0001,0.997722232 +1607299200000-1607385599999,0.0023358159999999997,0.0001,0.997564184 +1607385600000-1607471999999,0.002696808,0.0001,0.997203192 +1607472000000-1607558399999,0.002675156,0.0001,0.997224844 +1607558400000-1607644799999,0.0027806239999999998,0.0001,0.997119376 +1607644800000-1607731199999,0.0028846880000000003,0.0001,0.997015312 +1607731200000-1607817599999,0.0026168479999999997,0.0001,0.997283152 +1607817600000-1607903999999,0.002258484,0.0001,0.997641516 +1607904000000-1607990399999,0.002334696,0.0001,0.997565304 +1607990400000-1608076799999,0.0025110560000000002,0.0001,0.997388944 +1608076800000-1608163199999,0.002963448,0.0001,0.996936552 +1608163200000-1608249599999,0.002882656,0.0001,0.997017344 +1608249600000-1608335999999,0.00302566,0.0001,0.99687434 +1608336000000-1608422399999,0.002308132,0.0001,0.997591868 +1608422400000-1608508799999,0.002258884,0.0001,0.997641116 +1608508800000-1608595199999,0.0023874319999999997,0.0001,0.997512568 +1608595200000-1608681599999,0.002380464,0.0001,0.997519536 +1608681600000-1608767999999,0.00275896,0.0001,0.99714104 +1608768000000-1608854399999,0.002332584,0.0001,0.997567416 +1608854400000-1608940799999,0.001176036,0.0001,0.998723964 +1608940800000-1609027199999,0.002720404,0.0001,0.997179596 +1609027200000-1609113599999,0.001872488,0.0001,0.998027512 +1609113600000-1609199999999,0.002092448,0.0001,0.997807552 +1609200000000-1609286399999,0.002408288,0.0001,0.997491712 +1609286400000-1609372799999,0.002807816,0.0001,0.997092184 +1609372800000-1609459199999,0.0028305599999999998,0.0001,0.99706944 +1609459200000-1609545599999,0.001849252,0.0001,0.998050748 +1609545600000-1609631999999,0.003610072,0.0001,0.996289928 +1609632000000-1609718399999,0.002509384,0.0001,0.997390616 +1609718400000-1609804799999,0.0022108600000000003,0.0001,0.99768914 +1609804800000-1609891199999,0.0028240599999999998,0.0001,0.99707594 +1609891200000-1609977599999,0.00307174,0.0001,0.99682826 +1609977600000-1610063999999,0.003343964,0.0001,0.996556036 +1610064000000-1610150399999,0.003547536,0.0001,0.996352464 +1610150400000-1610236799999,0.00313554,0.0001,0.99676446 +1610236800000-1610323199999,0.002564196,0.0001,0.997335804 +1610323200000-1610409599999,0.0025794439999999997,0.0001,0.997320556 +1610409600000-1610495999999,0.002726784,0.0001,0.997173216 +1610496000000-1610582399999,0.002767084,0.0001,0.997132916 +1610582400000-1610668799999,0.002832748,0.0001,0.997067252 +1610668800000-1610755199999,0.002918052,0.0001,0.996981948 +1610755200000-1610841599999,0.0024253400000000002,0.0001,0.99747466 +1610841600000-1610927999999,0.00213682,0.0001,0.99776318 +1610928000000-1611014399999,0.00172534,0.0001,0.99817466 +1611014400000-1611100799999,0.002117248,0.0001,0.997782752 +1611100800000-1611187199999,0.002201896,0.0001,0.997698104 +1611187200000-1611273599999,0.002329388,0.0001,0.997570612 +1611273600000-1611359999999,0.002291972,0.0001,0.997608028 +1611360000000-1611446399999,0.002051516,0.0001,0.997848484 +1611446400000-1611532799999,0.001576392,0.0001,0.998323608 +1611532800000-1611619199999,0.001822376,0.0001,0.998077624 +1611619200000-1611705599999,0.0017737360000000001,0.0001,0.998126264 +1611705600000-1611791999999,0.0018498520000000001,0.0001,0.998050148 +1611792000000-1611878399999,0.002028192,0.0001,0.997871808 +1611878400000-1611964799999,0.002001976,0.0001,0.997898024 +1611964800000-1612051199999,0.001711824,0.0001,0.998188176 +1612051200000-1612137599999,0.001347516,0.0001,0.998552484 +1612137600000-1612223999999,0.0016214480000000002,0.0001,0.998278552 +1612224000000-1612310399999,0.0013854359999999999,0.0001,0.998514564 +1612310400000-1612396799999,0.0014622,0.0001,0.9984378 +1612396800000-1612483199999,0.00148982,0.0001,0.99841018 +1612483200000-1612569599999,0.001615092,0.0001,0.998284908 +1612569600000-1612655999999,0.0012518879999999998,0.0001,0.998648112 +1612656000000-1612742399999,0.0010780999999999998,0.0001,0.9988219 +1612742400000-1612828799999,0.001086704,0.0001,0.998813296 +1612828800000-1612915199999,0.001144532,0.0001,0.998755468 +1612915200000-1613001599999,0.0011446759999999999,0.0001,0.998755324 +1613001600000-1613087999999,0.00127074,0.0001,0.99862926 +1613088000000-1613174399999,0.0011973279999999999,0.0001,0.998702672 +1613174400000-1613260799999,0.0010479439999999999,0.0001,0.998852056 +1613260800000-1613347199999,0.00078282,0.0001,0.99911718 +1613347200000-1613433599999,0.000651952,0.0001,0.999248048 +1613433600000-1613519999999,0.000750908,0.0001,0.999149092 +1613520000000-1613606399999,0.000842892,0.0001,0.999057108 +1613606400000-1613692799999,0.0008398279999999999,0.0001,0.999060172 +1613692800000-1613779199999,0.0009525800000000001,0.0001,0.99894742 +1613779200000-1613865599999,0.000861384,0.0001,0.999038616 +1613865600000-1613951999999,0.00068678,0.0001,0.99921322 +1613952000000-1614038399999,0.0006748279999999999,0.0001,0.999225172 +1614038400000-1614124799999,0.000868208,0.0001,0.999031792 +1614124800000-1614211199999,0.000898116,0.0001,0.999001884 +1614211200000-1614297599999,0.000931216,0.0001,0.998968784 +1614297600000-1614383999999,0.000929356,0.0001,0.998970644 +1614384000000-1614470399999,0.0007764880000000001,0.0001,0.999123512 +1614470400000-1614556799999,0.00061784,0.0001,0.99928216 +1614556800000-1614643199999,0.000698052,0.0001,0.999201948 +1614643200000-1614729599999,0.000686612,0.0001,0.999213388 +1614729600000-1614815999999,0.0008067279999999999,0.0001,0.999093272 +1614816000000-1614902399999,0.000817868,0.0001,0.999082132 +1614902400000-1614988799999,0.000798028,0.0001,0.999101972 +1614988800000-1615075199999,0.00070006,0.0001,0.99919994 +1615075200000-1615161599999,0.000493496,0.0001,0.999406504 +1615161600000-1615247999999,0.000539416,0.0001,0.999360584 +1615248000000-1615334399999,0.000693016,0.0001,0.999206984 +1615334400000-1615420799999,0.000695552,0.0001,0.999204448 +1615420800000-1615507199999,0.00075052,0.0001,0.99914948 +1615507200000-1615593599999,0.000739072,0.0001,0.999160928 +1615593600000-1615679999999,0.000637184,0.0001,0.999262816 +1615680000000-1615766399999,0.000459864,0.0001,0.999440136 +1615766400000-1615852799999,0.000679392,0.0001,0.999220608 +1615852800000-1615939199999,0.0006489,0.0001,0.9992511 +1615939200000-1616025599999,0.000712688,0.0001,0.999187312 +1616025600000-1616111999999,0.000725616,0.0001,0.999174384 +1616112000000-1616198399999,0.000741088,0.0001,0.999158912 +1616198400000-1616284799999,0.000667112,0.0001,0.999232888 +1616284800000-1616371199999,0.000406444,0.0001,0.999493556 +1616371200000-1616457599999,0.000617996,0.0001,0.999282004 +1616457600000-1616543999999,0.000645292,0.0001,0.999254708 +1616544000000-1616630399999,0.0010432439999999998,0.0001,0.998856756 +1616630400000-1616716799999,0.000811584,0.0001,0.999088416 +1616716800000-1616803199999,0.000929692,0.0001,0.998970308 +1616803200000-1616889599999,0.000755124,0.0001,0.999144876 +1616889600000-1616975999999,0.000519256,0.0001,0.999380744 +1616976000000-1617062399999,0.00083232,0.0001,0.99906768 +1617062400000-1617148799999,0.000738076,0.0001,0.999161924 +1617148800000-1617235199999,0.000802188,0.0001,0.999097812 +1617235200000-1617321599999,0.000950908,0.0001,0.998949092 +1617321600000-1617407999999,0.000839696,0.0001,0.999060304 +1617408000000-1617494399999,0.000760084,0.0001,0.999139916 +1617494400000-1617580799999,0.00042222,0.0001,0.99947778 +1617580800000-1617667199999,0.0009296319999999999,0.0001,0.998970368 +1617667200000-1617753599999,0.0007289919999999999,0.0001,0.999171008 +1617753600000-1617839999999,0.000901504,0.0001,0.998998496 +1617840000000-1617926399999,0.000959824,0.0001,0.998940176 +1617926400000-1618012799999,0.0009937680000000001,0.0001,0.998906232 +1618012800000-1618099199999,0.0008012480000000001,0.0001,0.999098752 +1618099200000-1618185599999,0.0005588079999999999,0.0001,0.999341192 +1618185600000-1618271999999,0.00084204,0.0001,0.99905796 +1618272000000-1618358399999,0.000936684,0.0001,0.998963316 +1618358400000-1618444799999,0.000905972,0.0001,0.998994028 +1618444800000-1618531199999,0.000892876,0.0001,0.999007124 +1618531200000-1618617599999,0.000962,0.0001,0.998938 +1618617600000-1618703999999,0.000631176,0.0001,0.999268824 +1618704000000-1618790399999,0.000506088,0.0001,0.999393912 +1618790400000-1618876799999,0.000818288,0.0001,0.999081712 +1618876800000-1618963199999,0.000732308,0.0001,0.999167692 +1618963200000-1619049599999,0.0007552440000000001,0.0001,0.999144756 +1619049600000-1619135999999,0.000808316,0.0001,0.999091684 +1619136000000-1619222399999,0.00075004,0.0001,0.99914996 +1619222400000-1619308799999,0.000642724,0.0001,0.999257276 +1619308800000-1619395199999,0.00038632,0.0001,0.99951368 +1619395200000-1619481599999,0.000571388,0.0001,0.999328612 +1619481600000-1619567999999,0.0006108,0.0001,0.9992892 +1619568000000-1619654399999,0.000662692,0.0001,0.999237308 +1619654400000-1619740799999,0.000699892,0.0001,0.999200108 +1619740800000-1619827199999,0.000695792,0.0001,0.999204208 +1619827200000-1619913599999,0.00054558,0.0001,0.99935442 +1619913600000-1619999999999,0.000353124,0.0001,0.999546876 +1620000000000-1620086399999,0.0006066520000000001,0.0001,0.999293348 +1620086400000-1620172799999,0.000489288,0.0001,0.999410712 +1620172800000-1620259199999,0.0005374360000000001,0.0001,0.999362564 +1620259200000-1620345599999,0.000571088,0.0001,0.999328912 +1620345600000-1620431999999,0.000578972,0.0001,0.999321028 +1620432000000-1620518399999,0.000403924,0.0001,0.999496076 +1620518400000-1620604799999,0.000257592,0.0001,0.999642408 +1620604800000-1620691199999,0.000441988,0.0001,0.999458012 +1620691200000-1620777599999,0.000404452,0.0001,0.999495548 +1620777600000-1620863999999,0.000430452,0.0001,0.999469548 +1620864000000-1620950399999,0.000457488,0.0001,0.999442512 +1620950400000-1621036799999,0.000507732,0.0001,0.999392268 +1621036800000-1621123199999,0.000346744,0.0001,0.999553256 +1621123200000-1621209599999,0.000202804,0.0001,0.999697196 +1621209600000-1621295999999,0.00034388400000000003,0.0001,0.999556116 +1621296000000-1621382399999,0.000333828,0.0001,0.999566172 +1621382400000-1621468799999,0.000352308,0.0001,0.999547692 +1621468800000-1621555199999,0.000362676,0.0001,0.999537324 +1621555200000-1621641599999,0.00033572399999999997,0.0001,0.999564276 +1621641600000-1621727999999,0.000237936,0.0001,0.999662064 +1621728000000-1621814399999,0.00015515199999999998,0.0001,0.999744848 +1621814400000-1621900799999,0.000309628,0.0001,0.999590372 +1621900800000-1621987199999,0.000273404,0.0001,0.999626596 +1621987200000-1622073599999,0.00028788,0.0001,0.99961212 +1622073600000-1622159999999,0.00033030799999999997,0.0001,0.999569692 +1622160000000-1622246399999,0.00026212,0.0001,0.99963788 +1622246400000-1622332799999,0.00014419200000000002,0.0001,0.999755808 +1622332800000-1622419199999,0.000080908,0.0001,0.999819092 +1622419200000-1622505599999,0.00006938800000000001,0.0001,0.999830612 +1622505600000-1622591999999,0.00027562400000000003,0.0001,0.999624376 +1622592000000-1622678399999,0.000203584,0.0001,0.999696416 +1622678400000-1622764799999,0.0002295,0.0001,0.9996705 +1622764800000-1622851199999,0.000202456,0.0001,0.999697544 +1622851200000-1622937599999,0.000167456,0.0001,0.999732544 +1622937600000-1623023999999,0.00006481999999999999,0.0001,0.99983518 +1623024000000-1623110399999,0.000185608,0.0001,0.999714392 +1623110400000-1623196799999,0.00015597999999999998,0.0001,0.99974402 +1623196800000-1623283199999,0.000224044,0.0001,0.999675956 +1623283200000-1623369599999,0.00017476,0.0001,0.99972524 +1623369600000-1623455999999,0.00029675999999999997,0.0001,0.99960324 +1623456000000-1623542399999,0.00009886,0.0001,0.99980114 +1623542400000-1623628799999,0.000057396000000000004,0.0001,0.999842604 +1623628800000-1623715199999,0.000153132,0.0001,0.999746868 +1623715200000-1623801599999,0.00013579599999999999,0.0001,0.999764204 +1623801600000-1623887999999,0.00014936000000000002,0.0001,0.99975064 +1623888000000-1623974399999,0.000124716,0.0001,0.999775284 +1623974400000-1624060799999,0.000247488,0.0001,0.999652512 +1624060800000-1624147199999,0.000102416,0.0001,0.999797584 +1624147200000-1624233599999,0.000046764,0.0001,0.999853236 +1624233600000-1624319999999,0.000148024,0.0001,0.999751976 +1624320000000-1624406399999,0.000131876,0.0001,0.999768124 +1624406400000-1624492799999,0.00014952799999999998,0.0001,0.999750472 +1624492800000-1624579199999,0.000154344,0.0001,0.999745656 +1624579200000-1624665599999,0.00028422800000000003,0.0001,0.999615772 +1624665600000-1624751999999,0.00008780800000000001,0.0001,0.999812192 +1624752000000-1624838399999,0.0000471,0.0001,0.9998529 +1624838400000-1624924799999,0.00018124799999999998,0.0001,0.999718752 +1624924800000-1625011199999,0.00013624,0.0001,0.99976376 +1625011200000-1625097599999,0.000157868,0.0001,0.999742132 +1625097600000-1625183999999,0.00017352,0.0001,0.99972648 +1625184000000-1625270399999,0.00035924,0.0001,0.99954076 +1625270400000-1625356799999,0.000057107999999999996,0.0001,0.999842892 +1625356800000-1625443199999,0.000044420000000000005,0.0001,0.99985558 +1625443200000-1625529599999,0.00006642,0.0001,0.99983358 +1625529600000-1625615999999,0.000291376,0.0001,0.999608624 +1625616000000-1625702399999,0.000274952,0.0001,0.999625048 +1625702400000-1625788799999,0.00024121600000000002,0.0001,0.999658784 +1625788800000-1625875199999,0.000579452,0.0001,0.999320548 +1625875200000-1625961599999,0.000108928,0.0001,0.999791072 +1625961600000-1626047999999,0.00007406,0.0001,0.99982594 +1626048000000-1626134399999,0.000420468,0.0001,0.999479532 +1626134400000-1626220799999,0.00031770400000000003,0.0001,0.999582296 +1626220800000-1626307199999,0.00038304,0.0001,0.99951696 +1626307200000-1626393599999,0.00034063999999999996,0.0001,0.99955936 +1626393600000-1626479999999,0.000952916,0.0001,0.998947084 +1626480000000-1626566399999,0.000156028,0.0001,0.999743972 +1626566400000-1626652799999,0.000144756,0.0001,0.999755244 +1626652800000-1626739199999,0.000625804,0.0001,0.999274196 +1626739200000-1626825599999,0.0005130919999999999,0.0001,0.999386908 +1626825600000-1626911999999,0.0006251680000000001,0.0001,0.999274832 +1626912000000-1626998399999,0.00068296,0.0001,0.99921704 +1626998400000-1627084799999,0.001431692,0.0001,0.998468308 +1627084800000-1627171199999,0.000334044,0.0001,0.999565956 +1627171200000-1627257599999,0.000158756,0.0001,0.999741244 +1627257600000-1627343999999,0.0010736679999999998,0.0001,0.998826332 +1627344000000-1627430399999,0.000849948,0.0001,0.999050052 +1627430400000-1627516799999,0.000826288,0.0001,0.999073712 +1627516800000-1627603199999,0.00093922,0.0001,0.99896078 +1627603200000-1627689599999,0.002338228,0.0001,0.997561772 +1627689600000-1627775999999,0.000394192,0.0001,0.999505808 +1627776000000-1627862399999,0.000302072,0.0001,0.999597928 +1627862400000-1627948799999,0.0015377119999999999,0.0001,0.998362288 +1627948800000-1628035199999,0.001280316,0.0001,0.998619684 +1628035200000-1628121599999,0.0011139639999999998,0.0001,0.998786036 +1628121600000-1628207999999,0.0013195440000000002,0.0001,0.998580456 +1628208000000-1628294399999,0.003063616,0.0001,0.996836384 +1628294400000-1628380799999,0.0005297440000000001,0.0001,0.999370256 +1628380800000-1628467199999,0.000291172,0.0001,0.999608828 +1628467200000-1628553599999,0.002216492,0.0001,0.997683508 +1628553600000-1628639999999,0.001478828,0.0001,0.998421172 +1628640000000-1628726399999,0.0018823879999999998,0.0001,0.998017612 +1628726400000-1628812799999,0.001649404,0.0001,0.998250596 +1628812800000-1628899199999,0.00279086,0.0001,0.99710914 +1628899200000-1628985599999,0.000536592,0.0001,0.999363408 +1628985600000-1629071999999,0.000462364,0.0001,0.999437636 +1629072000000-1629158399999,0.002677908,0.0001,0.997222092 +1629158400000-1629244799999,0.0018302680000000001,0.0001,0.998069732 +1629244800000-1629331199999,0.001891724,0.0001,0.998008276 +1629331200000-1629417599999,0.0018510319999999999,0.0001,0.998048968 +1629417600000-1629503999999,0.0029584,0.0001,0.9969416 +1629504000000-1629590399999,0.000779516,0.0001,0.999120484 +1629590400000-1629676799999,0.000402468,0.0001,0.999497532 +1629676800000-1629763199999,0.002896536,0.0001,0.997003464 +1629763200000-1629849599999,0.001908116,0.0001,0.997991884 +1629849600000-1629935999999,0.002040124,0.0001,0.997859876 +1629936000000-1630022399999,0.0021999479999999997,0.0001,0.997700052 +1630022400000-1630108799999,0.002913824,0.0001,0.996986176 +1630108800000-1630195199999,0.000669408,0.0001,0.999230592 +1630195200000-1630281599999,0.00046227999999999997,0.0001,0.99943772 +1630281600000-1630367999999,0.003209636,0.0001,0.996690364 +1630368000000-1630454399999,0.001938452,0.0001,0.997961548 +1630454400000-1630540799999,0.0025521,0.0001,0.9973479 +1630540800000-1630627199999,0.0021010279999999996,0.0001,0.997798972 +1630627200000-1630713599999,0.002799332,0.0001,0.997100668 +1630713600000-1630799999999,0.000713192,0.0001,0.999186808 +1630800000000-1630886399999,0.000463312,0.0001,0.999436688 +1630886400000-1630972799999,0.000881016,0.0001,0.999018984 +1630972800000-1631059199999,0.003333428,0.0001,0.996566572 +1631059200000-1631145599999,0.0022118560000000003,0.0001,0.997688144 +1631145600000-1631231999999,0.00189198,0.0001,0.99800802 +1631232000000-1631318399999,0.002683796,0.0001,0.997216204 +1631318400000-1631404799999,0.000739432,0.0001,0.999160568 +1631404800000-1631491199999,0.000406192,0.0001,0.999493808 +1631491200000-1631577599999,0.00314854,0.0001,0.99675146 +1631577600000-1631663999999,0.001728908,0.0001,0.998171092 diff --git a/src/main/resources/modules/lookup_tables/covid_dose_rates.csv b/src/main/resources/modules/lookup_tables/covid_dose_rates.csv new file mode 100644 index 0000000..ff4c3c8 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/covid_dose_rates.csv @@ -0,0 +1,274 @@ +date,Ages_12-15_yrs,Ages_16-17_yrs,Ages_18-29_yrs,Ages_30-39_yrs,Ages_40-49_yrs,Ages_50-64_yrs,Ages_65-74_yrs,Ages_75+_yrs +12/16/2020,0,0,172,425,409,472,68,4 +12/17/2020,0,0,2044,3782,3225,3942,723,122 +12/18/2020,2,4,8380,15591,13029,16116,3138,520 +12/19/2020,2,20,17893,34102,28999,37473,7067,1202 +12/20/2020,5,28,30132,56755,49284,64449,12431,2033 +12/21/2020,4,29,19724,35610,29238,36669,7135,1398 +12/22/2020,3,30,15924,30006,25060,31018,6344,1384 +12/23/2020,2,45,33058,58113,51256,68465,13832,2857 +12/24/2020,7,76,46399,81090,72986,100446,21189,5787 +12/25/2020,2,120,53252,93041,85690,119245,26728,11533 +12/26/2020,3,59,24321,40394,37449,53841,12630,7456 +12/27/2020,2,61,9330,13707,12291,20107,6744,8521 +12/28/2020,4,37,12251,19562,18602,26424,6311,2650 +12/29/2020,2,56,14868,23769,22683,32138,8609,4621 +12/30/2020,4,118,47453,76447,73311,109172,28669,15208 +12/31/2020,7,155,54685,85753,82724,128106,38184,25877 +1/1/2021,7,248,67911,103522,101570,155908,46089,33389 +1/2/2021,5,222,45871,70300,67628,102259,28703,25824 +1/3/2021,2,143,17045,25896,25419,41918,16364,20038 +1/4/2021,2,132,19762,27453,27846,44843,18116,39290 +1/5/2021,3,81,18491,24330,24274,36743,12187,15730 +1/6/2021,11,227,51198,70849,69955,107093,41748,40180 +1/7/2021,10,402,63068,89358,89688,139966,60272,57851 +1/8/2021,24,379,74333,101680,101166,162100,77014,82941 +1/9/2021,13,326,71088,97182,97783,154967,85294,88213 +1/10/2021,7,485,70960,94042,94244,153034,111282,121502 +1/11/2021,4,378,44045,56008,54467,89047,41224,64052 +1/12/2021,1,375,31635,37818,39351,65338,47628,63269 +1/13/2021,12,470,59618,76629,79150,125048,92798,122399 +1/14/2021,10,479,71642,88847,88070,133149,102408,137438 +1/15/2021,18,729,80267,102035,105645,165064,122460,190598 +1/16/2021,18,604,89621,113792,118939,187147,198185,233139 +1/17/2021,21,696,80399,104216,108527,175981,168654,214334 +1/18/2021,10,858,53213,62803,64293,108308,105039,157391 +1/19/2021,14,410,29940,37668,39236,66382,79868,108015 +1/20/2021,17,483,41470,50656,56043,100240,156093,184483 +1/21/2021,18,619,57517,74295,79781,138724,166757,213529 +1/22/2021,26,975,78369,97088,104643,180794,259972,317834 +1/23/2021,20,996,70990,88126,94986,169872,286241,358511 +1/24/2021,39,1200,80054,103967,111251,192676,293134,352151 +1/25/2021,9,850,50310,60404,66488,115104,190043,255879 +1/26/2021,15,646,35083,42417,47050,90138,161377,180887 +1/27/2021,20,705,46445,57631,62529,115053,208958,245758 +1/28/2021,27,713,52865,65952,72185,131060,294076,306275 +1/29/2021,26,1023,63155,79388,86632,163649,319148,362421 +1/30/2021,17,894,64169,81269,87723,164885,327392,382825 +1/31/2021,26,1098,65496,80740,87432,165485,325831,359315 +2/1/2021,22,948,42954,52012,57212,107103,231709,261575 +2/2/2021,12,541,22358,27851,30182,59244,123992,149109 +2/3/2021,20,557,28793,37278,41919,79920,207686,207620 +2/4/2021,21,799,44840,57578,62244,121368,272351,265532 +2/5/2021,22,722,43888,56519,63307,123600,314859,289015 +2/6/2021,24,1209,63368,79325,89082,186125,412235,381830 +2/7/2021,27,1049,55517,69759,77149,158450,387826,330210 +2/8/2021,24,882,40018,49908,53456,101538,236653,211906 +2/9/2021,31,1195,30835,37877,41912,84636,178981,154042 +2/10/2021,26,940,43108,54573,61298,127817,286201,240270 +2/11/2021,21,906,38277,49874,57061,120777,304390,246882 +2/12/2021,45,953,47536,62587,71819,152929,378593,283566 +2/13/2021,31,1201,58077,74160,83228,174669,425367,320024 +2/14/2021,45,1198,61889,79761,89427,189475,427413,304525 +2/15/2021,21,807,41014,50988,58509,122447,303867,196898 +2/16/2021,23,612,15586,19559,22638,50406,172957,107413 +2/17/2021,13,706,27495,36209,41517,94930,216642,144944 +2/18/2021,35,791,39980,46884,52381,118405,273606,182390 +2/19/2021,39,1264,46597,59611,67108,148287,364108,233583 +2/20/2021,37,1014,42657,54808,60989,137347,291448,186286 +2/21/2021,48,1046,44115,55610,62478,138353,284617,187997 +2/22/2021,26,1167,31604,37733,41009,89399,171794,109318 +2/23/2021,26,1146,22989,28665,33301,72174,126717,75036 +2/24/2021,37,1014,36894,47804,52963,117065,242957,141482 +2/25/2021,43,1424,46717,59400,65482,149462,295090,174132 +2/26/2021,69,2077,53971,72323,83930,202919,381447,219351 +2/27/2021,61,1537,62086,82348,95424,241465,447375,241926 +2/28/2021,61,2145,76034,100769,114513,263343,441361,232873 +3/1/2021,67,2106,59326,80195,92767,213842,342134,153200 +3/2/2021,73,2015,55529,72698,82597,181865,293807,147094 +3/3/2021,56,1769,60918,82288,96289,227410,347124,157423 +3/4/2021,51,1954,59409,80399,93521,250757,387391,191286 +3/5/2021,69,2808,83610,107619,124539,331062,474294,228940 +3/6/2021,83,3913,110227,140909,162721,426065,536702,260388 +3/7/2021,77,3251,105198,135908,156060,411720,419213,194252 +3/8/2021,63,3152,85207,108681,122226,326937,268638,113319 +3/9/2021,68,3146,82056,98762,105481,263998,236795,109203 +3/10/2021,73,3474,92656,114904,130185,375160,321511,146467 +3/11/2021,87,3866,113158,147670,172611,480608,364252,177718 +3/12/2021,114,5272,135560,172333,199545,580354,389230,182812 +3/13/2021,158,6220,174668,219760,256985,721852,502054,325152 +3/14/2021,144,5877,150704,188014,215299,588013,333670,149711 +3/15/2021,207,5127,125707,147280,162901,406142,238387,102262 +3/16/2021,235,4824,108218,124453,137916,343310,179164,81893 +3/17/2021,166,5801,133562,164216,187963,507995,249146,117579 +3/18/2021,270,8454,168625,198529,228112,643133,267266,129926 +3/19/2021,242,8365,162978,192498,222868,612741,260777,117581 +3/20/2021,306,10437,207021,243790,281272,803861,283531,140980 +3/21/2021,383,11680,225108,256829,291896,755553,251514,117394 +3/22/2021,287,8919,157874,181076,206417,494482,155821,68944 +3/23/2021,329,7527,122453,141412,163435,389940,167784,81090 +3/24/2021,466,11797,178643,205326,251838,603960,203440,98988 +3/25/2021,440,12152,195635,221213,270869,677323,210255,102758 +3/26/2021,573,16852,251243,278614,333146,792557,242560,123623 +3/27/2021,601,17650,259828,278582,329954,772583,219356,108910 +3/28/2021,602,17393,237562,254546,293385,711222,176579,86289 +3/29/2021,599,17139,186152,199889,227756,460511,114525,52378 +3/30/2021,483,13109,133793,139789,154612,339564,77852,36837 +3/31/2021,666,19256,203345,217355,239515,521841,139290,71002 +4/1/2021,805,23916,257673,269415,310752,645067,163508,78540 +4/2/2021,944,29187,318506,337269,372942,741914,227149,125561 +4/3/2021,1086,34381,342702,366400,394867,740086,172724,86728 +4/4/2021,1,471,3239,5609,5804,9819,3974,1510 +4/5/2021,2,109,868,2143,2044,3695,1470,495 +4/6/2021,2786,71242,620255,639579,700741,1261726,252027,121179 +4/7/2021,1261,33612,282957,277953,282207,491478,110725,55244 +4/8/2021,1383,40940,367105,337663,340085,593494,134460,68422 +4/9/2021,1690,51225,439621,387327,379597,662341,152773,76759 +4/10/2021,1963,51871,453827,397097,385811,670934,171612,89233 +4/11/2021,2282,50784,414002,359634,340928,572630,123974,62652 +4/12/2021,1929,47977,324153,284873,263298,414649,90846,46112 +4/13/2021,1306,45588,302080,253604,245136,364347,78194,37834 +4/14/2021,1763,47758,353456,299833,297939,479801,147041,70992 +4/15/2021,2742,58704,388208,323537,312524,486181,114101,58673 +4/16/2021,2988,62172,410870,347058,337607,519101,138754,66837 +4/17/2021,3673,63913,388874,316357,301573,445736,102008,52899 +4/18/2021,4366,77169,395940,324185,306735,428069,94307,47146 +4/19/2021,3883,57513,235885,192405,185323,231553,43882,20981 +4/20/2021,2981,43958,199909,164017,157521,218612,61709,33327 +4/21/2021,2977,52675,255315,206808,200551,274414,70747,37122 +4/22/2021,3754,61729,300865,237509,227569,305859,75556,39628 +4/23/2021,3769,61561,308086,246601,234298,331594,94624,49304 +4/24/2021,4576,66067,311814,249947,239221,331746,87339,47208 +4/25/2021,4484,64628,301278,240276,232537,311884,64928,33424 +4/26/2021,4785,64595,224341,181501,168205,230916,49026,22938 +4/27/2021,3053,44190,167567,135742,129507,172985,39856,19194 +4/28/2021,3020,44362,209800,165783,160061,219732,57396,30397 +4/29/2021,3640,49770,230173,185192,178836,259009,78262,44081 +4/30/2021,3340,49572,237343,186359,178854,263895,77363,42337 +5/1/2021,4851,62943,303993,239144,230895,323494,84275,46141 +5/2/2021,3861,43362,188943,147358,141111,192642,46725,24509 +5/3/2021,2562,27467,108497,83303,78999,104837,22695,10839 +5/4/2021,1558,19335,81608,65592,64333,90325,25553,15104 +5/5/2021,2115,29259,141555,112517,107559,157101,50516,28195 +5/6/2021,3538,41347,219218,185543,181524,293819,173643,97045 +5/7/2021,3844,47119,233480,183842,172986,263105,86245,45041 +5/8/2021,3077,37622,198150,155395,148547,217973,61928,34648 +5/9/2021,3126,36438,184111,143862,132123,188404,49980,26626 +5/10/2021,3372,33222,169482,130842,120042,161761,38385,19363 +5/11/2021,2614,26305,144085,110878,102811,141854,36524,18779 +5/12/2021,2527,22672,120658,89278,84660,120628,35778,19779 +5/13/2021,7250,26457,148483,112149,105165,154119,49065,26191 +5/14/2021,30735,27473,139704,102694,94534,137114,42895,24196 +5/15/2021,166756,34880,177827,134519,124925,177872,56881,30415 +5/16/2021,209799,31456,149852,115554,105486,145108,44301,25712 +5/17/2021,218405,24972,101251,79575,74854,98935,25482,19732 +5/18/2021,151589,18678,86984,67739,64317,84167,24746,12048 +5/19/2021,201266,28818,133876,98246,89550,120603,35233,18400 +5/20/2021,238646,36161,166104,123663,115363,153866,44045,22934 +5/21/2021,261050,45342,193536,138887,125077,165407,49956,27717 +5/22/2021,262052,50638,226819,164051,146573,192635,53464,27956 +5/23/2021,171538,33724,143601,110037,101216,131880,35524,19098 +5/24/2021,152211,28283,105107,80108,73836,90516,20253,9727 +5/25/2021,100085,20143,79456,59293,56036,68743,17192,8297 +5/26/2021,127633,29013,125381,92719,86609,115271,33973,19092 +5/27/2021,134393,30986,133590,88413,80274,80013,24572,12589 +5/28/2021,106505,28314,129779,90999,80149,106535,32263,17748 +5/29/2021,129120,34813,153190,109764,96487,125194,36759,20545 +5/30/2021,96056,24977,110819,83016,74152,94851,26284,14010 +5/31/2021,76644,21963,97677,76644,70867,87031,21877,10557 +6/1/2021,36151,11936,52633,39414,35829,44877,9885,4761 +6/2/2021,32378,10343,49026,36487,32523,40205,10589,5642 +6/3/2021,49324,14337,66568,48736,43713,57118,18130,10712 +6/4/2021,84296,27556,127784,93557,83486,113969,34455,20752 +6/5/2021,69080,22319,110791,79631,69755,93407,27648,18183 +6/6/2021,100758,23841,105123,79745,69498,90025,26481,14475 +6/7/2021,93295,21584,94039,69952,60540,75569,19604,10219 +6/8/2021,78539,19481,80504,60183,54025,66160,16632,8521 +6/9/2021,53464,13396,57533,43958,39166,48640,15338,8845 +6/10/2021,53893,14614,67557,48598,43383,58908,20095,11390 +6/11/2021,52736,14689,62794,44740,37643,48213,15305,8218 +6/12/2021,99113,26697,123145,87089,75999,98085,31411,17200 +6/13/2021,71484,19537,91828,67298,58319,76246,23853,13820 +6/14/2021,53229,16469,84856,64153,56311,72382,17197,9729 +6/15/2021,64460,18422,85176,64698,58015,70539,18408,9276 +6/16/2021,46014,13998,67500,50173,41992,52690,15683,8135 +6/17/2021,109668,35705,160948,115839,104621,139419,44112,24116 +6/18/2021,56403,18801,83268,59751,51971,68370,23003,14606 +6/19/2021,62010,20344,94082,66929,57723,75305,24081,13722 +6/20/2021,45182,14822,68084,52505,46853,60379,17493,9754 +6/21/2021,35776,11713,56133,39122,33131,41214,10601,5241 +6/22/2021,38789,13117,59207,44438,42119,51342,13618,6683 +6/23/2021,38463,13605,61266,44751,39850,55790,19864,10984 +6/24/2021,49256,17219,78979,55548,48891,66082,22674,13083 +6/25/2021,38371,13316,39100,21565,14735,4589,0,0 +6/26/2021,44141,15818,75350,55260,49148,67635,22671,13503 +6/27/2021,38339,15078,73160,58286,50755,72933,28741,15664 +6/28/2021,35755,15414,80560,59816,51560,62909,15481,8709 +6/29/2021,37918,14066,65629,50307,46773,57803,15316,8827 +6/30/2021,63769,27938,136610,108234,104602,162199,52456,49217 +7/1/2021,62670,23691,124224,82473,74431,122553,78849,64194 +7/2/2021,39598,13936,63325,44263,38648,51360,19214,10519 +7/3/2021,46216,18140,94213,67665,61231,83602,33330,22855 +7/4/2021,34581,13253,61327,46097,41368,53421,18502,9960 +7/5/2021,22494,8575,38868,29001,26460,34762,9438,5328 +7/6/2021,10955,4663,21685,17884,16314,19854,5004,2462 +7/7/2021,19451,7419,35665,26235,23841,30677,10325,5721 +7/8/2021,38995,15113,67321,48525,44149,60395,22498,12380 +7/9/2021,34520,13242,60732,43414,38565,51583,21001,11146 +7/10/2021,34049,12951,58046,41323,36757,50000,20045,11116 +7/11/2021,34604,13319,57769,43048,38201,52489,19505,10364 +7/12/2021,28850,10871,47184,35571,32311,40180,10506,5079 +7/13/2021,21720,8655,35732,26330,24049,29147,7657,3579 +7/14/2021,34032,12850,55192,38947,35771,48242,22796,13705 +7/15/2021,38230,14842,61322,42904,38140,50260,18877,10254 +7/16/2021,37491,14267,62030,41628,35155,46798,17866,9888 +7/17/2021,42950,16160,66452,47609,42712,59024,21586,13109 +7/18/2021,36321,13704,53524,38655,34878,46606,15360,8002 +7/19/2021,38711,13859,56955,42759,38937,49492,13025,6198 +7/20/2021,27983,10390,28127,20796,18286,19841,4206,0 +7/21/2021,41549,15769,62780,47275,44501,61445,20103,10452 +7/22/2021,49583,18789,72394,52526,47958,65221,22187,11816 +7/23/2021,45003,17201,68006,50731,45524,62268,21638,11234 +7/24/2021,55316,21327,84362,64284,57701,80249,26101,13801 +7/25/2021,52108,20014,81607,66716,61276,81571,25598,13642 +7/26/2021,29561,11066,46488,37972,34859,44835,11454,4848 +7/27/2021,31428,11943,49760,40801,37192,46157,11223,5117 +7/28/2021,61989,23719,92037,74973,70211,90461,27607,13011 +7/29/2021,52651,20667,83913,65251,58199,77190,25064,12571 +7/30/2021,67951,26486,107436,83725,76080,99307,30878,15067 +7/31/2021,55453,21659,89703,70023,61066,78914,24333,12255 +8/1/2021,60069,23520,98928,78598,69785,90596,27669,14130 +8/2/2021,35716,13528,61005,50509,44054,53926,13016,5774 +8/3/2021,34934,13705,58175,47360,41754,50259,12061,5275 +8/4/2021,60543,22910,94106,74299,66208,81988,25071,12893 +8/5/2021,72842,27877,114375,90515,79995,100502,29829,14601 +8/6/2021,66535,25517,109716,88273,75070,94792,29194,14637 +8/7/2021,70859,27262,111765,89596,77509,95318,29599,14909 +8/8/2021,62237,23242,99500,81914,70024,85478,23811,12290 +8/9/2021,43035,15709,67019,57957,49966,58862,13913,6448 +8/10/2021,53968,20337,81831,68557,61179,70702,17111,7373 +8/11/2021,55764,21178,82852,65840,57156,68586,20647,10228 +8/12/2021,50302,18634,78593,63620,53914,66764,20201,9871 +8/13/2021,66462,25667,112077,88849,73258,86816,25944,13955 +8/14/2021,67807,25795,116378,94411,78072,95173,30096,15847 +8/15/2021,46458,16835,78175,64398,52366,61680,17164,8723 +8/16/2021,61249,23217,103288,88784,74973,86069,22052,10295 +8/17/2021,39526,15128,63154,53251,45012,52112,15027,7558 +8/18/2021,45249,16745,79079,63224,51890,60660,20907,11477 +8/19/2021,58386,22678,113123,91556,74899,89667,31528,17987 +8/20/2021,55890,22295,108080,86399,70831,85527,32444,18333 +8/21/2021,54348,20759,108707,88435,72507,87516,31808,17975 +8/22/2021,51668,18875,94052,78754,64956,78078,26262,15337 +8/23/2021,35670,12619,57318,47195,39371,44546,13689,7505 +8/24/2021,37720,14192,62726,50626,42786,48806,14853,8092 +8/25/2021,45929,17806,88522,71606,59940,70443,23441,12878 +8/26/2021,41014,16547,93148,73441,59102,73113,27154,15607 +8/27/2021,46864,19639,108434,87080,70428,87360,32778,19267 +8/28/2021,45722,18881,111775,88726,71130,87321,30717,17953 +8/29/2021,41946,16313,97176,76892,60052,73536,24528,13938 +8/30/2021,33218,12908,64312,52679,42594,49593,15109,8651 +8/31/2021,29614,12497,58760,46516,38796,45742,13639,7338 +9/1/2021,47838,20268,109123,85609,70594,83502,27756,15046 +9/2/2021,30986,13503,84799,65498,52240,63528,23501,13897 +9/3/2021,46866,19855,126483,96626,75590,92786,35507,19936 +9/4/2021,37518,15763,105755,78734,58986,71474,26805,15526 +9/5/2021,28914,11033,67156,51745,40740,48765,17755,10322 +9/6/2021,22099,8448,45938,34290,26253,30263,10013,5856 +9/7/2021,17849,7552,36256,27748,21256,24172,7728,3878 +9/8/2021,44250,18212,99921,81036,65263,75507,22938,12233 +9/9/2021,22380,9587,64335,48756,36735,45212,16970,9809 +9/10/2021,30977,13699,98615,71298,52609,63570,24151,14211 +9/11/2021,31214,13577,100380,70253,50731,60369,22523,13231 +9/12/2021,26743,10598,83547,61188,44990,52753,17761,10415 +9/13/2021,25336,9504,60164,48524,37602,43033,13088,7382 +9/14/2021,25594,10491,65937,52211,40040,44903,12659,6349 diff --git a/src/main/resources/modules/lookup_tables/emergency_inhaler_albuterol_product_distribution.csv b/src/main/resources/modules/lookup_tables/emergency_inhaler_albuterol_product_distribution.csv new file mode 100644 index 0000000..58f31a2 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/emergency_inhaler_albuterol_product_distribution.csv @@ -0,0 +1,3 @@ +age,Prescribe_Albuterol_0_21_Mg_Ml_Inhalation_Solution,Prescribe_Albuterol_0_417_Mg_Ml_Inhalation_Solution,Prescribe_Albuterol_0_83_Mg_Ml_Inhalation_Solution,Prescribe_Albuterol_5_Mg_Ml_Inhalation_Solution,Prescribe_Nda020503_200_Actuat_Albuterol_0_09_Mg_Actuat_Metered_Dose_Inhaler_Proventil,Prescribe_Nda020983_200_Actuat_Albuterol_0_09_Mg_Actuat_Metered_Dose_Inhaler_Ventolin,Prescribe_Nda020983_60_Actuat_Albuterol_0_09_Mg_Actuat_Metered_Dose_Inhaler_Ventolin,Prescribe_Nda021457_200_Actuat_Albuterol_0_09_Mg_Actuat_Metered_Dose_Inhaler_Proair +0-5,0.088,0.07,0.516,0.01,0.006,0.156,0.0,0.154 +6-103,0.003,0.01,0.24,0.003,0.022,0.358,0.002,0.361 diff --git a/src/main/resources/modules/lookup_tables/emergency_inhaler_ingredient_distribution.csv b/src/main/resources/modules/lookup_tables/emergency_inhaler_ingredient_distribution.csv new file mode 100644 index 0000000..105b799 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/emergency_inhaler_ingredient_distribution.csv @@ -0,0 +1,3 @@ +age,Prescribe_Albuterol,Prescribe_Levalbuterol +0-5,1.0,0.0 +6-103,0.979,0.021 diff --git a/src/main/resources/modules/lookup_tables/emergency_inhaler_levalbuterol_product_distribution.csv b/src/main/resources/modules/lookup_tables/emergency_inhaler_levalbuterol_product_distribution.csv new file mode 100644 index 0000000..f8e9329 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/emergency_inhaler_levalbuterol_product_distribution.csv @@ -0,0 +1,2 @@ +age,Prescribe_200_Actuat_Levalbuterol_0_045_Mg_Actuat_Metered_Dose_Inhaler,Prescribe_200_Actuat_Levalbuterol_0_045_Mg_Actuat_Metered_Dose_Inhaler_Xopenex,Prescribe_Levalbuterol_0_417_Mg_Ml_Inhalation_Solution +6-103,0.328,0.2,0.472 diff --git a/src/main/resources/modules/lookup_tables/hiv_care.csv b/src/main/resources/modules/lookup_tables/hiv_care.csv new file mode 100644 index 0000000..4971222 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/hiv_care.csv @@ -0,0 +1,57 @@ +time,age,Continuous_ART,Non_Continuous_ART +0-536457600922,0-150,0.0,1.0 +536457600922-1230768000921,13-24,0.234,0.766 +536457600922-1230768000921,25-34,0.284,0.716 +536457600922-1230768000921,35-44,0.351,0.649 +536457600922-1230768000921,45-54,0.392,0.608 +536457600922-1230768000921,55-150,0.411,0.589 +1230768000922-1262304000921,13-24,0.297,0.703 +1230768000922-1262304000921,25-34,0.358,0.642 +1230768000922-1262304000921,35-44,0.423,0.577 +1230768000922-1262304000921,45-54,0.462,0.538 +1230768000922-1262304000921,55-150,0.485,0.515 +1262304000922-1293840000921,13-24,0.337,0.663 +1262304000922-1293840000921,25-34,0.397,0.603 +1262304000922-1293840000921,35-44,0.454,0.546 +1262304000922-1293840000921,45-54,0.497,0.503 +1262304000922-1293840000921,55-150,0.513,0.487 +1293840000922-1325376000921,13-24,0.337,0.663 +1293840000922-1325376000921,25-34,0.397,0.603 +1293840000922-1325376000921,35-44,0.454,0.546 +1293840000922-1325376000921,45-54,0.497,0.503 +1293840000922-1325376000921,55-150,0.513,0.487 +1325376000922-1356998400921,13-24,0.437,0.563 +1325376000922-1356998400921,25-34,0.486,0.514 +1325376000922-1356998400921,35-44,0.529,0.471 +1325376000922-1356998400921,45-54,0.575,0.425 +1325376000922-1356998400921,55-150,0.583,0.417 +1356998400922-1388534400921,13-24,0.481,0.519 +1356998400922-1388534400921,25-34,0.523,0.477 +1356998400922-1388534400921,35-44,0.562,0.438 +1356998400922-1388534400921,45-54,0.604,0.396 +1356998400922-1388534400921,55-150,0.611,0.389 +1388534400922-1420070400921,13-24,0.512,0.488 +1388534400922-1420070400921,25-34,0.542,0.458 +1388534400922-1420070400921,35-44,0.577,0.423 +1388534400922-1420070400921,45-54,0.624,0.376 +1388534400922-1420070400921,55-150,0.628,0.372 +1420070400922-1451606400921,13-24,0.538,0.462 +1420070400922-1451606400921,25-34,0.566,0.434 +1420070400922-1451606400921,35-44,0.591,0.409 +1420070400922-1451606400921,45-54,0.638,0.362 +1420070400922-1451606400921,55-150,0.642,0.358 +1451606400922-1483228800921,13-24,0.538,0.462 +1451606400922-1483228800921,25-34,0.566,0.434 +1451606400922-1483228800921,35-44,0.591,0.409 +1451606400922-1483228800921,45-54,0.638,0.362 +1451606400922-1483228800921,55-150,0.642,0.358 +1483228800922-1514764800921,13-24,0.603,0.397 +1483228800922-1514764800921,25-34,0.608,0.392 +1483228800922-1514764800921,35-44,0.624,0.376 +1483228800922-1514764800921,45-54,0.662,0.338 +1483228800922-1514764800921,55-150,0.67,0.33 +1514764800922-1577836800921,13-24,0.633,0.367 +1514764800922-1577836800921,25-34,0.626,0.374 +1514764800922-1577836800921,35-44,0.633,0.367 +1514764800922-1577836800921,45-54,0.666,0.334 +1514764800922-1577836800921,55-150,0.673,0.327 \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/hiv_diagnosis_early.csv b/src/main/resources/modules/lookup_tables/hiv_diagnosis_early.csv new file mode 100644 index 0000000..c5a2f85 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/hiv_diagnosis_early.csv @@ -0,0 +1,501 @@ +time,age,gender,Diagnosed_Early_Years,Wait_Until_Next_Diagnosis_Check +283996800922-347155200921,0-150,M,0.000000248,0.999999752 +283996800922-347155200921,0-150,F,0.000000000,1.000000000 +347155200922-410227200921,0-24,M,0.000000460,0.999999540 +347155200922-410227200921,0-24,F,0.000000030,0.999999970 +347155200922-410227200921,25-44,M,0.000011230,0.999988770 +347155200922-410227200921,25-44,F,0.000000610,0.999999390 +347155200922-410227200921,45-150,M,0.000001870,0.999998130 +347155200922-410227200921,45-150,F,0.000000090,0.999999910 +410227200922-504921600921,0-12,M,0.000005600,0.999994400 +410227200922-504921600921,0-12,F,0.000004900,0.999995100 +410227200922-504921600921,13-19,M,0.000004600,0.999995400 +410227200922-504921600921,13-19,F,0.000000300,0.999999700 +410227200922-504921600921,20-29,M,0.000153000,0.999847000 +410227200922-504921600921,20-29,F,0.000011000,0.999989000 +410227200922-504921600921,30-39,M,0.000451000,0.999549000 +410227200922-504921600921,30-39,F,0.000031000,0.999969000 +410227200922-504921600921,40-49,M,0.000280000,0.999720000 +410227200922-504921600921,40-49,F,0.000019000,0.999981000 +410227200922-504921600921,50-150,M,0.000054000,0.999946000 +410227200922-504921600921,50-150,F,0.000003000,0.999997000 +504921600922-536457600921,0-12,M,0.000004500,0.999995500 +504921600922-536457600921,0-12,F,0.000004000,0.999996000 +504921600922-536457600921,13-19,M,0.000003700,0.999996300 +504921600922-536457600921,13-19,F,0.000000300,0.999999700 +504921600922-536457600921,20-29,M,0.000125000,0.999875000 +504921600922-536457600921,20-29,F,0.000009600,0.999990400 +504921600922-536457600921,30-39,M,0.000368000,0.999632000 +504921600922-536457600921,30-39,F,0.000028000,0.999972000 +504921600922-536457600921,40-49,M,0.000228000,0.999772000 +504921600922-536457600921,40-49,F,0.000017000,0.999983000 +504921600922-536457600921,50-150,M,0.000044000,0.999956000 +504921600922-536457600921,50-150,F,0.000002700,0.999997300 +536457600922-567993600921,0-12,M,0.000007800,0.999992200 +536457600922-567993600921,0-12,F,0.000007300,0.999992700 +536457600922-567993600921,13-19,M,0.000006000,0.999994000 +536457600922-567993600921,13-19,F,0.000000500,0.999999500 +536457600922-567993600921,20-29,M,0.000201000,0.999799000 +536457600922-567993600921,20-29,F,0.000017000,0.999983000 +536457600922-567993600921,30-39,M,0.000593000,0.999407000 +536457600922-567993600921,30-39,F,0.000050000,0.999950000 +536457600922-567993600921,40-49,M,0.000368000,0.999632000 +536457600922-567993600921,40-49,F,0.000031000,0.999969000 +536457600922-567993600921,50-150,M,0.000071000,0.999929000 +536457600922-567993600921,50-150,F,0.000004900,0.999995100 +567993600922-599616000921,0-12,M,0.000015000,0.999985000 +567993600922-599616000921,0-12,F,0.000012000,0.999988000 +567993600922-599616000921,13-19,M,0.000008800,0.999991200 +567993600922-599616000921,13-19,F,0.000001100,0.999998900 +567993600922-599616000921,20-29,M,0.000295000,0.999705000 +567993600922-599616000921,20-29,F,0.000034000,0.999966000 +567993600922-599616000921,30-39,M,0.000869000,0.999131000 +567993600922-599616000921,30-39,F,0.000098000,0.999902000 +567993600922-599616000921,40-49,M,0.000540000,0.999460000 +567993600922-599616000921,40-49,F,0.000059000,0.999941000 +567993600922-599616000921,50-150,M,0.000103000,0.999897000 +567993600922-599616000921,50-150,F,0.000009500,0.999990500 +599616000922-631152000921,0-12,M,0.000015000,0.999985000 +599616000922-631152000921,0-12,F,0.000014000,0.999986000 +599616000922-631152000921,13-19,M,0.000009600,0.999990400 +599616000922-631152000921,13-19,F,0.000001200,0.999998800 +599616000922-631152000921,20-29,M,0.000322000,0.999678000 +599616000922-631152000921,20-29,F,0.000038000,0.999962000 +599616000922-631152000921,30-39,M,0.000950000,0.999050000 +599616000922-631152000921,30-39,F,0.000109000,0.999891000 +599616000922-631152000921,40-49,M,0.000590000,0.999410000 +599616000922-631152000921,40-49,F,0.000066000,0.999934000 +599616000922-631152000921,50-150,M,0.000113000,0.999887000 +599616000922-631152000921,50-150,F,0.000011000,0.999989000 +631152000922-662688000921,0-12,M,0.000015614,0.999984386 +631152000922-662688000921,0-12,F,0.000015835,0.999984165 +631152000922-662688000921,13-24,M,0.000071865,0.999928135 +631152000922-662688000921,13-24,F,0.000009841,0.999990159 +631152000922-662688000921,25-34,M,0.000698902,0.999301098 +631152000922-662688000921,25-34,F,0.000090595,0.999909405 +631152000922-662688000921,35-44,M,0.000735117,0.999264883 +631152000922-662688000921,35-44,F,0.000093345,0.999906655 +631152000922-662688000921,45-54,M,0.000390251,0.999609749 +631152000922-662688000921,45-54,F,0.000048281,0.999951719 +631152000922-662688000921,55-150,M,0.000094260,0.999905740 +631152000922-662688000921,55-150,F,0.000009247,0.999990753 +662688000922-694224000921,0-12,M,0.000015000,0.999985000 +662688000922-694224000921,0-12,F,0.000013497,0.999986503 +662688000922-694224000921,13-24,M,0.000076000,0.999924000 +662688000922-694224000921,13-24,F,0.000011562,0.999988438 +662688000922-694224000921,25-34,M,0.000726000,0.999274000 +662688000922-694224000921,25-34,F,0.000106657,0.999893343 +662688000922-694224000921,35-44,M,0.000781000,0.999219000 +662688000922-694224000921,35-44,F,0.000106267,0.999893733 +662688000922-694224000921,45-54,M,0.000409000,0.999591000 +662688000922-694224000921,45-54,F,0.000054422,0.999945578 +662688000922-694224000921,55-150,M,0.000098000,0.999902000 +662688000922-694224000921,55-150,F,0.000010759,0.999989241 +694224000922-725846400921,0-12,M,0.000015410,0.999984590 +694224000922-725846400921,0-12,F,0.000016203,0.999983797 +694224000922-725846400921,13-24,M,0.000055079,0.999944921 +694224000922-725846400921,13-24,F,0.000020520,0.999979480 +694224000922-725846400921,25-34,M,0.000755041,0.999244959 +694224000922-725846400921,25-34,F,0.000118072,0.999881928 +694224000922-725846400921,35-44,M,0.000750870,0.999249130 +694224000922-725846400921,35-44,F,0.000114656,0.999885344 +694224000922-725846400921,45-54,M,0.000378879,0.999621121 +694224000922-725846400921,45-54,F,0.000056408,0.999943592 +694224000922-725846400921,55-150,M,0.000099107,0.999900893 +694224000922-725846400921,55-150,F,0.000011711,0.999988289 +725846400922-757382400921,0-12,M,0.000018448,0.999981552 +725846400922-757382400921,0-12,F,0.000021000,0.999979000 +725846400922-757382400921,13-24,M,0.000140875,0.999859125 +725846400922-757382400921,13-24,F,0.000019351,0.999980649 +725846400922-757382400921,25-34,M,0.001629529,0.998370471 +725846400922-757382400921,25-34,F,0.000061553,0.999938447 +725846400922-757382400921,35-44,M,0.001644479,0.998355521 +725846400922-757382400921,35-44,F,0.000310264,0.999689736 +725846400922-757382400921,45-54,M,0.000807996,0.999192004 +725846400922-757382400921,45-54,F,0.000305534,0.999694466 +725846400922-757382400921,55-150,M,0.000211807,0.999788193 +725846400922-757382400921,55-150,F,0.000146334,0.999853666 +757382400922-788918400921,0-12,M,0.000019731,0.999980269 +757382400922-788918400921,0-12,F,0.000021347,0.999978653 +757382400922-788918400921,13-24,M,0.000076000,0.999924000 +757382400922-788918400921,13-24,F,0.000043000,0.999957000 +757382400922-788918400921,25-29,M,0.000696000,0.999304000 +757382400922-788918400921,25-29,F,0.000207000,0.999793000 +757382400922-788918400921,30-34,M,0.001191000,0.998809000 +757382400922-788918400921,30-34,F,0.000268000,0.999732000 +757382400922-788918400921,35-39,M,0.001209000,0.998791000 +757382400922-788918400921,35-39,F,0.000257000,0.999743000 +757382400922-788918400921,40-44,M,0.001069000,0.998931000 +757382400922-788918400921,40-44,F,0.000204000,0.999796000 +757382400922-788918400921,45-49,M,0.000727000,0.999273000 +757382400922-788918400921,45-49,F,0.000121000,0.999879000 +757382400922-788918400921,50-54,M,0.000484000,0.999516000 +757382400922-788918400921,50-54,F,0.000074000,0.999926000 +757382400922-788918400921,55-59,M,0.000307000,0.999693000 +757382400922-788918400921,55-59,F,0.000053000,0.999947000 +757382400922-788918400921,60-64,M,0.000190000,0.999810000 +757382400922-788918400921,60-64,F,0.000030000,0.999970000 +757382400922-788918400921,65-69,M,0.000087000,0.999913000 +757382400922-788918400921,65-69,F,0.000016000,0.999984000 +757382400922-788918400921,70-150,M,0.000029000,0.999971000 +757382400922-788918400921,70-150,F,0.000005000,0.999995000 +788918400922-820454400921,0-12,M,0.000014871,0.999985129 +788918400922-820454400921,0-12,F,0.000016734,0.999983266 +788918400922-820454400921,13-24,M,0.000069000,0.999931000 +788918400922-820454400921,13-24,F,0.000044000,0.999956000 +788918400922-820454400921,25-29,M,0.000635000,0.999365000 +788918400922-820454400921,25-29,F,0.000205000,0.999795000 +788918400922-820454400921,30-34,M,0.001105000,0.998895000 +788918400922-820454400921,30-34,F,0.000271000,0.999729000 +788918400922-820454400921,35-39,M,0.001111000,0.998889000 +788918400922-820454400921,35-39,F,0.000267000,0.999733000 +788918400922-820454400921,40-44,M,0.000987000,0.999013000 +788918400922-820454400921,40-44,F,0.000212000,0.999788000 +788918400922-820454400921,45-49,M,0.000693000,0.999307000 +788918400922-820454400921,45-49,F,0.000119000,0.999881000 +788918400922-820454400921,50-54,M,0.000458000,0.999542000 +788918400922-820454400921,50-54,F,0.000076000,0.999924000 +788918400922-820454400921,55-59,M,0.000292000,0.999708000 +788918400922-820454400921,55-59,F,0.000049000,0.999951000 +788918400922-820454400921,60-64,M,0.000184000,0.999816000 +788918400922-820454400921,60-64,F,0.000030000,0.999970000 +788918400922-820454400921,65-69,M,0.000092000,0.999908000 +788918400922-820454400921,65-69,F,0.000018000,0.999982000 +788918400922-820454400921,70-150,M,0.000026000,0.999974000 +788918400922-820454400921,70-150,F,0.000005000,0.999995000 +820454400922-852076800921,0-12,M,0.000013040,0.999986960 +820454400922-852076800921,0-12,F,0.000013239,0.999986761 +820454400922-852076800921,13-24,M,0.000056000,0.999944000 +820454400922-852076800921,13-24,F,0.000042000,0.999958000 +820454400922-852076800921,25-29,M,0.000497000,0.999503000 +820454400922-852076800921,25-29,F,0.000185000,0.999815000 +820454400922-852076800921,30-34,M,0.000948000,0.999052000 +820454400922-852076800921,30-34,F,0.000261000,0.999739000 +820454400922-852076800921,35-39,M,0.000949000,0.999051000 +820454400922-852076800921,35-39,F,0.000252000,0.999748000 +820454400922-852076800921,40-44,M,0.000828000,0.999172000 +820454400922-852076800921,40-44,F,0.000197000,0.999803000 +820454400922-852076800921,45-49,M,0.000597000,0.999403000 +820454400922-852076800921,45-49,F,0.000124000,0.999876000 +820454400922-852076800921,50-54,M,0.000398000,0.999602000 +820454400922-852076800921,50-54,F,0.000077000,0.999923000 +820454400922-852076800921,55-59,M,0.000259000,0.999741000 +820454400922-852076800921,55-59,F,0.000051000,0.999949000 +820454400922-852076800921,60-64,M,0.000154000,0.999846000 +820454400922-852076800921,60-64,F,0.000029000,0.999971000 +820454400922-852076800921,65-69,M,0.000086000,0.999914000 +820454400922-852076800921,65-69,F,0.000016000,0.999984000 +820454400922-852076800921,70-150,M,0.000029000,0.999971000 +820454400922-852076800921,70-150,F,0.000005000,0.999995000 +852076800922-883612800921,0-12,M,0.000009721,0.999990279 +852076800922-883612800921,0-12,F,0.000008646,0.999991354 +852076800922-883612800921,13-24,M,0.000045000,0.999955000 +852076800922-883612800921,13-24,F,0.000034000,0.999966000 +852076800922-883612800921,25-29,M,0.000386000,0.999614000 +852076800922-883612800921,25-29,F,0.000155000,0.999845000 +852076800922-883612800921,30-34,M,0.000750000,0.999250000 +852076800922-883612800921,30-34,F,0.000219000,0.999781000 +852076800922-883612800921,35-39,M,0.000739000,0.999261000 +852076800922-883612800921,35-39,F,0.000217000,0.999783000 +852076800922-883612800921,40-44,M,0.000645000,0.999355000 +852076800922-883612800921,40-44,F,0.000174000,0.999826000 +852076800922-883612800921,45-49,M,0.000493000,0.999507000 +852076800922-883612800921,45-49,F,0.000115000,0.999885000 +852076800922-883612800921,50-54,M,0.000313000,0.999687000 +852076800922-883612800921,50-54,F,0.000067000,0.999933000 +852076800922-883612800921,55-59,M,0.000217000,0.999783000 +852076800922-883612800921,55-59,F,0.000044000,0.999956000 +852076800922-883612800921,60-64,M,0.000137000,0.999863000 +852076800922-883612800921,60-64,F,0.000031000,0.999969000 +852076800922-883612800921,65-69,M,0.000080000,0.999920000 +852076800922-883612800921,65-69,F,0.000016000,0.999984000 +852076800922-883612800921,70-150,M,0.000024000,0.999976000 +852076800922-883612800921,70-150,F,0.000006000,0.999994000 +883612800922-915148800921,0-12,M,0.000007172,0.999992828 +883612800922-915148800921,0-12,F,0.000007604,0.999992396 +883612800922-915148800921,13-24,M,0.000038000,0.999962000 +883612800922-915148800921,13-24,F,0.000033000,0.999967000 +883612800922-915148800921,25-29,M,0.000309000,0.999691000 +883612800922-915148800921,25-29,F,0.000129000,0.999871000 +883612800922-915148800921,30-34,M,0.000618000,0.999382000 +883612800922-915148800921,30-34,F,0.000190000,0.999810000 +883612800922-915148800921,35-39,M,0.000649000,0.999351000 +883612800922-915148800921,35-39,F,0.000189000,0.999811000 +883612800922-915148800921,40-44,M,0.000537000,0.999463000 +883612800922-915148800921,40-44,F,0.000156000,0.999844000 +883612800922-915148800921,45-49,M,0.000434000,0.999566000 +883612800922-915148800921,45-49,F,0.000103000,0.999897000 +883612800922-915148800921,50-54,M,0.000284000,0.999716000 +883612800922-915148800921,50-54,F,0.000066000,0.999934000 +883612800922-915148800921,55-59,M,0.000185000,0.999815000 +883612800922-915148800921,55-59,F,0.000044000,0.999956000 +883612800922-915148800921,60-64,M,0.000123000,0.999877000 +883612800922-915148800921,60-64,F,0.000028000,0.999972000 +883612800922-915148800921,65-69,M,0.000069000,0.999931000 +883612800922-915148800921,65-69,F,0.000017000,0.999983000 +883612800922-915148800921,70-150,M,0.000024000,0.999976000 +883612800922-915148800921,70-150,F,0.000006000,0.999994000 +915148800922-946684800921,0-12,M,0.000004689,0.999995311 +915148800922-946684800921,0-12,F,0.000005431,0.999994569 +915148800922-946684800921,13-24,M,0.000038000,0.999962000 +915148800922-946684800921,13-24,F,0.000029000,0.999971000 +915148800922-946684800921,25-29,M,0.000282000,0.999718000 +915148800922-946684800921,25-29,F,0.000131000,0.999869000 +915148800922-946684800921,30-34,M,0.000557000,0.999443000 +915148800922-946684800921,30-34,F,0.000179000,0.999821000 +915148800922-946684800921,35-39,M,0.000624000,0.999376000 +915148800922-946684800921,35-39,F,0.000184000,0.999816000 +915148800922-946684800921,40-44,M,0.000528000,0.999472000 +915148800922-946684800921,40-44,F,0.000150000,0.999850000 +915148800922-946684800921,45-49,M,0.000419000,0.999581000 +915148800922-946684800921,45-49,F,0.000107000,0.999893000 +915148800922-946684800921,50-54,M,0.000270000,0.999730000 +915148800922-946684800921,50-54,F,0.000067000,0.999933000 +915148800922-946684800921,55-59,M,0.000180000,0.999820000 +915148800922-946684800921,55-59,F,0.000044000,0.999956000 +915148800922-946684800921,60-64,M,0.000117000,0.999883000 +915148800922-946684800921,60-64,F,0.000028000,0.999972000 +915148800922-946684800921,65-69,M,0.000070000,0.999930000 +915148800922-946684800921,65-69,F,0.000020000,0.999980000 +915148800922-946684800921,70-150,M,0.000024000,0.999976000 +915148800922-946684800921,70-150,F,0.000005000,0.999995000 +946684800922-978307200921,0-12,M,0.000003256,0.999996744 +946684800922-978307200921,0-12,F,0.000004279,0.999995721 +946684800922-978307200921,13-24,M,0.000040000,0.999960000 +946684800922-978307200921,13-24,F,0.000031000,0.999969000 +946684800922-978307200921,25-34,M,0.000340000,0.999660000 +946684800922-978307200921,25-34,F,0.000147000,0.999853000 +946684800922-978307200921,35-44,M,0.000534000,0.999466000 +946684800922-978307200921,35-44,F,0.000171000,0.999829000 +946684800922-978307200921,45-54,M,0.000330000,0.999670000 +946684800922-978307200921,45-54,F,0.000093000,0.999907000 +946684800922-978307200921,55-150,M,0.000087000,0.999913000 +946684800922-978307200921,55-150,F,0.000021000,0.999979000 +978307200922-1009843200921,0-12,M,0.000003476,0.999996524 +978307200922-1009843200921,0-12,F,0.000003213,0.999996787 +978307200922-1009843200921,13-24,M,0.000040000,0.999960000 +978307200922-1009843200921,13-24,F,0.000029000,0.999971000 +978307200922-1009843200921,25-34,M,0.000313000,0.999687000 +978307200922-1009843200921,25-34,F,0.000138000,0.999862000 +978307200922-1009843200921,35-44,M,0.000507000,0.999493000 +978307200922-1009843200921,35-44,F,0.000166000,0.999834000 +978307200922-1009843200921,45-54,M,0.000321000,0.999679000 +978307200922-1009843200921,45-54,F,0.000095000,0.999905000 +978307200922-1009843200921,55-150,M,0.000087000,0.999913000 +978307200922-1009843200921,55-150,F,0.000019000,0.999981000 +1009843200922-1041379200921,0-12,M,0.000001572,0.999998428 +1009843200922-1041379200921,0-12,F,0.000001647,0.999998353 +1009843200922-1041379200921,13-24,M,0.000043000,0.999957000 +1009843200922-1041379200921,13-24,F,0.000030000,0.999970000 +1009843200922-1041379200921,25-34,M,0.000296000,0.999704000 +1009843200922-1041379200921,25-34,F,0.000132000,0.999868000 +1009843200922-1041379200921,35-44,M,0.000508000,0.999492000 +1009843200922-1041379200921,35-44,F,0.000162000,0.999838000 +1009843200922-1041379200921,45-54,M,0.000322000,0.999678000 +1009843200922-1041379200921,45-54,F,0.000099000,0.999901000 +1009843200922-1041379200921,55-150,M,0.000085000,0.999915000 +1009843200922-1041379200921,55-150,F,0.000022000,0.999978000 +1041379200922-1072915200921,0-12,M,0.000001353,0.999998647 +1041379200922-1072915200921,0-12,F,0.000001417,0.999998583 +1041379200922-1072915200921,13-24,M,0.000049000,0.999951000 +1041379200922-1072915200921,13-24,F,0.000029000,0.999971000 +1041379200922-1072915200921,25-34,M,0.000287000,0.999713000 +1041379200922-1072915200921,25-34,F,0.000133000,0.999867000 +1041379200922-1072915200921,35-44,M,0.000507000,0.999493000 +1041379200922-1072915200921,35-44,F,0.000175000,0.999825000 +1041379200922-1072915200921,45-54,M,0.000328000,0.999672000 +1041379200922-1072915200921,45-54,F,0.000102000,0.999898000 +1041379200922-1072915200921,55-150,M,0.000086000,0.999914000 +1041379200922-1072915200921,55-150,F,0.000023000,0.999977000 +1072915200922-1104537600921,0-12,M,0.000001017,0.999998983 +1072915200922-1104537600921,0-12,F,0.000001065,0.999998935 +1072915200922-1104537600921,13-24,M,0.000053000,0.999947000 +1072915200922-1104537600921,13-24,F,0.000027000,0.999973000 +1072915200922-1104537600921,25-34,M,0.000282000,0.999718000 +1072915200922-1104537600921,25-34,F,0.000123000,0.999877000 +1072915200922-1104537600921,35-44,M,0.000478000,0.999522000 +1072915200922-1104537600921,35-44,F,0.000163000,0.999837000 +1072915200922-1104537600921,45-54,M,0.000315000,0.999685000 +1072915200922-1104537600921,45-54,F,0.000104000,0.999896000 +1072915200922-1104537600921,55-150,M,0.000089000,0.999911000 +1072915200922-1104537600921,55-150,F,0.000023000,0.999977000 +1104537600922-1136073600921,0-12,M,0.000001018,0.999998982 +1104537600922-1136073600921,0-12,F,0.000001066,0.999998934 +1104537600922-1136073600921,13-24,M,0.000055000,0.999945000 +1104537600922-1136073600921,13-24,F,0.000027000,0.999973000 +1104537600922-1136073600921,25-34,M,0.000257000,0.999743000 +1104537600922-1136073600921,25-34,F,0.000112000,0.999888000 +1104537600922-1136073600921,35-44,M,0.000440000,0.999560000 +1104537600922-1136073600921,35-44,F,0.000150000,0.999850000 +1104537600922-1136073600921,45-54,M,0.000308000,0.999692000 +1104537600922-1136073600921,45-54,F,0.000101000,0.999899000 +1104537600922-1136073600921,55-150,M,0.000083000,0.999917000 +1104537600922-1136073600921,55-150,F,0.000023000,0.999977000 +1136073600922-1167609600921,0-12,M,0.000000715,0.999999285 +1136073600922-1167609600921,0-12,F,0.000000748,0.999999252 +1136073600922-1167609600921,13-24,M,0.000053000,0.999947000 +1136073600922-1167609600921,13-24,F,0.000024000,0.999976000 +1136073600922-1167609600921,25-34,M,0.000243000,0.999757000 +1136073600922-1167609600921,25-34,F,0.000104000,0.999896000 +1136073600922-1167609600921,35-44,M,0.000416000,0.999584000 +1136073600922-1167609600921,35-44,F,0.000141000,0.999859000 +1136073600922-1167609600921,45-54,M,0.000285000,0.999715000 +1136073600922-1167609600921,45-54,F,0.000100000,0.999900000 +1136073600922-1167609600921,55-150,M,0.000085000,0.999915000 +1136073600922-1167609600921,55-150,F,0.000024000,0.999976000 +1167609600922-1199145600921,0-12,M,0.000000525,0.999999475 +1167609600922-1199145600921,0-12,F,0.000000549,0.999999451 +1167609600922-1199145600921,13-24,M,0.000062000,0.999938000 +1167609600922-1199145600921,13-24,F,0.000024000,0.999976000 +1167609600922-1199145600921,25-34,M,0.000239000,0.999761000 +1167609600922-1199145600921,25-34,F,0.000097000,0.999903000 +1167609600922-1199145600921,35-44,M,0.000379000,0.999621000 +1167609600922-1199145600921,35-44,F,0.000138000,0.999862000 +1167609600922-1199145600921,45-54,M,0.000285000,0.999715000 +1167609600922-1199145600921,45-54,F,0.000098000,0.999902000 +1167609600922-1199145600921,55-150,M,0.000078000,0.999922000 +1167609600922-1199145600921,55-150,F,0.000025000,0.999975000 +1199145600922-1230768000921,0-12,M,0.000000559,0.999999441 +1199145600922-1230768000921,0-12,F,0.000000584,0.999999416 +1199145600922-1230768000921,13-24,M,0.000065000,0.999935000 +1199145600922-1230768000921,13-24,F,0.000022000,0.999978000 +1199145600922-1230768000921,25-34,M,0.000238000,0.999762000 +1199145600922-1230768000921,25-34,F,0.000096000,0.999904000 +1199145600922-1230768000921,35-44,M,0.000360000,0.999640000 +1199145600922-1230768000921,35-44,F,0.000129000,0.999871000 +1199145600922-1230768000921,45-54,M,0.000280000,0.999720000 +1199145600922-1230768000921,45-54,F,0.000095000,0.999905000 +1199145600922-1230768000921,55-150,M,0.000083000,0.999917000 +1199145600922-1230768000921,55-150,F,0.000024000,0.999976000 +1230768000922-1262304000921,0-12,M,0.000000186,0.999999814 +1230768000922-1262304000921,0-12,F,0.000000194,0.999999806 +1230768000922-1262304000921,13-24,M,0.000072000,0.999928000 +1230768000922-1262304000921,13-24,F,0.000022000,0.999978000 +1230768000922-1262304000921,25-34,M,0.000237000,0.999763000 +1230768000922-1262304000921,25-34,F,0.000084000,0.999916000 +1230768000922-1262304000921,35-44,M,0.000323000,0.999677000 +1230768000922-1262304000921,35-44,F,0.000118000,0.999882000 +1230768000922-1262304000921,45-54,M,0.000279000,0.999721000 +1230768000922-1262304000921,45-54,F,0.000091000,0.999909000 +1230768000922-1262304000921,55-150,M,0.000079000,0.999921000 +1230768000922-1262304000921,55-150,F,0.000024000,0.999976000 +1262304000922-1293840000921,0-12,M,0.000000369,0.999999631 +1262304000922-1293840000921,0-12,F,0.000000386,0.999999614 +1262304000922-1293840000921,13-24,M,0.000076000,0.999924000 +1262304000922-1293840000921,13-24,F,0.000019000,0.999981000 +1262304000922-1293840000921,25-34,M,0.000226000,0.999774000 +1262304000922-1293840000921,25-34,F,0.000072000,0.999928000 +1262304000922-1293840000921,35-44,M,0.000285000,0.999715000 +1262304000922-1293840000921,35-44,F,0.000105000,0.999895000 +1262304000922-1293840000921,45-54,M,0.000249000,0.999751000 +1262304000922-1293840000921,45-54,F,0.000081000,0.999919000 +1262304000922-1293840000921,55-150,M,0.000072000,0.999928000 +1262304000922-1293840000921,55-150,F,0.000021000,0.999979000 +1293840000922-1325376000921,0-12,M,0.000000296,0.999999704 +1293840000922-1325376000921,0-12,F,0.000000309,0.999999691 +1293840000922-1325376000921,13-24,M,0.000074000,0.999926000 +1293840000922-1325376000921,13-24,F,0.000019000,0.999981000 +1293840000922-1325376000921,25-34,M,0.000214000,0.999786000 +1293840000922-1325376000921,25-34,F,0.000069000,0.999931000 +1293840000922-1325376000921,35-44,M,0.000253000,0.999747000 +1293840000922-1325376000921,35-44,F,0.000090000,0.999910000 +1293840000922-1325376000921,45-54,M,0.000231000,0.999769000 +1293840000922-1325376000921,45-54,F,0.000076000,0.999924000 +1293840000922-1325376000921,55-150,M,0.000069000,0.999931000 +1293840000922-1325376000921,55-150,F,0.000021000,0.999979000 +1325376000922-1356998400921,0-12,M,0.000000185,0.999999815 +1325376000922-1356998400921,0-12,F,0.000000193,0.999999807 +1325376000922-1356998400921,13-24,M,0.000072000,0.999928000 +1325376000922-1356998400921,13-24,F,0.000014000,0.999986000 +1325376000922-1356998400921,25-34,M,0.000219000,0.999781000 +1325376000922-1356998400921,25-34,F,0.000063000,0.999937000 +1325376000922-1356998400921,35-44,M,0.000228000,0.999772000 +1325376000922-1356998400921,35-44,F,0.000087000,0.999913000 +1325376000922-1356998400921,45-54,M,0.000224000,0.999776000 +1325376000922-1356998400921,45-54,F,0.000073000,0.999927000 +1325376000922-1356998400921,55-150,M,0.000067000,0.999933000 +1325376000922-1356998400921,55-150,F,0.000022000,0.999978000 +1356998400922-1388534400921,0-12,M,0.000000149,0.999999851 +1356998400922-1388534400921,0-12,F,0.000000155,0.999999845 +1356998400922-1388534400921,13-24,M,0.000075000,0.999925000 +1356998400922-1388534400921,13-24,F,0.000017000,0.999983000 +1356998400922-1388534400921,25-34,M,0.000211000,0.999789000 +1356998400922-1388534400921,25-34,F,0.000054000,0.999946000 +1356998400922-1388534400921,35-44,M,0.000214000,0.999786000 +1356998400922-1388534400921,35-44,F,0.000077000,0.999923000 +1356998400922-1388534400921,45-54,M,0.000209000,0.999791000 +1356998400922-1388534400921,45-54,F,0.000070000,0.999930000 +1356998400922-1388534400921,55-150,M,0.000067000,0.999933000 +1356998400922-1388534400921,55-150,F,0.000021000,0.999979000 +1388534400922-1420070400921,0-12,M,0.000001302,0.999998698 +1388534400922-1420070400921,0-12,F,0.000001359,0.999998641 +1388534400922-1420070400921,13-24,M,0.000048000,0.999952000 +1388534400922-1420070400921,13-24,F,0.000011000,0.999989000 +1388534400922-1420070400921,25-34,M,0.000173000,0.999827000 +1388534400922-1420070400921,25-34,F,0.000045000,0.999955000 +1388534400922-1420070400921,35-44,M,0.000174000,0.999826000 +1388534400922-1420070400921,35-44,F,0.000067000,0.999933000 +1388534400922-1420070400921,45-54,M,0.000173000,0.999827000 +1388534400922-1420070400921,45-54,F,0.000057000,0.999943000 +1388534400922-1420070400921,55-150,M,0.000058000,0.999942000 +1388534400922-1420070400921,55-150,F,0.000018000,0.999982000 +1420070400922-1451606400921,0-12,M,0.000000775,0.999999225 +1420070400922-1451606400921,0-12,F,0.000000742,0.999999258 +1420070400922-1451606400921,13-24,M,0.000047000,0.999953000 +1420070400922-1451606400921,13-24,F,0.000010000,0.999990000 +1420070400922-1451606400921,25-34,M,0.000174000,0.999826000 +1420070400922-1451606400921,25-34,F,0.000044000,0.999956000 +1420070400922-1451606400921,35-44,M,0.000161000,0.999839000 +1420070400922-1451606400921,35-44,F,0.000062000,0.999938000 +1420070400922-1451606400921,45-54,M,0.000165000,0.999835000 +1420070400922-1451606400921,45-54,F,0.000055000,0.999945000 +1420070400922-1451606400921,55-150,M,0.000055000,0.999945000 +1420070400922-1451606400921,55-150,F,0.000018000,0.999982000 +1451606400922-1483228800921,0-12,M,0.000000705,0.999999295 +1451606400922-1483228800921,0-12,F,0.000000736,0.999999264 +1451606400922-1483228800921,13-24,M,0.000046000,0.999954000 +1451606400922-1483228800921,13-24,F,0.000011000,0.999989000 +1451606400922-1483228800921,25-34,M,0.000176000,0.999824000 +1451606400922-1483228800921,25-34,F,0.000040000,0.999960000 +1451606400922-1483228800921,35-44,M,0.000159000,0.999841000 +1451606400922-1483228800921,35-44,F,0.000060000,0.999940000 +1451606400922-1483228800921,45-54,M,0.000157000,0.999843000 +1451606400922-1483228800921,45-54,F,0.000049000,0.999951000 +1451606400922-1483228800921,55-150,M,0.000056000,0.999944000 +1451606400922-1483228800921,55-150,F,0.000018000,0.999982000 +1483228800922-1514764800921,0-12,M,0.000000660,0.999999340 +1483228800922-1514764800921,0-12,F,0.000000631,0.999999369 +1483228800922-1514764800921,13-24,M,0.000043000,0.999957000 +1483228800922-1514764800921,13-24,F,0.000009000,0.999991000 +1483228800922-1514764800921,25-34,M,0.000170000,0.999830000 +1483228800922-1514764800921,25-34,F,0.000039000,0.999961000 +1483228800922-1514764800921,35-44,M,0.000147000,0.999853000 +1483228800922-1514764800921,35-44,F,0.000057000,0.999943000 +1483228800922-1514764800921,45-54,M,0.000145000,0.999855000 +1483228800922-1514764800921,45-54,F,0.000051000,0.999949000 +1483228800922-1514764800921,55-150,M,0.000057000,0.999943000 +1483228800922-1514764800921,55-150,F,0.000018000,0.999982000 +1514764800922-1546300800921,0-12,M,0.000000783,0.999999217 +1514764800922-1546300800921,0-12,F,0.000000818,0.999999182 +1514764800922-1546300800921,13-24,M,0.000041000,0.999959000 +1514764800922-1546300800921,13-24,F,0.000008000,0.999992000 +1514764800922-1546300800921,25-34,M,0.000170000,0.999830000 +1514764800922-1546300800921,25-34,F,0.000036000,0.999964000 +1514764800922-1546300800921,35-44,M,0.000144000,0.999856000 +1514764800922-1546300800921,35-44,F,0.000053000,0.999947000 +1514764800922-1546300800921,45-54,M,0.000136000,0.999864000 +1514764800922-1546300800921,45-54,F,0.000051000,0.999949000 +1514764800922-1546300800921,55-150,M,0.000053000,0.999947000 +1514764800922-1546300800921,55-150,F,0.000018000,0.999982000 +1546300800922-1577836800921,0-12,M,0.000000787,0.999999213 +1546300800922-1577836800921,0-12,F,0.000000822,0.999999178 +1546300800922-1577836800921,13-24,M,0.000035000,0.999965000 +1546300800922-1577836800921,13-24,F,0.000007000,0.999993000 +1546300800922-1577836800921,25-34,M,0.000167000,0.999833000 +1546300800922-1577836800921,25-34,F,0.000032000,0.999968000 +1546300800922-1577836800921,35-44,M,0.000139000,0.999861000 +1546300800922-1577836800921,35-44,F,0.000052000,0.999948000 +1546300800922-1577836800921,45-54,M,0.000120000,0.999880000 +1546300800922-1577836800921,45-54,F,0.000043000,0.999957000 +1546300800922-1577836800921,55-150,M,0.000055000,0.999945000 +1546300800922-1577836800921,55-150,F,0.000018000,0.999982000 diff --git a/src/main/resources/modules/lookup_tables/hiv_diagnosis_later.csv b/src/main/resources/modules/lookup_tables/hiv_diagnosis_later.csv new file mode 100644 index 0000000..0566cc7 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/hiv_diagnosis_later.csv @@ -0,0 +1,325 @@ +time,age,gender,Diagnosed_Later_Years,Wait_Until_Next_Diagnosis_Check +725846400922-757382400921,0-12,M,0.0000174,0.9999826 +725846400922-757382400921,0-12,F,0.0000143,0.9999857 +725846400922-757382400921,13-24,M,0.0003384,0.9996616 +725846400922-757382400921,13-24,F,0.0001386,0.9998614 +725846400922-757382400921,25-34,M,0.0009872,0.9990128 +725846400922-757382400921,25-34,F,0.0002496,0.9997504 +725846400922-757382400921,35-44,M,0.0005518,0.9994482 +725846400922-757382400921,35-44,F,0.0001134,0.9998866 +725846400922-757382400921,45-54,M,0.0001893,0.9998107 +725846400922-757382400921,45-54,F,0.0000308,0.9999692 +725846400922-757382400921,55-150,M,0.0000344,0.9999656 +725846400922-757382400921,55-150,F,0.0000081,0.9999919 +757382400922-788918400921,0-12,M,0.0000095,0.9999905 +757382400922-788918400921,0-12,F,0.0000099,0.9999901 +757382400922-788918400921,13-24,M,0.0000778,0.9999222 +757382400922-788918400921,13-24,F,0.0000484,0.9999516 +757382400922-788918400921,25-34,M,0.0003110,0.9996890 +757382400922-788918400921,25-34,F,0.0001104,0.9998896 +757382400922-788918400921,35-44,M,0.0001790,0.9998210 +757382400922-788918400921,35-44,F,0.0000534,0.9999466 +757382400922-788918400921,45-54,M,0.0000605,0.9999395 +757382400922-788918400921,45-54,F,0.0000145,0.9999855 +757382400922-788918400921,55-150,M,0.0000112,0.9999888 +757382400922-788918400921,55-150,F,0.0000036,0.9999964 +788918400922-820454400921,0-12,M,0.0000066,0.9999934 +788918400922-820454400921,0-12,F,0.0000069,0.9999931 +788918400922-820454400921,13-24,M,0.0000648,0.9999352 +788918400922-820454400921,13-24,F,0.0000453,0.9999547 +788918400922-820454400921,25-34,M,0.0002470,0.9997530 +788918400922-820454400921,25-34,F,0.0000929,0.9999071 +788918400922-820454400921,35-44,M,0.0001411,0.9998589 +788918400922-820454400921,35-44,F,0.0000448,0.9999552 +788918400922-820454400921,45-54,M,0.0000481,0.9999519 +788918400922-820454400921,45-54,F,0.0000130,0.9999870 +788918400922-820454400921,55-150,M,0.0000092,0.9999908 +788918400922-820454400921,55-150,F,0.0000028,0.9999972 +820454400922-852076800921,0-12,M,0.0000051,0.9999949 +820454400922-852076800921,0-12,F,0.0000053,0.9999947 +820454400922-852076800921,13-24,M,0.0000541,0.9999459 +820454400922-852076800921,13-24,F,0.0000455,0.9999545 +820454400922-852076800921,25-34,M,0.0002205,0.9997795 +820454400922-852076800921,25-34,F,0.0000855,0.9999145 +820454400922-852076800921,35-44,M,0.0001256,0.9998744 +820454400922-852076800921,35-44,F,0.0000418,0.9999582 +820454400922-852076800921,45-54,M,0.0000440,0.9999560 +820454400922-852076800921,45-54,F,0.0000125,0.9999875 +820454400922-852076800921,55-150,M,0.0000086,0.9999914 +820454400922-852076800921,55-150,F,0.0000025,0.9999975 +852076800922-883612800921,0-12,M,0.0000049,0.9999951 +852076800922-883612800921,0-12,F,0.0000051,0.9999949 +852076800922-883612800921,13-24,M,0.0000498,0.9999502 +852076800922-883612800921,13-24,F,0.0000467,0.9999533 +852076800922-883612800921,25-34,M,0.0002305,0.9997695 +852076800922-883612800921,25-34,F,0.0000936,0.9999064 +852076800922-883612800921,35-44,M,0.0001327,0.9998673 +852076800922-883612800921,35-44,F,0.0000474,0.9999526 +852076800922-883612800921,45-54,M,0.0000475,0.9999525 +852076800922-883612800921,45-54,F,0.0000146,0.9999854 +852076800922-883612800921,55-150,M,0.0000096,0.9999904 +852076800922-883612800921,55-150,F,0.0000029,0.9999971 +883612800922-915148800921,0-12,M,0.0000055,0.9999945 +883612800922-915148800921,0-12,F,0.0000064,0.9999936 +883612800922-915148800921,13-24,M,0.0000599,0.9999401 +883612800922-915148800921,13-24,F,0.0000580,0.9999420 +883612800922-915148800921,25-34,M,0.0002989,0.9997011 +883612800922-915148800921,25-34,F,0.0001307,0.9998693 +883612800922-915148800921,35-44,M,0.0001792,0.9998208 +883612800922-915148800921,35-44,F,0.0000679,0.9999321 +883612800922-915148800921,45-54,M,0.0000666,0.9999334 +883612800922-915148800921,45-54,F,0.0000228,0.9999772 +883612800922-915148800921,55-150,M,0.0000142,0.9999858 +883612800922-915148800921,55-150,F,0.0000050,0.9999950 +915148800922-946684800921,0-12,M,0.0000043,0.9999957 +915148800922-946684800921,0-12,F,0.0000046,0.9999954 +915148800922-946684800921,13-24,M,0.0000679,0.9999321 +915148800922-946684800921,13-24,F,0.0000689,0.9999311 +915148800922-946684800921,25-34,M,0.0003196,0.9996804 +915148800922-946684800921,25-34,F,0.0001434,0.9998566 +915148800922-946684800921,35-44,M,0.0001994,0.9998006 +915148800922-946684800921,35-44,F,0.0000765,0.9999235 +915148800922-946684800921,45-54,M,0.0000739,0.9999261 +915148800922-946684800921,45-54,F,0.0000267,0.9999733 +915148800922-946684800921,55-150,M,0.0000163,0.9999837 +915148800922-946684800921,55-150,F,0.0000057,0.9999943 +946684800922-978307200921,0-12,M,0.0000040,0.9999960 +946684800922-978307200921,0-12,F,0.0000046,0.9999954 +946684800922-978307200921,13-24,M,0.0000733,0.9999267 +946684800922-978307200921,13-24,F,0.0000687,0.9999313 +946684800922-978307200921,25-34,M,0.0003184,0.9996816 +946684800922-978307200921,25-34,F,0.0001381,0.9998619 +946684800922-978307200921,35-44,M,0.0002057,0.9997943 +946684800922-978307200921,35-44,F,0.0000764,0.9999236 +946684800922-978307200921,45-54,M,0.0000779,0.9999221 +946684800922-978307200921,45-54,F,0.0000273,0.9999727 +946684800922-978307200921,55-150,M,0.0000175,0.9999825 +946684800922-978307200921,55-150,F,0.0000058,0.9999942 +978307200922-1009843200921,0-12,M,0.0000105,0.9999895 +978307200922-1009843200921,0-12,F,0.0000102,0.9999898 +978307200922-1009843200921,13-24,M,0.0001017,0.9998983 +978307200922-1009843200921,13-24,F,0.0000862,0.9999138 +978307200922-1009843200921,25-34,M,0.0004931,0.9995069 +978307200922-1009843200921,25-34,F,0.0002286,0.9997714 +978307200922-1009843200921,35-44,M,0.0003534,0.9996466 +978307200922-1009843200921,35-44,F,0.0001400,0.9998600 +978307200922-1009843200921,45-54,M,0.0001435,0.9998565 +978307200922-1009843200921,45-54,F,0.0000544,0.9999456 +978307200922-1009843200921,55-150,M,0.0000325,0.9999675 +978307200922-1009843200921,55-150,F,0.0000109,0.9999891 +1009843200922-1041379200921,0-12,M,0.0000079,0.9999921 +1009843200922-1041379200921,0-12,F,0.0000082,0.9999918 +1009843200922-1041379200921,13-24,M,0.0001778,0.9998222 +1009843200922-1041379200921,13-24,F,0.0000720,0.9999280 +1009843200922-1041379200921,25-34,M,0.0003166,0.9996834 +1009843200922-1041379200921,25-34,F,0.0001503,0.9998497 +1009843200922-1041379200921,35-44,M,0.0002852,0.9997148 +1009843200922-1041379200921,35-44,F,0.0001299,0.9998701 +1009843200922-1041379200921,45-54,M,0.0002331,0.9997669 +1009843200922-1041379200921,45-54,F,0.0001166,0.9998834 +1009843200922-1041379200921,55-150,M,0.0000722,0.9999278 +1009843200922-1041379200921,55-150,F,0.0000321,0.9999679 +1041379200922-1072915200921,0-12,M,0.0000086,0.9999914 +1041379200922-1072915200921,0-12,F,0.0000090,0.9999910 +1041379200922-1072915200921,13-24,M,0.0001689,0.9998311 +1041379200922-1072915200921,13-24,F,0.0000640,0.9999360 +1041379200922-1072915200921,25-34,M,0.0003068,0.9996932 +1041379200922-1072915200921,25-34,F,0.0001361,0.9998639 +1041379200922-1072915200921,35-44,M,0.0002784,0.9997216 +1041379200922-1072915200921,35-44,F,0.0001188,0.9998812 +1041379200922-1072915200921,45-54,M,0.0002203,0.9997797 +1041379200922-1072915200921,45-54,F,0.0001034,0.9998966 +1041379200922-1072915200921,55-150,M,0.0000676,0.9999324 +1041379200922-1072915200921,55-150,F,0.0000284,0.9999716 +1072915200922-1104537600921,0-12,M,0.0000077,0.9999923 +1072915200922-1104537600921,0-12,F,0.0000089,0.9999911 +1072915200922-1104537600921,13-24,M,0.0001695,0.9998305 +1072915200922-1104537600921,13-24,F,0.0000624,0.9999376 +1072915200922-1104537600921,25-34,M,0.0003124,0.9996876 +1072915200922-1104537600921,25-34,F,0.0001342,0.9998658 +1072915200922-1104537600921,35-44,M,0.0002856,0.9997144 +1072915200922-1104537600921,35-44,F,0.0001182,0.9998818 +1072915200922-1104537600921,45-54,M,0.0002199,0.9997801 +1072915200922-1104537600921,45-54,F,0.0001001,0.9998999 +1072915200922-1104537600921,55-150,M,0.0000669,0.9999331 +1072915200922-1104537600921,55-150,F,0.0000274,0.9999726 +1104537600922-1136073600921,0-12,M,0.0000079,0.9999921 +1104537600922-1136073600921,0-12,F,0.0000087,0.9999913 +1104537600922-1136073600921,13-24,M,0.0001788,0.9998212 +1104537600922-1136073600921,13-24,F,0.0000651,0.9999349 +1104537600922-1136073600921,25-34,M,0.0003328,0.9996672 +1104537600922-1136073600921,25-34,F,0.0001408,0.9998592 +1104537600922-1136073600921,35-44,M,0.0003169,0.9996831 +1104537600922-1136073600921,35-44,F,0.0001251,0.9998749 +1104537600922-1136073600921,45-54,M,0.0002290,0.9997710 +1104537600922-1136073600921,45-54,F,0.0001031,0.9998969 +1104537600922-1136073600921,55-150,M,0.0000690,0.9999310 +1104537600922-1136073600921,55-150,F,0.0000281,0.9999719 +1136073600922-1167609600921,0-12,M,0.0000100,0.9999900 +1136073600922-1167609600921,0-12,F,0.0000118,0.9999882 +1136073600922-1167609600921,13-24,M,0.0002807,0.9997193 +1136073600922-1167609600921,13-24,F,0.0000825,0.9999175 +1136073600922-1167609600921,25-34,M,0.0005245,0.9994755 +1136073600922-1167609600921,25-34,F,0.0001787,0.9998213 +1136073600922-1167609600921,35-44,M,0.0004860,0.9995140 +1136073600922-1167609600921,35-44,F,0.0001605,0.9998395 +1136073600922-1167609600921,45-54,M,0.0003552,0.9996448 +1136073600922-1167609600921,45-54,F,0.0001290,0.9998710 +1136073600922-1167609600921,55-150,M,0.0001058,0.9998942 +1136073600922-1167609600921,55-150,F,0.0000350,0.9999650 +1167609600922-1199145600921,0-12,M,0.0000117,0.9999883 +1167609600922-1199145600921,0-12,F,0.0000135,0.9999865 +1167609600922-1199145600921,13-24,M,0.0003460,0.9996540 +1167609600922-1199145600921,13-24,F,0.0000883,0.9999117 +1167609600922-1199145600921,25-34,M,0.0006436,0.9993564 +1167609600922-1199145600921,25-34,F,0.0001907,0.9998093 +1167609600922-1199145600921,35-44,M,0.0006075,0.9993925 +1167609600922-1199145600921,35-44,F,0.0001744,0.9998256 +1167609600922-1199145600921,45-54,M,0.0004327,0.9995673 +1167609600922-1199145600921,45-54,F,0.0001367,0.9998633 +1167609600922-1199145600921,55-150,M,0.0001271,0.9998729 +1167609600922-1199145600921,55-150,F,0.0000367,0.9999633 +1199145600922-1230768000921,0-12,M,0.0000034,0.9999966 +1199145600922-1230768000921,0-12,F,0.0000035,0.9999965 +1199145600922-1230768000921,13-24,M,0.0001988,0.9998012 +1199145600922-1230768000921,13-24,F,0.0000214,0.9999786 +1199145600922-1230768000921,25-34,M,0.0002126,0.9997874 +1199145600922-1230768000921,25-34,F,0.0000845,0.9999155 +1199145600922-1230768000921,35-44,M,0.0000927,0.9999073 +1199145600922-1230768000921,35-44,F,0.0001167,0.9998833 +1199145600922-1230768000921,45-54,M,0.0000113,0.9999887 +1199145600922-1230768000921,45-54,F,0.0000908,0.9999092 +1199145600922-1230768000921,55-150,M,0.0000067,0.9999933 +1199145600922-1230768000921,55-150,F,0.0000235,0.9999765 +1230768000922-1262304000921,0-12,M,0.0000017,0.9999983 +1230768000922-1262304000921,0-12,F,0.0000017,0.9999983 +1230768000922-1262304000921,13-24,M,0.0001988,0.9998012 +1230768000922-1262304000921,13-24,F,0.0000214,0.9999786 +1230768000922-1262304000921,25-34,M,0.0002126,0.9997874 +1230768000922-1262304000921,25-34,F,0.0000845,0.9999155 +1230768000922-1262304000921,35-44,M,0.0000927,0.9999073 +1230768000922-1262304000921,35-44,F,0.0001167,0.9998833 +1230768000922-1262304000921,45-54,M,0.0000113,0.9999887 +1230768000922-1262304000921,45-54,F,0.0000908,0.9999092 +1230768000922-1262304000921,55-150,M,0.0000067,0.9999933 +1230768000922-1262304000921,55-150,F,0.0000235,0.9999765 +1262304000922-1293840000921,0-12,M,0.0000019,0.9999981 +1262304000922-1293840000921,0-12,F,0.0000019,0.9999981 +1262304000922-1293840000921,13-24,M,0.0002118,0.9997882 +1262304000922-1293840000921,13-24,F,0.0000395,0.9999605 +1262304000922-1293840000921,25-34,M,0.0002215,0.9997785 +1262304000922-1293840000921,25-34,F,0.0000458,0.9999542 +1262304000922-1293840000921,35-44,M,0.0000924,0.9999076 +1262304000922-1293840000921,35-44,F,0.0000112,0.9999888 +1262304000922-1293840000921,45-54,M,0.0000282,0.9999718 +1262304000922-1293840000921,45-54,F,0.0000090,0.9999910 +1262304000922-1293840000921,55-150,M,0.0000076,0.9999924 +1262304000922-1293840000921,55-150,F,0.0000046,0.9999954 +1293840000922-1325376000921,0-12,M,0.0000017,0.9999983 +1293840000922-1325376000921,0-12,F,0.0000017,0.9999983 +1293840000922-1325376000921,13-24,M,0.0002114,0.9997886 +1293840000922-1325376000921,13-24,F,0.0000373,0.9999627 +1293840000922-1325376000921,25-34,M,0.0002277,0.9997723 +1293840000922-1325376000921,25-34,F,0.0000365,0.9999635 +1293840000922-1325376000921,35-44,M,0.0000930,0.9999070 +1293840000922-1325376000921,35-44,F,0.0000114,0.9999886 +1293840000922-1325376000921,45-54,M,0.0000337,0.9999663 +1293840000922-1325376000921,45-54,F,0.0000090,0.9999910 +1293840000922-1325376000921,55-150,M,0.0000069,0.9999931 +1293840000922-1325376000921,55-150,F,0.0000030,0.9999970 +1325376000922-1356998400921,0-12,M,0.0000022,0.9999978 +1325376000922-1356998400921,0-12,F,0.0000022,0.9999978 +1325376000922-1356998400921,13-24,M,0.0002213,0.9997787 +1325376000922-1356998400921,13-24,F,0.0000334,0.9999666 +1325376000922-1356998400921,25-34,M,0.0002351,0.9997649 +1325376000922-1356998400921,25-34,F,0.0000378,0.9999622 +1325376000922-1356998400921,35-44,M,0.0000966,0.9999034 +1325376000922-1356998400921,35-44,F,0.0000076,0.9999924 +1325376000922-1356998400921,45-54,M,0.0000335,0.9999665 +1325376000922-1356998400921,45-54,F,0.0000056,0.9999944 +1325376000922-1356998400921,55-150,M,0.0000049,0.9999951 +1325376000922-1356998400921,55-150,F,0.0000016,0.9999984 +1356998400922-1388534400921,0-12,M,0.0000017,0.9999983 +1356998400922-1388534400921,0-12,F,0.0000017,0.9999983 +1356998400922-1388534400921,13-24,M,0.0002095,0.9997905 +1356998400922-1388534400921,13-24,F,0.0000269,0.9999731 +1356998400922-1388534400921,25-34,M,0.0002434,0.9997566 +1356998400922-1388534400921,25-34,F,0.0000383,0.9999617 +1356998400922-1388534400921,35-44,M,0.0000893,0.9999107 +1356998400922-1388534400921,35-44,F,0.0000091,0.9999909 +1356998400922-1388534400921,45-54,M,0.0000305,0.9999695 +1356998400922-1388534400921,45-54,F,0.0000054,0.9999946 +1356998400922-1388534400921,55-150,M,0.0000064,0.9999936 +1356998400922-1388534400921,55-150,F,0.0000025,0.9999975 +1388534400922-1420070400921,0-12,M,0.0000011,0.9999989 +1388534400922-1420070400921,0-12,F,0.0000011,0.9999989 +1388534400922-1420070400921,13-24,M,0.0002491,0.9997509 +1388534400922-1420070400921,13-24,F,0.0000348,0.9999652 +1388534400922-1420070400921,25-34,M,0.0003103,0.9996897 +1388534400922-1420070400921,25-34,F,0.0000477,0.9999523 +1388534400922-1420070400921,35-44,M,0.0001295,0.9998705 +1388534400922-1420070400921,35-44,F,0.0000243,0.9999757 +1388534400922-1420070400921,45-54,M,0.0000615,0.9999385 +1388534400922-1420070400921,45-54,F,0.0000096,0.9999904 +1388534400922-1420070400921,55-150,M,0.0000090,0.9999910 +1388534400922-1420070400921,55-150,F,0.0000044,0.9999956 +1420070400922-1451606400921,0-12,M,0.0000010,0.9999990 +1420070400922-1451606400921,0-12,F,0.0000010,0.9999990 +1420070400922-1451606400921,13-24,M,0.0002530,0.9997470 +1420070400922-1451606400921,13-24,F,0.0000325,0.9999675 +1420070400922-1451606400921,25-34,M,0.0003224,0.9996776 +1420070400922-1451606400921,25-34,F,0.0000458,0.9999542 +1420070400922-1451606400921,35-44,M,0.0001301,0.9998699 +1420070400922-1451606400921,35-44,F,0.0000249,0.9999751 +1420070400922-1451606400921,45-54,M,0.0000603,0.9999397 +1420070400922-1451606400921,45-54,F,0.0000140,0.9999860 +1420070400922-1451606400921,55-150,M,0.0000111,0.9999889 +1420070400922-1451606400921,55-150,F,0.0000045,0.9999955 +1451606400922-1483228800921,0-12,M,0.0000008,0.9999992 +1451606400922-1483228800921,0-12,F,0.0000008,0.9999992 +1451606400922-1483228800921,13-24,M,0.0002428,0.9997572 +1451606400922-1483228800921,13-24,F,0.0000289,0.9999711 +1451606400922-1483228800921,25-34,M,0.0003320,0.9996680 +1451606400922-1483228800921,25-34,F,0.0000542,0.9999458 +1451606400922-1483228800921,35-44,M,0.0001255,0.9998745 +1451606400922-1483228800921,35-44,F,0.0000251,0.9999749 +1451606400922-1483228800921,45-54,M,0.0000519,0.9999481 +1451606400922-1483228800921,45-54,F,0.0000203,0.9999797 +1451606400922-1483228800921,55-150,M,0.0000078,0.9999922 +1451606400922-1483228800921,55-150,F,0.0000061,0.9999939 +1483228800922-1514764800921,0-12,M,0.0000007,0.9999993 +1483228800922-1514764800921,0-12,F,0.0000007,0.9999993 +1483228800922-1514764800921,13-24,M,0.0002322,0.9997678 +1483228800922-1514764800921,13-24,F,0.0000318,0.9999682 +1483228800922-1514764800921,25-34,M,0.0003252,0.9996748 +1483228800922-1514764800921,25-34,F,0.0000500,0.9999500 +1483228800922-1514764800921,35-44,M,0.0001269,0.9998731 +1483228800922-1514764800921,35-44,F,0.0000244,0.9999756 +1483228800922-1514764800921,45-54,M,0.0000542,0.9999458 +1483228800922-1514764800921,45-54,F,0.0000151,0.9999849 +1483228800922-1514764800921,55-150,M,0.0000059,0.9999941 +1483228800922-1514764800921,55-150,F,0.0000056,0.9999944 +1514764800922-1546300800921,0-12,M,0.0000004,0.9999996 +1514764800922-1546300800921,0-12,F,0.0000004,0.9999996 +1514764800922-1546300800921,13-24,M,0.0002215,0.9997785 +1514764800922-1546300800921,13-24,F,0.0000307,0.9999693 +1514764800922-1546300800921,25-34,M,0.0003256,0.9996744 +1514764800922-1546300800921,25-34,F,0.0000486,0.9999514 +1514764800922-1546300800921,35-44,M,0.0001226,0.9998774 +1514764800922-1546300800921,35-44,F,0.0000300,0.9999700 +1514764800922-1546300800921,45-54,M,0.0000520,0.9999480 +1514764800922-1546300800921,45-54,F,0.0000148,0.9999852 +1514764800922-1546300800921,55-150,M,0.0000079,0.9999921 +1514764800922-1546300800921,55-150,F,0.0000037,0.9999963 +1546300800922-1577836800921,0-12,M,0.0000003,0.9999997 +1546300800922-1577836800921,0-12,F,0.0000003,0.9999997 +1546300800922-1577836800921,13-24,M,0.0002200,0.9997800 +1546300800922-1577836800921,13-24,F,0.0000304,0.9999696 +1546300800922-1577836800921,25-34,M,0.0003087,0.9996913 +1546300800922-1577836800921,25-34,F,0.0000524,0.9999476 +1546300800922-1577836800921,35-44,M,0.0001222,0.9998778 +1546300800922-1577836800921,35-44,F,0.0000270,0.9999730 +1546300800922-1577836800921,45-54,M,0.0000565,0.9999435 +1546300800922-1577836800921,45-54,F,0.0000174,0.9999826 +1546300800922-1577836800921,55-150,M,0.0000053,0.9999947 +1546300800922-1577836800921,55-150,F,0.0000042,0.9999958 diff --git a/src/main/resources/modules/lookup_tables/hiv_mortality_early.csv b/src/main/resources/modules/lookup_tables/hiv_mortality_early.csv new file mode 100644 index 0000000..a1f0dac --- /dev/null +++ b/src/main/resources/modules/lookup_tables/hiv_mortality_early.csv @@ -0,0 +1,383 @@ +time,age,gender,Death,Living_with_Diagnosis_Early_Years +694224000922-725846400921,0-12,M,0.1400,0.8600 +694224000922-725846400921,0-12,F,0.1400,0.8600 +694224000922-725846400921,13-150,M,0.2784,0.7216 +694224000922-725846400921,13-150,F,0.2713,0.7287 +725846400922-757382400921,0-12,M,0.1520,0.8480 +725846400922-757382400921,0-12,F,0.1520,0.8480 +725846400922-757382400921,13-150,M,0.1863,0.8137 +725846400922-757382400921,13-150,F,0.1652,0.8348 +757382400922-788918400921,0-12,M,0.1503,0.8497 +757382400922-788918400921,0-12,F,0.1503,0.8497 +757382400922-788918400921,13-150,M,0.2055,0.7945 +757382400922-788918400921,13-150,F,0.1855,0.8145 +788918400922-820454400921,0-12,M,0.1367,0.8633 +788918400922-820454400921,0-12,F,0.1367,0.8633 +788918400922-820454400921,13-24,M,0.0984,0.9016 +788918400922-820454400921,13-24,F,0.1008,0.8992 +788918400922-820454400921,25-29,M,0.1393,0.8607 +788918400922-820454400921,25-29,F,0.1353,0.8647 +788918400922-820454400921,30-34,M,0.1747,0.8253 +788918400922-820454400921,30-34,F,0.1619,0.8381 +788918400922-820454400921,35-39,M,0.1977,0.8023 +788918400922-820454400921,35-39,F,0.1749,0.8251 +788918400922-820454400921,40-44,M,0.2103,0.7897 +788918400922-820454400921,40-44,F,0.1975,0.8025 +788918400922-820454400921,45-49,M,0.2283,0.7717 +788918400922-820454400921,45-49,F,0.2300,0.7700 +788918400922-820454400921,50-54,M,0.2444,0.7556 +788918400922-820454400921,50-54,F,0.2224,0.7776 +788918400922-820454400921,55-59,M,0.2726,0.7274 +788918400922-820454400921,55-59,F,0.2764,0.7236 +788918400922-820454400921,60-64,M,0.2875,0.7125 +788918400922-820454400921,60-64,F,0.2576,0.7424 +788918400922-820454400921,65-69,M,0.3441,0.6559 +788918400922-820454400921,65-69,F,0.3167,0.6833 +788918400922-820454400921,70-150,M,0.3718,0.6282 +788918400922-820454400921,70-150,F,0.3710,0.6290 +820454400922-852076800921,0-12,M,0.1084,0.8916 +820454400922-852076800921,0-12,F,0.1084,0.8916 +820454400922-852076800921,13-24,M,0.0646,0.9354 +820454400922-852076800921,13-24,F,0.0704,0.9296 +820454400922-852076800921,25-29,M,0.0975,0.9025 +820454400922-852076800921,25-29,F,0.0988,0.9012 +820454400922-852076800921,30-34,M,0.1190,0.8810 +820454400922-852076800921,30-34,F,0.1201,0.8799 +820454400922-852076800921,35-39,M,0.1365,0.8635 +820454400922-852076800921,35-39,F,0.1340,0.8660 +820454400922-852076800921,40-44,M,0.1463,0.8537 +820454400922-852076800921,40-44,F,0.1510,0.8490 +820454400922-852076800921,45-49,M,0.1584,0.8416 +820454400922-852076800921,45-49,F,0.1720,0.8280 +820454400922-852076800921,50-54,M,0.1713,0.8287 +820454400922-852076800921,50-54,F,0.1693,0.8307 +820454400922-852076800921,55-59,M,0.1886,0.8114 +820454400922-852076800921,55-59,F,0.1870,0.8130 +820454400922-852076800921,60-64,M,0.2178,0.7822 +820454400922-852076800921,60-64,F,0.2415,0.7585 +820454400922-852076800921,65-69,M,0.2334,0.7666 +820454400922-852076800921,65-69,F,0.2492,0.7508 +820454400922-852076800921,70-150,M,0.3134,0.6866 +820454400922-852076800921,70-150,F,0.2636,0.7364 +852076800922-883612800921,0-12,M,0.0569,0.9431 +852076800922-883612800921,0-12,F,0.0569,0.9431 +852076800922-883612800921,13-24,M,0.0443,0.9557 +852076800922-883612800921,13-24,F,0.0502,0.9498 +852076800922-883612800921,25-29,M,0.0581,0.9419 +852076800922-883612800921,25-29,F,0.0587,0.9413 +852076800922-883612800921,30-34,M,0.0615,0.9385 +852076800922-883612800921,30-34,F,0.0703,0.9297 +852076800922-883612800921,35-39,M,0.0684,0.9316 +852076800922-883612800921,35-39,F,0.0778,0.9222 +852076800922-883612800921,40-44,M,0.0776,0.9224 +852076800922-883612800921,40-44,F,0.0894,0.9106 +852076800922-883612800921,45-49,M,0.0861,0.9139 +852076800922-883612800921,45-49,F,0.1041,0.8959 +852076800922-883612800921,50-54,M,0.0934,0.9066 +852076800922-883612800921,50-54,F,0.1135,0.8865 +852076800922-883612800921,55-59,M,0.1083,0.8917 +852076800922-883612800921,55-59,F,0.1189,0.8811 +852076800922-883612800921,60-64,M,0.1341,0.8659 +852076800922-883612800921,60-64,F,0.1237,0.8763 +852076800922-883612800921,65-69,M,0.1624,0.8376 +852076800922-883612800921,65-69,F,0.1243,0.8757 +852076800922-883612800921,70-150,M,0.1851,0.8149 +852076800922-883612800921,70-150,F,0.2268,0.7732 +883612800922-915148800921,0-12,M,0.0325,0.9675 +883612800922-915148800921,0-12,F,0.0325,0.9675 +883612800922-915148800921,13-24,M,0.0383,0.9617 +883612800922-915148800921,13-24,F,0.0420,0.9580 +883612800922-915148800921,25-29,M,0.0423,0.9577 +883612800922-915148800921,25-29,F,0.0521,0.9479 +883612800922-915148800921,30-34,M,0.0447,0.9553 +883612800922-915148800921,30-34,F,0.0582,0.9418 +883612800922-915148800921,35-39,M,0.0523,0.9477 +883612800922-915148800921,35-39,F,0.0612,0.9388 +883612800922-915148800921,40-44,M,0.0590,0.9410 +883612800922-915148800921,40-44,F,0.0699,0.9301 +883612800922-915148800921,45-49,M,0.0688,0.9312 +883612800922-915148800921,45-49,F,0.0818,0.9182 +883612800922-915148800921,50-54,M,0.0768,0.9232 +883612800922-915148800921,50-54,F,0.0861,0.9139 +883612800922-915148800921,55-59,M,0.0883,0.9117 +883612800922-915148800921,55-59,F,0.1103,0.8897 +883612800922-915148800921,60-64,M,0.1083,0.8917 +883612800922-915148800921,60-64,F,0.1130,0.8870 +883612800922-915148800921,65-69,M,0.1122,0.8878 +883612800922-915148800921,65-69,F,0.1216,0.8784 +883612800922-915148800921,70-150,M,0.1567,0.8433 +883612800922-915148800921,70-150,F,0.1541,0.8459 +915148800922-946684800921,0-12,M,0.0250,0.9750 +915148800922-946684800921,0-12,F,0.0250,0.9750 +915148800922-946684800921,13-24,M,0.0329,0.9671 +915148800922-946684800921,13-24,F,0.0424,0.9576 +915148800922-946684800921,25-29,M,0.0395,0.9605 +915148800922-946684800921,25-29,F,0.0456,0.9544 +915148800922-946684800921,30-34,M,0.0390,0.9610 +915148800922-946684800921,30-34,F,0.0528,0.9472 +915148800922-946684800921,35-39,M,0.0430,0.9570 +915148800922-946684800921,35-39,F,0.0576,0.9424 +915148800922-946684800921,40-44,M,0.0533,0.9467 +915148800922-946684800921,40-44,F,0.0702,0.9298 +915148800922-946684800921,45-49,M,0.0597,0.9403 +915148800922-946684800921,45-49,F,0.0750,0.9250 +915148800922-946684800921,50-54,M,0.0710,0.9290 +915148800922-946684800921,50-54,F,0.0892,0.9108 +915148800922-946684800921,55-59,M,0.0806,0.9194 +915148800922-946684800921,55-59,F,0.0852,0.9148 +915148800922-946684800921,60-64,M,0.0854,0.9146 +915148800922-946684800921,60-64,F,0.1040,0.8960 +915148800922-946684800921,65-69,M,0.1119,0.8881 +915148800922-946684800921,65-69,F,0.1128,0.8872 +915148800922-946684800921,70-150,M,0.1357,0.8643 +915148800922-946684800921,70-150,F,0.1056,0.8944 +946684800922-978307200921,0-12,M,0.0132,0.9868 +946684800922-978307200921,0-12,F,0.0132,0.9868 +946684800922-978307200921,13-24,M,0.0313,0.9687 +946684800922-978307200921,13-24,F,0.0285,0.9715 +946684800922-978307200921,25-29,M,0.0311,0.9689 +946684800922-978307200921,25-29,F,0.0457,0.9543 +946684800922-978307200921,30-34,M,0.0360,0.9640 +946684800922-978307200921,30-34,F,0.0478,0.9522 +946684800922-978307200921,35-39,M,0.0374,0.9626 +946684800922-978307200921,35-39,F,0.0503,0.9497 +946684800922-978307200921,40-44,M,0.0416,0.9584 +946684800922-978307200921,40-44,F,0.0564,0.9436 +946684800922-978307200921,45-49,M,0.0515,0.9485 +946684800922-978307200921,45-49,F,0.0651,0.9349 +946684800922-978307200921,50-54,M,0.0609,0.9391 +946684800922-978307200921,50-54,F,0.0685,0.9315 +946684800922-978307200921,55-59,M,0.0622,0.9378 +946684800922-978307200921,55-59,F,0.0773,0.9227 +946684800922-978307200921,60-64,M,0.0803,0.9197 +946684800922-978307200921,60-64,F,0.0859,0.9141 +946684800922-978307200921,65-69,M,0.0865,0.9135 +946684800922-978307200921,65-69,F,0.0939,0.9061 +946684800922-978307200921,70-150,M,0.1252,0.8748 +946684800922-978307200921,70-150,F,0.1273,0.8727 +978307200922-1009843200921,0-12,M,0.0162,0.9838 +978307200922-1009843200921,0-12,F,0.0162,0.9838 +978307200922-1009843200921,13-24,M,0.0390,0.9610 +978307200922-1009843200921,13-24,F,0.0537,0.9463 +978307200922-1009843200921,25-34,M,0.0372,0.9628 +978307200922-1009843200921,25-34,F,0.0441,0.9559 +978307200922-1009843200921,35-44,M,0.0427,0.9573 +978307200922-1009843200921,35-44,F,0.0566,0.9434 +978307200922-1009843200921,45-54,M,0.0570,0.9430 +978307200922-1009843200921,45-54,F,0.0668,0.9332 +978307200922-1009843200921,55-150,M,0.0814,0.9186 +978307200922-1009843200921,55-150,F,0.0965,0.9035 +1009843200922-1041379200921,0-12,M,0.0129,0.9871 +1009843200922-1041379200921,0-12,F,0.0129,0.9871 +1009843200922-1041379200921,13-24,M,0.0241,0.9759 +1009843200922-1041379200921,13-24,F,0.0317,0.9683 +1009843200922-1041379200921,25-34,M,0.0344,0.9656 +1009843200922-1041379200921,25-34,F,0.0439,0.9561 +1009843200922-1041379200921,35-44,M,0.0430,0.9570 +1009843200922-1041379200921,35-44,F,0.0559,0.9441 +1009843200922-1041379200921,45-54,M,0.0606,0.9394 +1009843200922-1041379200921,45-54,F,0.0728,0.9272 +1009843200922-1041379200921,55-150,M,0.0852,0.9148 +1009843200922-1041379200921,55-150,F,0.0915,0.9085 +1041379200922-1072915200921,0-12,M,0.0095,0.9905 +1041379200922-1072915200921,0-12,F,0.0095,0.9905 +1041379200922-1072915200921,13-24,M,0.0247,0.9753 +1041379200922-1072915200921,13-24,F,0.0297,0.9703 +1041379200922-1072915200921,25-34,M,0.0328,0.9672 +1041379200922-1072915200921,25-34,F,0.0390,0.9610 +1041379200922-1072915200921,35-44,M,0.0402,0.9598 +1041379200922-1072915200921,35-44,F,0.0526,0.9474 +1041379200922-1072915200921,45-54,M,0.0548,0.9452 +1041379200922-1072915200921,45-54,F,0.0635,0.9365 +1041379200922-1072915200921,55-150,M,0.0827,0.9173 +1041379200922-1072915200921,55-150,F,0.0863,0.9137 +1072915200922-1104537600921,0-12,M,0.0071,0.9929 +1072915200922-1104537600921,0-12,F,0.0071,0.9929 +1072915200922-1104537600921,13-24,M,0.0258,0.9742 +1072915200922-1104537600921,13-24,F,0.0262,0.9738 +1072915200922-1104537600921,25-34,M,0.0294,0.9706 +1072915200922-1104537600921,25-34,F,0.0376,0.9624 +1072915200922-1104537600921,35-44,M,0.0365,0.9635 +1072915200922-1104537600921,35-44,F,0.0485,0.9515 +1072915200922-1104537600921,45-54,M,0.0503,0.9497 +1072915200922-1104537600921,45-54,F,0.0627,0.9373 +1072915200922-1104537600921,55-150,M,0.0736,0.9264 +1072915200922-1104537600921,55-150,F,0.0790,0.9210 +1104537600922-1136073600921,0-12,M,0.0039,0.9961 +1104537600922-1136073600921,0-12,F,0.0039,0.9961 +1104537600922-1136073600921,13-24,M,0.0192,0.9808 +1104537600922-1136073600921,13-24,F,0.0217,0.9783 +1104537600922-1136073600921,25-34,M,0.0283,0.9717 +1104537600922-1136073600921,25-34,F,0.0364,0.9636 +1104537600922-1136073600921,35-44,M,0.0339,0.9661 +1104537600922-1136073600921,35-44,F,0.0431,0.9569 +1104537600922-1136073600921,45-54,M,0.0473,0.9527 +1104537600922-1136073600921,45-54,F,0.0552,0.9448 +1104537600922-1136073600921,55-150,M,0.0696,0.9304 +1104537600922-1136073600921,55-150,F,0.0695,0.9305 +1136073600922-1167609600921,0-12,M,0.0034,0.9966 +1136073600922-1167609600921,0-12,F,0.0034,0.9966 +1136073600922-1167609600921,13-24,M,0.0224,0.9776 +1136073600922-1167609600921,13-24,F,0.0246,0.9754 +1136073600922-1167609600921,25-34,M,0.0268,0.9732 +1136073600922-1167609600921,25-34,F,0.0336,0.9664 +1136073600922-1167609600921,35-44,M,0.0308,0.9692 +1136073600922-1167609600921,35-44,F,0.0417,0.9583 +1136073600922-1167609600921,45-54,M,0.0429,0.9571 +1136073600922-1167609600921,45-54,F,0.0523,0.9477 +1136073600922-1167609600921,55-150,M,0.0637,0.9363 +1136073600922-1167609600921,55-150,F,0.0682,0.9318 +1167609600922-1199145600921,0-12,M,0.0064,0.9936 +1167609600922-1199145600921,0-12,F,0.0064,0.9936 +1167609600922-1199145600921,13-24,M,0.0172,0.9828 +1167609600922-1199145600921,13-24,F,0.0224,0.9776 +1167609600922-1199145600921,25-34,M,0.0245,0.9755 +1167609600922-1199145600921,25-34,F,0.0330,0.9670 +1167609600922-1199145600921,35-44,M,0.0286,0.9714 +1167609600922-1199145600921,35-44,F,0.0378,0.9622 +1167609600922-1199145600921,45-54,M,0.0380,0.9620 +1167609600922-1199145600921,45-54,F,0.0484,0.9516 +1167609600922-1199145600921,55-150,M,0.0572,0.9428 +1167609600922-1199145600921,55-150,F,0.0585,0.9415 +1199145600922-1230768000921,0-12,M,0.0051,0.9949 +1199145600922-1230768000921,0-12,F,0.0051,0.9949 +1199145600922-1230768000921,13-24,M,0.0141,0.9859 +1199145600922-1230768000921,13-24,F,0.0211,0.9789 +1199145600922-1230768000921,25-34,M,0.0227,0.9773 +1199145600922-1230768000921,25-34,F,0.0283,0.9717 +1199145600922-1230768000921,35-44,M,0.0240,0.9760 +1199145600922-1230768000921,35-44,F,0.0328,0.9672 +1199145600922-1230768000921,45-54,M,0.0333,0.9667 +1199145600922-1230768000921,45-54,F,0.0413,0.9587 +1199145600922-1230768000921,55-150,M,0.0558,0.9442 +1199145600922-1230768000921,55-150,F,0.0608,0.9392 +1230768000922-1262304000921,0-12,M,0.0082,0.9918 +1230768000922-1262304000921,0-12,F,0.0082,0.9918 +1230768000922-1262304000921,13-24,M,0.0132,0.9868 +1230768000922-1262304000921,13-24,F,0.0177,0.9823 +1230768000922-1262304000921,25-34,M,0.0215,0.9785 +1230768000922-1262304000921,25-34,F,0.0261,0.9739 +1230768000922-1262304000921,35-44,M,0.0221,0.9779 +1230768000922-1262304000921,35-44,F,0.0293,0.9707 +1230768000922-1262304000921,45-54,M,0.0301,0.9699 +1230768000922-1262304000921,45-54,F,0.0383,0.9617 +1230768000922-1262304000921,55-150,M,0.0527,0.9473 +1230768000922-1262304000921,55-150,F,0.0540,0.9460 +1262304000922-1293840000921,0-12,M,0.0000,1.0000 +1262304000922-1293840000921,0-12,F,0.0000,1.0000 +1262304000922-1293840000921,13-24,M,0.0134,0.9866 +1262304000922-1293840000921,13-24,F,0.0159,0.9841 +1262304000922-1293840000921,25-34,M,0.0178,0.9822 +1262304000922-1293840000921,25-34,F,0.0221,0.9779 +1262304000922-1293840000921,35-44,M,0.0188,0.9812 +1262304000922-1293840000921,35-44,F,0.0247,0.9753 +1262304000922-1293840000921,45-54,M,0.0271,0.9729 +1262304000922-1293840000921,45-54,F,0.0326,0.9674 +1262304000922-1293840000921,55-150,M,0.0474,0.9526 +1262304000922-1293840000921,55-150,F,0.0487,0.9513 +1293840000922-1325376000921,0-12,M,0.0000,1.0000 +1293840000922-1325376000921,0-12,F,0.0000,1.0000 +1293840000922-1325376000921,13-24,M,0.0122,0.9878 +1293840000922-1325376000921,13-24,F,0.0157,0.9843 +1293840000922-1325376000921,25-34,M,0.0156,0.9844 +1293840000922-1325376000921,25-34,F,0.0222,0.9778 +1293840000922-1325376000921,35-44,M,0.0175,0.9825 +1293840000922-1325376000921,35-44,F,0.0237,0.9763 +1293840000922-1325376000921,45-54,M,0.0251,0.9749 +1293840000922-1325376000921,45-54,F,0.0288,0.9712 +1293840000922-1325376000921,55-150,M,0.0439,0.9561 +1293840000922-1325376000921,55-150,F,0.0474,0.9526 +1325376000922-1356998400921,0-12,M,0.0025,0.9975 +1325376000922-1356998400921,0-12,F,0.0025,0.9975 +1325376000922-1356998400921,13-24,M,0.0106,0.9894 +1325376000922-1356998400921,13-24,F,0.0129,0.9871 +1325376000922-1356998400921,25-34,M,0.0167,0.9833 +1325376000922-1356998400921,25-34,F,0.0199,0.9801 +1325376000922-1356998400921,35-44,M,0.0160,0.9840 +1325376000922-1356998400921,35-44,F,0.0224,0.9776 +1325376000922-1356998400921,45-54,M,0.0232,0.9768 +1325376000922-1356998400921,45-54,F,0.0277,0.9723 +1325376000922-1356998400921,55-150,M,0.0414,0.9586 +1325376000922-1356998400921,55-150,F,0.0431,0.9569 +1356998400922-1388534400921,0-12,M,0.0030,0.9970 +1356998400922-1388534400921,0-12,F,0.0030,0.9970 +1356998400922-1388534400921,13-24,M,0.0096,0.9904 +1356998400922-1388534400921,13-24,F,0.0112,0.9888 +1356998400922-1388534400921,25-34,M,0.0154,0.9846 +1356998400922-1388534400921,25-34,F,0.0195,0.9805 +1356998400922-1388534400921,35-44,M,0.0161,0.9839 +1356998400922-1388534400921,35-44,F,0.0192,0.9808 +1356998400922-1388534400921,45-54,M,0.0221,0.9779 +1356998400922-1388534400921,45-54,F,0.0261,0.9739 +1356998400922-1388534400921,55-150,M,0.0391,0.9609 +1356998400922-1388534400921,55-150,F,0.0433,0.9567 +1388534400922-1420070400921,0-12,M,0.0000,1.0000 +1388534400922-1420070400921,0-12,F,0.0000,1.0000 +1388534400922-1420070400921,13-24,M,0.0096,0.9904 +1388534400922-1420070400921,13-24,F,0.0141,0.9859 +1388534400922-1420070400921,25-34,M,0.0144,0.9856 +1388534400922-1420070400921,25-34,F,0.0177,0.9823 +1388534400922-1420070400921,35-44,M,0.0157,0.9843 +1388534400922-1420070400921,35-44,F,0.0206,0.9794 +1388534400922-1420070400921,45-54,M,0.0208,0.9792 +1388534400922-1420070400921,45-54,F,0.0246,0.9754 +1388534400922-1420070400921,55-150,M,0.0391,0.9609 +1388534400922-1420070400921,55-150,F,0.0411,0.9589 +1420070400922-1451606400921,0-12,M,0.0058,0.9942 +1420070400922-1451606400921,0-12,F,0.0058,0.9942 +1420070400922-1451606400921,13-24,M,0.0097,0.9903 +1420070400922-1451606400921,13-24,F,0.0142,0.9858 +1420070400922-1451606400921,25-34,M,0.0143,0.9857 +1420070400922-1451606400921,25-34,F,0.0178,0.9822 +1420070400922-1451606400921,35-44,M,0.0152,0.9848 +1420070400922-1451606400921,35-44,F,0.0188,0.9812 +1420070400922-1451606400921,45-54,M,0.0207,0.9793 +1420070400922-1451606400921,45-54,F,0.0225,0.9775 +1420070400922-1451606400921,55-150,M,0.0369,0.9631 +1420070400922-1451606400921,55-150,F,0.0362,0.9638 +1451606400922-1483228800921,0-12,M,0.0000,1.0000 +1451606400922-1483228800921,0-12,F,0.0000,1.0000 +1451606400922-1483228800921,13-24,M,0.0090,0.9910 +1451606400922-1483228800921,13-24,F,0.0130,0.9870 +1451606400922-1483228800921,25-34,M,0.0144,0.9856 +1451606400922-1483228800921,25-34,F,0.0193,0.9807 +1451606400922-1483228800921,35-44,M,0.0150,0.9850 +1451606400922-1483228800921,35-44,F,0.0188,0.9812 +1451606400922-1483228800921,45-54,M,0.0194,0.9806 +1451606400922-1483228800921,45-54,F,0.0216,0.9784 +1451606400922-1483228800921,55-150,M,0.0369,0.9631 +1451606400922-1483228800921,55-150,F,0.0358,0.9642 +1483228800922-1514764800921,0-12,M,0.0000,1.0000 +1483228800922-1514764800921,0-12,F,0.0000,1.0000 +1483228800922-1514764800921,13-24,M,0.0110,0.9890 +1483228800922-1514764800921,13-24,F,0.0097,0.9903 +1483228800922-1514764800921,25-34,M,0.0132,0.9868 +1483228800922-1514764800921,25-34,F,0.0179,0.9821 +1483228800922-1514764800921,35-44,M,0.0150,0.9850 +1483228800922-1514764800921,35-44,F,0.0160,0.9840 +1483228800922-1514764800921,45-54,M,0.0188,0.9812 +1483228800922-1514764800921,45-54,F,0.0220,0.9780 +1483228800922-1514764800921,55-150,M,0.0352,0.9648 +1483228800922-1514764800921,55-150,F,0.0340,0.9660 +1514764800922-1546300800921,0-12,M,0.0015,0.9985 +1514764800922-1546300800921,0-12,F,0.0015,0.9985 +1514764800922-1546300800921,13-24,M,0.0106,0.9894 +1514764800922-1546300800921,13-24,F,0.0103,0.9897 +1514764800922-1546300800921,25-34,M,0.0143,0.9857 +1514764800922-1546300800921,25-34,F,0.0153,0.9847 +1514764800922-1546300800921,35-44,M,0.0138,0.9862 +1514764800922-1546300800921,35-44,F,0.0180,0.9820 +1514764800922-1546300800921,45-54,M,0.0184,0.9816 +1514764800922-1546300800921,45-54,F,0.0214,0.9786 +1514764800922-1546300800921,55-150,M,0.0327,0.9673 +1514764800922-1546300800921,55-150,F,0.0327,0.9673 +1546300800922-1577836800921,13-24,M,0.0113,0.9887 +1546300800922-1577836800921,13-24,F,0.0096,0.9904 +1546300800922-1577836800921,25-34,M,0.0137,0.9863 +1546300800922-1577836800921,25-34,F,0.0146,0.9854 +1546300800922-1577836800921,35-44,M,0.0134,0.9866 +1546300800922-1577836800921,35-44,F,0.0155,0.9845 +1546300800922-1577836800921,45-54,M,0.0162,0.9838 +1546300800922-1577836800921,45-54,F,0.0178,0.9822 +1546300800922-1577836800921,55-150,M,0.0309,0.9691 +1546300800922-1577836800921,55-150,F,0.0291,0.9709 diff --git a/src/main/resources/modules/lookup_tables/hiv_mortality_later.csv b/src/main/resources/modules/lookup_tables/hiv_mortality_later.csv new file mode 100644 index 0000000..a918ef5 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/hiv_mortality_later.csv @@ -0,0 +1,377 @@ +time,age,gender,Death,Living_with_Diagnosis_Later_Years +725846400922-757382400921,0-12,M,0.0760,0.9240 +725846400922-757382400921,0-12,F,0.0760,0.9240 +725846400922-757382400921,13-150,M,0.0931,0.9069 +725846400922-757382400921,13-150,F,0.0826,0.9174 +757382400922-788918400921,0-12,M,0.0752,0.9248 +757382400922-788918400921,0-12,F,0.0752,0.9248 +757382400922-788918400921,13-150,M,0.1028,0.8972 +757382400922-788918400921,13-150,F,0.0928,0.9072 +788918400922-820454400921,0-12,M,0.0684,0.9316 +788918400922-820454400921,0-12,F,0.0684,0.9316 +788918400922-820454400921,13-24,M,0.0492,0.9508 +788918400922-820454400921,13-24,F,0.0504,0.9496 +788918400922-820454400921,25-29,M,0.0697,0.9303 +788918400922-820454400921,25-29,F,0.0677,0.9323 +788918400922-820454400921,30-34,M,0.0873,0.9127 +788918400922-820454400921,30-34,F,0.0810,0.9190 +788918400922-820454400921,35-39,M,0.0989,0.9011 +788918400922-820454400921,35-39,F,0.0874,0.9126 +788918400922-820454400921,40-44,M,0.1051,0.8949 +788918400922-820454400921,40-44,F,0.0988,0.9012 +788918400922-820454400921,45-49,M,0.1142,0.8858 +788918400922-820454400921,45-49,F,0.1150,0.8850 +788918400922-820454400921,50-54,M,0.1222,0.8778 +788918400922-820454400921,50-54,F,0.1112,0.8888 +788918400922-820454400921,55-59,M,0.1363,0.8637 +788918400922-820454400921,55-59,F,0.1382,0.8618 +788918400922-820454400921,60-64,M,0.1437,0.8563 +788918400922-820454400921,60-64,F,0.1288,0.8712 +788918400922-820454400921,65-69,M,0.1720,0.8280 +788918400922-820454400921,65-69,F,0.1584,0.8416 +788918400922-820454400921,70-150,M,0.1859,0.8141 +788918400922-820454400921,70-150,F,0.1855,0.8145 +820454400922-852076800921,0-12,M,0.0542,0.9458 +820454400922-852076800921,0-12,F,0.0542,0.9458 +820454400922-852076800921,13-24,M,0.0323,0.9677 +820454400922-852076800921,13-24,F,0.0352,0.9648 +820454400922-852076800921,25-29,M,0.0488,0.9512 +820454400922-852076800921,25-29,F,0.0494,0.9506 +820454400922-852076800921,30-34,M,0.0595,0.9405 +820454400922-852076800921,30-34,F,0.0601,0.9399 +820454400922-852076800921,35-39,M,0.0683,0.9317 +820454400922-852076800921,35-39,F,0.0670,0.9330 +820454400922-852076800921,40-44,M,0.0732,0.9268 +820454400922-852076800921,40-44,F,0.0755,0.9245 +820454400922-852076800921,45-49,M,0.0792,0.9208 +820454400922-852076800921,45-49,F,0.0860,0.9140 +820454400922-852076800921,50-54,M,0.0857,0.9143 +820454400922-852076800921,50-54,F,0.0846,0.9154 +820454400922-852076800921,55-59,M,0.0943,0.9057 +820454400922-852076800921,55-59,F,0.0935,0.9065 +820454400922-852076800921,60-64,M,0.1089,0.8911 +820454400922-852076800921,60-64,F,0.1207,0.8793 +820454400922-852076800921,65-69,M,0.1167,0.8833 +820454400922-852076800921,65-69,F,0.1246,0.8754 +820454400922-852076800921,70-150,M,0.1567,0.8433 +820454400922-852076800921,70-150,F,0.1318,0.8682 +852076800922-883612800921,0-12,M,0.0285,0.9715 +852076800922-883612800921,0-12,F,0.0285,0.9715 +852076800922-883612800921,13-24,M,0.0221,0.9779 +852076800922-883612800921,13-24,F,0.0251,0.9749 +852076800922-883612800921,25-29,M,0.0290,0.9710 +852076800922-883612800921,25-29,F,0.0294,0.9706 +852076800922-883612800921,30-34,M,0.0308,0.9692 +852076800922-883612800921,30-34,F,0.0352,0.9648 +852076800922-883612800921,35-39,M,0.0342,0.9658 +852076800922-883612800921,35-39,F,0.0389,0.9611 +852076800922-883612800921,40-44,M,0.0388,0.9612 +852076800922-883612800921,40-44,F,0.0447,0.9553 +852076800922-883612800921,45-49,M,0.0431,0.9569 +852076800922-883612800921,45-49,F,0.0521,0.9479 +852076800922-883612800921,50-54,M,0.0467,0.9533 +852076800922-883612800921,50-54,F,0.0568,0.9432 +852076800922-883612800921,55-59,M,0.0541,0.9459 +852076800922-883612800921,55-59,F,0.0594,0.9406 +852076800922-883612800921,60-64,M,0.0671,0.9329 +852076800922-883612800921,60-64,F,0.0619,0.9381 +852076800922-883612800921,65-69,M,0.0812,0.9188 +852076800922-883612800921,65-69,F,0.0621,0.9379 +852076800922-883612800921,70-150,M,0.0925,0.9075 +852076800922-883612800921,70-150,F,0.1134,0.8866 +883612800922-915148800921,0-12,M,0.0162,0.9838 +883612800922-915148800921,0-12,F,0.0162,0.9838 +883612800922-915148800921,13-24,M,0.0192,0.9808 +883612800922-915148800921,13-24,F,0.0210,0.9790 +883612800922-915148800921,25-29,M,0.0212,0.9788 +883612800922-915148800921,25-29,F,0.0260,0.9740 +883612800922-915148800921,30-34,M,0.0224,0.9776 +883612800922-915148800921,30-34,F,0.0291,0.9709 +883612800922-915148800921,35-39,M,0.0261,0.9739 +883612800922-915148800921,35-39,F,0.0306,0.9694 +883612800922-915148800921,40-44,M,0.0295,0.9705 +883612800922-915148800921,40-44,F,0.0349,0.9651 +883612800922-915148800921,45-49,M,0.0344,0.9656 +883612800922-915148800921,45-49,F,0.0409,0.9591 +883612800922-915148800921,50-54,M,0.0384,0.9616 +883612800922-915148800921,50-54,F,0.0430,0.9570 +883612800922-915148800921,55-59,M,0.0442,0.9558 +883612800922-915148800921,55-59,F,0.0552,0.9448 +883612800922-915148800921,60-64,M,0.0542,0.9458 +883612800922-915148800921,60-64,F,0.0565,0.9435 +883612800922-915148800921,65-69,M,0.0561,0.9439 +883612800922-915148800921,65-69,F,0.0608,0.9392 +883612800922-915148800921,70-150,M,0.0784,0.9216 +883612800922-915148800921,70-150,F,0.0770,0.9230 +915148800922-946684800921,0-12,M,0.0125,0.9875 +915148800922-946684800921,0-12,F,0.0125,0.9875 +915148800922-946684800921,13-24,M,0.0165,0.9835 +915148800922-946684800921,13-24,F,0.0212,0.9788 +915148800922-946684800921,25-29,M,0.0197,0.9803 +915148800922-946684800921,25-29,F,0.0228,0.9772 +915148800922-946684800921,30-34,M,0.0195,0.9805 +915148800922-946684800921,30-34,F,0.0264,0.9736 +915148800922-946684800921,35-39,M,0.0215,0.9785 +915148800922-946684800921,35-39,F,0.0288,0.9712 +915148800922-946684800921,40-44,M,0.0266,0.9734 +915148800922-946684800921,40-44,F,0.0351,0.9649 +915148800922-946684800921,45-49,M,0.0299,0.9701 +915148800922-946684800921,45-49,F,0.0375,0.9625 +915148800922-946684800921,50-54,M,0.0355,0.9645 +915148800922-946684800921,50-54,F,0.0446,0.9554 +915148800922-946684800921,55-59,M,0.0403,0.9597 +915148800922-946684800921,55-59,F,0.0426,0.9574 +915148800922-946684800921,60-64,M,0.0427,0.9573 +915148800922-946684800921,60-64,F,0.0520,0.9480 +915148800922-946684800921,65-69,M,0.0560,0.9440 +915148800922-946684800921,65-69,F,0.0564,0.9436 +915148800922-946684800921,70-150,M,0.0678,0.9322 +915148800922-946684800921,70-150,F,0.0528,0.9472 +946684800922-978307200921,0-12,M,0.0066,0.9934 +946684800922-978307200921,0-12,F,0.0066,0.9934 +946684800922-978307200921,13-24,M,0.0157,0.9843 +946684800922-978307200921,13-24,F,0.0143,0.9857 +946684800922-978307200921,25-29,M,0.0156,0.9844 +946684800922-978307200921,25-29,F,0.0228,0.9772 +946684800922-978307200921,30-34,M,0.0180,0.9820 +946684800922-978307200921,30-34,F,0.0239,0.9761 +946684800922-978307200921,35-39,M,0.0187,0.9813 +946684800922-978307200921,35-39,F,0.0251,0.9749 +946684800922-978307200921,40-44,M,0.0208,0.9792 +946684800922-978307200921,40-44,F,0.0282,0.9718 +946684800922-978307200921,45-49,M,0.0258,0.9742 +946684800922-978307200921,45-49,F,0.0325,0.9675 +946684800922-978307200921,50-54,M,0.0304,0.9696 +946684800922-978307200921,50-54,F,0.0342,0.9658 +946684800922-978307200921,55-59,M,0.0311,0.9689 +946684800922-978307200921,55-59,F,0.0387,0.9613 +946684800922-978307200921,60-64,M,0.0402,0.9598 +946684800922-978307200921,60-64,F,0.0429,0.9571 +946684800922-978307200921,65-69,M,0.0432,0.9568 +946684800922-978307200921,65-69,F,0.0469,0.9531 +946684800922-978307200921,70-150,M,0.0626,0.9374 +946684800922-978307200921,70-150,F,0.0637,0.9363 +978307200922-1009843200921,0-12,M,0.0081,0.9919 +978307200922-1009843200921,0-12,F,0.0081,0.9919 +978307200922-1009843200921,13-24,M,0.0195,0.9805 +978307200922-1009843200921,13-24,F,0.0269,0.9731 +978307200922-1009843200921,25-34,M,0.0186,0.9814 +978307200922-1009843200921,25-34,F,0.0221,0.9779 +978307200922-1009843200921,35-44,M,0.0213,0.9787 +978307200922-1009843200921,35-44,F,0.0283,0.9717 +978307200922-1009843200921,45-54,M,0.0285,0.9715 +978307200922-1009843200921,45-54,F,0.0334,0.9666 +978307200922-1009843200921,55-150,M,0.0407,0.9593 +978307200922-1009843200921,55-150,F,0.0482,0.9518 +1009843200922-1041379200921,0-12,M,0.0064,0.9936 +1009843200922-1041379200921,0-12,F,0.0064,0.9936 +1009843200922-1041379200921,13-24,M,0.0120,0.9880 +1009843200922-1041379200921,13-24,F,0.0159,0.9841 +1009843200922-1041379200921,25-34,M,0.0172,0.9828 +1009843200922-1041379200921,25-34,F,0.0219,0.9781 +1009843200922-1041379200921,35-44,M,0.0215,0.9785 +1009843200922-1041379200921,35-44,F,0.0279,0.9721 +1009843200922-1041379200921,45-54,M,0.0303,0.9697 +1009843200922-1041379200921,45-54,F,0.0364,0.9636 +1009843200922-1041379200921,55-150,M,0.0426,0.9574 +1009843200922-1041379200921,55-150,F,0.0458,0.9542 +1041379200922-1072915200921,0-12,M,0.0048,0.9952 +1041379200922-1072915200921,0-12,F,0.0048,0.9952 +1041379200922-1072915200921,13-24,M,0.0124,0.9876 +1041379200922-1072915200921,13-24,F,0.0149,0.9851 +1041379200922-1072915200921,25-34,M,0.0164,0.9836 +1041379200922-1072915200921,25-34,F,0.0195,0.9805 +1041379200922-1072915200921,35-44,M,0.0201,0.9799 +1041379200922-1072915200921,35-44,F,0.0263,0.9737 +1041379200922-1072915200921,45-54,M,0.0274,0.9726 +1041379200922-1072915200921,45-54,F,0.0317,0.9683 +1041379200922-1072915200921,55-150,M,0.0413,0.9587 +1041379200922-1072915200921,55-150,F,0.0432,0.9568 +1072915200922-1104537600921,0-12,M,0.0036,0.9964 +1072915200922-1104537600921,0-12,F,0.0036,0.9964 +1072915200922-1104537600921,13-24,M,0.0129,0.9871 +1072915200922-1104537600921,13-24,F,0.0131,0.9869 +1072915200922-1104537600921,25-34,M,0.0147,0.9853 +1072915200922-1104537600921,25-34,F,0.0188,0.9812 +1072915200922-1104537600921,35-44,M,0.0182,0.9818 +1072915200922-1104537600921,35-44,F,0.0242,0.9758 +1072915200922-1104537600921,45-54,M,0.0252,0.9748 +1072915200922-1104537600921,45-54,F,0.0314,0.9686 +1072915200922-1104537600921,55-150,M,0.0368,0.9632 +1072915200922-1104537600921,55-150,F,0.0395,0.9605 +1104537600922-1136073600921,0-12,M,0.0020,0.9980 +1104537600922-1136073600921,0-12,F,0.0020,0.9980 +1104537600922-1136073600921,13-24,M,0.0096,0.9904 +1104537600922-1136073600921,13-24,F,0.0108,0.9892 +1104537600922-1136073600921,25-34,M,0.0141,0.9859 +1104537600922-1136073600921,25-34,F,0.0182,0.9818 +1104537600922-1136073600921,35-44,M,0.0170,0.9830 +1104537600922-1136073600921,35-44,F,0.0216,0.9784 +1104537600922-1136073600921,45-54,M,0.0237,0.9763 +1104537600922-1136073600921,45-54,F,0.0276,0.9724 +1104537600922-1136073600921,55-150,M,0.0348,0.9652 +1104537600922-1136073600921,55-150,F,0.0347,0.9653 +1136073600922-1167609600921,0-12,M,0.0017,0.9983 +1136073600922-1167609600921,0-12,F,0.0017,0.9983 +1136073600922-1167609600921,13-24,M,0.0112,0.9888 +1136073600922-1167609600921,13-24,F,0.0123,0.9877 +1136073600922-1167609600921,25-34,M,0.0134,0.9866 +1136073600922-1167609600921,25-34,F,0.0168,0.9832 +1136073600922-1167609600921,35-44,M,0.0154,0.9846 +1136073600922-1167609600921,35-44,F,0.0209,0.9791 +1136073600922-1167609600921,45-54,M,0.0215,0.9785 +1136073600922-1167609600921,45-54,F,0.0261,0.9739 +1136073600922-1167609600921,55-150,M,0.0318,0.9682 +1136073600922-1167609600921,55-150,F,0.0341,0.9659 +1167609600922-1199145600921,0-12,M,0.0014,0.9986 +1167609600922-1199145600921,0-12,F,0.0014,0.9986 +1167609600922-1199145600921,13-24,M,0.0086,0.9914 +1167609600922-1199145600921,13-24,F,0.0112,0.9888 +1167609600922-1199145600921,25-34,M,0.0122,0.9878 +1167609600922-1199145600921,25-34,F,0.0165,0.9835 +1167609600922-1199145600921,35-44,M,0.0143,0.9857 +1167609600922-1199145600921,35-44,F,0.0189,0.9811 +1167609600922-1199145600921,45-54,M,0.0190,0.9810 +1167609600922-1199145600921,45-54,F,0.0242,0.9758 +1167609600922-1199145600921,55-150,M,0.0286,0.9714 +1167609600922-1199145600921,55-150,F,0.0292,0.9708 +1199145600922-1230768000921,0-12,M,0.0007,0.9993 +1199145600922-1230768000921,0-12,F,0.0007,0.9993 +1199145600922-1230768000921,13-24,M,0.0070,0.9930 +1199145600922-1230768000921,13-24,F,0.0106,0.9894 +1199145600922-1230768000921,25-34,M,0.0114,0.9886 +1199145600922-1230768000921,25-34,F,0.0141,0.9859 +1199145600922-1230768000921,35-44,M,0.0120,0.9880 +1199145600922-1230768000921,35-44,F,0.0164,0.9836 +1199145600922-1230768000921,45-54,M,0.0166,0.9834 +1199145600922-1230768000921,45-54,F,0.0207,0.9793 +1230768000922-1262304000921,0-12,M,0.0007,0.9993 +1230768000922-1262304000921,0-12,F,0.0007,0.9993 +1230768000922-1262304000921,13-24,M,0.0017,0.9983 +1230768000922-1262304000921,13-24,F,0.0019,0.9981 +1230768000922-1262304000921,25-34,M,0.0035,0.9965 +1230768000922-1262304000921,25-34,F,0.0031,0.9969 +1230768000922-1262304000921,35-44,M,0.0052,0.9948 +1230768000922-1262304000921,35-44,F,0.0056,0.9944 +1230768000922-1262304000921,45-54,M,0.0101,0.9899 +1230768000922-1262304000921,45-54,F,0.0129,0.9871 +1230768000922-1262304000921,55-150,M,0.0283,0.9717 +1230768000922-1262304000921,55-150,F,0.0294,0.9706 +1262304000922-1293840000921,0-12,M,0.0027,0.9973 +1262304000922-1293840000921,0-12,F,0.0027,0.9973 +1262304000922-1293840000921,13-24,M,0.0017,0.9983 +1262304000922-1293840000921,13-24,F,0.0025,0.9975 +1262304000922-1293840000921,25-34,M,0.0033,0.9967 +1262304000922-1293840000921,25-34,F,0.0032,0.9968 +1262304000922-1293840000921,35-44,M,0.0043,0.9957 +1262304000922-1293840000921,35-44,F,0.0057,0.9943 +1262304000922-1293840000921,45-54,M,0.0097,0.9903 +1262304000922-1293840000921,45-54,F,0.0111,0.9889 +1262304000922-1293840000921,55-150,M,0.0238,0.9762 +1262304000922-1293840000921,55-150,F,0.0255,0.9745 +1293840000922-1325376000921,0-12,M,0.0004,0.9996 +1293840000922-1325376000921,0-12,F,0.0004,0.9996 +1293840000922-1325376000921,13-24,M,0.0019,0.9981 +1293840000922-1325376000921,13-24,F,0.0012,0.9988 +1293840000922-1325376000921,25-34,M,0.0030,0.9970 +1293840000922-1325376000921,25-34,F,0.0031,0.9969 +1293840000922-1325376000921,35-44,M,0.0044,0.9956 +1293840000922-1325376000921,35-44,F,0.0047,0.9953 +1293840000922-1325376000921,45-54,M,0.0082,0.9918 +1293840000922-1325376000921,45-54,F,0.0101,0.9899 +1293840000922-1325376000921,55-150,M,0.0233,0.9767 +1293840000922-1325376000921,55-150,F,0.0201,0.9799 +1325376000922-1356998400921,0-12,M,0.0011,0.9989 +1325376000922-1356998400921,0-12,F,0.0011,0.9989 +1325376000922-1356998400921,13-24,M,0.0016,0.9984 +1325376000922-1356998400921,13-24,F,0.0011,0.9989 +1325376000922-1356998400921,25-34,M,0.0030,0.9970 +1325376000922-1356998400921,25-34,F,0.0027,0.9973 +1325376000922-1356998400921,35-44,M,0.0042,0.9958 +1325376000922-1356998400921,35-44,F,0.0052,0.9948 +1325376000922-1356998400921,45-54,M,0.0074,0.9926 +1325376000922-1356998400921,45-54,F,0.0107,0.9893 +1325376000922-1356998400921,55-150,M,0.0210,0.9790 +1325376000922-1356998400921,55-150,F,0.0212,0.9788 +1356998400922-1388534400921,0-12,M,0.0000,1.0000 +1356998400922-1388534400921,0-12,F,0.0000,1.0000 +1356998400922-1388534400921,13-24,M,0.0017,0.9983 +1356998400922-1388534400921,13-24,F,0.0007,0.9993 +1356998400922-1388534400921,25-34,M,0.0028,0.9972 +1356998400922-1388534400921,25-34,F,0.0021,0.9979 +1356998400922-1388534400921,35-44,M,0.0040,0.9960 +1356998400922-1388534400921,35-44,F,0.0042,0.9958 +1356998400922-1388534400921,45-54,M,0.0076,0.9924 +1356998400922-1388534400921,45-54,F,0.0088,0.9912 +1356998400922-1388534400921,55-150,M,0.0196,0.9804 +1356998400922-1388534400921,55-150,F,0.0190,0.9810 +1388534400922-1420070400921,0-12,M,0.0004,0.9996 +1388534400922-1420070400921,0-12,F,0.0004,0.9996 +1388534400922-1420070400921,13-24,M,0.0015,0.9985 +1388534400922-1420070400921,13-24,F,0.0021,0.9979 +1388534400922-1420070400921,25-34,M,0.0027,0.9973 +1388534400922-1420070400921,25-34,F,0.0023,0.9977 +1388534400922-1420070400921,35-44,M,0.0041,0.9959 +1388534400922-1420070400921,35-44,F,0.0046,0.9954 +1388534400922-1420070400921,45-54,M,0.0068,0.9932 +1388534400922-1420070400921,45-54,F,0.0088,0.9912 +1388534400922-1420070400921,55-150,M,0.0193,0.9807 +1388534400922-1420070400921,55-150,F,0.0206,0.9794 +1420070400922-1451606400921,0-12,M,0.0009,0.9991 +1420070400922-1451606400921,0-12,F,0.0009,0.9991 +1420070400922-1451606400921,13-24,M,0.0014,0.9986 +1420070400922-1451606400921,13-24,F,0.0009,0.9991 +1420070400922-1451606400921,25-34,M,0.0023,0.9977 +1420070400922-1451606400921,25-34,F,0.0029,0.9971 +1420070400922-1451606400921,35-44,M,0.0041,0.9959 +1420070400922-1451606400921,35-44,F,0.0040,0.9960 +1420070400922-1451606400921,45-54,M,0.0066,0.9934 +1420070400922-1451606400921,45-54,F,0.0073,0.9927 +1420070400922-1451606400921,55-150,M,0.0181,0.9819 +1420070400922-1451606400921,55-150,F,0.0182,0.9818 +1451606400922-1483228800921,0-12,M,0.0009,0.9991 +1451606400922-1483228800921,0-12,F,0.0009,0.9991 +1451606400922-1483228800921,13-24,M,0.0020,0.9980 +1451606400922-1483228800921,13-24,F,0.0021,0.9979 +1451606400922-1483228800921,25-34,M,0.0032,0.9968 +1451606400922-1483228800921,25-34,F,0.0032,0.9968 +1451606400922-1483228800921,35-44,M,0.0043,0.9957 +1451606400922-1483228800921,35-44,F,0.0042,0.9958 +1451606400922-1483228800921,45-54,M,0.0062,0.9938 +1451606400922-1483228800921,45-54,F,0.0083,0.9917 +1451606400922-1483228800921,55-150,M,0.0188,0.9812 +1451606400922-1483228800921,55-150,F,0.0172,0.9828 +1483228800922-1514764800921,0-12,M,0.0010,0.9990 +1483228800922-1514764800921,0-12,F,0.0010,0.9990 +1483228800922-1514764800921,13-24,M,0.0018,0.9982 +1483228800922-1514764800921,13-24,F,0.0016,0.9984 +1483228800922-1514764800921,25-34,M,0.0030,0.9970 +1483228800922-1514764800921,25-34,F,0.0032,0.9968 +1483228800922-1514764800921,35-44,M,0.0041,0.9959 +1483228800922-1514764800921,35-44,F,0.0045,0.9955 +1483228800922-1514764800921,45-54,M,0.0067,0.9933 +1483228800922-1514764800921,45-54,F,0.0078,0.9922 +1483228800922-1514764800921,55-150,M,0.0175,0.9825 +1483228800922-1514764800921,55-150,F,0.0175,0.9825 +1514764800922-1546300800921,0-12,M,0.0005,0.9995 +1514764800922-1546300800921,0-12,F,0.0005,0.9995 +1514764800922-1546300800921,13-24,M,0.0016,0.9984 +1514764800922-1546300800921,13-24,F,0.0015,0.9985 +1514764800922-1546300800921,25-34,M,0.0025,0.9975 +1514764800922-1546300800921,25-34,F,0.0034,0.9966 +1514764800922-1546300800921,35-44,M,0.0041,0.9959 +1514764800922-1546300800921,35-44,F,0.0038,0.9962 +1514764800922-1546300800921,45-54,M,0.0064,0.9936 +1514764800922-1546300800921,45-54,F,0.0076,0.9924 +1514764800922-1546300800921,55-150,M,0.0172,0.9828 +1514764800922-1546300800921,55-150,F,0.0155,0.9845 +1546300800922-1577836800921,13-24,M,0.0017,0.9983 +1546300800922-1577836800921,13-24,F,0.0020,0.9980 +1546300800922-1577836800921,25-34,M,0.0028,0.9972 +1546300800922-1577836800921,25-34,F,0.0033,0.9967 +1546300800922-1577836800921,35-44,M,0.0042,0.9958 +1546300800922-1577836800921,35-44,F,0.0040,0.9960 +1546300800922-1577836800921,45-54,M,0.0058,0.9942 +1546300800922-1577836800921,45-54,F,0.0065,0.9935 +1546300800922-1577836800921,55-150,M,0.0160,0.9840 +1546300800922-1577836800921,55-150,F,0.0143,0.9857 \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/hiv_mortality_very_early.csv b/src/main/resources/modules/lookup_tables/hiv_mortality_very_early.csv new file mode 100644 index 0000000..2159e33 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/hiv_mortality_very_early.csv @@ -0,0 +1,14 @@ +time,Death_within_six_months,Living_with_Diagnosis_Six_Months +283996800922-315532800921,0.25,0.75 +315532800922-347155200921,0.25,0.75 +347155200922-378691200921,0.22,0.78 +378691200922-410227200921,0.22,0.78 +410227200922-441763200921,0.22,0.78 +441763200922-473385600921,0.22,0.78 +473385600922-504921600921,0.22,0.78 +504921600922-536457600921,0.2,0.8 +536457600922-567993600921,0.19,0.81 +567993600922-599616000921,0.179,0.821 +599616000922-631152000921,0.183,0.817 +631152000922-662688000921,0.162,0.838 +662688000922-694224000921,0.158,0.842 diff --git a/src/main/resources/modules/lookup_tables/hiv_stage.csv b/src/main/resources/modules/lookup_tables/hiv_stage.csv new file mode 100644 index 0000000..a853788 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/hiv_stage.csv @@ -0,0 +1,61 @@ +time,age,stage_1,stage_2,stage_3 +283996800922-1104537600921,13-24,0.27,0.40,0.33 +283996800922-1104537600921,25-34,0.16,0.39,0.45 +283996800922-1104537600921,35-44,0.13,0.33,0.54 +283996800922-1104537600921,45-54,0.12,0.29,0.59 +283996800922-1104537600921,55-150,0.09,0.22,0.69 +1104537600922-1199145600921,13-24,0.18,0.46,0.36 +1104537600922-1199145600921,25-34,0.14,0.34,0.52 +1104537600922-1199145600921,35-44,0.11,0.27,0.62 +1104537600922-1199145600921,45-54,0.10,0.22,0.68 +1104537600922-1199145600921,55-150,0.07,0.19,0.73 +1199145600922-1293840000921,13-24,0.34,0.49,0.16 +1199145600922-1293840000921,25-34,0.28,0.42,0.31 +1199145600922-1293840000921,35-44,0.24,0.33,0.43 +1199145600922-1293840000921,45-54,0.23,0.33,0.45 +1199145600922-1293840000921,55-150,0.23,0.29,0.48 +1293840000922-1325376000921,13-24,0.36,0.50,0.14 +1293840000922-1325376000921,25-34,0.32,0.42,0.26 +1293840000922-1325376000921,35-44,0.26,0.35,0.39 +1293840000922-1325376000921,45-54,0.24,0.32,0.44 +1293840000922-1325376000921,55-150,0.18,0.29,0.52 +1325376000922-1356998400921,13-24,0.37,0.50,0.13 +1325376000922-1356998400921,25-34,0.33,0.42,0.25 +1325376000922-1356998400921,35-44,0.28,0.36,0.37 +1325376000922-1356998400921,45-54,0.24,0.32,0.44 +1325376000922-1356998400921,55-150,0.21,0.29,0.50 +1356998400922-1388534400921,13-24,0.37,0.50,0.14 +1356998400922-1388534400921,25-34,0.34,0.42,0.23 +1356998400922-1388534400921,35-44,0.28,0.36,0.36 +1356998400922-1388534400921,45-54,0.26,0.32,0.42 +1356998400922-1388534400921,55-150,0.21,0.31,0.47 +1388534400922-1420070400921,13-24,0.37,0.50,0.13 +1388534400922-1420070400921,25-34,0.35,0.42,0.23 +1388534400922-1420070400921,35-44,0.28,0.37,0.36 +1388534400922-1420070400921,45-54,0.25,0.33,0.42 +1388534400922-1420070400921,55-150,0.21,0.30,0.49 +1420070400922-1451606400921,13-24,0.39,0.50,0.11 +1420070400922-1451606400921,25-34,0.35,0.44,0.21 +1420070400922-1451606400921,35-44,0.31,0.35,0.34 +1420070400922-1451606400921,45-54,0.27,0.32,0.41 +1420070400922-1451606400921,55-150,0.24,0.32,0.44 +1451606400922-1483228800921,13-24,0.38,0.49,0.13 +1451606400922-1483228800921,25-34,0.37,0.42,0.22 +1451606400922-1483228800921,35-44,0.30,0.35,0.35 +1451606400922-1483228800921,45-54,0.27,0.33,0.41 +1451606400922-1483228800921,55-150,0.25,0.31,0.44 +1483228800922-1514764800921,13-24,0.39,0.48,0.13 +1483228800922-1514764800921,25-34,0.37,0.42,0.21 +1483228800922-1514764800921,35-44,0.31,0.36,0.32 +1483228800922-1514764800921,45-54,0.26,0.32,0.42 +1483228800922-1514764800921,55-150,0.25,0.32,0.43 +1514764800922-1546300800921,13-24,0.39,0.49,0.12 +1514764800922-1546300800921,25-34,0.37,0.42,0.21 +1514764800922-1546300800921,35-44,0.33,0.36,0.32 +1514764800922-1546300800921,45-54,0.27,0.32,0.41 +1514764800922-1546300800921,55-150,0.26,0.31,0.43 +1546300800922-1577836800921,13-24,0.38,0.50,0.12 +1546300800922-1577836800921,25-34,0.36,0.42,0.21 +1546300800922-1577836800921,35-44,0.34,0.35,0.31 +1546300800922-1577836800921,45-54,0.28,0.33,0.39 +1546300800922-1577836800921,55-150,0.25,0.32,0.43 \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/maintenance_inhaler_beclomethasone_product_distribution.csv b/src/main/resources/modules/lookup_tables/maintenance_inhaler_beclomethasone_product_distribution.csv new file mode 100644 index 0000000..976d2e2 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/maintenance_inhaler_beclomethasone_product_distribution.csv @@ -0,0 +1,3 @@ +age,Prescribe_Breath_Actuated_120_Actuat_Beclomethasone_Dipropionate_0_04_Mg_Actuat_Metered_Dose_Inhaler_Qvar,Prescribe_Breath_Actuated_120_Actuat_Beclomethasone_Dipropionate_0_08_Mg_Actuat_Metered_Dose_Inhaler_Qvar +0-5,1.0,0.0 +6-103,0.398,0.602 diff --git a/src/main/resources/modules/lookup_tables/maintenance_inhaler_budesonide_product_distribution.csv b/src/main/resources/modules/lookup_tables/maintenance_inhaler_budesonide_product_distribution.csv new file mode 100644 index 0000000..2134b78 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/maintenance_inhaler_budesonide_product_distribution.csv @@ -0,0 +1,3 @@ +age,Prescribe_120_Actuat_Budesonide_0_18_Mg_Actuat_Dry_Powder_Inhaler_Pulmicort,Prescribe_60_Actuat_Budesonide_0_09_Mg_Actuat_Dry_Powder_Inhaler_Pulmicort,Prescribe_Budesonide_0_125_Mg_Ml_Inhalation_Suspension,Prescribe_Budesonide_0_125_Mg_Ml_Inhalation_Suspension_Pulmicort,Prescribe_Budesonide_0_25_Mg_Ml_Inhalation_Suspension,Prescribe_Budesonide_0_5_Mg_Ml_Inhalation_Suspension +0-5,0.0,0.0,0.295,0.151,0.553,0.0 +6-103,0.265,0.121,0.026,0.082,0.474,0.032 diff --git a/src/main/resources/modules/lookup_tables/maintenance_inhaler_fluticasone_product_distribution.csv b/src/main/resources/modules/lookup_tables/maintenance_inhaler_fluticasone_product_distribution.csv new file mode 100644 index 0000000..5b97354 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/maintenance_inhaler_fluticasone_product_distribution.csv @@ -0,0 +1,3 @@ +age,Prescribe_120_Actuat_Fluticasone_Propionate_0_044_Mg_Actuat_Metered_Dose_Inhaler_Flovent,Prescribe_120_Actuat_Fluticasone_Propionate_0_11_Mg_Actuat_Metered_Dose_Inhaler_Flovent,Prescribe_120_Actuat_Fluticasone_Propionate_0_22_Mg_Actuat_Metered_Dose_Inhaler_Flovent,Prescribe_30_Actuat_Fluticasone_Furoate_0_1_Mg_Actuat_Dry_Powder_Inhaler_Arnuity,Prescribe_30_Actuat_Fluticasone_Furoate_0_2_Mg_Actuat_Dry_Powder_Inhaler_Arnuity,Prescribe_60_Actuat_Fluticasone_Propionate_0_05_Mg_Actuat_Dry_Powder_Inhaler_Flovent,Prescribe_60_Actuat_Fluticasone_Propionate_0_1_Mg_Actuat_Dry_Powder_Inhaler_Flovent,Prescribe_60_Actuat_Fluticasone_Propionate_0_25_Mg_Actuat_Dry_Powder_Inhaler_Flovent +0-5,0.681,0.319,0.0,0.0,0.0,0.0,0.0,0.0 +6-103,0.255,0.424,0.147,0.032,0.03,0.041,0.065,0.005 diff --git a/src/main/resources/modules/lookup_tables/maintenance_inhaler_ingredient_distribution.csv b/src/main/resources/modules/lookup_tables/maintenance_inhaler_ingredient_distribution.csv new file mode 100644 index 0000000..f47ab61 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/maintenance_inhaler_ingredient_distribution.csv @@ -0,0 +1,3 @@ +age,Prescribe_Beclomethasone,Prescribe_Budesonide,Prescribe_Fluticasone,Prescribe_Mometasone +0-5,0.031,0.477,0.492,0.0 +6-103,0.069,0.24,0.551,0.14 diff --git a/src/main/resources/modules/lookup_tables/maintenance_inhaler_mometasone_product_distribution.csv b/src/main/resources/modules/lookup_tables/maintenance_inhaler_mometasone_product_distribution.csv new file mode 100644 index 0000000..cf2f68b --- /dev/null +++ b/src/main/resources/modules/lookup_tables/maintenance_inhaler_mometasone_product_distribution.csv @@ -0,0 +1,2 @@ +age,Prescribe_120_Actuat_Mometasone_Furoate_0_1_Mg_Actuat_Metered_Dose_Inhaler_Asmanex,Prescribe_120_Actuat_Mometasone_Furoate_0_22_Mg_Actuat_Dry_Powder_Inhaler_Asmanex,Prescribe_120_Actuat_Mometasone_Furoate_0_2_Mg_Actuat_Metered_Dose_Inhaler_Asmanex,Prescribe_14_Actuat_Mometasone_Furoate_0_22_Mg_Actuat_Dry_Powder_Inhaler_Asmanex,Prescribe_60_Actuat_Mometasone_Furoate_0_22_Mg_Actuat_Dry_Powder_Inhaler_Asmanex +6-103,0.318,0.034,0.279,0.031,0.338 diff --git a/src/main/resources/modules/lookup_tables/or_blood_anemia_check.csv b/src/main/resources/modules/lookup_tables/or_blood_anemia_check.csv new file mode 100644 index 0000000..e96b3aa --- /dev/null +++ b/src/main/resources/modules/lookup_tables/or_blood_anemia_check.csv @@ -0,0 +1,17 @@ +cardiac_surgery,operative_status,RBC,Platelet_Check +cabg,elective,0.095238,0.904762 +cabg,emergent,0.047619,0.952381 +cabg,emergent_salvage,0.001,0.999 +cabg,urgent,0.073504,0.926496 +tavr,elective,0.002326,0.997674 +tavr,emergent,0.001,0.999 +tavr,emergent_salvage,0.001,0.999 +tavr,urgent,0.002326,0.997674 +savreplace,elective,0.001,0.999 +savreplace,emergent,0.666667,0.333333 +savreplace,emergent_salvage,0.001,0.999 +savreplace,urgent,0.05,0.95 +savrepair,elective,0.001,0.999 +savrepair,emergent,0.001,0.999 +savrepair,emergent_salvage,0.001,0.999 +savrepair,urgent,0.001,0.999 \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/or_blood_plasma_check.csv b/src/main/resources/modules/lookup_tables/or_blood_plasma_check.csv new file mode 100644 index 0000000..dc1b726 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/or_blood_plasma_check.csv @@ -0,0 +1,17 @@ +cardiac_surgery,operative_status,Plasma_Transfusion,Terminal +cabg,elective,0.035714,0.964286 +cabg,emergent,0.02381,0.97619 +cabg,emergent_salvage,0.001,0.999 +cabg,urgent,0.034188,0.965812 +tavr,elective,0.009302,0.990698 +tavr,emergent,0.001,0.999 +tavr,emergent_salvage,0.001,0.999 +tavr,urgent,0.035088,0.964912 +savreplace,elective,0.067901,0.932099 +savreplace,emergent,0.666667,0.333333 +savreplace,emergent_salvage,0.001,0.999 +savreplace,urgent,0.375,0.625 +savrepair,elective,0.001,0.999 +savrepair,emergent,0.001,0.999 +savrepair,emergent_salvage,0.001,0.999 +savrepair,urgent,0.001,0.999 \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/or_blood_platelet_check.csv b/src/main/resources/modules/lookup_tables/or_blood_platelet_check.csv new file mode 100644 index 0000000..fbe98f2 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/or_blood_platelet_check.csv @@ -0,0 +1,17 @@ +cardiac_surgery,operative_status,Platelet_Transfusion,Plasma_Check +cabg,elective,0.038095,0.961905 +cabg,emergent,0.02381,0.97619 +cabg,emergent_salvage,0.001,0.999 +cabg,urgent,0.022222,0.977778 +tavr,elective,0.002326,0.997674 +tavr,emergent,0.001,0.999 +tavr,emergent_salvage,0.001,0.999 +tavr,urgent,0.001,0.999 +savreplace,elective,0.018519,0.981481 +savreplace,emergent,0.666667,0.333333 +savreplace,emergent_salvage,0.001,0.999 +savreplace,urgent,0.2,0.8 +savrepair,elective,0.001,0.999 +savrepair,emergent,0.001,0.999 +savrepair,emergent_salvage,0.001,0.999 +savrepair,urgent,0.001,0.999 \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/statin_atorvastatin_product_distribution.csv b/src/main/resources/modules/lookup_tables/statin_atorvastatin_product_distribution.csv new file mode 100644 index 0000000..04b19b8 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/statin_atorvastatin_product_distribution.csv @@ -0,0 +1,438 @@ +age,gender,state,Prescribe_Atorvastatin_10_Mg_Oral_Tablet,Prescribe_Atorvastatin_10_Mg_Oral_Tablet_Lipitor,Prescribe_Atorvastatin_20_Mg_Oral_Tablet,Prescribe_Atorvastatin_40_Mg_Oral_Tablet,Prescribe_Atorvastatin_40_Mg_Oral_Tablet_Lipitor,Prescribe_Atorvastatin_80_Mg_Oral_Tablet +18-25,F,Illinois,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Indiana,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Iowa,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Kansas,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Michigan,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Minnesota,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Missouri,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Nebraska,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,North Dakota,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Ohio,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,South Dakota,1.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Wisconsin,1.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Alabama,0.599,0.0,0.201,0.201,0.0,0.0 +26-35,F,Alaska,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,Arizona,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,Arkansas,0.599,0.0,0.201,0.201,0.0,0.0 +26-35,F,California,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,Colorado,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,Connecticut,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,Delaware,0.599,0.0,0.201,0.201,0.0,0.0 +26-35,F,District of Columbia,0.599,0.0,0.201,0.201,0.0,0.0 +26-35,F,Florida,0.599,0.0,0.201,0.201,0.0,0.0 +26-35,F,Georgia,0.599,0.0,0.201,0.201,0.0,0.0 +26-35,F,Hawaii,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,Idaho,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,Illinois,0.203,0.0,0.535,0.261,0.0,0.0 +26-35,F,Indiana,0.203,0.0,0.535,0.261,0.0,0.0 +26-35,F,Iowa,0.203,0.0,0.535,0.261,0.0,0.0 +26-35,F,Kansas,0.203,0.0,0.535,0.261,0.0,0.0 +26-35,F,Kentucky,0.599,0.0,0.201,0.201,0.0,0.0 +26-35,F,Louisiana,0.599,0.0,0.201,0.201,0.0,0.0 +26-35,F,Maine,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,Maryland,0.599,0.0,0.201,0.201,0.0,0.0 +26-35,F,Massachusetts,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,Michigan,0.203,0.0,0.535,0.261,0.0,0.0 +26-35,F,Minnesota,0.203,0.0,0.535,0.261,0.0,0.0 +26-35,F,Mississippi,0.599,0.0,0.201,0.201,0.0,0.0 +26-35,F,Missouri,0.203,0.0,0.535,0.261,0.0,0.0 +26-35,F,Montana,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,Nebraska,0.203,0.0,0.535,0.261,0.0,0.0 +26-35,F,Nevada,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,New Hampshire,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,New Jersey,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,New Mexico,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,New York,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,North Carolina,0.599,0.0,0.201,0.201,0.0,0.0 +26-35,F,North Dakota,0.203,0.0,0.535,0.261,0.0,0.0 +26-35,F,Ohio,0.203,0.0,0.535,0.261,0.0,0.0 +26-35,F,Oklahoma,0.599,0.0,0.201,0.201,0.0,0.0 +26-35,F,Oregon,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,Pennsylvania,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,Rhode Island,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,South Carolina,0.599,0.0,0.201,0.201,0.0,0.0 +26-35,F,South Dakota,0.203,0.0,0.535,0.261,0.0,0.0 +26-35,F,Tennessee,0.599,0.0,0.201,0.201,0.0,0.0 +26-35,F,Texas,0.599,0.0,0.201,0.201,0.0,0.0 +26-35,F,Utah,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,Vermont,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,Virginia,0.599,0.0,0.201,0.201,0.0,0.0 +26-35,F,Washington,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,F,West Virginia,0.599,0.0,0.201,0.201,0.0,0.0 +26-35,F,Wisconsin,0.203,0.0,0.535,0.261,0.0,0.0 +26-35,F,Wyoming,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,M,Alabama,0.065,0.0,0.798,0.0,0.0,0.137 +26-35,M,Alaska,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,M,Arizona,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,M,Arkansas,0.065,0.0,0.798,0.0,0.0,0.137 +26-35,M,California,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,M,Colorado,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,M,Connecticut,0.0,0.0,0.324,0.676,0.0,0.0 +26-35,M,Delaware,0.065,0.0,0.798,0.0,0.0,0.137 +26-35,M,District of Columbia,0.065,0.0,0.798,0.0,0.0,0.137 +26-35,M,Florida,0.065,0.0,0.798,0.0,0.0,0.137 +26-35,M,Georgia,0.065,0.0,0.798,0.0,0.0,0.137 +26-35,M,Hawaii,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,M,Idaho,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,M,Illinois,0.235,0.0,0.263,0.0,0.0,0.502 +26-35,M,Indiana,0.235,0.0,0.263,0.0,0.0,0.502 +26-35,M,Iowa,0.235,0.0,0.263,0.0,0.0,0.502 +26-35,M,Kansas,0.235,0.0,0.263,0.0,0.0,0.502 +26-35,M,Kentucky,0.065,0.0,0.798,0.0,0.0,0.137 +26-35,M,Louisiana,0.065,0.0,0.798,0.0,0.0,0.137 +26-35,M,Maine,0.0,0.0,0.324,0.676,0.0,0.0 +26-35,M,Maryland,0.065,0.0,0.798,0.0,0.0,0.137 +26-35,M,Massachusetts,0.0,0.0,0.324,0.676,0.0,0.0 +26-35,M,Michigan,0.235,0.0,0.263,0.0,0.0,0.502 +26-35,M,Minnesota,0.235,0.0,0.263,0.0,0.0,0.502 +26-35,M,Mississippi,0.065,0.0,0.798,0.0,0.0,0.137 +26-35,M,Missouri,0.235,0.0,0.263,0.0,0.0,0.502 +26-35,M,Montana,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,M,Nebraska,0.235,0.0,0.263,0.0,0.0,0.502 +26-35,M,Nevada,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,M,New Hampshire,0.0,0.0,0.324,0.676,0.0,0.0 +26-35,M,New Jersey,0.0,0.0,0.324,0.676,0.0,0.0 +26-35,M,New Mexico,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,M,New York,0.0,0.0,0.324,0.676,0.0,0.0 +26-35,M,North Carolina,0.065,0.0,0.798,0.0,0.0,0.137 +26-35,M,North Dakota,0.235,0.0,0.263,0.0,0.0,0.502 +26-35,M,Ohio,0.235,0.0,0.263,0.0,0.0,0.502 +26-35,M,Oklahoma,0.065,0.0,0.798,0.0,0.0,0.137 +26-35,M,Oregon,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,M,Pennsylvania,0.0,0.0,0.324,0.676,0.0,0.0 +26-35,M,Rhode Island,0.0,0.0,0.324,0.676,0.0,0.0 +26-35,M,South Carolina,0.065,0.0,0.798,0.0,0.0,0.137 +26-35,M,South Dakota,0.235,0.0,0.263,0.0,0.0,0.502 +26-35,M,Tennessee,0.065,0.0,0.798,0.0,0.0,0.137 +26-35,M,Texas,0.065,0.0,0.798,0.0,0.0,0.137 +26-35,M,Utah,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,M,Vermont,0.0,0.0,0.324,0.676,0.0,0.0 +26-35,M,Virginia,0.065,0.0,0.798,0.0,0.0,0.137 +26-35,M,Washington,0.0,0.0,1.0,0.0,0.0,0.0 +26-35,M,West Virginia,0.065,0.0,0.798,0.0,0.0,0.137 +26-35,M,Wisconsin,0.235,0.0,0.263,0.0,0.0,0.502 +26-35,M,Wyoming,0.0,0.0,1.0,0.0,0.0,0.0 +36-45,F,Alabama,0.478,0.0,0.049,0.426,0.047,0.0 +36-45,F,Alaska,0.219,0.0,0.247,0.128,0.0,0.406 +36-45,F,Arizona,0.219,0.0,0.247,0.128,0.0,0.406 +36-45,F,Arkansas,0.478,0.0,0.049,0.426,0.047,0.0 +36-45,F,California,0.219,0.0,0.247,0.128,0.0,0.406 +36-45,F,Colorado,0.219,0.0,0.247,0.128,0.0,0.406 +36-45,F,Connecticut,0.647,0.0,0.189,0.163,0.0,0.0 +36-45,F,Delaware,0.478,0.0,0.049,0.426,0.047,0.0 +36-45,F,District of Columbia,0.478,0.0,0.049,0.426,0.047,0.0 +36-45,F,Florida,0.478,0.0,0.049,0.426,0.047,0.0 +36-45,F,Georgia,0.478,0.0,0.049,0.426,0.047,0.0 +36-45,F,Hawaii,0.219,0.0,0.247,0.128,0.0,0.406 +36-45,F,Idaho,0.219,0.0,0.247,0.128,0.0,0.406 +36-45,F,Illinois,0.248,0.0,0.451,0.301,0.0,0.0 +36-45,F,Indiana,0.248,0.0,0.451,0.301,0.0,0.0 +36-45,F,Iowa,0.248,0.0,0.451,0.301,0.0,0.0 +36-45,F,Kansas,0.248,0.0,0.451,0.301,0.0,0.0 +36-45,F,Kentucky,0.478,0.0,0.049,0.426,0.047,0.0 +36-45,F,Louisiana,0.478,0.0,0.049,0.426,0.047,0.0 +36-45,F,Maine,0.647,0.0,0.189,0.163,0.0,0.0 +36-45,F,Maryland,0.478,0.0,0.049,0.426,0.047,0.0 +36-45,F,Massachusetts,0.647,0.0,0.189,0.163,0.0,0.0 +36-45,F,Michigan,0.248,0.0,0.451,0.301,0.0,0.0 +36-45,F,Minnesota,0.248,0.0,0.451,0.301,0.0,0.0 +36-45,F,Mississippi,0.478,0.0,0.049,0.426,0.047,0.0 +36-45,F,Missouri,0.248,0.0,0.451,0.301,0.0,0.0 +36-45,F,Montana,0.219,0.0,0.247,0.128,0.0,0.406 +36-45,F,Nebraska,0.248,0.0,0.451,0.301,0.0,0.0 +36-45,F,Nevada,0.219,0.0,0.247,0.128,0.0,0.406 +36-45,F,New Hampshire,0.647,0.0,0.189,0.163,0.0,0.0 +36-45,F,New Jersey,0.647,0.0,0.189,0.163,0.0,0.0 +36-45,F,New Mexico,0.219,0.0,0.247,0.128,0.0,0.406 +36-45,F,New York,0.647,0.0,0.189,0.163,0.0,0.0 +36-45,F,North Carolina,0.478,0.0,0.049,0.426,0.047,0.0 +36-45,F,North Dakota,0.248,0.0,0.451,0.301,0.0,0.0 +36-45,F,Ohio,0.248,0.0,0.451,0.301,0.0,0.0 +36-45,F,Oklahoma,0.478,0.0,0.049,0.426,0.047,0.0 +36-45,F,Oregon,0.219,0.0,0.247,0.128,0.0,0.406 +36-45,F,Pennsylvania,0.647,0.0,0.189,0.163,0.0,0.0 +36-45,F,Rhode Island,0.647,0.0,0.189,0.163,0.0,0.0 +36-45,F,South Carolina,0.478,0.0,0.049,0.426,0.047,0.0 +36-45,F,South Dakota,0.248,0.0,0.451,0.301,0.0,0.0 +36-45,F,Tennessee,0.478,0.0,0.049,0.426,0.047,0.0 +36-45,F,Texas,0.478,0.0,0.049,0.426,0.047,0.0 +36-45,F,Utah,0.219,0.0,0.247,0.128,0.0,0.406 +36-45,F,Vermont,0.647,0.0,0.189,0.163,0.0,0.0 +36-45,F,Virginia,0.478,0.0,0.049,0.426,0.047,0.0 +36-45,F,Washington,0.219,0.0,0.247,0.128,0.0,0.406 +36-45,F,West Virginia,0.478,0.0,0.049,0.426,0.047,0.0 +36-45,F,Wisconsin,0.248,0.0,0.451,0.301,0.0,0.0 +36-45,F,Wyoming,0.219,0.0,0.247,0.128,0.0,0.406 +36-45,M,Alabama,0.129,0.0,0.578,0.139,0.0,0.154 +36-45,M,Alaska,0.413,0.0,0.315,0.129,0.0,0.143 +36-45,M,Arizona,0.413,0.0,0.315,0.129,0.0,0.143 +36-45,M,Arkansas,0.129,0.0,0.578,0.139,0.0,0.154 +36-45,M,California,0.413,0.0,0.315,0.129,0.0,0.143 +36-45,M,Colorado,0.413,0.0,0.315,0.129,0.0,0.143 +36-45,M,Connecticut,0.252,0.0,0.291,0.152,0.0,0.306 +36-45,M,Delaware,0.129,0.0,0.578,0.139,0.0,0.154 +36-45,M,District of Columbia,0.129,0.0,0.578,0.139,0.0,0.154 +36-45,M,Florida,0.129,0.0,0.578,0.139,0.0,0.154 +36-45,M,Georgia,0.129,0.0,0.578,0.139,0.0,0.154 +36-45,M,Hawaii,0.413,0.0,0.315,0.129,0.0,0.143 +36-45,M,Idaho,0.413,0.0,0.315,0.129,0.0,0.143 +36-45,M,Illinois,0.291,0.0,0.309,0.177,0.0,0.223 +36-45,M,Indiana,0.291,0.0,0.309,0.177,0.0,0.223 +36-45,M,Iowa,0.291,0.0,0.309,0.177,0.0,0.223 +36-45,M,Kansas,0.291,0.0,0.309,0.177,0.0,0.223 +36-45,M,Kentucky,0.129,0.0,0.578,0.139,0.0,0.154 +36-45,M,Louisiana,0.129,0.0,0.578,0.139,0.0,0.154 +36-45,M,Maine,0.252,0.0,0.291,0.152,0.0,0.306 +36-45,M,Maryland,0.129,0.0,0.578,0.139,0.0,0.154 +36-45,M,Massachusetts,0.252,0.0,0.291,0.152,0.0,0.306 +36-45,M,Michigan,0.291,0.0,0.309,0.177,0.0,0.223 +36-45,M,Minnesota,0.291,0.0,0.309,0.177,0.0,0.223 +36-45,M,Mississippi,0.129,0.0,0.578,0.139,0.0,0.154 +36-45,M,Missouri,0.291,0.0,0.309,0.177,0.0,0.223 +36-45,M,Montana,0.413,0.0,0.315,0.129,0.0,0.143 +36-45,M,Nebraska,0.291,0.0,0.309,0.177,0.0,0.223 +36-45,M,Nevada,0.413,0.0,0.315,0.129,0.0,0.143 +36-45,M,New Hampshire,0.252,0.0,0.291,0.152,0.0,0.306 +36-45,M,New Jersey,0.252,0.0,0.291,0.152,0.0,0.306 +36-45,M,New Mexico,0.413,0.0,0.315,0.129,0.0,0.143 +36-45,M,New York,0.252,0.0,0.291,0.152,0.0,0.306 +36-45,M,North Carolina,0.129,0.0,0.578,0.139,0.0,0.154 +36-45,M,North Dakota,0.291,0.0,0.309,0.177,0.0,0.223 +36-45,M,Ohio,0.291,0.0,0.309,0.177,0.0,0.223 +36-45,M,Oklahoma,0.129,0.0,0.578,0.139,0.0,0.154 +36-45,M,Oregon,0.413,0.0,0.315,0.129,0.0,0.143 +36-45,M,Pennsylvania,0.252,0.0,0.291,0.152,0.0,0.306 +36-45,M,Rhode Island,0.252,0.0,0.291,0.152,0.0,0.306 +36-45,M,South Carolina,0.129,0.0,0.578,0.139,0.0,0.154 +36-45,M,South Dakota,0.291,0.0,0.309,0.177,0.0,0.223 +36-45,M,Tennessee,0.129,0.0,0.578,0.139,0.0,0.154 +36-45,M,Texas,0.129,0.0,0.578,0.139,0.0,0.154 +36-45,M,Utah,0.413,0.0,0.315,0.129,0.0,0.143 +36-45,M,Vermont,0.252,0.0,0.291,0.152,0.0,0.306 +36-45,M,Virginia,0.129,0.0,0.578,0.139,0.0,0.154 +36-45,M,Washington,0.413,0.0,0.315,0.129,0.0,0.143 +36-45,M,West Virginia,0.129,0.0,0.578,0.139,0.0,0.154 +36-45,M,Wisconsin,0.291,0.0,0.309,0.177,0.0,0.223 +36-45,M,Wyoming,0.413,0.0,0.315,0.129,0.0,0.143 +4-7,M,Alabama,0.0,0.0,0.0,1.0,0.0,0.0 +4-7,M,Arkansas,0.0,0.0,0.0,1.0,0.0,0.0 +4-7,M,Delaware,0.0,0.0,0.0,1.0,0.0,0.0 +4-7,M,District of Columbia,0.0,0.0,0.0,1.0,0.0,0.0 +4-7,M,Florida,0.0,0.0,0.0,1.0,0.0,0.0 +4-7,M,Georgia,0.0,0.0,0.0,1.0,0.0,0.0 +4-7,M,Kentucky,0.0,0.0,0.0,1.0,0.0,0.0 +4-7,M,Louisiana,0.0,0.0,0.0,1.0,0.0,0.0 +4-7,M,Maryland,0.0,0.0,0.0,1.0,0.0,0.0 +4-7,M,Mississippi,0.0,0.0,0.0,1.0,0.0,0.0 +4-7,M,North Carolina,0.0,0.0,0.0,1.0,0.0,0.0 +4-7,M,Oklahoma,0.0,0.0,0.0,1.0,0.0,0.0 +4-7,M,South Carolina,0.0,0.0,0.0,1.0,0.0,0.0 +4-7,M,Tennessee,0.0,0.0,0.0,1.0,0.0,0.0 +4-7,M,Texas,0.0,0.0,0.0,1.0,0.0,0.0 +4-7,M,Virginia,0.0,0.0,0.0,1.0,0.0,0.0 +4-7,M,West Virginia,0.0,0.0,0.0,1.0,0.0,0.0 +46-65,F,Alabama,0.286,0.004,0.316,0.279,0.0,0.115 +46-65,F,Alaska,0.246,0.0,0.304,0.355,0.009,0.087 +46-65,F,Arizona,0.246,0.0,0.304,0.355,0.009,0.087 +46-65,F,Arkansas,0.286,0.004,0.316,0.279,0.0,0.115 +46-65,F,California,0.246,0.0,0.304,0.355,0.009,0.087 +46-65,F,Colorado,0.246,0.0,0.304,0.355,0.009,0.087 +46-65,F,Connecticut,0.28,0.025,0.399,0.247,0.0,0.048 +46-65,F,Delaware,0.286,0.004,0.316,0.279,0.0,0.115 +46-65,F,District of Columbia,0.286,0.004,0.316,0.279,0.0,0.115 +46-65,F,Florida,0.286,0.004,0.316,0.279,0.0,0.115 +46-65,F,Georgia,0.286,0.004,0.316,0.279,0.0,0.115 +46-65,F,Hawaii,0.246,0.0,0.304,0.355,0.009,0.087 +46-65,F,Idaho,0.246,0.0,0.304,0.355,0.009,0.087 +46-65,F,Illinois,0.26,0.0,0.309,0.347,0.009,0.076 +46-65,F,Indiana,0.26,0.0,0.309,0.347,0.009,0.076 +46-65,F,Iowa,0.26,0.0,0.309,0.347,0.009,0.076 +46-65,F,Kansas,0.26,0.0,0.309,0.347,0.009,0.076 +46-65,F,Kentucky,0.286,0.004,0.316,0.279,0.0,0.115 +46-65,F,Louisiana,0.286,0.004,0.316,0.279,0.0,0.115 +46-65,F,Maine,0.28,0.025,0.399,0.247,0.0,0.048 +46-65,F,Maryland,0.286,0.004,0.316,0.279,0.0,0.115 +46-65,F,Massachusetts,0.28,0.025,0.399,0.247,0.0,0.048 +46-65,F,Michigan,0.26,0.0,0.309,0.347,0.009,0.076 +46-65,F,Minnesota,0.26,0.0,0.309,0.347,0.009,0.076 +46-65,F,Mississippi,0.286,0.004,0.316,0.279,0.0,0.115 +46-65,F,Missouri,0.26,0.0,0.309,0.347,0.009,0.076 +46-65,F,Montana,0.246,0.0,0.304,0.355,0.009,0.087 +46-65,F,Nebraska,0.26,0.0,0.309,0.347,0.009,0.076 +46-65,F,Nevada,0.246,0.0,0.304,0.355,0.009,0.087 +46-65,F,New Hampshire,0.28,0.025,0.399,0.247,0.0,0.048 +46-65,F,New Jersey,0.28,0.025,0.399,0.247,0.0,0.048 +46-65,F,New Mexico,0.246,0.0,0.304,0.355,0.009,0.087 +46-65,F,New York,0.28,0.025,0.399,0.247,0.0,0.048 +46-65,F,North Carolina,0.286,0.004,0.316,0.279,0.0,0.115 +46-65,F,North Dakota,0.26,0.0,0.309,0.347,0.009,0.076 +46-65,F,Ohio,0.26,0.0,0.309,0.347,0.009,0.076 +46-65,F,Oklahoma,0.286,0.004,0.316,0.279,0.0,0.115 +46-65,F,Oregon,0.246,0.0,0.304,0.355,0.009,0.087 +46-65,F,Pennsylvania,0.28,0.025,0.399,0.247,0.0,0.048 +46-65,F,Rhode Island,0.28,0.025,0.399,0.247,0.0,0.048 +46-65,F,South Carolina,0.286,0.004,0.316,0.279,0.0,0.115 +46-65,F,South Dakota,0.26,0.0,0.309,0.347,0.009,0.076 +46-65,F,Tennessee,0.286,0.004,0.316,0.279,0.0,0.115 +46-65,F,Texas,0.286,0.004,0.316,0.279,0.0,0.115 +46-65,F,Utah,0.246,0.0,0.304,0.355,0.009,0.087 +46-65,F,Vermont,0.28,0.025,0.399,0.247,0.0,0.048 +46-65,F,Virginia,0.286,0.004,0.316,0.279,0.0,0.115 +46-65,F,Washington,0.246,0.0,0.304,0.355,0.009,0.087 +46-65,F,West Virginia,0.286,0.004,0.316,0.279,0.0,0.115 +46-65,F,Wisconsin,0.26,0.0,0.309,0.347,0.009,0.076 +46-65,F,Wyoming,0.246,0.0,0.304,0.355,0.009,0.087 +46-65,M,Alabama,0.216,0.0,0.301,0.309,0.035,0.138 +46-65,M,Alaska,0.178,0.0,0.24,0.441,0.002,0.139 +46-65,M,Arizona,0.178,0.0,0.24,0.441,0.002,0.139 +46-65,M,Arkansas,0.216,0.0,0.301,0.309,0.035,0.138 +46-65,M,California,0.178,0.0,0.24,0.441,0.002,0.139 +46-65,M,Colorado,0.178,0.0,0.24,0.441,0.002,0.139 +46-65,M,Connecticut,0.192,0.009,0.285,0.27,0.021,0.224 +46-65,M,Delaware,0.216,0.0,0.301,0.309,0.035,0.138 +46-65,M,District of Columbia,0.216,0.0,0.301,0.309,0.035,0.138 +46-65,M,Florida,0.216,0.0,0.301,0.309,0.035,0.138 +46-65,M,Georgia,0.216,0.0,0.301,0.309,0.035,0.138 +46-65,M,Hawaii,0.178,0.0,0.24,0.441,0.002,0.139 +46-65,M,Idaho,0.178,0.0,0.24,0.441,0.002,0.139 +46-65,M,Illinois,0.16,0.0,0.258,0.458,0.039,0.086 +46-65,M,Indiana,0.16,0.0,0.258,0.458,0.039,0.086 +46-65,M,Iowa,0.16,0.0,0.258,0.458,0.039,0.086 +46-65,M,Kansas,0.16,0.0,0.258,0.458,0.039,0.086 +46-65,M,Kentucky,0.216,0.0,0.301,0.309,0.035,0.138 +46-65,M,Louisiana,0.216,0.0,0.301,0.309,0.035,0.138 +46-65,M,Maine,0.192,0.009,0.285,0.27,0.021,0.224 +46-65,M,Maryland,0.216,0.0,0.301,0.309,0.035,0.138 +46-65,M,Massachusetts,0.192,0.009,0.285,0.27,0.021,0.224 +46-65,M,Michigan,0.16,0.0,0.258,0.458,0.039,0.086 +46-65,M,Minnesota,0.16,0.0,0.258,0.458,0.039,0.086 +46-65,M,Mississippi,0.216,0.0,0.301,0.309,0.035,0.138 +46-65,M,Missouri,0.16,0.0,0.258,0.458,0.039,0.086 +46-65,M,Montana,0.178,0.0,0.24,0.441,0.002,0.139 +46-65,M,Nebraska,0.16,0.0,0.258,0.458,0.039,0.086 +46-65,M,Nevada,0.178,0.0,0.24,0.441,0.002,0.139 +46-65,M,New Hampshire,0.192,0.009,0.285,0.27,0.021,0.224 +46-65,M,New Jersey,0.192,0.009,0.285,0.27,0.021,0.224 +46-65,M,New Mexico,0.178,0.0,0.24,0.441,0.002,0.139 +46-65,M,New York,0.192,0.009,0.285,0.27,0.021,0.224 +46-65,M,North Carolina,0.216,0.0,0.301,0.309,0.035,0.138 +46-65,M,North Dakota,0.16,0.0,0.258,0.458,0.039,0.086 +46-65,M,Ohio,0.16,0.0,0.258,0.458,0.039,0.086 +46-65,M,Oklahoma,0.216,0.0,0.301,0.309,0.035,0.138 +46-65,M,Oregon,0.178,0.0,0.24,0.441,0.002,0.139 +46-65,M,Pennsylvania,0.192,0.009,0.285,0.27,0.021,0.224 +46-65,M,Rhode Island,0.192,0.009,0.285,0.27,0.021,0.224 +46-65,M,South Carolina,0.216,0.0,0.301,0.309,0.035,0.138 +46-65,M,South Dakota,0.16,0.0,0.258,0.458,0.039,0.086 +46-65,M,Tennessee,0.216,0.0,0.301,0.309,0.035,0.138 +46-65,M,Texas,0.216,0.0,0.301,0.309,0.035,0.138 +46-65,M,Utah,0.178,0.0,0.24,0.441,0.002,0.139 +46-65,M,Vermont,0.192,0.009,0.285,0.27,0.021,0.224 +46-65,M,Virginia,0.216,0.0,0.301,0.309,0.035,0.138 +46-65,M,Washington,0.178,0.0,0.24,0.441,0.002,0.139 +46-65,M,West Virginia,0.216,0.0,0.301,0.309,0.035,0.138 +46-65,M,Wisconsin,0.16,0.0,0.258,0.458,0.039,0.086 +46-65,M,Wyoming,0.178,0.0,0.24,0.441,0.002,0.139 +65-103,F,Alabama,0.31,0.017,0.367,0.241,0.005,0.06 +65-103,F,Alaska,0.262,0.007,0.275,0.372,0.0,0.084 +65-103,F,Arizona,0.262,0.007,0.275,0.372,0.0,0.084 +65-103,F,Arkansas,0.31,0.017,0.367,0.241,0.005,0.06 +65-103,F,California,0.262,0.007,0.275,0.372,0.0,0.084 +65-103,F,Colorado,0.262,0.007,0.275,0.372,0.0,0.084 +65-103,F,Connecticut,0.344,0.0,0.288,0.252,0.0,0.116 +65-103,F,Delaware,0.31,0.017,0.367,0.241,0.005,0.06 +65-103,F,District of Columbia,0.31,0.017,0.367,0.241,0.005,0.06 +65-103,F,Florida,0.31,0.017,0.367,0.241,0.005,0.06 +65-103,F,Georgia,0.31,0.017,0.367,0.241,0.005,0.06 +65-103,F,Hawaii,0.262,0.007,0.275,0.372,0.0,0.084 +65-103,F,Idaho,0.262,0.007,0.275,0.372,0.0,0.084 +65-103,F,Illinois,0.216,0.007,0.287,0.364,0.011,0.116 +65-103,F,Indiana,0.216,0.007,0.287,0.364,0.011,0.116 +65-103,F,Iowa,0.216,0.007,0.287,0.364,0.011,0.116 +65-103,F,Kansas,0.216,0.007,0.287,0.364,0.011,0.116 +65-103,F,Kentucky,0.31,0.017,0.367,0.241,0.005,0.06 +65-103,F,Louisiana,0.31,0.017,0.367,0.241,0.005,0.06 +65-103,F,Maine,0.344,0.0,0.288,0.252,0.0,0.116 +65-103,F,Maryland,0.31,0.017,0.367,0.241,0.005,0.06 +65-103,F,Massachusetts,0.344,0.0,0.288,0.252,0.0,0.116 +65-103,F,Michigan,0.216,0.007,0.287,0.364,0.011,0.116 +65-103,F,Minnesota,0.216,0.007,0.287,0.364,0.011,0.116 +65-103,F,Mississippi,0.31,0.017,0.367,0.241,0.005,0.06 +65-103,F,Missouri,0.216,0.007,0.287,0.364,0.011,0.116 +65-103,F,Montana,0.262,0.007,0.275,0.372,0.0,0.084 +65-103,F,Nebraska,0.216,0.007,0.287,0.364,0.011,0.116 +65-103,F,Nevada,0.262,0.007,0.275,0.372,0.0,0.084 +65-103,F,New Hampshire,0.344,0.0,0.288,0.252,0.0,0.116 +65-103,F,New Jersey,0.344,0.0,0.288,0.252,0.0,0.116 +65-103,F,New Mexico,0.262,0.007,0.275,0.372,0.0,0.084 +65-103,F,New York,0.344,0.0,0.288,0.252,0.0,0.116 +65-103,F,North Carolina,0.31,0.017,0.367,0.241,0.005,0.06 +65-103,F,North Dakota,0.216,0.007,0.287,0.364,0.011,0.116 +65-103,F,Ohio,0.216,0.007,0.287,0.364,0.011,0.116 +65-103,F,Oklahoma,0.31,0.017,0.367,0.241,0.005,0.06 +65-103,F,Oregon,0.262,0.007,0.275,0.372,0.0,0.084 +65-103,F,Pennsylvania,0.344,0.0,0.288,0.252,0.0,0.116 +65-103,F,Rhode Island,0.344,0.0,0.288,0.252,0.0,0.116 +65-103,F,South Carolina,0.31,0.017,0.367,0.241,0.005,0.06 +65-103,F,South Dakota,0.216,0.007,0.287,0.364,0.011,0.116 +65-103,F,Tennessee,0.31,0.017,0.367,0.241,0.005,0.06 +65-103,F,Texas,0.31,0.017,0.367,0.241,0.005,0.06 +65-103,F,Utah,0.262,0.007,0.275,0.372,0.0,0.084 +65-103,F,Vermont,0.344,0.0,0.288,0.252,0.0,0.116 +65-103,F,Virginia,0.31,0.017,0.367,0.241,0.005,0.06 +65-103,F,Washington,0.262,0.007,0.275,0.372,0.0,0.084 +65-103,F,West Virginia,0.31,0.017,0.367,0.241,0.005,0.06 +65-103,F,Wisconsin,0.216,0.007,0.287,0.364,0.011,0.116 +65-103,F,Wyoming,0.262,0.007,0.275,0.372,0.0,0.084 +65-103,M,Alabama,0.158,0.006,0.365,0.337,0.0,0.134 +65-103,M,Alaska,0.129,0.022,0.229,0.462,0.0,0.158 +65-103,M,Arizona,0.129,0.022,0.229,0.462,0.0,0.158 +65-103,M,Arkansas,0.158,0.006,0.365,0.337,0.0,0.134 +65-103,M,California,0.129,0.022,0.229,0.462,0.0,0.158 +65-103,M,Colorado,0.129,0.022,0.229,0.462,0.0,0.158 +65-103,M,Connecticut,0.208,0.008,0.199,0.408,0.0,0.177 +65-103,M,Delaware,0.158,0.006,0.365,0.337,0.0,0.134 +65-103,M,District of Columbia,0.158,0.006,0.365,0.337,0.0,0.134 +65-103,M,Florida,0.158,0.006,0.365,0.337,0.0,0.134 +65-103,M,Georgia,0.158,0.006,0.365,0.337,0.0,0.134 +65-103,M,Hawaii,0.129,0.022,0.229,0.462,0.0,0.158 +65-103,M,Idaho,0.129,0.022,0.229,0.462,0.0,0.158 +65-103,M,Illinois,0.145,0.005,0.279,0.374,0.0,0.197 +65-103,M,Indiana,0.145,0.005,0.279,0.374,0.0,0.197 +65-103,M,Iowa,0.145,0.005,0.279,0.374,0.0,0.197 +65-103,M,Kansas,0.145,0.005,0.279,0.374,0.0,0.197 +65-103,M,Kentucky,0.158,0.006,0.365,0.337,0.0,0.134 +65-103,M,Louisiana,0.158,0.006,0.365,0.337,0.0,0.134 +65-103,M,Maine,0.208,0.008,0.199,0.408,0.0,0.177 +65-103,M,Maryland,0.158,0.006,0.365,0.337,0.0,0.134 +65-103,M,Massachusetts,0.208,0.008,0.199,0.408,0.0,0.177 +65-103,M,Michigan,0.145,0.005,0.279,0.374,0.0,0.197 +65-103,M,Minnesota,0.145,0.005,0.279,0.374,0.0,0.197 +65-103,M,Mississippi,0.158,0.006,0.365,0.337,0.0,0.134 +65-103,M,Missouri,0.145,0.005,0.279,0.374,0.0,0.197 +65-103,M,Montana,0.129,0.022,0.229,0.462,0.0,0.158 +65-103,M,Nebraska,0.145,0.005,0.279,0.374,0.0,0.197 +65-103,M,Nevada,0.129,0.022,0.229,0.462,0.0,0.158 +65-103,M,New Hampshire,0.208,0.008,0.199,0.408,0.0,0.177 +65-103,M,New Jersey,0.208,0.008,0.199,0.408,0.0,0.177 +65-103,M,New Mexico,0.129,0.022,0.229,0.462,0.0,0.158 +65-103,M,New York,0.208,0.008,0.199,0.408,0.0,0.177 +65-103,M,North Carolina,0.158,0.006,0.365,0.337,0.0,0.134 +65-103,M,North Dakota,0.145,0.005,0.279,0.374,0.0,0.197 +65-103,M,Ohio,0.145,0.005,0.279,0.374,0.0,0.197 +65-103,M,Oklahoma,0.158,0.006,0.365,0.337,0.0,0.134 +65-103,M,Oregon,0.129,0.022,0.229,0.462,0.0,0.158 +65-103,M,Pennsylvania,0.208,0.008,0.199,0.408,0.0,0.177 +65-103,M,Rhode Island,0.208,0.008,0.199,0.408,0.0,0.177 +65-103,M,South Carolina,0.158,0.006,0.365,0.337,0.0,0.134 +65-103,M,South Dakota,0.145,0.005,0.279,0.374,0.0,0.197 +65-103,M,Tennessee,0.158,0.006,0.365,0.337,0.0,0.134 +65-103,M,Texas,0.158,0.006,0.365,0.337,0.0,0.134 +65-103,M,Utah,0.129,0.022,0.229,0.462,0.0,0.158 +65-103,M,Vermont,0.208,0.008,0.199,0.408,0.0,0.177 +65-103,M,Virginia,0.158,0.006,0.365,0.337,0.0,0.134 +65-103,M,Washington,0.129,0.022,0.229,0.462,0.0,0.158 +65-103,M,West Virginia,0.158,0.006,0.365,0.337,0.0,0.134 +65-103,M,Wisconsin,0.145,0.005,0.279,0.374,0.0,0.197 +65-103,M,Wyoming,0.129,0.022,0.229,0.462,0.0,0.158 diff --git a/src/main/resources/modules/lookup_tables/statin_ezetimibe_simvastatin_product_distribution.csv b/src/main/resources/modules/lookup_tables/statin_ezetimibe_simvastatin_product_distribution.csv new file mode 100644 index 0000000..dc8ef1e --- /dev/null +++ b/src/main/resources/modules/lookup_tables/statin_ezetimibe_simvastatin_product_distribution.csv @@ -0,0 +1,139 @@ +age,gender,state,Prescribe_Ezetimibe_10_Mg_Simvastatin_20_Mg_Oral_Tablet,Prescribe_Ezetimibe_10_Mg_Simvastatin_40_Mg_Oral_Tablet,Prescribe_Ezetimibe_10_Mg_Simvastatin_40_Mg_Oral_Tablet_Vytorin,Prescribe_Ezetimibe_10_Mg_Simvastatin_80_Mg_Oral_Tablet +46-65,F,Connecticut,0.0,1.0,0.0,0.0 +46-65,F,Maine,0.0,1.0,0.0,0.0 +46-65,F,Massachusetts,0.0,1.0,0.0,0.0 +46-65,F,New Hampshire,0.0,1.0,0.0,0.0 +46-65,F,New Jersey,0.0,1.0,0.0,0.0 +46-65,F,New York,0.0,1.0,0.0,0.0 +46-65,F,Pennsylvania,0.0,1.0,0.0,0.0 +46-65,F,Rhode Island,0.0,1.0,0.0,0.0 +46-65,F,Vermont,0.0,1.0,0.0,0.0 +46-65,M,Alabama,0.0,1.0,0.0,0.0 +46-65,M,Alaska,0.0,1.0,0.0,0.0 +46-65,M,Arizona,0.0,1.0,0.0,0.0 +46-65,M,Arkansas,0.0,1.0,0.0,0.0 +46-65,M,California,0.0,1.0,0.0,0.0 +46-65,M,Colorado,0.0,1.0,0.0,0.0 +46-65,M,Connecticut,0.0,0.5,0.5,0.0 +46-65,M,Delaware,0.0,1.0,0.0,0.0 +46-65,M,District of Columbia,0.0,1.0,0.0,0.0 +46-65,M,Florida,0.0,1.0,0.0,0.0 +46-65,M,Georgia,0.0,1.0,0.0,0.0 +46-65,M,Hawaii,0.0,1.0,0.0,0.0 +46-65,M,Idaho,0.0,1.0,0.0,0.0 +46-65,M,Kentucky,0.0,1.0,0.0,0.0 +46-65,M,Louisiana,0.0,1.0,0.0,0.0 +46-65,M,Maine,0.0,0.5,0.5,0.0 +46-65,M,Maryland,0.0,1.0,0.0,0.0 +46-65,M,Massachusetts,0.0,0.5,0.5,0.0 +46-65,M,Mississippi,0.0,1.0,0.0,0.0 +46-65,M,Montana,0.0,1.0,0.0,0.0 +46-65,M,Nevada,0.0,1.0,0.0,0.0 +46-65,M,New Hampshire,0.0,0.5,0.5,0.0 +46-65,M,New Jersey,0.0,0.5,0.5,0.0 +46-65,M,New Mexico,0.0,1.0,0.0,0.0 +46-65,M,New York,0.0,0.5,0.5,0.0 +46-65,M,North Carolina,0.0,1.0,0.0,0.0 +46-65,M,Oklahoma,0.0,1.0,0.0,0.0 +46-65,M,Oregon,0.0,1.0,0.0,0.0 +46-65,M,Pennsylvania,0.0,0.5,0.5,0.0 +46-65,M,Rhode Island,0.0,0.5,0.5,0.0 +46-65,M,South Carolina,0.0,1.0,0.0,0.0 +46-65,M,Tennessee,0.0,1.0,0.0,0.0 +46-65,M,Texas,0.0,1.0,0.0,0.0 +46-65,M,Utah,0.0,1.0,0.0,0.0 +46-65,M,Vermont,0.0,0.5,0.5,0.0 +46-65,M,Virginia,0.0,1.0,0.0,0.0 +46-65,M,Washington,0.0,1.0,0.0,0.0 +46-65,M,West Virginia,0.0,1.0,0.0,0.0 +46-65,M,Wyoming,0.0,1.0,0.0,0.0 +65-103,F,Alabama,0.331,0.669,0.0,0.0 +65-103,F,Alaska,0.153,0.847,0.0,0.0 +65-103,F,Arizona,0.153,0.847,0.0,0.0 +65-103,F,Arkansas,0.331,0.669,0.0,0.0 +65-103,F,California,0.153,0.847,0.0,0.0 +65-103,F,Colorado,0.153,0.847,0.0,0.0 +65-103,F,Connecticut,1.0,0.0,0.0,0.0 +65-103,F,Delaware,0.331,0.669,0.0,0.0 +65-103,F,District of Columbia,0.331,0.669,0.0,0.0 +65-103,F,Florida,0.331,0.669,0.0,0.0 +65-103,F,Georgia,0.331,0.669,0.0,0.0 +65-103,F,Hawaii,0.153,0.847,0.0,0.0 +65-103,F,Idaho,0.153,0.847,0.0,0.0 +65-103,F,Kentucky,0.331,0.669,0.0,0.0 +65-103,F,Louisiana,0.331,0.669,0.0,0.0 +65-103,F,Maine,1.0,0.0,0.0,0.0 +65-103,F,Maryland,0.331,0.669,0.0,0.0 +65-103,F,Massachusetts,1.0,0.0,0.0,0.0 +65-103,F,Mississippi,0.331,0.669,0.0,0.0 +65-103,F,Montana,0.153,0.847,0.0,0.0 +65-103,F,Nevada,0.153,0.847,0.0,0.0 +65-103,F,New Hampshire,1.0,0.0,0.0,0.0 +65-103,F,New Jersey,1.0,0.0,0.0,0.0 +65-103,F,New Mexico,0.153,0.847,0.0,0.0 +65-103,F,New York,1.0,0.0,0.0,0.0 +65-103,F,North Carolina,0.331,0.669,0.0,0.0 +65-103,F,Oklahoma,0.331,0.669,0.0,0.0 +65-103,F,Oregon,0.153,0.847,0.0,0.0 +65-103,F,Pennsylvania,1.0,0.0,0.0,0.0 +65-103,F,Rhode Island,1.0,0.0,0.0,0.0 +65-103,F,South Carolina,0.331,0.669,0.0,0.0 +65-103,F,Tennessee,0.331,0.669,0.0,0.0 +65-103,F,Texas,0.331,0.669,0.0,0.0 +65-103,F,Utah,0.153,0.847,0.0,0.0 +65-103,F,Vermont,1.0,0.0,0.0,0.0 +65-103,F,Virginia,0.331,0.669,0.0,0.0 +65-103,F,Washington,0.153,0.847,0.0,0.0 +65-103,F,West Virginia,0.331,0.669,0.0,0.0 +65-103,F,Wyoming,0.153,0.847,0.0,0.0 +65-103,M,Alabama,1.0,0.0,0.0,0.0 +65-103,M,Alaska,0.0,0.568,0.432,0.0 +65-103,M,Arizona,0.0,0.568,0.432,0.0 +65-103,M,Arkansas,1.0,0.0,0.0,0.0 +65-103,M,California,0.0,0.568,0.432,0.0 +65-103,M,Colorado,0.0,0.568,0.432,0.0 +65-103,M,Connecticut,0.582,0.418,0.0,0.0 +65-103,M,Delaware,1.0,0.0,0.0,0.0 +65-103,M,District of Columbia,1.0,0.0,0.0,0.0 +65-103,M,Florida,1.0,0.0,0.0,0.0 +65-103,M,Georgia,1.0,0.0,0.0,0.0 +65-103,M,Hawaii,0.0,0.568,0.432,0.0 +65-103,M,Idaho,0.0,0.568,0.432,0.0 +65-103,M,Illinois,0.322,0.0,0.0,0.678 +65-103,M,Indiana,0.322,0.0,0.0,0.678 +65-103,M,Iowa,0.322,0.0,0.0,0.678 +65-103,M,Kansas,0.322,0.0,0.0,0.678 +65-103,M,Kentucky,1.0,0.0,0.0,0.0 +65-103,M,Louisiana,1.0,0.0,0.0,0.0 +65-103,M,Maine,0.582,0.418,0.0,0.0 +65-103,M,Maryland,1.0,0.0,0.0,0.0 +65-103,M,Massachusetts,0.582,0.418,0.0,0.0 +65-103,M,Michigan,0.322,0.0,0.0,0.678 +65-103,M,Minnesota,0.322,0.0,0.0,0.678 +65-103,M,Mississippi,1.0,0.0,0.0,0.0 +65-103,M,Missouri,0.322,0.0,0.0,0.678 +65-103,M,Montana,0.0,0.568,0.432,0.0 +65-103,M,Nebraska,0.322,0.0,0.0,0.678 +65-103,M,Nevada,0.0,0.568,0.432,0.0 +65-103,M,New Hampshire,0.582,0.418,0.0,0.0 +65-103,M,New Jersey,0.582,0.418,0.0,0.0 +65-103,M,New Mexico,0.0,0.568,0.432,0.0 +65-103,M,New York,0.582,0.418,0.0,0.0 +65-103,M,North Carolina,1.0,0.0,0.0,0.0 +65-103,M,North Dakota,0.322,0.0,0.0,0.678 +65-103,M,Ohio,0.322,0.0,0.0,0.678 +65-103,M,Oklahoma,1.0,0.0,0.0,0.0 +65-103,M,Oregon,0.0,0.568,0.432,0.0 +65-103,M,Pennsylvania,0.582,0.418,0.0,0.0 +65-103,M,Rhode Island,0.582,0.418,0.0,0.0 +65-103,M,South Carolina,1.0,0.0,0.0,0.0 +65-103,M,South Dakota,0.322,0.0,0.0,0.678 +65-103,M,Tennessee,1.0,0.0,0.0,0.0 +65-103,M,Texas,1.0,0.0,0.0,0.0 +65-103,M,Utah,0.0,0.568,0.432,0.0 +65-103,M,Vermont,0.582,0.418,0.0,0.0 +65-103,M,Virginia,1.0,0.0,0.0,0.0 +65-103,M,Washington,0.0,0.568,0.432,0.0 +65-103,M,West Virginia,1.0,0.0,0.0,0.0 +65-103,M,Wisconsin,0.322,0.0,0.0,0.678 +65-103,M,Wyoming,0.0,0.568,0.432,0.0 diff --git a/src/main/resources/modules/lookup_tables/statin_ingredient_distribution.csv b/src/main/resources/modules/lookup_tables/statin_ingredient_distribution.csv new file mode 100644 index 0000000..ad5e487 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/statin_ingredient_distribution.csv @@ -0,0 +1,438 @@ +age,gender,state,Prescribe_Atorvastatin,Prescribe_Ezetimibe_Simvastatin,Prescribe_Lovastatin,Prescribe_Pitavastatin,Prescribe_Pravastatin,Prescribe_Rosuvastatin,Prescribe_Simvastatin +18-25,F,Illinois,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Indiana,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Iowa,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Kansas,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Michigan,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Minnesota,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Missouri,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Nebraska,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,North Dakota,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Ohio,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,South Dakota,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +18-25,F,Wisconsin,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Alabama,0.322,0.0,0.178,0.0,0.176,0.0,0.323 +26-35,F,Alaska,0.416,0.0,0.0,0.0,0.0,0.0,0.584 +26-35,F,Arizona,0.416,0.0,0.0,0.0,0.0,0.0,0.584 +26-35,F,Arkansas,0.322,0.0,0.178,0.0,0.176,0.0,0.323 +26-35,F,California,0.416,0.0,0.0,0.0,0.0,0.0,0.584 +26-35,F,Colorado,0.416,0.0,0.0,0.0,0.0,0.0,0.584 +26-35,F,Connecticut,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Delaware,0.322,0.0,0.178,0.0,0.176,0.0,0.323 +26-35,F,District of Columbia,0.322,0.0,0.178,0.0,0.176,0.0,0.323 +26-35,F,Florida,0.322,0.0,0.178,0.0,0.176,0.0,0.323 +26-35,F,Georgia,0.322,0.0,0.178,0.0,0.176,0.0,0.323 +26-35,F,Hawaii,0.416,0.0,0.0,0.0,0.0,0.0,0.584 +26-35,F,Idaho,0.416,0.0,0.0,0.0,0.0,0.0,0.584 +26-35,F,Illinois,0.405,0.0,0.0,0.0,0.0,0.0,0.595 +26-35,F,Indiana,0.405,0.0,0.0,0.0,0.0,0.0,0.595 +26-35,F,Iowa,0.405,0.0,0.0,0.0,0.0,0.0,0.595 +26-35,F,Kansas,0.405,0.0,0.0,0.0,0.0,0.0,0.595 +26-35,F,Kentucky,0.322,0.0,0.178,0.0,0.176,0.0,0.323 +26-35,F,Louisiana,0.322,0.0,0.178,0.0,0.176,0.0,0.323 +26-35,F,Maine,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Maryland,0.322,0.0,0.178,0.0,0.176,0.0,0.323 +26-35,F,Massachusetts,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Michigan,0.405,0.0,0.0,0.0,0.0,0.0,0.595 +26-35,F,Minnesota,0.405,0.0,0.0,0.0,0.0,0.0,0.595 +26-35,F,Mississippi,0.322,0.0,0.178,0.0,0.176,0.0,0.323 +26-35,F,Missouri,0.405,0.0,0.0,0.0,0.0,0.0,0.595 +26-35,F,Montana,0.416,0.0,0.0,0.0,0.0,0.0,0.584 +26-35,F,Nebraska,0.405,0.0,0.0,0.0,0.0,0.0,0.595 +26-35,F,Nevada,0.416,0.0,0.0,0.0,0.0,0.0,0.584 +26-35,F,New Hampshire,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,New Jersey,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,New Mexico,0.416,0.0,0.0,0.0,0.0,0.0,0.584 +26-35,F,New York,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,North Carolina,0.322,0.0,0.178,0.0,0.176,0.0,0.323 +26-35,F,North Dakota,0.405,0.0,0.0,0.0,0.0,0.0,0.595 +26-35,F,Ohio,0.405,0.0,0.0,0.0,0.0,0.0,0.595 +26-35,F,Oklahoma,0.322,0.0,0.178,0.0,0.176,0.0,0.323 +26-35,F,Oregon,0.416,0.0,0.0,0.0,0.0,0.0,0.584 +26-35,F,Pennsylvania,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Rhode Island,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,South Carolina,0.322,0.0,0.178,0.0,0.176,0.0,0.323 +26-35,F,South Dakota,0.405,0.0,0.0,0.0,0.0,0.0,0.595 +26-35,F,Tennessee,0.322,0.0,0.178,0.0,0.176,0.0,0.323 +26-35,F,Texas,0.322,0.0,0.178,0.0,0.176,0.0,0.323 +26-35,F,Utah,0.416,0.0,0.0,0.0,0.0,0.0,0.584 +26-35,F,Vermont,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,F,Virginia,0.322,0.0,0.178,0.0,0.176,0.0,0.323 +26-35,F,Washington,0.416,0.0,0.0,0.0,0.0,0.0,0.584 +26-35,F,West Virginia,0.322,0.0,0.178,0.0,0.176,0.0,0.323 +26-35,F,Wisconsin,0.405,0.0,0.0,0.0,0.0,0.0,0.595 +26-35,F,Wyoming,0.416,0.0,0.0,0.0,0.0,0.0,0.584 +26-35,M,Alabama,0.645,0.0,0.0,0.0,0.137,0.124,0.093 +26-35,M,Alaska,0.413,0.0,0.0,0.0,0.0,0.587,0.0 +26-35,M,Arizona,0.413,0.0,0.0,0.0,0.0,0.587,0.0 +26-35,M,Arkansas,0.645,0.0,0.0,0.0,0.137,0.124,0.093 +26-35,M,California,0.413,0.0,0.0,0.0,0.0,0.587,0.0 +26-35,M,Colorado,0.413,0.0,0.0,0.0,0.0,0.587,0.0 +26-35,M,Connecticut,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Delaware,0.645,0.0,0.0,0.0,0.137,0.124,0.093 +26-35,M,District of Columbia,0.645,0.0,0.0,0.0,0.137,0.124,0.093 +26-35,M,Florida,0.645,0.0,0.0,0.0,0.137,0.124,0.093 +26-35,M,Georgia,0.645,0.0,0.0,0.0,0.137,0.124,0.093 +26-35,M,Hawaii,0.413,0.0,0.0,0.0,0.0,0.587,0.0 +26-35,M,Idaho,0.413,0.0,0.0,0.0,0.0,0.587,0.0 +26-35,M,Illinois,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Indiana,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Iowa,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Kansas,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Kentucky,0.645,0.0,0.0,0.0,0.137,0.124,0.093 +26-35,M,Louisiana,0.645,0.0,0.0,0.0,0.137,0.124,0.093 +26-35,M,Maine,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Maryland,0.645,0.0,0.0,0.0,0.137,0.124,0.093 +26-35,M,Massachusetts,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Michigan,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Minnesota,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Mississippi,0.645,0.0,0.0,0.0,0.137,0.124,0.093 +26-35,M,Missouri,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Montana,0.413,0.0,0.0,0.0,0.0,0.587,0.0 +26-35,M,Nebraska,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Nevada,0.413,0.0,0.0,0.0,0.0,0.587,0.0 +26-35,M,New Hampshire,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,New Jersey,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,New Mexico,0.413,0.0,0.0,0.0,0.0,0.587,0.0 +26-35,M,New York,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,North Carolina,0.645,0.0,0.0,0.0,0.137,0.124,0.093 +26-35,M,North Dakota,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Ohio,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Oklahoma,0.645,0.0,0.0,0.0,0.137,0.124,0.093 +26-35,M,Oregon,0.413,0.0,0.0,0.0,0.0,0.587,0.0 +26-35,M,Pennsylvania,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Rhode Island,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,South Carolina,0.645,0.0,0.0,0.0,0.137,0.124,0.093 +26-35,M,South Dakota,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Tennessee,0.645,0.0,0.0,0.0,0.137,0.124,0.093 +26-35,M,Texas,0.645,0.0,0.0,0.0,0.137,0.124,0.093 +26-35,M,Utah,0.413,0.0,0.0,0.0,0.0,0.587,0.0 +26-35,M,Vermont,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Virginia,0.645,0.0,0.0,0.0,0.137,0.124,0.093 +26-35,M,Washington,0.413,0.0,0.0,0.0,0.0,0.587,0.0 +26-35,M,West Virginia,0.645,0.0,0.0,0.0,0.137,0.124,0.093 +26-35,M,Wisconsin,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Wyoming,0.413,0.0,0.0,0.0,0.0,0.587,0.0 +36-45,F,Alabama,0.549,0.0,0.093,0.0,0.214,0.0,0.144 +36-45,F,Alaska,0.564,0.0,0.0,0.0,0.073,0.053,0.31 +36-45,F,Arizona,0.564,0.0,0.0,0.0,0.073,0.053,0.31 +36-45,F,Arkansas,0.549,0.0,0.093,0.0,0.214,0.0,0.144 +36-45,F,California,0.564,0.0,0.0,0.0,0.073,0.053,0.31 +36-45,F,Colorado,0.564,0.0,0.0,0.0,0.073,0.053,0.31 +36-45,F,Connecticut,0.34,0.0,0.0,0.0,0.266,0.278,0.116 +36-45,F,Delaware,0.549,0.0,0.093,0.0,0.214,0.0,0.144 +36-45,F,District of Columbia,0.549,0.0,0.093,0.0,0.214,0.0,0.144 +36-45,F,Florida,0.549,0.0,0.093,0.0,0.214,0.0,0.144 +36-45,F,Georgia,0.549,0.0,0.093,0.0,0.214,0.0,0.144 +36-45,F,Hawaii,0.564,0.0,0.0,0.0,0.073,0.053,0.31 +36-45,F,Idaho,0.564,0.0,0.0,0.0,0.073,0.053,0.31 +36-45,F,Illinois,0.571,0.0,0.0,0.0,0.082,0.239,0.108 +36-45,F,Indiana,0.571,0.0,0.0,0.0,0.082,0.239,0.108 +36-45,F,Iowa,0.571,0.0,0.0,0.0,0.082,0.239,0.108 +36-45,F,Kansas,0.571,0.0,0.0,0.0,0.082,0.239,0.108 +36-45,F,Kentucky,0.549,0.0,0.093,0.0,0.214,0.0,0.144 +36-45,F,Louisiana,0.549,0.0,0.093,0.0,0.214,0.0,0.144 +36-45,F,Maine,0.34,0.0,0.0,0.0,0.266,0.278,0.116 +36-45,F,Maryland,0.549,0.0,0.093,0.0,0.214,0.0,0.144 +36-45,F,Massachusetts,0.34,0.0,0.0,0.0,0.266,0.278,0.116 +36-45,F,Michigan,0.571,0.0,0.0,0.0,0.082,0.239,0.108 +36-45,F,Minnesota,0.571,0.0,0.0,0.0,0.082,0.239,0.108 +36-45,F,Mississippi,0.549,0.0,0.093,0.0,0.214,0.0,0.144 +36-45,F,Missouri,0.571,0.0,0.0,0.0,0.082,0.239,0.108 +36-45,F,Montana,0.564,0.0,0.0,0.0,0.073,0.053,0.31 +36-45,F,Nebraska,0.571,0.0,0.0,0.0,0.082,0.239,0.108 +36-45,F,Nevada,0.564,0.0,0.0,0.0,0.073,0.053,0.31 +36-45,F,New Hampshire,0.34,0.0,0.0,0.0,0.266,0.278,0.116 +36-45,F,New Jersey,0.34,0.0,0.0,0.0,0.266,0.278,0.116 +36-45,F,New Mexico,0.564,0.0,0.0,0.0,0.073,0.053,0.31 +36-45,F,New York,0.34,0.0,0.0,0.0,0.266,0.278,0.116 +36-45,F,North Carolina,0.549,0.0,0.093,0.0,0.214,0.0,0.144 +36-45,F,North Dakota,0.571,0.0,0.0,0.0,0.082,0.239,0.108 +36-45,F,Ohio,0.571,0.0,0.0,0.0,0.082,0.239,0.108 +36-45,F,Oklahoma,0.549,0.0,0.093,0.0,0.214,0.0,0.144 +36-45,F,Oregon,0.564,0.0,0.0,0.0,0.073,0.053,0.31 +36-45,F,Pennsylvania,0.34,0.0,0.0,0.0,0.266,0.278,0.116 +36-45,F,Rhode Island,0.34,0.0,0.0,0.0,0.266,0.278,0.116 +36-45,F,South Carolina,0.549,0.0,0.093,0.0,0.214,0.0,0.144 +36-45,F,South Dakota,0.571,0.0,0.0,0.0,0.082,0.239,0.108 +36-45,F,Tennessee,0.549,0.0,0.093,0.0,0.214,0.0,0.144 +36-45,F,Texas,0.549,0.0,0.093,0.0,0.214,0.0,0.144 +36-45,F,Utah,0.564,0.0,0.0,0.0,0.073,0.053,0.31 +36-45,F,Vermont,0.34,0.0,0.0,0.0,0.266,0.278,0.116 +36-45,F,Virginia,0.549,0.0,0.093,0.0,0.214,0.0,0.144 +36-45,F,Washington,0.564,0.0,0.0,0.0,0.073,0.053,0.31 +36-45,F,West Virginia,0.549,0.0,0.093,0.0,0.214,0.0,0.144 +36-45,F,Wisconsin,0.571,0.0,0.0,0.0,0.082,0.239,0.108 +36-45,F,Wyoming,0.564,0.0,0.0,0.0,0.073,0.053,0.31 +36-45,M,Alabama,0.345,0.0,0.058,0.022,0.219,0.15,0.206 +36-45,M,Alaska,0.701,0.0,0.0,0.0,0.0,0.034,0.265 +36-45,M,Arizona,0.701,0.0,0.0,0.0,0.0,0.034,0.265 +36-45,M,Arkansas,0.345,0.0,0.058,0.022,0.219,0.15,0.206 +36-45,M,California,0.701,0.0,0.0,0.0,0.0,0.034,0.265 +36-45,M,Colorado,0.701,0.0,0.0,0.0,0.0,0.034,0.265 +36-45,M,Connecticut,0.613,0.0,0.0,0.0,0.13,0.126,0.13 +36-45,M,Delaware,0.345,0.0,0.058,0.022,0.219,0.15,0.206 +36-45,M,District of Columbia,0.345,0.0,0.058,0.022,0.219,0.15,0.206 +36-45,M,Florida,0.345,0.0,0.058,0.022,0.219,0.15,0.206 +36-45,M,Georgia,0.345,0.0,0.058,0.022,0.219,0.15,0.206 +36-45,M,Hawaii,0.701,0.0,0.0,0.0,0.0,0.034,0.265 +36-45,M,Idaho,0.701,0.0,0.0,0.0,0.0,0.034,0.265 +36-45,M,Illinois,0.471,0.0,0.198,0.0,0.055,0.058,0.219 +36-45,M,Indiana,0.471,0.0,0.198,0.0,0.055,0.058,0.219 +36-45,M,Iowa,0.471,0.0,0.198,0.0,0.055,0.058,0.219 +36-45,M,Kansas,0.471,0.0,0.198,0.0,0.055,0.058,0.219 +36-45,M,Kentucky,0.345,0.0,0.058,0.022,0.219,0.15,0.206 +36-45,M,Louisiana,0.345,0.0,0.058,0.022,0.219,0.15,0.206 +36-45,M,Maine,0.613,0.0,0.0,0.0,0.13,0.126,0.13 +36-45,M,Maryland,0.345,0.0,0.058,0.022,0.219,0.15,0.206 +36-45,M,Massachusetts,0.613,0.0,0.0,0.0,0.13,0.126,0.13 +36-45,M,Michigan,0.471,0.0,0.198,0.0,0.055,0.058,0.219 +36-45,M,Minnesota,0.471,0.0,0.198,0.0,0.055,0.058,0.219 +36-45,M,Mississippi,0.345,0.0,0.058,0.022,0.219,0.15,0.206 +36-45,M,Missouri,0.471,0.0,0.198,0.0,0.055,0.058,0.219 +36-45,M,Montana,0.701,0.0,0.0,0.0,0.0,0.034,0.265 +36-45,M,Nebraska,0.471,0.0,0.198,0.0,0.055,0.058,0.219 +36-45,M,Nevada,0.701,0.0,0.0,0.0,0.0,0.034,0.265 +36-45,M,New Hampshire,0.613,0.0,0.0,0.0,0.13,0.126,0.13 +36-45,M,New Jersey,0.613,0.0,0.0,0.0,0.13,0.126,0.13 +36-45,M,New Mexico,0.701,0.0,0.0,0.0,0.0,0.034,0.265 +36-45,M,New York,0.613,0.0,0.0,0.0,0.13,0.126,0.13 +36-45,M,North Carolina,0.345,0.0,0.058,0.022,0.219,0.15,0.206 +36-45,M,North Dakota,0.471,0.0,0.198,0.0,0.055,0.058,0.219 +36-45,M,Ohio,0.471,0.0,0.198,0.0,0.055,0.058,0.219 +36-45,M,Oklahoma,0.345,0.0,0.058,0.022,0.219,0.15,0.206 +36-45,M,Oregon,0.701,0.0,0.0,0.0,0.0,0.034,0.265 +36-45,M,Pennsylvania,0.613,0.0,0.0,0.0,0.13,0.126,0.13 +36-45,M,Rhode Island,0.613,0.0,0.0,0.0,0.13,0.126,0.13 +36-45,M,South Carolina,0.345,0.0,0.058,0.022,0.219,0.15,0.206 +36-45,M,South Dakota,0.471,0.0,0.198,0.0,0.055,0.058,0.219 +36-45,M,Tennessee,0.345,0.0,0.058,0.022,0.219,0.15,0.206 +36-45,M,Texas,0.345,0.0,0.058,0.022,0.219,0.15,0.206 +36-45,M,Utah,0.701,0.0,0.0,0.0,0.0,0.034,0.265 +36-45,M,Vermont,0.613,0.0,0.0,0.0,0.13,0.126,0.13 +36-45,M,Virginia,0.345,0.0,0.058,0.022,0.219,0.15,0.206 +36-45,M,Washington,0.701,0.0,0.0,0.0,0.0,0.034,0.265 +36-45,M,West Virginia,0.345,0.0,0.058,0.022,0.219,0.15,0.206 +36-45,M,Wisconsin,0.471,0.0,0.198,0.0,0.055,0.058,0.219 +36-45,M,Wyoming,0.701,0.0,0.0,0.0,0.0,0.034,0.265 +4-7,M,Alabama,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Arkansas,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Delaware,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,District of Columbia,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Florida,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Georgia,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Kentucky,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Louisiana,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Maryland,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Mississippi,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,North Carolina,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Oklahoma,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,South Carolina,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Tennessee,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Texas,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,Virginia,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +4-7,M,West Virginia,1.0,0.0,0.0,0.0,0.0,0.0,0.0 +46-65,F,Alabama,0.446,0.0,0.03,0.021,0.166,0.151,0.186 +46-65,F,Alaska,0.564,0.0,0.019,0.014,0.064,0.092,0.246 +46-65,F,Arizona,0.564,0.0,0.019,0.014,0.064,0.092,0.246 +46-65,F,Arkansas,0.446,0.0,0.03,0.021,0.166,0.151,0.186 +46-65,F,California,0.564,0.0,0.019,0.014,0.064,0.092,0.246 +46-65,F,Colorado,0.564,0.0,0.019,0.014,0.064,0.092,0.246 +46-65,F,Connecticut,0.576,0.02,0.03,0.0,0.045,0.102,0.226 +46-65,F,Delaware,0.446,0.0,0.03,0.021,0.166,0.151,0.186 +46-65,F,District of Columbia,0.446,0.0,0.03,0.021,0.166,0.151,0.186 +46-65,F,Florida,0.446,0.0,0.03,0.021,0.166,0.151,0.186 +46-65,F,Georgia,0.446,0.0,0.03,0.021,0.166,0.151,0.186 +46-65,F,Hawaii,0.564,0.0,0.019,0.014,0.064,0.092,0.246 +46-65,F,Idaho,0.564,0.0,0.019,0.014,0.064,0.092,0.246 +46-65,F,Illinois,0.469,0.0,0.062,0.006,0.103,0.172,0.188 +46-65,F,Indiana,0.469,0.0,0.062,0.006,0.103,0.172,0.188 +46-65,F,Iowa,0.469,0.0,0.062,0.006,0.103,0.172,0.188 +46-65,F,Kansas,0.469,0.0,0.062,0.006,0.103,0.172,0.188 +46-65,F,Kentucky,0.446,0.0,0.03,0.021,0.166,0.151,0.186 +46-65,F,Louisiana,0.446,0.0,0.03,0.021,0.166,0.151,0.186 +46-65,F,Maine,0.576,0.02,0.03,0.0,0.045,0.102,0.226 +46-65,F,Maryland,0.446,0.0,0.03,0.021,0.166,0.151,0.186 +46-65,F,Massachusetts,0.576,0.02,0.03,0.0,0.045,0.102,0.226 +46-65,F,Michigan,0.469,0.0,0.062,0.006,0.103,0.172,0.188 +46-65,F,Minnesota,0.469,0.0,0.062,0.006,0.103,0.172,0.188 +46-65,F,Mississippi,0.446,0.0,0.03,0.021,0.166,0.151,0.186 +46-65,F,Missouri,0.469,0.0,0.062,0.006,0.103,0.172,0.188 +46-65,F,Montana,0.564,0.0,0.019,0.014,0.064,0.092,0.246 +46-65,F,Nebraska,0.469,0.0,0.062,0.006,0.103,0.172,0.188 +46-65,F,Nevada,0.564,0.0,0.019,0.014,0.064,0.092,0.246 +46-65,F,New Hampshire,0.576,0.02,0.03,0.0,0.045,0.102,0.226 +46-65,F,New Jersey,0.576,0.02,0.03,0.0,0.045,0.102,0.226 +46-65,F,New Mexico,0.564,0.0,0.019,0.014,0.064,0.092,0.246 +46-65,F,New York,0.576,0.02,0.03,0.0,0.045,0.102,0.226 +46-65,F,North Carolina,0.446,0.0,0.03,0.021,0.166,0.151,0.186 +46-65,F,North Dakota,0.469,0.0,0.062,0.006,0.103,0.172,0.188 +46-65,F,Ohio,0.469,0.0,0.062,0.006,0.103,0.172,0.188 +46-65,F,Oklahoma,0.446,0.0,0.03,0.021,0.166,0.151,0.186 +46-65,F,Oregon,0.564,0.0,0.019,0.014,0.064,0.092,0.246 +46-65,F,Pennsylvania,0.576,0.02,0.03,0.0,0.045,0.102,0.226 +46-65,F,Rhode Island,0.576,0.02,0.03,0.0,0.045,0.102,0.226 +46-65,F,South Carolina,0.446,0.0,0.03,0.021,0.166,0.151,0.186 +46-65,F,South Dakota,0.469,0.0,0.062,0.006,0.103,0.172,0.188 +46-65,F,Tennessee,0.446,0.0,0.03,0.021,0.166,0.151,0.186 +46-65,F,Texas,0.446,0.0,0.03,0.021,0.166,0.151,0.186 +46-65,F,Utah,0.564,0.0,0.019,0.014,0.064,0.092,0.246 +46-65,F,Vermont,0.576,0.02,0.03,0.0,0.045,0.102,0.226 +46-65,F,Virginia,0.446,0.0,0.03,0.021,0.166,0.151,0.186 +46-65,F,Washington,0.564,0.0,0.019,0.014,0.064,0.092,0.246 +46-65,F,West Virginia,0.446,0.0,0.03,0.021,0.166,0.151,0.186 +46-65,F,Wisconsin,0.469,0.0,0.062,0.006,0.103,0.172,0.188 +46-65,F,Wyoming,0.564,0.0,0.019,0.014,0.064,0.092,0.246 +46-65,M,Alabama,0.527,0.003,0.034,0.005,0.106,0.144,0.182 +46-65,M,Alaska,0.574,0.007,0.05,0.0,0.064,0.076,0.229 +46-65,M,Arizona,0.574,0.007,0.05,0.0,0.064,0.076,0.229 +46-65,M,Arkansas,0.527,0.003,0.034,0.005,0.106,0.144,0.182 +46-65,M,California,0.574,0.007,0.05,0.0,0.064,0.076,0.229 +46-65,M,Colorado,0.574,0.007,0.05,0.0,0.064,0.076,0.229 +46-65,M,Connecticut,0.614,0.005,0.019,0.0,0.083,0.093,0.187 +46-65,M,Delaware,0.527,0.003,0.034,0.005,0.106,0.144,0.182 +46-65,M,District of Columbia,0.527,0.003,0.034,0.005,0.106,0.144,0.182 +46-65,M,Florida,0.527,0.003,0.034,0.005,0.106,0.144,0.182 +46-65,M,Georgia,0.527,0.003,0.034,0.005,0.106,0.144,0.182 +46-65,M,Hawaii,0.574,0.007,0.05,0.0,0.064,0.076,0.229 +46-65,M,Idaho,0.574,0.007,0.05,0.0,0.064,0.076,0.229 +46-65,M,Illinois,0.559,0.0,0.028,0.004,0.066,0.127,0.217 +46-65,M,Indiana,0.559,0.0,0.028,0.004,0.066,0.127,0.217 +46-65,M,Iowa,0.559,0.0,0.028,0.004,0.066,0.127,0.217 +46-65,M,Kansas,0.559,0.0,0.028,0.004,0.066,0.127,0.217 +46-65,M,Kentucky,0.527,0.003,0.034,0.005,0.106,0.144,0.182 +46-65,M,Louisiana,0.527,0.003,0.034,0.005,0.106,0.144,0.182 +46-65,M,Maine,0.614,0.005,0.019,0.0,0.083,0.093,0.187 +46-65,M,Maryland,0.527,0.003,0.034,0.005,0.106,0.144,0.182 +46-65,M,Massachusetts,0.614,0.005,0.019,0.0,0.083,0.093,0.187 +46-65,M,Michigan,0.559,0.0,0.028,0.004,0.066,0.127,0.217 +46-65,M,Minnesota,0.559,0.0,0.028,0.004,0.066,0.127,0.217 +46-65,M,Mississippi,0.527,0.003,0.034,0.005,0.106,0.144,0.182 +46-65,M,Missouri,0.559,0.0,0.028,0.004,0.066,0.127,0.217 +46-65,M,Montana,0.574,0.007,0.05,0.0,0.064,0.076,0.229 +46-65,M,Nebraska,0.559,0.0,0.028,0.004,0.066,0.127,0.217 +46-65,M,Nevada,0.574,0.007,0.05,0.0,0.064,0.076,0.229 +46-65,M,New Hampshire,0.614,0.005,0.019,0.0,0.083,0.093,0.187 +46-65,M,New Jersey,0.614,0.005,0.019,0.0,0.083,0.093,0.187 +46-65,M,New Mexico,0.574,0.007,0.05,0.0,0.064,0.076,0.229 +46-65,M,New York,0.614,0.005,0.019,0.0,0.083,0.093,0.187 +46-65,M,North Carolina,0.527,0.003,0.034,0.005,0.106,0.144,0.182 +46-65,M,North Dakota,0.559,0.0,0.028,0.004,0.066,0.127,0.217 +46-65,M,Ohio,0.559,0.0,0.028,0.004,0.066,0.127,0.217 +46-65,M,Oklahoma,0.527,0.003,0.034,0.005,0.106,0.144,0.182 +46-65,M,Oregon,0.574,0.007,0.05,0.0,0.064,0.076,0.229 +46-65,M,Pennsylvania,0.614,0.005,0.019,0.0,0.083,0.093,0.187 +46-65,M,Rhode Island,0.614,0.005,0.019,0.0,0.083,0.093,0.187 +46-65,M,South Carolina,0.527,0.003,0.034,0.005,0.106,0.144,0.182 +46-65,M,South Dakota,0.559,0.0,0.028,0.004,0.066,0.127,0.217 +46-65,M,Tennessee,0.527,0.003,0.034,0.005,0.106,0.144,0.182 +46-65,M,Texas,0.527,0.003,0.034,0.005,0.106,0.144,0.182 +46-65,M,Utah,0.574,0.007,0.05,0.0,0.064,0.076,0.229 +46-65,M,Vermont,0.614,0.005,0.019,0.0,0.083,0.093,0.187 +46-65,M,Virginia,0.527,0.003,0.034,0.005,0.106,0.144,0.182 +46-65,M,Washington,0.574,0.007,0.05,0.0,0.064,0.076,0.229 +46-65,M,West Virginia,0.527,0.003,0.034,0.005,0.106,0.144,0.182 +46-65,M,Wisconsin,0.559,0.0,0.028,0.004,0.066,0.127,0.217 +46-65,M,Wyoming,0.574,0.007,0.05,0.0,0.064,0.076,0.229 +65-103,F,Alabama,0.423,0.006,0.063,0.01,0.163,0.141,0.193 +65-103,F,Alaska,0.442,0.006,0.085,0.0,0.114,0.063,0.291 +65-103,F,Arizona,0.442,0.006,0.085,0.0,0.114,0.063,0.291 +65-103,F,Arkansas,0.423,0.006,0.063,0.01,0.163,0.141,0.193 +65-103,F,California,0.442,0.006,0.085,0.0,0.114,0.063,0.291 +65-103,F,Colorado,0.442,0.006,0.085,0.0,0.114,0.063,0.291 +65-103,F,Connecticut,0.468,0.009,0.029,0.01,0.13,0.131,0.223 +65-103,F,Delaware,0.423,0.006,0.063,0.01,0.163,0.141,0.193 +65-103,F,District of Columbia,0.423,0.006,0.063,0.01,0.163,0.141,0.193 +65-103,F,Florida,0.423,0.006,0.063,0.01,0.163,0.141,0.193 +65-103,F,Georgia,0.423,0.006,0.063,0.01,0.163,0.141,0.193 +65-103,F,Hawaii,0.442,0.006,0.085,0.0,0.114,0.063,0.291 +65-103,F,Idaho,0.442,0.006,0.085,0.0,0.114,0.063,0.291 +65-103,F,Illinois,0.457,0.0,0.043,0.002,0.13,0.083,0.285 +65-103,F,Indiana,0.457,0.0,0.043,0.002,0.13,0.083,0.285 +65-103,F,Iowa,0.457,0.0,0.043,0.002,0.13,0.083,0.285 +65-103,F,Kansas,0.457,0.0,0.043,0.002,0.13,0.083,0.285 +65-103,F,Kentucky,0.423,0.006,0.063,0.01,0.163,0.141,0.193 +65-103,F,Louisiana,0.423,0.006,0.063,0.01,0.163,0.141,0.193 +65-103,F,Maine,0.468,0.009,0.029,0.01,0.13,0.131,0.223 +65-103,F,Maryland,0.423,0.006,0.063,0.01,0.163,0.141,0.193 +65-103,F,Massachusetts,0.468,0.009,0.029,0.01,0.13,0.131,0.223 +65-103,F,Michigan,0.457,0.0,0.043,0.002,0.13,0.083,0.285 +65-103,F,Minnesota,0.457,0.0,0.043,0.002,0.13,0.083,0.285 +65-103,F,Mississippi,0.423,0.006,0.063,0.01,0.163,0.141,0.193 +65-103,F,Missouri,0.457,0.0,0.043,0.002,0.13,0.083,0.285 +65-103,F,Montana,0.442,0.006,0.085,0.0,0.114,0.063,0.291 +65-103,F,Nebraska,0.457,0.0,0.043,0.002,0.13,0.083,0.285 +65-103,F,Nevada,0.442,0.006,0.085,0.0,0.114,0.063,0.291 +65-103,F,New Hampshire,0.468,0.009,0.029,0.01,0.13,0.131,0.223 +65-103,F,New Jersey,0.468,0.009,0.029,0.01,0.13,0.131,0.223 +65-103,F,New Mexico,0.442,0.006,0.085,0.0,0.114,0.063,0.291 +65-103,F,New York,0.468,0.009,0.029,0.01,0.13,0.131,0.223 +65-103,F,North Carolina,0.423,0.006,0.063,0.01,0.163,0.141,0.193 +65-103,F,North Dakota,0.457,0.0,0.043,0.002,0.13,0.083,0.285 +65-103,F,Ohio,0.457,0.0,0.043,0.002,0.13,0.083,0.285 +65-103,F,Oklahoma,0.423,0.006,0.063,0.01,0.163,0.141,0.193 +65-103,F,Oregon,0.442,0.006,0.085,0.0,0.114,0.063,0.291 +65-103,F,Pennsylvania,0.468,0.009,0.029,0.01,0.13,0.131,0.223 +65-103,F,Rhode Island,0.468,0.009,0.029,0.01,0.13,0.131,0.223 +65-103,F,South Carolina,0.423,0.006,0.063,0.01,0.163,0.141,0.193 +65-103,F,South Dakota,0.457,0.0,0.043,0.002,0.13,0.083,0.285 +65-103,F,Tennessee,0.423,0.006,0.063,0.01,0.163,0.141,0.193 +65-103,F,Texas,0.423,0.006,0.063,0.01,0.163,0.141,0.193 +65-103,F,Utah,0.442,0.006,0.085,0.0,0.114,0.063,0.291 +65-103,F,Vermont,0.468,0.009,0.029,0.01,0.13,0.131,0.223 +65-103,F,Virginia,0.423,0.006,0.063,0.01,0.163,0.141,0.193 +65-103,F,Washington,0.442,0.006,0.085,0.0,0.114,0.063,0.291 +65-103,F,West Virginia,0.423,0.006,0.063,0.01,0.163,0.141,0.193 +65-103,F,Wisconsin,0.457,0.0,0.043,0.002,0.13,0.083,0.285 +65-103,F,Wyoming,0.442,0.006,0.085,0.0,0.114,0.063,0.291 +65-103,M,Alabama,0.471,0.002,0.026,0.002,0.166,0.118,0.215 +65-103,M,Alaska,0.554,0.012,0.037,0.002,0.071,0.065,0.258 +65-103,M,Arizona,0.554,0.012,0.037,0.002,0.071,0.065,0.258 +65-103,M,Arkansas,0.471,0.002,0.026,0.002,0.166,0.118,0.215 +65-103,M,California,0.554,0.012,0.037,0.002,0.071,0.065,0.258 +65-103,M,Colorado,0.554,0.012,0.037,0.002,0.071,0.065,0.258 +65-103,M,Connecticut,0.548,0.013,0.044,0.004,0.09,0.086,0.215 +65-103,M,Delaware,0.471,0.002,0.026,0.002,0.166,0.118,0.215 +65-103,M,District of Columbia,0.471,0.002,0.026,0.002,0.166,0.118,0.215 +65-103,M,Florida,0.471,0.002,0.026,0.002,0.166,0.118,0.215 +65-103,M,Georgia,0.471,0.002,0.026,0.002,0.166,0.118,0.215 +65-103,M,Hawaii,0.554,0.012,0.037,0.002,0.071,0.065,0.258 +65-103,M,Idaho,0.554,0.012,0.037,0.002,0.071,0.065,0.258 +65-103,M,Illinois,0.486,0.016,0.065,0.003,0.094,0.082,0.255 +65-103,M,Indiana,0.486,0.016,0.065,0.003,0.094,0.082,0.255 +65-103,M,Iowa,0.486,0.016,0.065,0.003,0.094,0.082,0.255 +65-103,M,Kansas,0.486,0.016,0.065,0.003,0.094,0.082,0.255 +65-103,M,Kentucky,0.471,0.002,0.026,0.002,0.166,0.118,0.215 +65-103,M,Louisiana,0.471,0.002,0.026,0.002,0.166,0.118,0.215 +65-103,M,Maine,0.548,0.013,0.044,0.004,0.09,0.086,0.215 +65-103,M,Maryland,0.471,0.002,0.026,0.002,0.166,0.118,0.215 +65-103,M,Massachusetts,0.548,0.013,0.044,0.004,0.09,0.086,0.215 +65-103,M,Michigan,0.486,0.016,0.065,0.003,0.094,0.082,0.255 +65-103,M,Minnesota,0.486,0.016,0.065,0.003,0.094,0.082,0.255 +65-103,M,Mississippi,0.471,0.002,0.026,0.002,0.166,0.118,0.215 +65-103,M,Missouri,0.486,0.016,0.065,0.003,0.094,0.082,0.255 +65-103,M,Montana,0.554,0.012,0.037,0.002,0.071,0.065,0.258 +65-103,M,Nebraska,0.486,0.016,0.065,0.003,0.094,0.082,0.255 +65-103,M,Nevada,0.554,0.012,0.037,0.002,0.071,0.065,0.258 +65-103,M,New Hampshire,0.548,0.013,0.044,0.004,0.09,0.086,0.215 +65-103,M,New Jersey,0.548,0.013,0.044,0.004,0.09,0.086,0.215 +65-103,M,New Mexico,0.554,0.012,0.037,0.002,0.071,0.065,0.258 +65-103,M,New York,0.548,0.013,0.044,0.004,0.09,0.086,0.215 +65-103,M,North Carolina,0.471,0.002,0.026,0.002,0.166,0.118,0.215 +65-103,M,North Dakota,0.486,0.016,0.065,0.003,0.094,0.082,0.255 +65-103,M,Ohio,0.486,0.016,0.065,0.003,0.094,0.082,0.255 +65-103,M,Oklahoma,0.471,0.002,0.026,0.002,0.166,0.118,0.215 +65-103,M,Oregon,0.554,0.012,0.037,0.002,0.071,0.065,0.258 +65-103,M,Pennsylvania,0.548,0.013,0.044,0.004,0.09,0.086,0.215 +65-103,M,Rhode Island,0.548,0.013,0.044,0.004,0.09,0.086,0.215 +65-103,M,South Carolina,0.471,0.002,0.026,0.002,0.166,0.118,0.215 +65-103,M,South Dakota,0.486,0.016,0.065,0.003,0.094,0.082,0.255 +65-103,M,Tennessee,0.471,0.002,0.026,0.002,0.166,0.118,0.215 +65-103,M,Texas,0.471,0.002,0.026,0.002,0.166,0.118,0.215 +65-103,M,Utah,0.554,0.012,0.037,0.002,0.071,0.065,0.258 +65-103,M,Vermont,0.548,0.013,0.044,0.004,0.09,0.086,0.215 +65-103,M,Virginia,0.471,0.002,0.026,0.002,0.166,0.118,0.215 +65-103,M,Washington,0.554,0.012,0.037,0.002,0.071,0.065,0.258 +65-103,M,West Virginia,0.471,0.002,0.026,0.002,0.166,0.118,0.215 +65-103,M,Wisconsin,0.486,0.016,0.065,0.003,0.094,0.082,0.255 +65-103,M,Wyoming,0.554,0.012,0.037,0.002,0.071,0.065,0.258 diff --git a/src/main/resources/modules/lookup_tables/statin_lovastatin_product_distribution.csv b/src/main/resources/modules/lookup_tables/statin_lovastatin_product_distribution.csv new file mode 100644 index 0000000..2665786 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/statin_lovastatin_product_distribution.csv @@ -0,0 +1,268 @@ +age,gender,state,Prescribe_Lovastatin_10_Mg_Oral_Tablet,Prescribe_Lovastatin_20_Mg_Oral_Tablet,Prescribe_Lovastatin_40_Mg_Oral_Tablet +26-35,F,Alabama,0.0,1.0,0.0 +26-35,F,Arkansas,0.0,1.0,0.0 +26-35,F,Delaware,0.0,1.0,0.0 +26-35,F,District of Columbia,0.0,1.0,0.0 +26-35,F,Florida,0.0,1.0,0.0 +26-35,F,Georgia,0.0,1.0,0.0 +26-35,F,Kentucky,0.0,1.0,0.0 +26-35,F,Louisiana,0.0,1.0,0.0 +26-35,F,Maryland,0.0,1.0,0.0 +26-35,F,Mississippi,0.0,1.0,0.0 +26-35,F,North Carolina,0.0,1.0,0.0 +26-35,F,Oklahoma,0.0,1.0,0.0 +26-35,F,South Carolina,0.0,1.0,0.0 +26-35,F,Tennessee,0.0,1.0,0.0 +26-35,F,Texas,0.0,1.0,0.0 +26-35,F,Virginia,0.0,1.0,0.0 +26-35,F,West Virginia,0.0,1.0,0.0 +36-45,F,Alabama,0.059,0.656,0.285 +36-45,F,Arkansas,0.059,0.656,0.285 +36-45,F,Delaware,0.059,0.656,0.285 +36-45,F,District of Columbia,0.059,0.656,0.285 +36-45,F,Florida,0.059,0.656,0.285 +36-45,F,Georgia,0.059,0.656,0.285 +36-45,F,Kentucky,0.059,0.656,0.285 +36-45,F,Louisiana,0.059,0.656,0.285 +36-45,F,Maryland,0.059,0.656,0.285 +36-45,F,Mississippi,0.059,0.656,0.285 +36-45,F,North Carolina,0.059,0.656,0.285 +36-45,F,Oklahoma,0.059,0.656,0.285 +36-45,F,South Carolina,0.059,0.656,0.285 +36-45,F,Tennessee,0.059,0.656,0.285 +36-45,F,Texas,0.059,0.656,0.285 +36-45,F,Virginia,0.059,0.656,0.285 +36-45,F,West Virginia,0.059,0.656,0.285 +36-45,M,Alabama,0.0,0.318,0.682 +36-45,M,Arkansas,0.0,0.318,0.682 +36-45,M,Delaware,0.0,0.318,0.682 +36-45,M,District of Columbia,0.0,0.318,0.682 +36-45,M,Florida,0.0,0.318,0.682 +36-45,M,Georgia,0.0,0.318,0.682 +36-45,M,Illinois,0.0,0.23,0.77 +36-45,M,Indiana,0.0,0.23,0.77 +36-45,M,Iowa,0.0,0.23,0.77 +36-45,M,Kansas,0.0,0.23,0.77 +36-45,M,Kentucky,0.0,0.318,0.682 +36-45,M,Louisiana,0.0,0.318,0.682 +36-45,M,Maryland,0.0,0.318,0.682 +36-45,M,Michigan,0.0,0.23,0.77 +36-45,M,Minnesota,0.0,0.23,0.77 +36-45,M,Mississippi,0.0,0.318,0.682 +36-45,M,Missouri,0.0,0.23,0.77 +36-45,M,Nebraska,0.0,0.23,0.77 +36-45,M,North Carolina,0.0,0.318,0.682 +36-45,M,North Dakota,0.0,0.23,0.77 +36-45,M,Ohio,0.0,0.23,0.77 +36-45,M,Oklahoma,0.0,0.318,0.682 +36-45,M,South Carolina,0.0,0.318,0.682 +36-45,M,South Dakota,0.0,0.23,0.77 +36-45,M,Tennessee,0.0,0.318,0.682 +36-45,M,Texas,0.0,0.318,0.682 +36-45,M,Virginia,0.0,0.318,0.682 +36-45,M,West Virginia,0.0,0.318,0.682 +36-45,M,Wisconsin,0.0,0.23,0.77 +46-65,F,Alabama,0.278,0.384,0.338 +46-65,F,Alaska,0.25,0.75,0.0 +46-65,F,Arizona,0.25,0.75,0.0 +46-65,F,Arkansas,0.278,0.384,0.338 +46-65,F,California,0.25,0.75,0.0 +46-65,F,Colorado,0.25,0.75,0.0 +46-65,F,Connecticut,0.0,1.0,0.0 +46-65,F,Delaware,0.278,0.384,0.338 +46-65,F,District of Columbia,0.278,0.384,0.338 +46-65,F,Florida,0.278,0.384,0.338 +46-65,F,Georgia,0.278,0.384,0.338 +46-65,F,Hawaii,0.25,0.75,0.0 +46-65,F,Idaho,0.25,0.75,0.0 +46-65,F,Illinois,0.062,0.761,0.177 +46-65,F,Indiana,0.062,0.761,0.177 +46-65,F,Iowa,0.062,0.761,0.177 +46-65,F,Kansas,0.062,0.761,0.177 +46-65,F,Kentucky,0.278,0.384,0.338 +46-65,F,Louisiana,0.278,0.384,0.338 +46-65,F,Maine,0.0,1.0,0.0 +46-65,F,Maryland,0.278,0.384,0.338 +46-65,F,Massachusetts,0.0,1.0,0.0 +46-65,F,Michigan,0.062,0.761,0.177 +46-65,F,Minnesota,0.062,0.761,0.177 +46-65,F,Mississippi,0.278,0.384,0.338 +46-65,F,Missouri,0.062,0.761,0.177 +46-65,F,Montana,0.25,0.75,0.0 +46-65,F,Nebraska,0.062,0.761,0.177 +46-65,F,Nevada,0.25,0.75,0.0 +46-65,F,New Hampshire,0.0,1.0,0.0 +46-65,F,New Jersey,0.0,1.0,0.0 +46-65,F,New Mexico,0.25,0.75,0.0 +46-65,F,New York,0.0,1.0,0.0 +46-65,F,North Carolina,0.278,0.384,0.338 +46-65,F,North Dakota,0.062,0.761,0.177 +46-65,F,Ohio,0.062,0.761,0.177 +46-65,F,Oklahoma,0.278,0.384,0.338 +46-65,F,Oregon,0.25,0.75,0.0 +46-65,F,Pennsylvania,0.0,1.0,0.0 +46-65,F,Rhode Island,0.0,1.0,0.0 +46-65,F,South Carolina,0.278,0.384,0.338 +46-65,F,South Dakota,0.062,0.761,0.177 +46-65,F,Tennessee,0.278,0.384,0.338 +46-65,F,Texas,0.278,0.384,0.338 +46-65,F,Utah,0.25,0.75,0.0 +46-65,F,Vermont,0.0,1.0,0.0 +46-65,F,Virginia,0.278,0.384,0.338 +46-65,F,Washington,0.25,0.75,0.0 +46-65,F,West Virginia,0.278,0.384,0.338 +46-65,F,Wisconsin,0.062,0.761,0.177 +46-65,F,Wyoming,0.25,0.75,0.0 +46-65,M,Alabama,0.037,0.782,0.181 +46-65,M,Alaska,0.0,0.633,0.367 +46-65,M,Arizona,0.0,0.633,0.367 +46-65,M,Arkansas,0.037,0.782,0.181 +46-65,M,California,0.0,0.633,0.367 +46-65,M,Colorado,0.0,0.633,0.367 +46-65,M,Connecticut,0.413,0.587,0.0 +46-65,M,Delaware,0.037,0.782,0.181 +46-65,M,District of Columbia,0.037,0.782,0.181 +46-65,M,Florida,0.037,0.782,0.181 +46-65,M,Georgia,0.037,0.782,0.181 +46-65,M,Hawaii,0.0,0.633,0.367 +46-65,M,Idaho,0.0,0.633,0.367 +46-65,M,Illinois,0.056,0.559,0.385 +46-65,M,Indiana,0.056,0.559,0.385 +46-65,M,Iowa,0.056,0.559,0.385 +46-65,M,Kansas,0.056,0.559,0.385 +46-65,M,Kentucky,0.037,0.782,0.181 +46-65,M,Louisiana,0.037,0.782,0.181 +46-65,M,Maine,0.413,0.587,0.0 +46-65,M,Maryland,0.037,0.782,0.181 +46-65,M,Massachusetts,0.413,0.587,0.0 +46-65,M,Michigan,0.056,0.559,0.385 +46-65,M,Minnesota,0.056,0.559,0.385 +46-65,M,Mississippi,0.037,0.782,0.181 +46-65,M,Missouri,0.056,0.559,0.385 +46-65,M,Montana,0.0,0.633,0.367 +46-65,M,Nebraska,0.056,0.559,0.385 +46-65,M,Nevada,0.0,0.633,0.367 +46-65,M,New Hampshire,0.413,0.587,0.0 +46-65,M,New Jersey,0.413,0.587,0.0 +46-65,M,New Mexico,0.0,0.633,0.367 +46-65,M,New York,0.413,0.587,0.0 +46-65,M,North Carolina,0.037,0.782,0.181 +46-65,M,North Dakota,0.056,0.559,0.385 +46-65,M,Ohio,0.056,0.559,0.385 +46-65,M,Oklahoma,0.037,0.782,0.181 +46-65,M,Oregon,0.0,0.633,0.367 +46-65,M,Pennsylvania,0.413,0.587,0.0 +46-65,M,Rhode Island,0.413,0.587,0.0 +46-65,M,South Carolina,0.037,0.782,0.181 +46-65,M,South Dakota,0.056,0.559,0.385 +46-65,M,Tennessee,0.037,0.782,0.181 +46-65,M,Texas,0.037,0.782,0.181 +46-65,M,Utah,0.0,0.633,0.367 +46-65,M,Vermont,0.413,0.587,0.0 +46-65,M,Virginia,0.037,0.782,0.181 +46-65,M,Washington,0.0,0.633,0.367 +46-65,M,West Virginia,0.037,0.782,0.181 +46-65,M,Wisconsin,0.056,0.559,0.385 +46-65,M,Wyoming,0.0,0.633,0.367 +65-103,F,Alabama,0.13,0.426,0.444 +65-103,F,Alaska,0.058,0.521,0.421 +65-103,F,Arizona,0.058,0.521,0.421 +65-103,F,Arkansas,0.13,0.426,0.444 +65-103,F,California,0.058,0.521,0.421 +65-103,F,Colorado,0.058,0.521,0.421 +65-103,F,Connecticut,0.076,0.27,0.655 +65-103,F,Delaware,0.13,0.426,0.444 +65-103,F,District of Columbia,0.13,0.426,0.444 +65-103,F,Florida,0.13,0.426,0.444 +65-103,F,Georgia,0.13,0.426,0.444 +65-103,F,Hawaii,0.058,0.521,0.421 +65-103,F,Idaho,0.058,0.521,0.421 +65-103,F,Illinois,0.059,0.35,0.591 +65-103,F,Indiana,0.059,0.35,0.591 +65-103,F,Iowa,0.059,0.35,0.591 +65-103,F,Kansas,0.059,0.35,0.591 +65-103,F,Kentucky,0.13,0.426,0.444 +65-103,F,Louisiana,0.13,0.426,0.444 +65-103,F,Maine,0.076,0.27,0.655 +65-103,F,Maryland,0.13,0.426,0.444 +65-103,F,Massachusetts,0.076,0.27,0.655 +65-103,F,Michigan,0.059,0.35,0.591 +65-103,F,Minnesota,0.059,0.35,0.591 +65-103,F,Mississippi,0.13,0.426,0.444 +65-103,F,Missouri,0.059,0.35,0.591 +65-103,F,Montana,0.058,0.521,0.421 +65-103,F,Nebraska,0.059,0.35,0.591 +65-103,F,Nevada,0.058,0.521,0.421 +65-103,F,New Hampshire,0.076,0.27,0.655 +65-103,F,New Jersey,0.076,0.27,0.655 +65-103,F,New Mexico,0.058,0.521,0.421 +65-103,F,New York,0.076,0.27,0.655 +65-103,F,North Carolina,0.13,0.426,0.444 +65-103,F,North Dakota,0.059,0.35,0.591 +65-103,F,Ohio,0.059,0.35,0.591 +65-103,F,Oklahoma,0.13,0.426,0.444 +65-103,F,Oregon,0.058,0.521,0.421 +65-103,F,Pennsylvania,0.076,0.27,0.655 +65-103,F,Rhode Island,0.076,0.27,0.655 +65-103,F,South Carolina,0.13,0.426,0.444 +65-103,F,South Dakota,0.059,0.35,0.591 +65-103,F,Tennessee,0.13,0.426,0.444 +65-103,F,Texas,0.13,0.426,0.444 +65-103,F,Utah,0.058,0.521,0.421 +65-103,F,Vermont,0.076,0.27,0.655 +65-103,F,Virginia,0.13,0.426,0.444 +65-103,F,Washington,0.058,0.521,0.421 +65-103,F,West Virginia,0.13,0.426,0.444 +65-103,F,Wisconsin,0.059,0.35,0.591 +65-103,F,Wyoming,0.058,0.521,0.421 +65-103,M,Alabama,0.069,0.367,0.564 +65-103,M,Alaska,0.0,0.324,0.676 +65-103,M,Arizona,0.0,0.324,0.676 +65-103,M,Arkansas,0.069,0.367,0.564 +65-103,M,California,0.0,0.324,0.676 +65-103,M,Colorado,0.0,0.324,0.676 +65-103,M,Connecticut,0.255,0.173,0.572 +65-103,M,Delaware,0.069,0.367,0.564 +65-103,M,District of Columbia,0.069,0.367,0.564 +65-103,M,Florida,0.069,0.367,0.564 +65-103,M,Georgia,0.069,0.367,0.564 +65-103,M,Hawaii,0.0,0.324,0.676 +65-103,M,Idaho,0.0,0.324,0.676 +65-103,M,Illinois,0.0,0.362,0.638 +65-103,M,Indiana,0.0,0.362,0.638 +65-103,M,Iowa,0.0,0.362,0.638 +65-103,M,Kansas,0.0,0.362,0.638 +65-103,M,Kentucky,0.069,0.367,0.564 +65-103,M,Louisiana,0.069,0.367,0.564 +65-103,M,Maine,0.255,0.173,0.572 +65-103,M,Maryland,0.069,0.367,0.564 +65-103,M,Massachusetts,0.255,0.173,0.572 +65-103,M,Michigan,0.0,0.362,0.638 +65-103,M,Minnesota,0.0,0.362,0.638 +65-103,M,Mississippi,0.069,0.367,0.564 +65-103,M,Missouri,0.0,0.362,0.638 +65-103,M,Montana,0.0,0.324,0.676 +65-103,M,Nebraska,0.0,0.362,0.638 +65-103,M,Nevada,0.0,0.324,0.676 +65-103,M,New Hampshire,0.255,0.173,0.572 +65-103,M,New Jersey,0.255,0.173,0.572 +65-103,M,New Mexico,0.0,0.324,0.676 +65-103,M,New York,0.255,0.173,0.572 +65-103,M,North Carolina,0.069,0.367,0.564 +65-103,M,North Dakota,0.0,0.362,0.638 +65-103,M,Ohio,0.0,0.362,0.638 +65-103,M,Oklahoma,0.069,0.367,0.564 +65-103,M,Oregon,0.0,0.324,0.676 +65-103,M,Pennsylvania,0.255,0.173,0.572 +65-103,M,Rhode Island,0.255,0.173,0.572 +65-103,M,South Carolina,0.069,0.367,0.564 +65-103,M,South Dakota,0.0,0.362,0.638 +65-103,M,Tennessee,0.069,0.367,0.564 +65-103,M,Texas,0.069,0.367,0.564 +65-103,M,Utah,0.0,0.324,0.676 +65-103,M,Vermont,0.255,0.173,0.572 +65-103,M,Virginia,0.069,0.367,0.564 +65-103,M,Washington,0.0,0.324,0.676 +65-103,M,West Virginia,0.069,0.367,0.564 +65-103,M,Wisconsin,0.0,0.362,0.638 +65-103,M,Wyoming,0.0,0.324,0.676 diff --git a/src/main/resources/modules/lookup_tables/statin_pitavastatin_product_distribution.csv b/src/main/resources/modules/lookup_tables/statin_pitavastatin_product_distribution.csv new file mode 100644 index 0000000..6d9bc4c --- /dev/null +++ b/src/main/resources/modules/lookup_tables/statin_pitavastatin_product_distribution.csv @@ -0,0 +1,178 @@ +age,gender,state,Prescribe_Pitavastatin_Calcium_1_Mg_Oral_Tablet_Livalo,Prescribe_Pitavastatin_Calcium_2_Mg_Oral_Tablet_Livalo,Prescribe_Pitavastatin_Calcium_4_Mg_Oral_Tablet_Livalo +36-45,M,Alabama,0.0,1.0,0.0 +36-45,M,Arkansas,0.0,1.0,0.0 +36-45,M,Delaware,0.0,1.0,0.0 +36-45,M,District of Columbia,0.0,1.0,0.0 +36-45,M,Florida,0.0,1.0,0.0 +36-45,M,Georgia,0.0,1.0,0.0 +36-45,M,Kentucky,0.0,1.0,0.0 +36-45,M,Louisiana,0.0,1.0,0.0 +36-45,M,Maryland,0.0,1.0,0.0 +36-45,M,Mississippi,0.0,1.0,0.0 +36-45,M,North Carolina,0.0,1.0,0.0 +36-45,M,Oklahoma,0.0,1.0,0.0 +36-45,M,South Carolina,0.0,1.0,0.0 +36-45,M,Tennessee,0.0,1.0,0.0 +36-45,M,Texas,0.0,1.0,0.0 +36-45,M,Virginia,0.0,1.0,0.0 +36-45,M,West Virginia,0.0,1.0,0.0 +46-65,F,Alabama,0.0,0.953,0.047 +46-65,F,Alaska,0.0,1.0,0.0 +46-65,F,Arizona,0.0,1.0,0.0 +46-65,F,Arkansas,0.0,0.953,0.047 +46-65,F,California,0.0,1.0,0.0 +46-65,F,Colorado,0.0,1.0,0.0 +46-65,F,Delaware,0.0,0.953,0.047 +46-65,F,District of Columbia,0.0,0.953,0.047 +46-65,F,Florida,0.0,0.953,0.047 +46-65,F,Georgia,0.0,0.953,0.047 +46-65,F,Hawaii,0.0,1.0,0.0 +46-65,F,Idaho,0.0,1.0,0.0 +46-65,F,Illinois,0.0,0.5,0.5 +46-65,F,Indiana,0.0,0.5,0.5 +46-65,F,Iowa,0.0,0.5,0.5 +46-65,F,Kansas,0.0,0.5,0.5 +46-65,F,Kentucky,0.0,0.953,0.047 +46-65,F,Louisiana,0.0,0.953,0.047 +46-65,F,Maryland,0.0,0.953,0.047 +46-65,F,Michigan,0.0,0.5,0.5 +46-65,F,Minnesota,0.0,0.5,0.5 +46-65,F,Mississippi,0.0,0.953,0.047 +46-65,F,Missouri,0.0,0.5,0.5 +46-65,F,Montana,0.0,1.0,0.0 +46-65,F,Nebraska,0.0,0.5,0.5 +46-65,F,Nevada,0.0,1.0,0.0 +46-65,F,New Mexico,0.0,1.0,0.0 +46-65,F,North Carolina,0.0,0.953,0.047 +46-65,F,North Dakota,0.0,0.5,0.5 +46-65,F,Ohio,0.0,0.5,0.5 +46-65,F,Oklahoma,0.0,0.953,0.047 +46-65,F,Oregon,0.0,1.0,0.0 +46-65,F,South Carolina,0.0,0.953,0.047 +46-65,F,South Dakota,0.0,0.5,0.5 +46-65,F,Tennessee,0.0,0.953,0.047 +46-65,F,Texas,0.0,0.953,0.047 +46-65,F,Utah,0.0,1.0,0.0 +46-65,F,Virginia,0.0,0.953,0.047 +46-65,F,Washington,0.0,1.0,0.0 +46-65,F,West Virginia,0.0,0.953,0.047 +46-65,F,Wisconsin,0.0,0.5,0.5 +46-65,F,Wyoming,0.0,1.0,0.0 +46-65,M,Alabama,1.0,0.0,0.0 +46-65,M,Arkansas,1.0,0.0,0.0 +46-65,M,Delaware,1.0,0.0,0.0 +46-65,M,District of Columbia,1.0,0.0,0.0 +46-65,M,Florida,1.0,0.0,0.0 +46-65,M,Georgia,1.0,0.0,0.0 +46-65,M,Illinois,0.0,0.0,1.0 +46-65,M,Indiana,0.0,0.0,1.0 +46-65,M,Iowa,0.0,0.0,1.0 +46-65,M,Kansas,0.0,0.0,1.0 +46-65,M,Kentucky,1.0,0.0,0.0 +46-65,M,Louisiana,1.0,0.0,0.0 +46-65,M,Maryland,1.0,0.0,0.0 +46-65,M,Michigan,0.0,0.0,1.0 +46-65,M,Minnesota,0.0,0.0,1.0 +46-65,M,Mississippi,1.0,0.0,0.0 +46-65,M,Missouri,0.0,0.0,1.0 +46-65,M,Nebraska,0.0,0.0,1.0 +46-65,M,North Carolina,1.0,0.0,0.0 +46-65,M,North Dakota,0.0,0.0,1.0 +46-65,M,Ohio,0.0,0.0,1.0 +46-65,M,Oklahoma,1.0,0.0,0.0 +46-65,M,South Carolina,1.0,0.0,0.0 +46-65,M,South Dakota,0.0,0.0,1.0 +46-65,M,Tennessee,1.0,0.0,0.0 +46-65,M,Texas,1.0,0.0,0.0 +46-65,M,Virginia,1.0,0.0,0.0 +46-65,M,West Virginia,1.0,0.0,0.0 +46-65,M,Wisconsin,0.0,0.0,1.0 +65-103,F,Alabama,0.0,0.896,0.104 +65-103,F,Arkansas,0.0,0.896,0.104 +65-103,F,Connecticut,0.0,0.351,0.649 +65-103,F,Delaware,0.0,0.896,0.104 +65-103,F,District of Columbia,0.0,0.896,0.104 +65-103,F,Florida,0.0,0.896,0.104 +65-103,F,Georgia,0.0,0.896,0.104 +65-103,F,Illinois,0.0,0.5,0.5 +65-103,F,Indiana,0.0,0.5,0.5 +65-103,F,Iowa,0.0,0.5,0.5 +65-103,F,Kansas,0.0,0.5,0.5 +65-103,F,Kentucky,0.0,0.896,0.104 +65-103,F,Louisiana,0.0,0.896,0.104 +65-103,F,Maine,0.0,0.351,0.649 +65-103,F,Maryland,0.0,0.896,0.104 +65-103,F,Massachusetts,0.0,0.351,0.649 +65-103,F,Michigan,0.0,0.5,0.5 +65-103,F,Minnesota,0.0,0.5,0.5 +65-103,F,Mississippi,0.0,0.896,0.104 +65-103,F,Missouri,0.0,0.5,0.5 +65-103,F,Nebraska,0.0,0.5,0.5 +65-103,F,New Hampshire,0.0,0.351,0.649 +65-103,F,New Jersey,0.0,0.351,0.649 +65-103,F,New York,0.0,0.351,0.649 +65-103,F,North Carolina,0.0,0.896,0.104 +65-103,F,North Dakota,0.0,0.5,0.5 +65-103,F,Ohio,0.0,0.5,0.5 +65-103,F,Oklahoma,0.0,0.896,0.104 +65-103,F,Pennsylvania,0.0,0.351,0.649 +65-103,F,Rhode Island,0.0,0.351,0.649 +65-103,F,South Carolina,0.0,0.896,0.104 +65-103,F,South Dakota,0.0,0.5,0.5 +65-103,F,Tennessee,0.0,0.896,0.104 +65-103,F,Texas,0.0,0.896,0.104 +65-103,F,Vermont,0.0,0.351,0.649 +65-103,F,Virginia,0.0,0.896,0.104 +65-103,F,West Virginia,0.0,0.896,0.104 +65-103,F,Wisconsin,0.0,0.5,0.5 +65-103,M,Alabama,0.0,0.0,1.0 +65-103,M,Alaska,0.0,1.0,0.0 +65-103,M,Arizona,0.0,1.0,0.0 +65-103,M,Arkansas,0.0,0.0,1.0 +65-103,M,California,0.0,1.0,0.0 +65-103,M,Colorado,0.0,1.0,0.0 +65-103,M,Connecticut,1.0,0.0,0.0 +65-103,M,Delaware,0.0,0.0,1.0 +65-103,M,District of Columbia,0.0,0.0,1.0 +65-103,M,Florida,0.0,0.0,1.0 +65-103,M,Georgia,0.0,0.0,1.0 +65-103,M,Hawaii,0.0,1.0,0.0 +65-103,M,Idaho,0.0,1.0,0.0 +65-103,M,Illinois,0.0,0.0,1.0 +65-103,M,Indiana,0.0,0.0,1.0 +65-103,M,Iowa,0.0,0.0,1.0 +65-103,M,Kansas,0.0,0.0,1.0 +65-103,M,Kentucky,0.0,0.0,1.0 +65-103,M,Louisiana,0.0,0.0,1.0 +65-103,M,Maine,1.0,0.0,0.0 +65-103,M,Maryland,0.0,0.0,1.0 +65-103,M,Massachusetts,1.0,0.0,0.0 +65-103,M,Michigan,0.0,0.0,1.0 +65-103,M,Minnesota,0.0,0.0,1.0 +65-103,M,Mississippi,0.0,0.0,1.0 +65-103,M,Missouri,0.0,0.0,1.0 +65-103,M,Montana,0.0,1.0,0.0 +65-103,M,Nebraska,0.0,0.0,1.0 +65-103,M,Nevada,0.0,1.0,0.0 +65-103,M,New Hampshire,1.0,0.0,0.0 +65-103,M,New Jersey,1.0,0.0,0.0 +65-103,M,New Mexico,0.0,1.0,0.0 +65-103,M,New York,1.0,0.0,0.0 +65-103,M,North Carolina,0.0,0.0,1.0 +65-103,M,North Dakota,0.0,0.0,1.0 +65-103,M,Ohio,0.0,0.0,1.0 +65-103,M,Oklahoma,0.0,0.0,1.0 +65-103,M,Oregon,0.0,1.0,0.0 +65-103,M,Pennsylvania,1.0,0.0,0.0 +65-103,M,Rhode Island,1.0,0.0,0.0 +65-103,M,South Carolina,0.0,0.0,1.0 +65-103,M,South Dakota,0.0,0.0,1.0 +65-103,M,Tennessee,0.0,0.0,1.0 +65-103,M,Texas,0.0,0.0,1.0 +65-103,M,Utah,0.0,1.0,0.0 +65-103,M,Vermont,1.0,0.0,0.0 +65-103,M,Virginia,0.0,0.0,1.0 +65-103,M,Washington,0.0,1.0,0.0 +65-103,M,West Virginia,0.0,0.0,1.0 +65-103,M,Wisconsin,0.0,0.0,1.0 +65-103,M,Wyoming,0.0,1.0,0.0 diff --git a/src/main/resources/modules/lookup_tables/statin_pravastatin_product_distribution.csv b/src/main/resources/modules/lookup_tables/statin_pravastatin_product_distribution.csv new file mode 100644 index 0000000..64f1090 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/statin_pravastatin_product_distribution.csv @@ -0,0 +1,328 @@ +age,gender,state,Prescribe_Pravastatin_Sodium_10_Mg_Oral_Tablet,Prescribe_Pravastatin_Sodium_20_Mg_Oral_Tablet,Prescribe_Pravastatin_Sodium_40_Mg_Oral_Tablet,Prescribe_Pravastatin_Sodium_40_Mg_Oral_Tablet_Pravachol,Prescribe_Pravastatin_Sodium_80_Mg_Oral_Tablet +26-35,F,Alabama,0.0,1.0,0.0,0.0,0.0 +26-35,F,Arkansas,0.0,1.0,0.0,0.0,0.0 +26-35,F,Delaware,0.0,1.0,0.0,0.0,0.0 +26-35,F,District of Columbia,0.0,1.0,0.0,0.0,0.0 +26-35,F,Florida,0.0,1.0,0.0,0.0,0.0 +26-35,F,Georgia,0.0,1.0,0.0,0.0,0.0 +26-35,F,Kentucky,0.0,1.0,0.0,0.0,0.0 +26-35,F,Louisiana,0.0,1.0,0.0,0.0,0.0 +26-35,F,Maryland,0.0,1.0,0.0,0.0,0.0 +26-35,F,Mississippi,0.0,1.0,0.0,0.0,0.0 +26-35,F,North Carolina,0.0,1.0,0.0,0.0,0.0 +26-35,F,Oklahoma,0.0,1.0,0.0,0.0,0.0 +26-35,F,South Carolina,0.0,1.0,0.0,0.0,0.0 +26-35,F,Tennessee,0.0,1.0,0.0,0.0,0.0 +26-35,F,Texas,0.0,1.0,0.0,0.0,0.0 +26-35,F,Virginia,0.0,1.0,0.0,0.0,0.0 +26-35,F,West Virginia,0.0,1.0,0.0,0.0,0.0 +26-35,M,Alabama,0.0,1.0,0.0,0.0,0.0 +26-35,M,Arkansas,0.0,1.0,0.0,0.0,0.0 +26-35,M,Delaware,0.0,1.0,0.0,0.0,0.0 +26-35,M,District of Columbia,0.0,1.0,0.0,0.0,0.0 +26-35,M,Florida,0.0,1.0,0.0,0.0,0.0 +26-35,M,Georgia,0.0,1.0,0.0,0.0,0.0 +26-35,M,Kentucky,0.0,1.0,0.0,0.0,0.0 +26-35,M,Louisiana,0.0,1.0,0.0,0.0,0.0 +26-35,M,Maryland,0.0,1.0,0.0,0.0,0.0 +26-35,M,Mississippi,0.0,1.0,0.0,0.0,0.0 +26-35,M,North Carolina,0.0,1.0,0.0,0.0,0.0 +26-35,M,Oklahoma,0.0,1.0,0.0,0.0,0.0 +26-35,M,South Carolina,0.0,1.0,0.0,0.0,0.0 +26-35,M,Tennessee,0.0,1.0,0.0,0.0,0.0 +26-35,M,Texas,0.0,1.0,0.0,0.0,0.0 +26-35,M,Virginia,0.0,1.0,0.0,0.0,0.0 +26-35,M,West Virginia,0.0,1.0,0.0,0.0,0.0 +36-45,F,Alabama,0.0,0.851,0.0,0.0,0.149 +36-45,F,Alaska,0.0,0.326,0.674,0.0,0.0 +36-45,F,Arizona,0.0,0.326,0.674,0.0,0.0 +36-45,F,Arkansas,0.0,0.851,0.0,0.0,0.149 +36-45,F,California,0.0,0.326,0.674,0.0,0.0 +36-45,F,Colorado,0.0,0.326,0.674,0.0,0.0 +36-45,F,Connecticut,0.0,1.0,0.0,0.0,0.0 +36-45,F,Delaware,0.0,0.851,0.0,0.0,0.149 +36-45,F,District of Columbia,0.0,0.851,0.0,0.0,0.149 +36-45,F,Florida,0.0,0.851,0.0,0.0,0.149 +36-45,F,Georgia,0.0,0.851,0.0,0.0,0.149 +36-45,F,Hawaii,0.0,0.326,0.674,0.0,0.0 +36-45,F,Idaho,0.0,0.326,0.674,0.0,0.0 +36-45,F,Illinois,0.0,0.0,0.357,0.0,0.643 +36-45,F,Indiana,0.0,0.0,0.357,0.0,0.643 +36-45,F,Iowa,0.0,0.0,0.357,0.0,0.643 +36-45,F,Kansas,0.0,0.0,0.357,0.0,0.643 +36-45,F,Kentucky,0.0,0.851,0.0,0.0,0.149 +36-45,F,Louisiana,0.0,0.851,0.0,0.0,0.149 +36-45,F,Maine,0.0,1.0,0.0,0.0,0.0 +36-45,F,Maryland,0.0,0.851,0.0,0.0,0.149 +36-45,F,Massachusetts,0.0,1.0,0.0,0.0,0.0 +36-45,F,Michigan,0.0,0.0,0.357,0.0,0.643 +36-45,F,Minnesota,0.0,0.0,0.357,0.0,0.643 +36-45,F,Mississippi,0.0,0.851,0.0,0.0,0.149 +36-45,F,Missouri,0.0,0.0,0.357,0.0,0.643 +36-45,F,Montana,0.0,0.326,0.674,0.0,0.0 +36-45,F,Nebraska,0.0,0.0,0.357,0.0,0.643 +36-45,F,Nevada,0.0,0.326,0.674,0.0,0.0 +36-45,F,New Hampshire,0.0,1.0,0.0,0.0,0.0 +36-45,F,New Jersey,0.0,1.0,0.0,0.0,0.0 +36-45,F,New Mexico,0.0,0.326,0.674,0.0,0.0 +36-45,F,New York,0.0,1.0,0.0,0.0,0.0 +36-45,F,North Carolina,0.0,0.851,0.0,0.0,0.149 +36-45,F,North Dakota,0.0,0.0,0.357,0.0,0.643 +36-45,F,Ohio,0.0,0.0,0.357,0.0,0.643 +36-45,F,Oklahoma,0.0,0.851,0.0,0.0,0.149 +36-45,F,Oregon,0.0,0.326,0.674,0.0,0.0 +36-45,F,Pennsylvania,0.0,1.0,0.0,0.0,0.0 +36-45,F,Rhode Island,0.0,1.0,0.0,0.0,0.0 +36-45,F,South Carolina,0.0,0.851,0.0,0.0,0.149 +36-45,F,South Dakota,0.0,0.0,0.357,0.0,0.643 +36-45,F,Tennessee,0.0,0.851,0.0,0.0,0.149 +36-45,F,Texas,0.0,0.851,0.0,0.0,0.149 +36-45,F,Utah,0.0,0.326,0.674,0.0,0.0 +36-45,F,Vermont,0.0,1.0,0.0,0.0,0.0 +36-45,F,Virginia,0.0,0.851,0.0,0.0,0.149 +36-45,F,Washington,0.0,0.326,0.674,0.0,0.0 +36-45,F,West Virginia,0.0,0.851,0.0,0.0,0.149 +36-45,F,Wisconsin,0.0,0.0,0.357,0.0,0.643 +36-45,F,Wyoming,0.0,0.326,0.674,0.0,0.0 +36-45,M,Alabama,0.124,0.347,0.53,0.0,0.0 +36-45,M,Arkansas,0.124,0.347,0.53,0.0,0.0 +36-45,M,Connecticut,0.0,0.386,0.614,0.0,0.0 +36-45,M,Delaware,0.124,0.347,0.53,0.0,0.0 +36-45,M,District of Columbia,0.124,0.347,0.53,0.0,0.0 +36-45,M,Florida,0.124,0.347,0.53,0.0,0.0 +36-45,M,Georgia,0.124,0.347,0.53,0.0,0.0 +36-45,M,Illinois,0.0,0.301,0.353,0.0,0.345 +36-45,M,Indiana,0.0,0.301,0.353,0.0,0.345 +36-45,M,Iowa,0.0,0.301,0.353,0.0,0.345 +36-45,M,Kansas,0.0,0.301,0.353,0.0,0.345 +36-45,M,Kentucky,0.124,0.347,0.53,0.0,0.0 +36-45,M,Louisiana,0.124,0.347,0.53,0.0,0.0 +36-45,M,Maine,0.0,0.386,0.614,0.0,0.0 +36-45,M,Maryland,0.124,0.347,0.53,0.0,0.0 +36-45,M,Massachusetts,0.0,0.386,0.614,0.0,0.0 +36-45,M,Michigan,0.0,0.301,0.353,0.0,0.345 +36-45,M,Minnesota,0.0,0.301,0.353,0.0,0.345 +36-45,M,Mississippi,0.124,0.347,0.53,0.0,0.0 +36-45,M,Missouri,0.0,0.301,0.353,0.0,0.345 +36-45,M,Nebraska,0.0,0.301,0.353,0.0,0.345 +36-45,M,New Hampshire,0.0,0.386,0.614,0.0,0.0 +36-45,M,New Jersey,0.0,0.386,0.614,0.0,0.0 +36-45,M,New York,0.0,0.386,0.614,0.0,0.0 +36-45,M,North Carolina,0.124,0.347,0.53,0.0,0.0 +36-45,M,North Dakota,0.0,0.301,0.353,0.0,0.345 +36-45,M,Ohio,0.0,0.301,0.353,0.0,0.345 +36-45,M,Oklahoma,0.124,0.347,0.53,0.0,0.0 +36-45,M,Pennsylvania,0.0,0.386,0.614,0.0,0.0 +36-45,M,Rhode Island,0.0,0.386,0.614,0.0,0.0 +36-45,M,South Carolina,0.124,0.347,0.53,0.0,0.0 +36-45,M,South Dakota,0.0,0.301,0.353,0.0,0.345 +36-45,M,Tennessee,0.124,0.347,0.53,0.0,0.0 +36-45,M,Texas,0.124,0.347,0.53,0.0,0.0 +36-45,M,Vermont,0.0,0.386,0.614,0.0,0.0 +36-45,M,Virginia,0.124,0.347,0.53,0.0,0.0 +36-45,M,West Virginia,0.124,0.347,0.53,0.0,0.0 +36-45,M,Wisconsin,0.0,0.301,0.353,0.0,0.345 +46-65,F,Alabama,0.034,0.436,0.445,0.0,0.085 +46-65,F,Alaska,0.1,0.342,0.558,0.0,0.0 +46-65,F,Arizona,0.1,0.342,0.558,0.0,0.0 +46-65,F,Arkansas,0.034,0.436,0.445,0.0,0.085 +46-65,F,California,0.1,0.342,0.558,0.0,0.0 +46-65,F,Colorado,0.1,0.342,0.558,0.0,0.0 +46-65,F,Connecticut,0.06,0.157,0.783,0.0,0.0 +46-65,F,Delaware,0.034,0.436,0.445,0.0,0.085 +46-65,F,District of Columbia,0.034,0.436,0.445,0.0,0.085 +46-65,F,Florida,0.034,0.436,0.445,0.0,0.085 +46-65,F,Georgia,0.034,0.436,0.445,0.0,0.085 +46-65,F,Hawaii,0.1,0.342,0.558,0.0,0.0 +46-65,F,Idaho,0.1,0.342,0.558,0.0,0.0 +46-65,F,Illinois,0.122,0.433,0.38,0.0,0.065 +46-65,F,Indiana,0.122,0.433,0.38,0.0,0.065 +46-65,F,Iowa,0.122,0.433,0.38,0.0,0.065 +46-65,F,Kansas,0.122,0.433,0.38,0.0,0.065 +46-65,F,Kentucky,0.034,0.436,0.445,0.0,0.085 +46-65,F,Louisiana,0.034,0.436,0.445,0.0,0.085 +46-65,F,Maine,0.06,0.157,0.783,0.0,0.0 +46-65,F,Maryland,0.034,0.436,0.445,0.0,0.085 +46-65,F,Massachusetts,0.06,0.157,0.783,0.0,0.0 +46-65,F,Michigan,0.122,0.433,0.38,0.0,0.065 +46-65,F,Minnesota,0.122,0.433,0.38,0.0,0.065 +46-65,F,Mississippi,0.034,0.436,0.445,0.0,0.085 +46-65,F,Missouri,0.122,0.433,0.38,0.0,0.065 +46-65,F,Montana,0.1,0.342,0.558,0.0,0.0 +46-65,F,Nebraska,0.122,0.433,0.38,0.0,0.065 +46-65,F,Nevada,0.1,0.342,0.558,0.0,0.0 +46-65,F,New Hampshire,0.06,0.157,0.783,0.0,0.0 +46-65,F,New Jersey,0.06,0.157,0.783,0.0,0.0 +46-65,F,New Mexico,0.1,0.342,0.558,0.0,0.0 +46-65,F,New York,0.06,0.157,0.783,0.0,0.0 +46-65,F,North Carolina,0.034,0.436,0.445,0.0,0.085 +46-65,F,North Dakota,0.122,0.433,0.38,0.0,0.065 +46-65,F,Ohio,0.122,0.433,0.38,0.0,0.065 +46-65,F,Oklahoma,0.034,0.436,0.445,0.0,0.085 +46-65,F,Oregon,0.1,0.342,0.558,0.0,0.0 +46-65,F,Pennsylvania,0.06,0.157,0.783,0.0,0.0 +46-65,F,Rhode Island,0.06,0.157,0.783,0.0,0.0 +46-65,F,South Carolina,0.034,0.436,0.445,0.0,0.085 +46-65,F,South Dakota,0.122,0.433,0.38,0.0,0.065 +46-65,F,Tennessee,0.034,0.436,0.445,0.0,0.085 +46-65,F,Texas,0.034,0.436,0.445,0.0,0.085 +46-65,F,Utah,0.1,0.342,0.558,0.0,0.0 +46-65,F,Vermont,0.06,0.157,0.783,0.0,0.0 +46-65,F,Virginia,0.034,0.436,0.445,0.0,0.085 +46-65,F,Washington,0.1,0.342,0.558,0.0,0.0 +46-65,F,West Virginia,0.034,0.436,0.445,0.0,0.085 +46-65,F,Wisconsin,0.122,0.433,0.38,0.0,0.065 +46-65,F,Wyoming,0.1,0.342,0.558,0.0,0.0 +46-65,M,Alabama,0.047,0.26,0.564,0.0,0.13 +46-65,M,Alaska,0.032,0.573,0.301,0.0,0.094 +46-65,M,Arizona,0.032,0.573,0.301,0.0,0.094 +46-65,M,Arkansas,0.047,0.26,0.564,0.0,0.13 +46-65,M,California,0.032,0.573,0.301,0.0,0.094 +46-65,M,Colorado,0.032,0.573,0.301,0.0,0.094 +46-65,M,Connecticut,0.11,0.225,0.621,0.0,0.045 +46-65,M,Delaware,0.047,0.26,0.564,0.0,0.13 +46-65,M,District of Columbia,0.047,0.26,0.564,0.0,0.13 +46-65,M,Florida,0.047,0.26,0.564,0.0,0.13 +46-65,M,Georgia,0.047,0.26,0.564,0.0,0.13 +46-65,M,Hawaii,0.032,0.573,0.301,0.0,0.094 +46-65,M,Idaho,0.032,0.573,0.301,0.0,0.094 +46-65,M,Illinois,0.0,0.378,0.395,0.0,0.227 +46-65,M,Indiana,0.0,0.378,0.395,0.0,0.227 +46-65,M,Iowa,0.0,0.378,0.395,0.0,0.227 +46-65,M,Kansas,0.0,0.378,0.395,0.0,0.227 +46-65,M,Kentucky,0.047,0.26,0.564,0.0,0.13 +46-65,M,Louisiana,0.047,0.26,0.564,0.0,0.13 +46-65,M,Maine,0.11,0.225,0.621,0.0,0.045 +46-65,M,Maryland,0.047,0.26,0.564,0.0,0.13 +46-65,M,Massachusetts,0.11,0.225,0.621,0.0,0.045 +46-65,M,Michigan,0.0,0.378,0.395,0.0,0.227 +46-65,M,Minnesota,0.0,0.378,0.395,0.0,0.227 +46-65,M,Mississippi,0.047,0.26,0.564,0.0,0.13 +46-65,M,Missouri,0.0,0.378,0.395,0.0,0.227 +46-65,M,Montana,0.032,0.573,0.301,0.0,0.094 +46-65,M,Nebraska,0.0,0.378,0.395,0.0,0.227 +46-65,M,Nevada,0.032,0.573,0.301,0.0,0.094 +46-65,M,New Hampshire,0.11,0.225,0.621,0.0,0.045 +46-65,M,New Jersey,0.11,0.225,0.621,0.0,0.045 +46-65,M,New Mexico,0.032,0.573,0.301,0.0,0.094 +46-65,M,New York,0.11,0.225,0.621,0.0,0.045 +46-65,M,North Carolina,0.047,0.26,0.564,0.0,0.13 +46-65,M,North Dakota,0.0,0.378,0.395,0.0,0.227 +46-65,M,Ohio,0.0,0.378,0.395,0.0,0.227 +46-65,M,Oklahoma,0.047,0.26,0.564,0.0,0.13 +46-65,M,Oregon,0.032,0.573,0.301,0.0,0.094 +46-65,M,Pennsylvania,0.11,0.225,0.621,0.0,0.045 +46-65,M,Rhode Island,0.11,0.225,0.621,0.0,0.045 +46-65,M,South Carolina,0.047,0.26,0.564,0.0,0.13 +46-65,M,South Dakota,0.0,0.378,0.395,0.0,0.227 +46-65,M,Tennessee,0.047,0.26,0.564,0.0,0.13 +46-65,M,Texas,0.047,0.26,0.564,0.0,0.13 +46-65,M,Utah,0.032,0.573,0.301,0.0,0.094 +46-65,M,Vermont,0.11,0.225,0.621,0.0,0.045 +46-65,M,Virginia,0.047,0.26,0.564,0.0,0.13 +46-65,M,Washington,0.032,0.573,0.301,0.0,0.094 +46-65,M,West Virginia,0.047,0.26,0.564,0.0,0.13 +46-65,M,Wisconsin,0.0,0.378,0.395,0.0,0.227 +46-65,M,Wyoming,0.032,0.573,0.301,0.0,0.094 +65-103,F,Alabama,0.064,0.335,0.529,0.0,0.071 +65-103,F,Alaska,0.208,0.298,0.423,0.0,0.071 +65-103,F,Arizona,0.208,0.298,0.423,0.0,0.071 +65-103,F,Arkansas,0.064,0.335,0.529,0.0,0.071 +65-103,F,California,0.208,0.298,0.423,0.0,0.071 +65-103,F,Colorado,0.208,0.298,0.423,0.0,0.071 +65-103,F,Connecticut,0.112,0.121,0.496,0.0,0.271 +65-103,F,Delaware,0.064,0.335,0.529,0.0,0.071 +65-103,F,District of Columbia,0.064,0.335,0.529,0.0,0.071 +65-103,F,Florida,0.064,0.335,0.529,0.0,0.071 +65-103,F,Georgia,0.064,0.335,0.529,0.0,0.071 +65-103,F,Hawaii,0.208,0.298,0.423,0.0,0.071 +65-103,F,Idaho,0.208,0.298,0.423,0.0,0.071 +65-103,F,Illinois,0.033,0.322,0.501,0.043,0.101 +65-103,F,Indiana,0.033,0.322,0.501,0.043,0.101 +65-103,F,Iowa,0.033,0.322,0.501,0.043,0.101 +65-103,F,Kansas,0.033,0.322,0.501,0.043,0.101 +65-103,F,Kentucky,0.064,0.335,0.529,0.0,0.071 +65-103,F,Louisiana,0.064,0.335,0.529,0.0,0.071 +65-103,F,Maine,0.112,0.121,0.496,0.0,0.271 +65-103,F,Maryland,0.064,0.335,0.529,0.0,0.071 +65-103,F,Massachusetts,0.112,0.121,0.496,0.0,0.271 +65-103,F,Michigan,0.033,0.322,0.501,0.043,0.101 +65-103,F,Minnesota,0.033,0.322,0.501,0.043,0.101 +65-103,F,Mississippi,0.064,0.335,0.529,0.0,0.071 +65-103,F,Missouri,0.033,0.322,0.501,0.043,0.101 +65-103,F,Montana,0.208,0.298,0.423,0.0,0.071 +65-103,F,Nebraska,0.033,0.322,0.501,0.043,0.101 +65-103,F,Nevada,0.208,0.298,0.423,0.0,0.071 +65-103,F,New Hampshire,0.112,0.121,0.496,0.0,0.271 +65-103,F,New Jersey,0.112,0.121,0.496,0.0,0.271 +65-103,F,New Mexico,0.208,0.298,0.423,0.0,0.071 +65-103,F,New York,0.112,0.121,0.496,0.0,0.271 +65-103,F,North Carolina,0.064,0.335,0.529,0.0,0.071 +65-103,F,North Dakota,0.033,0.322,0.501,0.043,0.101 +65-103,F,Ohio,0.033,0.322,0.501,0.043,0.101 +65-103,F,Oklahoma,0.064,0.335,0.529,0.0,0.071 +65-103,F,Oregon,0.208,0.298,0.423,0.0,0.071 +65-103,F,Pennsylvania,0.112,0.121,0.496,0.0,0.271 +65-103,F,Rhode Island,0.112,0.121,0.496,0.0,0.271 +65-103,F,South Carolina,0.064,0.335,0.529,0.0,0.071 +65-103,F,South Dakota,0.033,0.322,0.501,0.043,0.101 +65-103,F,Tennessee,0.064,0.335,0.529,0.0,0.071 +65-103,F,Texas,0.064,0.335,0.529,0.0,0.071 +65-103,F,Utah,0.208,0.298,0.423,0.0,0.071 +65-103,F,Vermont,0.112,0.121,0.496,0.0,0.271 +65-103,F,Virginia,0.064,0.335,0.529,0.0,0.071 +65-103,F,Washington,0.208,0.298,0.423,0.0,0.071 +65-103,F,West Virginia,0.064,0.335,0.529,0.0,0.071 +65-103,F,Wisconsin,0.033,0.322,0.501,0.043,0.101 +65-103,F,Wyoming,0.208,0.298,0.423,0.0,0.071 +65-103,M,Alabama,0.046,0.32,0.558,0.0,0.076 +65-103,M,Alaska,0.043,0.178,0.333,0.0,0.446 +65-103,M,Arizona,0.043,0.178,0.333,0.0,0.446 +65-103,M,Arkansas,0.046,0.32,0.558,0.0,0.076 +65-103,M,California,0.043,0.178,0.333,0.0,0.446 +65-103,M,Colorado,0.043,0.178,0.333,0.0,0.446 +65-103,M,Connecticut,0.04,0.398,0.549,0.0,0.013 +65-103,M,Delaware,0.046,0.32,0.558,0.0,0.076 +65-103,M,District of Columbia,0.046,0.32,0.558,0.0,0.076 +65-103,M,Florida,0.046,0.32,0.558,0.0,0.076 +65-103,M,Georgia,0.046,0.32,0.558,0.0,0.076 +65-103,M,Hawaii,0.043,0.178,0.333,0.0,0.446 +65-103,M,Idaho,0.043,0.178,0.333,0.0,0.446 +65-103,M,Illinois,0.016,0.163,0.602,0.0,0.219 +65-103,M,Indiana,0.016,0.163,0.602,0.0,0.219 +65-103,M,Iowa,0.016,0.163,0.602,0.0,0.219 +65-103,M,Kansas,0.016,0.163,0.602,0.0,0.219 +65-103,M,Kentucky,0.046,0.32,0.558,0.0,0.076 +65-103,M,Louisiana,0.046,0.32,0.558,0.0,0.076 +65-103,M,Maine,0.04,0.398,0.549,0.0,0.013 +65-103,M,Maryland,0.046,0.32,0.558,0.0,0.076 +65-103,M,Massachusetts,0.04,0.398,0.549,0.0,0.013 +65-103,M,Michigan,0.016,0.163,0.602,0.0,0.219 +65-103,M,Minnesota,0.016,0.163,0.602,0.0,0.219 +65-103,M,Mississippi,0.046,0.32,0.558,0.0,0.076 +65-103,M,Missouri,0.016,0.163,0.602,0.0,0.219 +65-103,M,Montana,0.043,0.178,0.333,0.0,0.446 +65-103,M,Nebraska,0.016,0.163,0.602,0.0,0.219 +65-103,M,Nevada,0.043,0.178,0.333,0.0,0.446 +65-103,M,New Hampshire,0.04,0.398,0.549,0.0,0.013 +65-103,M,New Jersey,0.04,0.398,0.549,0.0,0.013 +65-103,M,New Mexico,0.043,0.178,0.333,0.0,0.446 +65-103,M,New York,0.04,0.398,0.549,0.0,0.013 +65-103,M,North Carolina,0.046,0.32,0.558,0.0,0.076 +65-103,M,North Dakota,0.016,0.163,0.602,0.0,0.219 +65-103,M,Ohio,0.016,0.163,0.602,0.0,0.219 +65-103,M,Oklahoma,0.046,0.32,0.558,0.0,0.076 +65-103,M,Oregon,0.043,0.178,0.333,0.0,0.446 +65-103,M,Pennsylvania,0.04,0.398,0.549,0.0,0.013 +65-103,M,Rhode Island,0.04,0.398,0.549,0.0,0.013 +65-103,M,South Carolina,0.046,0.32,0.558,0.0,0.076 +65-103,M,South Dakota,0.016,0.163,0.602,0.0,0.219 +65-103,M,Tennessee,0.046,0.32,0.558,0.0,0.076 +65-103,M,Texas,0.046,0.32,0.558,0.0,0.076 +65-103,M,Utah,0.043,0.178,0.333,0.0,0.446 +65-103,M,Vermont,0.04,0.398,0.549,0.0,0.013 +65-103,M,Virginia,0.046,0.32,0.558,0.0,0.076 +65-103,M,Washington,0.043,0.178,0.333,0.0,0.446 +65-103,M,West Virginia,0.046,0.32,0.558,0.0,0.076 +65-103,M,Wisconsin,0.016,0.163,0.602,0.0,0.219 +65-103,M,Wyoming,0.043,0.178,0.333,0.0,0.446 diff --git a/src/main/resources/modules/lookup_tables/statin_rosuvastatin_product_distribution.csv b/src/main/resources/modules/lookup_tables/statin_rosuvastatin_product_distribution.csv new file mode 100644 index 0000000..7ed17bb --- /dev/null +++ b/src/main/resources/modules/lookup_tables/statin_rosuvastatin_product_distribution.csv @@ -0,0 +1,320 @@ +age,gender,state,Prescribe_Rosuvastatin_Calcium_10_Mg_Oral_Tablet,Prescribe_Rosuvastatin_Calcium_10_Mg_Oral_Tablet_Crestor,Prescribe_Rosuvastatin_Calcium_20_Mg_Oral_Tablet,Prescribe_Rosuvastatin_Calcium_20_Mg_Oral_Tablet_Crestor,Prescribe_Rosuvastatin_Calcium_40_Mg_Oral_Tablet,Prescribe_Rosuvastatin_Calcium_40_Mg_Oral_Tablet_Crestor,Prescribe_Rosuvastatin_Calcium_5_Mg_Oral_Tablet,Prescribe_Rosuvastatin_Calcium_5_Mg_Oral_Tablet_Crestor +26-35,M,Alabama,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Alaska,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Arizona,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Arkansas,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,California,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Colorado,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Delaware,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,District of Columbia,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Florida,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Georgia,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Hawaii,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Idaho,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Kentucky,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Louisiana,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Maryland,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Mississippi,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Montana,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Nevada,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,New Mexico,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,North Carolina,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Oklahoma,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Oregon,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,South Carolina,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Tennessee,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Texas,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Utah,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Virginia,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Washington,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,West Virginia,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +26-35,M,Wyoming,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,Alaska,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,Arizona,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,California,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,Colorado,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,Connecticut,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,Hawaii,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,Idaho,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,Illinois,0.0,0.0,0.651,0.0,0.0,0.0,0.349,0.0 +36-45,F,Indiana,0.0,0.0,0.651,0.0,0.0,0.0,0.349,0.0 +36-45,F,Iowa,0.0,0.0,0.651,0.0,0.0,0.0,0.349,0.0 +36-45,F,Kansas,0.0,0.0,0.651,0.0,0.0,0.0,0.349,0.0 +36-45,F,Maine,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,Massachusetts,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,Michigan,0.0,0.0,0.651,0.0,0.0,0.0,0.349,0.0 +36-45,F,Minnesota,0.0,0.0,0.651,0.0,0.0,0.0,0.349,0.0 +36-45,F,Missouri,0.0,0.0,0.651,0.0,0.0,0.0,0.349,0.0 +36-45,F,Montana,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,Nebraska,0.0,0.0,0.651,0.0,0.0,0.0,0.349,0.0 +36-45,F,Nevada,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,New Hampshire,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,New Jersey,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,New Mexico,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,New York,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,North Dakota,0.0,0.0,0.651,0.0,0.0,0.0,0.349,0.0 +36-45,F,Ohio,0.0,0.0,0.651,0.0,0.0,0.0,0.349,0.0 +36-45,F,Oregon,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,Pennsylvania,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,Rhode Island,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,South Dakota,0.0,0.0,0.651,0.0,0.0,0.0,0.349,0.0 +36-45,F,Utah,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,Vermont,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,Washington,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,F,Wisconsin,0.0,0.0,0.651,0.0,0.0,0.0,0.349,0.0 +36-45,F,Wyoming,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,Alabama,0.369,0.211,0.122,0.071,0.08,0.0,0.146,0.0 +36-45,M,Alaska,0.291,0.0,0.709,0.0,0.0,0.0,0.0,0.0 +36-45,M,Arizona,0.291,0.0,0.709,0.0,0.0,0.0,0.0,0.0 +36-45,M,Arkansas,0.369,0.211,0.122,0.071,0.08,0.0,0.146,0.0 +36-45,M,California,0.291,0.0,0.709,0.0,0.0,0.0,0.0,0.0 +36-45,M,Colorado,0.291,0.0,0.709,0.0,0.0,0.0,0.0,0.0 +36-45,M,Connecticut,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,Delaware,0.369,0.211,0.122,0.071,0.08,0.0,0.146,0.0 +36-45,M,District of Columbia,0.369,0.211,0.122,0.071,0.08,0.0,0.146,0.0 +36-45,M,Florida,0.369,0.211,0.122,0.071,0.08,0.0,0.146,0.0 +36-45,M,Georgia,0.369,0.211,0.122,0.071,0.08,0.0,0.146,0.0 +36-45,M,Hawaii,0.291,0.0,0.709,0.0,0.0,0.0,0.0,0.0 +36-45,M,Idaho,0.291,0.0,0.709,0.0,0.0,0.0,0.0,0.0 +36-45,M,Illinois,0.51,0.0,0.49,0.0,0.0,0.0,0.0,0.0 +36-45,M,Indiana,0.51,0.0,0.49,0.0,0.0,0.0,0.0,0.0 +36-45,M,Iowa,0.51,0.0,0.49,0.0,0.0,0.0,0.0,0.0 +36-45,M,Kansas,0.51,0.0,0.49,0.0,0.0,0.0,0.0,0.0 +36-45,M,Kentucky,0.369,0.211,0.122,0.071,0.08,0.0,0.146,0.0 +36-45,M,Louisiana,0.369,0.211,0.122,0.071,0.08,0.0,0.146,0.0 +36-45,M,Maine,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,Maryland,0.369,0.211,0.122,0.071,0.08,0.0,0.146,0.0 +36-45,M,Massachusetts,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,Michigan,0.51,0.0,0.49,0.0,0.0,0.0,0.0,0.0 +36-45,M,Minnesota,0.51,0.0,0.49,0.0,0.0,0.0,0.0,0.0 +36-45,M,Mississippi,0.369,0.211,0.122,0.071,0.08,0.0,0.146,0.0 +36-45,M,Missouri,0.51,0.0,0.49,0.0,0.0,0.0,0.0,0.0 +36-45,M,Montana,0.291,0.0,0.709,0.0,0.0,0.0,0.0,0.0 +36-45,M,Nebraska,0.51,0.0,0.49,0.0,0.0,0.0,0.0,0.0 +36-45,M,Nevada,0.291,0.0,0.709,0.0,0.0,0.0,0.0,0.0 +36-45,M,New Hampshire,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,New Jersey,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,New Mexico,0.291,0.0,0.709,0.0,0.0,0.0,0.0,0.0 +36-45,M,New York,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,North Carolina,0.369,0.211,0.122,0.071,0.08,0.0,0.146,0.0 +36-45,M,North Dakota,0.51,0.0,0.49,0.0,0.0,0.0,0.0,0.0 +36-45,M,Ohio,0.51,0.0,0.49,0.0,0.0,0.0,0.0,0.0 +36-45,M,Oklahoma,0.369,0.211,0.122,0.071,0.08,0.0,0.146,0.0 +36-45,M,Oregon,0.291,0.0,0.709,0.0,0.0,0.0,0.0,0.0 +36-45,M,Pennsylvania,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,Rhode Island,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,South Carolina,0.369,0.211,0.122,0.071,0.08,0.0,0.146,0.0 +36-45,M,South Dakota,0.51,0.0,0.49,0.0,0.0,0.0,0.0,0.0 +36-45,M,Tennessee,0.369,0.211,0.122,0.071,0.08,0.0,0.146,0.0 +36-45,M,Texas,0.369,0.211,0.122,0.071,0.08,0.0,0.146,0.0 +36-45,M,Utah,0.291,0.0,0.709,0.0,0.0,0.0,0.0,0.0 +36-45,M,Vermont,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0 +36-45,M,Virginia,0.369,0.211,0.122,0.071,0.08,0.0,0.146,0.0 +36-45,M,Washington,0.291,0.0,0.709,0.0,0.0,0.0,0.0,0.0 +36-45,M,West Virginia,0.369,0.211,0.122,0.071,0.08,0.0,0.146,0.0 +36-45,M,Wisconsin,0.51,0.0,0.49,0.0,0.0,0.0,0.0,0.0 +36-45,M,Wyoming,0.291,0.0,0.709,0.0,0.0,0.0,0.0,0.0 +46-65,F,Alabama,0.276,0.0,0.274,0.008,0.241,0.0,0.201,0.0 +46-65,F,Alaska,0.353,0.0,0.198,0.0,0.157,0.0,0.292,0.0 +46-65,F,Arizona,0.353,0.0,0.198,0.0,0.157,0.0,0.292,0.0 +46-65,F,Arkansas,0.276,0.0,0.274,0.008,0.241,0.0,0.201,0.0 +46-65,F,California,0.353,0.0,0.198,0.0,0.157,0.0,0.292,0.0 +46-65,F,Colorado,0.353,0.0,0.198,0.0,0.157,0.0,0.292,0.0 +46-65,F,Connecticut,0.262,0.0,0.25,0.0,0.214,0.0,0.275,0.0 +46-65,F,Delaware,0.276,0.0,0.274,0.008,0.241,0.0,0.201,0.0 +46-65,F,District of Columbia,0.276,0.0,0.274,0.008,0.241,0.0,0.201,0.0 +46-65,F,Florida,0.276,0.0,0.274,0.008,0.241,0.0,0.201,0.0 +46-65,F,Georgia,0.276,0.0,0.274,0.008,0.241,0.0,0.201,0.0 +46-65,F,Hawaii,0.353,0.0,0.198,0.0,0.157,0.0,0.292,0.0 +46-65,F,Idaho,0.353,0.0,0.198,0.0,0.157,0.0,0.292,0.0 +46-65,F,Illinois,0.22,0.094,0.348,0.062,0.174,0.0,0.102,0.0 +46-65,F,Indiana,0.22,0.094,0.348,0.062,0.174,0.0,0.102,0.0 +46-65,F,Iowa,0.22,0.094,0.348,0.062,0.174,0.0,0.102,0.0 +46-65,F,Kansas,0.22,0.094,0.348,0.062,0.174,0.0,0.102,0.0 +46-65,F,Kentucky,0.276,0.0,0.274,0.008,0.241,0.0,0.201,0.0 +46-65,F,Louisiana,0.276,0.0,0.274,0.008,0.241,0.0,0.201,0.0 +46-65,F,Maine,0.262,0.0,0.25,0.0,0.214,0.0,0.275,0.0 +46-65,F,Maryland,0.276,0.0,0.274,0.008,0.241,0.0,0.201,0.0 +46-65,F,Massachusetts,0.262,0.0,0.25,0.0,0.214,0.0,0.275,0.0 +46-65,F,Michigan,0.22,0.094,0.348,0.062,0.174,0.0,0.102,0.0 +46-65,F,Minnesota,0.22,0.094,0.348,0.062,0.174,0.0,0.102,0.0 +46-65,F,Mississippi,0.276,0.0,0.274,0.008,0.241,0.0,0.201,0.0 +46-65,F,Missouri,0.22,0.094,0.348,0.062,0.174,0.0,0.102,0.0 +46-65,F,Montana,0.353,0.0,0.198,0.0,0.157,0.0,0.292,0.0 +46-65,F,Nebraska,0.22,0.094,0.348,0.062,0.174,0.0,0.102,0.0 +46-65,F,Nevada,0.353,0.0,0.198,0.0,0.157,0.0,0.292,0.0 +46-65,F,New Hampshire,0.262,0.0,0.25,0.0,0.214,0.0,0.275,0.0 +46-65,F,New Jersey,0.262,0.0,0.25,0.0,0.214,0.0,0.275,0.0 +46-65,F,New Mexico,0.353,0.0,0.198,0.0,0.157,0.0,0.292,0.0 +46-65,F,New York,0.262,0.0,0.25,0.0,0.214,0.0,0.275,0.0 +46-65,F,North Carolina,0.276,0.0,0.274,0.008,0.241,0.0,0.201,0.0 +46-65,F,North Dakota,0.22,0.094,0.348,0.062,0.174,0.0,0.102,0.0 +46-65,F,Ohio,0.22,0.094,0.348,0.062,0.174,0.0,0.102,0.0 +46-65,F,Oklahoma,0.276,0.0,0.274,0.008,0.241,0.0,0.201,0.0 +46-65,F,Oregon,0.353,0.0,0.198,0.0,0.157,0.0,0.292,0.0 +46-65,F,Pennsylvania,0.262,0.0,0.25,0.0,0.214,0.0,0.275,0.0 +46-65,F,Rhode Island,0.262,0.0,0.25,0.0,0.214,0.0,0.275,0.0 +46-65,F,South Carolina,0.276,0.0,0.274,0.008,0.241,0.0,0.201,0.0 +46-65,F,South Dakota,0.22,0.094,0.348,0.062,0.174,0.0,0.102,0.0 +46-65,F,Tennessee,0.276,0.0,0.274,0.008,0.241,0.0,0.201,0.0 +46-65,F,Texas,0.276,0.0,0.274,0.008,0.241,0.0,0.201,0.0 +46-65,F,Utah,0.353,0.0,0.198,0.0,0.157,0.0,0.292,0.0 +46-65,F,Vermont,0.262,0.0,0.25,0.0,0.214,0.0,0.275,0.0 +46-65,F,Virginia,0.276,0.0,0.274,0.008,0.241,0.0,0.201,0.0 +46-65,F,Washington,0.353,0.0,0.198,0.0,0.157,0.0,0.292,0.0 +46-65,F,West Virginia,0.276,0.0,0.274,0.008,0.241,0.0,0.201,0.0 +46-65,F,Wisconsin,0.22,0.094,0.348,0.062,0.174,0.0,0.102,0.0 +46-65,F,Wyoming,0.353,0.0,0.198,0.0,0.157,0.0,0.292,0.0 +46-65,M,Alabama,0.224,0.034,0.393,0.028,0.181,0.0,0.14,0.0 +46-65,M,Alaska,0.513,0.058,0.124,0.0,0.111,0.0,0.193,0.0 +46-65,M,Arizona,0.513,0.058,0.124,0.0,0.111,0.0,0.193,0.0 +46-65,M,Arkansas,0.224,0.034,0.393,0.028,0.181,0.0,0.14,0.0 +46-65,M,California,0.513,0.058,0.124,0.0,0.111,0.0,0.193,0.0 +46-65,M,Colorado,0.513,0.058,0.124,0.0,0.111,0.0,0.193,0.0 +46-65,M,Connecticut,0.526,0.102,0.0,0.032,0.037,0.0,0.303,0.0 +46-65,M,Delaware,0.224,0.034,0.393,0.028,0.181,0.0,0.14,0.0 +46-65,M,District of Columbia,0.224,0.034,0.393,0.028,0.181,0.0,0.14,0.0 +46-65,M,Florida,0.224,0.034,0.393,0.028,0.181,0.0,0.14,0.0 +46-65,M,Georgia,0.224,0.034,0.393,0.028,0.181,0.0,0.14,0.0 +46-65,M,Hawaii,0.513,0.058,0.124,0.0,0.111,0.0,0.193,0.0 +46-65,M,Idaho,0.513,0.058,0.124,0.0,0.111,0.0,0.193,0.0 +46-65,M,Illinois,0.37,0.0,0.286,0.06,0.232,0.0,0.053,0.0 +46-65,M,Indiana,0.37,0.0,0.286,0.06,0.232,0.0,0.053,0.0 +46-65,M,Iowa,0.37,0.0,0.286,0.06,0.232,0.0,0.053,0.0 +46-65,M,Kansas,0.37,0.0,0.286,0.06,0.232,0.0,0.053,0.0 +46-65,M,Kentucky,0.224,0.034,0.393,0.028,0.181,0.0,0.14,0.0 +46-65,M,Louisiana,0.224,0.034,0.393,0.028,0.181,0.0,0.14,0.0 +46-65,M,Maine,0.526,0.102,0.0,0.032,0.037,0.0,0.303,0.0 +46-65,M,Maryland,0.224,0.034,0.393,0.028,0.181,0.0,0.14,0.0 +46-65,M,Massachusetts,0.526,0.102,0.0,0.032,0.037,0.0,0.303,0.0 +46-65,M,Michigan,0.37,0.0,0.286,0.06,0.232,0.0,0.053,0.0 +46-65,M,Minnesota,0.37,0.0,0.286,0.06,0.232,0.0,0.053,0.0 +46-65,M,Mississippi,0.224,0.034,0.393,0.028,0.181,0.0,0.14,0.0 +46-65,M,Missouri,0.37,0.0,0.286,0.06,0.232,0.0,0.053,0.0 +46-65,M,Montana,0.513,0.058,0.124,0.0,0.111,0.0,0.193,0.0 +46-65,M,Nebraska,0.37,0.0,0.286,0.06,0.232,0.0,0.053,0.0 +46-65,M,Nevada,0.513,0.058,0.124,0.0,0.111,0.0,0.193,0.0 +46-65,M,New Hampshire,0.526,0.102,0.0,0.032,0.037,0.0,0.303,0.0 +46-65,M,New Jersey,0.526,0.102,0.0,0.032,0.037,0.0,0.303,0.0 +46-65,M,New Mexico,0.513,0.058,0.124,0.0,0.111,0.0,0.193,0.0 +46-65,M,New York,0.526,0.102,0.0,0.032,0.037,0.0,0.303,0.0 +46-65,M,North Carolina,0.224,0.034,0.393,0.028,0.181,0.0,0.14,0.0 +46-65,M,North Dakota,0.37,0.0,0.286,0.06,0.232,0.0,0.053,0.0 +46-65,M,Ohio,0.37,0.0,0.286,0.06,0.232,0.0,0.053,0.0 +46-65,M,Oklahoma,0.224,0.034,0.393,0.028,0.181,0.0,0.14,0.0 +46-65,M,Oregon,0.513,0.058,0.124,0.0,0.111,0.0,0.193,0.0 +46-65,M,Pennsylvania,0.526,0.102,0.0,0.032,0.037,0.0,0.303,0.0 +46-65,M,Rhode Island,0.526,0.102,0.0,0.032,0.037,0.0,0.303,0.0 +46-65,M,South Carolina,0.224,0.034,0.393,0.028,0.181,0.0,0.14,0.0 +46-65,M,South Dakota,0.37,0.0,0.286,0.06,0.232,0.0,0.053,0.0 +46-65,M,Tennessee,0.224,0.034,0.393,0.028,0.181,0.0,0.14,0.0 +46-65,M,Texas,0.224,0.034,0.393,0.028,0.181,0.0,0.14,0.0 +46-65,M,Utah,0.513,0.058,0.124,0.0,0.111,0.0,0.193,0.0 +46-65,M,Vermont,0.526,0.102,0.0,0.032,0.037,0.0,0.303,0.0 +46-65,M,Virginia,0.224,0.034,0.393,0.028,0.181,0.0,0.14,0.0 +46-65,M,Washington,0.513,0.058,0.124,0.0,0.111,0.0,0.193,0.0 +46-65,M,West Virginia,0.224,0.034,0.393,0.028,0.181,0.0,0.14,0.0 +46-65,M,Wisconsin,0.37,0.0,0.286,0.06,0.232,0.0,0.053,0.0 +46-65,M,Wyoming,0.513,0.058,0.124,0.0,0.111,0.0,0.193,0.0 +65-103,F,Alabama,0.334,0.049,0.337,0.021,0.075,0.014,0.17,0.0 +65-103,F,Alaska,0.419,0.063,0.1,0.0,0.146,0.0,0.271,0.0 +65-103,F,Arizona,0.419,0.063,0.1,0.0,0.146,0.0,0.271,0.0 +65-103,F,Arkansas,0.334,0.049,0.337,0.021,0.075,0.014,0.17,0.0 +65-103,F,California,0.419,0.063,0.1,0.0,0.146,0.0,0.271,0.0 +65-103,F,Colorado,0.419,0.063,0.1,0.0,0.146,0.0,0.271,0.0 +65-103,F,Connecticut,0.467,0.024,0.152,0.0,0.067,0.037,0.253,0.0 +65-103,F,Delaware,0.334,0.049,0.337,0.021,0.075,0.014,0.17,0.0 +65-103,F,District of Columbia,0.334,0.049,0.337,0.021,0.075,0.014,0.17,0.0 +65-103,F,Florida,0.334,0.049,0.337,0.021,0.075,0.014,0.17,0.0 +65-103,F,Georgia,0.334,0.049,0.337,0.021,0.075,0.014,0.17,0.0 +65-103,F,Hawaii,0.419,0.063,0.1,0.0,0.146,0.0,0.271,0.0 +65-103,F,Idaho,0.419,0.063,0.1,0.0,0.146,0.0,0.271,0.0 +65-103,F,Illinois,0.301,0.0,0.212,0.0,0.137,0.0,0.35,0.0 +65-103,F,Indiana,0.301,0.0,0.212,0.0,0.137,0.0,0.35,0.0 +65-103,F,Iowa,0.301,0.0,0.212,0.0,0.137,0.0,0.35,0.0 +65-103,F,Kansas,0.301,0.0,0.212,0.0,0.137,0.0,0.35,0.0 +65-103,F,Kentucky,0.334,0.049,0.337,0.021,0.075,0.014,0.17,0.0 +65-103,F,Louisiana,0.334,0.049,0.337,0.021,0.075,0.014,0.17,0.0 +65-103,F,Maine,0.467,0.024,0.152,0.0,0.067,0.037,0.253,0.0 +65-103,F,Maryland,0.334,0.049,0.337,0.021,0.075,0.014,0.17,0.0 +65-103,F,Massachusetts,0.467,0.024,0.152,0.0,0.067,0.037,0.253,0.0 +65-103,F,Michigan,0.301,0.0,0.212,0.0,0.137,0.0,0.35,0.0 +65-103,F,Minnesota,0.301,0.0,0.212,0.0,0.137,0.0,0.35,0.0 +65-103,F,Mississippi,0.334,0.049,0.337,0.021,0.075,0.014,0.17,0.0 +65-103,F,Missouri,0.301,0.0,0.212,0.0,0.137,0.0,0.35,0.0 +65-103,F,Montana,0.419,0.063,0.1,0.0,0.146,0.0,0.271,0.0 +65-103,F,Nebraska,0.301,0.0,0.212,0.0,0.137,0.0,0.35,0.0 +65-103,F,Nevada,0.419,0.063,0.1,0.0,0.146,0.0,0.271,0.0 +65-103,F,New Hampshire,0.467,0.024,0.152,0.0,0.067,0.037,0.253,0.0 +65-103,F,New Jersey,0.467,0.024,0.152,0.0,0.067,0.037,0.253,0.0 +65-103,F,New Mexico,0.419,0.063,0.1,0.0,0.146,0.0,0.271,0.0 +65-103,F,New York,0.467,0.024,0.152,0.0,0.067,0.037,0.253,0.0 +65-103,F,North Carolina,0.334,0.049,0.337,0.021,0.075,0.014,0.17,0.0 +65-103,F,North Dakota,0.301,0.0,0.212,0.0,0.137,0.0,0.35,0.0 +65-103,F,Ohio,0.301,0.0,0.212,0.0,0.137,0.0,0.35,0.0 +65-103,F,Oklahoma,0.334,0.049,0.337,0.021,0.075,0.014,0.17,0.0 +65-103,F,Oregon,0.419,0.063,0.1,0.0,0.146,0.0,0.271,0.0 +65-103,F,Pennsylvania,0.467,0.024,0.152,0.0,0.067,0.037,0.253,0.0 +65-103,F,Rhode Island,0.467,0.024,0.152,0.0,0.067,0.037,0.253,0.0 +65-103,F,South Carolina,0.334,0.049,0.337,0.021,0.075,0.014,0.17,0.0 +65-103,F,South Dakota,0.301,0.0,0.212,0.0,0.137,0.0,0.35,0.0 +65-103,F,Tennessee,0.334,0.049,0.337,0.021,0.075,0.014,0.17,0.0 +65-103,F,Texas,0.334,0.049,0.337,0.021,0.075,0.014,0.17,0.0 +65-103,F,Utah,0.419,0.063,0.1,0.0,0.146,0.0,0.271,0.0 +65-103,F,Vermont,0.467,0.024,0.152,0.0,0.067,0.037,0.253,0.0 +65-103,F,Virginia,0.334,0.049,0.337,0.021,0.075,0.014,0.17,0.0 +65-103,F,Washington,0.419,0.063,0.1,0.0,0.146,0.0,0.271,0.0 +65-103,F,West Virginia,0.334,0.049,0.337,0.021,0.075,0.014,0.17,0.0 +65-103,F,Wisconsin,0.301,0.0,0.212,0.0,0.137,0.0,0.35,0.0 +65-103,F,Wyoming,0.419,0.063,0.1,0.0,0.146,0.0,0.271,0.0 +65-103,M,Alabama,0.161,0.038,0.269,0.0,0.315,0.034,0.157,0.026 +65-103,M,Alaska,0.175,0.0,0.36,0.0,0.369,0.0,0.096,0.0 +65-103,M,Arizona,0.175,0.0,0.36,0.0,0.369,0.0,0.096,0.0 +65-103,M,Arkansas,0.161,0.038,0.269,0.0,0.315,0.034,0.157,0.026 +65-103,M,California,0.175,0.0,0.36,0.0,0.369,0.0,0.096,0.0 +65-103,M,Colorado,0.175,0.0,0.36,0.0,0.369,0.0,0.096,0.0 +65-103,M,Connecticut,0.431,0.038,0.21,0.042,0.085,0.0,0.165,0.028 +65-103,M,Delaware,0.161,0.038,0.269,0.0,0.315,0.034,0.157,0.026 +65-103,M,District of Columbia,0.161,0.038,0.269,0.0,0.315,0.034,0.157,0.026 +65-103,M,Florida,0.161,0.038,0.269,0.0,0.315,0.034,0.157,0.026 +65-103,M,Georgia,0.161,0.038,0.269,0.0,0.315,0.034,0.157,0.026 +65-103,M,Hawaii,0.175,0.0,0.36,0.0,0.369,0.0,0.096,0.0 +65-103,M,Idaho,0.175,0.0,0.36,0.0,0.369,0.0,0.096,0.0 +65-103,M,Illinois,0.284,0.033,0.265,0.088,0.138,0.0,0.191,0.0 +65-103,M,Indiana,0.284,0.033,0.265,0.088,0.138,0.0,0.191,0.0 +65-103,M,Iowa,0.284,0.033,0.265,0.088,0.138,0.0,0.191,0.0 +65-103,M,Kansas,0.284,0.033,0.265,0.088,0.138,0.0,0.191,0.0 +65-103,M,Kentucky,0.161,0.038,0.269,0.0,0.315,0.034,0.157,0.026 +65-103,M,Louisiana,0.161,0.038,0.269,0.0,0.315,0.034,0.157,0.026 +65-103,M,Maine,0.431,0.038,0.21,0.042,0.085,0.0,0.165,0.028 +65-103,M,Maryland,0.161,0.038,0.269,0.0,0.315,0.034,0.157,0.026 +65-103,M,Massachusetts,0.431,0.038,0.21,0.042,0.085,0.0,0.165,0.028 +65-103,M,Michigan,0.284,0.033,0.265,0.088,0.138,0.0,0.191,0.0 +65-103,M,Minnesota,0.284,0.033,0.265,0.088,0.138,0.0,0.191,0.0 +65-103,M,Mississippi,0.161,0.038,0.269,0.0,0.315,0.034,0.157,0.026 +65-103,M,Missouri,0.284,0.033,0.265,0.088,0.138,0.0,0.191,0.0 +65-103,M,Montana,0.175,0.0,0.36,0.0,0.369,0.0,0.096,0.0 +65-103,M,Nebraska,0.284,0.033,0.265,0.088,0.138,0.0,0.191,0.0 +65-103,M,Nevada,0.175,0.0,0.36,0.0,0.369,0.0,0.096,0.0 +65-103,M,New Hampshire,0.431,0.038,0.21,0.042,0.085,0.0,0.165,0.028 +65-103,M,New Jersey,0.431,0.038,0.21,0.042,0.085,0.0,0.165,0.028 +65-103,M,New Mexico,0.175,0.0,0.36,0.0,0.369,0.0,0.096,0.0 +65-103,M,New York,0.431,0.038,0.21,0.042,0.085,0.0,0.165,0.028 +65-103,M,North Carolina,0.161,0.038,0.269,0.0,0.315,0.034,0.157,0.026 +65-103,M,North Dakota,0.284,0.033,0.265,0.088,0.138,0.0,0.191,0.0 +65-103,M,Ohio,0.284,0.033,0.265,0.088,0.138,0.0,0.191,0.0 +65-103,M,Oklahoma,0.161,0.038,0.269,0.0,0.315,0.034,0.157,0.026 +65-103,M,Oregon,0.175,0.0,0.36,0.0,0.369,0.0,0.096,0.0 +65-103,M,Pennsylvania,0.431,0.038,0.21,0.042,0.085,0.0,0.165,0.028 +65-103,M,Rhode Island,0.431,0.038,0.21,0.042,0.085,0.0,0.165,0.028 +65-103,M,South Carolina,0.161,0.038,0.269,0.0,0.315,0.034,0.157,0.026 +65-103,M,South Dakota,0.284,0.033,0.265,0.088,0.138,0.0,0.191,0.0 +65-103,M,Tennessee,0.161,0.038,0.269,0.0,0.315,0.034,0.157,0.026 +65-103,M,Texas,0.161,0.038,0.269,0.0,0.315,0.034,0.157,0.026 +65-103,M,Utah,0.175,0.0,0.36,0.0,0.369,0.0,0.096,0.0 +65-103,M,Vermont,0.431,0.038,0.21,0.042,0.085,0.0,0.165,0.028 +65-103,M,Virginia,0.161,0.038,0.269,0.0,0.315,0.034,0.157,0.026 +65-103,M,Washington,0.175,0.0,0.36,0.0,0.369,0.0,0.096,0.0 +65-103,M,West Virginia,0.161,0.038,0.269,0.0,0.315,0.034,0.157,0.026 +65-103,M,Wisconsin,0.284,0.033,0.265,0.088,0.138,0.0,0.191,0.0 +65-103,M,Wyoming,0.175,0.0,0.36,0.0,0.369,0.0,0.096,0.0 diff --git a/src/main/resources/modules/lookup_tables/statin_simvastatin_product_distribution.csv b/src/main/resources/modules/lookup_tables/statin_simvastatin_product_distribution.csv new file mode 100644 index 0000000..c5308e8 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/statin_simvastatin_product_distribution.csv @@ -0,0 +1,366 @@ +age,gender,state,Prescribe_Simvastatin_10_Mg_Oral_Tablet,Prescribe_Simvastatin_20_Mg_Oral_Tablet,Prescribe_Simvastatin_40_Mg_Oral_Tablet,Prescribe_Simvastatin_5_Mg_Oral_Tablet,Prescribe_Simvastatin_80_Mg_Oral_Tablet +26-35,F,Alabama,0.14,0.0,0.86,0.0,0.0 +26-35,F,Alaska,1.0,0.0,0.0,0.0,0.0 +26-35,F,Arizona,1.0,0.0,0.0,0.0,0.0 +26-35,F,Arkansas,0.14,0.0,0.86,0.0,0.0 +26-35,F,California,1.0,0.0,0.0,0.0,0.0 +26-35,F,Colorado,1.0,0.0,0.0,0.0,0.0 +26-35,F,Delaware,0.14,0.0,0.86,0.0,0.0 +26-35,F,District of Columbia,0.14,0.0,0.86,0.0,0.0 +26-35,F,Florida,0.14,0.0,0.86,0.0,0.0 +26-35,F,Georgia,0.14,0.0,0.86,0.0,0.0 +26-35,F,Hawaii,1.0,0.0,0.0,0.0,0.0 +26-35,F,Idaho,1.0,0.0,0.0,0.0,0.0 +26-35,F,Illinois,0.0,0.756,0.244,0.0,0.0 +26-35,F,Indiana,0.0,0.756,0.244,0.0,0.0 +26-35,F,Iowa,0.0,0.756,0.244,0.0,0.0 +26-35,F,Kansas,0.0,0.756,0.244,0.0,0.0 +26-35,F,Kentucky,0.14,0.0,0.86,0.0,0.0 +26-35,F,Louisiana,0.14,0.0,0.86,0.0,0.0 +26-35,F,Maryland,0.14,0.0,0.86,0.0,0.0 +26-35,F,Michigan,0.0,0.756,0.244,0.0,0.0 +26-35,F,Minnesota,0.0,0.756,0.244,0.0,0.0 +26-35,F,Mississippi,0.14,0.0,0.86,0.0,0.0 +26-35,F,Missouri,0.0,0.756,0.244,0.0,0.0 +26-35,F,Montana,1.0,0.0,0.0,0.0,0.0 +26-35,F,Nebraska,0.0,0.756,0.244,0.0,0.0 +26-35,F,Nevada,1.0,0.0,0.0,0.0,0.0 +26-35,F,New Mexico,1.0,0.0,0.0,0.0,0.0 +26-35,F,North Carolina,0.14,0.0,0.86,0.0,0.0 +26-35,F,North Dakota,0.0,0.756,0.244,0.0,0.0 +26-35,F,Ohio,0.0,0.756,0.244,0.0,0.0 +26-35,F,Oklahoma,0.14,0.0,0.86,0.0,0.0 +26-35,F,Oregon,1.0,0.0,0.0,0.0,0.0 +26-35,F,South Carolina,0.14,0.0,0.86,0.0,0.0 +26-35,F,South Dakota,0.0,0.756,0.244,0.0,0.0 +26-35,F,Tennessee,0.14,0.0,0.86,0.0,0.0 +26-35,F,Texas,0.14,0.0,0.86,0.0,0.0 +26-35,F,Utah,1.0,0.0,0.0,0.0,0.0 +26-35,F,Virginia,0.14,0.0,0.86,0.0,0.0 +26-35,F,Washington,1.0,0.0,0.0,0.0,0.0 +26-35,F,West Virginia,0.14,0.0,0.86,0.0,0.0 +26-35,F,Wisconsin,0.0,0.756,0.244,0.0,0.0 +26-35,F,Wyoming,1.0,0.0,0.0,0.0,0.0 +26-35,M,Alabama,0.0,1.0,0.0,0.0,0.0 +26-35,M,Arkansas,0.0,1.0,0.0,0.0,0.0 +26-35,M,Delaware,0.0,1.0,0.0,0.0,0.0 +26-35,M,District of Columbia,0.0,1.0,0.0,0.0,0.0 +26-35,M,Florida,0.0,1.0,0.0,0.0,0.0 +26-35,M,Georgia,0.0,1.0,0.0,0.0,0.0 +26-35,M,Kentucky,0.0,1.0,0.0,0.0,0.0 +26-35,M,Louisiana,0.0,1.0,0.0,0.0,0.0 +26-35,M,Maryland,0.0,1.0,0.0,0.0,0.0 +26-35,M,Mississippi,0.0,1.0,0.0,0.0,0.0 +26-35,M,North Carolina,0.0,1.0,0.0,0.0,0.0 +26-35,M,Oklahoma,0.0,1.0,0.0,0.0,0.0 +26-35,M,South Carolina,0.0,1.0,0.0,0.0,0.0 +26-35,M,Tennessee,0.0,1.0,0.0,0.0,0.0 +26-35,M,Texas,0.0,1.0,0.0,0.0,0.0 +26-35,M,Virginia,0.0,1.0,0.0,0.0,0.0 +26-35,M,West Virginia,0.0,1.0,0.0,0.0,0.0 +36-45,F,Alabama,0.239,0.761,0.0,0.0,0.0 +36-45,F,Alaska,0.637,0.252,0.112,0.0,0.0 +36-45,F,Arizona,0.637,0.252,0.112,0.0,0.0 +36-45,F,Arkansas,0.239,0.761,0.0,0.0,0.0 +36-45,F,California,0.637,0.252,0.112,0.0,0.0 +36-45,F,Colorado,0.637,0.252,0.112,0.0,0.0 +36-45,F,Connecticut,1.0,0.0,0.0,0.0,0.0 +36-45,F,Delaware,0.239,0.761,0.0,0.0,0.0 +36-45,F,District of Columbia,0.239,0.761,0.0,0.0,0.0 +36-45,F,Florida,0.239,0.761,0.0,0.0,0.0 +36-45,F,Georgia,0.239,0.761,0.0,0.0,0.0 +36-45,F,Hawaii,0.637,0.252,0.112,0.0,0.0 +36-45,F,Idaho,0.637,0.252,0.112,0.0,0.0 +36-45,F,Illinois,0.0,0.833,0.167,0.0,0.0 +36-45,F,Indiana,0.0,0.833,0.167,0.0,0.0 +36-45,F,Iowa,0.0,0.833,0.167,0.0,0.0 +36-45,F,Kansas,0.0,0.833,0.167,0.0,0.0 +36-45,F,Kentucky,0.239,0.761,0.0,0.0,0.0 +36-45,F,Louisiana,0.239,0.761,0.0,0.0,0.0 +36-45,F,Maine,1.0,0.0,0.0,0.0,0.0 +36-45,F,Maryland,0.239,0.761,0.0,0.0,0.0 +36-45,F,Massachusetts,1.0,0.0,0.0,0.0,0.0 +36-45,F,Michigan,0.0,0.833,0.167,0.0,0.0 +36-45,F,Minnesota,0.0,0.833,0.167,0.0,0.0 +36-45,F,Mississippi,0.239,0.761,0.0,0.0,0.0 +36-45,F,Missouri,0.0,0.833,0.167,0.0,0.0 +36-45,F,Montana,0.637,0.252,0.112,0.0,0.0 +36-45,F,Nebraska,0.0,0.833,0.167,0.0,0.0 +36-45,F,Nevada,0.637,0.252,0.112,0.0,0.0 +36-45,F,New Hampshire,1.0,0.0,0.0,0.0,0.0 +36-45,F,New Jersey,1.0,0.0,0.0,0.0,0.0 +36-45,F,New Mexico,0.637,0.252,0.112,0.0,0.0 +36-45,F,New York,1.0,0.0,0.0,0.0,0.0 +36-45,F,North Carolina,0.239,0.761,0.0,0.0,0.0 +36-45,F,North Dakota,0.0,0.833,0.167,0.0,0.0 +36-45,F,Ohio,0.0,0.833,0.167,0.0,0.0 +36-45,F,Oklahoma,0.239,0.761,0.0,0.0,0.0 +36-45,F,Oregon,0.637,0.252,0.112,0.0,0.0 +36-45,F,Pennsylvania,1.0,0.0,0.0,0.0,0.0 +36-45,F,Rhode Island,1.0,0.0,0.0,0.0,0.0 +36-45,F,South Carolina,0.239,0.761,0.0,0.0,0.0 +36-45,F,South Dakota,0.0,0.833,0.167,0.0,0.0 +36-45,F,Tennessee,0.239,0.761,0.0,0.0,0.0 +36-45,F,Texas,0.239,0.761,0.0,0.0,0.0 +36-45,F,Utah,0.637,0.252,0.112,0.0,0.0 +36-45,F,Vermont,1.0,0.0,0.0,0.0,0.0 +36-45,F,Virginia,0.239,0.761,0.0,0.0,0.0 +36-45,F,Washington,0.637,0.252,0.112,0.0,0.0 +36-45,F,West Virginia,0.239,0.761,0.0,0.0,0.0 +36-45,F,Wisconsin,0.0,0.833,0.167,0.0,0.0 +36-45,F,Wyoming,0.637,0.252,0.112,0.0,0.0 +36-45,M,Alabama,0.597,0.297,0.106,0.0,0.0 +36-45,M,Alaska,0.359,0.378,0.263,0.0,0.0 +36-45,M,Arizona,0.359,0.378,0.263,0.0,0.0 +36-45,M,Arkansas,0.597,0.297,0.106,0.0,0.0 +36-45,M,California,0.359,0.378,0.263,0.0,0.0 +36-45,M,Colorado,0.359,0.378,0.263,0.0,0.0 +36-45,M,Connecticut,0.0,0.214,0.786,0.0,0.0 +36-45,M,Delaware,0.597,0.297,0.106,0.0,0.0 +36-45,M,District of Columbia,0.597,0.297,0.106,0.0,0.0 +36-45,M,Florida,0.597,0.297,0.106,0.0,0.0 +36-45,M,Georgia,0.597,0.297,0.106,0.0,0.0 +36-45,M,Hawaii,0.359,0.378,0.263,0.0,0.0 +36-45,M,Idaho,0.359,0.378,0.263,0.0,0.0 +36-45,M,Illinois,0.0,0.714,0.152,0.134,0.0 +36-45,M,Indiana,0.0,0.714,0.152,0.134,0.0 +36-45,M,Iowa,0.0,0.714,0.152,0.134,0.0 +36-45,M,Kansas,0.0,0.714,0.152,0.134,0.0 +36-45,M,Kentucky,0.597,0.297,0.106,0.0,0.0 +36-45,M,Louisiana,0.597,0.297,0.106,0.0,0.0 +36-45,M,Maine,0.0,0.214,0.786,0.0,0.0 +36-45,M,Maryland,0.597,0.297,0.106,0.0,0.0 +36-45,M,Massachusetts,0.0,0.214,0.786,0.0,0.0 +36-45,M,Michigan,0.0,0.714,0.152,0.134,0.0 +36-45,M,Minnesota,0.0,0.714,0.152,0.134,0.0 +36-45,M,Mississippi,0.597,0.297,0.106,0.0,0.0 +36-45,M,Missouri,0.0,0.714,0.152,0.134,0.0 +36-45,M,Montana,0.359,0.378,0.263,0.0,0.0 +36-45,M,Nebraska,0.0,0.714,0.152,0.134,0.0 +36-45,M,Nevada,0.359,0.378,0.263,0.0,0.0 +36-45,M,New Hampshire,0.0,0.214,0.786,0.0,0.0 +36-45,M,New Jersey,0.0,0.214,0.786,0.0,0.0 +36-45,M,New Mexico,0.359,0.378,0.263,0.0,0.0 +36-45,M,New York,0.0,0.214,0.786,0.0,0.0 +36-45,M,North Carolina,0.597,0.297,0.106,0.0,0.0 +36-45,M,North Dakota,0.0,0.714,0.152,0.134,0.0 +36-45,M,Ohio,0.0,0.714,0.152,0.134,0.0 +36-45,M,Oklahoma,0.597,0.297,0.106,0.0,0.0 +36-45,M,Oregon,0.359,0.378,0.263,0.0,0.0 +36-45,M,Pennsylvania,0.0,0.214,0.786,0.0,0.0 +36-45,M,Rhode Island,0.0,0.214,0.786,0.0,0.0 +36-45,M,South Carolina,0.597,0.297,0.106,0.0,0.0 +36-45,M,South Dakota,0.0,0.714,0.152,0.134,0.0 +36-45,M,Tennessee,0.597,0.297,0.106,0.0,0.0 +36-45,M,Texas,0.597,0.297,0.106,0.0,0.0 +36-45,M,Utah,0.359,0.378,0.263,0.0,0.0 +36-45,M,Vermont,0.0,0.214,0.786,0.0,0.0 +36-45,M,Virginia,0.597,0.297,0.106,0.0,0.0 +36-45,M,Washington,0.359,0.378,0.263,0.0,0.0 +36-45,M,West Virginia,0.597,0.297,0.106,0.0,0.0 +36-45,M,Wisconsin,0.0,0.714,0.152,0.134,0.0 +36-45,M,Wyoming,0.359,0.378,0.263,0.0,0.0 +46-65,F,Alabama,0.186,0.413,0.333,0.0,0.068 +46-65,F,Alaska,0.085,0.483,0.407,0.0,0.026 +46-65,F,Arizona,0.085,0.483,0.407,0.0,0.026 +46-65,F,Arkansas,0.186,0.413,0.333,0.0,0.068 +46-65,F,California,0.085,0.483,0.407,0.0,0.026 +46-65,F,Colorado,0.085,0.483,0.407,0.0,0.026 +46-65,F,Connecticut,0.122,0.369,0.509,0.0,0.0 +46-65,F,Delaware,0.186,0.413,0.333,0.0,0.068 +46-65,F,District of Columbia,0.186,0.413,0.333,0.0,0.068 +46-65,F,Florida,0.186,0.413,0.333,0.0,0.068 +46-65,F,Georgia,0.186,0.413,0.333,0.0,0.068 +46-65,F,Hawaii,0.085,0.483,0.407,0.0,0.026 +46-65,F,Idaho,0.085,0.483,0.407,0.0,0.026 +46-65,F,Illinois,0.087,0.592,0.321,0.0,0.0 +46-65,F,Indiana,0.087,0.592,0.321,0.0,0.0 +46-65,F,Iowa,0.087,0.592,0.321,0.0,0.0 +46-65,F,Kansas,0.087,0.592,0.321,0.0,0.0 +46-65,F,Kentucky,0.186,0.413,0.333,0.0,0.068 +46-65,F,Louisiana,0.186,0.413,0.333,0.0,0.068 +46-65,F,Maine,0.122,0.369,0.509,0.0,0.0 +46-65,F,Maryland,0.186,0.413,0.333,0.0,0.068 +46-65,F,Massachusetts,0.122,0.369,0.509,0.0,0.0 +46-65,F,Michigan,0.087,0.592,0.321,0.0,0.0 +46-65,F,Minnesota,0.087,0.592,0.321,0.0,0.0 +46-65,F,Mississippi,0.186,0.413,0.333,0.0,0.068 +46-65,F,Missouri,0.087,0.592,0.321,0.0,0.0 +46-65,F,Montana,0.085,0.483,0.407,0.0,0.026 +46-65,F,Nebraska,0.087,0.592,0.321,0.0,0.0 +46-65,F,Nevada,0.085,0.483,0.407,0.0,0.026 +46-65,F,New Hampshire,0.122,0.369,0.509,0.0,0.0 +46-65,F,New Jersey,0.122,0.369,0.509,0.0,0.0 +46-65,F,New Mexico,0.085,0.483,0.407,0.0,0.026 +46-65,F,New York,0.122,0.369,0.509,0.0,0.0 +46-65,F,North Carolina,0.186,0.413,0.333,0.0,0.068 +46-65,F,North Dakota,0.087,0.592,0.321,0.0,0.0 +46-65,F,Ohio,0.087,0.592,0.321,0.0,0.0 +46-65,F,Oklahoma,0.186,0.413,0.333,0.0,0.068 +46-65,F,Oregon,0.085,0.483,0.407,0.0,0.026 +46-65,F,Pennsylvania,0.122,0.369,0.509,0.0,0.0 +46-65,F,Rhode Island,0.122,0.369,0.509,0.0,0.0 +46-65,F,South Carolina,0.186,0.413,0.333,0.0,0.068 +46-65,F,South Dakota,0.087,0.592,0.321,0.0,0.0 +46-65,F,Tennessee,0.186,0.413,0.333,0.0,0.068 +46-65,F,Texas,0.186,0.413,0.333,0.0,0.068 +46-65,F,Utah,0.085,0.483,0.407,0.0,0.026 +46-65,F,Vermont,0.122,0.369,0.509,0.0,0.0 +46-65,F,Virginia,0.186,0.413,0.333,0.0,0.068 +46-65,F,Washington,0.085,0.483,0.407,0.0,0.026 +46-65,F,West Virginia,0.186,0.413,0.333,0.0,0.068 +46-65,F,Wisconsin,0.087,0.592,0.321,0.0,0.0 +46-65,F,Wyoming,0.085,0.483,0.407,0.0,0.026 +46-65,M,Alabama,0.136,0.449,0.382,0.0,0.034 +46-65,M,Alaska,0.209,0.301,0.489,0.0,0.0 +46-65,M,Arizona,0.209,0.301,0.489,0.0,0.0 +46-65,M,Arkansas,0.136,0.449,0.382,0.0,0.034 +46-65,M,California,0.209,0.301,0.489,0.0,0.0 +46-65,M,Colorado,0.209,0.301,0.489,0.0,0.0 +46-65,M,Connecticut,0.03,0.642,0.328,0.0,0.0 +46-65,M,Delaware,0.136,0.449,0.382,0.0,0.034 +46-65,M,District of Columbia,0.136,0.449,0.382,0.0,0.034 +46-65,M,Florida,0.136,0.449,0.382,0.0,0.034 +46-65,M,Georgia,0.136,0.449,0.382,0.0,0.034 +46-65,M,Hawaii,0.209,0.301,0.489,0.0,0.0 +46-65,M,Idaho,0.209,0.301,0.489,0.0,0.0 +46-65,M,Illinois,0.201,0.409,0.353,0.037,0.0 +46-65,M,Indiana,0.201,0.409,0.353,0.037,0.0 +46-65,M,Iowa,0.201,0.409,0.353,0.037,0.0 +46-65,M,Kansas,0.201,0.409,0.353,0.037,0.0 +46-65,M,Kentucky,0.136,0.449,0.382,0.0,0.034 +46-65,M,Louisiana,0.136,0.449,0.382,0.0,0.034 +46-65,M,Maine,0.03,0.642,0.328,0.0,0.0 +46-65,M,Maryland,0.136,0.449,0.382,0.0,0.034 +46-65,M,Massachusetts,0.03,0.642,0.328,0.0,0.0 +46-65,M,Michigan,0.201,0.409,0.353,0.037,0.0 +46-65,M,Minnesota,0.201,0.409,0.353,0.037,0.0 +46-65,M,Mississippi,0.136,0.449,0.382,0.0,0.034 +46-65,M,Missouri,0.201,0.409,0.353,0.037,0.0 +46-65,M,Montana,0.209,0.301,0.489,0.0,0.0 +46-65,M,Nebraska,0.201,0.409,0.353,0.037,0.0 +46-65,M,Nevada,0.209,0.301,0.489,0.0,0.0 +46-65,M,New Hampshire,0.03,0.642,0.328,0.0,0.0 +46-65,M,New Jersey,0.03,0.642,0.328,0.0,0.0 +46-65,M,New Mexico,0.209,0.301,0.489,0.0,0.0 +46-65,M,New York,0.03,0.642,0.328,0.0,0.0 +46-65,M,North Carolina,0.136,0.449,0.382,0.0,0.034 +46-65,M,North Dakota,0.201,0.409,0.353,0.037,0.0 +46-65,M,Ohio,0.201,0.409,0.353,0.037,0.0 +46-65,M,Oklahoma,0.136,0.449,0.382,0.0,0.034 +46-65,M,Oregon,0.209,0.301,0.489,0.0,0.0 +46-65,M,Pennsylvania,0.03,0.642,0.328,0.0,0.0 +46-65,M,Rhode Island,0.03,0.642,0.328,0.0,0.0 +46-65,M,South Carolina,0.136,0.449,0.382,0.0,0.034 +46-65,M,South Dakota,0.201,0.409,0.353,0.037,0.0 +46-65,M,Tennessee,0.136,0.449,0.382,0.0,0.034 +46-65,M,Texas,0.136,0.449,0.382,0.0,0.034 +46-65,M,Utah,0.209,0.301,0.489,0.0,0.0 +46-65,M,Vermont,0.03,0.642,0.328,0.0,0.0 +46-65,M,Virginia,0.136,0.449,0.382,0.0,0.034 +46-65,M,Washington,0.209,0.301,0.489,0.0,0.0 +46-65,M,West Virginia,0.136,0.449,0.382,0.0,0.034 +46-65,M,Wisconsin,0.201,0.409,0.353,0.037,0.0 +46-65,M,Wyoming,0.209,0.301,0.489,0.0,0.0 +65-103,F,Alabama,0.107,0.466,0.394,0.004,0.029 +65-103,F,Alaska,0.187,0.401,0.375,0.025,0.011 +65-103,F,Arizona,0.187,0.401,0.375,0.025,0.011 +65-103,F,Arkansas,0.107,0.466,0.394,0.004,0.029 +65-103,F,California,0.187,0.401,0.375,0.025,0.011 +65-103,F,Colorado,0.187,0.401,0.375,0.025,0.011 +65-103,F,Connecticut,0.255,0.293,0.355,0.031,0.066 +65-103,F,Delaware,0.107,0.466,0.394,0.004,0.029 +65-103,F,District of Columbia,0.107,0.466,0.394,0.004,0.029 +65-103,F,Florida,0.107,0.466,0.394,0.004,0.029 +65-103,F,Georgia,0.107,0.466,0.394,0.004,0.029 +65-103,F,Hawaii,0.187,0.401,0.375,0.025,0.011 +65-103,F,Idaho,0.187,0.401,0.375,0.025,0.011 +65-103,F,Illinois,0.135,0.488,0.34,0.013,0.025 +65-103,F,Indiana,0.135,0.488,0.34,0.013,0.025 +65-103,F,Iowa,0.135,0.488,0.34,0.013,0.025 +65-103,F,Kansas,0.135,0.488,0.34,0.013,0.025 +65-103,F,Kentucky,0.107,0.466,0.394,0.004,0.029 +65-103,F,Louisiana,0.107,0.466,0.394,0.004,0.029 +65-103,F,Maine,0.255,0.293,0.355,0.031,0.066 +65-103,F,Maryland,0.107,0.466,0.394,0.004,0.029 +65-103,F,Massachusetts,0.255,0.293,0.355,0.031,0.066 +65-103,F,Michigan,0.135,0.488,0.34,0.013,0.025 +65-103,F,Minnesota,0.135,0.488,0.34,0.013,0.025 +65-103,F,Mississippi,0.107,0.466,0.394,0.004,0.029 +65-103,F,Missouri,0.135,0.488,0.34,0.013,0.025 +65-103,F,Montana,0.187,0.401,0.375,0.025,0.011 +65-103,F,Nebraska,0.135,0.488,0.34,0.013,0.025 +65-103,F,Nevada,0.187,0.401,0.375,0.025,0.011 +65-103,F,New Hampshire,0.255,0.293,0.355,0.031,0.066 +65-103,F,New Jersey,0.255,0.293,0.355,0.031,0.066 +65-103,F,New Mexico,0.187,0.401,0.375,0.025,0.011 +65-103,F,New York,0.255,0.293,0.355,0.031,0.066 +65-103,F,North Carolina,0.107,0.466,0.394,0.004,0.029 +65-103,F,North Dakota,0.135,0.488,0.34,0.013,0.025 +65-103,F,Ohio,0.135,0.488,0.34,0.013,0.025 +65-103,F,Oklahoma,0.107,0.466,0.394,0.004,0.029 +65-103,F,Oregon,0.187,0.401,0.375,0.025,0.011 +65-103,F,Pennsylvania,0.255,0.293,0.355,0.031,0.066 +65-103,F,Rhode Island,0.255,0.293,0.355,0.031,0.066 +65-103,F,South Carolina,0.107,0.466,0.394,0.004,0.029 +65-103,F,South Dakota,0.135,0.488,0.34,0.013,0.025 +65-103,F,Tennessee,0.107,0.466,0.394,0.004,0.029 +65-103,F,Texas,0.107,0.466,0.394,0.004,0.029 +65-103,F,Utah,0.187,0.401,0.375,0.025,0.011 +65-103,F,Vermont,0.255,0.293,0.355,0.031,0.066 +65-103,F,Virginia,0.107,0.466,0.394,0.004,0.029 +65-103,F,Washington,0.187,0.401,0.375,0.025,0.011 +65-103,F,West Virginia,0.107,0.466,0.394,0.004,0.029 +65-103,F,Wisconsin,0.135,0.488,0.34,0.013,0.025 +65-103,F,Wyoming,0.187,0.401,0.375,0.025,0.011 +65-103,M,Alabama,0.111,0.387,0.42,0.0,0.081 +65-103,M,Alaska,0.17,0.347,0.448,0.018,0.017 +65-103,M,Arizona,0.17,0.347,0.448,0.018,0.017 +65-103,M,Arkansas,0.111,0.387,0.42,0.0,0.081 +65-103,M,California,0.17,0.347,0.448,0.018,0.017 +65-103,M,Colorado,0.17,0.347,0.448,0.018,0.017 +65-103,M,Connecticut,0.086,0.383,0.487,0.0,0.044 +65-103,M,Delaware,0.111,0.387,0.42,0.0,0.081 +65-103,M,District of Columbia,0.111,0.387,0.42,0.0,0.081 +65-103,M,Florida,0.111,0.387,0.42,0.0,0.081 +65-103,M,Georgia,0.111,0.387,0.42,0.0,0.081 +65-103,M,Hawaii,0.17,0.347,0.448,0.018,0.017 +65-103,M,Idaho,0.17,0.347,0.448,0.018,0.017 +65-103,M,Illinois,0.136,0.34,0.438,0.0,0.086 +65-103,M,Indiana,0.136,0.34,0.438,0.0,0.086 +65-103,M,Iowa,0.136,0.34,0.438,0.0,0.086 +65-103,M,Kansas,0.136,0.34,0.438,0.0,0.086 +65-103,M,Kentucky,0.111,0.387,0.42,0.0,0.081 +65-103,M,Louisiana,0.111,0.387,0.42,0.0,0.081 +65-103,M,Maine,0.086,0.383,0.487,0.0,0.044 +65-103,M,Maryland,0.111,0.387,0.42,0.0,0.081 +65-103,M,Massachusetts,0.086,0.383,0.487,0.0,0.044 +65-103,M,Michigan,0.136,0.34,0.438,0.0,0.086 +65-103,M,Minnesota,0.136,0.34,0.438,0.0,0.086 +65-103,M,Mississippi,0.111,0.387,0.42,0.0,0.081 +65-103,M,Missouri,0.136,0.34,0.438,0.0,0.086 +65-103,M,Montana,0.17,0.347,0.448,0.018,0.017 +65-103,M,Nebraska,0.136,0.34,0.438,0.0,0.086 +65-103,M,Nevada,0.17,0.347,0.448,0.018,0.017 +65-103,M,New Hampshire,0.086,0.383,0.487,0.0,0.044 +65-103,M,New Jersey,0.086,0.383,0.487,0.0,0.044 +65-103,M,New Mexico,0.17,0.347,0.448,0.018,0.017 +65-103,M,New York,0.086,0.383,0.487,0.0,0.044 +65-103,M,North Carolina,0.111,0.387,0.42,0.0,0.081 +65-103,M,North Dakota,0.136,0.34,0.438,0.0,0.086 +65-103,M,Ohio,0.136,0.34,0.438,0.0,0.086 +65-103,M,Oklahoma,0.111,0.387,0.42,0.0,0.081 +65-103,M,Oregon,0.17,0.347,0.448,0.018,0.017 +65-103,M,Pennsylvania,0.086,0.383,0.487,0.0,0.044 +65-103,M,Rhode Island,0.086,0.383,0.487,0.0,0.044 +65-103,M,South Carolina,0.111,0.387,0.42,0.0,0.081 +65-103,M,South Dakota,0.136,0.34,0.438,0.0,0.086 +65-103,M,Tennessee,0.111,0.387,0.42,0.0,0.081 +65-103,M,Texas,0.111,0.387,0.42,0.0,0.081 +65-103,M,Utah,0.17,0.347,0.448,0.018,0.017 +65-103,M,Vermont,0.086,0.383,0.487,0.0,0.044 +65-103,M,Virginia,0.111,0.387,0.42,0.0,0.081 +65-103,M,Washington,0.17,0.347,0.448,0.018,0.017 +65-103,M,West Virginia,0.111,0.387,0.42,0.0,0.081 +65-103,M,Wisconsin,0.136,0.34,0.438,0.0,0.086 +65-103,M,Wyoming,0.17,0.347,0.448,0.018,0.017 diff --git a/src/main/resources/modules/lookup_tables/uti.csv b/src/main/resources/modules/lookup_tables/uti.csv new file mode 100644 index 0000000..7e2d66b --- /dev/null +++ b/src/main/resources/modules/lookup_tables/uti.csv @@ -0,0 +1,11 @@ +age,gender,Cystitis,Pyelonephritis,Wait_for_UTI +15-24,F,0.0681,0.0016,0.9303 +25-44,F,0.0495,0.0011,0.9494 +45-64,F,0.0536,0.0011,0.9453 +65-74,F,0.0971,0.0012,0.9017 +75-140,F,0.1449,0.0026,0.8525 +15-24,M,0.0013,0.0001,0.9986 +25-44,M,0.0035,0.0001,0.9964 +45-64,M,0.0081,0.0003,0.9916 +65-74,M,0.0241,0.0007,0.9752 +75-140,M,0.0496,0.001,0.9494 \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/uti_recurrence.csv b/src/main/resources/modules/lookup_tables/uti_recurrence.csv new file mode 100644 index 0000000..8d814fb --- /dev/null +++ b/src/main/resources/modules/lookup_tables/uti_recurrence.csv @@ -0,0 +1,11 @@ +age,gender,Cystitis,Pyelonephritis +15-24,F,0.977044476,0.022955524 +25-44,F,0.97826087,0.02173913 +45-64,F,0.979890311,0.020109689 +65-74,F,0.987792472,0.012207528 +75-140,F,0.982372881,0.017627119 +15-24,M,0.928571429,0.071428571 +25-44,M,0.972222222,0.027777778 +45-64,M,0.964285714,0.035714286 +65-74,M,0.971774194,0.028225806 +75-140,M,0.980237154,0.019762846 \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/vhd_ar.csv b/src/main/resources/modules/lookup_tables/vhd_ar.csv new file mode 100644 index 0000000..1515e44 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/vhd_ar.csv @@ -0,0 +1,39 @@ +age,gender,vhd_ar_risk,Aortic Valve Regurgitation,Annual Check +0-4,M,true,0.000109,0.999891 +5-9,M,true,0.000093,0.999907 +10-14,M,true,0.000105,0.999895 +15-19,M,true,0.000118,0.999882 +20-24,M,true,0.000067,0.999933 +25-29,M,true,0.000077,0.999923 +30-34,M,true,0.000081,0.999919 +35-39,M,true,0.000112,0.999888 +40-44,M,true,0.000119,0.999881 +45-49,M,true,0.000156,0.999844 +50-54,M,true,0.000201,0.999799 +55-59,M,true,0.000298,0.999702 +60-64,M,true,0.000429,0.999571 +65-69,M,true,0.000591,0.999409 +70-74,M,true,0.000752,0.999248 +75-79,M,true,0.000879,0.999121 +80-84,M,true,0.000702,0.999298 +85-140,M,true,0.000364,0.999636 +0-4,F,true,0.000064,0.999936 +5-9,F,true,0.000049,0.999951 +10-14,F,true,0.000051,0.999949 +15-19,F,true,0.000049,0.999951 +20-24,F,true,0.000027,0.999973 +25-29,F,true,0.000035,0.999965 +30-34,F,true,0.000035,0.999965 +35-39,F,true,0.000041,0.999959 +40-44,F,true,0.000042,0.999958 +45-49,F,true,0.000071,0.999929 +50-54,F,true,0.000089,0.999911 +55-59,F,true,0.000133,0.999867 +60-64,F,true,0.000198,0.999802 +65-69,F,true,0.000347,0.999653 +70-74,F,true,0.000495,0.999505 +75-79,F,true,0.000645,0.999355 +80-84,F,true,0.000579,0.999421 +85-140,F,true,0.000365,0.999635 +0-140,M,false,0,1 +0-140,F,false,0,1 \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/vhd_as.csv b/src/main/resources/modules/lookup_tables/vhd_as.csv new file mode 100644 index 0000000..09ca132 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/vhd_as.csv @@ -0,0 +1,39 @@ +age,gender,vhd_as_risk,Aortic Valve Stenosis,Check for AR Onset +0-4,M,true,0.000124,0.999876 +5-9,M,true,0.000059,0.999941 +10-14,M,true,0.000058,0.999942 +15-19,M,true,0.000058,0.999942 +20-24,M,true,0.000029,0.999971 +25-29,M,true,0.000039,0.999961 +30-34,M,true,0.000055,0.999945 +35-39,M,true,0.000064,0.999936 +40-44,M,true,0.000086,0.999914 +45-49,M,true,0.000132,0.999868 +50-54,M,true,0.000244,0.999756 +55-59,M,true,0.000408,0.999592 +60-64,M,true,0.000724,0.999276 +65-69,M,true,0.001203,0.998797 +70-74,M,true,0.002085,0.997915 +75-79,M,true,0.003164,0.996836 +80-84,M,true,0.004006,0.995994 +85-140,M,true,0.003566,0.996434 +0-4,F,true,0.000057,0.999943 +5-9,F,true,0.000027,0.999973 +10-14,F,true,0.000031,0.999969 +15-19,F,true,0.000032,0.999968 +20-24,F,true,0.000018,0.999982 +25-29,F,true,0.000025,0.999975 +30-34,F,true,0.000022,0.999978 +35-39,F,true,0.000024,0.999976 +40-44,F,true,0.000045,0.999955 +45-49,F,true,0.000068,0.999932 +50-54,F,true,0.000112,0.999888 +55-59,F,true,0.000193,0.999807 +60-64,F,true,0.000364,0.999636 +65-69,F,true,0.000676,0.999324 +70-74,F,true,0.001296,0.998704 +75-79,F,true,0.002274,0.997726 +80-84,F,true,0.003276,0.996724 +85-140,F,true,0.003492,0.996508 +0-140,M,false,0,1 +0-140,F,false,0,1 \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/vhd_mr.csv b/src/main/resources/modules/lookup_tables/vhd_mr.csv new file mode 100644 index 0000000..e785646 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/vhd_mr.csv @@ -0,0 +1,39 @@ +age,gender,vhd_mr_risk,Mitral Valve Regurgitation,Annual Check +0-4,M,true,0.000076,0.999924 +5-9,M,true,0.000041,0.999959 +10-14,M,true,0.000050,0.999950 +15-19,M,true,0.000055,0.999945 +20-24,M,true,0.000026,0.999974 +25-29,M,true,0.000025,0.999975 +30-34,M,true,0.000034,0.999966 +35-39,M,true,0.000053,0.999947 +40-44,M,true,0.000085,0.999915 +45-49,M,true,0.000139,0.999861 +50-54,M,true,0.000214,0.999786 +55-59,M,true,0.000307,0.999693 +60-64,M,true,0.000529,0.999471 +65-69,M,true,0.000741,0.999259 +70-74,M,true,0.001037,0.998963 +75-79,M,true,0.001340,0.998660 +80-84,M,true,0.001451,0.998549 +85-140,M,true,0.000935,0.999065 +0-4,F,true,0.000085,0.999915 +5-9,F,true,0.000069,0.999931 +10-14,F,true,0.000062,0.999938 +15-19,F,true,0.000060,0.999940 +20-24,F,true,0.000038,0.999962 +25-29,F,true,0.000047,0.999953 +30-34,F,true,0.000054,0.999946 +35-39,F,true,0.000058,0.999942 +40-44,F,true,0.000068,0.999932 +45-49,F,true,0.000069,0.999931 +50-54,F,true,0.000125,0.999875 +55-59,F,true,0.000173,0.999827 +60-64,F,true,0.000264,0.999736 +65-69,F,true,0.000461,0.999539 +70-74,F,true,0.000786,0.999214 +75-79,F,true,0.001086,0.998914 +80-84,F,true,0.001214,0.998786 +85-140,F,true,0.000836,0.999164 +0-140,M,false,0,1 +0-140,F,false,0,1 \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/vhd_ms.csv b/src/main/resources/modules/lookup_tables/vhd_ms.csv new file mode 100644 index 0000000..6c94e30 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/vhd_ms.csv @@ -0,0 +1,39 @@ +age,gender,vhd_ms_risk,Mitral Valve Stenosis,Check for MR Onset +0-4,M,true,0.000027,0.999973 +5-9,M,true,0.000007,0.999993 +10-14,M,true,0.000006,0.999994 +15-19,M,true,0.000004,0.999996 +20-24,M,true,0.000005,0.999995 +25-29,M,true,0.000006,0.999994 +30-34,M,true,0.000003,0.999997 +35-39,M,true,0.000006,0.999994 +40-44,M,true,0.000005,0.999995 +45-49,M,true,0.000012,0.999988 +50-54,M,true,0.000012,0.999988 +55-59,M,true,0.00002,0.99998 +60-64,M,true,0.000029,0.999971 +65-69,M,true,0.000033,0.999967 +70-74,M,true,0.000057,0.999943 +75-79,M,true,0.000076,0.999924 +80-84,M,true,0.000069,0.999931 +85-140,M,true,0.000049,0.999951 +0-4,F,true,0.000014,0.999986 +5-9,F,true,0.000005,0.999995 +10-14,F,true,0.000006,0.999994 +15-19,F,true,0.000002,0.999998 +20-24,F,true,0.000007,0.999993 +25-29,F,true,0.000009,0.999991 +30-34,F,true,0.000009,0.999991 +35-39,F,true,0.000013,0.999987 +40-44,F,true,0.000019,0.999981 +45-49,F,true,0.000025,0.999975 +50-54,F,true,0.00002,0.99998 +55-59,F,true,0.000022,0.999978 +60-64,F,true,0.000028,0.999972 +65-69,F,true,0.000061,0.999939 +70-74,F,true,0.000103,0.999897 +75-79,F,true,0.000153,0.999847 +80-84,F,true,0.000182,0.999818 +85-140,F,true,0.000126,0.999874 +0-140,M,false,0,1 +0-140,F,false,0,1 diff --git a/src/main/resources/modules/lookup_tables/vhd_pr.csv b/src/main/resources/modules/lookup_tables/vhd_pr.csv new file mode 100644 index 0000000..6c68c71 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/vhd_pr.csv @@ -0,0 +1,39 @@ +age,gender,vhd_pr_risk,Pulmonic Valve Regurgitation,Annual Check +0-4,M,true,0.000024,0.999976 +5-9,M,true,0.000024,0.999976 +10-14,M,true,0.000024,0.999976 +15-19,M,true,0.000021,0.999979 +20-24,M,true,0.000011,0.999989 +25-29,M,true,0.000008,0.999992 +30-34,M,true,0.000005,0.999995 +35-39,M,true,0.000006,0.999994 +40-44,M,true,0.000002,0.999998 +45-49,M,true,0.000002,0.999998 +50-54,M,true,0.000003,0.999997 +55-59,M,true,0.000005,0.999995 +60-64,M,true,0.000005,0.999995 +65-69,M,true,0.000004,0.999996 +70-74,M,true,0.000004,0.999996 +75-79,M,true,0.000005,0.999995 +80-84,M,true,0.00001,0.99999 +85-140,M,true,0,1 +0-4,F,true,0.000025,0.999975 +5-9,F,true,0.000017,0.999983 +10-14,F,true,0.000018,0.999982 +15-19,F,true,0.000011,0.999989 +20-24,F,true,0.000011,0.999989 +25-29,F,true,0.000008,0.999992 +30-34,F,true,0.000006,0.999994 +35-39,F,true,0.000003,0.999997 +40-44,F,true,0.000008,0.999992 +45-49,F,true,0.000003,0.999997 +50-54,F,true,0.000002,0.999998 +55-59,F,true,0.000003,0.999997 +60-64,F,true,0.000006,0.999994 +65-69,F,true,0.000004,0.999996 +70-74,F,true,0.000005,0.999995 +75-79,F,true,0.000009,0.999991 +80-84,F,true,0.000002,0.999998 +85-140,F,true,0.000002,0.999998 +0-140,M,false,0,1 +0-140,F,false,0,1 diff --git a/src/main/resources/modules/lookup_tables/vhd_ps.csv b/src/main/resources/modules/lookup_tables/vhd_ps.csv new file mode 100644 index 0000000..0aab5ae --- /dev/null +++ b/src/main/resources/modules/lookup_tables/vhd_ps.csv @@ -0,0 +1,39 @@ +age,gender,vhd_ps_risk,Pulmonic Valve Stenosis,Check for PR Onset +0-4,M,true,0.000252,0.999748 +5-9,M,true,0.000045,0.999955 +10-14,M,true,0.000047,0.999953 +15-19,M,true,0.000039,0.999961 +20-24,M,true,0.00002,0.99998 +25-29,M,true,0.000021,0.999979 +30-34,M,true,0.000013,0.999987 +35-39,M,true,0.000009,0.999991 +40-44,M,true,0.000008,0.999992 +45-49,M,true,0.000009,0.999991 +50-54,M,true,0.000005,0.999995 +55-59,M,true,0.000013,0.999987 +60-64,M,true,0.000009,0.999991 +65-69,M,true,0.00001,0.99999 +70-74,M,true,0.000004,0.999996 +75-79,M,true,0.000005,0.999995 +80-84,M,true,0.000004,0.999996 +85-140,M,true,0.000004,0.999996 +0-4,F,true,0.000341,0.999659 +5-9,F,true,0.000049,0.999951 +10-14,F,true,0.000054,0.999946 +15-19,F,true,0.00004,0.99996 +20-24,F,true,0.000027,0.999973 +25-29,F,true,0.000024,0.999976 +30-34,F,true,0.000016,0.999984 +35-39,F,true,0.000011,0.999989 +40-44,F,true,0.000018,0.999982 +45-49,F,true,0.000007,0.999993 +50-54,F,true,0.00001,0.99999 +55-59,F,true,0.000011,0.999989 +60-64,F,true,0.000012,0.999988 +65-69,F,true,0.000008,0.999992 +70-74,F,true,0.000013,0.999987 +75-79,F,true,0.00001,0.99999 +80-84,F,true,0.000003,0.999997 +85-140,F,true,0.000006,0.999994 +0-140,M,false,0,1 +0-140,F,false,0,1 diff --git a/src/main/resources/modules/lookup_tables/vhd_tr.csv b/src/main/resources/modules/lookup_tables/vhd_tr.csv new file mode 100644 index 0000000..e62bddd --- /dev/null +++ b/src/main/resources/modules/lookup_tables/vhd_tr.csv @@ -0,0 +1,39 @@ +age,gender,vhd_tr_risk,Tricuspid Valve Regurgitation,Annual Check +0-4,M,true,0.000006,0.999994 +5-9,M,true,0.000005,0.999995 +10-14,M,true,0.000004,0.999996 +15-19,M,true,0.000009,0.999991 +20-24,M,true,0.000005,0.999995 +25-29,M,true,0.000007,0.999993 +30-34,M,true,0.000005,0.999995 +35-39,M,true,0.000008,0.999992 +40-44,M,true,0.000009,0.999991 +45-49,M,true,0.000011,0.999989 +50-54,M,true,0.000015,0.999985 +55-59,M,true,0.000027,0.999973 +60-64,M,true,0.000045,0.999955 +65-69,M,true,0.000081,0.999919 +70-74,M,true,0.000124,0.999876 +75-79,M,true,0.000197,0.999803 +80-84,M,true,0.000213,0.999787 +85-140,M,true,0.000181,0.999819 +0-4,F,true,0.000007,0.999993 +5-9,F,true,0.000003,0.999997 +10-14,F,true,0.000003,0.999997 +15-19,F,true,0.000006,0.999994 +20-24,F,true,0.000008,0.999992 +25-29,F,true,0.000008,0.999992 +30-34,F,true,0.000008,0.999992 +35-39,F,true,0.000014,0.999986 +40-44,F,true,0.000013,0.999987 +45-49,F,true,0.000014,0.999986 +50-54,F,true,0.000019,0.999981 +55-59,F,true,0.000026,0.999974 +60-64,F,true,0.000055,0.999945 +65-69,F,true,0.000086,0.999914 +70-74,F,true,0.000143,0.999857 +75-79,F,true,0.000224,0.999776 +80-84,F,true,0.000266,0.999734 +85-140,F,true,0.000185,0.999815 +0-140,M,false,0,1 +0-140,F,false,0,1 \ No newline at end of file diff --git a/src/main/resources/modules/lookup_tables/vhd_ts.csv b/src/main/resources/modules/lookup_tables/vhd_ts.csv new file mode 100644 index 0000000..803eb15 --- /dev/null +++ b/src/main/resources/modules/lookup_tables/vhd_ts.csv @@ -0,0 +1,39 @@ +age,gender,vhd_ts_risk,Tricuspid Valve Stenosis,Check for TR Onset +0-4,M,true,0.000018,0.999982 +5-9,M,true,0.000003,0.999997 +10-14,M,true,0.000004,0.999996 +15-19,M,true,0.000002,0.999998 +20-24,M,true,0.000002,0.999998 +25-29,M,true,0.000001,0.999999 +30-34,M,true,0.000002,0.999998 +35-39,M,true,0.000001,0.999999 +40-44,M,true,0.000001,0.999999 +45-49,M,true,0.000001,0.999999 +50-54,M,true,0.000003,0.999997 +55-59,M,true,0.000001,0.999999 +60-64,M,true,0.000004,0.999996 +65-69,M,true,0.000005,0.999995 +70-74,M,true,0.000008,0.999992 +75-79,M,true,0.000015,0.999985 +80-84,M,true,0.000012,0.999988 +85-140,M,true,0.000012,0.999988 +0-4,F,true,0.000015,0.999985 +5-9,F,true,0.000003,0.999997 +10-14,F,true,0.000001,0.999999 +15-19,F,true,0.000003,0.999997 +20-24,F,true,0.000001,0.999999 +25-29,F,true,0.000001,0.999999 +30-34,F,true,0.000002,0.999998 +35-39,F,true,0.000001,0.999999 +40-44,F,true,0.000001,0.999999 +45-49,F,true,0.000004,0.999996 +50-54,F,true,0.000001,0.999999 +55-59,F,true,0.000003,0.999997 +60-64,F,true,0.000004,0.999996 +65-69,F,true,0.000008,0.999992 +70-74,F,true,0.000009,0.999991 +75-79,F,true,0.000014,0.999986 +80-84,F,true,0.000011,0.999989 +85-140,F,true,0.000007,0.999993 +0-140,M,false,0,1 +0-140,F,false,0,1 diff --git a/src/main/resources/modules/lung_cancer.json b/src/main/resources/modules/lung_cancer.json new file mode 100644 index 0000000..202bd1c --- /dev/null +++ b/src/main/resources/modules/lung_cancer.json @@ -0,0 +1,2714 @@ +{ + "name": "Lung Cancer", + "remarks": [ + "Most of the data for this module was synthesized from two primary sources:", + "1. The comprehensive pages starting at http://www.cancer.org/cancer/lungcancer/index", + "2. The Cancer Care Ontario Pathway Maps at https://www.cancercare.on.ca/ocs/qpi/dispathmgmt/pathways/lung_cancer_pathway_map/", + "Some data statistics came from:", + "3. The American Lung Association Lung Cancer Fact Sheet @ http://www.lung.org/lung-health-and-diseases/lung-disease-lookup/lung-cancer/learn-about-lung-cancer/lung-cancer-fact-sheet.html", + "4. https://www.verywell.com/what-percentage-of-smokers-get-lung-cancer-2248868", + "5. Life Expectancies: http://www.healthcommunities.com/lung-cancer/prognosis.shtml" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Ages_45_65" + }, + "Ages_45_65": { + "type": "Delay", + "range": { + "low": 45, + "high": 65, + "unit": "years" + }, + "direct_transition": "Lung Cancer Probabilities", + "remarks": [ + "Lung cancer mainly occurs in older people. About 2 out of 3 people diagnosed with lung cancer are 65 or older, while less than 2% are younger than 45. The average age at the time of diagnosis is about 70.", + "http://www.cancer.org/cancer/lungcancer-non-smallcell/detailedguide/non-small-cell-lung-cancer-key-statistics" + ] + }, + "Lung Cancer Probabilities": { + "type": "CallSubmodule", + "submodule": "lung_cancer/lung_cancer_probabilities", + "distributed_transition": [ + { + "distribution": { + "attribute": "probability_of_lung_cancer", + "default": 0.0645 + }, + "transition": "Onset_Lung_Cancer" + }, + { + "distribution": { + "attribute": "probability_of_no_lung_cancer", + "default": 0.93355 + }, + "transition": "Terminal" + } + ], + "remarks": [ + "Overall, the chance that a man will develop lung cancer in his lifetime is about 1 in 14; for a woman, the risk is about 1 in 17.", + "http://www.cancer.org/cancer/lungcancer-non-smallcell/detailedguide/non-small-cell-lung-cancer-key-statistics", + "Men who smoke are 23 times more likely to develop lung cancer. Women are 13 times more likely, compared to never smokers.", + "http://www.lung.org/lung-health-and-diseases/lung-disease-lookup/lung-cancer/learn-about-lung-cancer/lung-cancer-fact-sheet.html", + "In a 2006 European study, the risk of developing lung cancer was: 0.2 percent for men who never smoked (0.4% for women); 5.5 percent of male former smokers (2.6% in women); 15.9 percent of current male smokers (9.5% for women); 24.4 percent for male 'heavy smokers' defined as smoking more than 5 cigarettes per day (18.5 percent for women)", + "https://www.verywell.com/what-percentage-of-smokers-get-lung-cancer-2248868" + ] + }, + "Onset_Lung_Cancer": { + "type": "SetAttribute", + "attribute": "lung_cancer", + "value": true, + "direct_transition": "Init_Lung_Cancer_Counter" + }, + "Init_Lung_Cancer_Counter": { + "type": "SetAttribute", + "attribute": "lung_cancer_nondiagnosis_counter", + "value": 0, + "direct_transition": "Undiagnosed_Lung_Cancer" + }, + "Undiagnosed_Lung_Cancer": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "distributed_transition": [ + { + "distribution": { + "attribute": "probability_of_lung_cancer_treatment", + "default": 0.2 + }, + "transition": "Cough" + }, + { + "distribution": { + "attribute": "probability_of_no_lung_cancer_treatment", + "default": 0.8 + }, + "transition": "Increment_Counter" + } + ] + }, + "Increment_Counter": { + "type": "Counter", + "action": "increment", + "attribute": "lung_cancer_nondiagnosis_counter", + "direct_transition": "Undiagnosed_Lung_Cancer" + }, + "Cough": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Bloody Cough" + }, + "Bloody Cough": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 100, + "high": 350 + }, + "direct_transition": "Shortness of Breath" + }, + "Shortness of Breath": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 100, + "high": 350 + }, + "direct_transition": "Fever" + }, + "Fever": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 50, + "high": 250 + }, + "direct_transition": "Head and neck swelling" + }, + "Head and neck swelling": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 50, + "high": 250 + }, + "direct_transition": "Sweats" + }, + "Sweats": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 50, + "high": 250 + }, + "direct_transition": "Fatigue" + }, + "Fatigue": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 50, + "high": 250 + }, + "direct_transition": "Decrease in appetite" + }, + "Decrease in appetite": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Decrease in weight" + }, + "Decrease in weight": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Chest Pain" + }, + "Chest Pain": { + "type": "Symptom", + "symptom": "Chest Pain", + "range": { + "low": 50, + "high": 250 + }, + "direct_transition": "Suspected Lung Cancer" + }, + "Suspected Lung Cancer": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter I", + "assign_to_attribute": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "162573006", + "display": "Suspected lung cancer (situation)" + } + ], + "direct_transition": "Diagnosis Encounter I" + }, + "Diagnosis Encounter I": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "Pain_Vital" + }, + "Chest X-Ray": { + "type": "Procedure", + "reason": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain X-ray of chest (procedure)" + } + ], + "duration": { + "low": 10, + "high": 25, + "unit": "minutes" + }, + "direct_transition": "End_Diagnosis_Encounter_I" + }, + "End_Diagnosis_Encounter_I": { + "type": "EncounterEnd", + "direct_transition": "Schedule Follow Up I" + }, + "Schedule Follow Up I": { + "type": "Delay", + "range": { + "low": 2, + "high": 9, + "unit": "days" + }, + "direct_transition": "Diagnosis Encounter II" + }, + "Diagnosis Encounter II": { + "type": "Encounter", + "encounter_class": "outpatient", + "reason": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Chest CT Scan" + }, + "Chest CT Scan": { + "type": "Procedure", + "reason": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418891003", + "display": "Computed tomography of chest and abdomen (procedure)" + } + ], + "duration": { + "low": 20, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "End_Diagnosis_Encounter_II" + }, + "End_Diagnosis_Encounter_II": { + "type": "EncounterEnd", + "direct_transition": "Schedule Follow Up II" + }, + "Schedule Follow Up II": { + "type": "Delay", + "range": { + "low": 1, + "high": 9, + "unit": "days" + }, + "distributed_transition": [ + { + "distribution": 0.85, + "transition": "Non-Small Cell Lung Cancer" + }, + { + "distribution": 0.15, + "transition": "Small Cell Lung Cancer" + } + ], + "remarks": [ + "About 85% of lung cancers are non-small cell lung cancers.", + "About 10%-15% of lung cancers are small cell lung cancers.", + "http://www.cancer.org/cancer/lungcancer/index" + ] + }, + "Non-Small Cell Lung Cancer": { + "type": "SetAttribute", + "attribute": "Lung Cancer Type", + "value": "NSCLC", + "direct_transition": "NSCLC" + }, + "NSCLC": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter III", + "assign_to_attribute": "Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "254637007", + "display": "Non-small cell lung cancer (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter III" + }, + "Small Cell Lung Cancer": { + "type": "SetAttribute", + "attribute": "Lung Cancer Type", + "value": "SCLC", + "direct_transition": "SCLC" + }, + "SCLC": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter III", + "assign_to_attribute": "Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "254632001", + "display": "Small cell carcinoma of lung (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter III" + }, + "Diagnosis Encounter III": { + "type": "Encounter", + "encounter_class": "outpatient", + "reason": "Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.25, + "transition": "Sputum Cytology (Phelgm)" + }, + { + "distribution": 0.25, + "transition": "Thoracentesis (Fluid)" + }, + { + "distribution": 0.25, + "transition": "Needle Biopsy (Cells)" + }, + { + "distribution": 0.25, + "transition": "Bronchoscopy (Tube)" + } + ] + }, + "Sputum Cytology (Phelgm)": { + "type": "Procedure", + "reason": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "167995008", + "display": "Sputum microscopy (procedure)" + } + ], + "direct_transition": "End_Diagnosis_Encounter_III" + }, + "Thoracentesis (Fluid)": { + "type": "Procedure", + "reason": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91602002", + "display": "Thoracentesis (procedure)" + } + ], + "direct_transition": "End_Diagnosis_Encounter_III" + }, + "Needle Biopsy (Cells)": { + "type": "Procedure", + "reason": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "432231006", + "display": "Fine needle aspiration biopsy of lung (procedure)" + } + ], + "direct_transition": "End_Diagnosis_Encounter_III" + }, + "Bronchoscopy (Tube)": { + "type": "Procedure", + "reason": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "85765000", + "display": "Fiberoptic bronchoscopy (procedure)" + } + ], + "direct_transition": "End_Diagnosis_Encounter_III" + }, + "End_Diagnosis_Encounter_III": { + "type": "EncounterEnd", + "distributed_transition": [ + { + "transition": "Check_Anemia_Exist", + "distribution": 0.77 + }, + { + "transition": "Check For Hospice", + "distribution": 0.23 + } + ], + "remarks": [ + "1462 of 1900 patients developed anemia at some point during the survey - ", + "" + ] + }, + "Schedule Follow Up III": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "days" + }, + "remarks": [ + "See Stage Distribution (%) 2006-2012, Case Counts and Percentages", + "http://seer.cancer.gov/csr/1975_2013/browse_csr.php?sectionSEL=15&pageSEL=sect_15_table.14.html", + "http://seer.cancer.gov/csr/1975_2013/browse_csr.php?sectionSEL=15&pageSEL=sect_15_table.13.html", + "only 15 percent of lung cancer cases are diagnosed at an early stage.", + "http://www.lung.org/lung-health-and-diseases/lung-disease-lookup/lung-cancer/learn-about-lung-cancer/lung-cancer-fact-sheet.html", + "updated remarks 2017-08-31:", + "http://oregon.providence.org/our-services/a/ask-a-providence-expert/forms-and-information/ask-an-expert-lung-cancer-growth-and-spread/", + "It takes at least 30 divisions of one cancer cell to create a tumor that is 1 centimeter in size (about half an inch).", + "That is the smallest size likely to be seen on an X-ray. It takes about three to six months for most lung cancers to double their size. ", + "Therefore, it could take several years for a typical lung cancer to reach a size at which it could be diagnosed on a chest X-ray. " + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "lung_cancer_nondiagnosis_counter", + "operator": "<=", + "value": 36 + }, + "transition": "Stage I" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "lung_cancer_nondiagnosis_counter", + "operator": "<=", + "value": 72 + }, + "transition": "Stage II" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "lung_cancer_nondiagnosis_counter", + "operator": "<=", + "value": 108 + }, + "transition": "Stage III" + }, + { + "transition": "Stage IV" + } + ] + }, + "Stage I": { + "type": "Death", + "range": { + "low": 2, + "high": 6, + "unit": "years" + }, + "referenced_by_attribute": "Lung Cancer", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "SCLC" + }, + "transition": "SCLC I" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "NSCLC" + }, + "transition": "NSCLC I" + } + ] + }, + "Stage II": { + "type": "Death", + "range": { + "low": 16, + "high": 28, + "unit": "months" + }, + "referenced_by_attribute": "Lung Cancer", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "SCLC" + }, + "transition": "SCLC II" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "NSCLC" + }, + "transition": "NSCLC II" + } + ] + }, + "Stage III": { + "type": "Death", + "range": { + "low": 9, + "high": 18, + "unit": "months" + }, + "referenced_by_attribute": "Lung Cancer", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "SCLC" + }, + "transition": "SCLC III" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "NSCLC" + }, + "transition": "NSCLC III" + } + ] + }, + "Stage IV": { + "type": "Death", + "range": { + "low": 6, + "high": 10, + "unit": "months" + }, + "referenced_by_attribute": "Lung Cancer", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "SCLC" + }, + "transition": "SCLC IV" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "NSCLC" + }, + "transition": "NSCLC IV" + } + ] + }, + "NSCLC I": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter IV", + "assign_to_attribute": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424132000", + "display": "Non-small cell carcinoma of lung, TNM stage 1 (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter IV" + }, + "NSCLC II": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter IV", + "assign_to_attribute": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "425048006", + "display": "Non-small cell carcinoma of lung, TNM stage 2 (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter IV" + }, + "NSCLC III": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter IV", + "assign_to_attribute": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "422968005", + "display": "Non-small cell carcinoma of lung, TNM stage 3 (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter IV" + }, + "NSCLC IV": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter IV", + "assign_to_attribute": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "423121009", + "display": "Non-small cell carcinoma of lung, TNM stage 4 (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter IV" + }, + "SCLC I": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter IV", + "assign_to_attribute": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "67811000119102", + "display": "Primary small cell malignant neoplasm of lung, TNM stage 1 (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter IV" + }, + "SCLC II": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter IV", + "assign_to_attribute": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "67821000119109", + "display": "Primary small cell malignant neoplasm of lung, TNM stage 2 (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter IV" + }, + "SCLC III": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter IV", + "assign_to_attribute": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "67831000119107", + "display": "Primary small cell malignant neoplasm of lung, TNM stage 3 (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter IV" + }, + "SCLC IV": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter IV", + "assign_to_attribute": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "67841000119103", + "display": "Primary small cell malignant neoplasm of lung, TNM stage 4 (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter IV" + }, + "Diagnosis Encounter IV": { + "type": "Encounter", + "encounter_class": "outpatient", + "reason": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Lung_Cancer_CarePlan" + }, + "Lung_Cancer_CarePlan": { + "type": "CarePlanStart", + "reason": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "182964004", + "display": "Terminal care (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "133918004", + "display": "Comfort measures (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "408957008", + "display": "Chronic pain control management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "243072006", + "display": "Cancer education (procedure)" + } + ], + "direct_transition": "MRI Brain" + }, + "MRI Brain": { + "type": "Procedure", + "reason": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698354004", + "display": "Magnetic resonance imaging for measurement of brain volume (procedure)" + } + ], + "duration": { + "low": 30, + "high": 120, + "unit": "minutes" + }, + "distributed_transition": [ + { + "transition": "Stem Cells", + "distribution": 0.01 + }, + { + "transition": "End_Diagnosis_Encounter_IV", + "distribution": 0.99 + } + ] + }, + "End_Diagnosis_Encounter_IV": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "SCLC" + }, + "transition": "SCLC Treatment Path" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "NSCLC" + }, + "transition": "NSCLC Treatment Path" + } + ] + }, + "SCLC Treatment Path": { + "type": "Simple", + "direct_transition": "SCLC Treatment Encounter" + }, + "SCLC Treatment Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Record_CMP_2" + }, + "SCLC Chemotheraphy I": { + "type": "MedicationOrder", + "reason": "Lung Cancer Condition", + "assign_to_attribute": "chemotherapy1", + "remarks": [ + "SCLC is generally treated with combinations of chemotherapy drugs. The combinations most often used are: Cisplatin and etoposide", + "http://www.cancer.org/cancer/lungcancer-smallcell/detailedguide/small-cell-lung-cancer-treating-chemotherapy" + ], + "codes": [ + { + "system": "RxNorm", + "code": "1736854", + "display": "Cisplatin 50 MG Injection" + } + ], + "direct_transition": "SCLC Chemotheraphy IB", + "administration": true + }, + "SCLC Chemotheraphy IB": { + "type": "MedicationEnd", + "referenced_by_attribute": "chemotherapy1", + "direct_transition": "SCLC Chemotheraphy II" + }, + "SCLC Chemotheraphy II": { + "type": "MedicationOrder", + "reason": "Lung Cancer Condition", + "assign_to_attribute": "chemotherapy2", + "remarks": [ + "SCLC is generally treated with combinations of chemotherapy drugs. The combinations most often used are: Cisplatin and etoposide", + "http://www.cancer.org/cancer/lungcancer-smallcell/detailedguide/small-cell-lung-cancer-treating-chemotherapy" + ], + "codes": [ + { + "system": "RxNorm", + "code": "226719", + "display": "Etoposide 100 MG Injection" + } + ], + "direct_transition": "SCLC Chemotheraphy IIB", + "administration": true + }, + "SCLC Chemotheraphy IIB": { + "type": "MedicationEnd", + "referenced_by_attribute": "chemotherapy2", + "direct_transition": "SCLC Radiation" + }, + "SCLC Radiation": { + "type": "Procedure", + "reason": "Lung Cancer Condition", + "remarks": [ + "The type of radiation therapy most often used to treat SCLC is called external beam radiation therapy (EBRT).", + "http://www.cancer.org/cancer/lungcancer-smallcell/detailedguide/small-cell-lung-cancer-treating-radiation-therapy" + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "703423002", + "display": "Combined chemotherapy and radiation therapy (procedure)" + } + ], + "duration": { + "low": 0.5, + "high": 4, + "unit": "hours" + }, + "direct_transition": "Pain_Vital_2" + }, + "End_SCLC_Treatment_Encounter": { + "type": "EncounterEnd", + "direct_transition": "SCLC Treatment Delay" + }, + "SCLC Treatment Delay": { + "type": "Delay", + "range": { + "low": 21, + "high": 28, + "unit": "days" + }, + "remarks": [ + "Doctors give chemo in cycles, with a period of treatment (usually 1 to 3 days) followed by a rest period to allow your body time to recover. Each cycle generally lasts about 3 to 4 weeks", + "http://www.cancer.org/cancer/lungcancer-smallcell/detailedguide/small-cell-lung-cancer-treating-chemotherapy", + "Most often, radiation as part of the initial treatment for SCLC is given once or twice daily, 5 days a week, for 3 to 7 weeks.", + "http://www.cancer.org/cancer/lungcancer-smallcell/detailedguide/small-cell-lung-cancer-treating-radiation-therapy" + ], + "direct_transition": "SCLC Treatment Path" + }, + "NSCLC Treatment Path": { + "type": "Simple", + "direct_transition": "NSCLC Treatment Encounter" + }, + "NSCLC Treatment Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Record_CMP", + "reason": "Lung Cancer Condition" + }, + "NSCLC Chemotheraphy I": { + "type": "MedicationOrder", + "reason": "Lung Cancer Condition", + "assign_to_attribute": "chemotherapy1", + "remarks": [ + "Most often, treatment for NSCLC uses a combination of 2 chemo drugs.", + "If a combination is used, it often includes cisplatin or carboplatin plus one other drug", + "http://www.cancer.org/cancer/lungcancer-non-smallcell/detailedguide/non-small-cell-lung-cancer-treating-chemotherapy" + ], + "codes": [ + { + "system": "RxNorm", + "code": "1736854", + "display": "Cisplatin 50 MG Injection" + } + ], + "direct_transition": "NSCLC Chemotheraphy IB", + "administration": true + }, + "NSCLC Chemotheraphy IB": { + "type": "MedicationEnd", + "referenced_by_attribute": "chemotherapy1", + "direct_transition": "NSCLC Chemotheraphy II" + }, + "NSCLC Chemotheraphy II": { + "type": "MedicationOrder", + "reason": "Lung Cancer Condition", + "assign_to_attribute": "chemotherapy2", + "remarks": [ + "The chemo drugs most often used for NSCLC include ... Paclitaxel (Taxol)", + "http://www.cancer.org/cancer/lungcancer-non-smallcell/detailedguide/non-small-cell-lung-cancer-treating-chemotherapy" + ], + "codes": [ + { + "system": "RxNorm", + "code": "583214", + "display": "PACLitaxel 100 MG Injection" + } + ], + "direct_transition": "NSCLC Chemotheraphy IIB", + "administration": true + }, + "NSCLC Chemotheraphy IIB": { + "type": "MedicationEnd", + "referenced_by_attribute": "chemotherapy2", + "direct_transition": "NSCLC Radiation" + }, + "NSCLC Radiation": { + "type": "Procedure", + "reason": "Lung Cancer Condition", + "remarks": [ + "External beam radiation therapy (EBRT) focuses radiation from outside the body on the cancer. This is the type of radiation therapy most often used to treat NSCLC or its spread to other organs.", + "http://www.cancer.org/cancer/lungcancer-non-smallcell/detailedguide/non-small-cell-lung-cancer-treating-radiation-therapy" + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "703423002", + "display": "Combined chemotherapy and radiation therapy (procedure)" + } + ], + "duration": { + "low": 0.5, + "high": 4, + "unit": "hours" + }, + "direct_transition": "Pain_Vital_3" + }, + "End_NSCLC_Treatment_Encounter": { + "type": "EncounterEnd", + "direct_transition": "NSCLC Treatment Delay" + }, + "NSCLC Treatment Delay": { + "type": "Delay", + "range": { + "low": 28, + "high": 35, + "unit": "days" + }, + "remarks": [ + "Doctors give chemo in cycles, with a period of treatment (usually 1 to 3 days) followed by a rest period to allow the body time to recover. Some chemo drugs, though, are given every day. Chemo cycles generally last about 3 to 4 weeks.", + "http://www.cancer.org/cancer/lungcancer-non-smallcell/detailedguide/non-small-cell-lung-cancer-treating-radiation-therapy", + "Most often, radiation treatments to the lungs are given 5 days a week for 5 to 7 weeks", + "http://www.cancer.org/cancer/lungcancer-non-smallcell/detailedguide/non-small-cell-lung-cancer-treating-radiation-therapy" + ], + "direct_transition": "NSCLC Treatment Path" + }, + "Terminal": { + "type": "Terminal" + }, + "Record_CMP": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2339-0", + "display": "Glucose [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "6299-2", + "display": "Urea nitrogen [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "38483-4", + "display": "Creatinine [Mass/volume] in Blood" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.5, + "high": 3.5 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "49765-1", + "display": "Calcium [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2947-0", + "display": "Sodium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "6298-4", + "display": "Potassium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2069-3", + "display": "Chloride [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "20565-8", + "display": "Carbon dioxide, total [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 4, + "high": 29 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 3.5, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "g/L", + "codes": [ + { + "system": "LOINC", + "code": "10834-0", + "display": "Globulin [Mass/volume] in Serum by calculation" + } + ], + "range": { + "low": 2, + "high": 3.5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.1, + "high": 1.2 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 20, + "high": 140 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 20, + "high": 60 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 40 + } + } + ], + "direct_transition": "Record_Urinalysis" + }, + "Record_CMP_2": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2339-0", + "display": "Glucose [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "6299-2", + "display": "Urea nitrogen [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "38483-4", + "display": "Creatinine [Mass/volume] in Blood" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.5, + "high": 3.5 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "49765-1", + "display": "Calcium [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2947-0", + "display": "Sodium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "6298-4", + "display": "Potassium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2069-3", + "display": "Chloride [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "20565-8", + "display": "Carbon dioxide, total [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 4, + "high": 29 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 3.5, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "g/L", + "codes": [ + { + "system": "LOINC", + "code": "10834-0", + "display": "Globulin [Mass/volume] in Serum by calculation" + } + ], + "range": { + "low": 2, + "high": 3.5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.1, + "high": 1.2 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 20, + "high": 140 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 20, + "high": 60 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 40 + } + } + ], + "direct_transition": "Record_Urinalysis_3" + }, + "Hearing Test": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "398171003", + "display": "Hearing examination (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "NSCLC Chemotheraphy I" + }, + "Hearing_Test": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "398171003", + "display": "Hearing examination (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "SCLC Chemotheraphy I" + }, + "Chest CT": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "16335031000119103", + "display": "High resolution computed tomography of chest without contrast (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "51185008", + "display": "Thoracic structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "CT", + "display": "Computed Tomography" + }, + "min_number_instances": 300, + "max_number_instances": 500, + "instances": [ + { + "title": "CT Image Storage", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.2", + "display": "CT Image Storage" + } + } + ] + } + ], + "direct_transition": "Delay" + }, + "Chest_CT": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "16335031000119103", + "display": "High resolution computed tomography of chest without contrast (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "51185008", + "display": "Thoracic structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "CT", + "display": "Computed Tomography" + }, + "min_number_instances": 300, + "max_number_instances": 500, + "instances": [ + { + "title": "CT Image Storage", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.2", + "display": "CT Image Storage" + } + } + ] + } + ], + "direct_transition": "Delay_2" + }, + "Record_Urinalysis_3": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24357-6", + "display": "Urinalysis macro (dipstick) panel - Urine" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5767-9", + "display": "Appearance of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "7766007", + "display": "Cloudy urine (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "34533-0", + "display": "Odor of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167248002", + "display": "Urine smell ammoniacal (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "32167-9", + "display": "Clarity of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "300828005", + "display": "Translucent (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5778-6", + "display": "Color of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "371254008", + "display": "Brown color (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5792-7", + "display": "Glucose [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.5, + "high": 2.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "25428-4", + "display": "Glucose [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167265006", + "display": "Urine glucose test = ++ (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "20505-4", + "display": "Bilirubin.total [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.2, + "high": 1.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5770-3", + "display": "Bilirubin.total [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "275778006", + "display": "Finding of bilirubin in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5797-6", + "display": "Ketones [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 0, + "high": 20 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "2514-8", + "display": "Ketones [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167291007", + "display": "Urine ketone test = +++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5811-5", + "display": "Specific gravity of Urine by Test strip" + } + ], + "range": { + "low": 1.001, + "high": 1.039 + } + }, + { + "category": "laboratory", + "unit": "pH", + "codes": [ + { + "system": "LOINC", + "code": "5803-2", + "display": "pH of Urine by Test strip" + } + ], + "range": { + "low": 5, + "high": 7 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5804-0", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 250, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "20454-5", + "display": "Protein [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167277001", + "display": "Urine protein test = +++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5802-4", + "display": "Nitrite [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "314138001", + "display": "Nitrite not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5794-3", + "display": "Hemoglobin [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167297006", + "display": "Blood not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5799-2", + "display": "Leukocyte esterase [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "394717006", + "display": "Urine leukocytes not detected (finding)" + } + } + ], + "direct_transition": "Record_CBC_Panel" + }, + "Record_Urinalysis": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24357-6", + "display": "Urinalysis macro (dipstick) panel - Urine" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5767-9", + "display": "Appearance of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "7766007", + "display": "Cloudy urine (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "34533-0", + "display": "Odor of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167248002", + "display": "Urine smell ammoniacal (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "32167-9", + "display": "Clarity of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "300828005", + "display": "Translucent (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5778-6", + "display": "Color of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "371254008", + "display": "Brown color (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5792-7", + "display": "Glucose [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.5, + "high": 2.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "25428-4", + "display": "Glucose [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167265006", + "display": "Urine glucose test = ++ (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "20505-4", + "display": "Bilirubin.total [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.2, + "high": 1.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5770-3", + "display": "Bilirubin.total [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "275778006", + "display": "Finding of bilirubin in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5797-6", + "display": "Ketones [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 0, + "high": 20 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "2514-8", + "display": "Ketones [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167291007", + "display": "Urine ketone test = +++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5811-5", + "display": "Specific gravity of Urine by Test strip" + } + ], + "range": { + "low": 1.001, + "high": 1.039 + } + }, + { + "category": "laboratory", + "unit": "pH", + "codes": [ + { + "system": "LOINC", + "code": "5803-2", + "display": "pH of Urine by Test strip" + } + ], + "range": { + "low": 5, + "high": 7 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5804-0", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 250, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "20454-5", + "display": "Protein [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167277001", + "display": "Urine protein test = +++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5802-4", + "display": "Nitrite [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "314138001", + "display": "Nitrite not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5794-3", + "display": "Hemoglobin [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167297006", + "display": "Blood not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5799-2", + "display": "Leukocyte esterase [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "394717006", + "display": "Urine leukocytes not detected (finding)" + } + } + ], + "direct_transition": "Record_CBC_Panel_2" + }, + "Record_CBC_Panel": { + "type": "DiagnosticReport", + "number_of_observations": 4, + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*3/uL", + "range": { + "low": 0.5, + "high": 5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*6/uL", + "range": { + "low": 3.9, + "high": 5.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "unit": "g/dL", + "range": { + "low": 12, + "high": 17.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "4544-3", + "display": "Hematocrit [Volume Fraction] of Blood by Automated count" + } + ], + "unit": "%", + "range": { + "low": 35, + "high": 50 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 80, + "high": 95 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 27, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "21000-5", + "display": "Erythrocyte distribution width [Entitic volume] by Automated count" + } + ], + "range": { + "low": 39, + "high": 46 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32207-3", + "display": "Platelet distribution width [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 520 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32623-1", + "display": "Platelet mean volume [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 9.4, + "high": 12.3 + } + } + ], + "direct_transition": "Set SCLC LOS" + }, + "Record_CBC_Panel_2": { + "type": "DiagnosticReport", + "number_of_observations": 4, + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*3/uL", + "range": { + "low": 0.5, + "high": 5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*6/uL", + "range": { + "low": 3.9, + "high": 5.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "unit": "g/dL", + "range": { + "low": 12, + "high": 17.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "4544-3", + "display": "Hematocrit [Volume Fraction] of Blood by Automated count" + } + ], + "unit": "%", + "range": { + "low": 35, + "high": 50 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 80, + "high": 95 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 27, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "21000-5", + "display": "Erythrocyte distribution width [Entitic volume] by Automated count" + } + ], + "range": { + "low": 39, + "high": 46 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32207-3", + "display": "Platelet distribution width [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 520 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32623-1", + "display": "Platelet mean volume [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 9.4, + "high": 12.3 + } + } + ], + "direct_transition": "Set_NSCLC_LOS" + }, + "Pain_Vital": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported" + } + ], + "range": { + "decimals": 0, + "low": 4, + "high": 8 + }, + "direct_transition": "Chest X-Ray" + }, + "Pain_Vital_2": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported" + } + ], + "range": { + "decimals": 0, + "low": 4, + "high": 10 + }, + "distributed_transition": [ + { + "transition": "Chest CT", + "distribution": 0.2 + }, + { + "transition": "Delay", + "distribution": 0.8 + } + ] + }, + "Pain_Vital_3": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported" + } + ], + "range": { + "decimals": 0, + "low": 4, + "high": 10 + }, + "distributed_transition": [ + { + "transition": "Chest_CT", + "distribution": 0.2 + }, + { + "transition": "Delay_2", + "distribution": 0.8 + } + ] + }, + "Anemia_Submodule": { + "type": "CallSubmodule", + "submodule": "anemia/anemia_sub", + "direct_transition": "Check For Hospice" + }, + "Check_Anemia_Exist": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Anemia_Submodule", + "condition": { + "condition_type": "Attribute", + "attribute": "anemia", + "operator": "is nil" + } + }, + { + "transition": "Check For Hospice" + } + ] + }, + "Check For Hospice": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Will Use Hospice", + "distribution": 0.3 + }, + { + "transition": "Schedule Follow Up III", + "distribution": 0.7 + } + ] + }, + "Will Use Hospice": { + "type": "SetAttribute", + "attribute": "hospice", + "direct_transition": "Hospice Reason", + "value": true + }, + "Hospice Reason": { + "type": "SetAttribute", + "attribute": "hospice_reason", + "direct_transition": "Schedule Follow Up III", + "value_attribute": "Lung Cancer" + }, + "Begin SCLC Day": { + "type": "Counter", + "attribute": "lung_cancer_los", + "action": "decrement", + "direct_transition": "Hearing_Test" + }, + "Set SCLC LOS": { + "type": "SetAttribute", + "attribute": "lung_cancer_los", + "direct_transition": "Minimum of 3 days", + "distribution": { + "kind": "EXPONENTIAL", + "round": true, + "parameters": { + "mean": 3 + } + } + }, + "Delay": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "unit": "days", + "conditional_transition": [ + { + "transition": "Begin SCLC Day", + "condition": { + "condition_type": "Attribute", + "attribute": "lung_cancer_los", + "operator": ">", + "value": 0 + } + }, + { + "transition": "End_SCLC_Treatment_Encounter" + } + ] + }, + "Set_NSCLC_LOS": { + "type": "SetAttribute", + "attribute": "lung_cancer_los", + "distribution": { + "kind": "EXPONENTIAL", + "round": true, + "parameters": { + "mean": 3 + } + }, + "direct_transition": "Minimum_of_3_days" + }, + "Delay_2": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "unit": "days", + "conditional_transition": [ + { + "transition": "Begin_NSCLC_Day", + "condition": { + "condition_type": "Attribute", + "attribute": "lung_cancer_los", + "operator": ">", + "value": 0 + } + }, + { + "transition": "End_NSCLC_Treatment_Encounter" + } + ] + }, + "Begin_NSCLC_Day": { + "type": "Counter", + "attribute": "lung_cancer_los", + "action": "decrement", + "direct_transition": "Hearing Test" + }, + "Minimum of 3 days": { + "type": "Counter", + "attribute": "lung_cancer_los", + "action": "increment", + "direct_transition": "Begin SCLC Day", + "amount": 2 + }, + "Minimum_of_3_days": { + "type": "Counter", + "attribute": "lung_cancer_los", + "action": "increment", + "amount": 2, + "direct_transition": "Begin_NSCLC_Day" + }, + "Stem Cells": { + "type": "SetAttribute", + "attribute": "bone_marrow", + "direct_transition": "End_Diagnosis_Encounter_IV", + "value": true + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/lung_cancer/lung_cancer_probabilities.json b/src/main/resources/modules/lung_cancer/lung_cancer_probabilities.json new file mode 100644 index 0000000..d026948 --- /dev/null +++ b/src/main/resources/modules/lung_cancer/lung_cancer_probabilities.json @@ -0,0 +1,136 @@ +{ + "name": "Lung Cancer Probabilities", + "remarks": [ + "Overall, the chance that a man will develop lung cancer in his lifetime is about 1 in 14;", + "for a woman, the risk is about 1 in 17.", + "http://www.cancer.org/cancer/lungcancer-non-smallcell/detailedguide/non-small-cell-lung-", + "cancer-key-statistics", + "", + "Men who smoke are 23 times more likely to develop lung cancer.", + "Women are 13 times more likely, compared to never smokers.", + "http://www.lung.org/lung-health-and-diseases/lung-disease-lookup/lung-cancer/learn-about-", + "lung-cancer/lung-cancer-fact-sheet.html", + "", + "In a 2006 European study, the risk of developing lung cancer was:", + "0.2 percent for men who never smoked (0.4% for women);", + "5.5 percent of male former smokers (2.6% in women);", + "15.9 percent of current male smokers (9.5% for women);", + "24.4 percent for male \"heavy smokers\" defined as smoking more than 5 cigarettes per day", + "(18.5 percent for women) ", + "https://www.verywell.com/what-percentage-of-smokers-get-lung-cancer-2248868" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Female", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "Male", + "condition": { + "condition_type": "Gender", + "gender": "M" + } + } + ], + "remarks": [ + "TODO - make this calculation more elaborate, based on duration smoking, timestep-dependent" + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Male": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Male_Smoker", + "condition": { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "==", + "value": true + } + }, + { + "transition": "Male_Quit", + "condition": { + "condition_type": "Attribute", + "attribute": "quit smoking age", + "operator": "is not nil" + } + }, + { + "transition": "Male_Nonsmoker" + } + ] + }, + "Female": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Female_Smoker", + "condition": { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "==", + "value": true + } + }, + { + "transition": "Female_Quit", + "condition": { + "condition_type": "Attribute", + "attribute": "quit smoking age", + "operator": "is not nil" + } + }, + { + "transition": "Female_Nonsmoker" + } + ] + }, + "Male_Smoker": { + "type": "SetAttribute", + "attribute": "probability_of_lung_cancer", + "direct_transition": "Terminal", + "value": 0.244 + }, + "Male_Quit": { + "type": "SetAttribute", + "attribute": "probability_of_lung_cancer", + "direct_transition": "Terminal", + "value": 0.055 + }, + "Male_Nonsmoker": { + "type": "SetAttribute", + "attribute": "probability_of_lung_cancer", + "direct_transition": "Terminal", + "value": 0.002 + }, + "Female_Smoker": { + "type": "SetAttribute", + "attribute": "probability_of_lung_cancer", + "direct_transition": "Terminal", + "value": 0.185 + }, + "Female_Quit": { + "type": "SetAttribute", + "attribute": "probability_of_lung_cancer", + "direct_transition": "Terminal", + "value": 0.026 + }, + "Female_Nonsmoker": { + "type": "SetAttribute", + "attribute": "probability_of_lung_cancer", + "direct_transition": "Terminal", + "value": 0.004 + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/lupus.json b/src/main/resources/modules/lupus.json new file mode 100644 index 0000000..6b9735b --- /dev/null +++ b/src/main/resources/modules/lupus.json @@ -0,0 +1,350 @@ +{ + "name": "Lupus", + "remarks": [ + "Lupus is a somewhat uncommon autoimmune disease that causes widespread inflammation. ", + "It is also categorized as a type of arthritis. Prior to the discovery of corticosteroids ", + "in the mid 1900's lupus was treated with quinine and salicylates.", + "Information on treatment, prevalence, and incidence of specific arthritis types from the CDC: ", + "http://www.cdc.gov/arthritis/basics/types.html", + "Overall prevalence of arthritis: ", + "http://www.cdc.gov/arthritis/data_statistics/national-statistics.html" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + " | Arthritis Type | Prevalence | Ratio F:M | ", + " ------------------------------------------- ", + " | Lupus | 0.00054 | 6:1 | ", + " ------------------------------------------- " + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "distribution": 0.000077143, + "transition": "Delay_Until_Lupus" + }, + { + "distribution": 0.999922857, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "distribution": 0.0004629, + "transition": "Delay_Until_Lupus" + }, + { + "distribution": 0.9995371, + "transition": "Terminal" + } + ] + } + ] + }, + "Delay_Until_Lupus": { + "type": "Delay", + "range": { + "low": 25, + "high": 80, + "unit": "years" + }, + "direct_transition": "Lupus" + }, + "Lupus": { + "type": "ConditionOnset", + "remarks": [ + "======================================================================", + " LUPUS ", + "======================================================================", + "Source: http://www.cdc.gov/arthritis/basics/lupus.htm" + ], + "target_encounter": "Lupus_Diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "200936003", + "display": "Lupus erythematosus (disorder)" + } + ], + "direct_transition": "Lupus_Diagnosis" + }, + "Lupus_Diagnosis": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Lupus", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Lupus_Symptom1" + }, + "Lupus_Symptom1": { + "type": "Symptom", + "symptom": "Joint Pain", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Lupus_Symptom2" + }, + "Lupus_Symptom2": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Lupus_Symptom3" + }, + "Lupus_Symptom3": { + "type": "Symptom", + "symptom": "Rash", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Lupus_Symptom4" + }, + "Lupus_Symptom4": { + "type": "Symptom", + "symptom": "Fever", + "range": { + "low": 0, + "high": 20 + }, + "direct_transition": "Lupus_CarePlan" + }, + "Lupus_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "lupus_careplan", + "reason": "Lupus", + "codes": [ + { + "system": "SNOMED-CT", + "code": "408869004", + "display": "Musculoskeletal care (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "440381005", + "display": "Behavior to prevent sun exposure (observable entity)" + }, + { + "system": "SNOMED-CT", + "code": "226234005", + "display": "Healthy diet (finding)" + } + ], + "direct_transition": "Lupus_Nonopioid_Pain_Medication" + }, + "Lupus_Nonopioid_Pain_Medication": { + "type": "MedicationOrder", + "reason": "Lupus", + "codes": [ + { + "system": "RxNorm", + "code": "849574", + "display": "Naproxen sodium 220 MG Oral Tablet" + } + ], + "direct_transition": "Corticosteroid" + }, + "Corticosteroid": { + "type": "MedicationOrder", + "assign_to_attribute": "lupus_corticosteroid", + "reason": "Lupus", + "remarks": [ + "When introduced in higher levels than those produced by the body, corticosteroids ", + "inhibit inflammation. However, doctors prefer to use these for as short a time period ", + "as possible to avoid dangerous side effects." + ], + "codes": [ + { + "system": "RxNorm", + "code": "312615", + "display": "predniSONE 20 MG Oral Tablet" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "distributed_transition": [ + { + "transition": "Check_Anemia_Exist", + "distribution": 0.5 + }, + { + "transition": "Corticosteroid_Treatment", + "distribution": 0.5 + } + ], + "remarks": [ + "The most common blood disorder is anemia, affecting about half of all people with active lupus - https://www.lupus.org/resources/what-you-need-to-know-about-anemia ", + "" + ] + }, + "Corticosteroid_Treatment": { + "type": "Delay", + "range": { + "low": 2, + "high": 4, + "unit": "weeks" + }, + "direct_transition": "End_Corticosteroid" + }, + "End_Corticosteroid": { + "type": "MedicationEnd", + "referenced_by_attribute": "lupus_corticosteroid", + "conditional_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Immune_Suppressant" + }, + "transition": "End_Immune_Suppressant" + }, + { + "transition": "Wait_For_Lupus_Flareup" + } + ] + }, + "Wait_For_Lupus_Flareup": { + "type": "Delay", + "remarks": [ + "About 60% of patients have a flare-up each year. 84% every 2 years." + ], + "range": { + "low": 1, + "high": 3, + "unit": "years" + }, + "distributed_transition": [ + { + "distribution": 0.84, + "transition": "Lupus_Flareup" + }, + { + "distribution": 0.16, + "transition": "Wait_For_Lupus_Flareup" + } + ] + }, + "Lupus_Flareup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Lupus", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Immune_Suppressant" + }, + "Immune_Suppressant": { + "type": "MedicationOrder", + "reason": "Lupus", + "remarks": [ + "More aggressive immune suppressants are used for subsequent flares." + ], + "codes": [ + { + "system": "RxNorm", + "code": "241834", + "display": "cycloSPORINE, modified 100 MG Oral Capsule" + } + ], + "direct_transition": "Flareup_Corticosteroid" + }, + "Flareup_Corticosteroid": { + "type": "MedicationOrder", + "assign_to_attribute": "lupus_corticosteroid", + "reason": "Lupus", + "remarks": [ + "When introduced in higher levels than those produced by the body, corticosteroids ", + "inhibit inflammation. However, doctors prefer to use these for as short a time period ", + "as possible to avoid dangerous side effects." + ], + "codes": [ + { + "system": "RxNorm", + "code": "312615", + "display": "predniSONE 20 MG Oral Tablet" + } + ], + "direct_transition": "End_Flareup_Encounter" + }, + "End_Flareup_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Corticosteroid_Treatment" + }, + "End_Immune_Suppressant": { + "type": "MedicationEnd", + "medication_order": "Immune_Suppressant", + "direct_transition": "Wait_For_Lupus_Flareup" + }, + "Terminal": { + "type": "Terminal" + }, + "Anemia_Submodule": { + "type": "CallSubmodule", + "submodule": "anemia/anemia_sub", + "distributed_transition": [ + { + "transition": "Stem Cell Treatment", + "distribution": 0.01 + }, + { + "transition": "Corticosteroid_Treatment", + "distribution": 0.99 + } + ] + }, + "Check_Anemia_Exist": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Anemia_Submodule", + "condition": { + "condition_type": "Attribute", + "attribute": "anemia", + "operator": "is nil" + } + }, + { + "transition": "Corticosteroid_Treatment" + } + ] + }, + "Stem Cell Treatment": { + "type": "SetAttribute", + "attribute": "bone_marrow", + "direct_transition": "Corticosteroid_Treatment", + "value": true + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/mTBI.json b/src/main/resources/modules/mTBI.json new file mode 100644 index 0000000..2377e41 --- /dev/null +++ b/src/main/resources/modules/mTBI.json @@ -0,0 +1,74 @@ +{ + "name": "Veteran mild TBI ", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "veteran delay" + }, + "Terminal": { + "type": "Terminal" + }, + "veteran delay": { + "type": "Delay", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "Loss of Consciousness", + "distribution": 0.0094 + }, + { + "transition": "Terminal", + "distribution": 0.9906 + } + ] + }, + { + "distributions": [ + { + "transition": "Terminal", + "distribution": 1 + } + ] + } + ], + "range": { + "low": 18, + "high": 21, + "unit": "years" + } + }, + "Loss of Consciousness": { + "type": "ConditionOnset", + "assign_to_attribute": "mTBI", + "target_encounter": "Wellness Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "127295002", + "display": "Traumatic brain injury (disorder)" + } + ], + "direct_transition": "Wellness Encounter" + }, + "Wellness Encounter": { + "type": "Encounter", + "reason": "mTBI", + "direct_transition": "end encounter", + "wellness": true + }, + "end encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/med_rec.json b/src/main/resources/modules/med_rec.json new file mode 100644 index 0000000..670c37b --- /dev/null +++ b/src/main/resources/modules/med_rec.json @@ -0,0 +1,64 @@ +{ + "name": "Medication Reconciliation", + "remarks": [ + "This module will generate a documentation of current medications procedure at 45% of", + "wellness encounters. Through the Meaningful Use program, ONC is striving for", + "medication reconciliation at 50% of encounters. This assumes that we are not", + "at the goal level yet.", + "Source: https://www.healthit.gov/providers-professionals/achieve-meaningful-use/core-measures-2/medication-reconciliation" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Medication_Review_Due" + }, + "Wellness_Encounter": { + "type": "Encounter", + "wellness": true, + "distributed_transition": [ + { + "distribution": 0.45, + "transition": "Med_Rec" + }, + { + "distribution": 0.55, + "transition": "End_Wellness_Encounter" + } + ], + "reason": "Medication_Review_Due" + }, + "Med_Rec": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "430193006", + "display": "Medication reconciliation (procedure)" + } + ], + "direct_transition": "End_Medication_Review_Due" + }, + "End_Wellness_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Initial" + }, + "Medication_Review_Due": { + "type": "ConditionOnset", + "target_encounter": "Wellness_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "314529007", + "display": "Medication review due (situation)" + } + ], + "direct_transition": "Wellness_Encounter" + }, + "End_Medication_Review_Due": { + "type": "ConditionEnd", + "direct_transition": "End_Wellness_Encounter", + "condition_onset": "Medication_Review_Due" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/medications/ace_arb.json b/src/main/resources/modules/medications/ace_arb.json new file mode 100644 index 0000000..2a2a0b2 --- /dev/null +++ b/src/main/resources/modules/medications/ace_arb.json @@ -0,0 +1,1965 @@ +{ + "name": "Ace Arb", + "remarks": [ + "======================================================================", + " SUBMODULE ACE ARB", + "======================================================================", + "", + "This submodule prescribes a medication based on population data.", + "", + "IT IS UP TO THE CALLING MODULE TO END THIS MEDICATION BY ATTRIBUTE.", + "All medications prescribed in this module are assigned to the attribute", + "'ace_arb'.", + "", + "Reference links:", + " RxClass: https://mor.nlm.nih.gov/RxClass/", + " RxNorm: https://www.nlm.nih.gov/research/umls/rxnorm/index.html", + " RxNav: https://mor.nlm.nih.gov/RxNav/", + " MEPS: https://meps.ahrq.gov/mepsweb/data_stats/MEPS_topics.jsp?topicid=46Z-1", + " FDA: https://www.fda.gov/drugs/drug-approvals-and-databases/national-drug-code-directory", + "", + "Made with () by the CodeRx Medication Diversification Tool (MDT)", + "", + "MDT settings for this submodule:", + "{", + " \"module\": {", + " \"name\": null,", + " \"assign_to_attribute\": null,", + " \"reason\": null,", + " \"as_needed\": false,", + " \"chronic\": false,", + " \"refills\": 0", + " },", + " \"rxclass\": {", + " \"include\": [", + " {", + " \"class_id\": \"C09A\",", + " \"relationship\": \"ATC\"", + " },", + " {", + " \"class_id\": \"C09C\",", + " \"relationship\": \"ATC\"", + " }", + " ],", + " \"exclude\": null", + " },", + " \"rxcui\": {", + " \"include\": null,", + " \"exclude\": null", + " },", + " \"ingredient_tty_filter\": null,", + " \"dose_form_filter\": null,", + " \"meps\": {", + " \"age_ranges\": null,", + " \"demographic_distribution_flags\": {", + " \"age\": true,", + " \"gender\": true,", + " \"state\": true", + " }", + " },", + " \"state_prefix\": \"Prescribe_\",", + " \"ingredient_distribution_suffix\": \"_ingredient_distribution\",", + " \"product_distribution_suffix\": \"_product_distribution\",", + " \"default_age_ranges\": [", + " \"0-3\",", + " \"4-7\",", + " \"8-11\",", + " \"12-17\",", + " \"18-25\",", + " \"26-35\",", + " \"36-45\",", + " \"46-65\",", + " \"65-103\"", + " ]", + "}" + ], + "gmf_version": 2, + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "ace_arb", + "operator": "is nil" + }, + "transition": "Prescribe_Ingredient" + }, + { + "transition": "Terminal" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Prescribe_Ingredient": { + "remarks": [ + "======================================================================", + " MEDICATION INGREDIENT TABLE TRANSITION ", + "======================================================================", + "Ingredients in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 1.7% ] Amlodipine_Benazepril", + "2. [ 2.6% ] Benazepril", + "3. [ 0.5% ] Benazepril_Hydrochlorothiazide", + "4. [ 2.3% ] Enalapril", + "5. [ 7.0% ] Hydrochlorothiazide_Lisinopril", + "6. [ 6.4% ] Hydrochlorothiazide_Losartan", + "7. [ 1.6% ] Hydrochlorothiazide_Valsartan", + "8. [ 2.0% ] Irbesartan", + "9. [ 43.3% ] Lisinopril", + "10. [ 24.5% ] Losartan", + "11. [ 0.6% ] Quinapril", + "12. [ 2.0% ] Ramipril", + "13. [ 0.6% ] Sacubitril_Valsartan", + "14. [ 0.7% ] Telmisartan", + "15. [ 4.1% ] Valsartan" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Amlodipine_Benazepril", + "default_probability": 1, + "lookup_table_name": "ace_arb_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Benazepril", + "default_probability": 0, + "lookup_table_name": "ace_arb_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Benazepril_Hydrochlorothiazide", + "default_probability": 0, + "lookup_table_name": "ace_arb_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Enalapril", + "default_probability": 0, + "lookup_table_name": "ace_arb_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Hydrochlorothiazide_Lisinopril", + "default_probability": 0, + "lookup_table_name": "ace_arb_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Hydrochlorothiazide_Losartan", + "default_probability": 0, + "lookup_table_name": "ace_arb_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Hydrochlorothiazide_Valsartan", + "default_probability": 0, + "lookup_table_name": "ace_arb_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Irbesartan", + "default_probability": 0, + "lookup_table_name": "ace_arb_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Lisinopril", + "default_probability": 0, + "lookup_table_name": "ace_arb_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Losartan", + "default_probability": 0, + "lookup_table_name": "ace_arb_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Quinapril", + "default_probability": 0, + "lookup_table_name": "ace_arb_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Ramipril", + "default_probability": 0, + "lookup_table_name": "ace_arb_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Sacubitril_Valsartan", + "default_probability": 0, + "lookup_table_name": "ace_arb_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Telmisartan", + "default_probability": 0, + "lookup_table_name": "ace_arb_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Valsartan", + "default_probability": 0, + "lookup_table_name": "ace_arb_ingredient_distribution.csv" + } + ] + }, + "Prescribe_Amlodipine_Benazepril": { + "remarks": [ + "======================================================================", + " AMLODIPINE_BENAZEPRIL MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 23.1% ] Amlodipine_10_Mg_Benazepril_Hydrochloride_20_Mg_Oral_Capsule", + "2. [ 19.3% ] Amlodipine_10_Mg_Benazepril_Hydrochloride_40_Mg_Oral_Capsule", + "3. [ 6.0% ] Amlodipine_2_5_Mg_Benazepril_Hydrochloride_10_Mg_Oral_Capsule", + "4. [ 18.3% ] Amlodipine_5_Mg_Benazepril_Hydrochloride_10_Mg_Oral_Capsule", + "5. [ 28.8% ] Amlodipine_5_Mg_Benazepril_Hydrochloride_20_Mg_Oral_Capsule", + "6. [ 4.4% ] Amlodipine_5_Mg_Benazepril_Hydrochloride_40_Mg_Oral_Capsule" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Amlodipine_10_Mg_Benazepril_Hydrochloride_20_Mg_Oral_Capsule", + "default_probability": 1, + "lookup_table_name": "ace_arb_amlodipine_benazepril_product_distribution.csv" + }, + { + "transition": "Prescribe_Amlodipine_5_Mg_Benazepril_Hydrochloride_10_Mg_Oral_Capsule", + "default_probability": 0, + "lookup_table_name": "ace_arb_amlodipine_benazepril_product_distribution.csv" + }, + { + "transition": "Prescribe_Amlodipine_5_Mg_Benazepril_Hydrochloride_20_Mg_Oral_Capsule", + "default_probability": 0, + "lookup_table_name": "ace_arb_amlodipine_benazepril_product_distribution.csv" + }, + { + "transition": "Prescribe_Amlodipine_10_Mg_Benazepril_Hydrochloride_40_Mg_Oral_Capsule", + "default_probability": 0, + "lookup_table_name": "ace_arb_amlodipine_benazepril_product_distribution.csv" + }, + { + "transition": "Prescribe_Amlodipine_5_Mg_Benazepril_Hydrochloride_40_Mg_Oral_Capsule", + "default_probability": 0, + "lookup_table_name": "ace_arb_amlodipine_benazepril_product_distribution.csv" + }, + { + "transition": "Prescribe_Amlodipine_2_5_Mg_Benazepril_Hydrochloride_10_Mg_Oral_Capsule", + "default_probability": 0, + "lookup_table_name": "ace_arb_amlodipine_benazepril_product_distribution.csv" + } + ] + }, + "Prescribe_Benazepril": { + "remarks": [ + "======================================================================", + " BENAZEPRIL MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 18.8% ] Benazepril_Hydrochloride_10_Mg_Oral_Tablet", + "2. [ 42.0% ] Benazepril_Hydrochloride_20_Mg_Oral_Tablet", + "3. [ 29.4% ] Benazepril_Hydrochloride_40_Mg_Oral_Tablet", + "4. [ 9.7% ] Benazepril_Hydrochloride_5_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Benazepril_Hydrochloride_10_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "ace_arb_benazepril_product_distribution.csv" + }, + { + "transition": "Prescribe_Benazepril_Hydrochloride_20_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_benazepril_product_distribution.csv" + }, + { + "transition": "Prescribe_Benazepril_Hydrochloride_40_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_benazepril_product_distribution.csv" + }, + { + "transition": "Prescribe_Benazepril_Hydrochloride_5_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_benazepril_product_distribution.csv" + } + ] + }, + "Prescribe_Benazepril_Hydrochlorothiazide": { + "remarks": [ + "======================================================================", + " BENAZEPRIL_HYDROCHLOROTHIAZIDE MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 23.0% ] Benazepril_Hydrochloride_10_Mg_Hydrochlorothiazide_12_5_Mg_Oral_Tablet", + "2. [ 34.5% ] Benazepril_Hydrochloride_20_Mg_Hydrochlorothiazide_12_5_Mg_Oral_Tablet", + "3. [ 42.6% ] Benazepril_Hydrochloride_20_Mg_Hydrochlorothiazide_25_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Benazepril_Hydrochloride_10_Mg_Hydrochlorothiazide_12_5_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "ace_arb_benazepril_hydrochlorothiazide_product_distribution.csv" + }, + { + "transition": "Prescribe_Benazepril_Hydrochloride_20_Mg_Hydrochlorothiazide_12_5_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_benazepril_hydrochlorothiazide_product_distribution.csv" + }, + { + "transition": "Prescribe_Benazepril_Hydrochloride_20_Mg_Hydrochlorothiazide_25_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_benazepril_hydrochlorothiazide_product_distribution.csv" + } + ] + }, + "Prescribe_Enalapril": { + "remarks": [ + "======================================================================", + " ENALAPRIL MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 37.4% ] Enalapril_Maleate_10_Mg_Oral_Tablet", + "2. [ 0.3% ] Enalapril_Maleate_1_Mg_Ml_Oral_Solution_Epaned", + "3. [ 37.4% ] Enalapril_Maleate_20_Mg_Oral_Tablet", + "4. [ 12.3% ] Enalapril_Maleate_2_5_Mg_Oral_Tablet", + "5. [ 12.7% ] Enalapril_Maleate_5_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Enalapril_Maleate_10_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "ace_arb_enalapril_product_distribution.csv" + }, + { + "transition": "Prescribe_Enalapril_Maleate_20_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_enalapril_product_distribution.csv" + }, + { + "transition": "Prescribe_Enalapril_Maleate_5_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_enalapril_product_distribution.csv" + }, + { + "transition": "Prescribe_Enalapril_Maleate_2_5_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_enalapril_product_distribution.csv" + }, + { + "transition": "Prescribe_Enalapril_Maleate_1_Mg_Ml_Oral_Solution_Epaned", + "default_probability": 0, + "lookup_table_name": "ace_arb_enalapril_product_distribution.csv" + } + ] + }, + "Prescribe_Hydrochlorothiazide_Lisinopril": { + "remarks": [ + "======================================================================", + " HYDROCHLOROTHIAZIDE_LISINOPRIL MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 31.2% ] Hydrochlorothiazide_12_5_Mg_Lisinopril_10_Mg_Oral_Tablet", + "2. [ 35.9% ] Hydrochlorothiazide_12_5_Mg_Lisinopril_20_Mg_Oral_Tablet", + "3. [ 32.9% ] Hydrochlorothiazide_25_Mg_Lisinopril_20_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Hydrochlorothiazide_12_5_Mg_Lisinopril_10_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "ace_arb_hydrochlorothiazide_lisinopril_product_distribution.csv" + }, + { + "transition": "Prescribe_Hydrochlorothiazide_12_5_Mg_Lisinopril_20_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_hydrochlorothiazide_lisinopril_product_distribution.csv" + }, + { + "transition": "Prescribe_Hydrochlorothiazide_25_Mg_Lisinopril_20_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_hydrochlorothiazide_lisinopril_product_distribution.csv" + } + ] + }, + "Prescribe_Hydrochlorothiazide_Losartan": { + "remarks": [ + "======================================================================", + " HYDROCHLOROTHIAZIDE_LOSARTAN MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 16.5% ] Hydrochlorothiazide_12_5_Mg_Losartan_Potassium_100_Mg_Oral_Tablet", + "2. [ 0.2% ] Hydrochlorothiazide_12_5_Mg_Losartan_Potassium_100_Mg_Oral_Tablet_Hyzaar", + "3. [ 32.7% ] Hydrochlorothiazide_12_5_Mg_Losartan_Potassium_50_Mg_Oral_Tablet", + "4. [ 0.3% ] Hydrochlorothiazide_12_5_Mg_Losartan_Potassium_50_Mg_Oral_Tablet_Hyzaar", + "5. [ 49.5% ] Hydrochlorothiazide_25_Mg_Losartan_Potassium_100_Mg_Oral_Tablet", + "6. [ 0.8% ] Hydrochlorothiazide_25_Mg_Losartan_Potassium_100_Mg_Oral_Tablet_Hyzaar" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Hydrochlorothiazide_12_5_Mg_Losartan_Potassium_100_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "ace_arb_hydrochlorothiazide_losartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Hydrochlorothiazide_12_5_Mg_Losartan_Potassium_100_Mg_Oral_Tablet_Hyzaar", + "default_probability": 0, + "lookup_table_name": "ace_arb_hydrochlorothiazide_losartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Hydrochlorothiazide_25_Mg_Losartan_Potassium_100_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_hydrochlorothiazide_losartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Hydrochlorothiazide_12_5_Mg_Losartan_Potassium_50_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_hydrochlorothiazide_losartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Hydrochlorothiazide_12_5_Mg_Losartan_Potassium_50_Mg_Oral_Tablet_Hyzaar", + "default_probability": 0, + "lookup_table_name": "ace_arb_hydrochlorothiazide_losartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Hydrochlorothiazide_25_Mg_Losartan_Potassium_100_Mg_Oral_Tablet_Hyzaar", + "default_probability": 0, + "lookup_table_name": "ace_arb_hydrochlorothiazide_losartan_product_distribution.csv" + } + ] + }, + "Prescribe_Hydrochlorothiazide_Valsartan": { + "remarks": [ + "======================================================================", + " HYDROCHLOROTHIAZIDE_VALSARTAN MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 29.1% ] Hydrochlorothiazide_12_5_Mg_Valsartan_160_Mg_Oral_Tablet", + "2. [ 4.5% ] Hydrochlorothiazide_12_5_Mg_Valsartan_320_Mg_Oral_Tablet", + "3. [ 15.5% ] Hydrochlorothiazide_12_5_Mg_Valsartan_80_Mg_Oral_Tablet", + "4. [ 23.7% ] Hydrochlorothiazide_25_Mg_Valsartan_160_Mg_Oral_Tablet", + "5. [ 27.2% ] Hydrochlorothiazide_25_Mg_Valsartan_320_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Hydrochlorothiazide_12_5_Mg_Valsartan_160_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "ace_arb_hydrochlorothiazide_valsartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Hydrochlorothiazide_12_5_Mg_Valsartan_80_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_hydrochlorothiazide_valsartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Hydrochlorothiazide_25_Mg_Valsartan_160_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_hydrochlorothiazide_valsartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Hydrochlorothiazide_25_Mg_Valsartan_320_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_hydrochlorothiazide_valsartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Hydrochlorothiazide_12_5_Mg_Valsartan_320_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_hydrochlorothiazide_valsartan_product_distribution.csv" + } + ] + }, + "Prescribe_Irbesartan": { + "remarks": [ + "======================================================================", + " IRBESARTAN MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 42.4% ] Irbesartan_150_Mg_Oral_Tablet", + "2. [ 45.4% ] Irbesartan_300_Mg_Oral_Tablet", + "3. [ 12.1% ] Irbesartan_75_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Irbesartan_150_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "ace_arb_irbesartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Irbesartan_300_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_irbesartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Irbesartan_75_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_irbesartan_product_distribution.csv" + } + ] + }, + "Prescribe_Lisinopril": { + "remarks": [ + "======================================================================", + " LISINOPRIL MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 30.3% ] Lisinopril_10_Mg_Oral_Tablet", + "2. [ 0.1% ] Lisinopril_1_Mg_Ml_Oral_Solution_Qbrelis", + "3. [ 27.3% ] Lisinopril_20_Mg_Oral_Tablet", + "4. [ 7.1% ] Lisinopril_2_5_Mg_Oral_Tablet", + "5. [ 1.5% ] Lisinopril_30_Mg_Oral_Tablet", + "6. [ 18.3% ] Lisinopril_40_Mg_Oral_Tablet", + "7. [ 15.3% ] Lisinopril_5_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Lisinopril_10_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "ace_arb_lisinopril_product_distribution.csv" + }, + { + "transition": "Prescribe_Lisinopril_20_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_lisinopril_product_distribution.csv" + }, + { + "transition": "Prescribe_Lisinopril_30_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_lisinopril_product_distribution.csv" + }, + { + "transition": "Prescribe_Lisinopril_2_5_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_lisinopril_product_distribution.csv" + }, + { + "transition": "Prescribe_Lisinopril_40_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_lisinopril_product_distribution.csv" + }, + { + "transition": "Prescribe_Lisinopril_5_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_lisinopril_product_distribution.csv" + }, + { + "transition": "Prescribe_Lisinopril_1_Mg_Ml_Oral_Solution_Qbrelis", + "default_probability": 0, + "lookup_table_name": "ace_arb_lisinopril_product_distribution.csv" + } + ] + }, + "Prescribe_Losartan": { + "remarks": [ + "======================================================================", + " LOSARTAN MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 41.1% ] Losartan_Potassium_100_Mg_Oral_Tablet", + "2. [ 20.8% ] Losartan_Potassium_25_Mg_Oral_Tablet", + "3. [ 0.0% ] Losartan_Potassium_25_Mg_Oral_Tablet_Cozaar", + "4. [ 38.0% ] Losartan_Potassium_50_Mg_Oral_Tablet", + "5. [ 0.1% ] Losartan_Potassium_50_Mg_Oral_Tablet_Cozaar" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Losartan_Potassium_100_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "ace_arb_losartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Losartan_Potassium_25_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_losartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Losartan_Potassium_50_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_losartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Losartan_Potassium_50_Mg_Oral_Tablet_Cozaar", + "default_probability": 0, + "lookup_table_name": "ace_arb_losartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Losartan_Potassium_25_Mg_Oral_Tablet_Cozaar", + "default_probability": 0, + "lookup_table_name": "ace_arb_losartan_product_distribution.csv" + } + ] + }, + "Prescribe_Quinapril": { + "remarks": [ + "======================================================================", + " QUINAPRIL MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 14.1% ] Quinapril_10_Mg_Oral_Tablet", + "2. [ 18.6% ] Quinapril_20_Mg_Oral_Tablet", + "3. [ 63.3% ] Quinapril_40_Mg_Oral_Tablet", + "4. [ 4.0% ] Quinapril_5_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Quinapril_10_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "ace_arb_quinapril_product_distribution.csv" + }, + { + "transition": "Prescribe_Quinapril_40_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_quinapril_product_distribution.csv" + }, + { + "transition": "Prescribe_Quinapril_20_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_quinapril_product_distribution.csv" + }, + { + "transition": "Prescribe_Quinapril_5_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_quinapril_product_distribution.csv" + } + ] + }, + "Prescribe_Ramipril": { + "remarks": [ + "======================================================================", + " RAMIPRIL MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 47.7% ] Ramipril_10_Mg_Oral_Capsule", + "2. [ 3.8% ] Ramipril_1_25_Mg_Oral_Capsule", + "3. [ 19.3% ] Ramipril_2_5_Mg_Oral_Capsule", + "4. [ 29.2% ] Ramipril_5_Mg_Oral_Capsule" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Ramipril_10_Mg_Oral_Capsule", + "default_probability": 1, + "lookup_table_name": "ace_arb_ramipril_product_distribution.csv" + }, + { + "transition": "Prescribe_Ramipril_2_5_Mg_Oral_Capsule", + "default_probability": 0, + "lookup_table_name": "ace_arb_ramipril_product_distribution.csv" + }, + { + "transition": "Prescribe_Ramipril_5_Mg_Oral_Capsule", + "default_probability": 0, + "lookup_table_name": "ace_arb_ramipril_product_distribution.csv" + }, + { + "transition": "Prescribe_Ramipril_1_25_Mg_Oral_Capsule", + "default_probability": 0, + "lookup_table_name": "ace_arb_ramipril_product_distribution.csv" + } + ] + }, + "Prescribe_Sacubitril_Valsartan": { + "remarks": [ + "======================================================================", + " SACUBITRIL_VALSARTAN MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 50.0% ] Sacubitril_24_Mg_Valsartan_26_Mg_Oral_Tablet_Entresto", + "2. [ 23.3% ] Sacubitril_49_Mg_Valsartan_51_Mg_Oral_Tablet_Entresto", + "3. [ 26.6% ] Sacubitril_97_Mg_Valsartan_103_Mg_Oral_Tablet_Entresto" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Sacubitril_24_Mg_Valsartan_26_Mg_Oral_Tablet_Entresto", + "default_probability": 1, + "lookup_table_name": "ace_arb_sacubitril_valsartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Sacubitril_49_Mg_Valsartan_51_Mg_Oral_Tablet_Entresto", + "default_probability": 0, + "lookup_table_name": "ace_arb_sacubitril_valsartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Sacubitril_97_Mg_Valsartan_103_Mg_Oral_Tablet_Entresto", + "default_probability": 0, + "lookup_table_name": "ace_arb_sacubitril_valsartan_product_distribution.csv" + } + ] + }, + "Prescribe_Telmisartan": { + "remarks": [ + "======================================================================", + " TELMISARTAN MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 3.9% ] Telmisartan_20_Mg_Oral_Tablet", + "2. [ 0.3% ] Telmisartan_20_Mg_Oral_Tablet_Micardis", + "3. [ 26.6% ] Telmisartan_40_Mg_Oral_Tablet", + "4. [ 53.9% ] Telmisartan_80_Mg_Oral_Tablet", + "5. [ 15.3% ] Telmisartan_80_Mg_Oral_Tablet_Micardis" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Telmisartan_20_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "ace_arb_telmisartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Telmisartan_20_Mg_Oral_Tablet_Micardis", + "default_probability": 0, + "lookup_table_name": "ace_arb_telmisartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Telmisartan_40_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_telmisartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Telmisartan_80_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_telmisartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Telmisartan_80_Mg_Oral_Tablet_Micardis", + "default_probability": 0, + "lookup_table_name": "ace_arb_telmisartan_product_distribution.csv" + } + ] + }, + "Prescribe_Valsartan": { + "remarks": [ + "======================================================================", + " VALSARTAN MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 34.7% ] Valsartan_160_Mg_Oral_Tablet", + "2. [ 27.7% ] Valsartan_320_Mg_Oral_Tablet", + "3. [ 1.9% ] Valsartan_320_Mg_Oral_Tablet_Diovan", + "4. [ 3.3% ] Valsartan_40_Mg_Oral_Tablet", + "5. [ 32.4% ] Valsartan_80_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Valsartan_160_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "ace_arb_valsartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Valsartan_320_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_valsartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Valsartan_80_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_valsartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Valsartan_40_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "ace_arb_valsartan_product_distribution.csv" + }, + { + "transition": "Prescribe_Valsartan_320_Mg_Oral_Tablet_Diovan", + "default_probability": 0, + "lookup_table_name": "ace_arb_valsartan_product_distribution.csv" + } + ] + }, + "Prescribe_Amlodipine_10_Mg_Benazepril_Hydrochloride_20_Mg_Oral_Capsule": { + "remarks": [ + "======================================================================", + " BEGIN MEDICATION ORDER STATES ", + "======================================================================" + ], + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "898342", + "display": "amlodipine 10 MG / benazepril hydrochloride 20 MG Oral Capsule" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Amlodipine_10_Mg_Benazepril_Hydrochloride_40_Mg_Oral_Capsule": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "898346", + "display": "amlodipine 10 MG / benazepril hydrochloride 40 MG Oral Capsule" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Amlodipine_2_5_Mg_Benazepril_Hydrochloride_10_Mg_Oral_Capsule": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "898350", + "display": "amlodipine 2.5 MG / benazepril hydrochloride 10 MG Oral Capsule" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Amlodipine_5_Mg_Benazepril_Hydrochloride_10_Mg_Oral_Capsule": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "898353", + "display": "amlodipine 5 MG / benazepril hydrochloride 10 MG Oral Capsule" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Amlodipine_5_Mg_Benazepril_Hydrochloride_20_Mg_Oral_Capsule": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "898356", + "display": "amlodipine 5 MG / benazepril hydrochloride 20 MG Oral Capsule" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Amlodipine_5_Mg_Benazepril_Hydrochloride_40_Mg_Oral_Capsule": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "898359", + "display": "amlodipine 5 MG / benazepril hydrochloride 40 MG Oral Capsule" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Benazepril_Hydrochloride_10_Mg_Hydrochlorothiazide_12_5_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "898362", + "display": "benazepril hydrochloride 10 MG / hydrochlorothiazide 12.5 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Benazepril_Hydrochloride_10_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "898687", + "display": "benazepril hydrochloride 10 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Benazepril_Hydrochloride_20_Mg_Hydrochlorothiazide_12_5_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "898367", + "display": "benazepril hydrochloride 20 MG / hydrochlorothiazide 12.5 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Benazepril_Hydrochloride_20_Mg_Hydrochlorothiazide_25_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "898372", + "display": "benazepril hydrochloride 20 MG / hydrochlorothiazide 25 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Benazepril_Hydrochloride_20_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "898690", + "display": "benazepril hydrochloride 20 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Benazepril_Hydrochloride_40_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "898719", + "display": "benazepril hydrochloride 40 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Benazepril_Hydrochloride_5_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "898723", + "display": "benazepril hydrochloride 5 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Enalapril_Maleate_1_Mg_Ml_Oral_Solution_Epaned": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "1435630", + "display": "enalapril maleate 1 MG/ML Oral Solution [Epaned]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Enalapril_Maleate_10_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "858817", + "display": "enalapril maleate 10 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Enalapril_Maleate_2_5_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "858804", + "display": "enalapril maleate 2.5 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Enalapril_Maleate_20_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "858810", + "display": "enalapril maleate 20 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Enalapril_Maleate_5_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "858813", + "display": "enalapril maleate 5 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Hydrochlorothiazide_12_5_Mg_Lisinopril_10_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "197885", + "display": "hydrochlorothiazide 12.5 MG / lisinopril 10 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Hydrochlorothiazide_12_5_Mg_Lisinopril_20_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "197886", + "display": "hydrochlorothiazide 12.5 MG / lisinopril 20 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Hydrochlorothiazide_12_5_Mg_Losartan_Potassium_100_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "979464", + "display": "hydrochlorothiazide 12.5 MG / losartan potassium 100 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Hydrochlorothiazide_12_5_Mg_Losartan_Potassium_100_Mg_Oral_Tablet_Hyzaar": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "979466", + "display": "hydrochlorothiazide 12.5 MG / losartan potassium 100 MG Oral Tablet [Hyzaar]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Hydrochlorothiazide_12_5_Mg_Losartan_Potassium_50_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "979468", + "display": "hydrochlorothiazide 12.5 MG / losartan potassium 50 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Hydrochlorothiazide_12_5_Mg_Losartan_Potassium_50_Mg_Oral_Tablet_Hyzaar": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "979470", + "display": "hydrochlorothiazide 12.5 MG / losartan potassium 50 MG Oral Tablet [Hyzaar]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Hydrochlorothiazide_12_5_Mg_Valsartan_160_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "200285", + "display": "hydrochlorothiazide 12.5 MG / valsartan 160 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Hydrochlorothiazide_12_5_Mg_Valsartan_320_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "636042", + "display": "hydrochlorothiazide 12.5 MG / valsartan 320 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Hydrochlorothiazide_12_5_Mg_Valsartan_80_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "200284", + "display": "hydrochlorothiazide 12.5 MG / valsartan 80 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Hydrochlorothiazide_25_Mg_Lisinopril_20_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "197887", + "display": "hydrochlorothiazide 25 MG / lisinopril 20 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Hydrochlorothiazide_25_Mg_Losartan_Potassium_100_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "979471", + "display": "hydrochlorothiazide 25 MG / losartan potassium 100 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Hydrochlorothiazide_25_Mg_Losartan_Potassium_100_Mg_Oral_Tablet_Hyzaar": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "979473", + "display": "hydrochlorothiazide 25 MG / losartan potassium 100 MG Oral Tablet [Hyzaar]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Hydrochlorothiazide_25_Mg_Valsartan_160_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "349353", + "display": "hydrochlorothiazide 25 MG / valsartan 160 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Hydrochlorothiazide_25_Mg_Valsartan_320_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "636045", + "display": "hydrochlorothiazide 25 MG / valsartan 320 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Irbesartan_150_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "200095", + "display": "irbesartan 150 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Irbesartan_300_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "200096", + "display": "irbesartan 300 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Irbesartan_75_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "200094", + "display": "irbesartan 75 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Lisinopril_1_Mg_Ml_Oral_Solution_Qbrelis": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "1806890", + "display": "lisinopril 1 MG/ML Oral Solution [Qbrelis]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Lisinopril_10_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "314076", + "display": "lisinopril 10 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Lisinopril_2_5_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "311353", + "display": "lisinopril 2.5 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Lisinopril_20_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "314077", + "display": "lisinopril 20 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Lisinopril_30_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "205326", + "display": "lisinopril 30 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Lisinopril_40_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "197884", + "display": "lisinopril 40 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Lisinopril_5_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "311354", + "display": "lisinopril 5 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Losartan_Potassium_100_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "979480", + "display": "losartan potassium 100 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Losartan_Potassium_25_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "979485", + "display": "losartan potassium 25 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Losartan_Potassium_25_Mg_Oral_Tablet_Cozaar": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "979487", + "display": "losartan potassium 25 MG Oral Tablet [Cozaar]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Losartan_Potassium_50_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "979492", + "display": "losartan potassium 50 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Losartan_Potassium_50_Mg_Oral_Tablet_Cozaar": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "979494", + "display": "losartan potassium 50 MG Oral Tablet [Cozaar]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Quinapril_10_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "312748", + "display": "quinapril 10 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Quinapril_20_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "312749", + "display": "quinapril 20 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Quinapril_40_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "314203", + "display": "quinapril 40 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Quinapril_5_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "312750", + "display": "quinapril 5 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Ramipril_1_25_Mg_Oral_Capsule": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "845488", + "display": "ramipril 1.25 MG Oral Capsule" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Ramipril_10_Mg_Oral_Capsule": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "261962", + "display": "ramipril 10 MG Oral Capsule" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Ramipril_2_5_Mg_Oral_Capsule": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "198188", + "display": "ramipril 2.5 MG Oral Capsule" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Ramipril_5_Mg_Oral_Capsule": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "198189", + "display": "ramipril 5 MG Oral Capsule" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Sacubitril_24_Mg_Valsartan_26_Mg_Oral_Tablet_Entresto": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "1656346", + "display": "sacubitril 24 MG / valsartan 26 MG Oral Tablet [Entresto]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Sacubitril_49_Mg_Valsartan_51_Mg_Oral_Tablet_Entresto": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "1656351", + "display": "sacubitril 49 MG / valsartan 51 MG Oral Tablet [Entresto]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Sacubitril_97_Mg_Valsartan_103_Mg_Oral_Tablet_Entresto": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "1656356", + "display": "sacubitril 97 MG / valsartan 103 MG Oral Tablet [Entresto]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Telmisartan_20_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "282755", + "display": "telmisartan 20 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Telmisartan_20_Mg_Oral_Tablet_Micardis": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "284531", + "display": "telmisartan 20 MG Oral Tablet [Micardis]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Telmisartan_40_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "205304", + "display": "telmisartan 40 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Telmisartan_80_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "205305", + "display": "telmisartan 80 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Telmisartan_80_Mg_Oral_Tablet_Micardis": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "213432", + "display": "telmisartan 80 MG Oral Tablet [Micardis]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Valsartan_160_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "349201", + "display": "valsartan 160 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Valsartan_320_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "349200", + "display": "valsartan 320 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Valsartan_320_Mg_Oral_Tablet_Diovan": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "352001", + "display": "valsartan 320 MG Oral Tablet [Diovan]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Valsartan_40_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "349483", + "display": "valsartan 40 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Valsartan_80_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "ace_arb", + "codes": [ + { + "system": "RxNorm", + "code": "349199", + "display": "valsartan 80 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/medications/beta_blocker.json b/src/main/resources/modules/medications/beta_blocker.json new file mode 100644 index 0000000..3bbda64 --- /dev/null +++ b/src/main/resources/modules/medications/beta_blocker.json @@ -0,0 +1,1322 @@ +{ + "name": "Beta Blocker", + "remarks": [ + "======================================================================", + " SUBMODULE BETA BLOCKER", + "======================================================================", + "", + "This submodule prescribes a medication based on population data.", + "", + "IT IS UP TO THE CALLING MODULE TO END THIS MEDICATION BY ATTRIBUTE.", + "All medications prescribed in this module are assigned to the attribute", + "'beta_blocker'.", + "", + "Reference links:", + " RxClass: https://mor.nlm.nih.gov/RxClass/", + " RxNorm: https://www.nlm.nih.gov/research/umls/rxnorm/index.html", + " RxNav: https://mor.nlm.nih.gov/RxNav/", + " MEPS: https://meps.ahrq.gov/mepsweb/data_stats/MEPS_topics.jsp?topicid=46Z-1", + " FDA: https://www.fda.gov/drugs/drug-approvals-and-databases/national-drug-code-directory", + "", + "Made with () by the CodeRx Medication Diversification Tool (MDT)", + "", + "MDT settings for this submodule:", + "{", + " \"module\": {", + " \"name\": null,", + " \"assign_to_attribute\": null,", + " \"reason\": null,", + " \"as_needed\": false,", + " \"chronic\": false,", + " \"refills\": 0", + " },", + " \"rxclass\": {", + " \"include\": [", + " {", + " \"class_id\": \"N0000175556\",", + " \"relationship\": \"has_EPC\"", + " }", + " ],", + " \"exclude\": null", + " },", + " \"rxcui\": {", + " \"include\": null,", + " \"exclude\": null", + " },", + " \"ingredient_tty_filter\": null,", + " \"dose_form_filter\": null,", + " \"meps\": {", + " \"age_ranges\": null,", + " \"demographic_distribution_flags\": {", + " \"age\": true,", + " \"gender\": true,", + " \"state\": true", + " }", + " },", + " \"state_prefix\": \"Prescribe_\",", + " \"ingredient_distribution_suffix\": \"_ingredient_distribution\",", + " \"product_distribution_suffix\": \"_product_distribution\",", + " \"default_age_ranges\": [", + " \"0-3\",", + " \"4-7\",", + " \"8-11\",", + " \"12-17\",", + " \"18-25\",", + " \"26-35\",", + " \"36-45\",", + " \"46-65\",", + " \"65-103\"", + " ]", + "}" + ], + "gmf_version": 2, + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "beta_blocker", + "operator": "is nil" + }, + "transition": "Prescribe_Ingredient" + }, + { + "transition": "Terminal" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Prescribe_Ingredient": { + "remarks": [ + "======================================================================", + " MEDICATION INGREDIENT TABLE TRANSITION ", + "======================================================================", + "Ingredients in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 15.3% ] Atenolol", + "2. [ 1.3% ] Bisoprolol", + "3. [ 1.1% ] Bisoprolol_Hydrochlorothiazide", + "4. [ 16.8% ] Carvedilol", + "5. [ 2.5% ] Labetalol", + "6. [ 53.9% ] Metoprolol", + "7. [ 2.2% ] Nebivolol", + "8. [ 6.7% ] Propranolol" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Atenolol", + "default_probability": 1, + "lookup_table_name": "beta_blocker_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Bisoprolol", + "default_probability": 0, + "lookup_table_name": "beta_blocker_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Bisoprolol_Hydrochlorothiazide", + "default_probability": 0, + "lookup_table_name": "beta_blocker_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Carvedilol", + "default_probability": 0, + "lookup_table_name": "beta_blocker_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Labetalol", + "default_probability": 0, + "lookup_table_name": "beta_blocker_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Metoprolol", + "default_probability": 0, + "lookup_table_name": "beta_blocker_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Nebivolol", + "default_probability": 0, + "lookup_table_name": "beta_blocker_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Propranolol", + "default_probability": 0, + "lookup_table_name": "beta_blocker_ingredient_distribution.csv" + } + ] + }, + "Prescribe_Atenolol": { + "remarks": [ + "======================================================================", + " ATENOLOL MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 9.9% ] Atenolol_100_Mg_Oral_Tablet", + "2. [ 46.1% ] Atenolol_25_Mg_Oral_Tablet", + "3. [ 44.0% ] Atenolol_50_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Atenolol_100_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "beta_blocker_atenolol_product_distribution.csv" + }, + { + "transition": "Prescribe_Atenolol_50_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_atenolol_product_distribution.csv" + }, + { + "transition": "Prescribe_Atenolol_25_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_atenolol_product_distribution.csv" + } + ] + }, + "Prescribe_Bisoprolol": { + "remarks": [ + "======================================================================", + " BISOPROLOL MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 28.9% ] Bisoprolol_Fumarate_10_Mg_Oral_Tablet", + "2. [ 71.1% ] Bisoprolol_Fumarate_5_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Bisoprolol_Fumarate_10_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "beta_blocker_bisoprolol_product_distribution.csv" + }, + { + "transition": "Prescribe_Bisoprolol_Fumarate_5_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_bisoprolol_product_distribution.csv" + } + ] + }, + "Prescribe_Bisoprolol_Hydrochlorothiazide": { + "remarks": [ + "======================================================================", + " BISOPROLOL_HYDROCHLOROTHIAZIDE MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 27.3% ] Bisoprolol_Fumarate_10_Mg_Hydrochlorothiazide_6_25_Mg_Oral_Tablet", + "2. [ 42.2% ] Bisoprolol_Fumarate_2_5_Mg_Hydrochlorothiazide_6_25_Mg_Oral_Tablet", + "3. [ 30.5% ] Bisoprolol_Fumarate_5_Mg_Hydrochlorothiazide_6_25_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Bisoprolol_Fumarate_10_Mg_Hydrochlorothiazide_6_25_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "beta_blocker_bisoprolol_hydrochlorothiazide_product_distribution.csv" + }, + { + "transition": "Prescribe_Bisoprolol_Fumarate_2_5_Mg_Hydrochlorothiazide_6_25_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_bisoprolol_hydrochlorothiazide_product_distribution.csv" + }, + { + "transition": "Prescribe_Bisoprolol_Fumarate_5_Mg_Hydrochlorothiazide_6_25_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_bisoprolol_hydrochlorothiazide_product_distribution.csv" + } + ] + }, + "Prescribe_Carvedilol": { + "remarks": [ + "======================================================================", + " CARVEDILOL MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 0.3% ] 24_Hr_Carvedilol_Phosphate_10_Mg_Extended_Release_Oral_Capsule", + "2. [ 0.0% ] 24_Hr_Carvedilol_Phosphate_20_Mg_Extended_Release_Oral_Capsule", + "3. [ 0.3% ] 24_Hr_Carvedilol_Phosphate_20_Mg_Extended_Release_Oral_Capsule_Coreg", + "4. [ 25.0% ] Carvedilol_12_5_Mg_Oral_Tablet", + "5. [ 0.2% ] Carvedilol_12_5_Mg_Oral_Tablet_Coreg", + "6. [ 27.4% ] Carvedilol_25_Mg_Oral_Tablet", + "7. [ 0.1% ] Carvedilol_25_Mg_Oral_Tablet_Coreg", + "8. [ 21.8% ] Carvedilol_3_125_Mg_Oral_Tablet", + "9. [ 24.8% ] Carvedilol_6_25_Mg_Oral_Tablet", + "10. [ 0.0% ] Carvedilol_6_25_Mg_Oral_Tablet_Coreg" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_24_Hr_Carvedilol_Phosphate_10_Mg_Extended_Release_Oral_Capsule", + "default_probability": 1, + "lookup_table_name": "beta_blocker_carvedilol_product_distribution.csv" + }, + { + "transition": "Prescribe_Carvedilol_12_5_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_carvedilol_product_distribution.csv" + }, + { + "transition": "Prescribe_Carvedilol_25_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_carvedilol_product_distribution.csv" + }, + { + "transition": "Prescribe_Carvedilol_3_125_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_carvedilol_product_distribution.csv" + }, + { + "transition": "Prescribe_Carvedilol_6_25_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_carvedilol_product_distribution.csv" + }, + { + "transition": "Prescribe_24_Hr_Carvedilol_Phosphate_20_Mg_Extended_Release_Oral_Capsule", + "default_probability": 0, + "lookup_table_name": "beta_blocker_carvedilol_product_distribution.csv" + }, + { + "transition": "Prescribe_Carvedilol_12_5_Mg_Oral_Tablet_Coreg", + "default_probability": 0, + "lookup_table_name": "beta_blocker_carvedilol_product_distribution.csv" + }, + { + "transition": "Prescribe_24_Hr_Carvedilol_Phosphate_20_Mg_Extended_Release_Oral_Capsule_Coreg", + "default_probability": 0, + "lookup_table_name": "beta_blocker_carvedilol_product_distribution.csv" + }, + { + "transition": "Prescribe_Carvedilol_6_25_Mg_Oral_Tablet_Coreg", + "default_probability": 0, + "lookup_table_name": "beta_blocker_carvedilol_product_distribution.csv" + }, + { + "transition": "Prescribe_Carvedilol_25_Mg_Oral_Tablet_Coreg", + "default_probability": 0, + "lookup_table_name": "beta_blocker_carvedilol_product_distribution.csv" + } + ] + }, + "Prescribe_Labetalol": { + "remarks": [ + "======================================================================", + " LABETALOL MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 46.4% ] Labetalol_Hydrochloride_100_Mg_Oral_Tablet", + "2. [ 35.4% ] Labetalol_Hydrochloride_200_Mg_Oral_Tablet", + "3. [ 18.2% ] Labetalol_Hydrochloride_300_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Labetalol_Hydrochloride_100_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "beta_blocker_labetalol_product_distribution.csv" + }, + { + "transition": "Prescribe_Labetalol_Hydrochloride_200_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_labetalol_product_distribution.csv" + }, + { + "transition": "Prescribe_Labetalol_Hydrochloride_300_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_labetalol_product_distribution.csv" + } + ] + }, + "Prescribe_Metoprolol": { + "remarks": [ + "======================================================================", + " METOPROLOL MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 12.3% ] 24_Hr_Metoprolol_Succinate_100_Mg_Extended_Release_Oral_Tablet", + "2. [ 1.8% ] 24_Hr_Metoprolol_Succinate_200_Mg_Extended_Release_Oral_Tablet", + "3. [ 18.7% ] 24_Hr_Metoprolol_Succinate_25_Mg_Extended_Release_Oral_Tablet", + "4. [ 0.6% ] 24_Hr_Metoprolol_Succinate_25_Mg_Extended_Release_Oral_Tablet_Toprol", + "5. [ 19.3% ] 24_Hr_Metoprolol_Succinate_50_Mg_Extended_Release_Oral_Tablet", + "6. [ 0.3% ] 24_Hr_Metoprolol_Succinate_50_Mg_Extended_Release_Oral_Tablet_Toprol", + "7. [ 0.0% ] 5_Ml_Metoprolol_Tartrate_1_Mg_Ml_Cartridge", + "8. [ 0.0% ] 5_Ml_Metoprolol_Tartrate_1_Mg_Ml_Injection", + "9. [ 4.5% ] Metoprolol_Tartrate_100_Mg_Oral_Tablet", + "10. [ 24.1% ] Metoprolol_Tartrate_25_Mg_Oral_Tablet", + "11. [ 18.3% ] Metoprolol_Tartrate_50_Mg_Oral_Tablet", + "12. [ 0.1% ] Metoprolol_Tartrate_50_Mg_Oral_Tablet_Lopressor" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_24_Hr_Metoprolol_Succinate_100_Mg_Extended_Release_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "beta_blocker_metoprolol_product_distribution.csv" + }, + { + "transition": "Prescribe_Metoprolol_Tartrate_50_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_metoprolol_product_distribution.csv" + }, + { + "transition": "Prescribe_24_Hr_Metoprolol_Succinate_25_Mg_Extended_Release_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_metoprolol_product_distribution.csv" + }, + { + "transition": "Prescribe_24_Hr_Metoprolol_Succinate_50_Mg_Extended_Release_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_metoprolol_product_distribution.csv" + }, + { + "transition": "Prescribe_Metoprolol_Tartrate_100_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_metoprolol_product_distribution.csv" + }, + { + "transition": "Prescribe_Metoprolol_Tartrate_25_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_metoprolol_product_distribution.csv" + }, + { + "transition": "Prescribe_24_Hr_Metoprolol_Succinate_200_Mg_Extended_Release_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_metoprolol_product_distribution.csv" + }, + { + "transition": "Prescribe_24_Hr_Metoprolol_Succinate_50_Mg_Extended_Release_Oral_Tablet_Toprol", + "default_probability": 0, + "lookup_table_name": "beta_blocker_metoprolol_product_distribution.csv" + }, + { + "transition": "Prescribe_24_Hr_Metoprolol_Succinate_25_Mg_Extended_Release_Oral_Tablet_Toprol", + "default_probability": 0, + "lookup_table_name": "beta_blocker_metoprolol_product_distribution.csv" + }, + { + "transition": "Prescribe_Metoprolol_Tartrate_50_Mg_Oral_Tablet_Lopressor", + "default_probability": 0, + "lookup_table_name": "beta_blocker_metoprolol_product_distribution.csv" + }, + { + "transition": "Prescribe_5_Ml_Metoprolol_Tartrate_1_Mg_Ml_Cartridge", + "default_probability": 0, + "lookup_table_name": "beta_blocker_metoprolol_product_distribution.csv" + }, + { + "transition": "Prescribe_5_Ml_Metoprolol_Tartrate_1_Mg_Ml_Injection", + "default_probability": 0, + "lookup_table_name": "beta_blocker_metoprolol_product_distribution.csv" + } + ] + }, + "Prescribe_Nebivolol": { + "remarks": [ + "======================================================================", + " NEBIVOLOL MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 40.7% ] Nebivolol_10_Mg_Oral_Tablet_Bystolic", + "2. [ 11.2% ] Nebivolol_20_Mg_Oral_Tablet_Bystolic", + "3. [ 2.2% ] Nebivolol_2_5_Mg_Oral_Tablet_Bystolic", + "4. [ 45.8% ] Nebivolol_5_Mg_Oral_Tablet_Bystolic" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Nebivolol_10_Mg_Oral_Tablet_Bystolic", + "default_probability": 1, + "lookup_table_name": "beta_blocker_nebivolol_product_distribution.csv" + }, + { + "transition": "Prescribe_Nebivolol_20_Mg_Oral_Tablet_Bystolic", + "default_probability": 0, + "lookup_table_name": "beta_blocker_nebivolol_product_distribution.csv" + }, + { + "transition": "Prescribe_Nebivolol_2_5_Mg_Oral_Tablet_Bystolic", + "default_probability": 0, + "lookup_table_name": "beta_blocker_nebivolol_product_distribution.csv" + }, + { + "transition": "Prescribe_Nebivolol_5_Mg_Oral_Tablet_Bystolic", + "default_probability": 0, + "lookup_table_name": "beta_blocker_nebivolol_product_distribution.csv" + } + ] + }, + "Prescribe_Propranolol": { + "remarks": [ + "======================================================================", + " PROPRANOLOL MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 3.2% ] 24_Hr_Propranolol_Hydrochloride_120_Mg_Extended_Release_Oral_Capsule", + "2. [ 4.5% ] 24_Hr_Propranolol_Hydrochloride_160_Mg_Extended_Release_Oral_Capsule", + "3. [ 15.0% ] 24_Hr_Propranolol_Hydrochloride_60_Mg_Extended_Release_Oral_Capsule", + "4. [ 6.3% ] 24_Hr_Propranolol_Hydrochloride_80_Mg_Extended_Release_Oral_Capsule", + "5. [ 19.6% ] Propranolol_Hydrochloride_10_Mg_Oral_Tablet", + "6. [ 26.2% ] Propranolol_Hydrochloride_20_Mg_Oral_Tablet", + "7. [ 19.7% ] Propranolol_Hydrochloride_40_Mg_Oral_Tablet", + "8. [ 1.6% ] Propranolol_Hydrochloride_60_Mg_Oral_Tablet", + "9. [ 3.9% ] Propranolol_Hydrochloride_80_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_24_Hr_Propranolol_Hydrochloride_120_Mg_Extended_Release_Oral_Capsule", + "default_probability": 1, + "lookup_table_name": "beta_blocker_propranolol_product_distribution.csv" + }, + { + "transition": "Prescribe_24_Hr_Propranolol_Hydrochloride_60_Mg_Extended_Release_Oral_Capsule", + "default_probability": 0, + "lookup_table_name": "beta_blocker_propranolol_product_distribution.csv" + }, + { + "transition": "Prescribe_24_Hr_Propranolol_Hydrochloride_80_Mg_Extended_Release_Oral_Capsule", + "default_probability": 0, + "lookup_table_name": "beta_blocker_propranolol_product_distribution.csv" + }, + { + "transition": "Prescribe_Propranolol_Hydrochloride_40_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_propranolol_product_distribution.csv" + }, + { + "transition": "Prescribe_24_Hr_Propranolol_Hydrochloride_160_Mg_Extended_Release_Oral_Capsule", + "default_probability": 0, + "lookup_table_name": "beta_blocker_propranolol_product_distribution.csv" + }, + { + "transition": "Prescribe_Propranolol_Hydrochloride_10_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_propranolol_product_distribution.csv" + }, + { + "transition": "Prescribe_Propranolol_Hydrochloride_20_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_propranolol_product_distribution.csv" + }, + { + "transition": "Prescribe_Propranolol_Hydrochloride_80_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_propranolol_product_distribution.csv" + }, + { + "transition": "Prescribe_Propranolol_Hydrochloride_60_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "beta_blocker_propranolol_product_distribution.csv" + } + ] + }, + "Prescribe_24_Hr_Carvedilol_Phosphate_10_Mg_Extended_Release_Oral_Capsule": { + "remarks": [ + "======================================================================", + " BEGIN MEDICATION ORDER STATES ", + "======================================================================" + ], + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "860510", + "display": "24 HR carvedilol phosphate 10 MG Extended Release Oral Capsule" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_24_Hr_Carvedilol_Phosphate_20_Mg_Extended_Release_Oral_Capsule": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "860516", + "display": "24 HR carvedilol phosphate 20 MG Extended Release Oral Capsule" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_24_Hr_Carvedilol_Phosphate_20_Mg_Extended_Release_Oral_Capsule_Coreg": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "860518", + "display": "24 HR carvedilol phosphate 20 MG Extended Release Oral Capsule [Coreg]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_24_Hr_Metoprolol_Succinate_100_Mg_Extended_Release_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "866412", + "display": "24 HR metoprolol succinate 100 MG Extended Release Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_24_Hr_Metoprolol_Succinate_200_Mg_Extended_Release_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "866419", + "display": "24 HR metoprolol succinate 200 MG Extended Release Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_24_Hr_Metoprolol_Succinate_25_Mg_Extended_Release_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "866427", + "display": "24 HR metoprolol succinate 25 MG Extended Release Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_24_Hr_Metoprolol_Succinate_25_Mg_Extended_Release_Oral_Tablet_Toprol": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "866429", + "display": "24 HR metoprolol succinate 25 MG Extended Release Oral Tablet [Toprol]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_24_Hr_Metoprolol_Succinate_50_Mg_Extended_Release_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "866436", + "display": "24 HR metoprolol succinate 50 MG Extended Release Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_24_Hr_Metoprolol_Succinate_50_Mg_Extended_Release_Oral_Tablet_Toprol": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "866438", + "display": "24 HR metoprolol succinate 50 MG Extended Release Oral Tablet [Toprol]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_24_Hr_Propranolol_Hydrochloride_120_Mg_Extended_Release_Oral_Capsule": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "856460", + "display": "24 HR propranolol hydrochloride 120 MG Extended Release Oral Capsule" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_24_Hr_Propranolol_Hydrochloride_160_Mg_Extended_Release_Oral_Capsule": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "856481", + "display": "24 HR propranolol hydrochloride 160 MG Extended Release Oral Capsule" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_24_Hr_Propranolol_Hydrochloride_60_Mg_Extended_Release_Oral_Capsule": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "856535", + "display": "24 HR propranolol hydrochloride 60 MG Extended Release Oral Capsule" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_24_Hr_Propranolol_Hydrochloride_80_Mg_Extended_Release_Oral_Capsule": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "856569", + "display": "24 HR propranolol hydrochloride 80 MG Extended Release Oral Capsule" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_5_Ml_Metoprolol_Tartrate_1_Mg_Ml_Cartridge": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "1744259", + "display": "5 ML metoprolol tartrate 1 MG/ML Cartridge" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_5_Ml_Metoprolol_Tartrate_1_Mg_Ml_Injection": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "866508", + "display": "5 ML metoprolol tartrate 1 MG/ML Injection" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Atenolol_100_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "197379", + "display": "atenolol 100 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Atenolol_25_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "197380", + "display": "atenolol 25 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Atenolol_50_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "197381", + "display": "atenolol 50 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Bisoprolol_Fumarate_10_Mg_Hydrochlorothiazide_6_25_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "854908", + "display": "bisoprolol fumarate 10 MG / hydrochlorothiazide 6.25 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Bisoprolol_Fumarate_10_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "854901", + "display": "bisoprolol fumarate 10 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Bisoprolol_Fumarate_2_5_Mg_Hydrochlorothiazide_6_25_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "854916", + "display": "bisoprolol fumarate 2.5 MG / hydrochlorothiazide 6.25 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Bisoprolol_Fumarate_5_Mg_Hydrochlorothiazide_6_25_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "854919", + "display": "bisoprolol fumarate 5 MG / hydrochlorothiazide 6.25 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Bisoprolol_Fumarate_5_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "854905", + "display": "bisoprolol fumarate 5 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Carvedilol_12_5_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "200032", + "display": "carvedilol 12.5 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Carvedilol_12_5_Mg_Oral_Tablet_Coreg": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "212389", + "display": "carvedilol 12.5 MG Oral Tablet [Coreg]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Carvedilol_25_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "200033", + "display": "carvedilol 25 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Carvedilol_25_Mg_Oral_Tablet_Coreg": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "212390", + "display": "carvedilol 25 MG Oral Tablet [Coreg]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Carvedilol_3_125_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "686924", + "display": "carvedilol 3.125 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Carvedilol_6_25_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "200031", + "display": "carvedilol 6.25 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Carvedilol_6_25_Mg_Oral_Tablet_Coreg": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "212388", + "display": "carvedilol 6.25 MG Oral Tablet [Coreg]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Labetalol_Hydrochloride_100_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "896758", + "display": "labetalol hydrochloride 100 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Labetalol_Hydrochloride_200_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "896762", + "display": "labetalol hydrochloride 200 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Labetalol_Hydrochloride_300_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "896766", + "display": "labetalol hydrochloride 300 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Metoprolol_Tartrate_100_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "866511", + "display": "metoprolol tartrate 100 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Metoprolol_Tartrate_25_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "866924", + "display": "metoprolol tartrate 25 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Metoprolol_Tartrate_50_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "866514", + "display": "metoprolol tartrate 50 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Metoprolol_Tartrate_50_Mg_Oral_Tablet_Lopressor": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "866516", + "display": "metoprolol tartrate 50 MG Oral Tablet [Lopressor]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Nebivolol_10_Mg_Oral_Tablet_Bystolic": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "751616", + "display": "nebivolol 10 MG Oral Tablet [Bystolic]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Nebivolol_2_5_Mg_Oral_Tablet_Bystolic": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "751620", + "display": "nebivolol 2.5 MG Oral Tablet [Bystolic]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Nebivolol_20_Mg_Oral_Tablet_Bystolic": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "827075", + "display": "nebivolol 20 MG Oral Tablet [Bystolic]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Nebivolol_5_Mg_Oral_Tablet_Bystolic": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "751623", + "display": "nebivolol 5 MG Oral Tablet [Bystolic]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Propranolol_Hydrochloride_10_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "856448", + "display": "propranolol hydrochloride 10 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Propranolol_Hydrochloride_20_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "856457", + "display": "propranolol hydrochloride 20 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Propranolol_Hydrochloride_40_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "856519", + "display": "propranolol hydrochloride 40 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Propranolol_Hydrochloride_60_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "856556", + "display": "propranolol hydrochloride 60 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Propranolol_Hydrochloride_80_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "beta_blocker", + "codes": [ + { + "system": "RxNorm", + "code": "856578", + "display": "propranolol hydrochloride 80 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/medications/ear_infection_antibiotic.json b/src/main/resources/modules/medications/ear_infection_antibiotic.json new file mode 100644 index 0000000..0063a38 --- /dev/null +++ b/src/main/resources/modules/medications/ear_infection_antibiotic.json @@ -0,0 +1,603 @@ +{ + "name": "Ear Infection Antibiotic", + "remarks": [ + "This submodule prescribes an antibiotic used to treat ear infections ", + "(otitis media). If no medication is available in the current year of ", + "the simulation then none is prescribed.", + "IT IS UP TO THE CALLING MODULE TO END THIS MEDICATION BY ATTRIBUTE.", + "All antibiotics prescribed in this module are assigned to the attribute ", + "'antibiotic_prescription'.", + "Source for common antibiotics used to treat otitis media: ", + "http://www.nps.org.au/conditions/ear-nose-mouth-and-throat-disorders/ear-nose-and-throat-infections/ear-infection-middle/for-individuals/medicines-and-treatments", + "Availability dates for different drugs came from the FDA: ", + "http://www.accessdata.fda.gov/scripts/cder/daf/", + "Dosage information came from FDA reference sheets available at: ", + "https://www.drugs.com/dosage/", + "Medications prescribed in this module: ", + "1. Penicillin available after 1945 ", + "2. Ampicillin available after 1961 ", + "3. Doxycycline available after 1967 ", + "4. Amoxicillin available after 1979 ", + "5. Cefaclor available 1979 - 2004 ", + "6. Cefuroxime available after 1983 " + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "antibiotic_prescription", + "operator": "is nil" + }, + "transition": "Prescribe_Ear_Infection_Antibiotic" + }, + { + "transition": "Ear_Infection_Antibiotic_Terminal" + } + ] + }, + "Prescribe_Ear_Infection_Antibiotic": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1945 + }, + "distributions": [ + { + "distribution": 1, + "transition": "Ear_Infection_Antibiotic_Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1961 + }, + "distributions": [ + { + "distribution": 1, + "transition": "Prescribe_Penicillin" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1967 + }, + "distributions": [ + { + "distribution": 0.4, + "transition": "Prescribe_Penicillin" + }, + { + "distribution": 0.4, + "transition": "Prescribe_Ampicillin" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1979 + }, + "distributions": [ + { + "distribution": 0.2, + "transition": "Prescribe_Penicillin" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Ampicillin" + }, + { + "distribution": 0.6, + "transition": "Prescribe_Doxycycline" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1983 + }, + "distributions": [ + { + "distribution": 0.6, + "transition": "Prescribe_Amoxicillin" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Cefaclor" + }, + { + "distribution": 0.1, + "transition": "Prescribe_Doxycycline" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2004 + }, + "distributions": [ + { + "distribution": 0.6, + "transition": "Prescribe_Amoxicillin" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Cefaclor" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Cefuroxime" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.8, + "transition": "Prescribe_Amoxicillin" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Cefuroxime" + } + ] + } + ] + }, + "Prescribe_Penicillin": { + "type": "MedicationOrder", + "assign_to_attribute": "antibiotic_prescription", + "remarks": [ + "Historically this was injected, not ingested. There are still modern ", + "variant of penicillin that come as oral or injectable solutions. There ", + "is no distinction between a pediatric and adult dose." + ], + "codes": [ + { + "system": "RxNorm", + "code": "105078", + "display": "Penicillin G 375 MG/ML Injectable Solution", + "value_set": "" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 4, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 2, + "unit": "weeks" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "418577003", + "display": "Take at regular intervals. Complete the prescribed course unless otherwise directed (qualifier value)" + } + ] + }, + "direct_transition": "Ear_Infection_Antibiotic_Terminal" + }, + "Prescribe_Ampicillin": { + "type": "MedicationOrder", + "assign_to_attribute": "antibiotic_prescription", + "remarks": [ + "Historically this was injected, not ingested. There are still modern ", + "variant of ampicillin that come as oral or injectable solutions. There ", + "is no distinction between a pediatric and adult dose." + ], + "codes": [ + { + "system": "RxNorm", + "code": "789980", + "display": "Ampicillin 100 MG/ML Injectable Solution", + "value_set": "" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 2, + "unit": "weeks" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "418577003", + "display": "Take at regular intervals. Complete the prescribed course unless otherwise directed (qualifier value)" + } + ] + }, + "direct_transition": "Ear_Infection_Antibiotic_Terminal" + }, + "Prescribe_Doxycycline": { + "type": "Simple", + "remarks": [ + "Not recommended for children < 8 years old. For children the dose is ", + "100 - 200mg/day. For adults, the dose is 200mg/day." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 12, + "unit": "years" + }, + "transition": "Pediatric_Doxycycline" + }, + { + "transition": "Adult_Doxycycline" + } + ] + }, + "Pediatric_Doxycycline": { + "type": "MedicationOrder", + "assign_to_attribute": "antibiotic_prescription", + "codes": [ + { + "system": "RxNorm", + "code": "1652673", + "display": "Doxycycline Monohydrate 50 MG Oral Tablet", + "value_set": "" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 2, + "unit": "weeks" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "418577003", + "display": "Take at regular intervals. Complete the prescribed course unless otherwise directed (qualifier value)" + }, + { + "system": "SNOMED-CT", + "code": "419115000", + "display": "Do not take milk, indigestion remedies, or medicines containing iron or zinc at the same time of day as this medicine (qualifier value)" + } + ] + }, + "direct_transition": "Ear_Infection_Antibiotic_Terminal" + }, + "Adult_Doxycycline": { + "type": "MedicationOrder", + "assign_to_attribute": "antibiotic_prescription", + "codes": [ + { + "system": "RxNorm", + "code": "1650142", + "display": "Doxycycline Monohydrate 100 MG Oral Tablet", + "value_set": "" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 2, + "unit": "weeks" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "418577003", + "display": "Take at regular intervals. Complete the prescribed course unless otherwise directed (qualifier value)" + }, + { + "system": "SNOMED-CT", + "code": "419115000", + "display": "Do not take milk, indigestion remedies, or medicines containing iron or zinc at the same time of day as this medicine (qualifier value)" + } + ] + }, + "direct_transition": "Ear_Infection_Antibiotic_Terminal" + }, + "Prescribe_Amoxicillin": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Pediatric_Allergy_Check", + "condition": { + "condition_type": "Age", + "operator": ">", + "quantity": 12, + "unit": "years" + } + }, + { + "transition": "Adult_Allergy_Check" + } + ] + }, + "Pediatric_Amoxicillin": { + "type": "MedicationOrder", + "assign_to_attribute": "antibiotic_prescription", + "codes": [ + { + "system": "RxNorm", + "code": "308182", + "display": "Amoxicillin 250 MG Oral Capsule", + "value_set": "" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 2, + "unit": "weeks" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "418577003", + "display": "Take at regular intervals. Complete the prescribed course unless otherwise directed (qualifier value)" + } + ] + }, + "direct_transition": "Ear_Infection_Antibiotic_Terminal" + }, + "Adult_Amoxicillin": { + "type": "MedicationOrder", + "assign_to_attribute": "antibiotic_prescription", + "codes": [ + { + "system": "RxNorm", + "code": "308192", + "display": "Amoxicillin 500 MG Oral Tablet", + "value_set": "" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 3, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 2, + "unit": "weeks" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "418577003", + "display": "Take at regular intervals. Complete the prescribed course unless otherwise directed (qualifier value)" + } + ] + }, + "direct_transition": "Ear_Infection_Antibiotic_Terminal" + }, + "Prescribe_Cefaclor": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 12, + "unit": "years" + }, + "transition": "Pediatric_Cefaclor" + }, + { + "transition": "Adult_Cefaclor" + } + ] + }, + "Pediatric_Cefaclor": { + "type": "MedicationOrder", + "assign_to_attribute": "antibiotic_prescription", + "codes": [ + { + "system": "RxNorm", + "code": "309045", + "display": "Cefaclor 250 MG Oral Capsule", + "value_set": "" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 2, + "unit": "weeks" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "418577003", + "display": "Take at regular intervals. Complete the prescribed course unless otherwise directed (qualifier value)" + } + ] + }, + "direct_transition": "Ear_Infection_Antibiotic_Terminal" + }, + "Adult_Cefaclor": { + "type": "MedicationOrder", + "assign_to_attribute": "antibiotic_prescription", + "codes": [ + { + "system": "RxNorm", + "code": "309043", + "display": "12 HR Cefaclor 500 MG Extended Release Oral Tablet", + "value_set": "" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 2, + "unit": "weeks" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "418577003", + "display": "Take at regular intervals. Complete the prescribed course unless otherwise directed (qualifier value)" + } + ] + }, + "direct_transition": "Ear_Infection_Antibiotic_Terminal" + }, + "Prescribe_Cefuroxime": { + "type": "MedicationOrder", + "assign_to_attribute": "antibiotic_prescription", + "remarks": [ + "The pediatric and adult doses of Cefuroxime are the same." + ], + "codes": [ + { + "system": "RxNorm", + "code": "309097", + "display": "Cefuroxime 250 MG Oral Tablet", + "value_set": "" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "418577003", + "display": "Take at regular intervals. Complete the prescribed course unless otherwise directed (qualifier value)" + } + ] + }, + "direct_transition": "Ear_Infection_Antibiotic_Terminal" + }, + "Ear_Infection_Antibiotic_Terminal": { + "type": "Terminal" + }, + "Pediatric_Allergy_Check": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": "7984", + "display": "Penicillin V" + } + ] + }, + "transition": "Pediatric_Cefdinir" + }, + { + "transition": "Pediatric_Amoxicillin" + } + ] + }, + "Adult_Allergy_Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Adult_Azithromycin", + "condition": { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": "7984", + "display": "Penicillin V" + } + ] + } + }, + { + "transition": "Adult_Amoxicillin" + } + ] + }, + "Pediatric_Cefdinir": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 200346, + "display": "Cefdinir", + "value_set": "" + } + ], + "direct_transition": "Ear_Infection_Antibiotic_Terminal", + "assign_to_attribute": "antibiotic_prescription" + }, + "Adult_Azithromycin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 141962, + "display": "Azithromycin 250 MG Oral Capsule", + "value_set": "" + } + ], + "direct_transition": "Ear_Infection_Antibiotic_Terminal", + "assign_to_attribute": "antibiotic_prescription" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/medications/emergency_inhaler.json b/src/main/resources/modules/medications/emergency_inhaler.json new file mode 100644 index 0000000..5f1da19 --- /dev/null +++ b/src/main/resources/modules/medications/emergency_inhaler.json @@ -0,0 +1,418 @@ +{ + "name": "Emergency Inhaler", + "remarks": [ + "======================================================================", + " SUBMODULE EMERGENCY INHALER", + "======================================================================", + "", + "This submodule prescribes a medication based on population data.", + "", + "IT IS UP TO THE CALLING MODULE TO END THIS MEDICATION BY ATTRIBUTE.", + "All medications prescribed in this module are assigned to the attribute", + "'emergency_inhaler'.", + "", + "Reference links:", + " RxClass: https://mor.nlm.nih.gov/RxClass/", + " RxNorm: https://www.nlm.nih.gov/research/umls/rxnorm/index.html", + " RxNav: https://mor.nlm.nih.gov/RxNav/", + " MEPS: https://meps.ahrq.gov/mepsweb/data_stats/MEPS_topics.jsp?topicid=46Z-1", + " FDA: https://www.fda.gov/drugs/drug-approvals-and-databases/national-drug-code-directory", + "", + "Made with () by the CodeRx Medication Diversification Tool (MDT)", + "", + "MDT settings for this submodule:", + "{", + " \"module\": {", + " \"name\": null,", + " \"assign_to_attribute\": null,", + " \"reason\": \"asthma_condition\",", + " \"as_needed\": true,", + " \"chronic\": true,", + " \"refills\": 0", + " },", + " \"rxclass\": {", + " \"include\": null,", + " \"exclude\": null", + " },", + " \"rxcui\": {", + " \"include\": [", + " \"435\",", + " \"237159\"", + " ],", + " \"exclude\": null", + " },", + " \"ingredient_tty_filter\": \"IN\",", + " \"dose_form_filter\": [", + " \"Metered Dose Inhaler\",", + " \"Inhalation Solution\"", + " ],", + " \"meps\": {", + " \"age_ranges\": [", + " \"0-5\",", + " \"6-103\"", + " ],", + " \"demographic_distribution_flags\": {", + " \"age\": true,", + " \"gender\": false,", + " \"state\": false", + " }", + " },", + " \"state_prefix\": \"Prescribe_\",", + " \"ingredient_distribution_suffix\": \"_ingredient_distribution\",", + " \"product_distribution_suffix\": \"_product_distribution\",", + " \"default_age_ranges\": [", + " \"0-3\",", + " \"4-7\",", + " \"8-11\",", + " \"12-17\",", + " \"18-25\",", + " \"26-35\",", + " \"36-45\",", + " \"46-65\",", + " \"65-103\"", + " ]", + "}" + ], + "gmf_version": 2, + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "emergency_inhaler", + "operator": "is nil" + }, + "transition": "Prescribe_Ingredient" + }, + { + "transition": "Terminal" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Prescribe_Ingredient": { + "remarks": [ + "======================================================================", + " MEDICATION INGREDIENT TABLE TRANSITION ", + "======================================================================", + "Ingredients in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 98.0% ] Albuterol", + "2. [ 2.0% ] Levalbuterol" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Albuterol", + "default_probability": 1, + "lookup_table_name": "emergency_inhaler_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Levalbuterol", + "default_probability": 0, + "lookup_table_name": "emergency_inhaler_ingredient_distribution.csv" + } + ] + }, + "Prescribe_Albuterol": { + "remarks": [ + "======================================================================", + " ALBUTEROL MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 0.9% ] Albuterol_0_21_Mg_Ml_Inhalation_Solution", + "2. [ 1.5% ] Albuterol_0_417_Mg_Ml_Inhalation_Solution", + "3. [ 26.1% ] Albuterol_0_83_Mg_Ml_Inhalation_Solution", + "4. [ 0.4% ] Albuterol_5_Mg_Ml_Inhalation_Solution", + "5. [ 2.1% ] Nda020503_200_Actuat_Albuterol_0_09_Mg_Actuat_Metered_Dose_Inhaler_Proventil", + "6. [ 34.3% ] Nda020983_200_Actuat_Albuterol_0_09_Mg_Actuat_Metered_Dose_Inhaler_Ventolin", + "7. [ 0.2% ] Nda020983_60_Actuat_Albuterol_0_09_Mg_Actuat_Metered_Dose_Inhaler_Ventolin", + "8. [ 34.6% ] Nda021457_200_Actuat_Albuterol_0_09_Mg_Actuat_Metered_Dose_Inhaler_Proair" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Albuterol_0_21_Mg_Ml_Inhalation_Solution", + "default_probability": 1, + "lookup_table_name": "emergency_inhaler_albuterol_product_distribution.csv" + }, + { + "transition": "Prescribe_Albuterol_0_417_Mg_Ml_Inhalation_Solution", + "default_probability": 0, + "lookup_table_name": "emergency_inhaler_albuterol_product_distribution.csv" + }, + { + "transition": "Prescribe_Albuterol_0_83_Mg_Ml_Inhalation_Solution", + "default_probability": 0, + "lookup_table_name": "emergency_inhaler_albuterol_product_distribution.csv" + }, + { + "transition": "Prescribe_Albuterol_5_Mg_Ml_Inhalation_Solution", + "default_probability": 0, + "lookup_table_name": "emergency_inhaler_albuterol_product_distribution.csv" + }, + { + "transition": "Prescribe_Nda020503_200_Actuat_Albuterol_0_09_Mg_Actuat_Metered_Dose_Inhaler_Proventil", + "default_probability": 0, + "lookup_table_name": "emergency_inhaler_albuterol_product_distribution.csv" + }, + { + "transition": "Prescribe_Nda020983_200_Actuat_Albuterol_0_09_Mg_Actuat_Metered_Dose_Inhaler_Ventolin", + "default_probability": 0, + "lookup_table_name": "emergency_inhaler_albuterol_product_distribution.csv" + }, + { + "transition": "Prescribe_Nda021457_200_Actuat_Albuterol_0_09_Mg_Actuat_Metered_Dose_Inhaler_Proair", + "default_probability": 0, + "lookup_table_name": "emergency_inhaler_albuterol_product_distribution.csv" + }, + { + "transition": "Prescribe_Nda020983_60_Actuat_Albuterol_0_09_Mg_Actuat_Metered_Dose_Inhaler_Ventolin", + "default_probability": 0, + "lookup_table_name": "emergency_inhaler_albuterol_product_distribution.csv" + } + ] + }, + "Prescribe_Levalbuterol": { + "remarks": [ + "======================================================================", + " LEVALBUTEROL MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 32.8% ] 200_Actuat_Levalbuterol_0_045_Mg_Actuat_Metered_Dose_Inhaler", + "2. [ 20.0% ] 200_Actuat_Levalbuterol_0_045_Mg_Actuat_Metered_Dose_Inhaler_Xopenex", + "3. [ 47.2% ] Levalbuterol_0_417_Mg_Ml_Inhalation_Solution" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_200_Actuat_Levalbuterol_0_045_Mg_Actuat_Metered_Dose_Inhaler", + "default_probability": 1, + "lookup_table_name": "emergency_inhaler_levalbuterol_product_distribution.csv" + }, + { + "transition": "Prescribe_200_Actuat_Levalbuterol_0_045_Mg_Actuat_Metered_Dose_Inhaler_Xopenex", + "default_probability": 0, + "lookup_table_name": "emergency_inhaler_levalbuterol_product_distribution.csv" + }, + { + "transition": "Prescribe_Levalbuterol_0_417_Mg_Ml_Inhalation_Solution", + "default_probability": 0, + "lookup_table_name": "emergency_inhaler_levalbuterol_product_distribution.csv" + } + ] + }, + "Prescribe_200_Actuat_Levalbuterol_0_045_Mg_Actuat_Metered_Dose_Inhaler": { + "remarks": [ + "======================================================================", + " BEGIN MEDICATION ORDER STATES ", + "======================================================================" + ], + "type": "MedicationOrder", + "assign_to_attribute": "emergency_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "745791", + "display": "200 ACTUAT levalbuterol 0.045 MG/ACTUAT Metered Dose Inhaler" + } + ], + "prescription": { + "refills": 0, + "as_needed": true + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_200_Actuat_Levalbuterol_0_045_Mg_Actuat_Metered_Dose_Inhaler_Xopenex": { + "type": "MedicationOrder", + "assign_to_attribute": "emergency_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "746466", + "display": "200 ACTUAT levalbuterol 0.045 MG/ACTUAT Metered Dose Inhaler [Xopenex]" + } + ], + "prescription": { + "refills": 0, + "as_needed": true + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_Nda020503_200_Actuat_Albuterol_0_09_Mg_Actuat_Metered_Dose_Inhaler_Proventil": { + "type": "MedicationOrder", + "assign_to_attribute": "emergency_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "746763", + "display": "NDA020503 200 ACTUAT albuterol 0.09 MG/ACTUAT Metered Dose Inhaler [Proventil]" + } + ], + "prescription": { + "refills": 0, + "as_needed": true + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_Nda020983_200_Actuat_Albuterol_0_09_Mg_Actuat_Metered_Dose_Inhaler_Ventolin": { + "type": "MedicationOrder", + "assign_to_attribute": "emergency_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "859088", + "display": "NDA020983 200 ACTUAT albuterol 0.09 MG/ACTUAT Metered Dose Inhaler [Ventolin]" + } + ], + "prescription": { + "refills": 0, + "as_needed": true + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_Nda020983_60_Actuat_Albuterol_0_09_Mg_Actuat_Metered_Dose_Inhaler_Ventolin": { + "type": "MedicationOrder", + "assign_to_attribute": "emergency_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "801095", + "display": "NDA020983 60 ACTUAT albuterol 0.09 MG/ACTUAT Metered Dose Inhaler [Ventolin]" + } + ], + "prescription": { + "refills": 0, + "as_needed": true + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_Nda021457_200_Actuat_Albuterol_0_09_Mg_Actuat_Metered_Dose_Inhaler_Proair": { + "type": "MedicationOrder", + "assign_to_attribute": "emergency_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "745752", + "display": "NDA021457 200 ACTUAT albuterol 0.09 MG/ACTUAT Metered Dose Inhaler [ProAir]" + } + ], + "prescription": { + "refills": 0, + "as_needed": true + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_Albuterol_0_21_Mg_Ml_Inhalation_Solution": { + "type": "MedicationOrder", + "assign_to_attribute": "emergency_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "351137", + "display": "albuterol 0.21 MG/ML Inhalation Solution" + } + ], + "prescription": { + "refills": 0, + "as_needed": true + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_Albuterol_0_417_Mg_Ml_Inhalation_Solution": { + "type": "MedicationOrder", + "assign_to_attribute": "emergency_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "351136", + "display": "albuterol 0.417 MG/ML Inhalation Solution" + } + ], + "prescription": { + "refills": 0, + "as_needed": true + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_Albuterol_0_83_Mg_Ml_Inhalation_Solution": { + "type": "MedicationOrder", + "assign_to_attribute": "emergency_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "630208", + "display": "albuterol 0.83 MG/ML Inhalation Solution" + } + ], + "prescription": { + "refills": 0, + "as_needed": true + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_Albuterol_5_Mg_Ml_Inhalation_Solution": { + "type": "MedicationOrder", + "assign_to_attribute": "emergency_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "245314", + "display": "albuterol 5 MG/ML Inhalation Solution" + } + ], + "prescription": { + "refills": 0, + "as_needed": true + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_Levalbuterol_0_417_Mg_Ml_Inhalation_Solution": { + "type": "MedicationOrder", + "assign_to_attribute": "emergency_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "242754", + "display": "levalbuterol 0.417 MG/ML Inhalation Solution" + } + ], + "prescription": { + "refills": 0, + "as_needed": true + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/medications/hypertension_medication.json b/src/main/resources/modules/medications/hypertension_medication.json new file mode 100644 index 0000000..749d4ce --- /dev/null +++ b/src/main/resources/modules/medications/hypertension_medication.json @@ -0,0 +1,1303 @@ +{ + "name": "hypertension_medication", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Initialize" + }, + "Terminal": { + "type": "Terminal" + }, + "Initialize Step": { + "type": "SetAttribute", + "attribute": "hypertension_medication_step", + "value": 0, + "conditional_transition": [ + { + "transition": "High BP", + "condition": { + "condition_type": "Vital Sign", + "vital_sign": "Systolic Blood Pressure", + "operator": "<", + "value": 160 + } + }, + { + "transition": "Very High BP", + "condition": { + "condition_type": "Vital Sign", + "vital_sign": "Systolic Blood Pressure", + "operator": ">=", + "value": 160 + } + } + ] + }, + "Check Step": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Step 1", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_medication_step", + "operator": "==", + "value": 1 + } + }, + { + "transition": "Step 2", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_medication_step", + "operator": "==", + "value": 2 + } + }, + { + "transition": "Step 3" + } + ] + }, + "Initialize": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Initialize Step", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_medication_step", + "operator": "is nil" + } + }, + { + "transition": "Increase Step" + } + ] + }, + "Increase Step": { + "type": "Counter", + "attribute": "hypertension_medication_step", + "action": "increment", + "direct_transition": "Check Race" + }, + "Step 1": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Step 1 High", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": false + } + }, + { + "transition": "Step 1 Very High", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": true + } + } + ] + }, + "Step 2": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Step 2 High", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": false + } + }, + { + "transition": "Step 2 Very High", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": true + } + } + ] + }, + "Step 3": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Step 3 High", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": false + } + }, + { + "transition": "Step 3 Very High", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": true + } + } + ] + }, + "Step 1 High": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "HCTZ", + "distribution": 0.6 + }, + { + "transition": "Amlodipine", + "distribution": 0.4 + } + ] + }, + "Step 1 Very High": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "microalbuminuria", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "proteinuria", + "operator": "==", + "value": true + } + ] + }, + "distributions": [ + { + "distribution": 0.67, + "transition": "HCTZ+" + }, + { + "transition": "ACE_Allergy_Check+", + "distribution": 0.33 + } + ] + }, + { + "distributions": [ + { + "transition": "HCTZ+", + "distribution": 0.6 + }, + { + "transition": "ACE_Allergy_Check+", + "distribution": 0.3 + }, + { + "transition": "Amlodipine+", + "distribution": 0.1 + } + ] + } + ] + }, + "Step 2 High": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "microalbuminuria", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "proteinuria", + "operator": "==", + "value": true + } + ] + }, + "transition": "ACE_Allergy_Check_2" + }, + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 310798, + "display": "Hydrochlorothiazide 25 MG Oral Tablet" + } + ] + }, + "distributions": [ + { + "distribution": 0.5, + "transition": "Amlodipine_2" + }, + { + "distribution": 0.5, + "transition": "ACE_Allergy_Check_2" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.5, + "transition": "ACE_Allergy_Check_2" + }, + { + "distribution": 0.5, + "transition": "HCTZ_2" + } + ] + } + ] + }, + "Step 2 Very High": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Amlodipine_3", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 314076, + "display": "lisinopril 10 MG Oral Tablet" + } + ] + }, + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 310798, + "display": "Hydrochlorothiazide 25 MG Oral Tablet" + } + ] + } + ] + } + }, + { + "transition": "HCTZ_3", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 314076, + "display": "lisinopril 10 MG Oral Tablet" + } + ] + }, + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 308136, + "display": "amLODIPine 2.5 MG Oral Tablet" + } + ] + } + ] + } + }, + { + "transition": "ACE_Allergy_Check_3", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 308136, + "display": "amLODIPine 2.5 MG Oral Tablet" + } + ] + }, + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 310798, + "display": "Hydrochlorothiazide 25 MG Oral Tablet" + } + ] + } + ] + } + } + ] + }, + "Step 3 High": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Amlodipine_3", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 310798, + "display": "Hydrochlorothiazide 25 MG Oral Tablet" + } + ] + }, + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 314076, + "display": "lisinopril 10 MG Oral Tablet" + } + ] + } + ] + } + }, + { + "transition": "ACE_Allergy_Check_3", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 310798, + "display": "Hydrochlorothiazide 25 MG Oral Tablet" + } + ] + }, + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 308136, + "display": "amLODIPine 2.5 MG Oral Tablet" + } + ] + } + ] + } + }, + { + "transition": "HCTZ_3", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 308136, + "display": "amLODIPine 2.5 MG Oral Tablet" + } + ] + }, + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 314076, + "display": "lisinopril 10 MG Oral Tablet" + } + ] + } + ] + } + } + ] + }, + "Step 3 Very High": { + "type": "Simple", + "direct_transition": "Refer to HTN Clinic" + }, + "Check Race": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Non Hispanic Black", + "condition": { + "condition_type": "Race", + "race": "Black" + } + }, + { + "transition": "All Others" + } + ] + }, + "Non Hispanic Black": { + "type": "Simple", + "direct_transition": "Check Step" + }, + "All Others": { + "type": "Simple", + "direct_transition": "Check_Step" + }, + "Amlodipine": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 308136, + "display": "amLODIPine 2.5 MG Oral Tablet" + } + ], + "chronic": true, + "assign_to_attribute": "hypertension_medication", + "reason": "hypertension_dx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + } + }, + "direct_transition": "Terminal" + }, + "Amlodipine_2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 308136, + "display": "amLODIPine 2.5 MG Oral Tablet" + } + ], + "chronic": true, + "assign_to_attribute": "hypertension_medication_2", + "reason": "hypertension_dx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + } + }, + "direct_transition": "Terminal" + }, + "Lisinopril_2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 314076, + "display": "lisinopril 10 MG Oral Tablet" + } + ], + "chronic": true, + "assign_to_attribute": "hypertension_medication_2", + "reason": "hypertension_dx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + } + }, + "direct_transition": "Terminal" + }, + "HCTZ": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 310798, + "display": "Hydrochlorothiazide 25 MG Oral Tablet" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + } + }, + "chronic": true, + "assign_to_attribute": "hypertension_medication", + "reason": "hypertension_dx", + "direct_transition": "Terminal" + }, + "HCTZ_2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 310798, + "display": "Hydrochlorothiazide 25 MG Oral Tablet" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + } + }, + "chronic": true, + "assign_to_attribute": "hypertension_medication_2", + "reason": "hypertension_dx", + "direct_transition": "Terminal" + }, + "HCTZ_3": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 310798, + "display": "Hydrochlorothiazide 25 MG Oral Tablet" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + } + }, + "chronic": true, + "assign_to_attribute": "hypertension_medication_3", + "reason": "hypertension_dx", + "direct_transition": "Terminal" + }, + "Amlodipine_3": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 308136, + "display": "amLODIPine 2.5 MG Oral Tablet" + } + ], + "chronic": true, + "assign_to_attribute": "hypertension_medication_3", + "reason": "hypertension_dx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + } + }, + "direct_transition": "Terminal" + }, + "Lisinopril_3": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 314076, + "display": "lisinopril 10 MG Oral Tablet" + } + ], + "chronic": true, + "assign_to_attribute": "hypertension_medication_3", + "reason": "hypertension_dx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + } + }, + "direct_transition": "Terminal" + }, + "HCTZ+": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 310798, + "display": "Hydrochlorothiazide 25 MG Oral Tablet" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + } + }, + "chronic": true, + "assign_to_attribute": "hypertension_medication", + "reason": "hypertension_dx", + "direct_transition": "ACE_Allergy_Check_2" + }, + "Lisinopril+": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 314076, + "display": "lisinopril 10 MG Oral Tablet" + } + ], + "chronic": true, + "assign_to_attribute": "hypertension_medication", + "reason": "hypertension_dx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + } + }, + "direct_transition": "Amlodipine_2" + }, + "Amlodipine+": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 308136, + "display": "amLODIPine 2.5 MG Oral Tablet" + } + ], + "chronic": true, + "assign_to_attribute": "hypertension_medication", + "reason": "hypertension_dx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + } + }, + "direct_transition": "HCTZ_2" + }, + "Refer to HTN Clinic": { + "type": "Simple", + "direct_transition": "Terminal" + }, + "Check_Step": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Step_1", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_medication_step", + "operator": "==", + "value": 1 + } + }, + { + "transition": "Step_2", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_medication_step", + "operator": "==", + "value": 2 + } + }, + { + "transition": "Step_3", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_medication_step", + "operator": "==", + "value": 3 + } + } + ] + }, + "Step_1": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Step_1_High", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": false + } + }, + { + "transition": "Step 1 Very High", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": true + } + } + ] + }, + "Step_2": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Step_2_High", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": false + } + }, + { + "transition": "Step 2 Very High", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": true + } + } + ] + }, + "Step_3": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Step_3_High", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": false + } + }, + { + "transition": "Step 3 Very High", + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension_severe", + "operator": "==", + "value": true + } + } + ] + }, + "Step_1_High": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "microalbuminuria", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "proteinuria", + "operator": "==", + "value": true + } + ] + }, + "transition": "ACE_Allergy_Check" + }, + { + "distributions": [ + { + "transition": "ACE_Allergy_Check", + "distribution": 0.5 + }, + { + "transition": "Amlodipine", + "distribution": 0.25 + }, + { + "transition": "HCTZ", + "distribution": 0.25 + } + ] + } + ] + }, + "Step_2_High": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 314076, + "display": "lisinopril 10 MG Oral Tablet" + } + ] + }, + "distributions": [ + { + "transition": "HCTZ_2", + "distribution": 0.5 + }, + { + "transition": "Amlodipine_2", + "distribution": 0.5 + } + ] + }, + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 308136, + "display": "amLODIPine 2.5 MG Oral Tablet" + } + ] + }, + "distributions": [ + { + "transition": "ACE_Allergy_Check_2", + "distribution": 0.5 + }, + { + "transition": "HCTZ_2", + "distribution": 0.5 + } + ] + }, + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 310798, + "display": "Hydrochlorothiazide 25 MG Oral Tablet" + } + ] + }, + "distributions": [ + { + "transition": "ACE_Allergy_Check_2", + "distribution": 0.5 + }, + { + "transition": "Amlodipine_2", + "distribution": 0.5 + } + ] + } + ] + }, + "Step_3_High": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Amlodipine_3", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 314076, + "display": "lisinopril 10 MG Oral Tablet" + } + ] + }, + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 310798, + "display": "Hydrochlorothiazide 25 MG Oral Tablet" + } + ] + } + ] + } + }, + { + "transition": "HCTZ_3", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 314076, + "display": "lisinopril 10 MG Oral Tablet" + } + ] + }, + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 308136, + "display": "amLODIPine 2.5 MG Oral Tablet" + } + ] + } + ] + } + }, + { + "transition": "ACE_Allergy_Check_3", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 308136, + "display": "amLODIPine 2.5 MG Oral Tablet" + } + ] + }, + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 310798, + "display": "Hydrochlorothiazide 25 MG Oral Tablet" + } + ] + } + ] + } + } + ] + }, + "Lisinopril": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 314076, + "display": "lisinopril 10 MG Oral Tablet" + } + ], + "chronic": true, + "assign_to_attribute": "hypertension_medication", + "reason": "hypertension_dx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + } + }, + "direct_transition": "Terminal" + }, + "High BP": { + "type": "SetAttribute", + "attribute": "hypertension_severe", + "direct_transition": "Increase Step", + "value": false + }, + "Very High BP": { + "type": "SetAttribute", + "attribute": "hypertension_severe", + "value": true, + "direct_transition": "Increase Step" + }, + "ACE_Allergy_Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Losartan", + "condition": { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": "29046", + "display": "Lisinopril" + } + ] + } + }, + { + "transition": "Lisinopril" + } + ] + }, + "Losartan": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 979485, + "display": "losartan potassium 25 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "chronic": true, + "reason": "hypertension_dx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + } + }, + "assign_to_attribute": "hypertension_medication" + }, + "ACE_Allergy_Check_2": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Losartan 2", + "condition": { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": "29046", + "display": "Lisinopril" + } + ] + } + }, + { + "transition": "Lisinopril_2" + } + ] + }, + "Losartan 2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 979485, + "display": "losartan potassium 25 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "assign_to_attribute": "hypertension_medication_2", + "reason": "hypertension_dx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + } + }, + "chronic": true + }, + "ACE_Allergy_Check_3": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Losartan_3", + "condition": { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": "29046", + "display": "Lisinopril" + } + ] + } + }, + { + "transition": "Lisinopril_3" + } + ] + }, + "Losartan_3": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 979485, + "display": "losartan potassium 25 MG Oral Tablet" + } + ], + "direct_transition": "Terminal", + "assign_to_attribute": "hypertension_medication_3", + "reason": "hypertension_dx", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + } + } + }, + "ACE_Allergy_Check+": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Losartan+", + "condition": { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": "29046", + "display": "Lisinopril" + } + ] + } + }, + { + "transition": "Lisinopril+" + } + ] + }, + "Losartan+": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 979485, + "display": "losartan potassium 25 MG Oral Tablet" + } + ], + "direct_transition": "Amlodipine_2", + "assign_to_attribute": "hypertension_medication", + "reason": "hypertension_dx", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 90, + "unit": "days" + } + } + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/medications/maintenance_inhaler.json b/src/main/resources/modules/medications/maintenance_inhaler.json new file mode 100644 index 0000000..a481a34 --- /dev/null +++ b/src/main/resources/modules/medications/maintenance_inhaler.json @@ -0,0 +1,699 @@ +{ + "name": "Maintenance Inhaler", + "remarks": [ + "======================================================================", + " SUBMODULE MAINTENANCE INHALER", + "======================================================================", + "", + "This submodule prescribes a medication based on population data.", + "", + "IT IS UP TO THE CALLING MODULE TO END THIS MEDICATION BY ATTRIBUTE.", + "All medications prescribed in this module are assigned to the attribute", + "'maintenance_inhaler'.", + "", + "Reference links:", + " RxClass: https://mor.nlm.nih.gov/RxClass/", + " RxNorm: https://www.nlm.nih.gov/research/umls/rxnorm/index.html", + " RxNav: https://mor.nlm.nih.gov/RxNav/", + " MEPS: https://meps.ahrq.gov/mepsweb/data_stats/MEPS_topics.jsp?topicid=46Z-1", + " FDA: https://www.fda.gov/drugs/drug-approvals-and-databases/national-drug-code-directory", + "", + "Made with () by the CodeRx Medication Diversification Tool (MDT)", + "", + "MDT settings for this submodule:", + "{", + " \"module\": {", + " \"name\": null,", + " \"assign_to_attribute\": null,", + " \"reason\": \"asthma_condition\",", + " \"as_needed\": false,", + " \"chronic\": true,", + " \"refills\": 0", + " },", + " \"rxclass\": {", + " \"include\": [", + " {", + " \"class_id\": \"R01AD\",", + " \"relationship\": \"ATC\"", + " }", + " ],", + " \"exclude\": null", + " },", + " \"rxcui\": {", + " \"include\": null,", + " \"exclude\": null", + " },", + " \"ingredient_tty_filter\": \"IN\",", + " \"dose_form_filter\": [", + " \"Metered Dose Inhaler\",", + " \"Dry Powder Inhaler\",", + " \"Inhalation Suspension\"", + " ],", + " \"meps\": {", + " \"age_ranges\": [", + " \"0-5\",", + " \"6-103\"", + " ],", + " \"demographic_distribution_flags\": {", + " \"age\": true,", + " \"gender\": false,", + " \"state\": false", + " }", + " },", + " \"state_prefix\": \"Prescribe_\",", + " \"ingredient_distribution_suffix\": \"_ingredient_distribution\",", + " \"product_distribution_suffix\": \"_product_distribution\",", + " \"default_age_ranges\": [", + " \"0-3\",", + " \"4-7\",", + " \"8-11\",", + " \"12-17\",", + " \"18-25\",", + " \"26-35\",", + " \"36-45\",", + " \"46-65\",", + " \"65-103\"", + " ]", + "}" + ], + "gmf_version": 2, + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "maintenance_inhaler", + "operator": "is nil" + }, + "transition": "Prescribe_Ingredient" + }, + { + "transition": "Terminal" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Prescribe_Ingredient": { + "remarks": [ + "======================================================================", + " MEDICATION INGREDIENT TABLE TRANSITION ", + "======================================================================", + "Ingredients in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 6.3% ] Beclomethasone", + "2. [ 27.8% ] Budesonide", + "3. [ 54.1% ] Fluticasone", + "4. [ 11.8% ] Mometasone" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Beclomethasone", + "default_probability": 1, + "lookup_table_name": "maintenance_inhaler_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Budesonide", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Fluticasone", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Mometasone", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_ingredient_distribution.csv" + } + ] + }, + "Prescribe_Beclomethasone": { + "remarks": [ + "======================================================================", + " BECLOMETHASONE MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 44.7% ] Breath_Actuated_120_Actuat_Beclomethasone_Dipropionate_0_04_Mg_Actuat_Metered_Dose_Inhaler_Qvar", + "2. [ 55.3% ] Breath_Actuated_120_Actuat_Beclomethasone_Dipropionate_0_08_Mg_Actuat_Metered_Dose_Inhaler_Qvar" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Breath_Actuated_120_Actuat_Beclomethasone_Dipropionate_0_04_Mg_Actuat_Metered_Dose_Inhaler_Qvar", + "default_probability": 1, + "lookup_table_name": "maintenance_inhaler_beclomethasone_product_distribution.csv" + }, + { + "transition": "Prescribe_Breath_Actuated_120_Actuat_Beclomethasone_Dipropionate_0_08_Mg_Actuat_Metered_Dose_Inhaler_Qvar", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_beclomethasone_product_distribution.csv" + } + ] + }, + "Prescribe_Budesonide": { + "remarks": [ + "======================================================================", + " BUDESONIDE MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 19.5% ] 120_Actuat_Budesonide_0_18_Mg_Actuat_Dry_Powder_Inhaler_Pulmicort", + "2. [ 8.9% ] 60_Actuat_Budesonide_0_09_Mg_Actuat_Dry_Powder_Inhaler_Pulmicort", + "3. [ 9.7% ] Budesonide_0_125_Mg_Ml_Inhalation_Suspension", + "4. [ 10.1% ] Budesonide_0_125_Mg_Ml_Inhalation_Suspension_Pulmicort", + "5. [ 49.5% ] Budesonide_0_25_Mg_Ml_Inhalation_Suspension", + "6. [ 2.4% ] Budesonide_0_5_Mg_Ml_Inhalation_Suspension" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_120_Actuat_Budesonide_0_18_Mg_Actuat_Dry_Powder_Inhaler_Pulmicort", + "default_probability": 1, + "lookup_table_name": "maintenance_inhaler_budesonide_product_distribution.csv" + }, + { + "transition": "Prescribe_60_Actuat_Budesonide_0_09_Mg_Actuat_Dry_Powder_Inhaler_Pulmicort", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_budesonide_product_distribution.csv" + }, + { + "transition": "Prescribe_Budesonide_0_125_Mg_Ml_Inhalation_Suspension", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_budesonide_product_distribution.csv" + }, + { + "transition": "Prescribe_Budesonide_0_125_Mg_Ml_Inhalation_Suspension_Pulmicort", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_budesonide_product_distribution.csv" + }, + { + "transition": "Prescribe_Budesonide_0_25_Mg_Ml_Inhalation_Suspension", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_budesonide_product_distribution.csv" + }, + { + "transition": "Prescribe_Budesonide_0_5_Mg_Ml_Inhalation_Suspension", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_budesonide_product_distribution.csv" + } + ] + }, + "Prescribe_Fluticasone": { + "remarks": [ + "======================================================================", + " FLUTICASONE MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 32.3% ] 120_Actuat_Fluticasone_Propionate_0_044_Mg_Actuat_Metered_Dose_Inhaler_Flovent", + "2. [ 40.7% ] 120_Actuat_Fluticasone_Propionate_0_11_Mg_Actuat_Metered_Dose_Inhaler_Flovent", + "3. [ 12.3% ] 120_Actuat_Fluticasone_Propionate_0_22_Mg_Actuat_Metered_Dose_Inhaler_Flovent", + "4. [ 2.7% ] 30_Actuat_Fluticasone_Furoate_0_1_Mg_Actuat_Dry_Powder_Inhaler_Arnuity", + "5. [ 2.5% ] 30_Actuat_Fluticasone_Furoate_0_2_Mg_Actuat_Dry_Powder_Inhaler_Arnuity", + "6. [ 3.4% ] 60_Actuat_Fluticasone_Propionate_0_05_Mg_Actuat_Dry_Powder_Inhaler_Flovent", + "7. [ 5.5% ] 60_Actuat_Fluticasone_Propionate_0_1_Mg_Actuat_Dry_Powder_Inhaler_Flovent", + "8. [ 0.5% ] 60_Actuat_Fluticasone_Propionate_0_25_Mg_Actuat_Dry_Powder_Inhaler_Flovent" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_120_Actuat_Fluticasone_Propionate_0_044_Mg_Actuat_Metered_Dose_Inhaler_Flovent", + "default_probability": 1, + "lookup_table_name": "maintenance_inhaler_fluticasone_product_distribution.csv" + }, + { + "transition": "Prescribe_120_Actuat_Fluticasone_Propionate_0_11_Mg_Actuat_Metered_Dose_Inhaler_Flovent", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_fluticasone_product_distribution.csv" + }, + { + "transition": "Prescribe_120_Actuat_Fluticasone_Propionate_0_22_Mg_Actuat_Metered_Dose_Inhaler_Flovent", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_fluticasone_product_distribution.csv" + }, + { + "transition": "Prescribe_30_Actuat_Fluticasone_Furoate_0_1_Mg_Actuat_Dry_Powder_Inhaler_Arnuity", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_fluticasone_product_distribution.csv" + }, + { + "transition": "Prescribe_30_Actuat_Fluticasone_Furoate_0_2_Mg_Actuat_Dry_Powder_Inhaler_Arnuity", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_fluticasone_product_distribution.csv" + }, + { + "transition": "Prescribe_60_Actuat_Fluticasone_Propionate_0_05_Mg_Actuat_Dry_Powder_Inhaler_Flovent", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_fluticasone_product_distribution.csv" + }, + { + "transition": "Prescribe_60_Actuat_Fluticasone_Propionate_0_1_Mg_Actuat_Dry_Powder_Inhaler_Flovent", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_fluticasone_product_distribution.csv" + }, + { + "transition": "Prescribe_60_Actuat_Fluticasone_Propionate_0_25_Mg_Actuat_Dry_Powder_Inhaler_Flovent", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_fluticasone_product_distribution.csv" + } + ] + }, + "Prescribe_Mometasone": { + "remarks": [ + "======================================================================", + " MOMETASONE MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 31.8% ] 120_Actuat_Mometasone_Furoate_0_1_Mg_Actuat_Metered_Dose_Inhaler_Asmanex", + "2. [ 3.4% ] 120_Actuat_Mometasone_Furoate_0_22_Mg_Actuat_Dry_Powder_Inhaler_Asmanex", + "3. [ 27.9% ] 120_Actuat_Mometasone_Furoate_0_2_Mg_Actuat_Metered_Dose_Inhaler_Asmanex", + "4. [ 3.1% ] 14_Actuat_Mometasone_Furoate_0_22_Mg_Actuat_Dry_Powder_Inhaler_Asmanex", + "5. [ 33.8% ] 60_Actuat_Mometasone_Furoate_0_22_Mg_Actuat_Dry_Powder_Inhaler_Asmanex" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_120_Actuat_Mometasone_Furoate_0_1_Mg_Actuat_Metered_Dose_Inhaler_Asmanex", + "default_probability": 1, + "lookup_table_name": "maintenance_inhaler_mometasone_product_distribution.csv" + }, + { + "transition": "Prescribe_120_Actuat_Mometasone_Furoate_0_22_Mg_Actuat_Dry_Powder_Inhaler_Asmanex", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_mometasone_product_distribution.csv" + }, + { + "transition": "Prescribe_120_Actuat_Mometasone_Furoate_0_2_Mg_Actuat_Metered_Dose_Inhaler_Asmanex", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_mometasone_product_distribution.csv" + }, + { + "transition": "Prescribe_14_Actuat_Mometasone_Furoate_0_22_Mg_Actuat_Dry_Powder_Inhaler_Asmanex", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_mometasone_product_distribution.csv" + }, + { + "transition": "Prescribe_60_Actuat_Mometasone_Furoate_0_22_Mg_Actuat_Dry_Powder_Inhaler_Asmanex", + "default_probability": 0, + "lookup_table_name": "maintenance_inhaler_mometasone_product_distribution.csv" + } + ] + }, + "Prescribe_120_Actuat_Budesonide_0_18_Mg_Actuat_Dry_Powder_Inhaler_Pulmicort": { + "remarks": [ + "======================================================================", + " BEGIN MEDICATION ORDER STATES ", + "======================================================================" + ], + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "966524", + "display": "120 ACTUAT budesonide 0.18 MG/ACTUAT Dry Powder Inhaler [Pulmicort]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_120_Actuat_Fluticasone_Propionate_0_044_Mg_Actuat_Metered_Dose_Inhaler_Flovent": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "895996", + "display": "120 ACTUAT fluticasone propionate 0.044 MG/ACTUAT Metered Dose Inhaler [Flovent]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_120_Actuat_Fluticasone_Propionate_0_11_Mg_Actuat_Metered_Dose_Inhaler_Flovent": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "896001", + "display": "120 ACTUAT fluticasone propionate 0.11 MG/ACTUAT Metered Dose Inhaler [Flovent]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_120_Actuat_Fluticasone_Propionate_0_22_Mg_Actuat_Metered_Dose_Inhaler_Flovent": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "896006", + "display": "120 ACTUAT fluticasone propionate 0.22 MG/ACTUAT Metered Dose Inhaler [Flovent]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_120_Actuat_Mometasone_Furoate_0_1_Mg_Actuat_Metered_Dose_Inhaler_Asmanex": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "1536144", + "display": "120 ACTUAT mometasone furoate 0.1 MG/ACTUAT Metered Dose Inhaler [Asmanex]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_120_Actuat_Mometasone_Furoate_0_2_Mg_Actuat_Metered_Dose_Inhaler_Asmanex": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "1536148", + "display": "120 ACTUAT mometasone furoate 0.2 MG/ACTUAT Metered Dose Inhaler [Asmanex]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_120_Actuat_Mometasone_Furoate_0_22_Mg_Actuat_Dry_Powder_Inhaler_Asmanex": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "746804", + "display": "120 ACTUAT mometasone furoate 0.22 MG/ACTUAT Dry Powder Inhaler [Asmanex]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_14_Actuat_Mometasone_Furoate_0_22_Mg_Actuat_Dry_Powder_Inhaler_Asmanex": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "746811", + "display": "14 ACTUAT mometasone furoate 0.22 MG/ACTUAT Dry Powder Inhaler [Asmanex]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_30_Actuat_Fluticasone_Furoate_0_1_Mg_Actuat_Dry_Powder_Inhaler_Arnuity": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "1547660", + "display": "30 ACTUAT fluticasone furoate 0.1 MG/ACTUAT Dry Powder Inhaler [Arnuity]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_30_Actuat_Fluticasone_Furoate_0_2_Mg_Actuat_Dry_Powder_Inhaler_Arnuity": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "1547672", + "display": "30 ACTUAT fluticasone furoate 0.2 MG/ACTUAT Dry Powder Inhaler [Arnuity]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_60_Actuat_Budesonide_0_09_Mg_Actuat_Dry_Powder_Inhaler_Pulmicort": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "966529", + "display": "60 ACTUAT budesonide 0.09 MG/ACTUAT Dry Powder Inhaler [Pulmicort]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_60_Actuat_Fluticasone_Propionate_0_05_Mg_Actuat_Dry_Powder_Inhaler_Flovent": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "896019", + "display": "60 ACTUAT fluticasone propionate 0.05 MG/ACTUAT Dry Powder Inhaler [Flovent]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_60_Actuat_Fluticasone_Propionate_0_1_Mg_Actuat_Dry_Powder_Inhaler_Flovent": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "896023", + "display": "60 ACTUAT fluticasone propionate 0.1 MG/ACTUAT Dry Powder Inhaler [Flovent]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_60_Actuat_Fluticasone_Propionate_0_25_Mg_Actuat_Dry_Powder_Inhaler_Flovent": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "896027", + "display": "60 ACTUAT fluticasone propionate 0.25 MG/ACTUAT Dry Powder Inhaler [Flovent]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_60_Actuat_Mometasone_Furoate_0_22_Mg_Actuat_Dry_Powder_Inhaler_Asmanex": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "746815", + "display": "60 ACTUAT mometasone furoate 0.22 MG/ACTUAT Dry Powder Inhaler [Asmanex]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_Breath_Actuated_120_Actuat_Beclomethasone_Dipropionate_0_04_Mg_Actuat_Metered_Dose_Inhaler_Qvar": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "1998774", + "display": "Breath-Actuated 120 ACTUAT beclomethasone dipropionate 0.04 MG/ACTUAT Metered Dose Inhaler [Qvar]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_Breath_Actuated_120_Actuat_Beclomethasone_Dipropionate_0_08_Mg_Actuat_Metered_Dose_Inhaler_Qvar": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "1998772", + "display": "Breath-Actuated 120 ACTUAT beclomethasone dipropionate 0.08 MG/ACTUAT Metered Dose Inhaler [Qvar]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_Budesonide_0_125_Mg_Ml_Inhalation_Suspension": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "349094", + "display": "budesonide 0.125 MG/ML Inhalation Suspension" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_Budesonide_0_125_Mg_Ml_Inhalation_Suspension_Pulmicort": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "616830", + "display": "budesonide 0.125 MG/ML Inhalation Suspension [Pulmicort]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_Budesonide_0_25_Mg_Ml_Inhalation_Suspension": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "351109", + "display": "budesonide 0.25 MG/ML Inhalation Suspension" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + }, + "Prescribe_Budesonide_0_5_Mg_Ml_Inhalation_Suspension": { + "type": "MedicationOrder", + "assign_to_attribute": "maintenance_inhaler", + "codes": [ + { + "system": "RxNorm", + "code": "252559", + "display": "budesonide 0.5 MG/ML Inhalation Suspension" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": true, + "reason": "asthma_condition" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/medications/moderate_opioid_pain_reliever.json b/src/main/resources/modules/medications/moderate_opioid_pain_reliever.json new file mode 100644 index 0000000..370dddc --- /dev/null +++ b/src/main/resources/modules/medications/moderate_opioid_pain_reliever.json @@ -0,0 +1,174 @@ +{ + "name": "Moderate Opioid Pain Reliever", + "remarks": [ + "This submodule prescribes a moderate opioid pain reliever for acute pain. ", + "For example, after a major surgery or injury. Medications prescribed ", + "in this module are accurate for the current year of the simulation. ", + "If a patient is not eligible for an opioid pain reliever (for example, ", + "if they are already taking one, or if they are a young child), none is prescribed.", + "All medications prescribed in this module are assigned to the attribute ", + "'opioid_prescription'. It is the responsibility of the Opioid Addiction module ", + "to end this medication.", + "Availability dates for different drugs came from the FDA: ", + "http://www.accessdata.fda.gov/scripts/cder/daf/", + "Dosage information came from FDA reference sheets available at: ", + "https://www.drugs.com/dosage/", + "The following medications are prescribed in this module. Most opioids were invented ", + "during or prior to WWII, but did not become widely available until after the war:", + "1. Meperidine (Demerol) available after 1945 ", + "2. Hydrocodone/Acetaminophen (Vicondin) available after 1943 ", + "3. Oxycodone/Acetaminophen (Percocet) available after 1920 (est)" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "opioid_prescription", + "operator": "is nil" + }, + { + "condition_type": "Age", + "operator": ">=", + "quantity": 12, + "unit": "years" + } + ] + }, + "transition": "Prescribe_Moderate_Opioid" + }, + { + "transition": "Moderate_Opioid_Terminal" + } + ] + }, + "Prescribe_Moderate_Opioid": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1920 + }, + "distributions": [ + { + "distribution": 1, + "transition": "Moderate_Opioid_Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1945 + }, + "distributions": [ + { + "distribution": 1, + "transition": "Prescribe_Oxycodone_Acetaminophen" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.4, + "transition": "Prescribe_Meperidine" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Oxycodone_Acetaminophen" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Hydrocodone_Acetaminophen" + } + ] + } + ] + }, + "Prescribe_Meperidine": { + "type": "MedicationOrder", + "assign_to_attribute": "opioid_prescription", + "codes": [ + { + "system": "RxNorm", + "code": "861467", + "display": "Meperidine Hydrochloride 50 MG Oral Tablet" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 4, + "unit": "hours" + }, + "duration": { + "quantity": 2, + "unit": "weeks" + } + }, + "direct_transition": "Moderate_Opioid_Terminal" + }, + "Prescribe_Oxycodone_Acetaminophen": { + "type": "MedicationOrder", + "assign_to_attribute": "opioid_prescription", + "codes": [ + { + "system": "RxNorm", + "code": "1049221", + "display": "Acetaminophen 325 MG / oxyCODONE Hydrochloride 5 MG Oral Tablet" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 6, + "unit": "hours" + }, + "duration": { + "quantity": 2, + "unit": "weeks" + } + }, + "direct_transition": "Moderate_Opioid_Terminal" + }, + "Prescribe_Hydrocodone_Acetaminophen": { + "type": "MedicationOrder", + "assign_to_attribute": "opioid_prescription", + "codes": [ + { + "system": "RxNorm", + "code": "857005", + "display": "Acetaminophen 325 MG / HYDROcodone Bitartrate 7.5 MG Oral Tablet" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 6, + "unit": "hours" + }, + "duration": { + "quantity": 2, + "unit": "weeks" + } + }, + "direct_transition": "Moderate_Opioid_Terminal" + }, + "Moderate_Opioid_Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/medications/otc_antihistamine.json b/src/main/resources/modules/medications/otc_antihistamine.json new file mode 100644 index 0000000..4901782 --- /dev/null +++ b/src/main/resources/modules/medications/otc_antihistamine.json @@ -0,0 +1,450 @@ +{ + "name": "Over-The-Counter Antihistamine", + "remarks": [ + "This submodule correctly prescribes an over-the-counter antihistamine ", + "that has accurate dosage for adults and children and is accurate for the ", + "current year of the simulation. Medications are not prescribed before they ", + "were invented, and older medications (e.g. benadryl) are prescribed less ", + "frequently as alternatives (e.g. claritin) become available.", + "IT IS THE RESPONSIBILITY OF THE CALLING MODULE TO END THIS MEDICATION BY ATTRIBUTE.", + "All medications prescribed in this module are assigned to the attribute ", + "'otc_antihistamine'.", + "Availability dates for different drugs came from the FDA: ", + "http://www.accessdata.fda.gov/scripts/cder/daf/", + "Dosage information came from FDA reference sheets available at: ", + "https://www.drugs.com/dosage/", + "Although there are now liquid forms of some medications (especially for ", + "children), it's unclear when those became available and the dosing is too ", + "complicated to model easily. For simplicity, all OTC antihistamines prescribed ", + "in this module are of the oral tablet type.", + "Historically there has been 3 'generations' of antihistamines: ", + "Generaton 1 H1 antihistamines: ", + "1. Diphenhydramine (Benadryl) available after 1946 ", + "2. Chlorphenamine (Chlor-Timeton) available after 1951 ", + "Generation 2 H1 antihistamines. Some were discontinued in the 1990's due ", + "to rare but serious risk of cardiac arrest: ", + "3. Astemizole (Hismanal) available 1977 - 1990 ", + "4. Terfenadine (Seldane) available 1985 - 1992 ", + "5. Loratadine (Claritin) available after 1993 ", + "6. Cetirizine (Zyrtec) available after 2007 ", + "Generation 3 H1 antihistamines: ", + "7. Fexofenadine (Allegra) available after 1996 " + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "otc_antihistamine", + "operator": "is nil" + }, + "transition": "Prescribe_OTC_Antihistamine" + }, + { + "transition": "OTC_Anthistamine_Terminal" + } + ] + }, + "Prescribe_OTC_Antihistamine": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1946 + }, + "distributions": [ + { + "distribution": 1, + "transition": "OTC_Anthistamine_Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1951 + }, + "distributions": [ + { + "distribution": 1, + "transition": "Prescribe_Diphenhydramine" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1977 + }, + "distributions": [ + { + "distribution": 0.6, + "transition": "Prescribe_Diphenhydramine" + }, + { + "distribution": 0.6, + "transition": "Prescribe_Chlorphenamine" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1985 + }, + "distributions": [ + { + "distribution": 0.34, + "transition": "Prescribe_Diphenhydramine" + }, + { + "distribution": 0.33, + "transition": "Prescribe_Chlorphenamine" + }, + { + "distribution": 0.33, + "transition": "Prescribe_Astemizole" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1992 + }, + "distributions": [ + { + "distribution": 0.2, + "transition": "Prescribe_Diphenhydramine" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Chlorphenamine" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Astemizole" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Terfenadine" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1996 + }, + "distributions": [ + { + "distribution": 0.2, + "transition": "Prescribe_Diphenhydramine" + }, + { + "distribution": 0.8, + "transition": "Prescribe_Loratadine" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 2007 + }, + "distributions": [ + { + "distribution": 0.5, + "transition": "Prescribe_Loratadine" + }, + { + "distribution": 0.5, + "transition": "Prescribe_Fexofenadine" + } + ] + }, + { + "remarks": [ + "After 2007, only the latest generation and most common antihistamines ", + "are still prescribed." + ], + "distributions": [ + { + "distribution": 0.34, + "transition": "Prescribe_Loratadine" + }, + { + "distribution": 0.33, + "transition": "Prescribe_Fexofenadine" + }, + { + "distribution": 0.33, + "transition": "Prescribe_Cetirizine" + } + ] + } + ] + }, + "Prescribe_Diphenhydramine": { + "type": "MedicationOrder", + "assign_to_attribute": "otc_antihistamine", + "remarks": [ + "There is no distinction between pediatric and adult forms of this ", + "medication. Adults just take more doses of the standard 25mg pill." + ], + "codes": [ + { + "system": "RxNorm", + "code": "1049630", + "display": "diphenhydrAMINE Hydrochloride 25 MG Oral Tablet" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "OTC_Anthistamine_Terminal" + }, + "Prescribe_Chlorphenamine": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 12, + "unit": "years" + }, + "transition": "Pediatric_Chlorphenamine" + }, + { + "transition": "Adult_Chlorphenamine" + } + ] + }, + "Pediatric_Chlorphenamine": { + "type": "MedicationOrder", + "assign_to_attribute": "otc_antihistamine", + "codes": [ + { + "system": "RxNorm", + "code": "477045", + "display": "Chlorpheniramine Maleate 2 MG/ML Oral Solution" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "OTC_Anthistamine_Terminal" + }, + "Adult_Chlorphenamine": { + "type": "MedicationOrder", + "assign_to_attribute": "otc_antihistamine", + "codes": [ + { + "system": "RxNorm", + "code": "1363309", + "display": "Chlorpheniramine Maleate 4 MG Oral Tablet" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "OTC_Anthistamine_Terminal" + }, + "Prescribe_Astemizole": { + "type": "MedicationOrder", + "assign_to_attribute": "otc_antihistamine", + "remarks": [ + "There is only one RxNorm code available for this medication.", + "Since it was withdrawn from the market in the 1990's there is ", + "only limited information available." + ], + "codes": [ + { + "system": "RxNorm", + "code": "197378", + "display": "Astemizole 10 MG Oral Tablet" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "OTC_Anthistamine_Terminal" + }, + "Prescribe_Terfenadine": { + "type": "MedicationOrder", + "assign_to_attribute": "otc_antihistamine", + "remarks": [ + "There are few RxNorm codes available for this medication.", + "Since it was withdrawn from the market in the 1990's there is ", + "only limited information available." + ], + "codes": [ + { + "system": "RxNorm", + "code": "141918", + "display": "Terfenadine 60 MG Oral Tablet" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "OTC_Anthistamine_Terminal" + }, + "Prescribe_Loratadine": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 12, + "unit": "years" + }, + "transition": "Pediatric_Loratadine" + }, + { + "transition": "Adult_Loratadine" + } + ] + }, + "Pediatric_Loratadine": { + "type": "MedicationOrder", + "assign_to_attribute": "otc_antihistamine", + "codes": [ + { + "system": "RxNorm", + "code": "665078", + "display": "Loratadine 5 MG Chewable Tablet" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "OTC_Anthistamine_Terminal" + }, + "Adult_Loratadine": { + "type": "MedicationOrder", + "assign_to_attribute": "otc_antihistamine", + "codes": [ + { + "system": "RxNorm", + "code": "311372", + "display": "Loratadine 10 MG Oral Tablet" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "OTC_Anthistamine_Terminal" + }, + "Prescribe_Fexofenadine": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 12, + "unit": "years" + }, + "transition": "Pediatric_Fexofenadine" + }, + { + "transition": "Adult_Fexofenadine" + } + ] + }, + "Pediatric_Fexofenadine": { + "type": "MedicationOrder", + "assign_to_attribute": "otc_antihistamine", + "codes": [ + { + "system": "RxNorm", + "code": "997488", + "display": "Fexofenadine hydrochloride 30 MG Oral Tablet" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "OTC_Anthistamine_Terminal" + }, + "Adult_Fexofenadine": { + "type": "MedicationOrder", + "assign_to_attribute": "otc_antihistamine", + "codes": [ + { + "system": "RxNorm", + "code": "997501", + "display": "Fexofenadine hydrochloride 60 MG Oral Tablet" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "OTC_Anthistamine_Terminal" + }, + "Prescribe_Cetirizine": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 12, + "unit": "years" + }, + "transition": "Pediatric_Cetirizine" + }, + { + "transition": "Adult_Cetirizine" + } + ] + }, + "Pediatric_Cetirizine": { + "type": "MedicationOrder", + "assign_to_attribute": "otc_antihistamine", + "codes": [ + { + "system": "RxNorm", + "code": "1014676", + "display": "cetirizine hydrochloride 5 MG Oral Tablet" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "OTC_Anthistamine_Terminal" + }, + "Adult_Cetirizine": { + "type": "MedicationOrder", + "assign_to_attribute": "otc_antihistamine", + "codes": [ + { + "system": "RxNorm", + "code": "1014678", + "display": "cetirizine hydrochloride 10 MG Oral Tablet" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "OTC_Anthistamine_Terminal" + }, + "OTC_Anthistamine_Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/medications/otc_pain_reliever.json b/src/main/resources/modules/medications/otc_pain_reliever.json new file mode 100644 index 0000000..98b432e --- /dev/null +++ b/src/main/resources/modules/medications/otc_pain_reliever.json @@ -0,0 +1,326 @@ +{ + "name": "Over-The-Counter Pain Reliever", + "remarks": [ + "This submodule correctly prescribes an over-the-counter pain reliever ", + "that has accurate dosage for adults and children and is accurate for the ", + "current year of the simulation. Medications are not prescribed before they ", + "were invented, and older medications (e.g. aspirin) are prescribed less ", + "frequently as alternatives (e.g. acetaminophen) become available.", + "IT IS THE RESPONSIBILITY OF THE CALLING MODULE TO END THIS MEDICATION BY ATTRIBUTE.", + "All medications prescribed in this module are assigned to the attribute ", + "'otc_pain_reliever'.", + "Availability dates for different drugs came from the FDA: ", + "http://www.accessdata.fda.gov/scripts/cder/daf/", + "Dosage information came from FDA reference sheets available at: ", + "https://www.drugs.com/dosage/", + "Although there are now liquid forms of some medications (especially for ", + "children), it's unclear when those became available and the dosing is too ", + "complicated to model easily. For simplicity, all OTC pain relievers prescribed ", + "in this module are of the oral tablet type.", + "The following medications may be prescribed by this module: ", + "1. Aspirin available after 1899 ", + "2. Acetaminophen (Tylenol) available after 1950 ", + "3. Ibuprofen (Motrin, Advil) available after 1974 ", + "4. Naproxen Sodium (Aleve) available after 1994 " + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "otc_pain_reliever", + "operator": "is nil" + }, + "transition": "Prescribe_OTC_Pain_Reliever" + }, + { + "transition": "OTC_Pain_Reliever_Terminal" + } + ] + }, + "Prescribe_OTC_Pain_Reliever": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1899 + }, + "distributions": [ + { + "distribution": 1, + "transition": "OTC_Pain_Reliever_Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1950 + }, + "distributions": [ + { + "distribution": 1, + "transition": "Prescribe_Aspirin" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1974 + }, + "distributions": [ + { + "distribution": 0.6, + "transition": "Prescribe_Aspirin" + }, + { + "distribution": 0.4, + "transition": "Prescribe_Acetaminophen" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1994 + }, + "distributions": [ + { + "distribution": 0.15, + "transition": "Prescribe_Aspirin" + }, + { + "distribution": 0.6, + "transition": "Prescribe_Acetaminophen" + }, + { + "distribution": 0.25, + "transition": "Prescribe_Ibuprofen" + } + ] + }, + { + "remarks": [ + "After 1994, all medications are available. At this point ", + "aspirin is phased out in favor of newer alternatives." + ], + "distributions": [ + { + "distribution": 0.34, + "transition": "Prescribe_Acetaminophen" + }, + { + "distribution": 0.33, + "transition": "Prescribe_Ibuprofen" + }, + { + "distribution": 0.33, + "transition": "Prescribe_Naproxen_Sodium" + } + ] + } + ] + }, + "Prescribe_Aspirin": { + "type": "MedicationOrder", + "assign_to_attribute": "otc_pain_reliever", + "remarks": [ + "There is no children's dose of aspirin. Anyone prescribed aspirin ", + "gets the same 81mg dose." + ], + "codes": [ + { + "system": "RxNorm", + "code": "243670", + "display": "Aspirin 81 MG Oral Tablet", + "value_set": "" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "OTC_Pain_Reliever_Terminal" + }, + "Prescribe_Acetaminophen": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 12, + "unit": "years" + }, + "transition": "Pediatric_Acetaminophen" + }, + { + "transition": "Adult_Acetaminophen" + } + ] + }, + "Pediatric_Acetaminophen": { + "type": "MedicationOrder", + "assign_to_attribute": "otc_pain_reliever", + "codes": [ + { + "system": "RxNorm", + "code": "313820", + "display": "Acetaminophen 160 MG Chewable Tablet", + "value_set": "" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "OTC_Pain_Reliever_Terminal" + }, + "Adult_Acetaminophen": { + "type": "MedicationOrder", + "assign_to_attribute": "otc_pain_reliever", + "codes": [ + { + "system": "RxNorm", + "code": "313782", + "display": "Acetaminophen 325 MG Oral Tablet", + "value_set": "" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "OTC_Pain_Reliever_Terminal" + }, + "Prescribe_Ibuprofen": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Prescribe_Acetaminophen", + "condition": { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": "5640", + "display": "Ibuprofen" + } + ] + } + }, + { + "transition": "Pediatric_Ibuprofen", + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 12, + "unit": "years" + } + }, + { + "transition": "Adult_Ibuprofen", + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 12, + "unit": "years", + "value": 0 + } + } + ] + }, + "Pediatric_Ibuprofen": { + "type": "MedicationOrder", + "assign_to_attribute": "otc_pain_reliever", + "codes": [ + { + "system": "RxNorm", + "code": "198405", + "display": "Ibuprofen 100 MG Oral Tablet", + "value_set": "" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "OTC_Pain_Reliever_Terminal" + }, + "Adult_Ibuprofen": { + "type": "MedicationOrder", + "assign_to_attribute": "otc_pain_reliever", + "codes": [ + { + "system": "RxNorm", + "code": "310965", + "display": "Ibuprofen 200 MG Oral Tablet", + "value_set": "" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "OTC_Pain_Reliever_Terminal" + }, + "Prescribe_Naproxen_Sodium": { + "type": "Simple", + "remarks": [ + "Naproxen Sodium is not prescribed for children. Patients < age 12 that ", + "reach this state are redirected to Acetaminophen or Ibuprofen." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 12, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.5, + "transition": "Prescribe_Acetaminophen" + }, + { + "distribution": 0.5, + "transition": "Prescribe_Ibuprofen" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "Naproxen_Sodium" + } + ] + } + ] + }, + "Naproxen_Sodium": { + "type": "MedicationOrder", + "assign_to_attribute": "otc_pain_reliever", + "codes": [ + { + "system": "RxNorm", + "code": "849574", + "display": "Naproxen sodium 220 MG Oral Tablet", + "value_set": "" + } + ], + "prescription": { + "as_needed": true + }, + "direct_transition": "OTC_Pain_Reliever_Terminal" + }, + "OTC_Pain_Reliever_Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/medications/statin.json b/src/main/resources/modules/medications/statin.json new file mode 100644 index 0000000..4e75313 --- /dev/null +++ b/src/main/resources/modules/medications/statin.json @@ -0,0 +1,1027 @@ +{ + "name": "Statin", + "remarks": [ + "======================================================================", + " SUBMODULE STATIN", + "======================================================================", + "", + "This submodule prescribes a medication based on population data.", + "", + "IT IS UP TO THE CALLING MODULE TO END THIS MEDICATION BY ATTRIBUTE.", + "All medications prescribed in this module are assigned to the attribute", + "'statin'.", + "", + "Reference links:", + " RxClass: https://mor.nlm.nih.gov/RxClass/", + " RxNorm: https://www.nlm.nih.gov/research/umls/rxnorm/index.html", + " RxNav: https://mor.nlm.nih.gov/RxNav/", + " MEPS: https://meps.ahrq.gov/mepsweb/data_stats/MEPS_topics.jsp?topicid=46Z-1", + " FDA: https://www.fda.gov/drugs/drug-approvals-and-databases/national-drug-code-directory", + "", + "Made with () by the CodeRx Medication Diversification Tool (MDT)", + "", + "MDT settings for this submodule:", + "{", + " \"module\": {", + " \"name\": null,", + " \"assign_to_attribute\": null,", + " \"reason\": null,", + " \"as_needed\": false,", + " \"chronic\": false,", + " \"refills\": 0", + " },", + " \"rxclass\": {", + " \"include\": [", + " {", + " \"class_id\": \"C10AA\",", + " \"relationship\": \"ATC\"", + " }", + " ],", + " \"exclude\": null", + " },", + " \"rxcui\": {", + " \"include\": null,", + " \"exclude\": null", + " },", + " \"ingredient_tty_filter\": null,", + " \"dose_form_filter\": null,", + " \"meps\": {", + " \"age_ranges\": null,", + " \"demographic_distribution_flags\": {", + " \"age\": true,", + " \"gender\": true,", + " \"state\": true", + " }", + " },", + " \"state_prefix\": \"Prescribe_\",", + " \"ingredient_distribution_suffix\": \"_ingredient_distribution\",", + " \"product_distribution_suffix\": \"_product_distribution\",", + " \"default_age_ranges\": [", + " \"0-3\",", + " \"4-7\",", + " \"8-11\",", + " \"12-17\",", + " \"18-25\",", + " \"26-35\",", + " \"36-45\",", + " \"46-65\",", + " \"65-103\"", + " ]", + "}" + ], + "gmf_version": 2, + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "statin", + "operator": "is nil" + }, + "transition": "Prescribe_Ingredient" + }, + { + "transition": "Terminal" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Prescribe_Ingredient": { + "remarks": [ + "======================================================================", + " MEDICATION INGREDIENT TABLE TRANSITION ", + "======================================================================", + "Ingredients in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 49.9% ] Atorvastatin", + "2. [ 0.5% ] Ezetimibe_Simvastatin", + "3. [ 4.3% ] Lovastatin", + "4. [ 0.6% ] Pitavastatin", + "5. [ 11.6% ] Pravastatin", + "6. [ 11.1% ] Rosuvastatin", + "7. [ 22.0% ] Simvastatin" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Atorvastatin", + "default_probability": 1, + "lookup_table_name": "statin_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Ezetimibe_Simvastatin", + "default_probability": 0, + "lookup_table_name": "statin_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Lovastatin", + "default_probability": 0, + "lookup_table_name": "statin_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Pitavastatin", + "default_probability": 0, + "lookup_table_name": "statin_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Pravastatin", + "default_probability": 0, + "lookup_table_name": "statin_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Rosuvastatin", + "default_probability": 0, + "lookup_table_name": "statin_ingredient_distribution.csv" + }, + { + "transition": "Prescribe_Simvastatin", + "default_probability": 0, + "lookup_table_name": "statin_ingredient_distribution.csv" + } + ] + }, + "Prescribe_Atorvastatin": { + "remarks": [ + "======================================================================", + " ATORVASTATIN MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 22.5% ] Atorvastatin_10_Mg_Oral_Tablet", + "2. [ 0.6% ] Atorvastatin_10_Mg_Oral_Tablet_Lipitor", + "3. [ 30.1% ] Atorvastatin_20_Mg_Oral_Tablet", + "4. [ 33.4% ] Atorvastatin_40_Mg_Oral_Tablet", + "5. [ 0.8% ] Atorvastatin_40_Mg_Oral_Tablet_Lipitor", + "6. [ 12.5% ] Atorvastatin_80_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Atorvastatin_10_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "statin_atorvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Atorvastatin_20_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "statin_atorvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Atorvastatin_40_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "statin_atorvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Atorvastatin_80_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "statin_atorvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Atorvastatin_40_Mg_Oral_Tablet_Lipitor", + "default_probability": 0, + "lookup_table_name": "statin_atorvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Atorvastatin_10_Mg_Oral_Tablet_Lipitor", + "default_probability": 0, + "lookup_table_name": "statin_atorvastatin_product_distribution.csv" + } + ] + }, + "Prescribe_Ezetimibe_Simvastatin": { + "remarks": [ + "======================================================================", + " EZETIMIBE_SIMVASTATIN MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 28.5% ] Ezetimibe_10_Mg_Simvastatin_20_Mg_Oral_Tablet", + "2. [ 49.5% ] Ezetimibe_10_Mg_Simvastatin_40_Mg_Oral_Tablet", + "3. [ 10.8% ] Ezetimibe_10_Mg_Simvastatin_40_Mg_Oral_Tablet_Vytorin", + "4. [ 11.2% ] Ezetimibe_10_Mg_Simvastatin_80_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Ezetimibe_10_Mg_Simvastatin_20_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "statin_ezetimibe_simvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Ezetimibe_10_Mg_Simvastatin_40_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "statin_ezetimibe_simvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Ezetimibe_10_Mg_Simvastatin_80_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "statin_ezetimibe_simvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Ezetimibe_10_Mg_Simvastatin_40_Mg_Oral_Tablet_Vytorin", + "default_probability": 0, + "lookup_table_name": "statin_ezetimibe_simvastatin_product_distribution.csv" + } + ] + }, + "Prescribe_Lovastatin": { + "remarks": [ + "======================================================================", + " LOVASTATIN MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 8.5% ] Lovastatin_10_Mg_Oral_Tablet", + "2. [ 46.9% ] Lovastatin_20_Mg_Oral_Tablet", + "3. [ 44.7% ] Lovastatin_40_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Lovastatin_10_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "statin_lovastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Lovastatin_20_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "statin_lovastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Lovastatin_40_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "statin_lovastatin_product_distribution.csv" + } + ] + }, + "Prescribe_Pitavastatin": { + "remarks": [ + "======================================================================", + " PITAVASTATIN MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 9.9% ] Pitavastatin_Calcium_1_Mg_Oral_Tablet_Livalo", + "2. [ 67.7% ] Pitavastatin_Calcium_2_Mg_Oral_Tablet_Livalo", + "3. [ 22.3% ] Pitavastatin_Calcium_4_Mg_Oral_Tablet_Livalo" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Pitavastatin_Calcium_1_Mg_Oral_Tablet_Livalo", + "default_probability": 1, + "lookup_table_name": "statin_pitavastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Pitavastatin_Calcium_2_Mg_Oral_Tablet_Livalo", + "default_probability": 0, + "lookup_table_name": "statin_pitavastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Pitavastatin_Calcium_4_Mg_Oral_Tablet_Livalo", + "default_probability": 0, + "lookup_table_name": "statin_pitavastatin_product_distribution.csv" + } + ] + }, + "Prescribe_Pravastatin": { + "remarks": [ + "======================================================================", + " PRAVASTATIN MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 6.1% ] Pravastatin_Sodium_10_Mg_Oral_Tablet", + "2. [ 32.7% ] Pravastatin_Sodium_20_Mg_Oral_Tablet", + "3. [ 49.5% ] Pravastatin_Sodium_40_Mg_Oral_Tablet", + "4. [ 0.3% ] Pravastatin_Sodium_40_Mg_Oral_Tablet_Pravachol", + "5. [ 11.4% ] Pravastatin_Sodium_80_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Pravastatin_Sodium_10_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "statin_pravastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Pravastatin_Sodium_20_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "statin_pravastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Pravastatin_Sodium_40_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "statin_pravastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Pravastatin_Sodium_80_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "statin_pravastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Pravastatin_Sodium_40_Mg_Oral_Tablet_Pravachol", + "default_probability": 0, + "lookup_table_name": "statin_pravastatin_product_distribution.csv" + } + ] + }, + "Prescribe_Rosuvastatin": { + "remarks": [ + "======================================================================", + " ROSUVASTATIN MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 31.2% ] Rosuvastatin_Calcium_10_Mg_Oral_Tablet", + "2. [ 3.6% ] Rosuvastatin_Calcium_10_Mg_Oral_Tablet_Crestor", + "3. [ 27.2% ] Rosuvastatin_Calcium_20_Mg_Oral_Tablet", + "4. [ 2.2% ] Rosuvastatin_Calcium_20_Mg_Oral_Tablet_Crestor", + "5. [ 16.6% ] Rosuvastatin_Calcium_40_Mg_Oral_Tablet", + "6. [ 0.8% ] Rosuvastatin_Calcium_40_Mg_Oral_Tablet_Crestor", + "7. [ 18.1% ] Rosuvastatin_Calcium_5_Mg_Oral_Tablet", + "8. [ 0.4% ] Rosuvastatin_Calcium_5_Mg_Oral_Tablet_Crestor" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Rosuvastatin_Calcium_10_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "statin_rosuvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Rosuvastatin_Calcium_10_Mg_Oral_Tablet_Crestor", + "default_probability": 0, + "lookup_table_name": "statin_rosuvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Rosuvastatin_Calcium_20_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "statin_rosuvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Rosuvastatin_Calcium_20_Mg_Oral_Tablet_Crestor", + "default_probability": 0, + "lookup_table_name": "statin_rosuvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Rosuvastatin_Calcium_40_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "statin_rosuvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Rosuvastatin_Calcium_5_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "statin_rosuvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Rosuvastatin_Calcium_40_Mg_Oral_Tablet_Crestor", + "default_probability": 0, + "lookup_table_name": "statin_rosuvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Rosuvastatin_Calcium_5_Mg_Oral_Tablet_Crestor", + "default_probability": 0, + "lookup_table_name": "statin_rosuvastatin_product_distribution.csv" + } + ] + }, + "Prescribe_Simvastatin": { + "remarks": [ + "======================================================================", + " SIMVASTATIN MEDICATION PRODUCT TABLE TRANSITION ", + "======================================================================", + "Products in lookup table:", + "# [ % pop ] Name", + "-- --------- ----", + "1. [ 15.1% ] Simvastatin_10_Mg_Oral_Tablet", + "2. [ 41.7% ] Simvastatin_20_Mg_Oral_Tablet", + "3. [ 39.0% ] Simvastatin_40_Mg_Oral_Tablet", + "4. [ 0.9% ] Simvastatin_5_Mg_Oral_Tablet", + "5. [ 3.4% ] Simvastatin_80_Mg_Oral_Tablet" + ], + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Prescribe_Simvastatin_10_Mg_Oral_Tablet", + "default_probability": 1, + "lookup_table_name": "statin_simvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Simvastatin_40_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "statin_simvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Simvastatin_20_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "statin_simvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Simvastatin_80_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "statin_simvastatin_product_distribution.csv" + }, + { + "transition": "Prescribe_Simvastatin_5_Mg_Oral_Tablet", + "default_probability": 0, + "lookup_table_name": "statin_simvastatin_product_distribution.csv" + } + ] + }, + "Prescribe_Atorvastatin_10_Mg_Oral_Tablet": { + "remarks": [ + "======================================================================", + " BEGIN MEDICATION ORDER STATES ", + "======================================================================" + ], + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "617312", + "display": "atorvastatin 10 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Atorvastatin_10_Mg_Oral_Tablet_Lipitor": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "617314", + "display": "atorvastatin 10 MG Oral Tablet [Lipitor]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Atorvastatin_20_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "617310", + "display": "atorvastatin 20 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Atorvastatin_40_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "617311", + "display": "atorvastatin 40 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Atorvastatin_40_Mg_Oral_Tablet_Lipitor": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "617320", + "display": "atorvastatin 40 MG Oral Tablet [Lipitor]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Atorvastatin_80_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "259255", + "display": "atorvastatin 80 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Ezetimibe_10_Mg_Simvastatin_20_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "476349", + "display": "ezetimibe 10 MG / simvastatin 20 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Ezetimibe_10_Mg_Simvastatin_40_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "476350", + "display": "ezetimibe 10 MG / simvastatin 40 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Ezetimibe_10_Mg_Simvastatin_40_Mg_Oral_Tablet_Vytorin": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "1245441", + "display": "ezetimibe 10 MG / simvastatin 40 MG Oral Tablet [Vytorin]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Ezetimibe_10_Mg_Simvastatin_80_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "476351", + "display": "ezetimibe 10 MG / simvastatin 80 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Lovastatin_10_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "197903", + "display": "lovastatin 10 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Lovastatin_20_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "197904", + "display": "lovastatin 20 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Lovastatin_40_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "197905", + "display": "lovastatin 40 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Pitavastatin_Calcium_1_Mg_Oral_Tablet_Livalo": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "861646", + "display": "pitavastatin calcium 1 MG Oral Tablet [Livalo]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Pitavastatin_Calcium_2_Mg_Oral_Tablet_Livalo": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "861650", + "display": "pitavastatin calcium 2 MG Oral Tablet [Livalo]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Pitavastatin_Calcium_4_Mg_Oral_Tablet_Livalo": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "861654", + "display": "pitavastatin calcium 4 MG Oral Tablet [Livalo]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Pravastatin_Sodium_10_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "904458", + "display": "pravastatin sodium 10 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Pravastatin_Sodium_20_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "904467", + "display": "pravastatin sodium 20 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Pravastatin_Sodium_40_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "904475", + "display": "pravastatin sodium 40 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Pravastatin_Sodium_40_Mg_Oral_Tablet_Pravachol": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "904477", + "display": "pravastatin sodium 40 MG Oral Tablet [Pravachol]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Pravastatin_Sodium_80_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "904481", + "display": "pravastatin sodium 80 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Rosuvastatin_Calcium_10_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "859747", + "display": "rosuvastatin calcium 10 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Rosuvastatin_Calcium_10_Mg_Oral_Tablet_Crestor": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "859749", + "display": "rosuvastatin calcium 10 MG Oral Tablet [Crestor]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Rosuvastatin_Calcium_20_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "859751", + "display": "rosuvastatin calcium 20 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Rosuvastatin_Calcium_20_Mg_Oral_Tablet_Crestor": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "859753", + "display": "rosuvastatin calcium 20 MG Oral Tablet [Crestor]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Rosuvastatin_Calcium_40_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "859419", + "display": "rosuvastatin calcium 40 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Rosuvastatin_Calcium_40_Mg_Oral_Tablet_Crestor": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "859421", + "display": "rosuvastatin calcium 40 MG Oral Tablet [Crestor]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Rosuvastatin_Calcium_5_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "859424", + "display": "rosuvastatin calcium 5 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Rosuvastatin_Calcium_5_Mg_Oral_Tablet_Crestor": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "859426", + "display": "rosuvastatin calcium 5 MG Oral Tablet [Crestor]" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Simvastatin_10_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "314231", + "display": "simvastatin 10 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Simvastatin_20_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "312961", + "display": "simvastatin 20 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Simvastatin_40_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "198211", + "display": "simvastatin 40 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Simvastatin_5_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "312962", + "display": "simvastatin 5 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + }, + "Prescribe_Simvastatin_80_Mg_Oral_Tablet": { + "type": "MedicationOrder", + "assign_to_attribute": "statin", + "codes": [ + { + "system": "RxNorm", + "code": "200345", + "display": "simvastatin 80 MG Oral Tablet" + } + ], + "prescription": { + "refills": 0, + "as_needed": false + }, + "direct_transition": "Terminal", + "chronic": false + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/medications/strong_opioid_pain_reliever.json b/src/main/resources/modules/medications/strong_opioid_pain_reliever.json new file mode 100644 index 0000000..bd80970 --- /dev/null +++ b/src/main/resources/modules/medications/strong_opioid_pain_reliever.json @@ -0,0 +1,145 @@ +{ + "name": "Strong Opioid Pain Reliever", + "remarks": [ + "This submodule prescribes a strong opioid pain reliever for chronic or ", + "terminal pain. For example, the late stages of cancer. Medications prescribed ", + "in this module are accurate for the current year of the simulation. ", + "If a patient is not eligible for an opioid pain reliever (for example, ", + "if they are already taking one, or if they are a young child), none is prescribed.", + "All medications prescribed in this module are assigned to the attribute ", + "'opioid_prescription'. It is the responsibility of the Opioid Addiction module ", + "to end this medication.", + "Availability dates for different drugs came from the FDA: ", + "http://www.accessdata.fda.gov/scripts/cder/daf/", + "Dosage information came from FDA reference sheets available at: ", + "https://www.drugs.com/dosage/", + "The following medications are prescribed in this module. Most opioids were invented ", + "during or prior to WWII, but did not become widely available until after the war:", + "1. Methadone (Dolophine) available after 1947 ", + "2. Oxycodone (OxyContin) available after 1920 (est)" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "opioid_prescription", + "operator": "is nil" + }, + { + "condition_type": "Age", + "operator": ">=", + "quantity": 12, + "unit": "years" + } + ] + }, + "transition": "Prescribe_Strong_Opioid" + }, + { + "transition": "Strong_Opioid_Terminal" + } + ] + }, + "Prescribe_Strong_Opioid": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1920 + }, + "distributions": [ + { + "distribution": 1, + "transition": "Strong_Opioid_Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Date", + "operator": "<", + "year": 1947 + }, + "distributions": [ + { + "distribution": 1, + "transition": "Prescribe_Oxycodone" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.6, + "transition": "Prescribe_Oxycodone" + }, + { + "distribution": 0.4, + "transition": "Prescribe_Methadone" + } + ] + } + ] + }, + "Prescribe_Oxycodone": { + "type": "MedicationOrder", + "assign_to_attribute": "opioid_prescription", + "codes": [ + { + "system": "RxNorm", + "code": "1049683", + "display": "oxyCODONE Hydrochloride 10 MG Oral Tablet" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 6, + "unit": "hours" + }, + "duration": { + "quantity": 2, + "unit": "weeks" + } + }, + "direct_transition": "Strong_Opioid_Terminal" + }, + "Prescribe_Methadone": { + "type": "MedicationOrder", + "assign_to_attribute": "opioid_prescription", + "codes": [ + { + "system": "RxNorm", + "code": "864718", + "display": "Methadone Hydrochloride 5 MG Oral Tablet" + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 12, + "unit": "hours" + }, + "duration": { + "quantity": 2, + "unit": "weeks" + } + }, + "direct_transition": "Strong_Opioid_Terminal" + }, + "Strong_Opioid_Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/mend_program.json b/src/main/resources/modules/mend_program.json new file mode 100644 index 0000000..f8e00c5 --- /dev/null +++ b/src/main/resources/modules/mend_program.json @@ -0,0 +1,166 @@ +{ + "name": "MEND Program", + "remarks": [ + "This module simulates the MEND (Mind, Exercise, Nutrition, Do It!) program, described here - http://www.mendfoundation.org.", + "MEND is one of the world's largest evidence-based healthy lifestyle programs that empowers children, with the support of their families, to reach and maintain a healthy weight", + "While the program is targeted at 7 - 13 year olds, it is applied more widely in practice.", + "This module allows children between 5 - 17 to participate in the program.", + "This module depends on attributes set by the java WeightLossModule." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Encounter_Reason" + }, + "Wellness_Encounter": { + "remarks": [ + "Reasons" + ], + "type": "Encounter", + "wellness": true, + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">=", + "quantity": 5, + "unit": "years" + }, + { + "condition_type": "Age", + "operator": "<=", + "quantity": 17, + "unit": "years" + }, + { + "condition_type": "Attribute", + "operator": ">=", + "attribute": "bmi_percentile", + "value": 95 + } + ] + }, + "distributions": [ + { + "transition": "Comprehensive_Multidisciplinary_Intervention_Care_Plan", + "distribution": 0.041 + }, + { + "transition": "Not_Referred", + "distribution": 0.959 + } + ] + }, + { + "transition": "End_Not_Referred_Wellness_Encounter" + } + ], + "reason": "mend_encounter_reason" + }, + "Comprehensive_Multidisciplinary_Intervention_Care_Plan": { + "type": "CarePlanStart", + "assign_to_attribute": "obesity_care_plan", + "codes": [ + { + "system": "SNOMED-CT", + "code": "718361005", + "display": "Weight management program (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "77806000", + "display": "Calorie restricted diet (finding)" + }, + { + "system": "SNOMED-CT", + "code": "1171000175109", + "display": "Increased physical activity (finding)" + } + ], + "direct_transition": "End_Wellness_Encounter" + }, + "End_Wellness_Encounter": { + "type": "EncounterEnd", + "distributed_transition": [ + { + "transition": "Wait_For_Initial_MEND_Week", + "distribution": 0.416 + }, + { + "transition": "End_MEND_Program", + "distribution": 0.584 + } + ] + }, + "Set_MEND_Weeks": { + "type": "SetAttribute", + "attribute": "mend_weeks", + "direct_transition": "Increment_MEND_Week", + "value": 0 + }, + "Increment_MEND_Week": { + "type": "Counter", + "attribute": "mend_weeks", + "action": "increment", + "direct_transition": "MEND_Visits" + }, + "MEND_Visits": { + "type": "CallSubmodule", + "submodule": "weight_loss/mend_week", + "direct_transition": "Check_MEND_Weeks" + }, + "Wait_For_Initial_MEND_Week": { + "type": "Delay", + "range": { + "low": 14, + "high": 21, + "unit": "days" + }, + "direct_transition": "Set_MEND_Weeks" + }, + "Not_Referred": { + "type": "Simple", + "direct_transition": "End_Not_Referred_Wellness_Encounter" + }, + "End_Not_Referred_Wellness_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Initial" + }, + "Check_MEND_Weeks": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "End_MEND_Program", + "condition": { + "condition_type": "Attribute", + "attribute": "mend_weeks", + "operator": ">", + "value": 10 + } + }, + { + "transition": "Increment_MEND_Week" + } + ] + }, + "End_MEND_Program": { + "type": "Terminal" + }, + "Encounter_Reason": { + "type": "SetAttribute", + "attribute": "mend_encounter_reason", + "direct_transition": "Wellness_Encounter", + "value_code": { + "system": "SNOMED-CT", + "code": "763288003", + "display": "Patient review (procedure)" + } + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/metabolic_syndrome/amputations.json b/src/main/resources/modules/metabolic_syndrome/amputations.json new file mode 100644 index 0000000..3417a4f --- /dev/null +++ b/src/main/resources/modules/metabolic_syndrome/amputations.json @@ -0,0 +1,437 @@ +{ + "name": "amputations", + "remarks": [], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Delay_Before_Amputation" + }, + "Delay_Before_Amputation": { + "type": "Delay", + "exact": { + "quantity": 6, + "unit": "weeks" + }, + "direct_transition": "Amputation" + }, + "Amputation": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "reason": "diabetic_neuropathy", + "remarks": [ + "lower limb amputation occurs in 0.65% of the diabetic population", + " with upper limb amputation occurring in an ever fewer 0.034%", + "http://www.amputee-coalition.org/resources/massachusetts/", + "== lower limb =~ 20x more likely than upper limb" + ], + "distributed_transition": [ + { + "distribution": 0.2375, + "transition": "Potential_Amputation_of_Left_Foot" + }, + { + "distribution": 0.2375, + "transition": "Potential_Amputation_of_Left_Leg" + }, + { + "distribution": 0.2375, + "transition": "Potential_Amputation_of_Right_Foot" + }, + { + "distribution": 0.2375, + "transition": "Potential_Amputation_of_Right_Leg" + }, + { + "distribution": 0.0125, + "transition": "Potential_Amputation_of_Left_Hand" + }, + { + "distribution": 0.0125, + "transition": "Potential_Amputation_of_Left_Arm" + }, + { + "distribution": 0.0125, + "transition": "Potential_Amputation_of_Right_Hand" + }, + { + "distribution": 0.0125, + "transition": "Potential_Amputation_of_Right_Arm" + } + ] + }, + "Potential_Amputation_of_Left_Foot": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "PriorState", + "name": "Amputation_of_Left_Foot" + }, + { + "condition_type": "PriorState", + "name": "Amputation_of_Left_Leg" + } + ] + }, + "transition": "End_Amputation_Encounter" + }, + { + "transition": "Amputation_of_Left_Foot" + } + ] + }, + "Amputation_of_Left_Foot": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "180030006", + "display": "Amputation of the foot (procedure)" + } + ], + "duration": { + "low": 1, + "high": 4, + "unit": "hours" + }, + "reason": "diabetic_neuropathy", + "direct_transition": "History_of_Foot_Amputation" + }, + "Potential_Amputation_of_Right_Foot": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "PriorState", + "name": "Amputation_of_Right_Foot" + }, + { + "condition_type": "PriorState", + "name": "Amputation_of_Right_Leg" + } + ] + }, + "transition": "End_Amputation_Encounter" + }, + { + "transition": "Amputation_of_Right_Foot" + } + ] + }, + "Amputation_of_Right_Foot": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "180030006", + "display": "Amputation of the foot (procedure)" + } + ], + "duration": { + "low": 1, + "high": 4, + "unit": "hours" + }, + "reason": "diabetic_neuropathy", + "direct_transition": "History_of_Foot_Amputation" + }, + "Potential_Amputation_of_Left_Leg": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Amputation_of_Left_Leg" + }, + "transition": "End_Amputation_Encounter" + }, + { + "transition": "Amputation_of_Left_Leg" + } + ] + }, + "Amputation_of_Left_Leg": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "79733001", + "display": "Amputation above-knee (procedure)" + } + ], + "duration": { + "low": 1, + "high": 4, + "unit": "hours" + }, + "reason": "diabetic_neuropathy", + "direct_transition": "History_of_Lower_Limb_Amputation" + }, + "Potential_Amputation_of_Right_Leg": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Amputation_of_Right_Leg" + }, + "transition": "End_Amputation_Encounter" + }, + { + "transition": "Amputation_of_Right_Leg" + } + ] + }, + "Amputation_of_Right_Leg": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "79733001", + "display": "Amputation above-knee (procedure)" + } + ], + "duration": { + "low": 1, + "high": 4, + "unit": "hours" + }, + "reason": "diabetic_neuropathy", + "direct_transition": "History_of_Lower_Limb_Amputation" + }, + "History_of_Lower_Limb_Amputation": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "161622006", + "display": "History of lower limb amputation (situation)" + } + ], + "direct_transition": "Recovery_After_Amputation", + "assign_to_attribute": "last_amputation" + }, + "History_of_Foot_Amputation": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "429280009", + "display": "History of amputation of foot (situation)" + } + ], + "direct_transition": "Recovery_After_Amputation", + "assign_to_attribute": "last_amputation" + }, + "Potential_Amputation_of_Left_Hand": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "PriorState", + "name": "Amputation_of_Left_Hand" + }, + { + "condition_type": "PriorState", + "name": "Amputation_of_Left_Arm" + } + ] + }, + "transition": "End_Amputation_Encounter" + }, + { + "transition": "Amputation_of_Left_Hand" + } + ] + }, + "Amputation_of_Left_Hand": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "46028000", + "display": "Amputation of hand (procedure)" + } + ], + "duration": { + "low": 1, + "high": 4, + "unit": "hours" + }, + "reason": "diabetic_neuropathy", + "direct_transition": "History_of_Hand_Amputation" + }, + "Potential_Amputation_of_Right_Hand": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "PriorState", + "name": "Amputation_of_Right_Hand" + }, + { + "condition_type": "PriorState", + "name": "Amputation_of_Right_Arm" + } + ] + }, + "transition": "End_Amputation_Encounter" + }, + { + "transition": "Amputation_of_Right_Hand" + } + ] + }, + "Amputation_of_Right_Hand": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "46028000", + "display": "Amputation of hand (procedure)" + } + ], + "duration": { + "low": 1, + "high": 4, + "unit": "hours" + }, + "reason": "diabetic_neuropathy", + "direct_transition": "History_of_Hand_Amputation" + }, + "Potential_Amputation_of_Right_Arm": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Amputation_of_Right_Arm" + }, + "transition": "End_Amputation_Encounter" + }, + { + "transition": "Amputation_of_Right_Arm" + } + ] + }, + "Amputation_of_Right_Arm": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "13995008", + "display": "Amputation of arm through shoulder (procedure)" + } + ], + "duration": { + "low": 1, + "high": 4, + "unit": "hours" + }, + "reason": "diabetic_neuropathy", + "direct_transition": "History_of_Upper_Limb_Amputation" + }, + "Potential_Amputation_of_Left_Arm": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Amputation_of_Left_Arm" + }, + "transition": "End_Amputation_Encounter" + }, + { + "transition": "Amputation_of_Left_Arm" + } + ] + }, + "Amputation_of_Left_Arm": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "13995008", + "display": "Amputation of arm through shoulder (procedure)" + } + ], + "duration": { + "low": 1, + "high": 4, + "unit": "hours" + }, + "reason": "diabetic_neuropathy", + "direct_transition": "History_of_Upper_Limb_Amputation" + }, + "History_of_Upper_Limb_Amputation": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "161621004", + "display": "History of upper limb amputation (situation)" + } + ], + "direct_transition": "Recovery_After_Amputation", + "assign_to_attribute": "last_amputation" + }, + "History_of_Hand_Amputation": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698423002", + "display": "History of disarticulation at wrist (situation)" + } + ], + "direct_transition": "Recovery_After_Amputation", + "assign_to_attribute": "last_amputation" + }, + "Recovery_After_Amputation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386510005", + "display": "Amputation care (regime/therapy)" + } + ], + "distribution": { + "kind": "EXPONENTIAL", + "parameters": { + "mean": 30 + } + }, + "unit": "days", + "direct_transition": "End_Amputation_Encounter", + "reason": "last_amputation" + }, + "End_Amputation_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/metabolic_syndrome/dme_supplies.json b/src/main/resources/modules/metabolic_syndrome/dme_supplies.json new file mode 100644 index 0000000..3985a59 --- /dev/null +++ b/src/main/resources/modules/metabolic_syndrome/dme_supplies.json @@ -0,0 +1,113 @@ +{ + "name": "dme_supplies", + "remarks": [ + "DME Supply module for metabolic syndrome based on sample of approximately 3/4 million CMS DME claims." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Strip Check" + }, + "Terminal": { + "type": "Terminal" + }, + "Glucose_Test_Strips": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 50, + "code": { + "system": "SNOMED-CT", + "code": "337388004", + "display": "Blood glucose testing strips (physical object)" + } + } + ], + "direct_transition": "Even More Strips" + }, + "Lancets": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 100, + "code": { + "system": "SNOMED-CT", + "code": "1137596000", + "display": "Blood lancet (physical object)" + } + } + ], + "direct_transition": "Calibrator Solution Check" + }, + "Calibrator Solution": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 100, + "code": { + "system": "SNOMED-CT", + "code": "8537005", + "display": "Solution (substance)" + } + } + ], + "direct_transition": "Terminal", + "remarks": [ + "Normal, low and high calibrator solution / chips" + ] + }, + "Strip Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Glucose_Test_Strips", + "distribution": 0.7514 + }, + { + "transition": "Lancet Check", + "distribution": 0.24860000000000015 + } + ] + }, + "Lancet Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Lancets", + "distribution": 0.2856 + }, + { + "transition": "Calibrator Solution Check", + "distribution": 0.7144 + } + ] + }, + "Calibrator Solution Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Calibrator Solution", + "distribution": 0.032 + }, + { + "transition": "Terminal", + "distribution": 0.968 + } + ] + }, + "Even More Strips": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Glucose_Test_Strips", + "distribution": 0.0303 + }, + { + "transition": "Lancet Check", + "distribution": 0.9697 + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/metabolic_syndrome/eye_conditions.json b/src/main/resources/modules/metabolic_syndrome/eye_conditions.json new file mode 100644 index 0000000..b6029bd --- /dev/null +++ b/src/main/resources/modules/metabolic_syndrome/eye_conditions.json @@ -0,0 +1,408 @@ +{ + "name": "eye conditions", + "remarks": [], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Check_Retinopathy" + }, + "Check_Retinopathy": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "retinopathy", + "operator": "is not nil" + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "422034002", + "display": "Retinopathy due to type 2 diabetes mellitus (disorder)" + } + ] + } + } + ] + }, + "transition": "Diagnose_Retinopathy" + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "retinopathy", + "operator": "is nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "422034002", + "display": "Retinopathy due to type 2 diabetes mellitus (disorder)" + } + ] + } + ] + }, + "transition": "End_Retinopathy" + }, + { + "transition": "Check_Nonproliferative_Retinopathy" + } + ] + }, + "Diagnose_Retinopathy": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "422034002", + "display": "Retinopathy due to type 2 diabetes mellitus (disorder)" + } + ], + "direct_transition": "Check_Nonproliferative_Retinopathy" + }, + "End_Retinopathy": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "422034002", + "display": "Retinopathy due to type 2 diabetes mellitus (disorder)" + } + ], + "direct_transition": "Check_Nonproliferative_Retinopathy" + }, + "Check_Nonproliferative_Retinopathy": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "nonproliferative_retinopathy", + "operator": "is not nil" + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1551000119108", + "display": "Nonproliferative retinopathy due to type 2 diabetes mellitus (disorder)" + } + ] + } + } + ] + }, + "transition": "Diagnose_Nonproliferative_Retinopathy" + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "nonproliferative_retinopathy", + "operator": "is nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1551000119108", + "display": "Nonproliferative retinopathy due to type 2 diabetes mellitus (disorder)" + } + ] + } + ] + }, + "transition": "End_Nonproliferative_Retinopathy" + }, + { + "transition": "Check_Proliferative_Retinopathy" + } + ] + }, + "Diagnose_Nonproliferative_Retinopathy": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1551000119108", + "display": "Nonproliferative retinopathy due to type 2 diabetes mellitus (disorder)" + } + ], + "direct_transition": "Check_Proliferative_Retinopathy" + }, + "End_Nonproliferative_Retinopathy": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1551000119108", + "display": "Nonproliferative retinopathy due to type 2 diabetes mellitus (disorder)" + } + ], + "direct_transition": "Check_Proliferative_Retinopathy" + }, + "Check_Proliferative_Retinopathy": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "proliferative_retinopathy", + "operator": "is not nil" + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1501000119109", + "display": "Proliferative retinopathy due to type 2 diabetes mellitus (disorder)" + } + ] + } + } + ] + }, + "transition": "Diagnose_Proliferative_Retinopathy" + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "proliferative_retinopathy", + "operator": "is nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1501000119109", + "display": "Proliferative retinopathy due to type 2 diabetes mellitus (disorder)" + } + ] + } + ] + }, + "transition": "End_Proliferative_Retinopathy" + }, + { + "transition": "Check_Macular_Edema" + } + ] + }, + "Diagnose_Proliferative_Retinopathy": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1501000119109", + "display": "Proliferative retinopathy due to type 2 diabetes mellitus (disorder)" + } + ], + "direct_transition": "Check_Macular_Edema" + }, + "End_Proliferative_Retinopathy": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1501000119109", + "display": "Proliferative retinopathy due to type 2 diabetes mellitus (disorder)" + } + ], + "direct_transition": "Check_Macular_Edema" + }, + "Check_Macular_Edema": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "macular_edema", + "operator": "is not nil" + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "97331000119101", + "display": "Macular edema and retinopathy due to type 2 diabetes mellitus (disorder)" + } + ] + } + } + ] + }, + "transition": "Diagnose_Macular_Edema" + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "macular_edema", + "operator": "is nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "97331000119101", + "display": "Macular edema and retinopathy due to type 2 diabetes mellitus (disorder)" + } + ] + } + ] + }, + "transition": "End_Macular_Edema" + }, + { + "transition": "Check_Blindness" + } + ] + }, + "Diagnose_Macular_Edema": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "97331000119101", + "display": "Macular edema and retinopathy due to type 2 diabetes mellitus (disorder)" + } + ], + "direct_transition": "Check_Blindness" + }, + "End_Macular_Edema": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "97331000119101", + "display": "Macular edema and retinopathy due to type 2 diabetes mellitus (disorder)" + } + ], + "direct_transition": "Check_Blindness" + }, + "Check_Blindness": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "blindness", + "operator": "is not nil" + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60951000119105", + "display": "Blindness due to type 2 diabetes mellitus (disorder)" + } + ] + } + } + ] + }, + "transition": "Diagnose_Blindness" + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "blindness", + "operator": "is nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60951000119105", + "display": "Blindness due to type 2 diabetes mellitus (disorder)" + } + ] + } + ] + }, + "transition": "End_Blindness" + }, + { + "transition": "Terminal" + } + ] + }, + "Diagnose_Blindness": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60951000119105", + "display": "Blindness due to type 2 diabetes mellitus (disorder)" + } + ], + "direct_transition": "Terminal" + }, + "End_Blindness": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60951000119105", + "display": "Blindness due to type 2 diabetes mellitus (disorder)" + } + ], + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/metabolic_syndrome/kidney_conditions.json b/src/main/resources/modules/metabolic_syndrome/kidney_conditions.json new file mode 100644 index 0000000..bba7077 --- /dev/null +++ b/src/main/resources/modules/metabolic_syndrome/kidney_conditions.json @@ -0,0 +1,2138 @@ +{ + "name": "kidney conditions", + "remarks": [], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "check CKD" + }, + "check CKD": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "CKD1 Diagnosis", + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 1 + } + }, + { + "transition": "CKD2 Diagnosis", + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 2 + } + }, + { + "transition": "CKD3 Diagnosis", + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 3 + } + }, + { + "transition": "CKD4 Diagnosis", + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 4 + } + }, + { + "transition": "Check_Nephropathy" + } + ] + }, + "CKD1 Diagnosis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "431855005", + "display": "Chronic kidney disease stage 1 (disorder)" + } + ], + "direct_transition": "Record_MetabolicPanel" + }, + "CKD2 Diagnosis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "431856006", + "display": "Chronic kidney disease stage 2 (disorder)" + } + ], + "direct_transition": "Record_MetabolicPanel_2" + }, + "CKD3 Diagnosis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "433144002", + "display": "Chronic kidney disease stage 3 (disorder)" + } + ], + "direct_transition": "Record_MetabolicPanel_3" + }, + "CKD4 Diagnosis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "431857002", + "display": "Chronic kidney disease stage 4 (disorder)" + } + ], + "direct_transition": "Record_MetabolicPanel_4", + "assign_to_attribute": "dialysis_reason" + }, + "Record_MetabolicPanel": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24321-2", + "display": "Basic metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 1.4, + "high": 1.8 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min/{1.73_m2}", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 90, + "high": 150 + } + } + ], + "direct_transition": "Record_Urinalysis_4" + }, + "Record_MetabolicPanel_2": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24321-2", + "display": "Basic metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 1.8, + "high": 2.1 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min/{1.73_m2}", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 60, + "high": 89 + } + } + ], + "direct_transition": "Record_Urinalysis_6" + }, + "Record_MetabolicPanel_3": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24321-2", + "display": "Basic metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 1.9, + "high": 2.1 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min/{1.73_m2}", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 30, + "high": 59 + } + } + ], + "direct_transition": "Record_Urinalysis_5" + }, + "Record_MetabolicPanel_4": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24321-2", + "display": "Basic metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.2, + "high": 2.5 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min/{1.73_m2}", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 15, + "high": 29 + } + } + ], + "direct_transition": "Record_Urinalysis" + }, + "Record_MetabolicPanel_5": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24321-2", + "display": "Basic metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.5, + "high": 3 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min/{1.73_m2}", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 5, + "high": 14 + } + } + ], + "direct_transition": "Terminal" + }, + "Record_Urinalysis": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24357-6", + "display": "Urinalysis macro (dipstick) panel - Urine" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5767-9", + "display": "Appearance of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "7766007", + "display": "Cloudy urine (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "34533-0", + "display": "Odor of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167248002", + "display": "Urine smell ammoniacal (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "32167-9", + "display": "Clarity of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "300828005", + "display": "Translucent (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5778-6", + "display": "Color of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "371254008", + "display": "Brown color (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5792-7", + "display": "Glucose [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.5, + "high": 2.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "25428-4", + "display": "Glucose [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167265006", + "display": "Urine glucose test = ++ (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "20505-4", + "display": "Bilirubin.total [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.2, + "high": 1.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5770-3", + "display": "Bilirubin.total [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "275778006", + "display": "Finding of bilirubin in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5797-6", + "display": "Ketones [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 0, + "high": 20 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "2514-8", + "display": "Ketones [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167291007", + "display": "Urine ketone test = +++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5811-5", + "display": "Specific gravity of Urine by Test strip" + } + ], + "range": { + "low": 1.001, + "high": 1.039 + } + }, + { + "category": "laboratory", + "unit": "pH", + "codes": [ + { + "system": "LOINC", + "code": "5803-2", + "display": "pH of Urine by Test strip" + } + ], + "range": { + "low": 5, + "high": 7 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5804-0", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 250, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "20454-5", + "display": "Protein [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167277001", + "display": "Urine protein test = +++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5802-4", + "display": "Nitrite [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "314138001", + "display": "Nitrite not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5794-3", + "display": "Hemoglobin [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167297006", + "display": "Blood not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5799-2", + "display": "Leukocyte esterase [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "394717006", + "display": "Urine leukocytes not detected (finding)" + } + } + ], + "direct_transition": "Check_Nephropathy" + }, + "Record_Urinalysis_4": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24357-6", + "display": "Urinalysis macro (dipstick) panel - Urine" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5767-9", + "display": "Appearance of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "7766007", + "display": "Cloudy urine (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "34533-0", + "display": "Odor of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167248002", + "display": "Urine smell ammoniacal (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "32167-9", + "display": "Clarity of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "300828005", + "display": "Translucent (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5778-6", + "display": "Color of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "371254008", + "display": "Brown color (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5792-7", + "display": "Glucose [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.5, + "high": 2.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "25428-4", + "display": "Glucose [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167265006", + "display": "Urine glucose test = ++ (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "20505-4", + "display": "Bilirubin.total [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.2, + "high": 1.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5770-3", + "display": "Bilirubin.total [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "275778006", + "display": "Finding of bilirubin in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5797-6", + "display": "Ketones [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 0, + "high": 20 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "2514-8", + "display": "Ketones [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167288007", + "display": "Urine ketone test = trace (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5811-5", + "display": "Specific gravity of Urine by Test strip" + } + ], + "range": { + "low": 1.001, + "high": 1.039 + } + }, + { + "category": "laboratory", + "unit": "pH", + "codes": [ + { + "system": "LOINC", + "code": "5803-2", + "display": "pH of Urine by Test strip" + } + ], + "range": { + "low": 5, + "high": 7 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5804-0", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 50, + "high": 150 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "20454-5", + "display": "Protein [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167275009", + "display": "Urine protein test = + (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5802-4", + "display": "Nitrite [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "314138001", + "display": "Nitrite not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5794-3", + "display": "Hemoglobin [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167297006", + "display": "Blood not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5799-2", + "display": "Leukocyte esterase [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "394717006", + "display": "Urine leukocytes not detected (finding)" + } + } + ], + "direct_transition": "Check_Nephropathy" + }, + "Record_Urinalysis_5": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24357-6", + "display": "Urinalysis macro (dipstick) panel - Urine" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5767-9", + "display": "Appearance of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "7766007", + "display": "Cloudy urine (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "34533-0", + "display": "Odor of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167248002", + "display": "Urine smell ammoniacal (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "32167-9", + "display": "Clarity of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "300828005", + "display": "Translucent (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5778-6", + "display": "Color of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "371254008", + "display": "Brown color (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5792-7", + "display": "Glucose [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.5, + "high": 2.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "25428-4", + "display": "Glucose [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167265006", + "display": "Urine glucose test = ++ (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "20505-4", + "display": "Bilirubin.total [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.2, + "high": 1.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5770-3", + "display": "Bilirubin.total [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "275778006", + "display": "Finding of bilirubin in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5797-6", + "display": "Ketones [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 0, + "high": 20 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "2514-8", + "display": "Ketones [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167290008", + "display": "Urine ketone test = ++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5811-5", + "display": "Specific gravity of Urine by Test strip" + } + ], + "range": { + "low": 1.001, + "high": 1.039 + } + }, + { + "category": "laboratory", + "unit": "pH", + "codes": [ + { + "system": "LOINC", + "code": "5803-2", + "display": "pH of Urine by Test strip" + } + ], + "range": { + "low": 5, + "high": 7 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5804-0", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 200, + "high": 400 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "20454-5", + "display": "Protein [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167276005", + "display": "Urine protein test = ++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5802-4", + "display": "Nitrite [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "314138001", + "display": "Nitrite not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5794-3", + "display": "Hemoglobin [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167297006", + "display": "Blood not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5799-2", + "display": "Leukocyte esterase [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "394717006", + "display": "Urine leukocytes not detected (finding)" + } + } + ], + "direct_transition": "Check_Nephropathy" + }, + "Record_Urinalysis_6": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24357-6", + "display": "Urinalysis macro (dipstick) panel - Urine" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5767-9", + "display": "Appearance of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "7766007", + "display": "Cloudy urine (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "34533-0", + "display": "Odor of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167248002", + "display": "Urine smell ammoniacal (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "32167-9", + "display": "Clarity of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "300828005", + "display": "Translucent (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5778-6", + "display": "Color of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "371254008", + "display": "Brown color (qualifier value)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5792-7", + "display": "Glucose [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.5, + "high": 2.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "25428-4", + "display": "Glucose [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167265006", + "display": "Urine glucose test = ++ (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "20505-4", + "display": "Bilirubin.total [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.2, + "high": 1.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5770-3", + "display": "Bilirubin.total [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "275778006", + "display": "Finding of bilirubin in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5797-6", + "display": "Ketones [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 0, + "high": 20 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "2514-8", + "display": "Ketones [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167289004", + "display": "Urine ketone test = + (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5811-5", + "display": "Specific gravity of Urine by Test strip" + } + ], + "range": { + "low": 1.001, + "high": 1.039 + } + }, + { + "category": "laboratory", + "unit": "pH", + "codes": [ + { + "system": "LOINC", + "code": "5803-2", + "display": "pH of Urine by Test strip" + } + ], + "range": { + "low": 5, + "high": 7 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5804-0", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 150, + "high": 350 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "20454-5", + "display": "Protein [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167276005", + "display": "Urine protein test = ++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5802-4", + "display": "Nitrite [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "314138001", + "display": "Nitrite not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5794-3", + "display": "Hemoglobin [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167297006", + "display": "Blood not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5799-2", + "display": "Leukocyte esterase [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "394717006", + "display": "Urine leukocytes not detected (finding)" + } + } + ], + "direct_transition": "Check_Nephropathy" + }, + "Check_Nephropathy": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "nephropathy", + "operator": "is not nil" + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "127013003", + "display": "Disorder of kidney due to diabetes mellitus (disorder)" + } + ] + } + } + ] + }, + "transition": "Diagnose_Nephropathy" + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "nephropathy", + "operator": "is nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "127013003", + "display": "Disorder of kidney due to diabetes mellitus (disorder)" + } + ] + } + ] + }, + "transition": "End_Nephropathy" + }, + { + "transition": "Check_Microalbuminuria" + } + ] + }, + "Diagnose_Nephropathy": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "127013003", + "display": "Disorder of kidney due to diabetes mellitus (disorder)" + } + ], + "direct_transition": "Check_Microalbuminuria" + }, + "End_Nephropathy": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "127013003", + "display": "Disorder of kidney due to diabetes mellitus (disorder)" + } + ], + "direct_transition": "Check_Microalbuminuria" + }, + "Check_Microalbuminuria": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "microalbuminuria", + "operator": "is not nil" + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "90781000119102", + "display": "Microalbuminuria due to type 2 diabetes mellitus (disorder)" + } + ] + } + } + ] + }, + "transition": "Diagnose_Microalbuminuria" + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "microalbuminuria", + "operator": "is nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "90781000119102", + "display": "Microalbuminuria due to type 2 diabetes mellitus (disorder)" + } + ] + } + ] + }, + "transition": "End_Microalbuminuria" + }, + { + "transition": "Check_Proteinuria" + } + ] + }, + "Diagnose_Microalbuminuria": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "90781000119102", + "display": "Microalbuminuria due to type 2 diabetes mellitus (disorder)" + } + ], + "direct_transition": "Check_Proteinuria" + }, + "End_Microalbuminuria": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "90781000119102", + "display": "Microalbuminuria due to type 2 diabetes mellitus (disorder)" + } + ], + "direct_transition": "Check_Proteinuria" + }, + "Check_Proteinuria": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "proteinuria", + "operator": "is not nil" + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "157141000119108", + "display": "Proteinuria due to type 2 diabetes mellitus (disorder)" + } + ] + } + } + ] + }, + "transition": "Diagnose_Proteinuria" + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "proteinuria", + "operator": "is nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "157141000119108", + "display": "Proteinuria due to type 2 diabetes mellitus (disorder)" + } + ] + } + ] + }, + "transition": "End_Proteinuria" + }, + { + "transition": "Check_End_Stage_Renal_Disease" + } + ] + }, + "Diagnose_Proteinuria": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "157141000119108", + "display": "Proteinuria due to type 2 diabetes mellitus (disorder)" + } + ], + "direct_transition": "Check_End_Stage_Renal_Disease" + }, + "End_Proteinuria": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "157141000119108", + "display": "Proteinuria due to type 2 diabetes mellitus (disorder)" + } + ], + "direct_transition": "Check_End_Stage_Renal_Disease" + }, + "Check_End_Stage_Renal_Disease": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 5 + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "46177005", + "display": "End-stage renal disease (disorder)" + } + ] + } + } + ] + }, + "transition": "Diagnose_End_Stage_Renal_Disease" + }, + { + "transition": "Terminal" + } + ] + }, + "Diagnose_End_Stage_Renal_Disease": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "46177005", + "display": "End-stage renal disease (disorder)" + } + ], + "direct_transition": "Record_MetabolicPanel_5", + "assign_to_attribute": "dialysis_reason" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/metabolic_syndrome/medications.json b/src/main/resources/modules/metabolic_syndrome/medications.json new file mode 100644 index 0000000..b8de59a --- /dev/null +++ b/src/main/resources/modules/metabolic_syndrome/medications.json @@ -0,0 +1,389 @@ +{ + "name": "medications", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Monotherapy" + }, + "Monotherapy": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "diabetes_severity", + "operator": ">=", + "value": 2 + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "860975", + "display": "24 HR Metformin hydrochloride 500 MG Extended Release Oral Tablet" + } + ] + } + } + ] + }, + "transition": "Prescribe_Metformin" + }, + { + "transition": "Bitherapy" + } + ] + }, + "Prescribe_Metformin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "860975", + "display": "24 HR Metformin hydrochloride 500 MG Extended Release Oral Tablet" + } + ], + "reason": "diabetes_stage", + "direct_transition": "Bitherapy", + "chronic": true + }, + "Bitherapy": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "diabetes_severity", + "operator": ">=", + "value": 3 + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "897122", + "display": "3 ML liraglutide 6 MG/ML Pen Injector" + } + ] + } + } + ] + }, + "transition": "Prescribe_Liraglutide" + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "diabetes_severity", + "operator": "<", + "value": 3 + }, + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "897122", + "display": "3 ML liraglutide 6 MG/ML Pen Injector" + } + ] + } + ] + }, + "transition": "End_Liraglutide" + }, + { + "transition": "Tritherapy" + } + ] + }, + "Prescribe_Liraglutide": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "897122", + "display": "3 ML liraglutide 6 MG/ML Pen Injector" + } + ], + "reason": "diabetes_stage", + "direct_transition": "Tritherapy", + "chronic": true + }, + "End_Liraglutide": { + "type": "MedicationEnd", + "codes": [ + { + "system": "RxNorm", + "code": "897122", + "display": "3 ML liraglutide 6 MG/ML Pen Injector" + } + ], + "direct_transition": "Tritherapy" + }, + "Tritherapy": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "diabetes_severity", + "operator": ">=", + "value": 4 + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "1373463", + "display": "canagliflozin 100 MG Oral Tablet" + } + ] + } + } + ] + }, + "transition": "Prescribe_Canagliflozin" + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "diabetes_severity", + "operator": "<", + "value": 4 + }, + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "1373463", + "display": "canagliflozin 100 MG Oral Tablet" + } + ] + } + ] + }, + "transition": "End_Canagliflozin" + }, + { + "transition": "Insulin" + } + ] + }, + "Prescribe_Canagliflozin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "1373463", + "display": "canagliflozin 100 MG Oral Tablet" + } + ], + "reason": "diabetes_stage", + "direct_transition": "Insulin" + }, + "End_Canagliflozin": { + "type": "MedicationEnd", + "codes": [ + { + "system": "RxNorm", + "code": "1373463", + "display": "canagliflozin 100 MG Oral Tablet" + } + ], + "direct_transition": "Insulin" + }, + "Insulin": { + "type": "Simple", + "remarks": [ + "around a third of patients with type 2 diabetes are on insulin ", + "30.8% (17.8% only insulin and 13.0% insulin and other med)", + "https://www.cdc.gov/diabetes/statistics/meduse/fig2.htm", + "coincidentally around a third of patients have nephropathy", + "for simplicity we'll make this a 1-1 relationship so that nephropathy --> insulin" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "127013003", + "display": "Disorder of kidney due to diabetes mellitus (disorder)" + } + ] + }, + "transition": "Prescribe_Insulin" + }, + { + "transition": "End_Insulin" + } + ] + }, + "Prescribe_Insulin": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "106892", + "display": "insulin isophane, human 70 UNT/ML / insulin, regular, human 30 UNT/ML Injectable Suspension [Humulin]" + } + ] + }, + "remarks": [ + "they have basal so stop it and change towards prandial" + ], + "transition": "End_Basal_Insulin_Towards_Prandial" + }, + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "865098", + "display": "Insulin Lispro 100 UNT/ML Injectable Solution [Humalog]" + } + ] + }, + "remarks": [ + "they have prandial so do nothing" + ], + "transition": "Terminal" + }, + { + "remarks": [ + "prescribe basal the first time around" + ], + "transition": "Prescribe_Basal_Insulin" + } + ] + }, + "Prescribe_Basal_Insulin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "106892", + "display": "insulin isophane, human 70 UNT/ML / insulin, regular, human 30 UNT/ML Injectable Suspension [Humulin]" + } + ], + "reason": "diabetes_stage", + "direct_transition": "Terminal", + "chronic": true + }, + "End_Basal_Insulin_Towards_Prandial": { + "type": "MedicationEnd", + "codes": [ + { + "system": "RxNorm", + "code": "106892", + "display": "insulin isophane, human 70 UNT/ML / insulin, regular, human 30 UNT/ML Injectable Suspension [Humulin]" + } + ], + "direct_transition": "Prescribe_Prandial_Insulin" + }, + "Prescribe_Prandial_Insulin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "865098", + "display": "Insulin Lispro 100 UNT/ML Injectable Solution [Humalog]" + } + ], + "reason": "diabetes_stage", + "direct_transition": "Terminal", + "chronic": true + }, + "End_Insulin": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "106892", + "display": "insulin isophane, human 70 UNT/ML / insulin, regular, human 30 UNT/ML Injectable Suspension [Humulin]" + } + ] + }, + "transition": "End_Basal_Insulin" + }, + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "865098", + "display": "Insulin Lispro 100 UNT/ML Injectable Solution [Humalog]" + } + ] + }, + "transition": "End_Prandial_Insulin" + }, + { + "transition": "Terminal" + } + ] + }, + "End_Basal_Insulin": { + "type": "MedicationEnd", + "codes": [ + { + "system": "RxNorm", + "code": "106892", + "display": "insulin isophane, human 70 UNT/ML / insulin, regular, human 30 UNT/ML Injectable Suspension [Humulin]" + } + ], + "direct_transition": "Terminal" + }, + "End_Prandial_Insulin": { + "type": "MedicationEnd", + "codes": [ + { + "system": "RxNorm", + "code": "865098", + "display": "Insulin Lispro 100 UNT/ML Injectable Solution [Humalog]" + } + ], + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/metabolic_syndrome_care.json b/src/main/resources/modules/metabolic_syndrome_care.json new file mode 100644 index 0000000..cf17ca8 --- /dev/null +++ b/src/main/resources/modules/metabolic_syndrome_care.json @@ -0,0 +1,762 @@ +{ + "name": "Metabolic Syndrome Standards of Care", + "remarks": [], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "Initial impl == direct translation of ruby module" + ], + "direct_transition": "Metabolic_Syndrome_Review_Reason" + }, + "Wellness_Encounter": { + "type": "Encounter", + "wellness": true, + "direct_transition": "check CKD", + "reason": "metabolic_syndrome_review" + }, + "Check_Diabetes": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "diabetes", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "prediabetes", + "operator": "is not nil" + } + ] + }, + "transition": "Record_HA1C" + }, + { + "transition": "End_Wellness_Encounter" + } + ] + }, + "Record_HA1C": { + "type": "Observation", + "vital_sign": "Blood Glucose", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c/Hemoglobin.total in Blood" + } + ], + "unit": "%", + "direct_transition": "Blood_Sugar_Check" + }, + "Blood_Sugar_Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Hyperglycemia", + "condition": { + "condition_type": "Vital Sign", + "vital_sign": "Glucose", + "operator": ">=", + "value": 130 + } + }, + { + "transition": "Triglyceride_Check" + } + ] + }, + "Hyperglycemia": { + "type": "ConditionOnset", + "assign_to_attribute": "hyperglycemia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "80394007", + "display": "Hyperglycemia (disorder)" + } + ], + "direct_transition": "Triglyceride_Check" + }, + "Triglyceride_Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Hypertriglyceridemia", + "condition": { + "condition_type": "Vital Sign", + "vital_sign": "Triglycerides", + "operator": ">=", + "value": 150 + } + }, + { + "transition": "Metabolic_Check" + } + ] + }, + "Hypertriglyceridemia": { + "type": "ConditionOnset", + "assign_to_attribute": "hypertriglyceridemia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "302870006", + "display": "Hypertriglyceridemia (disorder)" + } + ], + "direct_transition": "Metabolic_Check" + }, + "Metabolic_Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Metabolic_Syndrome", + "condition": { + "condition_type": "At Least", + "minimum": 3, + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "obesity", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "hypertension", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "hyperglycemia", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "hypertriglyceridemia", + "operator": "is not nil" + }, + { + "condition_type": "Vital Sign", + "vital_sign": "HDL", + "operator": "<", + "value": 50 + } + ] + } + }, + { + "transition": "Diagnosis" + } + ] + }, + "Metabolic_Syndrome": { + "type": "ConditionOnset", + "assign_to_attribute": "metabolic_syndrome", + "codes": [ + { + "system": "SNOMED-CT", + "code": "237602007", + "display": "Metabolic syndrome X (disorder)" + } + ], + "direct_transition": "Diagnosis" + }, + "Diagnosis": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c/Hemoglobin.total in Blood" + } + ], + "operator": "<=", + "value": 5.7 + }, + "remarks": [ + "Normal level" + ], + "transition": "End_Wellness_Encounter" + }, + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c/Hemoglobin.total in Blood" + } + ], + "operator": "<=", + "value": 6.5 + }, + "remarks": [ + "Prediabetic level" + ], + "transition": "Set_Severity_0" + }, + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c/Hemoglobin.total in Blood" + } + ], + "operator": "<=", + "value": 7.5 + }, + "remarks": [ + "Diabetic level" + ], + "transition": "Set_Severity_1" + }, + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c/Hemoglobin.total in Blood" + } + ], + "operator": "<=", + "value": 9 + }, + "remarks": [ + "Severe level" + ], + "transition": "Set_Severity_2" + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "diabetes_severity", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "diabetes_severity", + "operator": ">=", + "value": 3 + }, + { + "condition_type": "PriorState", + "name": "Set_Severity_3", + "within": { + "quantity": 1, + "unit": "years" + } + } + ] + }, + "remarks": [ + "in words - if the severity is >= 3 and they have been set severity 3 within a year" + ], + "transition": "Set_Severity_4" + }, + { + "remarks": [ + "> severe level" + ], + "transition": "Set_Severity_3" + } + ] + }, + "Set_Severity_0": { + "type": "SetAttribute", + "attribute": "diabetes_severity", + "value": 0, + "remarks": [ + "setting prediabetes as severity 0 makes some things easier" + ], + "conditional_transition": [ + { + "transition": "Check_CarePlan", + "condition": { + "condition_type": "PriorState", + "name": "Diagnose_Diabetes" + } + }, + { + "transition": "Diagnose_Prediabetes" + } + ] + }, + "Diagnose_Prediabetes": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "714628002", + "display": "Prediabetes (finding)" + } + ], + "assign_to_attribute": "diabetes_stage", + "direct_transition": "Check_CarePlan" + }, + "Set_Severity_1": { + "type": "SetAttribute", + "attribute": "diabetes_severity", + "value": 1, + "direct_transition": "Diagnose_Diabetes" + }, + "Set_Severity_2": { + "type": "SetAttribute", + "attribute": "diabetes_severity", + "value": 2, + "direct_transition": "Diagnose_Diabetes" + }, + "Set_Severity_3": { + "type": "SetAttribute", + "attribute": "diabetes_severity", + "value": 3, + "direct_transition": "Diagnose_Diabetes" + }, + "Set_Severity_4": { + "type": "SetAttribute", + "attribute": "diabetes_severity", + "value": 4, + "direct_transition": "Diagnose_Diabetes" + }, + "Diagnose_Diabetes": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "44054006", + "display": "Diabetes mellitus type 2 (disorder)" + } + ], + "assign_to_attribute": "diabetes_stage", + "direct_transition": "Check_CarePlan" + }, + "Check_CarePlan": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Active CarePlan", + "codes": [ + { + "system": "SNOMED-CT", + "code": "735985000", + "display": "Diabetes self management plan (record artifact)" + } + ] + }, + "transition": "Prescribe_Medications" + }, + { + "transition": "Diabetic_CarePlan" + } + ] + }, + "Diabetic_CarePlan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "735985000", + "display": "Diabetes self management plan (record artifact)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "160670007", + "display": "Diabetic diet (finding)" + }, + { + "system": "SNOMED-CT", + "code": "229065009", + "display": "Exercise therapy (regime/therapy)" + } + ], + "goals": [ + { + "observation": { + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c total in Blood" + } + ], + "operator": "<", + "value": 7 + }, + "addresses": [ + "diabetes_stage" + ] + }, + { + "observation": { + "codes": [ + { + "system": "LOINC", + "code": "2339-0", + "display": "Glucose [Mass/volume] in Blood" + } + ], + "operator": "<", + "value": 108 + }, + "addresses": [ + "diabetes_stage" + ] + }, + { + "text": "Maintain blood pressure below 140/90 mmHg", + "addresses": [ + "diabetes_stage" + ] + }, + { + "text": "Improve and maintenance of optimal foot health: aim at early detection of peripheral vascular problems and neuropathy presumed due to diabetes; and prevention of diabetic foot ulcer, gangrene", + "addresses": [ + "diabetes_stage" + ] + }, + { + "text": "Address patient knowledge deficit on diabetic self-care", + "addresses": [ + "diabetes_stage" + ] + } + ], + "remarks": [ + "based on https://github.com/clinical-cloud/sample-careplans" + ], + "reason": "diabetes_stage", + "direct_transition": "Glucose_Monitor" + }, + "Prescribe_Medications": { + "type": "CallSubmodule", + "submodule": "metabolic_syndrome/medications", + "direct_transition": "DME and Supplies" + }, + "Check_Complications": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 1 + }, + "distributions": [ + { + "transition": "Check_Anemia_Exist", + "distribution": 0.084 + }, + { + "transition": "Check_Eye_Conditions", + "distribution": 0.916 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 2 + }, + "distributions": [ + { + "transition": "Check_Anemia_Exist", + "distribution": 0.121 + }, + { + "transition": "Check_Eye_Conditions", + "distribution": 0.879 + } + ] + }, + { + "distributions": [ + { + "transition": "Check_Anemia_Exist", + "distribution": 0.174 + }, + { + "transition": "Check_Eye_Conditions", + "distribution": 0.826 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 3 + } + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": "==", + "value": 4 + }, + "distributions": [ + { + "transition": "Check_Anemia_Exist", + "distribution": 0.503 + }, + { + "transition": "Check_Eye_Conditions", + "distribution": 0.497 + } + ] + } + ], + "remarks": [ + "The prevalence of anemia increased with stage of CKD, from 8.4% at stage 1 to 53.4% at stage 5 - see https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3879360/" + ] + }, + "check CKD": { + "type": "CallSubmodule", + "submodule": "metabolic_syndrome/kidney_conditions", + "direct_transition": "Check_Diabetes" + }, + "Check_Eye_Conditions": { + "type": "CallSubmodule", + "submodule": "metabolic_syndrome/eye_conditions", + "direct_transition": "Check_Neuropathy" + }, + "Check_Neuropathy": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "neuropathy", + "operator": "is not nil" + }, + { + "condition_type": "Not", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "368581000119106", + "display": "Neuropathy due to type 2 diabetes mellitus (disorder)" + } + ] + } + } + ] + }, + "transition": "Diagnose_Neuropathy" + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "neuropathy", + "operator": "is nil" + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "368581000119106", + "display": "Neuropathy due to type 2 diabetes mellitus (disorder)" + } + ] + } + ] + }, + "transition": "End_Neuropathy" + }, + { + "transition": "Consider_Procedures" + } + ] + }, + "Diagnose_Neuropathy": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "368581000119106", + "display": "Neuropathy due to type 2 diabetes mellitus (disorder)" + } + ], + "direct_transition": "Consider_Procedures", + "assign_to_attribute": "diabetic_neuropathy" + }, + "End_Neuropathy": { + "type": "ConditionEnd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "368581000119106", + "display": "Neuropathy due to type 2 diabetes mellitus (disorder)" + } + ], + "direct_transition": "Consider_Procedures" + }, + "Consider_Procedures": { + "type": "Simple", + "direct_transition": "Potential_Amputation" + }, + "Potential_Amputation": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Amputation_Necessary", + "within": { + "quantity": 1, + "unit": "years" + } + }, + "remarks": [ + "dialysis means this check is made every few days which can skew results.", + "we only want to consider amputation once a year" + ], + "transition": "No_Amputation_Necessary" + }, + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "368581000119106", + "display": "Neuropathy due to type 2 diabetes mellitus (disorder)" + } + ] + }, + "distributions": [ + { + "distribution": 0.0025, + "transition": "Amputation_Necessary" + }, + { + "distribution": 0.9975, + "transition": "No_Amputation_Necessary" + } + ], + "remarks": [ + "In 2010, about 73,000 non-traumatic lower-limb amputations were performed in adults aged 20 years or older with diagnosed diabetes.", + "28.9 million adults had diagnosed diabetes. 73,000/ 28,900,000 = 0.0025 or 0.25% per year", + "https://www.cdc.gov/diabetes/data/statistics/2014statisticsreport.html" + ] + }, + { + "transition": "No_Amputation_Necessary" + } + ] + }, + "Amputation_Necessary": { + "type": "SetAttribute", + "attribute": "diabetes_amputation_necessary", + "value": true, + "direct_transition": "Schedule_Followup" + }, + "No_Amputation_Necessary": { + "type": "SetAttribute", + "attribute": "diabetes_amputation_necessary", + "value": false, + "direct_transition": "Living_With_Diabetes" + }, + "Schedule_Followup": { + "type": "EncounterEnd", + "direct_transition": "Amputations" + }, + "Amputations": { + "type": "CallSubmodule", + "submodule": "metabolic_syndrome/amputations", + "direct_transition": "Living_With_Diabetes" + }, + "Living_With_Diabetes": { + "type": "Simple", + "direct_transition": "End_Wellness_Encounter" + }, + "Anemia_Submodule": { + "type": "CallSubmodule", + "submodule": "anemia/anemia_sub", + "direct_transition": "Check_Eye_Conditions" + }, + "Check_Anemia_Exist": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Anemia_Submodule", + "condition": { + "condition_type": "Attribute", + "attribute": "anemia", + "operator": "is nil" + } + }, + { + "transition": "Check_Eye_Conditions" + } + ], + "remarks": [ + "The prevalence of anemia increased with stage of CKD, from 8.4% at stage 1 to 53.4% at stage 5 - see https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3879360/", + "", + "" + ] + }, + "End_Wellness_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Wellness_Encounter" + }, + "Glucose_Monitor": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "337414009", + "display": "Blood glucose meter (physical object)" + }, + "direct_transition": "Prescribe_Medications" + }, + "DME and Supplies": { + "type": "CallSubmodule", + "submodule": "metabolic_syndrome/dme_supplies", + "direct_transition": "Check_Complications" + }, + "Metabolic_Syndrome_Review_Reason": { + "type": "SetAttribute", + "attribute": "metabolic_syndrome_review", + "direct_transition": "Wellness_Encounter", + "value_code": { + "system": "SNOMED-CT", + "code": "763288003", + "display": "Patient review (procedure)" + } + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/metabolic_syndrome_disease.json b/src/main/resources/modules/metabolic_syndrome_disease.json new file mode 100644 index 0000000..631f551 --- /dev/null +++ b/src/main/resources/modules/metabolic_syndrome_disease.json @@ -0,0 +1,732 @@ +{ + "name": "Metabolic Syndrome Disease Progression", + "remarks": [], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Initial_Eye_Health" + }, + "Initial_Eye_Health": { + "type": "SetAttribute", + "attribute": "diabetic_eye_damage", + "value": 0, + "direct_transition": "Initial_Nerve_Health" + }, + "Initial_Nerve_Health": { + "type": "SetAttribute", + "attribute": "diabetic_nerve_damage", + "value": 0, + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years" + }, + "conditional_transition": [ + { + "transition": "Veteran_Diabetes_Prevalence", + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "is not nil" + } + }, + { + "transition": "Non_Veteran_Diabetes_Prevalence" + } + ] + }, + "Eventual_Prediabetes": { + "type": "Delay", + "range": { + "low": 0, + "high": 37, + "unit": "years" + }, + "remarks": [ + "we assume that diabetes and prediabetes generally onset between the ages of 18-55" + ], + "direct_transition": "Onset_Prediabetes" + }, + "Eventual_Diabetes": { + "type": "SetAttribute", + "attribute": "time_until_diabetes_onset", + "direct_transition": "Already_age_18", + "remarks": [ + "we assume that diabetes and prediabetes generally onset between the ages of 18-55", + "this tracks a little lower so that we can diagnose prediabetes early and then diabetes later", + "there is little info on how many patients with prediabetes progress to diabetes", + "so we assume that 38% of patients with diabetes had a prediabetes diagnosis" + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 55, + "standardDeviation": 15 + } + } + }, + "Onset_Prediabetes": { + "type": "SetAttribute", + "attribute": "prediabetes", + "value": true, + "direct_transition": "No_Diabetes" + }, + "No_Diabetes": { + "type": "Terminal" + }, + "Onset_Prediabetes_Towards_Diabetes": { + "type": "SetAttribute", + "attribute": "prediabetes", + "value": true, + "direct_transition": "Onset_Diabetes" + }, + "Onset_Diabetes": { + "type": "SetAttribute", + "attribute": "diabetes", + "value": true, + "direct_transition": "Chance_to_Onset_Hypertension_at_Diabetes_Onset" + }, + "Chance_to_Onset_Hypertension_at_Diabetes_Onset": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "hypertension", + "operator": "==", + "value": true + }, + "transition": "Retinopathy_Progression" + }, + { + "distributions": [ + { + "distribution": 0.423, + "transition": "Onset_Hypertension_with_Diabetes" + }, + { + "distribution": 0.577, + "transition": "No_Hypertension_With_Diabetes" + } + ], + "remarks": [ + "59.4% of adults with diabetes have hypertension http://www.cdc.gov/MMWr/preview/mmwrhtml/su6203a24.htm#Tab", + "but we already gave 29.6% of adults hypertension above, so we only give 42.3% hypertension here, not 59%", + ".296 + .704(x) = .594, x = .423" + ] + } + ] + }, + "Onset_Hypertension_with_Diabetes": { + "type": "SetAttribute", + "attribute": "hypertension", + "value": true, + "direct_transition": "Retinopathy_Progression" + }, + "No_Hypertension_With_Diabetes": { + "type": "SetAttribute", + "attribute": "hypertension", + "value": false, + "direct_transition": "Retinopathy_Progression" + }, + "Diabetes_Progression": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "direct_transition": "Retinopathy_Progression" + }, + "Retinopathy_Progression": { + "type": "Simple", + "remarks": [ + "In the USA, studies estimate that 28.5–40.3 % of patients with type 2 diabetes had DR, and 4.4–8.2 % of them had VTDR", + "https://www.ncbi.nlm.nih.gov/pubmed/15078674", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4657234/", + "https://eandv.biomedcentral.com/articles/10.1186/s40662-015-0026-2", + "Currently the %s below do not take into consideration any medications the patient may be taking" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "diabetic_eye_damage", + "operator": "==", + "value": 0 + }, + "distributions": [ + { + "distribution": 0.998, + "transition": "Neuropathy_Progression" + }, + { + "distribution": 0.002, + "transition": "Set_Mild_Eye_Damage" + } + ], + "remarks": [ + "Prevalence of DR = ~40%, we assume an estimated lifespan of ~20 yrs after diagnosis", + ".2%/month over 20 yrs, 1- (.998 ^ (12*20)) = .38 " + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "diabetic_eye_damage", + "operator": "==", + "value": 1 + }, + "distributions": [ + { + "distribution": 0.9915, + "transition": "Set_Mild_Eye_Damage" + }, + { + "distribution": 0.0085, + "transition": "Set_Moderate_Eye_Damage" + } + ], + "remarks": [ + "Roughly 10% chance of DR progression per year == 0.85% chance per month", + "https://eandv.biomedcentral.com/articles/10.1186/s40662-015-0026-2 (Table 3)" + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "diabetic_eye_damage", + "operator": "==", + "value": 2 + }, + "distributions": [ + { + "distribution": 0.9975, + "transition": "Set_Moderate_Eye_Damage" + }, + { + "distribution": 0.0025, + "transition": "Set_Severe_Eye_Damage" + } + ], + "remarks": [ + "Roughly 3% progression from NPDR to PDR per year == .25% per month", + "https://eandv.biomedcentral.com/articles/10.1186/s40662-015-0026-2 (Table 3 again)" + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "diabetic_eye_damage", + "operator": "==", + "value": 3 + }, + "transition": "Set_Severe_Eye_Damage" + } + ] + }, + "Set_Mild_Eye_Damage": { + "type": "SetAttribute", + "attribute": "diabetic_eye_damage", + "value": 1, + "direct_transition": "Mild_Eye_Damage_Symptom" + }, + "Mild_Eye_Damage_Symptom": { + "type": "Symptom", + "symptom": "Blurred Vision", + "range": { + "low": 1, + "high": 60 + }, + "direct_transition": "Set_Retinopathy" + }, + "Set_Retinopathy": { + "type": "SetAttribute", + "attribute": "retinopathy", + "value": true, + "direct_transition": "Neuropathy_Progression" + }, + "Set_Moderate_Eye_Damage": { + "type": "SetAttribute", + "attribute": "diabetic_eye_damage", + "value": 2, + "direct_transition": "Moderate_Eye_Damage_Symptom" + }, + "Moderate_Eye_Damage_Symptom": { + "type": "Symptom", + "symptom": "Blurred Vision", + "range": { + "low": 20, + "high": 100 + }, + "direct_transition": "Set_Nonproliferative_Retinopathy" + }, + "Set_Nonproliferative_Retinopathy": { + "type": "SetAttribute", + "attribute": "nonproliferative_retinopathy", + "value": true, + "direct_transition": "Chance_of_Macular_Edema" + }, + "Set_Severe_Eye_Damage": { + "type": "SetAttribute", + "attribute": "diabetic_eye_damage", + "value": 3, + "direct_transition": "Severe_Eye_Damage_Symptom" + }, + "Severe_Eye_Damage_Symptom": { + "type": "Symptom", + "symptom": "Blurred Vision", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Set_Proliferative_Retinopathy" + }, + "Set_Proliferative_Retinopathy": { + "type": "SetAttribute", + "attribute": "proliferative_retinopathy", + "value": true, + "direct_transition": "Chance_of_Macular_Edema" + }, + "Chance_of_Macular_Edema": { + "type": "Simple", + "remarks": [ + "Incidence of DME is very low. Very rough estimate == ~1% per year.", + "only around 20% of patients will hit this state, so we scale up to about 5% per year among those patients", + "5% / yr = .4% / month", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4657234/table/Tab5/" + ], + "distributed_transition": [ + { + "distribution": 0.004, + "transition": "Set_Macular_Edema" + }, + { + "distribution": 0.996, + "transition": "Chance_of_Blindness" + } + ] + }, + "Set_Macular_Edema": { + "type": "SetAttribute", + "attribute": "macular_edema", + "value": true, + "direct_transition": "Chance_of_Blindness" + }, + "Chance_of_Blindness": { + "type": "Simple", + "remarks": [ + "estimated prevalence of blindness is ~1% in MA; among diabetics we estimate 3%", + "3% / 30 yrs = ~ 0.01 % / month", + "http://www.idf.org/sites/default/files/IDF%2520Toolkit_Backgrounder_FINAL.pdf" + ], + "distributed_transition": [ + { + "distribution": 0.0001, + "transition": "Set_Blindness" + }, + { + "distribution": 0.9999, + "transition": "Neuropathy_Progression" + } + ] + }, + "Set_Blindness": { + "type": "SetAttribute", + "attribute": "blindness", + "value": true, + "direct_transition": "Neuropathy_Progression" + }, + "Neuropathy_Progression": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "diabetic_nerve_damage", + "operator": "==", + "value": 0 + }, + "distributions": [ + { + "distribution": 0.9971, + "transition": "Loop_back_to_Start" + }, + { + "distribution": 0.0029, + "transition": "Set_Mild_Nerve_Damage" + } + ], + "remarks": [ + "DPN affects as many as 1/2 of all patients with diabetes.", + "50% over 20 years == ~ 0.29% per month" + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "diabetic_nerve_damage", + "operator": "==", + "value": 1 + }, + "distributions": [ + { + "distribution": 0.997, + "transition": "Set_Mild_Nerve_Damage" + }, + { + "distribution": 0.003, + "transition": "Set_Moderate_Nerve_Damage" + } + ], + "remarks": [ + "at/beyond this point I can't find any well-defined #s on progression of diabetic neuropathy", + "0.3% / month --> 3.5% / yr --> 66% over 30 yrs" + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "diabetic_nerve_damage", + "operator": "==", + "value": 2 + }, + "distributions": [ + { + "distribution": 0.997, + "transition": "Set_Moderate_Nerve_Damage" + }, + { + "distribution": 0.003, + "transition": "Set_Severe_Nerve_Damage" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "diabetic_nerve_damage", + "operator": "==", + "value": 3 + }, + "transition": "Set_Severe_Nerve_Damage" + } + ] + }, + "Set_Mild_Nerve_Damage": { + "type": "SetAttribute", + "attribute": "diabetic_nerve_damage", + "value": 1, + "direct_transition": "Set_Neuropathy" + }, + "Set_Neuropathy": { + "type": "SetAttribute", + "attribute": "neuropathy", + "value": true, + "direct_transition": "Mild_Nerve_Damage_Symptom" + }, + "Mild_Nerve_Damage_Symptom": { + "type": "Symptom", + "symptom": "Tingling in Hands and Feet", + "range": { + "low": 1, + "high": 80 + }, + "direct_transition": "Loop_back_to_Start" + }, + "Set_Moderate_Nerve_Damage": { + "type": "SetAttribute", + "attribute": "diabetic_nerve_damage", + "value": 2, + "direct_transition": "Moderate_Nerve_Damage_Symptom" + }, + "Moderate_Nerve_Damage_Symptom": { + "type": "Symptom", + "symptom": "Tingling in Hands and Feet", + "range": { + "low": 20, + "high": 100 + }, + "direct_transition": "Loop_back_to_Start" + }, + "Set_Severe_Nerve_Damage": { + "type": "SetAttribute", + "attribute": "diabetic_nerve_damage", + "value": 3, + "direct_transition": "Severe_Nerve_Damage_Symptom" + }, + "Severe_Nerve_Damage_Symptom": { + "type": "Symptom", + "symptom": "Tingling in Hands and Feet", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Loop_back_to_Start" + }, + "Loop_back_to_Start": { + "type": "Simple", + "direct_transition": "Diabetes_Progression" + }, + "Non_Veteran_Diabetes_Prevalence": { + "type": "Simple", + "remarks": [ + "diabetes prevalence %s based on the following", + "http://www.mass.gov/eohhs/gov/departments/dph/programs/community-health/diabetes/facts/diabetes-statistics.html", + "prediabetes prevalence is ~38 % overall and similar among most races but slightly lower among Native americans", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3830901/", + "http://www.diabetes.org/living-with-diabetes/treatment-and-care/high-risk-populations/treatment-american-indians.html", + "It is estimated that 27.8% of people with diabetes are undiagnosed", + "https://www.cdc.gov/diabetes/pdfs/data/2014-report-estimates-of-diabetes-and-its-burden-in-the-united-states.pdf", + "therefore the diabetes %s are all scaled up by a factor of 1.278, ", + "so that the total % of people that eventually get diabetes is higher, but the current population with diabetes should be around 8.8%", + "because there is a delay before diabetes onsets", + "similarly the prediabetes #s are scaled up (but by a little less) so the current prediabetic % at any time is ~38%" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Race", + "race": "White" + }, + "distributions": [ + { + "distribution": 0.25, + "transition": "Eventual_Diabetes", + "remarks": [ + "0.065 * 1.278" + ] + }, + { + "distribution": 0.45, + "transition": "Eventual_Prediabetes", + "remarks": [ + "0.38 * 1.2" + ] + }, + { + "distribution": 0.3, + "transition": "No_Diabetes" + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Hispanic" + }, + "distributions": [ + { + "distribution": 0.25, + "transition": "Eventual_Diabetes", + "remarks": [ + "0.142 * 1.278" + ] + }, + { + "distribution": 0.45, + "transition": "Eventual_Prediabetes", + "remarks": [ + "0.38 * 1.2" + ] + }, + { + "distribution": 0.3, + "transition": "No_Diabetes" + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Black" + }, + "distributions": [ + { + "distribution": 0.25, + "transition": "Eventual_Diabetes", + "remarks": [ + "0.128 * 1.278" + ] + }, + { + "distribution": 0.45, + "transition": "Eventual_Prediabetes", + "remarks": [ + "0.38 * 1.2" + ] + }, + { + "distribution": 0.3, + "transition": "No_Diabetes" + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Asian" + }, + "distributions": [ + { + "distribution": 0.25, + "transition": "Eventual_Diabetes", + "remarks": [ + "0.16 * 1.278" + ] + }, + { + "distribution": 0.45, + "transition": "Eventual_Prediabetes", + "remarks": [ + "0.38 * 1.2" + ] + }, + { + "distribution": 0.3, + "transition": "No_Diabetes" + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Native" + }, + "distributions": [ + { + "distribution": 0.25, + "transition": "Eventual_Diabetes", + "remarks": [ + "0.143 * 1.278" + ] + }, + { + "distribution": 0.36, + "transition": "Eventual_Prediabetes", + "remarks": [ + "0.30 * 1.2" + ] + }, + { + "distribution": 0.39, + "transition": "No_Diabetes" + } + ] + }, + { + "remarks": [ + "for Other races, just fall back to overall state %s" + ], + "distributions": [ + { + "distribution": 0.25, + "transition": "Eventual_Diabetes", + "remarks": [ + "0.08 * 1.278" + ] + }, + { + "distribution": 0.45, + "transition": "Eventual_Prediabetes", + "remarks": [ + "0.38 * 1.2" + ] + }, + { + "distribution": 0.3, + "transition": "No_Diabetes" + } + ] + } + ] + }, + "Veteran_Diabetes_Prevalence": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Eventual_Diabetes", + "distribution": 0.25 + }, + { + "transition": "Eventual_Prediabetes", + "distribution": 0.45 + }, + { + "transition": "No_Diabetes", + "distribution": 0.3 + } + ] + }, + "Onset_Prediabetes_2": { + "type": "SetAttribute", + "attribute": "prediabetes", + "direct_transition": "Delay_Another_Year", + "value": true + }, + "Countdown to Diabetes": { + "type": "Counter", + "attribute": "time_until_diabetes_onset", + "action": "decrement", + "distributed_transition": [ + { + "transition": "Onset_Prediabetes_2", + "distribution": 0.05 + }, + { + "transition": "Delay_Another_Year", + "distribution": 0.95 + } + ] + }, + "Already_age_18": { + "type": "Counter", + "attribute": "time_until_diabetes_onset", + "action": "decrement", + "conditional_transition": [ + { + "transition": "Onset_Prediabetes_Towards_Diabetes", + "condition": { + "condition_type": "Attribute", + "attribute": "time_until_diabetes_onset", + "operator": "<=", + "value": 0 + } + }, + { + "transition": "Countdown to Diabetes" + } + ], + "amount": 18 + }, + "Delay_Another_Year": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "unit": "years", + "conditional_transition": [ + { + "transition": "Onset_Prediabetes_Towards_Diabetes", + "condition": { + "condition_type": "Attribute", + "attribute": "time_until_diabetes_onset", + "operator": "<=", + "value": 0 + } + }, + { + "transition": "Countdown to Diabetes" + } + ] + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/migraine.json b/src/main/resources/modules/migraine.json new file mode 100644 index 0000000..6e649d6 --- /dev/null +++ b/src/main/resources/modules/migraine.json @@ -0,0 +1,42 @@ +{ + "name": "Migraine", + "gmf_version": 2, + "remarks": [ + "Basic module for Migraine", + "Auto-generated as a placeholder" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Diagnosis" + }, + "Diagnosis": { + "type": "ConditionOnset", + "target_encounter": "Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "00000", + "display": "Migraine" + } + ], + "direct_transition": "Encounter" + }, + "Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "11111", + "display": "Encounter for Migraine" + } + ], + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/multiple_sclerosis.json b/src/main/resources/modules/multiple_sclerosis.json new file mode 100644 index 0000000..33c8466 --- /dev/null +++ b/src/main/resources/modules/multiple_sclerosis.json @@ -0,0 +1,418 @@ +{ + "name": "Multiple Sclerosis", + "gmf_version": 2, + "remarks": [ + "Multiple Sclerosis (MS) is a chronic autoimmune disease of the central nervous system characterized by inflammation, demyelination, and axonal degeneration.", + "It typically presents between ages 20-40 and is more common in women than men.", + "The disease course can follow several patterns: relapsing-remitting, secondary progressive, primary progressive, or progressive-relapsing.", + "References: https://www.nationalmssociety.org/What-is-MS", + "https://www.mayoclinic.org/diseases-conditions/multiple-sclerosis/symptoms-causes/syc-20350269", + "https://www.ninds.nih.gov/health-information/disorders/multiple-sclerosis" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Delay_For_Potential_MS_Onset" + }, + "Delay_For_Potential_MS_Onset": { + "type": "Delay", + "range": { + "low": 15, + "high": 30, + "unit": "years" + }, + "distributed_transition": [ + { + "transition": "MS_Onset", + "distribution": 0.0015 + }, + { + "transition": "Terminal", + "distribution": 0.9985 + } + ] + }, + "MS_Onset": { + "type": "ConditionOnset", + "assign_to_attribute": "multiple_sclerosis", + "target_encounter": "MS_Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "24700007", + "display": "Multiple sclerosis" + }, + { + "system": "ICD-10-CM", + "code": "G35", + "display": "Multiple sclerosis" + } + ], + "direct_transition": "Determine_MS_Type" + }, + "Determine_MS_Type": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Relapsing_Remitting_MS", + "distribution": 0.85 + }, + { + "transition": "Primary_Progressive_MS", + "distribution": 0.15 + } + ] + }, + "Relapsing_Remitting_MS": { + "type": "SetAttribute", + "attribute": "ms_type", + "value": "relapsing_remitting", + "direct_transition": "MS_Initial_Symptoms" + }, + "Primary_Progressive_MS": { + "type": "SetAttribute", + "attribute": "ms_type", + "value": "primary_progressive", + "direct_transition": "MS_Initial_Symptoms" + }, + "MS_Initial_Symptoms": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 30, + "high": 80 + }, + "direct_transition": "Vision_Problems" + }, + "Vision_Problems": { + "type": "Symptom", + "symptom": "Vision Problems", + "range": { + "low": 20, + "high": 60 + }, + "direct_transition": "Numbness_or_Tingling" + }, + "Numbness_or_Tingling": { + "type": "Symptom", + "symptom": "Numbness or Tingling", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "MS_Symptom_Progression" + }, + "MS_Symptom_Progression": { + "type": "Delay", + "range": { + "low": 2, + "high": 12, + "unit": "months" + }, + "direct_transition": "MS_Diagnosis_Encounter" + }, + "MS_Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "multiple_sclerosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "270427003", + "display": "Patient-initiated encounter" + } + ], + "direct_transition": "MS_Diagnosis" + }, + "MS_Diagnosis": { + "type": "DiagnosticReport", + "number_of_observations": 0, + "codes": [ + { + "system": "SNOMED-CT", + "code": "386807006", + "display": "Multiple sclerosis screening test" + } + ], + "direct_transition": "Order_MRI" + }, + "Order_MRI": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698354004", + "display": "Magnetic resonance imaging of brain and brainstem" + } + ], + "duration": { + "low": 45, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "Lumbar_Puncture" + }, + "Lumbar_Puncture": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "236423003", + "display": "Lumbar puncture" + } + ], + "duration": { + "low": 20, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "MS_Confirmed_Diagnosis" + }, + "MS_Confirmed_Diagnosis": { + "type": "ConditionOnset", + "assign_to_attribute": "confirmed_ms", + "codes": [ + { + "system": "SNOMED-CT", + "code": "24700007", + "display": "Multiple sclerosis" + }, + { + "system": "ICD-10-CM", + "code": "G35", + "display": "Multiple sclerosis" + } + ], + "direct_transition": "MS_Treatment_Plan" + }, + "MS_Treatment_Plan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736271009", + "display": "Care plan for multiple sclerosis" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "266694003", + "display": "Follow-up visit" + }, + { + "system": "SNOMED-CT", + "code": "61480009", + "display": "Medication therapy" + } + ], + "direct_transition": "Prescribe_Disease_Modifying_Therapy" + }, + "Prescribe_Disease_Modifying_Therapy": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "ms_type", + "operator": "==", + "value": "relapsing_remitting" + }, + "transition": "Prescribe_RRMS_Medication" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ms_type", + "operator": "==", + "value": "primary_progressive" + }, + "transition": "Prescribe_PPMS_Medication" + } + ] + }, + "Prescribe_RRMS_Medication": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "1310414", + "display": "dimethyl fumarate 240 MG Delayed Release Oral Capsule" + } + ], + "reason": "multiple_sclerosis", + "direct_transition": "Follow_Up_Encounters" + }, + "Prescribe_PPMS_Medication": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "1926366", + "display": "ocrelizumab 300 MG/10ML [Ocrevus]" + } + ], + "reason": "multiple_sclerosis", + "direct_transition": "Follow_Up_Encounters" + }, + "Follow_Up_Encounters": { + "type": "Delay", + "range": { + "low": 3, + "high": 6, + "unit": "months" + }, + "direct_transition": "MS_Follow_Up" + }, + "MS_Follow_Up": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "multiple_sclerosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter" + } + ], + "direct_transition": "Check_For_MS_Progression" + }, + "Check_For_MS_Progression": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "ms_type", + "operator": "==", + "value": "relapsing_remitting" + }, + "transition": "Check_For_RRMS_Progression" + }, + { + "transition": "Check_For_PPMS_Progression" + } + ] + }, + "Check_For_RRMS_Progression": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "RRMS_Progresses_To_SPMS", + "distribution": 0.05 + }, + { + "transition": "RRMS_Continues", + "distribution": 0.95 + } + ] + }, + "RRMS_Progresses_To_SPMS": { + "type": "SetAttribute", + "attribute": "ms_type", + "value": "secondary_progressive", + "direct_transition": "Secondary_Progressive_MS_Diagnosis" + }, + "Secondary_Progressive_MS_Diagnosis": { + "type": "ConditionOnset", + "assign_to_attribute": "secondary_progressive_ms", + "codes": [ + { + "system": "SNOMED-CT", + "code": "425519003", + "display": "Secondary progressive multiple sclerosis" + }, + { + "system": "ICD-10-CM", + "code": "G35", + "display": "Multiple sclerosis" + } + ], + "direct_transition": "Update_MS_Medications" + }, + "RRMS_Continues": { + "type": "Simple", + "direct_transition": "Potential_MS_Relapse" + }, + "Check_For_PPMS_Progression": { + "type": "Simple", + "direct_transition": "MS_Progression_Delay" + }, + "Potential_MS_Relapse": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "MS_Relapse", + "distribution": 0.2 + }, + { + "transition": "MS_Progression_Delay", + "distribution": 0.8 + } + ] + }, + "MS_Relapse": { + "type": "ConditionOnset", + "assign_to_attribute": "ms_relapse", + "codes": [ + { + "system": "SNOMED-CT", + "code": "7524003", + "display": "Exacerbation of multiple sclerosis" + } + ], + "direct_transition": "MS_Relapse_Treatment" + }, + "MS_Relapse_Treatment": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "312617", + "display": "Methylprednisolone 500 MG Injection" + } + ], + "reason": "ms_relapse", + "duration": { + "low": 3, + "high": 5, + "unit": "days" + }, + "direct_transition": "MS_Relapse_Resolves" + }, + "MS_Relapse_Resolves": { + "type": "ConditionEnd", + "referenced_by_attribute": "ms_relapse", + "direct_transition": "MS_Progression_Delay" + }, + "Update_MS_Medications": { + "type": "MedicationEnd", + "medication_order": "Prescribe_RRMS_Medication", + "direct_transition": "Prescribe_SPMS_Medication" + }, + "Prescribe_SPMS_Medication": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "1926366", + "display": "ocrelizumab 300 MG/10ML [Ocrevus]" + } + ], + "reason": "secondary_progressive_ms", + "direct_transition": "MS_Progression_Delay" + }, + "MS_Progression_Delay": { + "type": "Delay", + "range": { + "low": 3, + "high": 6, + "unit": "months" + }, + "direct_transition": "MS_Follow_Up" + }, + "Terminal": { + "type": "Terminal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/multiple_valve_diseases.json b/src/main/resources/modules/multiple_valve_diseases.json new file mode 100644 index 0000000..26ee5e4 --- /dev/null +++ b/src/main/resources/modules/multiple_valve_diseases.json @@ -0,0 +1,472 @@ +{ + "name": "Multiple Valve Diseases", + "remarks": [ + "Multiple valve disease refers to the presence of pathology in more than one heart valve.", + "This can include combinations of stenosis and/or regurgitation affecting mitral, aortic, tricuspid, or pulmonary valves.", + "Common combinations include mitral and aortic valve disease, often due to rheumatic heart disease or degenerative processes.", + "The clinical presentation depends on which valves are involved and the severity of each lesion.", + "Information sources:", + "https://www.ncbi.nlm.nih.gov/books/NBK553115/", + "https://www.heart.org/en/health-topics/heart-valve-problems-and-disease", + "https://www.ahajournals.org/doi/10.1161/CIR.0000000000000029" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + "Multiple valve disease is less common than single valve disease.", + "Rheumatic heart disease remains the most common cause globally.", + "In developed countries, degenerative causes are becoming more prevalent.", + "Incidence increases with age, particularly after 65 years." + ], + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 40, + "unit": "years" + }, + "direct_transition": "Multiple_Valve_Disease_Probability" + }, + "Multiple_Valve_Disease_Probability": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 75, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.04, + "transition": "Determine_Valve_Disease_Type" + }, + { + "distribution": 0.96, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 65, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.025, + "transition": "Determine_Valve_Disease_Type" + }, + { + "distribution": 0.975, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 50, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.015, + "transition": "Determine_Valve_Disease_Type" + }, + { + "distribution": 0.985, + "transition": "Terminal" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.005, + "transition": "Determine_Valve_Disease_Type" + }, + { + "distribution": 0.995, + "transition": "Terminal" + } + ] + } + ] + }, + "Determine_Valve_Disease_Type": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.5, + "transition": "Mitral_Aortic_Disease" + }, + { + "distribution": 0.25, + "transition": "Mitral_Tricuspid_Disease" + }, + { + "distribution": 0.15, + "transition": "Aortic_Tricuspid_Disease" + }, + { + "distribution": 0.1, + "transition": "Triple_Valve_Disease" + } + ] + }, + "Mitral_Aortic_Disease": { + "type": "SetAttribute", + "attribute": "valve_disease_type", + "value": "mitral_aortic", + "direct_transition": "Determine_Etiology" + }, + "Mitral_Tricuspid_Disease": { + "type": "SetAttribute", + "attribute": "valve_disease_type", + "value": "mitral_tricuspid", + "direct_transition": "Determine_Etiology" + }, + "Aortic_Tricuspid_Disease": { + "type": "SetAttribute", + "attribute": "valve_disease_type", + "value": "aortic_tricuspid", + "direct_transition": "Determine_Etiology" + }, + "Triple_Valve_Disease": { + "type": "SetAttribute", + "attribute": "valve_disease_type", + "value": "triple_valve", + "direct_transition": "Determine_Etiology" + }, + "Determine_Etiology": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.4, + "transition": "Rheumatic_Etiology" + }, + { + "distribution": 0.35, + "transition": "Degenerative_Etiology" + }, + { + "distribution": 0.15, + "transition": "Infective_Etiology" + }, + { + "distribution": 0.1, + "transition": "Congenital_Etiology" + } + ] + }, + "Rheumatic_Etiology": { + "type": "SetAttribute", + "attribute": "valve_disease_etiology", + "value": "rheumatic", + "direct_transition": "Initial_Symptoms" + }, + "Degenerative_Etiology": { + "type": "SetAttribute", + "attribute": "valve_disease_etiology", + "value": "degenerative", + "direct_transition": "Initial_Symptoms" + }, + "Infective_Etiology": { + "type": "SetAttribute", + "attribute": "valve_disease_etiology", + "value": "infective", + "direct_transition": "Initial_Symptoms" + }, + "Congenital_Etiology": { + "type": "SetAttribute", + "attribute": "valve_disease_etiology", + "value": "congenital", + "direct_transition": "Initial_Symptoms" + }, + "Initial_Symptoms": { + "type": "Delay", + "range": { + "low": 1, + "high": 5, + "unit": "years" + }, + "direct_transition": "Symptom_Onset" + }, + "Symptom_Onset": { + "type": "Symptom", + "symptom": "Dyspnea", + "cause": "Multiple_Valve_Disease", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Fatigue_Symptom" + }, + "Fatigue_Symptom": { + "type": "Symptom", + "symptom": "Fatigue", + "cause": "Multiple_Valve_Disease", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Chest_Pain_Symptom" + }, + "Chest_Pain_Symptom": { + "type": "Symptom", + "symptom": "Chest Pain", + "cause": "Multiple_Valve_Disease", + "range": { + "low": 0, + "high": 30 + }, + "direct_transition": "Palpitations_Symptom" + }, + "Palpitations_Symptom": { + "type": "Symptom", + "symptom": "Palpitations", + "cause": "Multiple_Valve_Disease", + "range": { + "low": 0, + "high": 40 + }, + "direct_transition": "Symptom_Progression" + }, + "Symptom_Progression": { + "type": "Delay", + "range": { + "low": 3, + "high": 12, + "unit": "months" + }, + "direct_transition": "Worsen_Symptoms" + }, + "Worsen_Symptoms": { + "type": "Symptom", + "symptom": "Dyspnea", + "cause": "Multiple_Valve_Disease", + "range": { + "low": 30, + "high": 80 + }, + "direct_transition": "Worsen_Fatigue" + }, + "Worsen_Fatigue": { + "type": "Symptom", + "symptom": "Fatigue", + "cause": "Multiple_Valve_Disease", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "Seek_Care" + }, + "Seek_Care": { + "type": "Delay", + "range": { + "low": 2, + "high": 8, + "unit": "weeks" + }, + "direct_transition": "Initial_Encounter" + }, + "Initial_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Dyspnea", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom" + } + ], + "direct_transition": "History_And_Physical" + }, + "History_And_Physical": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "162673000", + "display": "General examination of patient (procedure)" + } + ], + "direct_transition": "ECG" + }, + "ECG": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29303009", + "display": "Electrocardiographic procedure (procedure)" + } + ], + "direct_transition": "Chest_Xray" + }, + "Chest_Xray": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain chest X-ray (procedure)" + } + ], + "direct_transition": "Refer_To_Cardiology" + }, + "Refer_To_Cardiology": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "306136006", + "display": "Referral to cardiology service (procedure)" + } + ], + "direct_transition": "End_Initial_Encounter" + }, + "End_Initial_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Cardiology_Delay" + }, + "Cardiology_Delay": { + "type": "Delay", + "range": { + "low": 1, + "high": 4, + "unit": "weeks" + }, + "direct_transition": "Cardiology_Encounter" + }, + "Cardiology_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "270427003", + "display": "Patient-initiated encounter" + } + ], + "direct_transition": "Echocardiogram" + }, + "Echocardiogram": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40701008", + "display": "Echocardiography (procedure)" + } + ], + "direct_transition": "Diagnose_Multiple_Valve_Disease" + }, + "Diagnose_Multiple_Valve_Disease": { + "type": "ConditionOnset", + "target_encounter": "Cardiology_Encounter", + "assign_to_attribute": "multiple_valve_disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "11851006", + "display": "Multiple valve disease (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I08", + "display": "Multiple valve diseases" + } + ], + "direct_transition": "Specific_Valve_Diagnosis" + }, + "Specific_Valve_Diagnosis": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "valve_disease_type", + "operator": "==", + "value": "mitral_aortic" + }, + "transition": "Diagnose_Mitral_Aortic" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "valve_disease_type", + "operator": "==", + "value": "mitral_tricuspid" + }, + "transition": "Diagnose_Mitral_Tricuspid" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "valve_disease_type", + "operator": "==", + "value": "aortic_tricuspid" + }, + "transition": "Diagnose_Aortic_Tricuspid" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "valve_disease_type", + "operator": "==", + "value": "triple_valve" + }, + "transition": "Diagnose_Triple_Valve" + } + ] + }, + "Diagnose_Mitral_Aortic": { + "type": "ConditionOnset", + "target_encounter": "Cardiology_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "194736004", + "display": "Combined disorder of mitral valve and aortic valve (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I08.0", + "display": "Rheumatic disorders of both mitral and aortic valves" + } + ], + "direct_transition": "BNP_Test" + }, + "Diagnose_Mitral_Tricuspid": { + "type": "ConditionOnset", + "target_encounter": "Cardiology_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "194741002", + "display": "Combined disorder of mitral and tricuspid valves (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I08.1", + "display": "Rheumatic disorders of both mitral and tricuspid valves" + } + ], + "direct_transition": "BNP_Test" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/myocardial_infarction.json b/src/main/resources/modules/myocardial_infarction.json new file mode 100644 index 0000000..e6382ab --- /dev/null +++ b/src/main/resources/modules/myocardial_infarction.json @@ -0,0 +1,321 @@ +{ + "name": "Myocardial Infarction", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "This module is not intended to model clinical workflow, it is intended to funnel eligible patients into heart surgery." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Chance_of_MI" + }, + "Terminal": { + "type": "Terminal" + }, + "History of MI": { + "type": "ConditionOnset", + "assign_to_attribute": "", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399211009", + "display": "History of myocardial infarction (situation)" + } + ], + "distributed_transition": [ + { + "transition": "Death", + "distribution": { + "attribute": "chance_of_mi_death", + "default": 0.3 + } + }, + { + "transition": "End_Encounter", + "distribution": 0.7 + } + ] + }, + "STEMI": { + "type": "CallSubmodule", + "submodule": "heart/stemi_pathway", + "direct_transition": "Check_CABG_Referral" + }, + "End_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Chance_of_Recurrent_MI" + }, + "Death": { + "type": "Death", + "direct_transition": "Terminal", + "referenced_by_attribute": "cardiac_surgery_reason" + }, + "Chance_of_MI": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "distributed_transition": [ + { + "transition": "MI_Onset", + "distribution": { + "attribute": "mi_risk", + "default": 0 + } + }, + { + "transition": "Chance_of_MI", + "distribution": 1 + } + ] + }, + "Cardiac_Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "710839006", + "display": "Assessment of cardiac status using monitoring device (procedure)" + } + ], + "duration": { + "low": 2, + "high": 2, + "unit": "minutes" + }, + "direct_transition": "ECG" + }, + "Lab test": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "15220000", + "display": "Laboratory test (procedure)" + } + ], + "duration": { + "low": 5, + "high": 10, + "unit": "minutes" + }, + "direct_transition": "Cardiac_Labs" + }, + "TTE": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "433236007", + "display": "Transthoracic echocardiography (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Discharge_Medications" + }, + "Discharge_Care_Plan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736372004", + "display": "Discharge care plan (record artifact)" + } + ], + "direct_transition": "End_MI_Onset" + }, + "Chance_of_Recurrent_MI": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Terminal", + "distribution": 1 + }, + { + "transition": "MI_Onset", + "distribution": 1 + } + ] + }, + "NSTEACS": { + "type": "CallSubmodule", + "submodule": "heart/nsteacs_pathway", + "direct_transition": "Check_CABG_Referral" + }, + "Chest_XRay": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain X-ray of chest (procedure)" + } + ], + "duration": { + "low": 10, + "high": 10, + "unit": "minutes" + }, + "direct_transition": "Diagnostic_Assessment" + }, + "Emergency_Encounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "MI_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "Cardiac_Assessment" + }, + "Pre-Hospital Death": { + "type": "Death", + "direct_transition": "Terminal", + "remarks": [ + "assume for now all pre-hospital deaths are STEMI" + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "401303003", + "display": "Acute ST segment elevation myocardial infarction (disorder)" + } + ] + }, + "Check_CABG_Referral": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Reset_CABG_Referral_Flag", + "condition": { + "condition_type": "Attribute", + "attribute": "ACS_CABG_referral", + "operator": "==", + "value": true + } + }, + { + "transition": "TTE" + } + ] + }, + "Discharge_Medications": { + "type": "CallSubmodule", + "submodule": "heart/acs_discharge_meds", + "direct_transition": "Discharge_Care_Plan" + }, + "Reset_CABG_Referral_Flag": { + "type": "SetAttribute", + "attribute": "ACS_CABG_referral", + "direct_transition": "End_MI_Onset", + "remarks": [ + "Reset the referral flag, so that just in case the patient winds up going through this pathway a second time, the attribute will be set as appropriate" + ] + }, + "ACS_Arrival_Meds": { + "type": "CallSubmodule", + "submodule": "heart/acs_arrival_medications", + "direct_transition": "Lab test" + }, + "Cardiac_Labs": { + "type": "CallSubmodule", + "submodule": "heart/cardiac_labs", + "direct_transition": "HS Troponin-I 0hr" + }, + "HS Troponin-I 0hr": { + "type": "Observation", + "category": "laboratory", + "unit": "ng/L", + "codes": [ + { + "system": "LOINC", + "code": "89579-7", + "display": "Troponin I.cardiac [Mass/volume] in Serum or Plasma by High sensitivity method" + } + ], + "direct_transition": "Chest_XRay", + "range": { + "low": 0, + "high": 120 + }, + "remarks": [ + " Normal range: below 0.04 ng/ml", + " Probable heart attack: above 0.40 ng/ml", + "https://testguide.labmed.uw.edu/public/view/TROPIG", + " ", + "Note this is used in the NSTEACS pathway to decide between NSTEMI and UA" + ] + }, + "Diagnostic_Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "165197003", + "display": "Diagnostic assessment (procedure)" + } + ], + "distributed_transition": [ + { + "transition": "NSTEACS", + "distribution": 0.6 + }, + { + "transition": "STEMI", + "distribution": 0.4 + } + ] + }, + "ECG": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29303009", + "display": "Electrocardiographic procedure (procedure)" + } + ], + "duration": { + "low": 5, + "high": 10, + "unit": "minutes" + }, + "direct_transition": "ACS_Arrival_Meds" + }, + "MI_Onset": { + "type": "ConditionOnset", + "target_encounter": "Emergency_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "22298006", + "display": "Myocardial infarction (disorder)" + } + ], + "distributed_transition": [ + { + "transition": "Emergency_Encounter", + "distribution": 0.7999999999999999 + }, + { + "transition": "Pre-Hospital Death", + "distribution": 0.2 + } + ] + }, + "End_MI_Onset": { + "type": "ConditionEnd", + "direct_transition": "History of MI", + "condition_onset": "MI_Onset" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/non_insulin_dependent_diabetes_mellitus.json b/src/main/resources/modules/non_insulin_dependent_diabetes_mellitus.json new file mode 100644 index 0000000..2407ed6 --- /dev/null +++ b/src/main/resources/modules/non_insulin_dependent_diabetes_mellitus.json @@ -0,0 +1,517 @@ +{ + "name": "Non-insulin-dependent diabetes mellitus", + "gmf_version": 2, + "remarks": [ + "This module models the onset and progression of Type 2 Diabetes Mellitus (T2DM), also known as Non-insulin-dependent diabetes mellitus.", + "Prevalence data based on CDC National Diabetes Statistics Report 2020: https://www.cdc.gov/diabetes/data/statistics-report/index.html", + "Risk factors include age, obesity, family history, and ethnicity with higher rates among Black, Hispanic, and Native American populations.", + "Reference: American Diabetes Association. Standards of Medical Care in Diabetes-2021. Diabetes Care. 2021;44(Suppl 1):S1-S232." + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "transition": "Female" + }, + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "transition": "Male" + }, + { + "transition": "Terminal" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Female": { + "type": "Simple", + "remarks": [ + "Prevalence of diabetes is slightly higher in men (14.0%) than women (12.0%) overall.", + "Source: CDC National Diabetes Statistics Report 2020" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Race", + "race": "Native" + }, + "distributions": [ + { + "transition": "Female_Diabetes_Risk", + "distribution": 0.146 + }, + { + "transition": "Terminal", + "distribution": 0.854 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Black" + }, + "distributions": [ + { + "transition": "Female_Diabetes_Risk", + "distribution": 0.138 + }, + { + "transition": "Terminal", + "distribution": 0.862 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Hispanic" + }, + "distributions": [ + { + "transition": "Female_Diabetes_Risk", + "distribution": 0.129 + }, + { + "transition": "Terminal", + "distribution": 0.871 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Asian" + }, + "distributions": [ + { + "transition": "Female_Diabetes_Risk", + "distribution": 0.098 + }, + { + "transition": "Terminal", + "distribution": 0.902 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "White" + }, + "distributions": [ + { + "transition": "Female_Diabetes_Risk", + "distribution": 0.078 + }, + { + "transition": "Terminal", + "distribution": 0.922 + } + ] + } + ] + }, + "Male": { + "type": "Simple", + "remarks": [ + "Prevalence of diabetes is slightly higher in men (14.0%) than women (12.0%) overall.", + "Source: CDC National Diabetes Statistics Report 2020" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Race", + "race": "Native" + }, + "distributions": [ + { + "transition": "Male_Diabetes_Risk", + "distribution": 0.158 + }, + { + "transition": "Terminal", + "distribution": 0.842 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Black" + }, + "distributions": [ + { + "transition": "Male_Diabetes_Risk", + "distribution": 0.149 + }, + { + "transition": "Terminal", + "distribution": 0.851 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Hispanic" + }, + "distributions": [ + { + "transition": "Male_Diabetes_Risk", + "distribution": 0.14 + }, + { + "transition": "Terminal", + "distribution": 0.86 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Asian" + }, + "distributions": [ + { + "transition": "Male_Diabetes_Risk", + "distribution": 0.11 + }, + { + "transition": "Terminal", + "distribution": 0.89 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "White" + }, + "distributions": [ + { + "transition": "Male_Diabetes_Risk", + "distribution": 0.09 + }, + { + "transition": "Terminal", + "distribution": 0.91 + } + ] + } + ] + }, + "Female_Diabetes_Risk": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Age_18_44", + "distribution": 0.17 + }, + { + "transition": "Age_45_64", + "distribution": 0.38 + }, + { + "transition": "Age_65_Plus", + "distribution": 0.45 + } + ], + "remarks": [ + "Age distribution of diabetes onset based on CDC data", + "https://www.cdc.gov/diabetes/data/statistics-report/newly-diagnosed-diabetes.html" + ] + }, + "Male_Diabetes_Risk": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Age_18_44", + "distribution": 0.21 + }, + { + "transition": "Age_45_64", + "distribution": 0.43 + }, + { + "transition": "Age_65_Plus", + "distribution": 0.36 + } + ], + "remarks": [ + "Age distribution of diabetes onset based on CDC data", + "https://www.cdc.gov/diabetes/data/statistics-report/newly-diagnosed-diabetes.html" + ] + }, + "Age_18_44": { + "type": "Delay", + "range": { + "low": 18, + "high": 44, + "unit": "years" + }, + "direct_transition": "Prediabetes" + }, + "Age_45_64": { + "type": "Delay", + "range": { + "low": 45, + "high": 64, + "unit": "years" + }, + "direct_transition": "Prediabetes" + }, + "Age_65_Plus": { + "type": "Delay", + "range": { + "low": 65, + "high": 85, + "unit": "years" + }, + "direct_transition": "Prediabetes" + }, + "Prediabetes": { + "type": "ConditionOnset", + "target_encounter": "Prediabetes_Diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "15777000", + "display": "Prediabetes" + }, + { + "system": "ICD-10-CM", + "code": "R73.03", + "display": "Prediabetes" + } + ], + "direct_transition": "Prediabetes_Symptoms" + }, + "Prediabetes_Symptoms": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 0, + "high": 30 + }, + "direct_transition": "Prediabetes_Diagnosis" + }, + "Prediabetes_Diagnosis": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Prediabetes", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "direct_transition": "Prediabetes_Lab_Test" + }, + "Prediabetes_Lab_Test": { + "type": "Procedure", + "target_encounter": "Prediabetes_Diagnosis", + "reason": "Prediabetes", + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c/Hemoglobin.total in Blood" + } + ], + "direct_transition": "Prediabetes_A1C_Result" + }, + "Prediabetes_A1C_Result": { + "type": "Observation", + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c/Hemoglobin.total in Blood" + } + ], + "range": { + "low": 5.7, + "high": 6.4 + }, + "direct_transition": "Lifestyle_Modification" + }, + "Lifestyle_Modification": { + "type": "CarePlanStart", + "target_encounter": "Prediabetes_Diagnosis", + "reason": "Prediabetes", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386464006", + "display": "Prescribed diet (finding)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "226060000", + "display": "Exercise" + }, + { + "system": "SNOMED-CT", + "code": "226234005", + "display": "Healthy diet" + } + ], + "direct_transition": "Prediabetes_Progression" + }, + "Prediabetes_Progression": { + "type": "Delay", + "range": { + "low": 1, + "high": 5, + "unit": "years" + }, + "distributed_transition": [ + { + "transition": "T2DM_Onset", + "distribution": 0.7 + }, + { + "transition": "Terminal", + "distribution": 0.3 + } + ], + "remarks": [ + "About 70% of people with prediabetes develop T2DM within 5 years without intervention", + "Source: https://www.cdc.gov/diabetes/basics/prediabetes.html" + ] + }, + "T2DM_Onset": { + "type": "ConditionOnset", + "target_encounter": "T2DM_Diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "44054006", + "display": "Diabetes mellitus type 2 (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "E11.9", + "display": "Type 2 diabetes mellitus without complications" + } + ], + "direct_transition": "T2DM_Symptoms" + }, + "T2DM_Symptoms": { + "type": "Symptom", + "symptom": "Polydipsia", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "T2DM_Symptom_Polyuria" + }, + "T2DM_Symptom_Polyuria": { + "type": "Symptom", + "symptom": "Polyuria", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "T2DM_Symptom_Fatigue" + }, + "T2DM_Symptom_Fatigue": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 40, + "high": 80 + }, + "direct_transition": "T2DM_Diagnosis" + }, + "T2DM_Diagnosis": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "T2DM_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "direct_transition": "T2DM_Lab_Test" + }, + "T2DM_Lab_Test": { + "type": "Procedure", + "target_encounter": "T2DM_Diagnosis", + "reason": "T2DM_Onset", + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c/Hemoglobin.total in Blood" + } + ], + "direct_transition": "T2DM_A1C_Result" + }, + "T2DM_A1C_Result": { + "type": "Observation", + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c/Hemoglobin.total in Blood" + } + ], + "range": { + "low": 6.5, + "high": 9.0 + }, + "direct_transition": "T2DM_Treatment_Decision" + }, + "T2DM_Treatment_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Metformin_Prescription", + "distribution": 0.9 + }, + { + "transition": "Lifestyle_Only", + "distribution": 0.1 + } + ], + "remarks": [ + "Metformin is the first-line medication for T2DM according to ADA guidelines", + "Source: American Diabetes Association. Standards of Medical Care in Diabetes-2021" + ] + }, + "Metformin_Prescription": { + "type": "MedicationOrder", + "target_encounter": "T2DM_Diagnosis", + "reason": "T2DM_Onset", + "codes": [ + { + "system": "RxNorm", + "code": "860975", + "display": "Metformin hydrochloride 500 MG Oral Tablet" + } + ], + "direct_transition": "T2DM_Care_Plan" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/obesity.json b/src/main/resources/modules/obesity.json new file mode 100644 index 0000000..42cefa8 --- /dev/null +++ b/src/main/resources/modules/obesity.json @@ -0,0 +1,546 @@ +{ + "name": "Obesity", + "gmf_version": 2, + "remarks": [ + "This module models the onset and progression of obesity based on epidemiological data.", + "Obesity is defined as a BMI of 30 or greater.", + "According to CDC data, the prevalence of obesity in the US was 42.4% in 2017-2018.", + "Sources: https://www.cdc.gov/obesity/data/adult.html", + "https://www.niddk.nih.gov/health-information/health-statistics/overweight-obesity" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Female", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "Male", + "condition": { + "condition_type": "Gender", + "gender": "M" + } + }, + { + "transition": "Terminal" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Female": { + "type": "Simple", + "remarks": [ + "Obesity prevalence varies by gender and race/ethnicity.", + "Source: https://www.cdc.gov/nchs/products/databriefs/db360.htm" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Race", + "race": "Black" + }, + "distributions": [ + { + "transition": "Female_Obesity_Onset", + "distribution": 0.56 + }, + { + "transition": "Terminal", + "distribution": 0.44 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Hispanic" + }, + "distributions": [ + { + "transition": "Female_Obesity_Onset", + "distribution": 0.44 + }, + { + "transition": "Terminal", + "distribution": 0.56 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "White" + }, + "distributions": [ + { + "transition": "Female_Obesity_Onset", + "distribution": 0.39 + }, + { + "transition": "Terminal", + "distribution": 0.61 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Asian" + }, + "distributions": [ + { + "transition": "Female_Obesity_Onset", + "distribution": 0.17 + }, + { + "transition": "Terminal", + "distribution": 0.83 + } + ] + }, + { + "distributions": [ + { + "transition": "Female_Obesity_Onset", + "distribution": 0.41 + }, + { + "transition": "Terminal", + "distribution": 0.59 + } + ] + } + ] + }, + "Male": { + "type": "Simple", + "remarks": [ + "Obesity prevalence varies by gender and race/ethnicity.", + "Source: https://www.cdc.gov/nchs/products/databriefs/db360.htm" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Race", + "race": "Black" + }, + "distributions": [ + { + "transition": "Male_Obesity_Onset", + "distribution": 0.41 + }, + { + "transition": "Terminal", + "distribution": 0.59 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Hispanic" + }, + "distributions": [ + { + "transition": "Male_Obesity_Onset", + "distribution": 0.45 + }, + { + "transition": "Terminal", + "distribution": 0.55 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "White" + }, + "distributions": [ + { + "transition": "Male_Obesity_Onset", + "distribution": 0.43 + }, + { + "transition": "Terminal", + "distribution": 0.57 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Asian" + }, + "distributions": [ + { + "transition": "Male_Obesity_Onset", + "distribution": 0.18 + }, + { + "transition": "Terminal", + "distribution": 0.82 + } + ] + }, + { + "distributions": [ + { + "transition": "Male_Obesity_Onset", + "distribution": 0.43 + }, + { + "transition": "Terminal", + "distribution": 0.57 + } + ] + } + ] + }, + "Female_Obesity_Onset": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Age_20_29", + "distribution": 0.2 + }, + { + "transition": "Age_30_39", + "distribution": 0.25 + }, + { + "transition": "Age_40_49", + "distribution": 0.25 + }, + { + "transition": "Age_50_59", + "distribution": 0.2 + }, + { + "transition": "Age_60_Plus", + "distribution": 0.1 + } + ], + "remarks": [ + "Age distribution for obesity onset in females.", + "Source: https://www.cdc.gov/nchs/data/hestat/obesity-adult-17-18/obesity-adult.htm" + ] + }, + "Male_Obesity_Onset": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Age_20_29", + "distribution": 0.15 + }, + { + "transition": "Age_30_39", + "distribution": 0.25 + }, + { + "transition": "Age_40_49", + "distribution": 0.3 + }, + { + "transition": "Age_50_59", + "distribution": 0.2 + }, + { + "transition": "Age_60_Plus", + "distribution": 0.1 + } + ], + "remarks": [ + "Age distribution for obesity onset in males.", + "Source: https://www.cdc.gov/nchs/data/hestat/obesity-adult-17-18/obesity-adult.htm" + ] + }, + "Age_20_29": { + "type": "Delay", + "range": { + "low": 20, + "high": 29, + "unit": "years" + }, + "direct_transition": "Obesity_Onset" + }, + "Age_30_39": { + "type": "Delay", + "range": { + "low": 30, + "high": 39, + "unit": "years" + }, + "direct_transition": "Obesity_Onset" + }, + "Age_40_49": { + "type": "Delay", + "range": { + "low": 40, + "high": 49, + "unit": "years" + }, + "direct_transition": "Obesity_Onset" + }, + "Age_50_59": { + "type": "Delay", + "range": { + "low": 50, + "high": 59, + "unit": "years" + }, + "direct_transition": "Obesity_Onset" + }, + "Age_60_Plus": { + "type": "Delay", + "range": { + "low": 60, + "high": 85, + "unit": "years" + }, + "direct_transition": "Obesity_Onset" + }, + "Obesity_Onset": { + "type": "SetAttribute", + "attribute": "obesity_level", + "direct_transition": "Obesity_Class_Distribution", + "value": "obese" + }, + "Obesity_Class_Distribution": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Class_I_Obesity", + "distribution": 0.6 + }, + { + "transition": "Class_II_Obesity", + "distribution": 0.25 + }, + { + "transition": "Class_III_Obesity", + "distribution": 0.15 + } + ], + "remarks": [ + "Distribution of obesity classes based on BMI ranges.", + "Class I: BMI 30-34.9, Class II: BMI 35-39.9, Class III: BMI \u226540", + "Source: https://www.niddk.nih.gov/health-information/health-statistics/overweight-obesity" + ] + }, + "Class_I_Obesity": { + "type": "ConditionOnset", + "target_encounter": "Obesity_Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "162864005", + "display": "Body mass index 30+ - obesity (finding)" + }, + { + "system": "ICD-10-CM", + "code": "E66.9", + "display": "Obesity, unspecified" + } + ], + "direct_transition": "Obesity_Diagnosis_Encounter" + }, + "Class_II_Obesity": { + "type": "ConditionOnset", + "target_encounter": "Obesity_Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "162864005", + "display": "Body mass index 30+ - obesity (finding)" + }, + { + "system": "ICD-10-CM", + "code": "E66.01", + "display": "Morbid (severe) obesity due to excess calories" + } + ], + "direct_transition": "Obesity_Diagnosis_Encounter" + }, + "Class_III_Obesity": { + "type": "ConditionOnset", + "target_encounter": "Obesity_Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "408512008", + "display": "Morbid obesity (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "E66.01", + "display": "Morbid (severe) obesity due to excess calories" + } + ], + "direct_transition": "Obesity_Diagnosis_Encounter" + }, + "Obesity_Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "direct_transition": "Obesity_Observation" + }, + "Obesity_Observation": { + "type": "Observation", + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "39156-5", + "display": "Body mass index (BMI) [Ratio]" + } + ], + "range": { + "low": 30, + "high": 45 + }, + "unit": "kg/m2", + "direct_transition": "Obesity_Treatment_Path" + }, + "Obesity_Treatment_Path": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Lifestyle_Modification", + "distribution": 0.7 + }, + { + "transition": "Medication_Treatment", + "distribution": 0.2 + }, + { + "transition": "Bariatric_Surgery_Consideration", + "distribution": 0.1 + } + ] + }, + "Lifestyle_Modification": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "304549008", + "display": "Giving advice on diet (procedure)" + } + ], + "direct_transition": "Obesity_Followup" + }, + "Medication_Treatment": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "114213", + "display": "Orlistat 120 MG Oral Capsule" + } + ], + "direct_transition": "Obesity_Followup" + }, + "Bariatric_Surgery_Consideration": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "obesity_level", + "operator": "==", + "value": "obese" + }, + "transition": "Bariatric_Surgery_Referral" + }, + { + "transition": "Obesity_Followup" + } + ] + }, + "Bariatric_Surgery_Referral": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698471008", + "display": "Referral to bariatric surgery service (procedure)" + } + ], + "direct_transition": "Obesity_Followup" + }, + "Obesity_Followup": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "710841007", + "display": "Obesity care management (procedure)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "226060000", + "display": "Exercise therapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "226234005", + "display": "Healthy diet (finding)" + } + ], + "direct_transition": "Obesity_Management" + }, + "Obesity_Management": { + "type": "Delay", + "range": { + "low": 3, + "high": 6, + "unit": "months" + }, + "distributed_transition": [ + { + "transition": "Weight_Loss_Success", + "distribution": 0.3 + }, + { + "transition": "Weight_Maintenance", + "distribution": 0.4 + }, + { + "transition": "Weight_Gain", + "distribution": 0.3 + } + ] + }, + "Weight_Loss_Success": { + "type": "Observation", + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "39156-5", + "display": "Body mass index (BMI) [Ratio]" + } + ], + "range": { + "low": 25, + "high": 29 + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/opioid_addiction.json b/src/main/resources/modules/opioid_addiction.json new file mode 100644 index 0000000..5f006ec --- /dev/null +++ b/src/main/resources/modules/opioid_addiction.json @@ -0,0 +1,947 @@ +{ + "name": "Opioid Addiction", + "remarks": [ + "Opioid addiction currently affects about 0.7% of the American population, or about 2.2M people. ", + "Since the 1990's prescription rates for opioids have increased exponentially. Today, doctors write ", + "between 50 and 150 opioid prescriptions per 100 people. see: ", + "http://www.cdc.gov/drugoverdose/data/prescribing.html", + "Currently the injuries module prescribed opioids at a rate of 25 - 30 per 100 people, but that's ", + "over a whole lifetime. 0-2 prescriptions are written for opioids for each patient after 1990, ", + "or about 1 / 25 = 0.04 per year. This is small compared to the total opioid prescriptions written ", + "each year. This module therefore picks up most of the remaining prescriptions, then evaluates all ", + "addiction rates using a modified model adapted from Project SAMMI: ", + "http://projectsammi.github.io/", + "Prior to 1990 we don't model opioid addiction - prescription rates were far lower and the ", + "'opioid crisis' of today is seen as beginning in the 90's and 00's.", + "", + "09/16/2020: updated to apply this module from year >=1990 to <2014" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Guard" + }, + "Guard": { + "type": "Guard", + "remarks": [ + "Data on specific ages is limited but generally below age 15 no source indicates a statistically ", + "significant % of opioid addiction." + ], + "allow": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">=", + "quantity": 14, + "unit": "years" + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Date", + "operator": ">=", + "year": 1990 + }, + { + "condition_type": "Date", + "operator": "<", + "year": 2014 + } + ] + } + ] + }, + "direct_transition": "General_Population" + }, + "General_Population": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "remarks": [ + "Project SAMMI originally used a 1-day timestep and modeled opioid addiction over the course of ", + "one year. Our model runs for much longer - several decades, and we use a 1 month timestep. ", + "I reduced the incidence of new prescriptions by a factor of 4, and reduced misuse by a factor of 10. ", + "We need to generate fewer prescriptions since the injuries module regularly prescribes opioids for ", + "some injuries." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "opioid_prescription", + "operator": "is not nil", + "remarks": [ + "This catches the opioids prescribed by the injuries module." + ] + }, + "distributions": [ + { + "distribution": 1, + "transition": "Directed_Use" + } + ] + }, + { + "condition": { + "condition_type": "Socioeconomic Status", + "category": "High" + }, + "distributions": [ + { + "distribution": 0.0001, + "transition": "Enter_Directed_Use" + }, + { + "distribution": 0.000003, + "transition": "Misuse" + }, + { + "distribution": 0.999897, + "transition": "General_Population" + } + ] + }, + { + "condition": { + "condition_type": "Socioeconomic Status", + "category": "Middle" + }, + "distributions": [ + { + "distribution": 0.0001, + "transition": "Enter_Directed_Use" + }, + { + "distribution": 0.000005, + "transition": "Misuse" + }, + { + "distribution": 0.999895, + "transition": "General_Population" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ptsd", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "Enter_Directed_Use", + "distribution": 0.5 + }, + { + "transition": "General_Population", + "distribution": 0.5 + } + ] + } + ] + }, + "Enter_Directed_Use": { + "type": "Simple", + "remarks": [ + "provide a few different ways that people are prescribed opioids" + ], + "distributed_transition": [ + { + "distribution": 0.333, + "transition": "Enter_Directed_Use_Condition1" + }, + { + "distribution": 0.333, + "transition": "Enter_Directed_Use_Condition2" + }, + { + "distribution": 0.334, + "transition": "Enter_Directed_Use_Condition3" + } + ] + }, + "Enter_Directed_Use_Condition1": { + "type": "ConditionOnset", + "target_encounter": "Enter_Directed_Use_Encounter1", + "codes": [ + { + "system": "SNOMED-CT", + "code": "196416002", + "display": "Impacted molars (disorder)" + } + ], + "direct_transition": "Enter_Directed_Use_Encounter1" + }, + "Enter_Directed_Use_Encounter1": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "Enter_Directed_Use_Condition1", + "codes": [ + { + "system": "SNOMED-CT", + "code": 182813001, + "display": "Emergency treatment (procedure)" + } + ], + "direct_transition": "Pain_Vital_3" + }, + "Enter_Directed_Use_Procedure1": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65546002", + "display": "Extraction of wisdom tooth (procedure)" + } + ], + "direct_transition": "Directed_Use_Prescription1" + }, + "Directed_Use_Prescription1": { + "type": "MedicationOrder", + "assign_to_attribute": "opioid_prescription", + "codes": [ + { + "system": "RxNorm", + "code": "856987", + "display": "Acetaminophen 300 MG / HYDROcodone Bitartrate 5 MG Oral Tablet" + } + ], + "direct_transition": "End_Directed_Use_Encounter" + }, + "Enter_Directed_Use_Condition2": { + "type": "ConditionOnset", + "target_encounter": "Enter_Directed_Use_Encounter2", + "codes": [ + { + "system": "SNOMED-CT", + "code": "82423001", + "display": "Chronic pain (finding)" + } + ], + "direct_transition": "Enter_Directed_Use_Encounter2" + }, + "Enter_Directed_Use_Encounter2": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "Enter_Directed_Use_Condition2", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183452005", + "display": "Emergency hospital admission (procedure)" + } + ], + "direct_transition": "Pain_Vital_2" + }, + "Directed_Use_Prescription2": { + "type": "MedicationOrder", + "assign_to_attribute": "opioid_prescription", + "codes": [ + { + "system": "RxNorm", + "code": "1860154", + "display": "Abuse-Deterrent 12 HR Oxycodone Hydrochloride 15 MG Extended Release Oral Tablet" + } + ], + "direct_transition": "End_Directed_Use_Encounter" + }, + "Enter_Directed_Use_Condition3": { + "type": "ConditionOnset", + "target_encounter": "Enter_Directed_Use_Encounter3", + "codes": [ + { + "system": "SNOMED-CT", + "code": "124171000119105", + "display": "Chronic intractable migraine without aura (disorder)" + } + ], + "direct_transition": "Enter_Directed_Use_Encounter3" + }, + "Enter_Directed_Use_Encounter3": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "Enter_Directed_Use_Condition3", + "codes": [ + { + "system": "SNOMED-CT", + "code": 182813001, + "display": "Emergency treatment (procedure)" + } + ], + "direct_transition": "Pain_Vital" + }, + "Directed_Use_Prescription3": { + "type": "MedicationOrder", + "assign_to_attribute": "opioid_prescription", + "codes": [ + { + "system": "RxNorm", + "code": "1049221", + "display": "Acetaminophen 325 MG / Oxycodone Hydrochloride 5 MG Oral Tablet" + } + ], + "direct_transition": "End_Directed_Use_Encounter" + }, + "End_Directed_Use_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Directed_Use" + }, + "Directed_Use": { + "type": "Delay", + "remarks": [ + "Project SAMMI modeled addiction rates on a per-day basis. We model ours per-week. The ", + "formula used for conversion: ", + "weekly_incidence = 1 - (1 - daily_incidence)^7 " + ], + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "distributed_transition": [ + { + "distribution": 0.2381, + "remarks": [ + "0.03810 return to general population each day, so that's 1 - (1 - 0.0381)^7, or 23.81%/wk" + ], + "transition": "End_Prescription_Towards_Gen_Pop" + }, + { + "distribution": 0.00028, + "remarks": [ + "0.004%/day = 0.000280/wk" + ], + "transition": "Directed_Use_Overdose" + }, + { + "distribution": 0.0215, + "remarks": [ + "0.95% transition to misuse each day, so that's 1 - (1 - 0.0095)^7, or 6.46%/wk. However, ", + "this incidence of patients misusing opioid prescriptions came from a particularly opioid- ", + "heavy city: Worcester, MA. Reducing this incidence by a factor of 3." + ], + "transition": "End_Prescription_Towards_Misuse" + }, + { + "distribution": 0.74037, + "transition": "Directed_Use" + } + ] + }, + "End_Prescription_Towards_Gen_Pop": { + "type": "MedicationEnd", + "referenced_by_attribute": "opioid_prescription", + "direct_transition": "Reset_Opioid_var_Towards_Gen_Pop" + }, + "Reset_Opioid_var_Towards_Gen_Pop": { + "type": "SetAttribute", + "attribute": "opioid_prescription", + "remarks": [ + "no value here means the variable is reset to nil" + ], + "direct_transition": "General_Population" + }, + "End_Prescription_Towards_Misuse": { + "type": "MedicationEnd", + "referenced_by_attribute": "opioid_prescription", + "remarks": [ + "Note that the variable is not reset on this sequence, because we still want to know which medication they were on" + ], + "direct_transition": "Misuse" + }, + "Misuse": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "distributed_transition": [ + { + "distribution": 0.06793, + "remarks": [ + "0.01 --> 0.06793" + ], + "transition": "Enter_Directed_Use" + }, + { + "distribution": 0.1131, + "remarks": [ + "0.017 --> 0.1131" + ], + "transition": "Reset_Opioid_var_Towards_Gen_Pop" + }, + { + "distribution": 0.005238, + "remarks": [ + "0.00075 --> 0.005238" + ], + "transition": "Misuse_Overdose" + }, + { + "distribution": 0.13187, + "remarks": [ + "0.02 --> 0.13187" + ], + "transition": "Active_Addiction_Symptom_Onset" + }, + { + "distribution": 0.681862, + "transition": "Misuse" + } + ] + }, + "Active_Addiction_Symptom_Onset": { + "type": "Simple", + "direct_transition": "Opioid_Addiction_Symptom1" + }, + "Opioid_Addiction_Symptom1": { + "type": "Symptom", + "symptom": "Anxiety", + "range": { + "low": 0, + "high": 15 + }, + "direct_transition": "Opioid_Addiction_Symptom2" + }, + "Opioid_Addiction_Symptom2": { + "type": "Symptom", + "symptom": "Confusion", + "range": { + "low": 0, + "high": 10 + }, + "direct_transition": "Opioid_Addiction_Symptom3" + }, + "Opioid_Addiction_Symptom3": { + "type": "Symptom", + "symptom": "Cognitive Difficulties", + "range": { + "low": 0, + "high": 20 + }, + "direct_transition": "Opioid_Addiction_Symptom4" + }, + "Opioid_Addiction_Symptom4": { + "type": "Symptom", + "symptom": "Nausea/Vomiting", + "range": { + "low": 0, + "high": 10 + }, + "direct_transition": "Opioid_Addiction_Symptom5" + }, + "Opioid_Addiction_Symptom5": { + "type": "Symptom", + "symptom": "Shortness Constipation Breath", + "range": { + "low": 0, + "high": 10 + }, + "direct_transition": "Opioid_Addiction_Symptom6" + }, + "Opioid_Addiction_Symptom6": { + "type": "Symptom", + "symptom": "Pain Sensitivity", + "range": { + "low": 0, + "high": 10 + }, + "direct_transition": "Opioid_Addiction_Symptom7" + }, + "Opioid_Addiction_Symptom7": { + "type": "Symptom", + "symptom": "Reduced Sex Drive", + "range": { + "low": 0, + "high": 10 + }, + "direct_transition": "Opioid_Addiction_Symptom8" + }, + "Opioid_Addiction_Symptom8": { + "type": "Symptom", + "symptom": "Slurred Speech", + "range": { + "low": 0, + "high": 15 + }, + "direct_transition": "Opioid_Addiction_Symptom9" + }, + "Opioid_Addiction_Symptom9": { + "type": "Symptom", + "symptom": "Shallow Breathing", + "range": { + "low": 0, + "high": 15 + }, + "direct_transition": "Opioid_Addiction_Symptom10" + }, + "Opioid_Addiction_Symptom10": { + "type": "Symptom", + "symptom": "Mood Swing", + "range": { + "low": 0, + "high": 10 + }, + "direct_transition": "Active_Addiction" + }, + "Active_Addiction": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "distributed_transition": [ + { + "distribution": 0.04125, + "remarks": [ + "0.006 --> 0.04125" + ], + "transition": "Detoxification" + }, + { + "distribution": 0.01045, + "remarks": [ + "0.00150 --> 0.01045" + ], + "transition": "Addiction_Overdose" + }, + { + "distribution": 0.9483, + "transition": "Active_Addiction" + } + ] + }, + "Detoxification": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "remarks": [ + "Changed the time scale but not the percentages. These are timestep independent." + ], + "distributed_transition": [ + { + "distribution": 0.75, + "transition": "Detoxification" + }, + { + "distribution": 0.10375, + "transition": "Active_Addiction" + }, + { + "distribution": 0.0425, + "transition": "Drug Addiction" + }, + { + "distribution": 0.10375, + "transition": "Drug_Addiction" + } + ] + }, + "Enter_Addiction_Treatment": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "56876005", + "display": "Drug rehabilitation and detoxification (regime/therapy)" + } + ], + "direct_transition": "Pain_Vital_4", + "reason": "opioid_drug_addiction" + }, + "End_Addiction_Treatment_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Addiction_Treatment" + }, + "Addiction_Treatment": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "distributed_transition": [ + { + "distribution": 0.02, + "transition": "Active_Addiction" + }, + { + "distribution": 0.94865, + "transition": "Addiction_Treatment" + }, + { + "distribution": 0.03135, + "transition": "Recovery_Management" + } + ] + }, + "Recovery_Management": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Recovery Rehab", + "reason": "opioid_drug_addiction" + }, + "End_Recovery_Management_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Recovery_Management_Delay" + }, + "Recovery_Management_Delay": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "distributed_transition": [ + { + "distribution": 0.2603, + "transition": "Active_Addiction" + }, + { + "distribution": 0.7397, + "transition": "Recovery_Management", + "remarks": [ + "Translated from SAMMI's 1-day version of 99% --> 30-days = 74%" + ] + } + ] + }, + "Directed_Use_Overdose": { + "type": "ConditionOnset", + "target_encounter": "Directed_Use_Overdose_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "55680006", + "display": "Drug overdose" + } + ], + "direct_transition": "Directed_Use_Overdose_Encounter" + }, + "Directed_Use_Overdose_Encounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "Directed_Use_Overdose", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.98747, + "transition": "End_Directed_Use_Overdose" + }, + { + "distribution": 0.01253, + "transition": "Death" + } + ] + }, + "End_Directed_Use_Overdose_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Directed_Use" + }, + "Misuse_Overdose": { + "type": "ConditionOnset", + "target_encounter": "Misuse_Overdose_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "55680006", + "display": "Drug overdose" + } + ], + "direct_transition": "Misuse_Overdose_Encounter" + }, + "Misuse_Overdose_Encounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "Misuse_Overdose", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.98747, + "transition": "End_Misuse_Overdose" + }, + { + "distribution": 0.01253, + "transition": "Death" + } + ] + }, + "End_Misuse_Overdose_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Misuse" + }, + "Addiction_Overdose": { + "type": "ConditionOnset", + "target_encounter": "Addiction_Overdose_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "55680006", + "display": "Drug overdose" + } + ], + "direct_transition": "Addiction_Overdose_Encounter" + }, + "Addiction_Overdose_Encounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "Addiction_Overdose", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.98747, + "transition": "Addiction_CarePlan_Selector" + }, + { + "distribution": 0.01253, + "transition": "Death" + } + ] + }, + "Addiction_CarePlan_Selector": { + "type": "Delay", + "distribution": { + "kind": "EXPONENTIAL", + "parameters": { + "mean": 8 + } + }, + "unit": "hours", + "direct_transition": "End_Addiction_Overdose" + }, + "Opioid_Addiction_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "opioid_addiction_careplan", + "reason": "Addiction_Overdose", + "codes": [ + { + "system": "SNOMED-CT", + "code": "734163000", + "display": "Care plan (record artifact)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "60112009", + "display": "Drug addiction counseling (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "61480009", + "display": "Drug detoxification (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "266707007", + "display": "Drug addiction therapy (regime/therapy)" + } + ], + "direct_transition": "End_Addiction_Overdose_Encounter" + }, + "End_Addiction_Overdose_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Detoxification" + }, + "Death": { + "type": "Death", + "codes": [ + { + "system": "SNOMED-CT", + "code": "55680006", + "display": "Drug overdose" + } + ], + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + }, + "Pain_Vital": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported" + } + ], + "range": { + "decimals": 0, + "low": 4, + "high": 8 + }, + "direct_transition": "Directed_Use_Prescription3" + }, + "Pain_Vital_2": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported" + } + ], + "range": { + "decimals": 0, + "low": 5, + "high": 9 + }, + "direct_transition": "Directed_Use_Prescription2" + }, + "Pain_Vital_3": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported" + } + ], + "range": { + "decimals": 0, + "low": 3, + "high": 8 + }, + "direct_transition": "Enter_Directed_Use_Procedure1" + }, + "Pain_Vital_4": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported" + } + ], + "range": { + "decimals": 0, + "low": 2, + "high": 8 + }, + "direct_transition": "Rehab Treatment" + }, + "Rehab Treatment": { + "type": "Delay", + "distribution": { + "kind": "EXPONENTIAL", + "parameters": { + "mean": 7 + } + }, + "unit": "days", + "direct_transition": "End_Addiction_Treatment_Encounter" + }, + "Recovery Rehab": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "52052004", + "display": "Rehabilitation therapy (regime/therapy)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 90, + "low": 60 + } + }, + "unit": "minutes", + "direct_transition": "End_Recovery_Management_Encounter", + "reason": "opioid_drug_addiction" + }, + "Drug Addiction": { + "type": "ConditionOnset", + "target_encounter": "Enter_Addiction_Treatment", + "codes": [ + { + "system": "SNOMED-CT", + "code": "6525002", + "display": "Dependent drug abuse (disorder)" + } + ], + "direct_transition": "Enter_Addiction_Treatment", + "assign_to_attribute": "opioid_drug_addiction" + }, + "Drug_Addiction": { + "type": "ConditionOnset", + "target_encounter": "Recovery_Management", + "codes": [ + { + "system": "SNOMED-CT", + "code": "6525002", + "display": "Dependent drug abuse (disorder)" + } + ], + "direct_transition": "Recovery_Management", + "assign_to_attribute": "opioid_drug_addiction" + }, + "End_Addiction_Overdose": { + "type": "ConditionEnd", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "opioid_addiction_careplan", + "operator": "is nil" + }, + "transition": "Opioid_Addiction_CarePlan" + }, + { + "transition": "End_Addiction_Overdose_Encounter" + } + ], + "condition_onset": "Addiction_Overdose" + }, + "End_Misuse_Overdose": { + "type": "ConditionEnd", + "direct_transition": "End_Misuse_Overdose_Encounter", + "condition_onset": "Misuse_Overdose" + }, + "End_Directed_Use_Overdose": { + "type": "ConditionEnd", + "direct_transition": "End_Directed_Use_Overdose_Encounter", + "condition_onset": "Directed_Use_Overdose" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/osteoarthritis.json b/src/main/resources/modules/osteoarthritis.json new file mode 100644 index 0000000..5889682 --- /dev/null +++ b/src/main/resources/modules/osteoarthritis.json @@ -0,0 +1,488 @@ +{ + "name": "Osteoarthritis", + "remarks": [ + "Osteoarthritis (OA) is a breakdown of cartilage in the joints. It is a chronic condition ", + "that only worsens with time. OA is more likely in females (2:1) and the risk of OA increases ", + "with age. OA also accounts for most of the total joint replacements (knees and hips) in the U.S.", + "Joint replacements are handled by the total_joint_replacement module and triggered by the ", + "'joint_replacement' attribute.", + "Information on treatment, prevalence, and incidence of specific arthritis types from the CDC: ", + "http://www.cdc.gov/arthritis/basics/types.html", + "Overall prevalence of arthritis: ", + "http://www.cdc.gov/arthritis/data_statistics/national-statistics.html" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + " | Arthritis Type | Prevalence | Ratio F:M | ", + " ------------------------------------------- ", + " | Osteoarthritis | 0.34000 | 2:1 | ", + " ------------------------------------------- " + ], + "direct_transition": "Delay_Pre_Arthritis" + }, + "Osteoarthritis": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.234, + "transition": "OA_Of_The_Hand" + }, + { + "distribution": 0.561, + "transition": "OA_Of_The_Knee" + }, + { + "distribution": 0.205, + "transition": "OA_Of_The_Hip" + } + ], + "remarks": [ + "======================================================================", + " OSTEOARTHRITIS ", + "======================================================================", + "Source: http://www.cdc.gov/arthritis/basics/osteoarthritis.htm" + ] + }, + "OA_Of_The_Hand": { + "type": "ConditionOnset", + "target_encounter": "OA_Diagnosis", + "assign_to_attribute": "osteoarthritis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "201834006", + "display": "Localized, primary osteoarthritis of the hand (disorder)" + } + ], + "direct_transition": "OA_Diagnosis" + }, + "OA_Of_The_Knee": { + "type": "ConditionOnset", + "target_encounter": "OA_Diagnosis", + "assign_to_attribute": "osteoarthritis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "239873007", + "display": "Osteoarthritis of knee (disorder)" + } + ], + "direct_transition": "OA_Diagnosis" + }, + "OA_Of_The_Hip": { + "type": "ConditionOnset", + "target_encounter": "OA_Diagnosis", + "assign_to_attribute": "osteoarthritis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "239872002", + "display": "Osteoarthritis of hip (disorder)" + } + ], + "direct_transition": "OA_Diagnosis" + }, + "OA_Diagnosis": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "osteoarthritis", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Pain Vital" + }, + "OA_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "arthritis_careplan", + "reason": "osteoarthritis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "408869004", + "display": "Musculoskeletal care (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "386294003", + "display": "Joint mobility exercises (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "266694003", + "display": "Heat therapy (procedure)" + } + ], + "direct_transition": "Assign DME" + }, + "OA_Pain_Medication": { + "type": "MedicationOrder", + "reason": "osteoarthritis", + "codes": [ + { + "system": "RxNorm", + "code": "849574", + "display": "Naproxen sodium 220 MG Oral Tablet" + } + ], + "remarks": [ + "For knees or hips we can consider joint replacement surgery. However this is not a ", + "treatment option for arthritis of the hand. The total_joint_replacement module will ", + "not process a joint replacement surgery until the patient is over 50 years of age.", + "Source for hip and knee replacement prevalence: ", + "http://www.cdc.gov/arthritis/data_statistics/arthritis-related-stats.htm ", + "Estimated prevalence of Osteoarthritis is 34%. ", + "Estimated prevalence of hip replacements is 0.165% (80% are for OA => 0.132%).", + "Therefore (0.00132 / (0.34 * 0.205)) => 0.0189 of all hip OA leads to hip replacement.", + "Estimated prevalence of knee replacements is 0.243% (95% are for OA => 0.231%).", + "Therefore (0.00231 / (0.34 * 0.561)) => 0.0121 of all knee OA leads to knee replacement." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "OA_Of_The_Knee" + }, + "distributions": [ + { + "distribution": 0.0121, + "transition": "Setup_Knee_Replacement" + }, + { + "distribution": 0.9879, + "transition": "End_Encounter" + } + ] + }, + { + "condition": { + "condition_type": "PriorState", + "name": "OA_Of_The_Hip" + }, + "distributions": [ + { + "distribution": 0.0189, + "transition": "Setup_Hip_Replacement" + }, + { + "distribution": 0.9811, + "transition": "End_Encounter" + } + ] + }, + { + "distributions": [ + { + "distribution": 1, + "transition": "End_Encounter" + } + ] + } + ] + }, + "Setup_Knee_Replacement": { + "type": "SetAttribute", + "attribute": "joint_replacement", + "value": "knee", + "direct_transition": "End_Encounter" + }, + "Setup_Hip_Replacement": { + "type": "SetAttribute", + "attribute": "joint_replacement", + "value": "hip", + "direct_transition": "End_Encounter" + }, + "End_Encounter": { + "type": "EncounterEnd", + "direct_transition": "OA_Symptom1_Ends" + }, + "Terminal": { + "type": "Terminal" + }, + "Veteran": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "==", + "value": "Vietnam_War" + }, + "distributions": [ + { + "transition": "Delay_Until_Symptoms", + "distribution": 0.2 + }, + { + "transition": "Terminal", + "distribution": 0.8 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "==", + "value": "Early_Gulf_War" + }, + "distributions": [ + { + "transition": "Delay_Until_Symptoms", + "distribution": 0.2642 + }, + { + "transition": "Terminal", + "distribution": 0.7358 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "==", + "value": "Late_Gulf_War" + }, + "distributions": [ + { + "transition": "Delay_Until_Symptoms", + "distribution": 0.22 + }, + { + "transition": "Terminal", + "distribution": 0.78 + } + ] + }, + { + "transition": "Non_Veteran" + } + ] + }, + "Non_Veteran": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "transition": "Delay_Until_Symptoms", + "distribution": 0.21 + }, + { + "transition": "Terminal", + "distribution": 0.79 + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "Delay_Until_Symptoms", + "distribution": 0.2267 + }, + { + "transition": "Terminal", + "distribution": 0.7733 + } + ] + } + ] + }, + "OA_Symptom1_Ends": { + "type": "Symptom", + "symptom": "Joint Pain", + "cause": "", + "exact": { + "quantity": 0 + }, + "direct_transition": "OA_Symptom2_Ends" + }, + "OA_Symptom2_Ends": { + "type": "Symptom", + "symptom": "Joint Stiffness", + "cause": "", + "exact": { + "quantity": 0 + }, + "direct_transition": "Terminal" + }, + "Delay_Until_Symptoms": { + "type": "Delay", + "direct_transition": "OA_Symptom1", + "range": { + "low": 0, + "high": 15, + "unit": "years" + } + }, + "OA_Symptom1": { + "type": "Symptom", + "symptom": "Joint Pain", + "cause": "", + "direct_transition": "OA_Symptom2", + "range": { + "low": 0, + "high": 20 + } + }, + "OA_Symptom2": { + "type": "Symptom", + "symptom": "Joint Stiffness", + "cause": "", + "direct_transition": "Delay_Until_Arthritis", + "range": { + "low": 0, + "high": 20 + } + }, + "Delay_Pre_Arthritis": { + "type": "Delay", + "conditional_transition": [ + { + "transition": "Veteran", + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "is not nil" + } + }, + { + "transition": "Non_Veteran", + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "is nil" + } + } + ], + "exact": { + "quantity": 25, + "unit": "years" + } + }, + "Delay_Until_Arthritis": { + "type": "Delay", + "direct_transition": "OA_Symptom1_Advances", + "range": { + "low": 5, + "high": 30, + "unit": "years" + } + }, + "OA_Symptom1_Advances": { + "type": "Symptom", + "symptom": "Joint Pain", + "cause": "", + "direct_transition": "OA_Symptom2_Advances", + "range": { + "low": 0, + "high": 50 + } + }, + "OA_Symptom2_Advances": { + "type": "Symptom", + "symptom": "Joint Stiffness", + "cause": "", + "direct_transition": "Osteoarthritis", + "range": { + "low": 0, + "high": 50 + } + }, + "Pain Vital": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported" + } + ], + "direct_transition": "OA_CarePlan", + "range": { + "decimals": 0, + "low": 5, + "high": 10 + } + }, + "Assign DME": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "PriorState", + "name": "OA_Of_The_Hip" + }, + { + "condition_type": "PriorState", + "name": "OA_Of_The_Knee" + } + ] + }, + "distributions": [ + { + "transition": "Wheelchair", + "distribution": 0.54 + }, + { + "transition": "Walker", + "distribution": 0.46 + } + ] + }, + { + "transition": "OA_Pain_Medication" + } + ], + "remarks": [ + "Based on sample from CMS claims." + ] + }, + "Wheelchair": { + "type": "CallSubmodule", + "submodule": "dme/wheelchair", + "direct_transition": "Finish DME" + }, + "Walker": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": 705406009, + "display": "Walker (physical object)" + }, + "assign_to_attribute": "osteoarthritis_dme", + "direct_transition": "Finish DME" + }, + "Finish DME": { + "type": "Simple", + "direct_transition": "OA_Pain_Medication" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/osteoporosis.json b/src/main/resources/modules/osteoporosis.json new file mode 100644 index 0000000..eb0b15c --- /dev/null +++ b/src/main/resources/modules/osteoporosis.json @@ -0,0 +1,254 @@ +{ + "name": "Osteoporosis", + "remarks": [ + "This very basic module uses pure prevalence stats to just set osteoporosis on patients based on age/sex", + "https://www.iofbonehealth.org/facts-statistics", + "In reality osteoporosis is progressive and gets worse over time, it doesn't suddenly onset one day" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "transition": "Male" + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "transition": "Female" + } + ] + }, + "Female": { + "type": "Simple", + "remarks": [ + "Osteoporosis is estimated to affect 200 million women worldwide", + "approximately one-tenth of women aged 60, one-fifth of women aged 70, ", + "two-fifths of women aged 80 and two-thirds of women aged 90", + "https://www.iofbonehealth.org/facts-statistics" + ], + "distributed_transition": [ + { + "distribution": 0.1, + "transition": "Onset_Age_60" + }, + { + "distribution": 0.1, + "transition": "Onset_Age_70", + "remarks": "== 1/5 minus the 1/10 from the previous entry" + }, + { + "distribution": 0.2, + "transition": "Onset_Age_80", + "remarks": "== 2/5 minus the 1/5 from the previous entry" + }, + { + "distribution": 0.2667, + "transition": "Onset_Age_90", + "remarks": "== 2/3 minus the 2/5 from the previous entry" + }, + { + "distribution": 0.3333, + "transition": "Terminal" + } + ] + }, + "Male": { + "type": "Simple", + "remarks": [ + "statistics for men are not as easy to find as for women", + "Worldwide, 1 in 3 women over age 50 will experience osteoporotic fractures, as will 1 in 5 men aged over 50", + "so for this model we scale the %s for women by .6 (.333 * .6 = .2)" + ], + "distributed_transition": [ + { + "distribution": 0.06, + "transition": "Onset_Age_60" + }, + { + "distribution": 0.06, + "transition": "Onset_Age_70" + }, + { + "distribution": 0.12, + "transition": "Onset_Age_80" + }, + { + "distribution": 0.16, + "transition": "Onset_Age_90" + }, + { + "distribution": 0.44, + "transition": "Terminal" + } + ] + }, + "Onset_Age_60": { + "type": "Delay", + "exact": { + "quantity": 60, + "unit": "years" + }, + "direct_transition": "Onset_Osteoporosis" + }, + "Onset_Age_70": { + "type": "Delay", + "exact": { + "quantity": 70, + "unit": "years" + }, + "direct_transition": "Onset_Osteoporosis" + }, + "Onset_Age_80": { + "type": "Delay", + "exact": { + "quantity": 80, + "unit": "years" + }, + "direct_transition": "Onset_Osteoporosis" + }, + "Onset_Age_90": { + "type": "Delay", + "exact": { + "quantity": 90, + "unit": "years" + }, + "direct_transition": "Onset_Osteoporosis" + }, + "Onset_Osteoporosis": { + "type": "SetAttribute", + "attribute": "osteoporosis", + "value": true, + "direct_transition": "Osteoporosis_Symptom1" + }, + "Osteoporosis_Symptom1": { + "type": "Symptom", + "symptom": "Decrease in Height", + "range": { + "low": 0, + "high": 10 + }, + "direct_transition": "Osteoporosis_Encounter_Reason" + }, + "Wellness_Encounter": { + "type": "Encounter", + "wellness": true, + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "64859006", + "display": "Osteoporosis (disorder)" + } + ] + }, + "transition": "Consider_Medication" + }, + { + "transition": "Osteoporosis_Workup" + } + ], + "reason": "osteoporosis_encounter_reason" + }, + "Osteoporosis_Workup": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "312681000", + "display": "Bone density scan (procedure)" + } + ], + "direct_transition": "Bone_Density" + }, + "Bone_Density": { + "type": "Observation", + "category": "procedure", + "codes": [ + { + "system": "LOINC", + "code": "38265-5", + "display": "DXA Radius and Ulna [T-score] Bone density" + } + ], + "range": { + "low": -3.8, + "high": -2.5 + }, + "unit": "{T-score}", + "remarks": [ + "WHO definition of osteoporosis is a T-score < 2.5", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1963365/" + ], + "direct_transition": "Diagnose_Osteoporosis" + }, + "Diagnose_Osteoporosis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "64859006", + "display": "Osteoporosis (disorder)" + } + ], + "direct_transition": "Consider_Medication" + }, + "Consider_Medication": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 1995 + }, + "transition": "Prescribe_Bisphosphate" + }, + { + "transition": "End_Diagnosis_Encounter", + "remarks": "bisphosphates are the best medicine for osteoporosis, but not available until ~1995" + } + ] + }, + "Prescribe_Bisphosphate": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "904419", + "display": "Alendronic acid 10 MG Oral Tablet" + } + ], + "direct_transition": "End_Diagnosis_Encounter", + "chronic": true, + "reason": "Diagnose_Osteoporosis" + }, + "Terminal": { + "type": "Terminal" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Osteoporosis_Encounter_Reason": { + "type": "SetAttribute", + "attribute": "osteoporosis_encounter_reason", + "direct_transition": "Wellness_Encounter", + "value_code": { + "system": "SNOMED-CT", + "code": "313423004", + "display": "At increased risk of osteoporosis (finding)" + } + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/other_acute_ischaemic_heart_diseases.json b/src/main/resources/modules/other_acute_ischaemic_heart_diseases.json new file mode 100644 index 0000000..810ea71 --- /dev/null +++ b/src/main/resources/modules/other_acute_ischaemic_heart_diseases.json @@ -0,0 +1,398 @@ +{ + "name": "Other Acute Ischaemic Heart Diseases", + "remarks": [ + "Other acute ischaemic heart diseases (ICD-10 code: I24) refer to conditions characterized by sudden, severe impairment of blood flow to the heart muscle, leading to myocardial ischemia or infarction.", + "This module models the onset, diagnosis, and management of acute ischaemic heart diseases other than ST-elevation myocardial infarction (STEMI) and non-ST-elevation myocardial infarction (NSTEMI).", + "Information on prevalence, symptoms, diagnosis, and treatment obtained from:", + "https://www.ncbi.nlm.nih.gov/books/NBK537047/", + "https://www.heart.org/en/health-topics/heart-attack/about-heart-attacks", + "https://www.uptodate.com/contents/acute-coronary-syndromes-beyond-the-basics" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + "The incidence of other acute ischaemic heart diseases increases with age and is higher in men than women.", + "Approximately 1 in 10,000 adults aged 35-44 years experience an acute ischaemic event each year, while the incidence rises to around 1 in 100 for those aged 65-74 years." + ], + "direct_transition": "Age_Risk_Stratification" + }, + "Age_Risk_Stratification": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "value": 35 + }, + "transition": "Terminal" + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "value": 35 + }, + "distributions": [ + { + "distribution": 0.001, + "transition": "Acute_Ischaemic_Event_Onset" + }, + { + "distribution": 0.999, + "transition": "Terminal" + } + ] + } + ] + }, + "Acute_Ischaemic_Event_Onset": { + "type": "ConditionOnset", + "target_encounter": "Acute_Ischaemic_Event_Encounter", + "assign_to_attribute": "acute_ischaemic_event", + "codes": [ + { + "system": "SNOMED-CT", + "code": "233837000", + "display": "Acute ischemic heart disease (disorder)" + }, + { + "system": "ICD-10", + "code": "I24", + "display": "Other acute ischaemic heart diseases" + } + ], + "direct_transition": "Chest_Pain" + }, + "Chest_Pain": { + "type": "Symptom", + "symptom": "Chest Pain", + "cause": "acute_ischaemic_event", + "direct_transition": "Shortness_of_Breath" + }, + "Shortness_of_Breath": { + "type": "Symptom", + "symptom": "Shortness of Breath", + "cause": "acute_ischaemic_event", + "direct_transition": "Acute_Ischaemic_Event_Encounter" + }, + "Acute_Ischaemic_Event_Encounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "acute_ischaemic_event", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for emergency medical service (procedure)" + } + ], + "direct_transition": "ECG" + }, + "ECG": { + "type": "Procedure", + "reason": "acute_ischaemic_event", + "codes": [ + { + "system": "SNOMED-CT", + "code": "312964008", + "display": "Electrocardiographic monitoring (procedure)" + } + ], + "direct_transition": "Troponin_Test" + }, + "Troponin_Test": { + "type": "Observation", + "category": "laboratory", + "unit": "ng/mL", + "codes": [ + { + "system": "LOINC", + "code": "6598-7", + "display": "Troponin T.cardiac [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.05, + "high": 1.0 + }, + "direct_transition": "Cardiac_Enzyme_Tests" + }, + "Cardiac_Enzyme_Tests": { + "type": "Procedure", + "reason": "acute_ischaemic_event", + "codes": [ + { + "system": "SNOMED-CT", + "code": "428211000124105", + "display": "Measurement of cardiac enzyme panel (procedure)" + } + ], + "direct_transition": "Acute_Ischaemic_Event_Diagnosis" + }, + "Acute_Ischaemic_Event_Diagnosis": { + "type": "ConditionOnset", + "target_encounter": "Acute_Ischaemic_Event_Encounter", + "assign_to_attribute": "acute_ischaemic_event_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "233837000", + "display": "Acute ischemic heart disease (disorder)" + }, + { + "system": "ICD-10", + "code": "I24", + "display": "Other acute ischaemic heart diseases" + } + ], + "direct_transition": "Acute_Treatment" + }, + "Acute_Treatment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.6, + "transition": "Antiplatelet_Therapy" + }, + { + "distribution": 0.4, + "transition": "Anticoagulant_Therapy" + } + ] + }, + "Antiplatelet_Therapy": { + "type": "MedicationOrder", + "assign_to_attribute": "antiplatelet", + "reason": "acute_ischaemic_event_diagnosis", + "codes": [ + { + "system": "RxNorm", + "code": "1191", + "display": "Aspirin 81 MG Oral Tablet" + } + ], + "direct_transition": "Nitrate_Therapy" + }, + "Anticoagulant_Therapy": { + "type": "MedicationOrder", + "assign_to_attribute": "anticoagulant", + "reason": "acute_ischaemic_event_diagnosis", + "codes": [ + { + "system": "RxNorm", + "code": "1124035", + "display": "Enoxaparin 100 MG/ML Injection Solution" + } + ], + "direct_transition": "Nitrate_Therapy" + }, + "Nitrate_Therapy": { + "type": "MedicationOrder", + "assign_to_attribute": "nitrate", + "reason": "acute_ischaemic_event_diagnosis", + "codes": [ + { + "system": "RxNorm", + "code": "311797", + "display": "Nitroglycerin 0.4 MG/DOSE Mucosal Lozenge" + } + ], + "direct_transition": "Cardiac_Catheterization" + }, + "Cardiac_Catheterization": { + "type": "Procedure", + "reason": "acute_ischaemic_event_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "33070006", + "display": "Percutaneous coronary intervention (procedure)" + } + ], + "duration": { + "low": 1, + "high": 2, + "unit": "hours" + }, + "direct_transition": "Coronary_Intervention" + }, + "Coronary_Intervention": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Percutaneous_Coronary_Intervention" + }, + { + "distribution": 0.3, + "transition": "Coronary_Artery_Bypass_Graft" + } + ] + }, + "Percutaneous_Coronary_Intervention": { + "type": "Procedure", + "reason": "acute_ischaemic_event_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "415070008", + "display": "Percutaneous coronary intervention (procedure)" + } + ], + "duration": { + "low": 1, + "high": 2, + "unit": "hours" + }, + "direct_transition": "Cardiac_Rehabilitation" + }, + "Coronary_Artery_Bypass_Graft": { + "type": "Procedure", + "reason": "acute_ischaemic_event_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "232717009", + "display": "Coronary artery bypass grafting (procedure)" + } + ], + "duration": { + "low": 4, + "high": 6, + "unit": "hours" + }, + "direct_transition": "Cardiac_Rehabilitation" + }, + "Cardiac_Rehabilitation": { + "type": "CarePlanStart", + "assign_to_attribute": "cardiac_rehab", + "reason": "acute_ischaemic_event_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "53950000", + "display": "Cardiac rehabilitation (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "229065009", + "display": "Exercise therapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "226234005", + "display": "Healthy diet (finding)" + }, + { + "system": "SNOMED-CT", + "code": "226060000", + "display": "Stress management (regime/therapy)" + } + ], + "direct_transition": "Discharge_Encounter" + }, + "Discharge_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Followup_Encounter" + }, + "Followup_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "acute_ischaemic_event_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "Medication_Review" + }, + "Medication_Review": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "antiplatelet", + "operator": "is not nil" + }, + "transition": "Continue_Antiplatelet" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "anticoagulant", + "operator": "is not nil" + }, + "transition": "Continue_Anticoagulant" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "nitrate", + "operator": "is not nil" + }, + "transition": "Continue_Nitrate" + }, + { + "transition": "End_Followup_Encounter" + } + ] + }, + "Continue_Antiplatelet": { + "type": "MedicationOrder", + "assign_to_attribute": "antiplatelet", + "reason": "acute_ischaemic_event_diagnosis", + "codes": [ + { + "system": "RxNorm", + "code": "1191", + "display": "Aspirin 81 MG Oral Tablet" + } + ], + "direct_transition": "Medication_Review" + }, + "Continue_Anticoagulant": { + "type": "MedicationOrder", + "assign_to_attribute": "anticoagulant", + "reason": "acute_ischaemic_event_diagnosis", + "codes": [ + { + "system": "RxNorm", + "code": "1124035", + "display": "Enoxaparin 100 MG/ML Injection Solution" + } + ], + "direct_transition": "Medication_Review" + }, + "Continue_Nitrate": { + "type": "MedicationOrder", + "assign_to_attribute": "nitrate", + "reason": "acute_ischaemic_event_diagnosis", + "codes": [ + { + "system": "RxNorm", + "code": "311797", + "display": "Nitroglycerin 0.4 MG/DOSE Mucosal Lozenge" + } + ], + "direct_transition": "Medication_Review" + }, + "End_Followup_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 2 +} diff --git a/src/main/resources/modules/other_anxiety_disorders.json b/src/main/resources/modules/other_anxiety_disorders.json new file mode 100644 index 0000000..b42a1d3 --- /dev/null +++ b/src/main/resources/modules/other_anxiety_disorders.json @@ -0,0 +1,299 @@ +{ + "name": "Other anxiety disorders", + "remarks": [ + "This module models the onset and progression of other anxiety disorders (F41 in ICD-10).", + "Lifetime prevalence of anxiety disorders is approximately 33.7% according to large population surveys.", + "Anxiety disorders are more common in women than men, with a ratio of approximately 2:1.", + "Sources: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3018839/", + "https://www.nimh.nih.gov/health/statistics/any-anxiety-disorder", + "https://www.psychiatry.org/patients-families/anxiety-disorders/what-are-anxiety-disorders" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "transition": "Female" + }, + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "transition": "Male" + }, + { + "transition": "Terminal" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Female": { + "type": "Simple", + "remarks": [ + "Women are approximately twice as likely as men to develop an anxiety disorder.", + "Source: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4539866/" + ], + "distributed_transition": [ + { + "transition": "Anxiety_Onset", + "distribution": 0.23 + }, + { + "transition": "Terminal", + "distribution": 0.77 + } + ] + }, + "Male": { + "type": "Simple", + "remarks": [ + "Men have lower rates of anxiety disorders compared to women.", + "Source: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4539866/" + ], + "distributed_transition": [ + { + "transition": "Anxiety_Onset", + "distribution": 0.14 + }, + { + "transition": "Terminal", + "distribution": 0.86 + } + ] + }, + "Anxiety_Onset": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Anxiety_Onset_Child", + "distribution": 0.31 + }, + { + "transition": "Anxiety_Onset_Teen", + "distribution": 0.47 + }, + { + "transition": "Anxiety_Onset_Adult", + "distribution": 0.22 + } + ], + "remarks": [ + "Anxiety disorders often begin in childhood, adolescence, or early adulthood.", + "Source: https://www.nimh.nih.gov/health/statistics/any-anxiety-disorder" + ] + }, + "Anxiety_Onset_Child": { + "type": "Delay", + "range": { + "low": 5, + "high": 12, + "unit": "years" + }, + "direct_transition": "Anxiety_Diagnosis" + }, + "Anxiety_Onset_Teen": { + "type": "Delay", + "range": { + "low": 13, + "high": 19, + "unit": "years" + }, + "direct_transition": "Anxiety_Diagnosis" + }, + "Anxiety_Onset_Adult": { + "type": "Delay", + "range": { + "low": 20, + "high": 40, + "unit": "years" + }, + "direct_transition": "Anxiety_Diagnosis" + }, + "Anxiety_Diagnosis": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem" + } + ], + "direct_transition": "Anxiety_Disorder_Onset" + }, + "Anxiety_Disorder_Onset": { + "type": "ConditionOnset", + "target_encounter": "Anxiety_Diagnosis", + "codes": [ + { + "system": "ICD-10-CM", + "code": "F41.9", + "display": "Anxiety disorder, unspecified" + }, + { + "system": "SNOMED-CT", + "code": "197480006", + "display": "Anxiety disorder" + } + ], + "direct_transition": "Anxiety_Symptom_Palpitations" + }, + "Anxiety_Symptom_Palpitations": { + "type": "Symptom", + "symptom": "Palpitations", + "range": { + "low": 0, + "high": 80 + }, + "direct_transition": "Anxiety_Symptom_Sweating" + }, + "Anxiety_Symptom_Sweating": { + "type": "Symptom", + "symptom": "Sweating", + "range": { + "low": 0, + "high": 80 + }, + "direct_transition": "Anxiety_Symptom_Trembling" + }, + "Anxiety_Symptom_Trembling": { + "type": "Symptom", + "symptom": "Trembling", + "range": { + "low": 0, + "high": 80 + }, + "direct_transition": "Anxiety_Symptom_Shortness_Of_Breath" + }, + "Anxiety_Symptom_Shortness_Of_Breath": { + "type": "Symptom", + "symptom": "Shortness of breath", + "range": { + "low": 0, + "high": 80 + }, + "direct_transition": "Anxiety_Symptom_Chest_Pain" + }, + "Anxiety_Symptom_Chest_Pain": { + "type": "Symptom", + "symptom": "Chest pain", + "range": { + "low": 0, + "high": 80 + }, + "direct_transition": "Anxiety_Symptom_Nausea" + }, + "Anxiety_Symptom_Nausea": { + "type": "Symptom", + "symptom": "Nausea", + "range": { + "low": 0, + "high": 80 + }, + "direct_transition": "Anxiety_Symptom_Dizziness" + }, + "Anxiety_Symptom_Dizziness": { + "type": "Symptom", + "symptom": "Dizziness", + "range": { + "low": 0, + "high": 80 + }, + "direct_transition": "Anxiety_Treatment_Decision" + }, + "Anxiety_Treatment_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Anxiety_Medication", + "distribution": 0.7 + }, + { + "transition": "Anxiety_Therapy", + "distribution": 0.2 + }, + { + "transition": "Anxiety_No_Treatment", + "distribution": 0.1 + } + ] + }, + "Anxiety_Medication": { + "type": "MedicationOrder", + "target_encounter": "Anxiety_Diagnosis", + "remarks": [ + "SSRIs are first-line pharmacological treatment for anxiety disorders" + ], + "codes": [ + { + "system": "RxNorm", + "code": "312940", + "display": "Sertraline 50 MG Oral Tablet" + } + ], + "direct_transition": "Anxiety_Followup" + }, + "Anxiety_Therapy": { + "type": "Procedure", + "target_encounter": "Anxiety_Diagnosis", + "reason": "Anxiety_Disorder_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "304891004", + "display": "Cognitive behavioral therapy" + } + ], + "direct_transition": "Anxiety_Followup" + }, + "Anxiety_No_Treatment": { + "type": "Simple", + "direct_transition": "Anxiety_Followup" + }, + "Anxiety_Followup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter" + } + ], + "direct_transition": "Anxiety_Progression" + }, + "Anxiety_Progression": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Anxiety_Remission", + "distribution": 0.4 + }, + { + "transition": "Anxiety_Chronic", + "distribution": 0.6 + } + ] + }, + "Anxiety_Remission": { + "type": "ConditionEnd", + "referenced_by_attribute": "Anxiety_Disorder_Onset", + "direct_transition": "Terminal" + }, + "Anxiety_Chronic": { + "type": "Simple", + "remarks": [ + "Many anxiety disorders become chronic conditions without proper treatment" + ], + "direct_transition": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/other_pulmonary_heart_diseases.json b/src/main/resources/modules/other_pulmonary_heart_diseases.json new file mode 100644 index 0000000..d2e8390 --- /dev/null +++ b/src/main/resources/modules/other_pulmonary_heart_diseases.json @@ -0,0 +1,389 @@ +{ + "name": "Other Pulmonary Heart Diseases", + "remarks": [ + "This module models various forms of pulmonary heart diseases, excluding pulmonary hypertension.", + "Pulmonary heart diseases are conditions that affect the heart due to lung disorders or impaired respiratory function.", + "Common causes include chronic obstructive pulmonary disease (COPD), interstitial lung diseases, and sleep-disordered breathing.", + "Information on prevalence, symptoms, and treatment obtained from:", + "https://www.ncbi.nlm.nih.gov/books/NBK537064/", + "https://www.nhlbi.nih.gov/health-topics/pulmonary-heart-disease", + "https://emedicine.medscape.com/article/301475-overview" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + "Pulmonary heart disease is relatively common, affecting around 5-10% of individuals with chronic lung diseases.", + "The incidence increases with age and severity of the underlying lung condition." + ], + "direct_transition": "Guard_For_Lung_Disease" + }, + "Guard_For_Lung_Disease": { + "type": "Guard", + "allow": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "copd", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "interstitial_lung_disease", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "sleep_apnea", + "operator": "is not nil" + } + ] + }, + "direct_transition": "Pulmonary_Heart_Disease_Probability" + }, + "Pulmonary_Heart_Disease_Probability": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": ">", + "value": 65 + }, + "distributions": [ + { + "distribution": 0.1, + "transition": "Pulmonary_Heart_Disease" + }, + { + "distribution": 0.9, + "transition": "Terminal" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.05, + "transition": "Pulmonary_Heart_Disease" + }, + { + "distribution": 0.95, + "transition": "Terminal" + } + ] + } + ] + }, + "Pulmonary_Heart_Disease": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "53741008", + "display": "Pulmonary heart disease (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I27.9", + "display": "Pulmonary heart disease, unspecified" + } + ], + "direct_transition": "Diagnosis_Encounter" + }, + "Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Pulmonary_Heart_Disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Shortness_Of_Breath" + }, + "Shortness_Of_Breath": { + "type": "Symptom", + "symptom": "Shortness of Breath", + "cause": "Pulmonary_Heart_Disease", + "direct_transition": "Chest_Pain" + }, + "Chest_Pain": { + "type": "Symptom", + "symptom": "Chest Pain", + "cause": "Pulmonary_Heart_Disease", + "direct_transition": "Fatigue" + }, + "Fatigue": { + "type": "Symptom", + "symptom": "Fatigue", + "cause": "Pulmonary_Heart_Disease", + "direct_transition": "Edema" + }, + "Edema": { + "type": "Symptom", + "symptom": "Edema", + "cause": "Pulmonary_Heart_Disease", + "direct_transition": "Chest_Xray" + }, + "Chest_Xray": { + "type": "Procedure", + "reason": "Pulmonary_Heart_Disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain chest X-ray (procedure)" + } + ], + "direct_transition": "Echocardiogram" + }, + "Echocardiogram": { + "type": "Procedure", + "reason": "Pulmonary_Heart_Disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40701008", + "display": "Echocardiography (procedure)" + } + ], + "direct_transition": "Pulmonary_Function_Tests" + }, + "Pulmonary_Function_Tests": { + "type": "Procedure", + "reason": "Pulmonary_Heart_Disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "23426006", + "display": "Pulmonary function test (procedure)" + } + ], + "direct_transition": "Treatment_Decision" + }, + "Treatment_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.6, + "transition": "Diuretic_Treatment" + }, + { + "distribution": 0.4, + "transition": "Oxygen_Therapy" + } + ] + }, + "Diuretic_Treatment": { + "type": "MedicationOrder", + "reason": "Pulmonary_Heart_Disease", + "codes": [ + { + "system": "RxNorm", + "code": "197730", + "display": "Hydrochlorothiazide 25 MG Oral Tablet" + } + ], + "direct_transition": "Pulmonary_Disease_Management" + }, + "Oxygen_Therapy": { + "type": "Procedure", + "reason": "Pulmonary_Heart_Disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183301003", + "display": "Oxygen therapy (procedure)" + } + ], + "direct_transition": "Pulmonary_Disease_Management" + }, + "Pulmonary_Disease_Management": { + "type": "CarePlanStart", + "assign_to_attribute": "pulmonary_careplan", + "reason": "Pulmonary_Heart_Disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736138009", + "display": "Pulmonary disease care plan (record artifact)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "229065009", + "display": "Exercise therapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "226234005", + "display": "Healthy diet (finding)" + }, + { + "system": "SNOMED-CT", + "code": "226060000", + "display": "Stress management (regime/therapy)" + } + ], + "direct_transition": "Patient_Education" + }, + "Patient_Education": { + "type": "Procedure", + "reason": "Pulmonary_Heart_Disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "61505006", + "display": "Patient education about their disease (procedure)" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Regular_Disease_Progression" + }, + "Regular_Disease_Progression": { + "type": "Delay", + "range": { + "low": 3, + "high": 6, + "unit": "months" + }, + "direct_transition": "Followup_Encounter" + }, + "Followup_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Pulmonary_Heart_Disease", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "Disease_Progression_Check" + }, + "Disease_Progression_Check": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Stable_Disease" + }, + { + "distribution": 0.3, + "transition": "Disease_Worsening" + } + ] + }, + "Stable_Disease": { + "type": "ConditionEnd", + "condition_onset": "Pulmonary_Heart_Disease", + "direct_transition": "End_Followup_Encounter" + }, + "Disease_Worsening": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.6, + "transition": "Right_Heart_Failure" + }, + { + "distribution": 0.4, + "transition": "Cor_Pulmonale" + } + ] + }, + "Right_Heart_Failure": { + "type": "ConditionOnset", + "target_encounter": "Followup_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "89619000", + "display": "Right heart failure (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I27.0", + "display": "Primary pulmonary hypertension" + } + ], + "direct_transition": "Intensify_Treatment" + }, + "Cor_Pulmonale": { + "type": "ConditionOnset", + "target_encounter": "Followup_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "53741008", + "display": "Pulmonary heart disease (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I27.2", + "display": "Other secondary pulmonary hypertension" + } + ], + "direct_transition": "Intensify_Treatment" + }, + "Intensify_Treatment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.5, + "transition": "Add_Diuretic" + }, + { + "distribution": 0.5, + "transition": "Add_Oxygen_Therapy" + } + ] + }, + "Add_Diuretic": { + "type": "MedicationOrder", + "assign_to_attribute": "diuretic", + "reason": "Right_Heart_Failure", + "codes": [ + { + "system": "RxNorm", + "code": "197730", + "display": "Hydrochlorothiazide 25 MG Oral Tablet" + } + ], + "direct_transition": "End_Followup_Encounter" + }, + "Add_Oxygen_Therapy": { + "type": "Procedure", + "reason": "Cor_Pulmonale", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183301003", + "display": "Oxygen therapy (procedure)" + } + ], + "direct_transition": "End_Followup_Encounter" + }, + "End_Followup_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Regular_Disease_Progression" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 2 +} diff --git a/src/main/resources/modules/parkinsons_disease.json b/src/main/resources/modules/parkinsons_disease.json new file mode 100644 index 0000000..5b136d4 --- /dev/null +++ b/src/main/resources/modules/parkinsons_disease.json @@ -0,0 +1,42 @@ +{ + "name": "Parkinsons Disease", + "gmf_version": 2, + "remarks": [ + "Basic module for Parkinsons Disease", + "Auto-generated as a placeholder" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Diagnosis" + }, + "Diagnosis": { + "type": "ConditionOnset", + "target_encounter": "Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "00000", + "display": "Parkinsons Disease" + } + ], + "direct_transition": "Encounter" + }, + "Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "11111", + "display": "Encounter for Parkinsons Disease" + } + ], + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + } +} diff --git a/src/main/resources/modules/pneumonia.json.fixed.raw b/src/main/resources/modules/pneumonia.json.fixed.raw new file mode 100644 index 0000000..6fbe077 --- /dev/null +++ b/src/main/resources/modules/pneumonia.json.fixed.raw @@ -0,0 +1,492 @@ +{ + "name": "Pneumonia", + "remarks": [ + "This module models the onset, progression, diagnosis, treatment, and management of pneumonia.", + "Pneumonia is an infection that inflames the air sacs in one or both lungs, which may fill with fluid.", + "The module includes risk factors, diagnostic procedures, treatment options, and potential complications." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 1, + "unit": "years" + }, + "direct_transition": "Risk_Assessment" + }, + "Risk_Assessment": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "days" + }, + "distributed_transition": [ + { + "distribution": 0.05, + "transition": "High_Risk_Group" + }, + { + "distribution": 0.15, + "transition": "Moderate_Risk_Group" + }, + { + "distribution": 0.8, + "transition": "Low_Risk_Group" + } + ] + }, + "High_Risk_Group": { + "type": "SetAttribute", + "attribute": "pneumonia_risk", + "value": "high", + "direct_transition": "Pneumonia_Onset_Probability" + }, + "Moderate_Risk_Group": { + "type": "SetAttribute", + "attribute": "pneumonia_risk", + "value": "moderate", + "direct_transition": "Pneumonia_Onset_Probability" + }, + "Low_Risk_Group": { + "type": "SetAttribute", + "attribute": "pneumonia_risk", + "value": "low", + "direct_transition": "Pneumonia_Onset_Probability" + }, + "Pneumonia_Onset_Probability": { + "type": "Delay", + "range": { + "low": 1, + "high": 365, + "unit": "days" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "pneumonia_risk", + "operator": "==", + "value": "high" + }, + "transition": "High_Risk_Onset_Probability" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "pneumonia_risk", + "operator": "==", + "value": "moderate" + }, + "transition": "Moderate_Risk_Onset_Probability" + }, + { + "transition": "Low_Risk_Onset_Probability" + } + ] + }, + "High_Risk_Onset_Probability": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Pneumonia_Onset" + }, + { + "distribution": 0.7, + "transition": "No_Pneumonia" + } + ] + }, + "Moderate_Risk_Onset_Probability": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.15, + "transition": "Pneumonia_Onset" + }, + { + "distribution": 0.85, + "transition": "No_Pneumonia" + } + ] + }, + "Low_Risk_Onset_Probability": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.05, + "transition": "Pneumonia_Onset" + }, + { + "distribution": 0.95, + "transition": "No_Pneumonia" + } + ] + }, + "No_Pneumonia": { + "type": "Terminal" + }, + "Pneumonia_Onset": { + "type": "ConditionOnset", + "target_encounter": "Pneumonia_Diagnosis_Encounter", + "assign_to_attribute": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "233604007", + "display": "Pneumonia (disorder)" + } + ], + "direct_transition": "Pneumonia_Symptoms_Onset" + }, + "Pneumonia_Symptoms_Onset": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "days" + }, + "direct_transition": "Pneumonia_Severity_Assessment" + }, + "Pneumonia_Severity_Assessment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.2, + "transition": "Severe_Pneumonia" + }, + { + "distribution": 0.5, + "transition": "Moderate_Pneumonia" + }, + { + "distribution": 0.3, + "transition": "Mild_Pneumonia" + } + ] + }, + "Severe_Pneumonia": { + "type": "SetAttribute", + "attribute": "pneumonia_severity", + "value": "severe", + "direct_transition": "Pneumonia_Diagnosis_Encounter" + }, + "Moderate_Pneumonia": { + "type": "SetAttribute", + "attribute": "pneumonia_severity", + "value": "moderate", + "direct_transition": "Pneumonia_Diagnosis_Encounter" + }, + "Mild_Pneumonia": { + "type": "SetAttribute", + "attribute": "pneumonia_severity", + "value": "mild", + "direct_transition": "Pneumonia_Diagnosis_Encounter" + }, + "Pneumonia_Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom" + } + ], + "direct_transition": "Chest_Xray" + }, + "Chest_Xray": { + "type": "Procedure", + "target_encounter": "Pneumonia_Diagnosis_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain chest X-ray (procedure)" + } + ], + "direct_transition": "Blood_Tests" + }, + "Blood_Tests": { + "type": "Procedure", + "target_encounter": "Pneumonia_Diagnosis_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "396550006", + "display": "Blood test (procedure)" + } + ], + "direct_transition": "Sputum_Culture" + }, + "Sputum_Culture": { + "type": "Procedure", + "target_encounter": "Pneumonia_Diagnosis_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "269957009", + "display": "Sputum culture (procedure)" + } + ], + "direct_transition": "Pneumonia_Treatment_Decision" + }, + "Pneumonia_Treatment_Decision": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "pneumonia_severity", + "operator": "==", + "value": "severe" + }, + "transition": "Hospital_Admission" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "pneumonia_severity", + "operator": "==", + "value": "moderate" + }, + "transition": "Moderate_Treatment_Decision" + }, + { + "transition": "Outpatient_Treatment" + } + ] + }, + "Moderate_Treatment_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.4, + "transition": "Hospital_Admission" + }, + { + "distribution": 0.6, + "transition": "Outpatient_Treatment" + } + ] + }, + "Hospital_Admission": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32485007", + "display": "Hospital admission (procedure)" + } + ], + "direct_transition": "IV_Antibiotics" + }, + "IV_Antibiotics": { + "type": "MedicationOrder", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "RxNorm", + "code": "1652673", + "display": "Ceftriaxone 1000 MG/50ML Injection" + } + ], + "direct_transition": "Oxygen_Therapy" + }, + "Oxygen_Therapy": { + "type": "Procedure", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "57485005", + "display": "Oxygen therapy (procedure)" + } + ], + "direct_transition": "Complication_Risk_Assessment" + }, + "Complication_Risk_Assessment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.15, + "transition": "Develop_Complications" + }, + { + "distribution": 0.85, + "transition": "No_Complications" + } + ] + }, + "Develop_Complications": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Respiratory_Failure" + }, + { + "distribution": 0.2, + "transition": "Sepsis" + }, + { + "distribution": 0.3, + "transition": "Pleural_Effusion" + }, + { + "distribution": 0.2, + "transition": "Lung_Abscess" + } + ] + }, + "Respiratory_Failure": { + "type": "ConditionOnset", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "409622000", + "display": "Respiratory failure (disorder)" + } + ], + "direct_transition": "Mechanical_Ventilation" + }, + "Mechanical_Ventilation": { + "type": "Procedure", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40617009", + "display": "Artificial respiration (procedure)" + } + ], + "direct_transition": "ICU_Stay" + }, + "ICU_Stay": { + "type": "Procedure", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305351004", + "display": "Admission to intensive care unit (procedure)" + } + ], + "direct_transition": "Extended_Hospital_Stay" + }, + "Sepsis": { + "type": "ConditionOnset", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91302008", + "display": "Sepsis (disorder)" + } + ], + "direct_transition": "Additional_Antibiotics" + }, + "Additional_Antibiotics": { + "type": "MedicationOrder", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "RxNorm", + "code": "1665051", + "display": "Vancomycin 1000 MG Injection" + } + ], + "direct_transition": "ICU_Stay" + }, + "Pleural_Effusion": { + "type": "ConditionOnset", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60046008", + "display": "Pleural effusion (disorder)" + } + ], + "direct_transition": "Thoracentesis" + }, + "Thoracentesis": { + "type": "Procedure", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91602002", + "display": "Thoracentesis (procedure)" + } + ], + "direct_transition": "Extended_Hospital_Stay" + }, + "Lung_Abscess": { + "type": "ConditionOnset", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "44274007", + "display": "Lung abscess (disorder)" + } + ], + "direct_transition": "Extended_Antibiotics" + }, + "Extended_Antibiotics": { + "type": "MedicationOrder", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "RxNorm", + "code": "1652673", + "display": "Ceftriaxone 1000 MG/50ML Injection" + } + ], + "direct_transition": "Extended_Hospital_Stay" + }, + "Extended_Hospital_Stay": { + "type": "Delay", + "range": { + "low": 10, + "high": 21, + "unit": "days" + }, + "direct_transition": "Hospital_Discharge" + }, + "No_Complications": { + "type": "Delay", + "range": { + "low": 3, + "high": 7, + "unit": "days" + }, + "direct_transition": "Hospital_Discharge" + }, + "Hospital_Discharge": { + "type": "EncounterEnd", + "direct_transition": "Recovery_Period" + }, + "Outpatient_Treatment": { + "type": "Medication \ No newline at end of file diff --git a/src/main/resources/modules/pneumonia.json.raw b/src/main/resources/modules/pneumonia.json.raw new file mode 100644 index 0000000..6fbe077 --- /dev/null +++ b/src/main/resources/modules/pneumonia.json.raw @@ -0,0 +1,492 @@ +{ + "name": "Pneumonia", + "remarks": [ + "This module models the onset, progression, diagnosis, treatment, and management of pneumonia.", + "Pneumonia is an infection that inflames the air sacs in one or both lungs, which may fill with fluid.", + "The module includes risk factors, diagnostic procedures, treatment options, and potential complications." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 1, + "unit": "years" + }, + "direct_transition": "Risk_Assessment" + }, + "Risk_Assessment": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "days" + }, + "distributed_transition": [ + { + "distribution": 0.05, + "transition": "High_Risk_Group" + }, + { + "distribution": 0.15, + "transition": "Moderate_Risk_Group" + }, + { + "distribution": 0.8, + "transition": "Low_Risk_Group" + } + ] + }, + "High_Risk_Group": { + "type": "SetAttribute", + "attribute": "pneumonia_risk", + "value": "high", + "direct_transition": "Pneumonia_Onset_Probability" + }, + "Moderate_Risk_Group": { + "type": "SetAttribute", + "attribute": "pneumonia_risk", + "value": "moderate", + "direct_transition": "Pneumonia_Onset_Probability" + }, + "Low_Risk_Group": { + "type": "SetAttribute", + "attribute": "pneumonia_risk", + "value": "low", + "direct_transition": "Pneumonia_Onset_Probability" + }, + "Pneumonia_Onset_Probability": { + "type": "Delay", + "range": { + "low": 1, + "high": 365, + "unit": "days" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "pneumonia_risk", + "operator": "==", + "value": "high" + }, + "transition": "High_Risk_Onset_Probability" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "pneumonia_risk", + "operator": "==", + "value": "moderate" + }, + "transition": "Moderate_Risk_Onset_Probability" + }, + { + "transition": "Low_Risk_Onset_Probability" + } + ] + }, + "High_Risk_Onset_Probability": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Pneumonia_Onset" + }, + { + "distribution": 0.7, + "transition": "No_Pneumonia" + } + ] + }, + "Moderate_Risk_Onset_Probability": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.15, + "transition": "Pneumonia_Onset" + }, + { + "distribution": 0.85, + "transition": "No_Pneumonia" + } + ] + }, + "Low_Risk_Onset_Probability": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.05, + "transition": "Pneumonia_Onset" + }, + { + "distribution": 0.95, + "transition": "No_Pneumonia" + } + ] + }, + "No_Pneumonia": { + "type": "Terminal" + }, + "Pneumonia_Onset": { + "type": "ConditionOnset", + "target_encounter": "Pneumonia_Diagnosis_Encounter", + "assign_to_attribute": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "233604007", + "display": "Pneumonia (disorder)" + } + ], + "direct_transition": "Pneumonia_Symptoms_Onset" + }, + "Pneumonia_Symptoms_Onset": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "days" + }, + "direct_transition": "Pneumonia_Severity_Assessment" + }, + "Pneumonia_Severity_Assessment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.2, + "transition": "Severe_Pneumonia" + }, + { + "distribution": 0.5, + "transition": "Moderate_Pneumonia" + }, + { + "distribution": 0.3, + "transition": "Mild_Pneumonia" + } + ] + }, + "Severe_Pneumonia": { + "type": "SetAttribute", + "attribute": "pneumonia_severity", + "value": "severe", + "direct_transition": "Pneumonia_Diagnosis_Encounter" + }, + "Moderate_Pneumonia": { + "type": "SetAttribute", + "attribute": "pneumonia_severity", + "value": "moderate", + "direct_transition": "Pneumonia_Diagnosis_Encounter" + }, + "Mild_Pneumonia": { + "type": "SetAttribute", + "attribute": "pneumonia_severity", + "value": "mild", + "direct_transition": "Pneumonia_Diagnosis_Encounter" + }, + "Pneumonia_Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom" + } + ], + "direct_transition": "Chest_Xray" + }, + "Chest_Xray": { + "type": "Procedure", + "target_encounter": "Pneumonia_Diagnosis_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain chest X-ray (procedure)" + } + ], + "direct_transition": "Blood_Tests" + }, + "Blood_Tests": { + "type": "Procedure", + "target_encounter": "Pneumonia_Diagnosis_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "396550006", + "display": "Blood test (procedure)" + } + ], + "direct_transition": "Sputum_Culture" + }, + "Sputum_Culture": { + "type": "Procedure", + "target_encounter": "Pneumonia_Diagnosis_Encounter", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "269957009", + "display": "Sputum culture (procedure)" + } + ], + "direct_transition": "Pneumonia_Treatment_Decision" + }, + "Pneumonia_Treatment_Decision": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "pneumonia_severity", + "operator": "==", + "value": "severe" + }, + "transition": "Hospital_Admission" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "pneumonia_severity", + "operator": "==", + "value": "moderate" + }, + "transition": "Moderate_Treatment_Decision" + }, + { + "transition": "Outpatient_Treatment" + } + ] + }, + "Moderate_Treatment_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.4, + "transition": "Hospital_Admission" + }, + { + "distribution": 0.6, + "transition": "Outpatient_Treatment" + } + ] + }, + "Hospital_Admission": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32485007", + "display": "Hospital admission (procedure)" + } + ], + "direct_transition": "IV_Antibiotics" + }, + "IV_Antibiotics": { + "type": "MedicationOrder", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "RxNorm", + "code": "1652673", + "display": "Ceftriaxone 1000 MG/50ML Injection" + } + ], + "direct_transition": "Oxygen_Therapy" + }, + "Oxygen_Therapy": { + "type": "Procedure", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "57485005", + "display": "Oxygen therapy (procedure)" + } + ], + "direct_transition": "Complication_Risk_Assessment" + }, + "Complication_Risk_Assessment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.15, + "transition": "Develop_Complications" + }, + { + "distribution": 0.85, + "transition": "No_Complications" + } + ] + }, + "Develop_Complications": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Respiratory_Failure" + }, + { + "distribution": 0.2, + "transition": "Sepsis" + }, + { + "distribution": 0.3, + "transition": "Pleural_Effusion" + }, + { + "distribution": 0.2, + "transition": "Lung_Abscess" + } + ] + }, + "Respiratory_Failure": { + "type": "ConditionOnset", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "409622000", + "display": "Respiratory failure (disorder)" + } + ], + "direct_transition": "Mechanical_Ventilation" + }, + "Mechanical_Ventilation": { + "type": "Procedure", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40617009", + "display": "Artificial respiration (procedure)" + } + ], + "direct_transition": "ICU_Stay" + }, + "ICU_Stay": { + "type": "Procedure", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305351004", + "display": "Admission to intensive care unit (procedure)" + } + ], + "direct_transition": "Extended_Hospital_Stay" + }, + "Sepsis": { + "type": "ConditionOnset", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91302008", + "display": "Sepsis (disorder)" + } + ], + "direct_transition": "Additional_Antibiotics" + }, + "Additional_Antibiotics": { + "type": "MedicationOrder", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "RxNorm", + "code": "1665051", + "display": "Vancomycin 1000 MG Injection" + } + ], + "direct_transition": "ICU_Stay" + }, + "Pleural_Effusion": { + "type": "ConditionOnset", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60046008", + "display": "Pleural effusion (disorder)" + } + ], + "direct_transition": "Thoracentesis" + }, + "Thoracentesis": { + "type": "Procedure", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91602002", + "display": "Thoracentesis (procedure)" + } + ], + "direct_transition": "Extended_Hospital_Stay" + }, + "Lung_Abscess": { + "type": "ConditionOnset", + "target_encounter": "Hospital_Admission", + "codes": [ + { + "system": "SNOMED-CT", + "code": "44274007", + "display": "Lung abscess (disorder)" + } + ], + "direct_transition": "Extended_Antibiotics" + }, + "Extended_Antibiotics": { + "type": "MedicationOrder", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "RxNorm", + "code": "1652673", + "display": "Ceftriaxone 1000 MG/50ML Injection" + } + ], + "direct_transition": "Extended_Hospital_Stay" + }, + "Extended_Hospital_Stay": { + "type": "Delay", + "range": { + "low": 10, + "high": 21, + "unit": "days" + }, + "direct_transition": "Hospital_Discharge" + }, + "No_Complications": { + "type": "Delay", + "range": { + "low": 3, + "high": 7, + "unit": "days" + }, + "direct_transition": "Hospital_Discharge" + }, + "Hospital_Discharge": { + "type": "EncounterEnd", + "direct_transition": "Recovery_Period" + }, + "Outpatient_Treatment": { + "type": "Medication \ No newline at end of file diff --git a/src/main/resources/modules/pneumonia_organism_unspecified.json b/src/main/resources/modules/pneumonia_organism_unspecified.json new file mode 100644 index 0000000..09aefca --- /dev/null +++ b/src/main/resources/modules/pneumonia_organism_unspecified.json @@ -0,0 +1,491 @@ +{ + "name": "Pneumonia organism unspecified", + "remarks": [ + "This module represents pneumonia of unspecified organism (ICD-10 code J18).", + "Pneumonia is an infection of the lungs that can be caused by bacteria, viruses, or fungi.", + "Sources: https://www.cdc.gov/pneumonia/index.html", + "https://www.ncbi.nlm.nih.gov/books/NBK526116/", + "https://www.lung.org/lung-health-diseases/lung-disease-lookup/pneumonia" + ], + "gmf_version": 2, + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "No_Pneumonia" + }, + "No_Pneumonia": { + "type": "Delay", + "exact": { + "quantity": 0, + "unit": "days" + }, + "distributed_transition": [ + { + "distribution": 0.03, + "transition": "Age_Guard" + }, + { + "distribution": 0.97, + "transition": "Terminal" + } + ] + }, + "Age_Guard": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 2, + "unit": "years" + }, + "transition": "Increased_Risk_Young" + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 65, + "unit": "years" + }, + "transition": "Increased_Risk_Elderly" + }, + { + "transition": "Pneumonia_Risk_Assessment" + } + ] + }, + "Increased_Risk_Young": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.6, + "transition": "Pneumonia_Onset" + }, + { + "distribution": 0.4, + "transition": "Terminal" + } + ] + }, + "Increased_Risk_Elderly": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.5, + "transition": "Pneumonia_Onset" + }, + { + "distribution": 0.5, + "transition": "Terminal" + } + ] + }, + "Pneumonia_Risk_Assessment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Pneumonia_Onset" + }, + { + "distribution": 0.7, + "transition": "Terminal" + } + ] + }, + "Pneumonia_Onset": { + "type": "ConditionOnset", + "target_encounter": "Pneumonia_Diagnosis", + "assign_to_attribute": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "233604007", + "display": "Pneumonia (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "J18", + "display": "Pneumonia, organism unspecified" + } + ], + "direct_transition": "Pneumonia_Symptom_Cough" + }, + "Pneumonia_Symptom_Cough": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Pneumonia_Symptom_Fever" + }, + "Pneumonia_Symptom_Fever": { + "type": "Symptom", + "symptom": "Fever", + "range": { + "low": 60, + "high": 100 + }, + "direct_transition": "Pneumonia_Symptom_Shortness_Of_Breath" + }, + "Pneumonia_Symptom_Shortness_Of_Breath": { + "type": "Symptom", + "symptom": "Shortness of Breath", + "range": { + "low": 40, + "high": 90 + }, + "direct_transition": "Pneumonia_Symptom_Chest_Pain" + }, + "Pneumonia_Symptom_Chest_Pain": { + "type": "Symptom", + "symptom": "Chest Pain", + "range": { + "low": 30, + "high": 80 + }, + "direct_transition": "Pneumonia_Symptom_Fatigue" + }, + "Pneumonia_Symptom_Fatigue": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 50, + "high": 90 + }, + "direct_transition": "Delay_Until_Diagnosis" + }, + "Delay_Until_Diagnosis": { + "type": "Delay", + "range": { + "low": 2, + "high": 7, + "unit": "days" + }, + "direct_transition": "Pneumonia_Diagnosis" + }, + "Pneumonia_Diagnosis": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Age", + "operator": "<", + "quantity": 5, + "unit": "years" + }, + { + "condition_type": "Age", + "operator": ">=", + "quantity": 65, + "unit": "years" + }, + { + "condition_type": "Symptom", + "symptom": "Shortness of Breath", + "operator": ">=", + "value": 80 + } + ] + }, + "transition": "Severe_Pneumonia_Path" + }, + { + "transition": "Mild_Pneumonia_Path" + } + ] + }, + "Severe_Pneumonia_Path": { + "type": "Simple", + "direct_transition": "Chest_Xray" + }, + "Mild_Pneumonia_Path": { + "type": "Simple", + "direct_transition": "Chest_Xray" + }, + "Chest_Xray": { + "type": "Procedure", + "target_encounter": "Pneumonia_Diagnosis", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain chest X-ray (procedure)" + } + ], + "direct_transition": "CBC_Test" + }, + "CBC_Test": { + "type": "Procedure", + "target_encounter": "Pneumonia_Diagnosis", + "reason": "pneumonia", + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "Complete blood count (hemogram) panel - Blood by Automated count" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Severe_Pneumonia_Path" + }, + "transition": "Hospitalization_Decision" + }, + { + "transition": "Prescribe_Antibiotics" + } + ] + }, + "Hospitalization_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Hospital_Admission" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Antibiotics" + } + ] + }, + "Hospital_Admission": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32485007", + "display": "Hospital admission (procedure)" + } + ], + "direct_transition": "IV_Antibiotics" + }, + "IV_Antibiotics": { + "type": "MedicationOrder", + "reason": "pneumonia", + "codes": [ + { + "system": "RxNorm", + "code": "309778", + "display": "Ceftriaxone 1000 MG Injection" + } + ], + "direct_transition": "Oxygen_Therapy" + }, + "Oxygen_Therapy": { + "type": "Procedure", + "target_encounter": "Hospital_Admission", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "57485005", + "display": "Oxygen therapy (procedure)" + } + ], + "direct_transition": "Hospital_Stay" + }, + "Hospital_Stay": { + "type": "Delay", + "range": { + "low": 3, + "high": 10, + "unit": "days" + }, + "direct_transition": "End_IV_Antibiotics" + }, + "End_IV_Antibiotics": { + "type": "MedicationEnd", + "medication_order": "IV_Antibiotics", + "direct_transition": "Hospital_Discharge" + }, + "Hospital_Discharge": { + "type": "EncounterEnd", + "direct_transition": "Prescribe_Oral_Antibiotics" + }, + "Prescribe_Oral_Antibiotics": { + "type": "MedicationOrder", + "reason": "pneumonia", + "codes": [ + { + "system": "RxNorm", + "code": "1373737", + "display": "Amoxicillin 500 MG / Clavulanate 125 MG Oral Tablet" + } + ], + "direct_transition": "Recovery_Period" + }, + "Prescribe_Antibiotics": { + "type": "MedicationOrder", + "reason": "pneumonia", + "codes": [ + { + "system": "RxNorm", + "code": "1373737", + "display": "Amoxicillin 500 MG / Clavulanate 125 MG Oral Tablet" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Recovery_Period" + }, + "Recovery_Period": { + "type": "Delay", + "range": { + "low": 7, + "high": 21, + "unit": "days" + }, + "direct_transition": "End_Antibiotics" + }, + "End_Antibiotics": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "PriorState", + "name": "Prescribe_Oral_Antibiotics" + }, + "transition": "End_Oral_Antibiotics" + }, + { + "transition": "End_Outpatient_Antibiotics" + } + ] + }, + "End_Oral_Antibiotics": { + "type": "MedicationEnd", + "medication_order": "Prescribe_Oral_Antibiotics", + "direct_transition": "Followup_Encounter" + }, + "End_Outpatient_Antibiotics": { + "type": "MedicationEnd", + "medication_order": "Prescribe_Antibiotics", + "direct_transition": "Followup_Encounter" + }, + "Followup_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "pneumonia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "Assess_Recovery" + }, + "Assess_Recovery": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.9, + "transition": "Pneumonia_Resolved" + }, + { + "distribution": 0.1, + "transition": "Pneumonia_Complications" + } + ] + }, + "Pneumonia_Complications": { + "type": "ConditionOnset", + "target_encounter": "Followup_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "233608000", + "display": "Pneumonia with complication (disorder)" + } + ], + "direct_transition": "Extended_Treatment" + }, + "Extended_Treatment": { + "type": "MedicationOrder", + "reason": "pneumonia", + "codes": [ + { + "system": "RxNorm", + "code": "1658634", + "display": "Levofloxacin 750 MG Oral Tablet" + } + ], + "direct_transition": "Extended_Recovery" + }, + "Extended_Recovery": { + "type": "Delay", + "range": { + "low": 10, + "high": 14, + "unit": "days" + }, + "direct_transition": "End_Extended_Treatment" + }, + "End_Extended_Treatment": { + "type": "MedicationEnd", + "medication_order": "Extended_Treatment", + "direct_transition": "End_Followup_Encounter" + }, + "Pneumonia_Resolved": { + "type": "ConditionEnd", + "referenced_by_attribute": "pneumonia", + "direct_transition": "End_Pneumonia_Symptoms" + }, + "End_Pneumonia_Symptoms": { + "type": "Symptom", + "symptom": "Cough", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Fever" + }, + "End_Fever": { + "type": "Symptom", + "symptom": "Fever", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Shortness_Of_Breath" + }, + "End_Shortness_Of_Breath": { + "type": "Symptom", + "symptom": "Shortness of Breath", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Chest_Pain" + }, + "End_Chest_Pain": { + "type": "Symptom", + "symptom": "Chest Pain", + "exact": { + "quantity": 0 + }, + "direct_transition": "End_Fatigue" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/pregnancy.json b/src/main/resources/modules/pregnancy.json new file mode 100644 index 0000000..100b385 --- /dev/null +++ b/src/main/resources/modules/pregnancy.json @@ -0,0 +1,2348 @@ +{ + "name": "Pregnancy", + "remarks": [ + "Whenever a female becomes pregnant, the 'pregnant' attribute is set to true ", + "by the Female Reproduction module. The likelihood of becoming pregnant is ", + "determined by a wide variety of factors including age, sexual activity, ", + "and contraceptive use.", + "Some notable complications NOT modeled in this module:", + "1. Maternal death (very low incidence in developed countries)", + "2. Gestational diabetes (because of the complex interplay with the diabetes module)", + "3. Tobacco, drug, or alcohol use during pregnancy" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "transition": "Initially_Not_Pregnant" + }, + { + "transition": "Terminal" + } + ] + }, + "Initially_Not_Pregnant": { + "type": "SetAttribute", + "attribute": "pregnant", + "value": false, + "direct_transition": "Initially_No_Children" + }, + "Initially_No_Children": { + "type": "SetAttribute", + "attribute": "number_of_children", + "value": 0, + "direct_transition": "Become_Pregnant_Guard" + }, + "Become_Pregnant_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + "direct_transition": "Become_Pregnant" + }, + "Become_Pregnant": { + "type": "ConditionOnset", + "remarks": [ + "======================================================================", + " NORMAL PREGNANCY ", + "======================================================================" + ], + "target_encounter": "Prenatal_Initial_Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "72892002", + "display": "Normal pregnancy (finding)" + } + ], + "direct_transition": "Delay_Eight_Weeks" + }, + "Delay_Eight_Weeks": { + "type": "Delay", + "exact": { + "quantity": 8, + "unit": "weeks" + }, + "direct_transition": "Prenatal_Initial_Visit" + }, + "Prenatal_Initial_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424441002", + "display": "Prenatal initial visit (regime/therapy)" + } + ], + "direct_transition": "Pregnancy_Test" + }, + "Pregnancy_Test": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "252160004", + "display": "Standard pregnancy test (procedure)" + } + ], + "direct_transition": "Fetal_Viability_Ultrasound" + }, + "Fetal_Viability_Ultrasound": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "169230002", + "display": "Ultrasound scan for fetal viability (procedure)" + } + ], + "remarks": [ + "Following an initial prenatal visit there are 3 broad outcomes for a pregnancy:", + "1. Fetal Loss: 1.053M miscarriages --> 17.1% of all pregnancies", + "2. Induced Abortion: 1.103M induced abortions --> 17.9% of all pregnancies", + "3. Birth: 3.988M live births --> 65% of all pregnancies", + "Total pregnancies: 6.155M", + "Source: http://www.cdc.gov/nchs/data/hestat/pregnancy/2010_pregnancy_rates.htm", + "In terms of trends, the likelihood of abortion peaks age 20-30, then decreases with age. ", + "Meanwhile, the likelihood of miscarriage significantly increases with age. 85% will ", + "miscarriage in the first trimester, the remaining 15% in the second.", + "| Age | Abortion % | Miscarriage % | ", + "|-------------|--------------|---------------| ", + "| <20 | 11.4% | 8% | ", + "| 20-24 | 32.7% | 8% | ", + "| 25-29 | 25.9% | 8% | ", + "| 30-34 | 16.8% | 12% | ", + "| 35-39 | 9.2% | 19% | ", + "| 40-44 | 3.6% | 39% | ", + "| 45+ | 3.6% | 60% | ", + "'--------------------------------------------' ", + "Abortions source: https://www.cdc.gov/mmwr/volumes/65/ss/ss6512a1.htm", + "Miscarriage source: http://www.advancedfertility.com/age-miscarriage.htm" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 45, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.036, + "transition": "End_Initial_Visit_Towards_Abortion" + }, + { + "distribution": 0.51, + "transition": "Miscarriage_In_First_Trimester" + }, + { + "distribution": 0.454, + "transition": "Pregnancy_CarePlan" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 40, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.036, + "transition": "End_Initial_Visit_Towards_Abortion" + }, + { + "distribution": 0.332, + "transition": "Miscarriage_In_First_Trimester" + }, + { + "distribution": 0.632, + "transition": "Pregnancy_CarePlan" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 35, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.092, + "transition": "End_Initial_Visit_Towards_Abortion" + }, + { + "distribution": 0.162, + "transition": "Miscarriage_In_First_Trimester" + }, + { + "distribution": 0.746, + "transition": "Pregnancy_CarePlan" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 30, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.168, + "transition": "End_Initial_Visit_Towards_Abortion" + }, + { + "distribution": 0.102, + "transition": "Miscarriage_In_First_Trimester" + }, + { + "distribution": 0.73, + "transition": "Pregnancy_CarePlan" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 25, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.259, + "transition": "End_Initial_Visit_Towards_Abortion" + }, + { + "distribution": 0.068, + "transition": "Miscarriage_In_First_Trimester" + }, + { + "distribution": 0.673, + "transition": "Pregnancy_CarePlan" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 20, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.327, + "transition": "End_Initial_Visit_Towards_Abortion" + }, + { + "distribution": 0.068, + "transition": "Miscarriage_In_First_Trimester" + }, + { + "distribution": 0.605, + "transition": "Pregnancy_CarePlan" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.114, + "transition": "End_Initial_Visit_Towards_Abortion" + }, + { + "distribution": 0.068, + "transition": "Miscarriage_In_First_Trimester" + }, + { + "distribution": 0.818, + "transition": "Pregnancy_CarePlan" + } + ] + } + ] + }, + "Pregnancy_CarePlan": { + "type": "CarePlanStart", + "reason": "Become_Pregnant", + "remarks": [ + "There are MANY activities that could be associated with a pregnancy care plan.", + "I selected a set of generic activities (physical, educational, psychiatric)", + "that would be common to most pregnancy care plans." + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "134435003", + "display": "Routine antenatal care (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "135892000", + "display": "Antenatal education (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "713076009", + "display": "Antenatal risk assessment (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "312404004", + "display": "Antenatal blood tests (procedure)" + } + ], + "assign_to_attribute": "pregnancy_careplan", + "direct_transition": "Inital_Visit_Fundal_Height" + }, + "Inital_Visit_Fundal_Height": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "274804006", + "display": "Evaluation of uterine fundal height (procedure)" + } + ], + "direct_transition": "Inital_Visit_Fetal_Heartbeat" + }, + "Inital_Visit_Fetal_Heartbeat": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225158009", + "display": "Auscultation of the fetal heart (procedure)" + } + ], + "direct_transition": "Blood_Typing" + }, + "Blood_Typing": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "44608003", + "display": "Blood group typing (procedure)" + } + ], + "direct_transition": "Hemoglobin_Test" + }, + "Hemoglobin_Test": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "104091002", + "display": "Hemogram, automated, with red blood cells, white blood cells, hemoglobin, hematocrit, indices, platelet count, and manual white blood cell differential (procedure)" + } + ], + "direct_transition": "Hep_B_Surface_Antigen" + }, + "Hep_B_Surface_Antigen": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "47758006", + "display": "Hepatitis B surface antigen measurement (procedure)" + } + ], + "direct_transition": "HIV_Test" + }, + "HIV_Test": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "31676001", + "display": "Human immunodeficiency virus antigen test (procedure)" + } + ], + "direct_transition": "Chlamydia_Test" + }, + "Chlamydia_Test": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "310861008", + "display": "Chlamydia antigen test (procedure)" + } + ], + "direct_transition": "Gonorrhea_Test" + }, + "Gonorrhea_Test": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "165829005", + "display": "Gonorrhea infection titer test (procedure)" + } + ], + "direct_transition": "Syphilis_Test" + }, + "Syphilis_Test": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "269828009", + "display": "Syphilis infectious titer test (procedure)" + } + ], + "direct_transition": "Urine_Culture" + }, + "Urine_Culture": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "117010004", + "display": "Urine culture (procedure)" + } + ], + "direct_transition": "Pap_Smear" + }, + "Pap_Smear": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "90226004", + "display": "Cytopathology procedure, preparation of smear, genital source (procedure)" + } + ], + "direct_transition": "Diabetes_Screen" + }, + "Diabetes_Screen": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "395123002", + "display": "Urine screening test for diabetes (procedure)" + } + ], + "direct_transition": "Hep_C_Test" + }, + "Hep_C_Test": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "104375008", + "display": "Hepatitis C antibody, confirmatory test (procedure)" + } + ], + "direct_transition": "Rubella_Screen" + }, + "Rubella_Screen": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "314098000", + "display": "Rubella screening test (procedure)" + } + ], + "direct_transition": "Varicella_Test" + }, + "Varicella_Test": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "104326007", + "display": "Measurement of Varicella-zoster virus antibody (procedure)" + } + ], + "direct_transition": "Tuberculosis_Test" + }, + "Tuberculosis_Test": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "28163009", + "display": "Skin test for tuberculosis, Tine test (procedure)" + } + ], + "direct_transition": "Urine_Protein_Test" + }, + "Urine_Protein_Test": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "167271000", + "display": "Urine protein test" + } + ], + "direct_transition": "Physical_Exam" + }, + "Physical_Exam": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "5880005", + "display": "Physical examination procedure (procedure)" + } + ], + "direct_transition": "End_Prenatal_Initial_Visit" + }, + "End_Initial_Visit_Towards_Abortion": { + "type": "EncounterEnd", + "direct_transition": "Wait_For_Induced_Abortion" + }, + "End_Prenatal_Initial_Visit": { + "type": "EncounterEnd", + "distributed_transition": [ + { + "transition": "Check_Anemia_Exist", + "distribution": 0.123 + }, + { + "transition": "End_Anemia_Check", + "distribution": 0.877 + } + ], + "remarks": [ + "Anemia across the board was 8.8% (general) and 3.5% for severe - " + ] + }, + "Non_Low_Risk_Pregnancy": { + "type": "ConditionOnset", + "remarks": [ + "======================================================================", + " NON LOW RISK PREGNANCY ", + "======================================================================" + ], + "target_encounter": "Prenatal_Initial_Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "47200007", + "display": "High risk pregnancy (finding)" + } + ], + "assign_to_attribute": "non_low_risk_pregnancy", + "direct_transition": "Non_Low_Risk_Pregnancy_Ends" + }, + "Non_Low_Risk_Pregnancy_Ends": { + "type": "ConditionEnd", + "referenced_by_attribute": "non_low_risk_pregnancy", + "direct_transition": "Normal_Birth" + }, + "Week_12": { + "type": "Delay", + "exact": { + "quantity": 4, + "unit": "weeks" + }, + "direct_transition": "Week_12_Visit" + }, + "Week_12_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424619006", + "display": "Prenatal visit (regime/therapy)" + } + ], + "direct_transition": "Week_12_Fundal_Height" + }, + "Week_12_Fundal_Height": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "274804006", + "display": "Evaluation of uterine fundal height (procedure)" + } + ], + "direct_transition": "Week_12_Fetal_Heartbeat" + }, + "Week_12_Fetal_Heartbeat": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225158009", + "display": "Auscultation of the fetal heart (procedure)" + } + ], + "direct_transition": "Fetal_Aneuploidy_Screen" + }, + "Fetal_Aneuploidy_Screen": { + "type": "Procedure", + "reason": "Become_Pregnant", + "remarks": [ + "This is just one option for genetic screening, many options exist but it is unreasonable to represent all options." + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "443529005", + "display": "Detection of chromosomal aneuploidy in prenatal amniotic fluid specimen using fluorescence in situ hybridization screening technique (procedure)" + } + ], + "direct_transition": "End_Week_12_Visit" + }, + "End_Week_12_Visit": { + "type": "EncounterEnd", + "direct_transition": "Week_16" + }, + "Week_16": { + "type": "Delay", + "exact": { + "quantity": 4, + "unit": "weeks" + }, + "direct_transition": "Week_16_Visit" + }, + "Week_16_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424619006", + "display": "Prenatal visit (regime/therapy)" + } + ], + "distributed_transition": [ + { + "distribution": 0.038, + "transition": "Miscarriage_In_Second_Trimester", + "remarks": [ + "Again, to ensure the total of 17.1% fetal loss the remaining 15% must ", + "miscarriage now. For simplicity the remaining miscarriages only occur ", + "in the second trimester. Typically third trimester miscarriages are not ", + "categorized as 'miscarriages' anyway, but rather 'still births'." + ] + }, + { + "distribution": 0.962, + "transition": "Fetal_Anatomy_Study" + } + ] + }, + "Fetal_Anatomy_Study": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "271442007", + "display": "Fetal anatomy study (procedure)" + } + ], + "direct_transition": "AFP_Test" + }, + "AFP_Test": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "275833003", + "display": "Alpha-fetoprotein test - antenatal (procedure)" + } + ], + "direct_transition": "Week_16_Fundal_Height" + }, + "Week_16_Fundal_Height": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "274804006", + "display": "Evaluation of uterine fundal height (procedure)" + } + ], + "direct_transition": "Week_16_Fetal_Heartbeat" + }, + "Week_16_Fetal_Heartbeat": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225158009", + "display": "Auscultation of the fetal heart (procedure)" + } + ], + "direct_transition": "End_Week_16_Visit" + }, + "End_Week_16_Visit": { + "type": "EncounterEnd", + "direct_transition": "Week_20" + }, + "Week_20": { + "type": "Delay", + "exact": { + "quantity": 4, + "unit": "weeks" + }, + "direct_transition": "Week_20_Visit" + }, + "Week_20_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424619006", + "display": "Prenatal visit (regime/therapy)" + } + ], + "direct_transition": "Week_20_Fundal_Height" + }, + "Week_20_Fundal_Height": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "274804006", + "display": "Evaluation of uterine fundal height (procedure)" + } + ], + "direct_transition": "Week_20_Fetal_Heartbeat" + }, + "Week_20_Fetal_Heartbeat": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225158009", + "display": "Auscultation of the fetal heart (procedure)" + } + ], + "direct_transition": "End_Week_20_Visit" + }, + "End_Week_20_Visit": { + "type": "EncounterEnd", + "direct_transition": "Week_24" + }, + "Week_24": { + "type": "Delay", + "exact": { + "quantity": 4, + "unit": "weeks" + }, + "direct_transition": "Week_24_Visit" + }, + "Week_24_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424619006", + "display": "Prenatal visit (regime/therapy)" + } + ], + "direct_transition": "Week_24_Fundal_Height" + }, + "Week_24_Fundal_Height": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "274804006", + "display": "Evaluation of uterine fundal height (procedure)" + } + ], + "direct_transition": "Week_24_Fetal_Heartbeat" + }, + "Week_24_Fetal_Heartbeat": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225158009", + "display": "Auscultation of the fetal heart (procedure)" + } + ], + "direct_transition": "End_Week_24_Visit" + }, + "End_Week_24_Visit": { + "type": "EncounterEnd", + "direct_transition": "Week_28" + }, + "Week_28": { + "type": "Delay", + "exact": { + "quantity": 4, + "unit": "weeks" + }, + "direct_transition": "Week_28_Visit" + }, + "Week_28_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424619006", + "display": "Prenatal visit (regime/therapy)" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "RH_NEG", + "operator": "==", + "value": true + }, + "transition": "Antibody_Screen" + }, + { + "transition": "Second_Hemoglobin_Test" + } + ] + }, + "Antibody_Screen": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "169673001", + "display": "Antenatal RhD antibody screening (procedure)" + } + ], + "direct_transition": "RhoD_Immune_Globulin" + }, + "RhoD_Immune_Globulin": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "51116004", + "display": "Passive immunization (procedure)" + } + ], + "direct_transition": "Second_Hemoglobin_Test" + }, + "Second_Hemoglobin_Test": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "104091002", + "display": "Hemogram, automated, with red blood cells, white blood cells, hemoglobin, hematocrit, indices, platelet count, and manual white blood cell differential (procedure)" + } + ], + "direct_transition": "Tdap_Vaccine" + }, + "Tdap_Vaccine": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399014008", + "display": "Administration of vaccine product containing only Bordetella pertussis and Clostridium tetani and Corynebacterium diphtheriae antigens (procedure)" + } + ], + "direct_transition": "Glucose_Screen" + }, + "Glucose_Screen": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "268556000", + "display": "Urine screening for glucose (procedure)" + } + ], + "direct_transition": "Week_28_Fundal_Height" + }, + "Week_28_Fundal_Height": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "274804006", + "display": "Evaluation of uterine fundal height (procedure)" + } + ], + "direct_transition": "Week_28_Fetal_Heartbeat" + }, + "Week_28_Fetal_Heartbeat": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225158009", + "display": "Auscultation of the fetal heart (procedure)" + } + ], + "direct_transition": "End_Week_28_Visit" + }, + "End_Week_28_Visit": { + "type": "EncounterEnd", + "direct_transition": "Week_32" + }, + "Week_32": { + "type": "Delay", + "exact": { + "quantity": 4, + "unit": "weeks" + }, + "distributed_transition": [ + { + "distribution": 0.08, + "transition": "Develop_Pre_Eclampsia" + }, + { + "distribution": 0.92, + "transition": "Week_32_Visit" + } + ] + }, + "Develop_Pre_Eclampsia": { + "type": "ConditionOnset", + "target_encounter": "Week_32_Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "398254007", + "display": "Pre-eclampsia (disorder)" + } + ], + "assign_to_attribute": "pregnancy_complication", + "direct_transition": "Week_32_Visit" + }, + "Week_32_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424619006", + "display": "Prenatal visit (regime/therapy)" + } + ], + "direct_transition": "Week_32_Fundal_Height" + }, + "Week_32_Fundal_Height": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "274804006", + "display": "Evaluation of uterine fundal height (procedure)" + } + ], + "direct_transition": "Week_32_Fetal_Heartbeat" + }, + "Week_32_Fetal_Heartbeat": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225158009", + "display": "Auscultation of the fetal heart (procedure)" + } + ], + "direct_transition": "End_Week_32_Visit" + }, + "End_Week_32_Visit": { + "type": "EncounterEnd", + "direct_transition": "Week_36" + }, + "Week_36": { + "type": "Delay", + "exact": { + "quantity": 4, + "unit": "weeks" + }, + "distributed_transition": [ + { + "distribution": 0.08, + "transition": "Pre_Eclampsia_Check" + }, + { + "distribution": 0.8518, + "transition": "Week_36_Visit" + }, + { + "distribution": 0.0682, + "transition": "Premature_Birth" + } + ] + }, + "Pre_Eclampsia_Check": { + "type": "Simple", + "remarks": [ + "If the patient already has pre-eclampsia we need to end it before giving them eclampsia." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "pregnancy_complication", + "operator": "is not nil" + }, + "transition": "Pre_Eclampsia_Becomes_Eclampsia" + }, + { + "transition": "Develop_Eclampsia" + } + ] + }, + "Pre_Eclampsia_Becomes_Eclampsia": { + "type": "ConditionEnd", + "referenced_by_attribute": "pregnancy_complication", + "direct_transition": "Develop_Eclampsia" + }, + "Develop_Eclampsia": { + "type": "ConditionOnset", + "target_encounter": "Week_36_Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "198992004", + "display": "Eclampsia in pregnancy (disorder)" + } + ], + "assign_to_attribute": "pregnancy_complication", + "direct_transition": "Week_36_Visit" + }, + "Week_36_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424619006", + "display": "Prenatal visit (regime/therapy)" + } + ], + "direct_transition": "Group_B_Strep_Test" + }, + "Group_B_Strep_Test": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "118001005", + "display": "Streptococcus pneumoniae group B antigen assay (procedure)" + } + ], + "direct_transition": "Week_36_Fundal_Height" + }, + "Week_36_Fundal_Height": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "274804006", + "display": "Evaluation of uterine fundal height (procedure)" + } + ], + "direct_transition": "Week_36_Fetal_Heartbeat" + }, + "Week_36_Fetal_Heartbeat": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225158009", + "display": "Auscultation of the fetal heart (procedure)" + } + ], + "direct_transition": "End_Week_36_Visit" + }, + "End_Week_36_Visit": { + "type": "EncounterEnd", + "direct_transition": "Week_38" + }, + "Week_38": { + "type": "Delay", + "exact": { + "quantity": 2, + "unit": "weeks" + }, + "distributed_transition": [ + { + "distribution": 0.25, + "transition": "Normal_Birth" + }, + { + "distribution": 0.75, + "transition": "Week_38_Visit" + } + ] + }, + "Week_38_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424619006", + "display": "Prenatal visit (regime/therapy)" + } + ], + "direct_transition": "Week_38_Fundal_Height" + }, + "Week_38_Fundal_Height": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "274804006", + "display": "Evaluation of uterine fundal height (procedure)" + } + ], + "direct_transition": "Week_38_Fetal_Heartbeat" + }, + "Week_38_Fetal_Heartbeat": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225158009", + "display": "Auscultation of the fetal heart (procedure)" + } + ], + "direct_transition": "End_Week_38_Visit" + }, + "End_Week_38_Visit": { + "type": "EncounterEnd", + "direct_transition": "Week_39" + }, + "Week_39": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "distributed_transition": [ + { + "distribution": 0.6, + "transition": "Normal_Birth" + }, + { + "distribution": 0.4, + "transition": "Week_39_Visit" + } + ] + }, + "Premature_Birth": { + "type": "SetAttribute", + "attribute": "birth_type", + "value": "premature", + "direct_transition": "Birth" + }, + "Week_39_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424619006", + "display": "Prenatal visit (regime/therapy)" + } + ], + "direct_transition": "Week_39_Fundal_Height" + }, + "Week_39_Fundal_Height": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "274804006", + "display": "Evaluation of uterine fundal height (procedure)" + } + ], + "direct_transition": "Week_39_Fetal_Heartbeat" + }, + "Week_39_Fetal_Heartbeat": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225158009", + "display": "Auscultation of the fetal heart (procedure)" + } + ], + "direct_transition": "End_Week_39_Visit" + }, + "End_Week_39_Visit": { + "type": "EncounterEnd", + "direct_transition": "Week_40" + }, + "Normal_Birth": { + "type": "SetAttribute", + "attribute": "birth_type", + "value": "normal", + "direct_transition": "Birth" + }, + "Week_40": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Normal_Birth" + }, + { + "distribution": 0.3, + "transition": "Week_40_Visit" + } + ] + }, + "Week_40_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424619006", + "display": "Prenatal visit (regime/therapy)" + } + ], + "direct_transition": "Week_40_Fundal_Height" + }, + "Week_40_Fundal_Height": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "274804006", + "display": "Evaluation of uterine fundal height (procedure)" + } + ], + "direct_transition": "Week_40_Fetal_Heartbeat" + }, + "Week_40_Fetal_Heartbeat": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225158009", + "display": "Auscultation of the fetal heart (procedure)" + } + ], + "direct_transition": "End_Week_40_Visit" + }, + "End_Week_40_Visit": { + "type": "EncounterEnd", + "direct_transition": "Week_41" + }, + "Week_41": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "distributed_transition": [ + { + "distribution": 0.9, + "transition": "Normal_Birth" + }, + { + "distribution": 0.1, + "transition": "Week_41_Visit" + } + ] + }, + "Week_41_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424619006", + "display": "Prenatal visit (regime/therapy)" + } + ], + "direct_transition": "Week_41_Fundal_Height" + }, + "Week_41_Fundal_Height": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "274804006", + "display": "Evaluation of uterine fundal height (procedure)" + } + ], + "direct_transition": "Week_41_Fetal_Heartbeat" + }, + "Week_41_Fetal_Heartbeat": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225158009", + "display": "Auscultation of the fetal heart (procedure)" + } + ], + "direct_transition": "End_Week_41_Visit" + }, + "End_Week_41_Visit": { + "type": "EncounterEnd", + "discharge_disposition": { + "system": "NUBC", + "code": "02", + "display": "Transferred to a short term general hospital for inpatient care" + }, + "direct_transition": "Induced_Birth" + }, + "Induced_Birth": { + "type": "SetAttribute", + "attribute": "birth_type", + "value": "induced", + "direct_transition": "Birth" + }, + "Birth": { + "type": "Simple", + "remarks": [ + "======================================================================", + " BIRTH ", + "======================================================================", + "Possible 'birth_type' values: 'normal', 'premature', 'induced' ", + "Unless the birth was elected and intentional (in the case of an induced birth) ", + "births follow the usual distribution of locations, complications, etc.", + "A small portion of births (2%) happen at home or on the way to the hospital. For simplicity ", + "all births in this module happen in a hospital setting. Future versions may add the additional ", + "complexity of home and BBA births." + ], + "direct_transition": "Hospital_Admission_For_Birth" + }, + "Hospital_Admission_For_Birth": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "Become_Pregnant", + "remarks": [ + "The birth section of this module is adapted from Jeff Eastman's (https://github.com/jeffeastman) ", + "initial birth module contributed to Synthea. All remaining probabilities in this section are ", + "Jeff's estimates." + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "183460006", + "display": "Obstetric emergency hospital admission (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.117, + "transition": "Spontaneous_Vaginal_Delivery" + }, + { + "distribution": 0.7246, + "transition": "Birth_Intervention" + }, + { + "distribution": 0.0736, + "transition": "Assisted_Delivery" + }, + { + "distribution": 0.0025, + "transition": "Spontaneous_Breech" + }, + { + "distribution": 0.0823, + "transition": "Elected_CS" + } + ] + }, + "Spontaneous_Vaginal_Delivery": { + "type": "Simple", + "direct_transition": "Give_Birth" + }, + "Birth_Intervention": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.24, + "transition": "Induction" + }, + { + "distribution": 0.2794, + "transition": "Epidural" + }, + { + "distribution": 0.1245, + "transition": "Augmentation" + }, + { + "distribution": 0.3561, + "transition": "Episiotomy" + } + ] + }, + "Induction": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "31208007", + "display": "Medical induction of labor (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.8341, + "transition": "Give_Birth" + }, + { + "distribution": 0.1659, + "transition": "Emergency_CS" + } + ] + }, + "Epidural": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "18946005", + "display": "Epidural anesthesia (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.8341, + "transition": "Spontaneous_Vaginal_Delivery" + }, + { + "distribution": 0.1659, + "transition": "Emergency_CS" + } + ] + }, + "Augmentation": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "237001001", + "display": "Augmentation of labor (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.8341, + "transition": "Spontaneous_Vaginal_Delivery" + }, + { + "distribution": 0.1659, + "transition": "Emergency_CS" + } + ] + }, + "Episiotomy": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "85548006", + "display": "Episiotomy (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.8341, + "transition": "Spontaneous_Vaginal_Delivery" + }, + { + "distribution": 0.1659, + "transition": "Emergency_CS" + } + ] + }, + "Assisted_Delivery": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "236974004", + "display": "Instrumental delivery (procedure)" + } + ], + "direct_transition": "Give_Birth" + }, + "Spontaneous_Breech": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "177157003", + "display": "Spontaneous breech delivery (procedure)" + } + ], + "direct_transition": "Give_Birth" + }, + "Elected_CS": { + "type": "Simple", + "direct_transition": "Give_Birth" + }, + "Emergency_CS": { + "type": "SetAttribute", + "attribute": "birth_type", + "value": "induced", + "remarks": [ + "By the time the patient reaches this state the 'birth_type' attribute should already ", + "be set to 'induced'. This is to catch the emergency CS procedure that come from any ", + "complications during childbirth." + ], + "direct_transition": "Give_Birth" + }, + "Give_Birth": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "birth_type", + "operator": "==", + "value": "normal" + }, + "transition": "Normal_Birth_Procedure" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "birth_type", + "operator": "==", + "value": "premature" + }, + "transition": "Premature_Birth_Procedure" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "birth_type", + "operator": "==", + "value": "induced" + }, + "transition": "Induced_Birth_Procedure" + } + ] + }, + "Normal_Birth_Procedure": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "66348005", + "display": "Childbirth" + } + ], + "direct_transition": "Normal_Pregnancy_Completion" + }, + "Premature_Birth_Procedure": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "367494004", + "display": "Premature birth of newborn (finding)" + } + ], + "direct_transition": "Normal_Pregnancy_Completion" + }, + "Induced_Birth_Procedure": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "11466000", + "display": "Cesarean section (procedure)" + } + ], + "direct_transition": "Normal_Pregnancy_Completion" + }, + "Miscarriage_In_First_Trimester": { + "type": "ConditionOnset", + "remarks": [ + "======================================================================", + " MISCARRIAGES ", + "======================================================================" + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "19169002", + "display": "Miscarriage in first trimester (disorder)" + } + ], + "assign_to_attribute": "miscarriage", + "distributed_transition": [ + { + "distribution": 0.6, + "transition": "Early_Uknown_Complication" + }, + { + "distribution": 0.285, + "transition": "Blighted_Ovum" + }, + { + "distribution": 0.115, + "transition": "Ectopic_Pregnancy" + } + ] + }, + "End_Initial_Visit_Towards_Ectopic_Pregnancy": { + "type": "EncounterEnd", + "direct_transition": "Wait_For_Ectopic_Pregnancy_Encounter" + }, + "Miscarriage_In_Second_Trimester": { + "type": "ConditionOnset", + "target_encounter": "Week_16_Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "85116003", + "display": "Miscarriage in second trimester (disorder)" + } + ], + "assign_to_attribute": "miscarriage", + "distributed_transition": [ + { + "distribution": 0.6, + "transition": "Late_Fetal_Chromosomal_Anomaly" + }, + { + "distribution": 0.25, + "transition": "Uterine_Anomaly" + }, + { + "distribution": 0.15, + "transition": "Unknown_Complication" + } + ] + }, + "Early_Uknown_Complication": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "156073000", + "display": "Complete miscarriage (disorder)" + } + ], + "assign_to_attribute": "fatal_pregnancy_complication", + "direct_transition": "End_Miscarriage_Encounter" + }, + "Blighted_Ovum": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "35999006", + "display": "Blighted ovum (disorder)" + } + ], + "assign_to_attribute": "fatal_pregnancy_complication", + "direct_transition": "End_Miscarriage_Encounter" + }, + "Wait_For_Ectopic_Pregnancy_Encounter": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "weeks" + }, + "direct_transition": "Ectopic_Pregnancy_Encounter" + }, + "Ectopic_Pregnancy_Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305408004", + "display": "Admission to surgical department (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.5, + "transition": "Methotrexate_Injection", + "remarks": [ + "This distribution is set to 50/50 for now as there is no available ", + "data regarding this distribution. " + ] + }, + { + "distribution": 0.5, + "transition": "Ectopic_Pregnancy_Surgery_Procedure" + } + ], + "reason": "Ectopic_Pregnancy" + }, + "Methotrexate_Injection": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "236931002", + "display": "Methotrexate injection into tubal pregnancy (procedure)" + } + ], + "direct_transition": "Length of Stay", + "reason": "Ectopic_Pregnancy" + }, + "Ectopic_Pregnancy_Surgery_Procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "445912000", + "display": "Excision of fallopian tube and surgical removal of ectopic pregnancy (procedure)" + } + ], + "direct_transition": "Length of Stay", + "reason": "Ectopic_Pregnancy" + }, + "Late_Fetal_Chromosomal_Anomaly": { + "type": "ConditionOnset", + "target_encounter": "Week_16_Visit", + "assign_to_attribute": "fatal_pregnancy_complication", + "remarks": [ + "This is a separate state due to the limitation that a ConditionOnset must occur ", + "before or concurrently with its target_encounter." + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "267253006", + "display": "Fetus with chromosomal abnormality (disorder)" + } + ], + "direct_transition": "End_Miscarriage_Encounter" + }, + "Uterine_Anomaly": { + "type": "ConditionOnset", + "target_encounter": "Week_16_Visit", + "assign_to_attribute": "fatal_pregnancy_complication", + "codes": [ + { + "system": "SNOMED-CT", + "code": "37849005", + "display": "Congenital uterine anomaly (disorder)" + } + ], + "direct_transition": "End_Miscarriage_Encounter" + }, + "Unknown_Complication": { + "type": "ConditionOnset", + "target_encounter": "Week_16_Visit", + "assign_to_attribute": "fatal_pregnancy_complication", + "codes": [ + { + "system": "SNOMED-CT", + "code": "609496007", + "display": "Complication occurring during pregnancy (disorder)" + } + ], + "direct_transition": "End_Miscarriage_Encounter" + }, + "End_Miscarriage_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Wait_For_Miscarriage_Followup_Encounter" + }, + "Wait_For_Miscarriage_Followup_Encounter": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "weeks" + }, + "direct_transition": "Miscarriage_Followup_Encounter" + }, + "Miscarriage_Followup_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "fatal_pregnancy_complication", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424619006", + "display": "Prenatal visit (regime/therapy)" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "RH_NEG", + "operator": "==", + "value": true + }, + "transition": "RhoD_Immune_Globulin_Post_Miscarriage" + }, + { + "transition": "Physical_Exam_Post_Miscarriage" + } + ] + }, + "RhoD_Immune_Globulin_Post_Miscarriage": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "51116004", + "display": "Passive immunization (procedure)" + } + ], + "direct_transition": "Physical_Exam_Post_Miscarriage" + }, + "Physical_Exam_Post_Miscarriage": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "5880005", + "display": "Physical examination procedure (procedure)" + } + ], + "direct_transition": "Depression_Screening_Post_Miscarriage" + }, + "Depression_Screening_Post_Miscarriage": { + "type": "Procedure", + "reason": "fatal_pregnancy_complication", + "codes": [ + { + "system": "SNOMED-CT", + "code": "171207006", + "display": "Depression screening (procedure)" + } + ], + "direct_transition": "Miscarriage_Fatal_Pregnancy_Complication_Ends" + }, + "Miscarriage_Fatal_Pregnancy_Complication_Ends": { + "type": "ConditionEnd", + "referenced_by_attribute": "fatal_pregnancy_complication", + "direct_transition": "History_of_Miscarriage" + }, + "End_Miscarriage_Followup_Encounter": { + "type": "EncounterEnd", + "direct_transition": "End_Miscarriage_Condition" + }, + "Wait_For_Induced_Abortion": { + "type": "Delay", + "remarks": [ + "======================================================================", + " INDUCED ABORTIONS ", + "======================================================================" + ], + "range": { + "low": 1, + "high": 3, + "unit": "weeks" + }, + "direct_transition": "Induced_Abortion_Encounter" + }, + "Induced_Abortion_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "270427003", + "display": "Patient-initiated encounter (procedure)" + } + ], + "direct_transition": "Induced_Abortion_Therapy" + }, + "Induced_Abortion_Therapy": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "10383002", + "display": "Counseling for termination of pregnancy (procedure)" + } + ], + "direct_transition": "Induced_Abortion_Procedure" + }, + "Induced_Abortion_Procedure": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "714812005", + "display": "Induced termination of pregnancy (procedure)" + } + ], + "direct_transition": "End_Induced_Abortion_Encounter" + }, + "End_Induced_Abortion_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Wait_For_Abortion_Followup_Encounter" + }, + "Wait_For_Abortion_Followup_Encounter": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "weeks" + }, + "direct_transition": "Abortion_Followup_Encounter" + }, + "Abortion_Followup_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424619006", + "display": "Prenatal visit (regime/therapy)" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "RH_NEG", + "operator": "==", + "value": true + }, + "transition": "RhoD_Immune_Globulin_Post_Abortion" + }, + { + "transition": "Pregnancy_Termination_Care" + } + ] + }, + "RhoD_Immune_Globulin_Post_Abortion": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "51116004", + "display": "Passive immunization (procedure)" + } + ], + "direct_transition": "Pregnancy_Termination_Care" + }, + "Pregnancy_Termination_Care": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386394001", + "display": "Pregnancy termination care (regime/therapy)" + } + ], + "direct_transition": "Physical_Exam_Post_Abortion" + }, + "Physical_Exam_Post_Abortion": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "5880005", + "display": "Physical examination procedure (procedure)" + } + ], + "direct_transition": "Depression_Screening_Post_Abortion" + }, + "Depression_Screening_Post_Abortion": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "171207006", + "display": "Depression screening (procedure)" + } + ], + "direct_transition": "End_Abortion_Followup_Encounter" + }, + "End_Abortion_Followup_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Abortion_Ends" + }, + "Normal_Pregnancy_Completion": { + "type": "Counter", + "action": "increment", + "attribute": "number_of_children", + "remarks": [ + "======================================================================", + " PREGNANCY COMPLETION ", + "======================================================================", + "A pregnancy resulting in live birth increments the 'number_of_children' ", + "counter. This allows us to track how many children are born to each mother." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "pregnancy_complication", + "operator": "is not nil" + }, + "transition": "Pregnancy_Complication_Ends" + }, + { + "transition": "Pregnancy_CarePlan_Ends" + } + ] + }, + "Pregnancy_Complication_Ends": { + "type": "ConditionEnd", + "referenced_by_attribute": "pregnancy_complication", + "direct_transition": "Unset_Pregnancy_Complication_Attribute" + }, + "Unset_Pregnancy_Complication_Attribute": { + "type": "SetAttribute", + "attribute": "pregnancy_complication", + "direct_transition": "Pregnancy_CarePlan_Ends" + }, + "Pregnancy_CarePlan_Ends": { + "type": "CarePlanEnd", + "referenced_by_attribute": "pregnancy_careplan", + "direct_transition": "End_Birth_Encounter" + }, + "End_Birth_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Normal_Pregnancy_Ends" + }, + "Normal_Pregnancy_Ends": { + "type": "ConditionEnd", + "condition_onset": "Become_Pregnant", + "conditional_transition": [ + { + "transition": "Anemia_End", + "condition": { + "condition_type": "Attribute", + "attribute": "anemia_pregnancy", + "operator": "==", + "value": 1 + } + }, + { + "transition": "Six_Weeks_After_Birth" + } + ] + }, + "Abortion_Ends": { + "type": "ConditionEnd", + "condition_onset": "Become_Pregnant", + "direct_transition": "Unset_Pregnant_Attribute" + }, + "Six_Weeks_After_Birth": { + "type": "Delay", + "exact": { + "quantity": 6, + "unit": "weeks" + }, + "direct_transition": "Postnatal_Visit" + }, + "Postnatal_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "169762003", + "display": "Postnatal visit (regime/therapy)" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "RH_NEG", + "operator": "==", + "value": true + }, + "transition": "RhoD_Immune_Globulin_Post_Birth" + }, + { + "transition": "Physical_Exam_Post_Birth" + } + ] + }, + "RhoD_Immune_Globulin_Post_Birth": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "51116004", + "display": "Passive immunization (procedure)" + } + ], + "direct_transition": "Physical_Exam_Post_Birth" + }, + "Physical_Exam_Post_Birth": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "5880005", + "display": "Physical examination procedure (procedure)" + } + ], + "direct_transition": "Depression_Screening_Post_Birth" + }, + "Depression_Screening_Post_Birth": { + "type": "Procedure", + "reason": "Become_Pregnant", + "codes": [ + { + "system": "SNOMED-CT", + "code": "171207006", + "display": "Depression screening (procedure)" + } + ], + "direct_transition": "End_Postnatal_Visit" + }, + "End_Postnatal_Visit": { + "type": "EncounterEnd", + "direct_transition": "Unset_Pregnant_Attribute" + }, + "Unset_Pregnant_Attribute": { + "type": "SetAttribute", + "attribute": "pregnant", + "value": false, + "direct_transition": "Become_Pregnant_Guard" + }, + "Terminal": { + "type": "Terminal" + }, + "Anemia_Submodule": { + "type": "CallSubmodule", + "submodule": "anemia/anemia_sub", + "direct_transition": "Set_Anemia_Pregnancy" + }, + "End_Anemia_Check": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.9999, + "transition": "Week_12" + }, + { + "distribution": 0.0001, + "transition": "Non_Low_Risk_Pregnancy" + } + ] + }, + "Check_Anemia_Exist": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Anemia_Submodule", + "condition": { + "condition_type": "Attribute", + "attribute": "anemia", + "operator": "is nil" + } + }, + { + "transition": "End_Anemia_Check" + } + ] + }, + "Set_Anemia_Pregnancy": { + "type": "SetAttribute", + "attribute": "anemia_pregnancy", + "direct_transition": "End_Anemia_Check", + "value": 1 + }, + "Anemia_End": { + "type": "ConditionEnd", + "referenced_by_attribute": "anemia", + "direct_transition": "Remove_Anemia_Pregnacy" + }, + "Remove_Anemia_Pregnacy": { + "type": "SetAttribute", + "attribute": "anemia_pregnancy", + "direct_transition": "Six_Weeks_After_Birth", + "value": 0 + }, + "Anemia_End_2": { + "type": "ConditionEnd", + "referenced_by_attribute": "anemia", + "direct_transition": "Remove_Anemia_Pregnacy_2" + }, + "Remove_Anemia_Pregnacy_2": { + "type": "SetAttribute", + "attribute": "anemia_pregnancy", + "value": 0, + "direct_transition": "Unset_Pregnant_Attribute" + }, + "Length of Stay": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "133899007", + "display": "Postoperative care (regime/therapy)" + } + ], + "distribution": { + "kind": "EXPONENTIAL", + "parameters": { + "mean": 2.5 + } + }, + "unit": "days", + "direct_transition": "End_Miscarriage_Encounter" + }, + "Ectopic_Pregnancy": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "79586000", + "display": "Tubal pregnancy (disorder)" + } + ], + "assign_to_attribute": "fatal_pregnancy_complication", + "direct_transition": "End_Initial_Visit_Towards_Ectopic_Pregnancy" + }, + "Miscarriage_Ends_Pregnancy": { + "type": "ConditionEnd", + "condition_onset": "Become_Pregnant", + "conditional_transition": [ + { + "transition": "Anemia_End_2", + "condition": { + "condition_type": "Attribute", + "attribute": "anemia_pregnancy", + "operator": "==", + "value": 1 + } + }, + { + "transition": "Unset_Pregnant_Attribute" + } + ] + }, + "End_Miscarriage_Condition": { + "type": "ConditionEnd", + "direct_transition": "Miscarriage_Ends_Pregnancy", + "referenced_by_attribute": "miscarriage" + }, + "History_of_Miscarriage": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "161744009", + "display": "Past pregnancy history of miscarriage (situation)" + } + ], + "direct_transition": "End_Miscarriage_Followup_Encounter" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/prescribing_opioids_for_chronic_pain_and_treatment_of_oud.json b/src/main/resources/modules/prescribing_opioids_for_chronic_pain_and_treatment_of_oud.json new file mode 100644 index 0000000..dc77ac2 --- /dev/null +++ b/src/main/resources/modules/prescribing_opioids_for_chronic_pain_and_treatment_of_oud.json @@ -0,0 +1,3226 @@ +{ + "name": "Prescribing Opioids for Chronic Pain and Treatment of OUD", + "remarks": [ + "Module Title: Prescribing Opioids for Chronic Pain and Treatment of Opioid Use Disorder", + "", + "Version Number: 1.0", + "", + "Date Created: 11/02/2020", + "", + "Module Steward: Office of the National Coordinator for Health Information Technology (ONC)", + "", + "Module Developer: Clinovations Government + Health", + "", + "Description: This module models the prescribing of opioids for chronic pain and treatment of opioid use disorder (OUD) for patients age >= 18. It is based on the Centers for Disease Control (CDC) Guideline for Prescribing Opioids for Chronic Pain. This CDC guideline provides recommendations for the prescribing of opioid pain medication by primary care clinicians for chronic pain (i.e., pain conditions that typically last >3 months or past the time of normal tissue healing) in outpatient settings outside of active cancer treatment, palliative care, and end-of-life care. The applicable year of this module is set to 2014 and after. This module does not address the transition from acute pain to chronic pain. The Treatment of OUD component of this module is modeled based on the American Society of Addiction Medicine (ASAM) National Practice Guideline for the Use of Medications in the Treatment of Addiction Involving Opioid Use.", + "", + "Disclaimer: SyntheaTM is an open-source synthetic patient generator, created by MITRE, that models the medical history of synthetic patients. This module is developed using the Synthea Module Builder and is limited to the capabilities of Synthea and the Synthea Module Builder. ", + "This Synthea module is not a clinical guideline, does not establish a standard of medical care, and has not been tested for all potential applications. THIS MODULE IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF ANY KIND.", + "", + "Related Module(s): The Opioid Addiction (opioid_addiction.json) module applies to the period prior to 2014. ", + "", + "Reference: CDC Guideline for Prescribing Opioids for Chronic Pain — United States, 2016.", + "", + "Reference: The ASAM National Practice Guideline for the Use of Medications in the Treatment of Addiction Involving Opioid Use, June 1, 2015. ", + "", + "", + "" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_and_Module_Effective_Time_Guard" + }, + "Terminal": { + "type": "Terminal" + }, + "General_Adult_Population": { + "type": "Delay", + "distributed_transition": [ + { + "transition": "Condition_Chronic_Low_Back_Pain", + "distribution": 0.09 + }, + { + "transition": "Condition_Chronic_Neck_Pain", + "distribution": 0.12 + }, + { + "transition": "Condition_Migraine", + "distribution": 0.01 + }, + { + "transition": "Condition_Fibromyalgia", + "distribution": 0.03 + }, + { + "transition": "Terminal", + "distribution": 0.72 + }, + { + "transition": "Condition_Chronic_Neck_Pain_3", + "distribution": 0.03 + } + ], + "exact": { + "quantity": 1, + "unit": "months" + } + }, + "Nonpharmacologic_Treatment_Careplan_1": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "276239002", + "display": "Therapy (regime/therapy)" + } + ], + "assign_to_attribute": "therapy_referral", + "activities": [ + { + "system": "SNOMED-CT", + "code": "91251008", + "display": "Physical therapy procedure (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "228557008", + "display": "Cognitive and behavioral therapy (regime/therapy)" + } + ], + "distributed_transition": [ + { + "transition": "End_Initial_Chronic_Pain_Encounter", + "distribution": 0.44 + }, + { + "transition": "Enter_Nonopioid_Pharmacologic_Treatment_1", + "distribution": 0.29 + }, + { + "transition": "Enter_IR/SA_Opioid_Directed_Use_1", + "distribution": 0.27 + } + ] + }, + "Enter_Nonopioid_Pharmacologic_Treatment_1": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Rx_Ibuprofen_1", + "distribution": 0.5 + }, + { + "transition": "Rx_Acetaminophen_1", + "distribution": 0.5 + } + ] + }, + "Enter_IR/SA_Opioid_Directed_Use_1": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Rx_Percocet_1", + "distribution": 0.2325 + }, + { + "transition": "Rx_Codeine_1", + "distribution": 0.0925 + }, + { + "transition": "Rx_Vicodin_1", + "distribution": 0.5525 + }, + { + "transition": "Rx_Tramadol_1", + "distribution": 0.1225 + } + ] + }, + "Rx_Vicodin_1": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 856987, + "display": "Acetaminophen 300 MG / Hydrocodone Bitartrate 5 MG Oral Tablet" + } + ], + "direct_transition": "End_Initial_Chronic_Pain_Encounter", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 4, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "225757006", + "display": "Every four to six hours (qualifier value)" + } + ], + "refills": 3 + }, + "assign_to_attribute": "IR_opioid_Rx_1", + "chronic": true + }, + "Rx_Percocet_1": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1049625, + "display": "Acetaminophen 325 MG / Oxycodone Hydrochloride 10 MG Oral Tablet [Percocet]" + } + ], + "direct_transition": "End_Initial_Chronic_Pain_Encounter", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 4, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "307468000", + "display": "Every six hours (qualifier value)" + } + ], + "refills": 3 + }, + "assign_to_attribute": "IR_opioid_Rx_1", + "chronic": true + }, + "Rx_Ibuprofen_1": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 206905, + "display": "Ibuprofen 400 MG Oral Tablet [Ibu]" + } + ], + "direct_transition": "End_Initial_Chronic_Pain_Encounter", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 4, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "225757006", + "display": "Every four to six hours (qualifier value)" + } + ], + "as_needed": true, + "refills": 3 + }, + "assign_to_attribute": "nonopioid_Rx_1" + }, + "Rx_Acetaminophen_1": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 209387, + "display": "Acetaminophen 325 MG Oral Tablet [Tylenol]" + } + ], + "direct_transition": "End_Initial_Chronic_Pain_Encounter", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 4, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "225757006", + "display": "Every four to six hours (qualifier value)" + } + ], + "refills": 3 + }, + "assign_to_attribute": "nonopioid_Rx_1", + "administration": false, + "chronic": true + }, + "PEG_Assessment_Score_1": { + "type": "MultiObservation", + "category": "survey", + "number_of_observations": 0, + "codes": [ + { + "system": "LOINC", + "code": "91148-7", + "display": "Pain intensity, Enjoyment of life, General activity (PEG) 3 item pain scale" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "75893-8", + "display": "Pain severity in the past week - 0-10 numeric rating [Reported]" + } + ], + "range": { + "low": 1, + "high": 10 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "91145-3", + "display": "What number best describes how pain has interfered with your enjoyment of life during the past week" + } + ], + "range": { + "low": 1, + "high": 10 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "91146-1", + "display": "What number best describes how pain has interfered with your general activity during the past week" + } + ], + "range": { + "low": 1, + "high": 10 + } + } + ], + "distributed_transition": [ + { + "transition": "Without_Urine_Drug_Testing", + "distribution": 0.2 + }, + { + "transition": "Enter_Urine_Drug_Testing", + "distribution": 0.8 + } + ] + }, + "Condition_Chronic_Low_Back_Pain": { + "type": "ConditionOnset", + "assign_to_attribute": "chronic_low_back_pain_only", + "target_encounter": "Initial_Prescribing_Encounter_for_Chronic_Pain", + "codes": [ + { + "system": "SNOMED-CT", + "code": "278860009", + "display": "Chronic low back pain (finding)" + } + ], + "direct_transition": "Chronic_Pain_Reason" + }, + "End_Initial_Chronic_Pain_Encounter": { + "type": "EncounterEnd", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "therapy_referral", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 0.8, + "transition": "Enter_Physical_Therapy_1" + }, + { + "distribution": 0.2, + "transition": "Enter_CBT_Therapy_1" + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "therapy_referral", + "operator": "is nil" + }, + "distributions": [ + { + "distribution": 1, + "transition": "On_Opioid_Or_Nonopioid_1" + } + ] + } + ] + }, + "Chronic_Pain_Population": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "conditional_transition": [ + { + "transition": "Condition_Chronic_Neck_Pain_2", + "condition": { + "condition_type": "Attribute", + "attribute": "chronic_neck_pain_only", + "operator": "is not nil" + } + }, + { + "transition": "Condition_Chronic_Low_Back_Pain_2", + "condition": { + "condition_type": "Attribute", + "attribute": "chronic_low_back_pain_only", + "operator": "is not nil" + } + }, + { + "transition": "Condition_Migraine_2", + "condition": { + "condition_type": "Attribute", + "attribute": "migraine_only", + "operator": "is not nil" + } + }, + { + "transition": "Condition_Fibromyalgia_2", + "condition": { + "condition_type": "Attribute", + "attribute": "chronic_low_back_pain_with_fibromyalgia", + "operator": "is not nil" + } + }, + { + "transition": "Condition_Chronic_Neck_Pain_4", + "condition": { + "condition_type": "Attribute", + "attribute": "chronic_neck_and_low_back_pain", + "operator": "is not nil" + } + } + ] + }, + "Cognitive Behavior Therapy (CBT)_1": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "228557008", + "display": "Cognitive and behavioral therapy (regime/therapy)" + } + ], + "duration": { + "low": 30, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "End_CBT_Therapy_Encounter_1" + }, + "Condition_Chronic_Neck_Pain": { + "type": "ConditionOnset", + "assign_to_attribute": "chronic_neck_and_low_back_pain", + "target_encounter": "Initial_Prescribing_Encounter_for_Chronic_Pain", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1121000119107", + "display": "Chronic neck pain (finding)" + } + ], + "direct_transition": "Condition_Chronic_Low_Back_Pain_3" + }, + "Condition_Fibromyalgia": { + "type": "ConditionOnset", + "assign_to_attribute": "chronic_low_back_pain_with_fibromyalgia", + "target_encounter": "Initial_Prescribing_Encounter_for_Chronic_Pain", + "codes": [ + { + "system": "SNOMED-CT", + "code": "203082005", + "display": "Fibromyalgia (disorder)" + } + ], + "direct_transition": "Condition_Chronic_Low_Back_Pain_3" + }, + "Condition_Chronic_Low_Back_Pain_2": { + "type": "ConditionOnset", + "assign_to_attribute": "chronic_low_back_pain", + "target_encounter": "Follow_Up_Encounter_for_Chronic_Pain", + "codes": [ + { + "system": "SNOMED-CT", + "code": "278860009", + "display": "Chronic low back pain (finding)" + } + ], + "direct_transition": "Follow_Up_Encounter_for_Chronic_Pain" + }, + "Condition_Chronic_Neck_Pain_2": { + "type": "ConditionOnset", + "assign_to_attribute": "chronic_neck_pain", + "target_encounter": "Follow_Up_Encounter_for_Chronic_Pain", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1121000119107", + "display": "Chronic neck pain (finding)" + } + ], + "direct_transition": "Follow_Up_Encounter_for_Chronic_Pain" + }, + "Condition_Fibromyalgia_2": { + "type": "ConditionOnset", + "assign_to_attribute": "fibromyalgia", + "target_encounter": "Follow_Up_Encounter_for_Chronic_Pain", + "codes": [ + { + "system": "SNOMED-CT", + "code": "203082005", + "display": "Fibromyalgia (disorder)" + } + ], + "direct_transition": "Condition_Chronic_Low_Back_Pain_2" + }, + "Condition_Migraine": { + "type": "ConditionOnset", + "assign_to_attribute": "migraine_only", + "codes": [ + { + "system": "SNOMED-CT", + "code": "427419006", + "display": "Transformed migraine (disorder)" + } + ], + "direct_transition": "Chronic_Pain_Reason", + "target_encounter": "Initial_Prescribing_Encounter_for_Chronic_Pain" + }, + "Condition_Migraine_2": { + "type": "ConditionOnset", + "assign_to_attribute": "migraine", + "target_encounter": "Follow_Up_Encounter_for_Chronic_Pain", + "codes": [ + { + "system": "SNOMED-CT", + "code": "427419006", + "display": "Transformed migraine (disorder)" + } + ], + "direct_transition": "Follow_Up_Encounter_for_Chronic_Pain" + }, + "Follow_Up_Encounter_for_Chronic_Pain": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "distributed_transition": [ + { + "transition": "Enter_Urine_Drug_Testing_2", + "distribution": 0.5 + }, + { + "transition": "PEG_Assessment_Score_2", + "distribution": 0.5 + } + ], + "reason": "Chronic_Pain_Reason" + }, + "End_Follow_Up_Encounter_for_Chronic_Pain": { + "type": "EncounterEnd", + "direct_transition": "On_Opioid_Or_Nonopioid_2" + }, + "Enter_ER/LA_Opioid_Directed_Use": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Rx_12HR_Hydrocodone", + "distribution": 0.3 + }, + { + "transition": "Rx_Oxycontin", + "distribution": 0.3 + }, + { + "transition": "Rx_Duragesic", + "distribution": 0.4 + } + ] + }, + "Rx_12HR_Hydrocodone": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1860491, + "display": "12 HR Hydrocodone Bitartrate 10 MG Extended Release Oral Capsule" + } + ], + "direct_transition": "End_Follow_Up_Encounter_for_Chronic_Pain", + "assign_to_attribute": "ER_opioid_Rx", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "1831000175103", + "display": "Every twelve hours as required (qualifier value)" + } + ], + "refills": 3 + } + }, + "Rx_Oxycontin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1049504, + "display": "Abuse-Deterrent 12 HR Oxycodone Hydrochloride 10 MG Extended Release Oral Tablet [Oxycontin]" + } + ], + "direct_transition": "End_Follow_Up_Encounter_for_Chronic_Pain", + "assign_to_attribute": "ER_opioid_Rx", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "refills": 3 + } + }, + "Rx_Duragesic": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 245134, + "display": "72 HR Fentanyl 0.025 MG/HR Transdermal System" + } + ], + "direct_transition": "End_Follow_Up_Encounter_for_Chronic_Pain", + "assign_to_attribute": "ER_opioid_Rx", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 3, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "396143001", + "display": "Every seventy two hours (qualifier value)" + } + ], + "refills": 3 + } + }, + "Enter_Nonopioid_Pharmacologic_Treatment_2": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Rx_Ibuprofen_2", + "distribution": 0.5 + }, + { + "transition": "Rx_Acetaminophen_2", + "distribution": 0.5 + } + ], + "assign_to_attribute": "on_opioid_or_nonopioid" + }, + "Rx_Acetaminophen_2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 209387, + "display": "Acetaminophen 325 MG Oral Tablet [Tylenol]" + } + ], + "direct_transition": "End_Follow_Up_Encounter_for_Chronic_Pain", + "assign_to_attribute": "nonopioid_Rx_2", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 4, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "225757006", + "display": "Every four to six hours (qualifier value)" + } + ], + "refills": 3 + }, + "chronic": true + }, + "Rx_Ibuprofen_2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 206905, + "display": "Ibuprofen 400 MG Oral Tablet [Ibu]" + } + ], + "direct_transition": "End_Follow_Up_Encounter_for_Chronic_Pain", + "assign_to_attribute": "nonopioid_Rx_2", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 4, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "225757006", + "display": "Every four to six hours (qualifier value)" + } + ], + "refills": 3 + } + }, + "Nonpharmacologic_Treatment_Careplan_2": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "276239002", + "display": "Therapy (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "91251008", + "display": "Physical therapy procedure (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "228557008", + "display": "Cognitive and behavioral therapy (regime/therapy)" + } + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "IR_opioid_Rx_1", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "Enter_IR/SA_Opioid_Directed_Use_2", + "distribution": 0.2 + }, + { + "transition": "Enter_ER/LA_Opioid_Directed_Use", + "distribution": 0.8 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "nonopioid_Rx_1", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "Enter_Nonopioid_Pharmacologic_Treatment_2", + "distribution": 0.2 + }, + { + "transition": "Enter_IR/SA_Opioid_Directed_Use_2", + "distribution": 0.8 + } + ] + } + ] + }, + "Physical_Therapy_1": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "229064008", + "display": "Movement therapy (regime/therapy)" + } + ], + "duration": { + "low": 45, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "PT_Pain_Observation" + }, + "Enter_CBT_Therapy_1": { + "type": "Delay", + "exact": { + "quantity": 3, + "unit": "days" + }, + "direct_transition": "CBT_Therapy_Counter_1" + }, + "CBT_Encounter_1": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308335008", + "display": "Patient encounter procedure (procedure)" + } + ], + "direct_transition": "CBT_Pain_Observation", + "reason": "Chronic_Pain_Reason" + }, + "Enter_Physical_Therapy_1": { + "type": "Delay", + "exact": { + "quantity": 3, + "unit": "days" + }, + "direct_transition": "Physical_Therapy_Counter_1" + }, + "CBT_Therapy_Counter_1": { + "type": "Counter", + "attribute": "number_of_CBT", + "action": "increment", + "direct_transition": "CBT_Encounter_1" + }, + "End_CBT_Therapy_Encounter_1": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Enter_CBT_Therapy_1", + "condition": { + "condition_type": "Attribute", + "attribute": "number_of_CBT", + "operator": "<", + "value": 8 + } + }, + { + "transition": "End_Nonpharmacologic_Treatment_Careplan_2", + "condition": { + "condition_type": "Attribute", + "attribute": "number_of_CBT", + "operator": "==", + "value": 8 + } + } + ] + }, + "Physical_Therapy_Counter_1": { + "type": "Counter", + "attribute": "number_of_PT", + "action": "increment", + "direct_transition": "Physical_Therapy_Encounter_1" + }, + "Physical_Therapy_Encounter_1": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308335008", + "display": "Patient encounter procedure (procedure)" + } + ], + "direct_transition": "Physical_Therapy_1", + "reason": "Chronic_Pain_Reason" + }, + "PT_Pain_Observation": { + "type": "Observation", + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "38208-5", + "display": "Pain severity - Reported" + } + ], + "direct_transition": "End_Physical_Therapy_Encounter_1", + "range": { + "low": 1, + "high": 10 + } + }, + "CBT_Pain_Observation": { + "type": "Observation", + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "38208-5", + "display": "Pain severity - Reported" + } + ], + "range": { + "low": 1, + "high": 10 + }, + "direct_transition": "Cognitive Behavior Therapy (CBT)_1" + }, + "End_Physical_Therapy_Encounter_1": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "End_Nonpharmacologic_Treatment_Careplan_1", + "condition": { + "condition_type": "Attribute", + "attribute": "number_of_PT", + "operator": "==", + "value": 10 + } + }, + { + "transition": "Enter_Physical_Therapy_1", + "condition": { + "condition_type": "Attribute", + "attribute": "number_of_PT", + "operator": "<", + "value": 10 + } + } + ] + }, + "PEG_Assessment_Score_2": { + "type": "MultiObservation", + "category": "survey", + "number_of_observations": 0, + "codes": [ + { + "system": "LOINC", + "code": "91148-7", + "display": "Pain intensity, Enjoyment of life, General activity (PEG) 3 item pain scale" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "75893-8", + "display": "Pain severity in the past week - 0-10 numeric rating [Reported]" + } + ], + "range": { + "low": 1, + "high": 10 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "91145-3", + "display": "What number best describes how pain has interfered with your enjoyment of life during the past week" + } + ], + "range": { + "low": 1, + "high": 10 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "91146-1", + "display": "What number best describes how pain has interfered with your general activity during the past week" + } + ], + "range": { + "low": 1, + "high": 10 + } + } + ], + "direct_transition": "Nonpharmacologic_Treatment_Careplan_2" + }, + "Enter_IR/SA_Opioid_Directed_Use_2": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Rx_Percocet_2", + "distribution": 0.2325 + }, + { + "transition": "Rx_Vicodin_2", + "distribution": 0.5525 + }, + { + "transition": "Rx_Tramadol_2", + "distribution": 0.1225 + }, + { + "transition": "Rx_Codeine_2", + "distribution": 0.0925 + } + ] + }, + "Rx_Vicodin_2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 856987, + "display": "Acetaminophen 300 MG / Hydrocodone Bitartrate 5 MG Oral Tablet" + } + ], + "direct_transition": "End_Follow_Up_Encounter_for_Chronic_Pain", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 4, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "225757006", + "display": "Every four to six hours (qualifier value)" + } + ], + "refills": 3 + }, + "assign_to_attribute": "IR_opioid_Rx_2" + }, + "Rx_Percocet_2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1049625, + "display": "Acetaminophen 325 MG / Oxycodone Hydrochloride 10 MG Oral Tablet [Percocet]" + } + ], + "direct_transition": "End_Follow_Up_Encounter_for_Chronic_Pain", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 4, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "307468000", + "display": "Every six hours (qualifier value)" + } + ], + "refills": 3 + }, + "assign_to_attribute": "IR_opioid_Rx_2", + "chronic": true + }, + "On_Opioid_Or_Nonopioid_1": { + "type": "Delay", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "nonopioid_Rx_1", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "On_Nonopioid_Prescription_1", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "IR_opioid_Rx_1", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "On_IR_Opioid_Prescription_1", + "distribution": 1 + } + ] + } + ], + "range": { + "low": 10, + "high": 30, + "unit": "days" + } + }, + "On_Opioid_Or_Nonopioid_2": { + "type": "Delay", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "IR_opioid_Rx_2", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "On_IR_Opioid_Prescription_2", + "distribution": 1 + } + ] + }, + { + "distributions": [ + { + "transition": "On_Nonopioid_Prescription_2", + "distribution": 1 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "nonopioid_Rx_2", + "operator": "is not nil" + } + }, + { + "distributions": [ + { + "transition": "On_ER_Opioid_Prescription", + "distribution": 1 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "ER_opioid_Rx", + "operator": "is not nil" + } + } + ], + "exact": { + "quantity": 30, + "unit": "days" + } + }, + "Rx_Tramadol_1": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 835603, + "display": "tramadol hydrochloride 50 MG Oral Tablet" + } + ], + "direct_transition": "End_Initial_Chronic_Pain_Encounter", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "as_needed": true, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "225757006", + "display": "Every four to six hours (qualifier value)" + } + ], + "refills": 3 + }, + "assign_to_attribute": "IR_opioid_Rx_1", + "chronic": true + }, + "Rx_Codeine_1": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 993770, + "display": "Acetaminophen 300 MG / Codeine Phosphate 15 MG Oral Tablet" + } + ], + "direct_transition": "End_Initial_Chronic_Pain_Encounter", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 4, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "225756002", + "display": "Every four hours (qualifier value)" + } + ], + "refills": 3 + }, + "assign_to_attribute": "IR_opioid_Rx_1", + "remarks": [ + "Acetaminophen / Codeine" + ], + "chronic": true + }, + "Rx_Tramadol_2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 835603, + "display": "tramadol hydrochloride 50 MG Oral Tablet" + } + ], + "direct_transition": "End_Follow_Up_Encounter_for_Chronic_Pain", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 4, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "as_needed": true, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "225757006", + "display": "Every four to six hours (qualifier value)" + } + ], + "refills": 3 + }, + "assign_to_attribute": "IR_opioid_Rx_2", + "chronic": true + }, + "Rx_Codeine_2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 993770, + "display": "Acetaminophen 300 MG / Codeine Phosphate 15 MG Oral Tablet" + } + ], + "direct_transition": "End_Follow_Up_Encounter_for_Chronic_Pain", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 4, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "instructions": [ + { + "system": "SNOMED-CT", + "code": "225756002", + "display": "Every four hours (qualifier value)" + } + ], + "refills": 3 + }, + "assign_to_attribute": "IR_opioid_Rx_2", + "chronic": true + }, + "PEG_Assessment_Score_3": { + "type": "MultiObservation", + "category": "vital-signs", + "number_of_observations": 0, + "codes": [ + { + "system": "LOINC", + "code": "91148-7", + "display": "Pain intensity, Enjoyment of life, General activity (PEG) 3 item pain scale" + } + ], + "direct_transition": "End follow up with positive test", + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "75893-8", + "display": "Pain severity in the past week - 0-10 numeric rating [Reported]" + } + ], + "range": { + "low": 1, + "high": 10 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "91145-3", + "display": "What number best describes how pain has interfered with your enjoyment of life during the past week" + } + ], + "range": { + "low": 1, + "high": 10 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "91146-1", + "display": "What number best describes how pain has interfered with your general activity during the past week" + } + ], + "range": { + "low": 1, + "high": 10 + } + } + ] + }, + "Enter_Urine_Drug_Testing_2": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years", + "value": 0 + }, + { + "condition_type": "Age", + "operator": "<=", + "quantity": 44, + "unit": "years", + "value": 0 + } + ] + }, + "distributions": [ + { + "transition": "Urine_Drug_Testing_Aberrant_Positive_2", + "distribution": 0.093 + }, + { + "transition": "Urine_Drug_Testing_Negative_2", + "distribution": 0.907 + } + ] + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">", + "quantity": 45, + "unit": "years" + }, + { + "condition_type": "Age", + "operator": "<", + "quantity": 64, + "unit": "years", + "value": 0 + } + ] + }, + "distributions": [ + { + "transition": "Urine_Drug_Testing_Aberrant_Positive_2", + "distribution": 0.05 + }, + { + "transition": "Urine_Drug_Testing_Negative_2", + "distribution": 0.95 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 65, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "Urine_Drug_Testing_Aberrant_Positive_2", + "distribution": 0.039 + }, + { + "transition": "Urine_Drug_Testing_Negative_2", + "distribution": 0.961 + } + ] + } + ] + }, + "Urine_Drug_Testing_Aberrant_Positive_2": { + "type": "Observation", + "category": "laboratory", + "unit": "n/a", + "codes": [ + { + "system": "LOINC", + "code": "65750-2", + "display": "Drugs of abuse 5 panel - Urine by Screen method" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "10828004", + "display": "Positive (qualifier value)" + }, + "direct_transition": "PEG_Assessment_Score_3" + }, + "Urine_Drug_Testing_Negative_2": { + "type": "Observation", + "category": "laboratory", + "unit": "n/a", + "codes": [ + { + "system": "LOINC", + "code": "65750-2", + "display": "Drugs of abuse 5 panel - Urine by Screen method" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + }, + "direct_transition": "PEG_Assessment_Score_2" + }, + "Urine_Drug_Testing_Negative_1": { + "type": "Observation", + "category": "laboratory", + "unit": "n/a", + "codes": [ + { + "system": "LOINC", + "code": "65750-2", + "display": "Drugs of abuse 5 panel - Urine by Screen method" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + }, + "distributed_transition": [ + { + "transition": "Nonpharmacologic_Treatment_Careplan_1", + "distribution": 0.6 + }, + { + "transition": "Enter_Nonopioid_Pharmacologic_Treatment_1", + "distribution": 0.2 + }, + { + "transition": "Enter_IR/SA_Opioid_Directed_Use_1", + "distribution": 0.2 + } + ] + }, + "Urine_Drug_Testing_Aberrant_Positive_1": { + "type": "Observation", + "category": "laboratory", + "unit": "n/a", + "codes": [ + { + "system": "LOINC", + "code": "65750-2", + "display": "Drugs of abuse 5 panel - Urine by Screen method" + } + ], + "direct_transition": "End initial encounter with positive result", + "value_code": { + "system": "SNOMED-CT", + "code": "10828004", + "display": "Positive (qualifier value)" + } + }, + "Initial_Prescribing_Encounter_for_Chronic_Pain": { + "type": "Encounter", + "encounter_class": "outpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "PEG_Assessment_Score_1", + "reason": "Chronic_Pain_Reason" + }, + "Addiction": { + "type": "Delay", + "range": { + "low": 0, + "high": 60, + "unit": "days" + }, + "distributed_transition": [ + { + "transition": "Start_Treatment_Opioid_Use_Disorder", + "distribution": 0.1 + }, + { + "transition": "Chronic_Pain_Population", + "distribution": 0.9 + } + ] + }, + "Enter_Urine_Drug_Testing": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years", + "value": 0 + }, + { + "condition_type": "Age", + "operator": "<=", + "quantity": 44, + "unit": "years", + "value": 0 + } + ] + }, + "distributions": [ + { + "transition": "Urine_Drug_Testing_Negative_1", + "distribution": 0.907 + }, + { + "transition": "Urine_Drug_Testing_Aberrant_Positive_1", + "distribution": 0.093 + } + ] + }, + { + "distributions": [ + { + "transition": "Urine_Drug_Testing_Negative_1", + "distribution": 0.95 + }, + { + "transition": "Urine_Drug_Testing_Aberrant_Positive_1", + "distribution": 0.05 + } + ], + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">", + "quantity": 45, + "unit": "years" + }, + { + "condition_type": "Age", + "operator": "<", + "quantity": 64, + "unit": "years", + "value": 0 + } + ] + } + }, + { + "distributions": [ + { + "transition": "Urine_Drug_Testing_Negative_1", + "distribution": 0.961 + }, + { + "transition": "Urine_Drug_Testing_Aberrant_Positive_1", + "distribution": 0.039 + } + ], + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 65, + "unit": "years", + "value": 0 + } + } + ] + }, + "Condition_Chronic_Neck_Pain_3": { + "type": "ConditionOnset", + "assign_to_attribute": "chronic_neck_pain_only", + "target_encounter": "Initial_Prescribing_Encounter_for_Chronic_Pain", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1121000119107", + "display": "Chronic neck pain (finding)" + } + ], + "direct_transition": "Chronic_Pain_Reason" + }, + "Condition_Chronic_Neck_Pain_4": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1121000119107", + "display": "Chronic neck pain (finding)" + } + ], + "direct_transition": "Condition_Chronic_Low_Back_Pain_2", + "target_encounter": "Follow_Up_Encounter_for_Chronic_Pain" + }, + "Condition_Chronic_Low_Back_Pain_3": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "278860009", + "display": "Chronic low back pain (finding)" + } + ], + "direct_transition": "Chronic_Pain_Reason", + "target_encounter": "Initial_Prescribing_Encounter_for_Chronic_Pain" + }, + "Without_Urine_Drug_Testing": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Enter_IR/SA_Opioid_Directed_Use_1", + "distribution": 0.2 + }, + { + "transition": "Nonpharmacologic_Treatment_Careplan_1", + "distribution": 0.6 + }, + { + "transition": "Enter_Nonopioid_Pharmacologic_Treatment_1", + "distribution": 0.2 + } + ] + }, + "End_Nonpharmacologic_Treatment_Careplan_1": { + "type": "CarePlanEnd", + "careplan": "Nonpharmacologic_Treatment_Careplan_1", + "distributed_transition": [ + { + "transition": "Terminal", + "distribution": 0.8 + }, + { + "transition": "Chronic_Pain_Population", + "distribution": 0.2 + } + ] + }, + "End_Nonpharmacologic_Treatment_Careplan_2": { + "type": "CarePlanEnd", + "distributed_transition": [ + { + "transition": "Chronic_Pain_Population", + "distribution": 0.2 + }, + { + "transition": "Terminal", + "distribution": 0.8 + } + ], + "careplan": "Nonpharmacologic_Treatment_Careplan_1" + }, + "Enter_Overdose": { + "type": "Simple", + "direct_transition": "Opioid_Addiction_Symptom_1" + }, + "ED_Visit": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "Condition_Drug_Overdose", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "Naloxone" + }, + "Opioid_Addiction_Symptom_1": { + "type": "Symptom", + "symptom": "Anxiety", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_2", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_2": { + "type": "Symptom", + "symptom": "Confusion", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_3", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_3": { + "type": "Symptom", + "symptom": "Cognitive Difficulties", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_4", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_4": { + "type": "Symptom", + "symptom": "Nausea/Vomiting", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_5", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_5": { + "type": "Symptom", + "symptom": "Constipation", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_6", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_6": { + "type": "Symptom", + "symptom": "Reduced Sex Drive", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_7", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_7": { + "type": "Symptom", + "symptom": "Slurred Speech", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_8", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_8": { + "type": "Symptom", + "symptom": "Shallow Breathing", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_9", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_9": { + "type": "Symptom", + "symptom": "Mood Swing", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_10", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_10": { + "type": "Symptom", + "symptom": "Sensitivity to Pain", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_11", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_11": { + "type": "Symptom", + "symptom": "Yawning", + "cause": "Opioid_Addiction", + "probability": 0.5, + "direct_transition": "Opioid_Addiction_Symptom_12", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_12": { + "type": "Symptom", + "symptom": "Sweating", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Condition_Drug_Overdose", + "range": { + "low": 1, + "high": 100 + } + }, + "Death": { + "type": "Death", + "direct_transition": "End_ED_Visit_Disposition_Death", + "codes": [ + { + "system": "SNOMED-CT", + "code": 55680006, + "display": "Drug overdose (disorder)" + } + ] + }, + "Naloxone": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1191222, + "display": "naloxone hydrochloride 0.4 MG/ML Injectable Solution" + } + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "readmit_2_days", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "Death", + "distribution": 0.0025 + }, + { + "transition": "End_ED_Visit", + "distribution": 0.9750000000000001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "readmit_1_month", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 0.011, + "transition": "Death" + }, + { + "transition": "End_ED_Visit", + "distribution": 0.9890000000000001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "readmit_1_year", + "operator": "is not nil" + }, + "distributions": [ + { + "distribution": 0.055, + "transition": "Death" + }, + { + "transition": "End_ED_Visit", + "distribution": 0.9450000000000001 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "history_nonfatal_ED_overdose", + "operator": "is nil" + }, + "distributions": [ + { + "distribution": 0.0002, + "transition": "Death" + }, + { + "distribution": 0.9997999999999999, + "transition": "End_ED_Visit" + } + ] + } + ], + "administration": true, + "chronic": false, + "reason": "Condition_Drug_Overdose" + }, + "End_ED_Visit": { + "type": "EncounterEnd", + "direct_transition": "Set_Attribute_Hx_Nonfatal_ED_Overdose" + }, + "Encounter_OUD": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "PEG_Assessment_Score_4", + "reason": "Condition_OUD" + }, + "Urine_Drug_Testing_Positive": { + "type": "Observation", + "category": "laboratory", + "unit": "n/a", + "codes": [ + { + "system": "LOINC", + "code": "65750-2", + "display": "Drugs of abuse 5 panel - Urine by Screen method" + } + ], + "direct_transition": "DSM-5_OUD_Diagnostic_Criteria", + "value_code": { + "system": "SNOMED-CT", + "code": "10828004", + "display": "Positive (qualifier value)" + } + }, + "Opioid_Addiction_Symptom_2_1": { + "type": "Symptom", + "symptom": "Anxiety", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_2_2", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_2_2": { + "type": "Symptom", + "symptom": "Confusion", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_2_3", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_2_3": { + "type": "Symptom", + "symptom": "Cognitive Difficulties", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_2_4", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_2_4": { + "type": "Symptom", + "symptom": "Nausea/Vomiting", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_2_5", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_2_5": { + "type": "Symptom", + "symptom": "Constipation", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_2_6", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_2_6": { + "type": "Symptom", + "symptom": "Reduced Sex Drive", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_2_7", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_2_7": { + "type": "Symptom", + "symptom": "Slurred Speech", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_2_8", + "range": { + "low": 80, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_2_8": { + "type": "Symptom", + "symptom": "Shallow Breathing", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_2_9", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_2_9": { + "type": "Symptom", + "symptom": "Mood Swing", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_2_10", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_2_10": { + "type": "Symptom", + "symptom": "Sensitivity to Pain", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_2_11", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_2_11": { + "type": "Symptom", + "symptom": "Yawning", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Opioid_Addiction_Symptom_2_12", + "range": { + "low": 1, + "high": 100 + } + }, + "Opioid_Addiction_Symptom_2_12": { + "type": "Symptom", + "symptom": "Sweating", + "cause": "Opioid_Addiction", + "probability": 0.3, + "direct_transition": "Encounter_OUD", + "range": { + "low": 1, + "high": 100 + } + }, + "DSM-5_OUD_Diagnostic_Criteria": { + "type": "MultiObservation", + "category": "survey", + "number_of_observations": 0, + "codes": [ + { + "system": "LOINC", + "code": "99999-0", + "display": "DSM-5 Clinical Diagnostic Criteria for Opioid Use Disorder" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "99999-1", + "display": "Opioids are often taken in larger amounts or over a longer period than was intended" + } + ], + "range": { + "low": 0, + "high": 1 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "99999-2", + "display": "There is a persistent desire or unsuccessful efforts to cut down or control opioid use" + } + ], + "range": { + "low": 0, + "high": 1 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "99999-3", + "display": "A great deal of time is spent in activities necessary to obtain the opioid, use the opioid, or recover from its effects" + } + ], + "range": { + "low": 0, + "high": 1 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "99999-4", + "display": "Craving or a strong desire to use opioids" + } + ], + "range": { + "low": 0, + "high": 1 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "99999-5", + "display": "Recurrent opioid use resulting in a failure to fulfill major role obligations at work, school, or home" + } + ], + "range": { + "low": 0, + "high": 1 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "99999-6", + "display": "Continued opioid use despite having persistent or recurrent social or interpersonal problems caused or exacerbated by the effects of opioids" + } + ], + "range": { + "low": 0, + "high": 1 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "99999-7", + "display": "Important social, occupational, or recreational activities are given up or reduced because of opioid use" + } + ], + "range": { + "low": 0, + "high": 1 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "99999-8", + "display": "Recurrent opioid use in situations in which it is physically hazardous" + } + ], + "range": { + "low": 0, + "high": 1 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "99999-9", + "display": "Continued use despite knowledge of having a persistent or recurrent physical or psychological problem that is likely to have been caused or exacerbated by opioids." + } + ], + "range": { + "low": 0, + "high": 1 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "99999-10", + "display": "Tolerance,as defined by either of the following: a) Need for markedly increased amounts of opioids to achieve intoxication or desired effect b) Markedly diminished effect with continued use of the same amount of opioid" + } + ], + "range": { + "low": 0, + "high": 1 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "99999-11", + "display": "Withdrawal,* as manifested by either of the following: a) Characteristic opioid withdrawal syndrome b) Same (or a closely related) substance is taken to relieve or avoid withdrawal symptoms" + } + ], + "range": { + "low": 0, + "high": 1 + } + } + ], + "direct_transition": "Condition_OUD" + }, + "Condition_Drug_Overdose": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": 55680006, + "display": "Drug overdose (disorder)" + } + ], + "direct_transition": "ED_Visit" + }, + "End_Encounter_OUD": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "no_treatment", + "operator": "is not nil" + } + }, + { + "transition": "Enter_Continued_OUD_Treatment", + "condition": { + "condition_type": "Attribute", + "attribute": "no_treatment", + "operator": "is nil" + } + } + ] + }, + "Set_Attribute_Hx_Nonfatal_ED_Overdose": { + "type": "SetAttribute", + "attribute": "history_nonfatal_ED_overdose", + "value": true, + "distributed_transition": [ + { + "transition": "No_OUD_Treatment", + "distribution": 0.25 + }, + { + "transition": "Enter_OUD_Treatment_1", + "distribution": 0.75 + } + ] + }, + "End_ED_Visit_Disposition_Death": { + "type": "EncounterEnd", + "direct_transition": "Terminal", + "discharge_disposition": { + "system": "NUBC", + "code": 41, + "display": "Expired in a medical facility, such as a hospital, SNF, ICF or freestanding hospice" + } + }, + "Enter_OUD_Treatment_1": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "direct_transition": "Enter_Evaluate Opioid_Use_Disorder" + }, + "Delay_Within_2_Days": { + "type": "Delay", + "direct_transition": "Set_Attribute_Readmit_1", + "range": { + "low": 0, + "high": 2, + "unit": "days" + } + }, + "No_OUD_Treatment": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Delay_Within_2_Days", + "distribution": 0.046 + }, + { + "transition": "Delay_Within_1_Month", + "distribution": 0.205 + }, + { + "transition": "Delay_Within_1_Year", + "distribution": 0.749 + } + ] + }, + "Delay_Within_1_Month": { + "type": "Delay", + "direct_transition": "Set_Attribute_Readmit_3", + "range": { + "low": 3, + "high": 30, + "unit": "days" + } + }, + "Delay_Within_1_Year": { + "type": "Delay", + "direct_transition": "Set_Attribute_Readmit_2", + "range": { + "low": 1, + "high": 12, + "unit": "months" + } + }, + "Set_Attribute_Readmit_2": { + "type": "SetAttribute", + "attribute": "readmit_1_year", + "direct_transition": "Enter_Overdose", + "value": true + }, + "Set_Attribute_Readmit_1": { + "type": "SetAttribute", + "attribute": "readmit_2_days", + "direct_transition": "Enter_Overdose", + "value": true + }, + "Enter_Treatment_Options": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Buprenorphine_Or_Methadone_Or_Naltrexone", + "condition": { + "condition_type": "Attribute", + "attribute": "pharmaco", + "operator": "is not nil" + } + }, + { + "transition": "Psychosocial_Therapy_4", + "condition": { + "condition_type": "Attribute", + "attribute": "pharmaco_and_psychosocial", + "operator": "is not nil" + } + }, + { + "transition": "Psychosocial_Therapy_3", + "condition": { + "condition_type": "Attribute", + "attribute": "psychosocial", + "operator": "is not nil" + } + } + ] + }, + "Psychosocial_Therapy_1": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "408919008", + "display": "Psychosocial care (regime/therapy)" + } + ], + "duration": { + "low": 45, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "Rx_Buprenorphine_2", + "reason": "Condition_OUD" + }, + "Psychosocial_Therapy_2": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "408919008", + "display": "Psychosocial care (regime/therapy)" + } + ], + "duration": { + "low": 45, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "Set_Attribute_Treatment_Pshychosocial_Only", + "reason": "Condition_OUD" + }, + "Rx_Buprenorphine_1": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 351266, + "display": "buprenorphine 2 MG / naloxone 0.5 MG Sublingual Tablet" + } + ], + "direct_transition": "Set_Attribute_Treatment_Pharmaco_Only", + "assign_to_attribute": "on_buprenorphine", + "reason": "Condition_OUD" + }, + "Rx_Buprenorphine_2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 351266, + "display": "buprenorphine 2 MG / naloxone 0.5 MG Sublingual Tablet" + } + ], + "direct_transition": "Set_Attribute_Treatment_Pharmaco_Psychosocial", + "assign_to_attribute": "on_buprenorphine", + "reason": "Condition_OUD" + }, + "Condition_OUD": { + "type": "ConditionOnset", + "target_encounter": "Encounter_OUD", + "codes": [ + { + "system": "SNOMED-CT", + "code": "5602001", + "display": "Opioid abuse (disorder)" + } + ], + "distributed_transition": [ + { + "transition": "Psychosocial_Therapy_1", + "distribution": 0.6 + }, + { + "transition": "Psychosocial_Therapy_2", + "distribution": 0.05 + }, + { + "transition": "Rx_Buprenorphine_1", + "distribution": 0.2 + }, + { + "transition": "Set_Attribute_No_Treatment", + "distribution": 0.1 + }, + { + "transition": "Rx_Methadone_1", + "distribution": 0.01 + }, + { + "transition": "Psychosocial_Therapy_5", + "distribution": 0.01 + }, + { + "transition": "Rx_Naltrexone_1", + "distribution": 0.01 + }, + { + "transition": "Psychosocial_Therapy_6", + "distribution": 0.02 + } + ] + }, + "Set_Attribute_Readmit_3": { + "type": "SetAttribute", + "attribute": "readmit_1_month", + "direct_transition": "Enter_Overdose", + "value": true + }, + "Enter_Continued_OUD_Treatment": { + "type": "Delay", + "direct_transition": "Encounter_OUD_Treatment_Cont", + "exact": { + "quantity": 1, + "unit": "weeks" + } + }, + "Encounter_OUD_Treatment_Cont": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Condition_OUD_2", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Condition_OUD_2" + }, + "Condition_OUD_2": { + "type": "ConditionOnset", + "target_encounter": "Encounter_OUD_Treatment_Cont", + "codes": [ + { + "system": "SNOMED-CT", + "code": "5602001", + "display": "Opioid abuse (disorder)" + } + ], + "direct_transition": "Enter_Treatment_Options" + }, + "Rx_Buprenorphine_3": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 351266, + "display": "buprenorphine 2 MG / naloxone 0.5 MG Sublingual Tablet" + } + ], + "direct_transition": "End_Encounter_OUD_Treatment_Cont", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "refills": 3 + }, + "chronic": true, + "reason": "Condition_OUD_2" + }, + "Rx_Buprenorphine_4": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 351266, + "display": "buprenorphine 2 MG / naloxone 0.5 MG Sublingual Tablet" + } + ], + "direct_transition": "End_Encounter_OUD_Treatment_Cont", + "chronic": true, + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + }, + "refills": 3 + }, + "reason": "Condition_OUD_2" + }, + "End_Encounter_OUD_Treatment_Cont": { + "type": "EncounterEnd", + "direct_transition": "Counter_Treatment_Visit" + }, + "Enter_Next_Treatment_Visit": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "conditional_transition": [ + { + "transition": "Encounter_OUD_Treatment_Cont", + "condition": { + "condition_type": "Attribute", + "attribute": "num_oud_treatment_visit", + "operator": "<", + "value": 5 + } + }, + { + "transition": "Enter_Evaluate_OUD_Or_Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "num_oud_treatment_visit", + "operator": ">", + "value": 5 + } + } + ] + }, + "Counter_Treatment_Visit": { + "type": "Counter", + "attribute": "num_oud_treatment_visit", + "action": "increment", + "direct_transition": "Enter_Next_Treatment_Visit" + }, + "Enter_Evaluate Opioid_Use_Disorder": { + "type": "Simple", + "direct_transition": "Opioid_Addiction_Symptom_2_1" + }, + "Set_Attribute_No_Treatment": { + "type": "SetAttribute", + "attribute": "no_treatment", + "direct_transition": "End_Encounter_OUD", + "value": true + }, + "Set_Attribute_Treatment_Pshychosocial_Only": { + "type": "SetAttribute", + "attribute": "psychosocial", + "direct_transition": "End_Encounter_OUD", + "value": true + }, + "Set_Attribute_Treatment_Pharmaco_Psychosocial": { + "type": "SetAttribute", + "attribute": "pharmaco_and_psychosocial", + "direct_transition": "End_Encounter_OUD", + "value": true + }, + "Set_Attribute_Treatment_Pharmaco_Only": { + "type": "SetAttribute", + "attribute": "pharmaco", + "direct_transition": "End_Encounter_OUD", + "value": true + }, + "Enter_Evaluate_OUD_Or_Terminal": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Terminal", + "distribution": 0.5 + }, + { + "transition": "Enter_Evaluate Opioid_Use_Disorder", + "distribution": 0.5 + } + ] + }, + "Psychosocial_Therapy_4": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "408919008", + "display": "Psychosocial care (regime/therapy)" + } + ], + "duration": { + "low": 45, + "high": 60, + "unit": "minutes" + }, + "conditional_transition": [ + { + "transition": "Rx_Buprenorphine_4", + "condition": { + "condition_type": "Attribute", + "attribute": "on_buprenorphine", + "operator": "is not nil" + } + }, + { + "transition": "Rx_Methadone_4", + "condition": { + "condition_type": "Attribute", + "attribute": "on_methadone", + "operator": "is not nil" + } + }, + { + "transition": "Rx_Naltrexone_4", + "condition": { + "condition_type": "Attribute", + "attribute": "on_naltrexone", + "operator": "is not nil" + } + } + ], + "reason": "Condition_OUD_2" + }, + "Psychosocial_Therapy_3": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "408919008", + "display": "Psychosocial care (regime/therapy)" + } + ], + "duration": { + "low": 45, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "End_Encounter_OUD_Treatment_Cont", + "reason": "Condition_OUD_2" + }, + "PEG_Assessment_Score_4": { + "type": "MultiObservation", + "category": "survey", + "number_of_observations": 0, + "codes": [ + { + "system": "LOINC", + "code": "91148-7", + "display": "Pain intensity, Enjoyment of life, General activity (PEG) 3 item pain scale" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "75893-8", + "display": "Pain severity in the past week - 0-10 numeric rating [Reported]" + } + ], + "range": { + "low": 1, + "high": 10 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "91145-3", + "display": "What number best describes how pain has interfered with your enjoyment of life during the past week" + } + ], + "range": { + "low": 1, + "high": 10 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "91146-1", + "display": "What number best describes how pain has interfered with your general activity during the past week" + } + ], + "range": { + "low": 1, + "high": 10 + } + } + ], + "direct_transition": "Urine_Drug_Testing_Positive" + }, + "On_Nonopioid_Prescription_1": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Chronic_Pain_Population", + "distribution": 0.5 + }, + { + "transition": "Terminal", + "distribution": 0.5 + } + ] + }, + "On_IR_Opioid_Prescription_1": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Addiction", + "distribution": 0.1 + }, + { + "transition": "Chronic_Pain_Population", + "distribution": 0.9 + } + ] + }, + "On_IR_Opioid_Prescription_2": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Terminal", + "distribution": 0.4 + }, + { + "transition": "Chronic_Pain_Population", + "distribution": 0.5 + }, + { + "transition": "Addiction", + "distribution": 0.1 + } + ] + }, + "On_ER_Opioid_Prescription": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Terminal", + "distribution": 0.28 + }, + { + "transition": "Chronic_Pain_Population", + "distribution": 0.6 + }, + { + "transition": "Addiction", + "distribution": 0.12 + } + ] + }, + "On_Nonopioid_Prescription_2": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Terminal", + "distribution": 0.5 + }, + { + "transition": "Chronic_Pain_Population", + "distribution": 0.5 + } + ] + }, + "Start_Treatment_Opioid_Use_Disorder": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "IR_opioid_Rx_1", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "IR_opioid_Rx_2", + "operator": "is not nil" + } + ] + }, + "distributions": [ + { + "distribution": 0.0015, + "transition": "Enter_Overdose" + }, + { + "transition": "Enter_Evaluate Opioid_Use_Disorder", + "distribution": 0.9985 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "ER_opioid_Rx", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "Enter_Overdose", + "distribution": 0.0035 + }, + { + "transition": "Enter_Evaluate Opioid_Use_Disorder", + "distribution": 0.9965 + } + ] + } + ] + }, + "Rx_Methadone_1": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 864706, + "display": "methadone hydrochloride 10 MG Oral Tablet" + } + ], + "direct_transition": "Set_Attribute_Treatment_Pharmaco_Only", + "assign_to_attribute": "on_methadone", + "reason": "Condition_OUD" + }, + "Rx_Methadone_2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 864706, + "display": "methadone hydrochloride 10 MG Oral Tablet" + } + ], + "direct_transition": "Set_Attribute_Treatment_Pharmaco_Psychosocial", + "assign_to_attribute": "on_methadone", + "reason": "Condition_OUD" + }, + "Psychosocial_Therapy_5": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "408919008", + "display": "Psychosocial care (regime/therapy)" + } + ], + "duration": { + "low": 45, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "Rx_Methadone_2", + "reason": "Condition_OUD" + }, + "Rx_Methadone_3": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 864706, + "display": "methadone hydrochloride 10 MG Oral Tablet" + } + ], + "direct_transition": "End_Encounter_OUD_Treatment_Cont", + "reason": "Condition_OUD_2" + }, + "Rx_Methadone_4": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 864706, + "display": "methadone hydrochloride 10 MG Oral Tablet" + } + ], + "direct_transition": "End_Encounter_OUD_Treatment_Cont", + "reason": "Condition_OUD_2" + }, + "Age_and_Module_Effective_Time_Guard": { + "type": "Guard", + "allow": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years", + "value": 0 + }, + { + "condition_type": "Date", + "operator": ">=", + "year": 2014 + } + ] + }, + "direct_transition": "General_Adult_Population" + }, + "Rx_Naltrexone_1": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1483744, + "display": "Naltrexone hydrochloride 50 MG Oral Tablet" + } + ], + "assign_to_attribute": "on_naltrexone", + "reason": "Condition_OUD", + "direct_transition": "Set_Attribute_Treatment_Pharmaco_Only" + }, + "Psychosocial_Therapy_6": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "408919008", + "display": "Psychosocial care (regime/therapy)" + } + ], + "duration": { + "low": 45, + "high": 60, + "unit": "minutes" + }, + "reason": "Condition_OUD", + "direct_transition": "Rx_Naltrexone_2" + }, + "Rx_Naltrexone_2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1483744, + "display": "Naltrexone hydrochloride 50 MG Oral Tablet" + } + ], + "assign_to_attribute": "on_naltrexone", + "reason": "Condition_OUD", + "direct_transition": "Set_Attribute_Treatment_Pharmaco_Psychosocial" + }, + "Buprenorphine_Or_Methadone_Or_Naltrexone": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Rx_Buprenorphine_3", + "condition": { + "condition_type": "Attribute", + "attribute": "on_buprenorphine", + "operator": "is not nil" + } + }, + { + "transition": "Rx_Methadone_3", + "condition": { + "condition_type": "Attribute", + "attribute": "on_methadone", + "operator": "is not nil" + } + }, + { + "transition": "Rx_Naltrexone_3", + "condition": { + "condition_type": "Attribute", + "attribute": "on_naltrexone", + "operator": "is not nil" + } + } + ] + }, + "Rx_Naltrexone_3": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1483744, + "display": "Naltrexone hydrochloride 50 MG Oral Tablet" + } + ], + "reason": "Condition_OUD_2", + "direct_transition": "End_Encounter_OUD_Treatment_Cont" + }, + "Rx_Naltrexone_4": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1483744, + "display": "Naltrexone hydrochloride 50 MG Oral Tablet" + } + ], + "reason": "Condition_OUD_2", + "direct_transition": "End_Encounter_OUD_Treatment_Cont" + }, + "End follow up with positive test": { + "type": "EncounterEnd", + "direct_transition": "Addiction" + }, + "End initial encounter with positive result": { + "type": "EncounterEnd", + "direct_transition": "Addiction" + }, + "Chronic_Pain_Reason": { + "type": "ConditionOnset", + "target_encounter": "Initial_Prescribing_Encounter_for_Chronic_Pain", + "codes": [ + { + "system": "SNOMED-CT", + "code": "82423001", + "display": "Chronic pain (finding)" + } + ], + "direct_transition": "Initial_Prescribing_Encounter_for_Chronic_Pain" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/pulmonary_embolism.json b/src/main/resources/modules/pulmonary_embolism.json new file mode 100644 index 0000000..f0c65d4 --- /dev/null +++ b/src/main/resources/modules/pulmonary_embolism.json @@ -0,0 +1,407 @@ +{ + "name": "Pulmonary Embolism", + "remarks": [ + "Pulmonary embolism (PE) is a blockage in one of the pulmonary arteries in the lungs. ", + "In most cases, pulmonary embolism is caused by blood clots that travel to the lungs from deep veins in the legs or, rarely, from veins in other parts of the body (deep vein thrombosis, or DVT).", + "PE can be life-threatening, but prompt treatment greatly reduces the risk of death.", + "Information on incidence, prevalence, risk factors and treatment from: ", + "https://www.cdc.gov/ncbddd/dvt/data.html", + "https://www.ncbi.nlm.nih.gov/books/NBK470348/" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + "The annual incidence of PE is estimated to be 60-70 per 100,000 people.", + "Incidence increases with age, and is slightly higher in males than females." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "distribution": 0.00065, + "transition": "Delay_Until_PE" + }, + { + "distribution": 0.99935, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "distribution": 0.00055, + "transition": "Delay_Until_PE" + }, + { + "distribution": 0.99945, + "transition": "Terminal" + } + ] + } + ] + }, + "Delay_Until_PE": { + "type": "Delay", + "range": { + "low": 30, + "high": 85, + "unit": "years" + }, + "direct_transition": "Pulmonary_Embolism" + }, + "Pulmonary_Embolism": { + "type": "ConditionOnset", + "remarks": [ + "======================================================================", + " PULMONARY EMBOLISM ", + "======================================================================", + "Source: https://www.ncbi.nlm.nih.gov/books/NBK470348/" + ], + "target_encounter": "PE_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "59282003", + "display": "Pulmonary embolism (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I26.9", + "display": "Pulmonary embolism without acute cor pulmonale" + } + ], + "direct_transition": "PE_Symptom1" + }, + "PE_Symptom1": { + "type": "Symptom", + "symptom": "Shortness of Breath", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "PE_Symptom2" + }, + "PE_Symptom2": { + "type": "Symptom", + "symptom": "Chest Pain", + "range": { + "low": 40, + "high": 90 + }, + "direct_transition": "PE_Symptom3" + }, + "PE_Symptom3": { + "type": "Symptom", + "symptom": "Rapid Heart Rate", + "range": { + "low": 40, + "high": 85 + }, + "direct_transition": "PE_Symptom4" + }, + "PE_Symptom4": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 20, + "high": 50 + }, + "direct_transition": "PE_Symptom5" + }, + "PE_Symptom5": { + "type": "Symptom", + "symptom": "Fever", + "range": { + "low": 0, + "high": 30 + }, + "direct_transition": "PE_Encounter" + }, + "PE_Encounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "Pulmonary_Embolism", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "PE_Assessment" + }, + "PE_Assessment": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "54728-9", + "display": "Respiratory rate" + } + ], + "range": { + "low": 22, + "high": 30 + }, + "direct_transition": "PE_Vital_Signs" + }, + "PE_Vital_Signs": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "8867-4", + "display": "Heart rate" + } + ], + "range": { + "low": 90, + "high": 120 + }, + "direct_transition": "PE_Diagnostic_Imaging" + }, + "PE_Diagnostic_Imaging": { + "type": "Procedure", + "reason": "Pulmonary_Embolism", + "codes": [ + { + "system": "SNOMED-CT", + "code": "241535007", + "display": "Computed tomography of chest (procedure)" + } + ], + "direct_transition": "PE_CarePlan" + }, + "PE_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "pe_careplan", + "reason": "Pulmonary_Embolism", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183301007", + "display": "Cardiovascular care (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "183301007", + "display": "Physical activity (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "225323000", + "display": "Smoking cessation education (procedure)" + } + ], + "direct_transition": "PE_Treatment_Decision" + }, + "PE_Treatment_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.8, + "transition": "PE_Anticoagulant_Medication" + }, + { + "distribution": 0.2, + "transition": "PE_Thrombolytic_Therapy" + } + ] + }, + "PE_Anticoagulant_Medication": { + "type": "MedicationOrder", + "assign_to_attribute": "pe_anticoagulant", + "reason": "Pulmonary_Embolism", + "codes": [ + { + "system": "RxNorm", + "code": "1037045", + "display": "Enoxaparin 100 MG/ML Injectable Solution" + } + ], + "direct_transition": "PE_Oral_Anticoagulant" + }, + "PE_Oral_Anticoagulant": { + "type": "MedicationOrder", + "assign_to_attribute": "pe_oral_anticoagulant", + "reason": "Pulmonary_Embolism", + "codes": [ + { + "system": "RxNorm", + "code": "855332", + "display": "Warfarin Sodium 5 MG Oral Tablet" + } + ], + "direct_transition": "PE_Hospitalization" + }, + "PE_Thrombolytic_Therapy": { + "type": "Procedure", + "reason": "Pulmonary_Embolism", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91602002", + "display": "Thrombolytic therapy (procedure)" + } + ], + "direct_transition": "PE_Anticoagulant_Medication" + }, + "PE_Hospitalization": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "Pulmonary_Embolism", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32485007", + "display": "Hospital admission (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.85, + "transition": "PE_Discharge_Alive" + }, + { + "distribution": 0.15, + "transition": "PE_Death" + } + ] + }, + "PE_Discharge_Alive": { + "type": "EncounterEnd", + "discharge_disposition": { + "system": "NUBC", + "code": "01", + "display": "Discharged to home care or self care (routine discharge)" + }, + "direct_transition": "PE_Recovery_Period" + }, + "PE_Death": { + "type": "Death", + "range": { + "low": 2, + "high": 10, + "unit": "days" + }, + "condition_onset": "Pulmonary_Embolism", + "codes": [ + { + "system": "SNOMED-CT", + "code": "95281009", + "display": "Sudden death, cause unknown (event)" + } + ], + "direct_transition": "Terminal" + }, + "PE_Recovery_Period": { + "type": "Delay", + "range": { + "low": 3, + "high": 6, + "unit": "months" + }, + "direct_transition": "End_PE_Initial_Anticoagulants" + }, + "End_PE_Initial_Anticoagulants": { + "type": "MedicationEnd", + "referenced_by_attribute": "pe_anticoagulant", + "direct_transition": "PE_Followup" + }, + "PE_Followup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Pulmonary_Embolism", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "PE_Continued_Anticoagulation_Decision" + }, + "PE_Continued_Anticoagulation_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.5, + "transition": "End_PE_Oral_Anticoagulants" + }, + { + "distribution": 0.5, + "transition": "PE_Continued_Anticoagulation" + } + ] + }, + "End_PE_Oral_Anticoagulants": { + "type": "MedicationEnd", + "referenced_by_attribute": "pe_oral_anticoagulant", + "direct_transition": "End_PE_Followup" + }, + "PE_Continued_Anticoagulation": { + "type": "Delay", + "range": { + "low": 3, + "high": 6, + "unit": "months" + }, + "direct_transition": "End_PE_Oral_Anticoagulants" + }, + "End_PE_Followup": { + "type": "EncounterEnd", + "direct_transition": "End_PE_CarePlan" + }, + "End_PE_CarePlan": { + "type": "CarePlanEnd", + "referenced_by_attribute": "pe_careplan", + "direct_transition": "PE_Resolved" + }, + "PE_Resolved": { + "type": "ConditionEnd", + "condition_onset": "Pulmonary_Embolism", + "direct_transition": "Wait_For_Recurrence" + }, + "Wait_For_Recurrence": { + "type": "Delay", + "range": { + "low": 1, + "high": 5, + "unit": "years" + }, + "distributed_transition": [ + { + "distribution": 0.1, + "transition": "Pulmonary_Embolism" + }, + { + "distribution": 0.9, + "transition": "Terminal" + } + ] + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/rheumatoid_arthritis.json b/src/main/resources/modules/rheumatoid_arthritis.json new file mode 100644 index 0000000..7e7cb58 --- /dev/null +++ b/src/main/resources/modules/rheumatoid_arthritis.json @@ -0,0 +1,374 @@ +{ + "name": "Rheumatoid Arthritis", + "remarks": [ + "Rheumatoid arthritis (RA) is a chronic condition where joints and other organs are ", + "attacked by the body's own immune system. RA is treated aggressively and about 75% ", + "of cases go into remission within 5 years.", + "Information on treatment, prevalence, and incidence of specific arthritis types from the CDC: ", + "http://www.cdc.gov/arthritis/basics/types.html", + "Overall prevalence of arthritis: ", + "http://www.cdc.gov/arthritis/data_statistics/national-statistics.html" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + " | Arthritis Type | Prevalence | Ratio F:M | ", + " ------------------------------------------- ", + " | Rheumatoid | 0.01000 | 1:1 | ", + " ------------------------------------------- " + ], + "distributed_transition": [ + { + "distribution": 0.01, + "transition": "Delay_Until_Arthritis" + }, + { + "distribution": 0.99, + "transition": "Terminal" + } + ] + }, + "Delay_Until_Arthritis": { + "type": "Delay", + "range": { + "low": 25, + "high": 80, + "unit": "years" + }, + "direct_transition": "RA_Symptom1" + }, + "RA_Symptom1": { + "type": "Symptom", + "symptom": "Joint Pain", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "RA_Symptom2" + }, + "RA_Symptom2": { + "type": "Symptom", + "symptom": "Joint Stiffness", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "RA_Symptom3" + }, + "RA_Symptom3": { + "type": "Symptom", + "symptom": "Joint Swelling", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "RA_Symptom4" + }, + "RA_Symptom4": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 0, + "high": 20 + }, + "direct_transition": "RA_Symptom5" + }, + "RA_Symptom5": { + "type": "Symptom", + "symptom": "Fever", + "range": { + "low": 0, + "high": 20 + }, + "direct_transition": "Rheumatoid_Arthritis" + }, + "Rheumatoid_Arthritis": { + "type": "ConditionOnset", + "remarks": [ + "======================================================================", + " RHEUMATOID ARTHRITIS ", + "======================================================================", + "Source: http://www.cdc.gov/arthritis/basics/rheumatoid.htm" + ], + "target_encounter": "RA_Diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "69896004", + "display": "Rheumatoid arthritis (disorder)" + } + ], + "direct_transition": "RA_Diagnosis" + }, + "RA_Diagnosis": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Rheumatoid_Arthritis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "RA_CarePlan" + }, + "RA_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "ra_careplan", + "reason": "Rheumatoid_Arthritis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "408869004", + "display": "Musculoskeletal care (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "183301007", + "display": "Physical exercises (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "229580007", + "display": "Ice therapy (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "226234005", + "display": "Healthy diet (finding)" + } + ], + "direct_transition": "RA_Nonopioid_Pain_Medication" + }, + "RA_Nonopioid_Pain_Medication": { + "type": "MedicationOrder", + "reason": "Rheumatoid_Arthritis", + "remarks": [ + "A stronger NSAID pain reliever than the basic Aleve." + ], + "codes": [ + { + "system": "RxNorm", + "code": "198014", + "display": "Naproxen 500 MG Oral Tablet" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 1990 + }, + "transition": "DMARD", + "remarks": [ + "Aggressive treatment using DMARDs didn't start until the 1990's." + ] + }, + { + "transition": "Corticosteroid" + } + ] + }, + "DMARD": { + "type": "MedicationOrder", + "reason": "Rheumatoid_Arthritis", + "remarks": [ + "Disease-Modifying Anti-Rheumatic Drugs (DMARDs) inhibit or halt the progression ", + "of rheumatoid arthritis. Although there are side effects, prompt treatment with DMARDs ", + "can put RA into remission before more serious damage occurs. Typical treatment with ", + "DMARDs is 40-50 months. See: https://www.ncbi.nlm.nih.gov/pubmed/10813279" + ], + "codes": [ + { + "system": "RxNorm", + "code": "105585", + "display": "Methotrexate 2.5 MG Oral Tablet" + } + ], + "direct_transition": "Encounter_Ends_After_DMARD" + }, + "Encounter_Ends_After_DMARD": { + "type": "EncounterEnd", + "direct_transition": "DMARD_Treatment_Period" + }, + "DMARD_Treatment_Period": { + "type": "Delay", + "range": { + "low": 40, + "high": 60, + "unit": "months" + }, + "direct_transition": "End_DMARD" + }, + "End_DMARD": { + "type": "MedicationEnd", + "medication_order": "DMARD", + "distributed_transition": [ + { + "distribution": 0.75, + "transition": "RA_Ends", + "remarks": [ + "Treatment with DMARDs is fairly successful - 75% of cases go into remission." + ] + }, + { + "distribution": 0.25, + "transition": "Living_With_RA" + } + ] + }, + "Corticosteroid": { + "type": "MedicationOrder", + "reason": "Rheumatoid_Arthritis", + "remarks": [ + "When introduced in higher levels than those produced by the body, corticosteroids ", + "inhibit inflammation. However, doctors prefer to use these for as short a time period ", + "as possible to avoid dangerous side effects." + ], + "codes": [ + { + "system": "RxNorm", + "code": "312615", + "display": "predniSONE 20 MG Oral Tablet" + } + ], + "direct_transition": "Encounter_Ends_After_Corticosteroids" + }, + "Encounter_Ends_After_Corticosteroids": { + "type": "EncounterEnd", + "direct_transition": "Corticosteroid_Treatment" + }, + "Corticosteroid_Treatment": { + "type": "Delay", + "range": { + "low": 2, + "high": 4, + "unit": "weeks" + }, + "direct_transition": "End_Corticosteroid" + }, + "End_Corticosteroid": { + "type": "MedicationEnd", + "medication_order": "Corticosteroid", + "distributed_transition": [ + { + "distribution": 0.2, + "transition": "RA_Ends", + "remarks": [ + "Although treatment with DMARDs is far more successful, some patients with mild ", + "RA can go into remission after only basic treatment." + ] + }, + { + "distribution": 0.8, + "transition": "Living_With_RA" + } + ] + }, + "Living_With_RA": { + "type": "Delay", + "range": { + "low": 3, + "high": 15, + "unit": "years" + }, + "remarks": [ + "About 25% of severe RA cases result in total joint replacement. Source: ", + "http://www.uptodate.com/contents/total-joint-replacement-for-severe-rheumatoid-arthritis" + ], + "distributed_transition": [ + { + "distribution": 0.125, + "transition": "Setup_Knee_Replacement" + }, + { + "distribution": 0.125, + "transition": "Setup_Hip_Replacement" + }, + { + "distribution": 0.75, + "transition": "Terminal" + } + ] + }, + "Setup_Knee_Replacement": { + "type": "SetAttribute", + "attribute": "joint_replacement", + "value": "knee", + "direct_transition": "Terminal" + }, + "Setup_Hip_Replacement": { + "type": "SetAttribute", + "attribute": "joint_replacement", + "value": "hip", + "direct_transition": "Terminal" + }, + "RA_Ends": { + "type": "ConditionEnd", + "condition_onset": "Rheumatoid_Arthritis", + "direct_transition": "End_RA_CarePlan" + }, + "End_RA_CarePlan": { + "type": "CarePlanEnd", + "careplan": "RA_CarePlan", + "direct_transition": "End_RA_Nonopioid" + }, + "End_RA_Nonopioid": { + "type": "MedicationEnd", + "medication_order": "RA_Nonopioid_Pain_Medication", + "direct_transition": "RA_Symptom1_Ends" + }, + "RA_Symptom1_Ends": { + "type": "Symptom", + "symptom": "Joint Pain", + "exact": { + "quantity": 0 + }, + "direct_transition": "RA_Symptom2_Ends" + }, + "RA_Symptom2_Ends": { + "type": "Symptom", + "symptom": "Joint Stiffness", + "exact": { + "quantity": 0 + }, + "direct_transition": "RA_Symptom3_Ends" + }, + "RA_Symptom3_Ends": { + "type": "Symptom", + "symptom": "Joint Swelling", + "exact": { + "quantity": 0 + }, + "direct_transition": "RA_Symptom4_Ends" + }, + "RA_Symptom4_Ends": { + "type": "Symptom", + "symptom": "Fatigue", + "exact": { + "quantity": 0 + }, + "direct_transition": "RA_Symptom5_Ends" + }, + "RA_Symptom5_Ends": { + "type": "Symptom", + "symptom": "Fever", + "exact": { + "quantity": 0 + }, + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/seasonal_allergies.json b/src/main/resources/modules/seasonal_allergies.json new file mode 100644 index 0000000..b9017af --- /dev/null +++ b/src/main/resources/modules/seasonal_allergies.json @@ -0,0 +1,184 @@ +{ + "name": "Seasonal Allergies", + "remarks": [ + "Seasonal allergies, also known as allergic rhinitis or hay fever, are immune system responses triggered by airborne allergens such as pollen, grass, or mold spores that typically appear during specific seasons. The condition causes inflammation of the nasal passages, resulting in symptoms like sneezing, congestion, and itchy eyes. Seasonal allergies are common, affecting approximately 10-30% of adults and up to 40% of children, with symptoms that can significantly impact quality of life during peak allergy seasons.", + "ICD-10 code: J30", + "Category: Respiratory System", + "Risk factors: - Age: Can begin at any age, but most commonly first appears in childhood or early adulthood (before age 30) - Gender: Slightly more common in males during childhood, but equalizes in adulthood - Family history of allergies or asthma (genetic predisposition) - Early life exposure to allergens, pollution, or tobacco smoke - Birth during high pollen seasons - Living in areas with high pollen counts or air pollution" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years" + }, + "direct_transition": "Delay_Until_Onset" + }, + "Delay_Until_Onset": { + "type": "Delay", + "range": { + "low": 0, + "high": 20, + "unit": "years" + }, + "direct_transition": "Onset" + }, + "Onset": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "64109004", + "display": "Seasonal Allergies" + } + ], + "direct_transition": "Diagnosis_Encounter" + }, + "Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Symptom_0" + }, + "Symptom_0": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418107008", + "display": "Nasal congestion" + } + ], + "direct_transition": "Symptom_1" + }, + "Symptom_1": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418107008", + "display": "Runny nose with clear discharge" + } + ], + "direct_transition": "Symptom_2" + }, + "Symptom_2": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418107008", + "display": "Sneezing" + } + ], + "direct_transition": "DiagnosticTest_0" + }, + "DiagnosticTest_0": { + "type": "Procedure", + "target_encounter": "Diagnosis_Encounter", + "reason": "Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386053000", + "display": "Skin prick test" + } + ], + "direct_transition": "DiagnosticTest_1" + }, + "DiagnosticTest_1": { + "type": "Procedure", + "target_encounter": "Diagnosis_Encounter", + "reason": "Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386053000", + "display": "Specific IgE blood test (RAST)" + } + ], + "direct_transition": "Prescribe_0" + }, + "Prescribe_0": { + "type": "MedicationOrder", + "target_encounter": "Diagnosis_Encounter", + "reason": "Onset", + "codes": [ + { + "system": "RxNorm", + "code": "308047", + "display": "Antihistamines" + } + ], + "direct_transition": "Prescribe_1" + }, + "Prescribe_1": { + "type": "MedicationOrder", + "target_encounter": "Diagnosis_Encounter", + "reason": "Onset", + "codes": [ + { + "system": "RxNorm", + "code": "308047", + "display": "Intranasal corticosteroids" + } + ], + "direct_transition": "Prescribe_2" + }, + "Prescribe_2": { + "type": "MedicationOrder", + "target_encounter": "Diagnosis_Encounter", + "reason": "Onset", + "codes": [ + { + "system": "RxNorm", + "code": "308047", + "display": "Leukotriene modifiers" + } + ], + "direct_transition": "Follow_Up_Encounter" + }, + "Follow_Up_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter" + } + ], + "direct_transition": "End_Follow_Up_Encounter" + }, + "End_Follow_Up_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/seasonal_allergies.json.details b/src/main/resources/modules/seasonal_allergies.json.details new file mode 100644 index 0000000..b66db0e --- /dev/null +++ b/src/main/resources/modules/seasonal_allergies.json.details @@ -0,0 +1,81 @@ +# Seasonal Allergies (J30) - Respiratory System + +## 1. DESCRIPTION +Seasonal allergies, also known as allergic rhinitis or hay fever, are immune system responses triggered by airborne allergens such as pollen, grass, or mold spores that typically appear during specific seasons. The condition causes inflammation of the nasal passages, resulting in symptoms like sneezing, congestion, and itchy eyes. Seasonal allergies are common, affecting approximately 10-30% of adults and up to 40% of children, with symptoms that can significantly impact quality of life during peak allergy seasons. + +## 2. RISK_FACTORS +- Age: Can begin at any age, but most commonly first appears in childhood or early adulthood (before age 30) +- Gender: Slightly more common in males during childhood, but equalizes in adulthood +- Family history of allergies or asthma (genetic predisposition) +- Early life exposure to allergens, pollution, or tobacco smoke +- Birth during high pollen seasons +- Living in areas with high pollen counts or air pollution + +## 3. SYMPTOMS +- Nasal congestion +- Runny nose with clear discharge +- Sneezing +- Itchy or watery eyes +- Itchy nose, roof of mouth, or throat +- Postnasal drip +- Cough +- Fatigue +- Headache +- Dark circles under eyes ("allergic shiners") +- Decreased sense of smell or taste + +## 4. DIAGNOSTIC_TESTS +- Skin prick test +- Specific IgE blood test (RAST) +- Complete blood count with differential (to check for elevated eosinophils) +- Nasal smear (to check for eosinophils) +- Total serum IgE level +- Allergy component testing +- Nasal endoscopy (in some cases) + +## 5. TREATMENTS +- Medications: + - Antihistamines (cetirizine, loratadine, fexofenadine) - reduce histamine response + - Intranasal corticosteroids (fluticasone, mometasone) - reduce inflammation + - Leukotriene modifiers (montelukast) - block inflammatory pathways + - Decongestants (pseudoephedrine) - reduce nasal congestion + - Mast cell stabilizers (cromolyn sodium) - prevent histamine release + - Anticholinergics (ipratropium) - reduce nasal secretions + - Combination medications (antihistamine/decongestant combinations) + +- Procedures: + - Allergen immunotherapy (allergy shots) + - Sublingual immunotherapy (allergy tablets or drops) + +- Other interventions: + - Saline nasal irrigation + - HEPA air filters + - Allergen avoidance strategies + - Wearing sunglasses outdoors + - Keeping windows closed during high pollen seasons + - Showering after outdoor exposure + +## 6. COMPLICATIONS +- Sinusitis +- Otitis media (ear infection) +- Worsening of asthma symptoms +- Sleep disturbances/insomnia +- Decreased quality of life +- Reduced productivity at work/school +- Development of allergic asthma +- Nasal polyps +- Chronic rhinitis + +## 7. PROGRESSION +- Starts: Often begins with mild symptoms during a specific season (spring, summer, or fall) corresponding to particular allergen exposure +- Development: May progress from intermittent to persistent symptoms; can develop sensitivity to additional allergens over time; symptoms may worsen with repeated exposure over years +- Outcomes: Most patients experience lifelong recurrence of symptoms during relevant seasons, though severity may fluctuate; some children may experience improvement or resolution with age; symptoms can be well-controlled with proper treatment and allergen avoidance + +## 8. FOLLOW_UP +- Annual or biannual visits with allergist or primary care provider +- Symptom monitoring and medication adjustment before and during allergy seasons +- Periodic reassessment of allergen sensitivities (every 3-5 years) +- Monitoring for development of asthma or other allergic conditions +- Adjustment of immunotherapy dosing if applicable +- Education on environmental control measures +- Review of medication efficacy and side effects \ No newline at end of file diff --git a/src/main/resources/modules/seasonal_allergies.json.raw b/src/main/resources/modules/seasonal_allergies.json.raw new file mode 100644 index 0000000..dee4893 --- /dev/null +++ b/src/main/resources/modules/seasonal_allergies.json.raw @@ -0,0 +1,461 @@ +{ + "name": "Seasonal Allergies", + "remarks": [ + "This module simulates the onset, progression, diagnosis, and management of seasonal allergies (allergic rhinitis).", + "Seasonal allergies are typically triggered by environmental allergens like pollen, and symptoms include sneezing, nasal congestion, and itchy eyes.", + "The module includes risk factors, diagnostic criteria, treatment options, and potential complications." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 2, + "unit": "years" + }, + "distributed_transition": [ + { + "distribution": 0.8, + "transition": "Potential_Onset" + }, + { + "distribution": 0.2, + "transition": "Terminal" + } + ] + }, + "Potential_Onset": { + "type": "Delay", + "exact": { + "quantity": 0, + "unit": "days" + }, + "distributed_transition": [ + { + "distribution": 0.15, + "transition": "Risk_Factors" + }, + { + "distribution": 0.85, + "transition": "Terminal" + } + ] + }, + "Risk_Factors": { + "type": "SetAttribute", + "attribute": "allergy_risk", + "value": true, + "distributed_transition": [ + { + "distribution": 0.4, + "transition": "Family_History" + }, + { + "distribution": 0.3, + "transition": "Asthma_History" + }, + { + "distribution": 0.3, + "transition": "Eczema_History" + } + ] + }, + "Family_History": { + "type": "ConditionOnset", + "target_encounter": "Allergy_Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "160303001", + "display": "Family history of allergy" + } + ], + "direct_transition": "Onset_Delay" + }, + "Asthma_History": { + "type": "ConditionOnset", + "target_encounter": "Allergy_Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "195967001", + "display": "Asthma" + } + ], + "direct_transition": "Onset_Delay" + }, + "Eczema_History": { + "type": "ConditionOnset", + "target_encounter": "Allergy_Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "43116000", + "display": "Eczema" + } + ], + "direct_transition": "Onset_Delay" + }, + "Onset_Delay": { + "type": "Delay", + "range": { + "low": 1, + "high": 5, + "unit": "years" + }, + "direct_transition": "Seasonal_Allergy_Onset" + }, + "Seasonal_Allergy_Onset": { + "type": "ConditionOnset", + "target_encounter": "Allergy_Diagnosis_Encounter", + "assign_to_attribute": "seasonal_allergies", + "codes": [ + { + "system": "SNOMED-CT", + "code": "367498001", + "display": "Seasonal allergic rhinitis" + } + ], + "direct_transition": "Allergy_Symptoms" + }, + "Allergy_Symptoms": { + "type": "Symptom", + "symptom": "Nasal Congestion", + "range": { + "low": 0, + "high": 100 + }, + "direct_transition": "Sneezing_Symptom" + }, + "Sneezing_Symptom": { + "type": "Symptom", + "symptom": "Sneezing", + "range": { + "low": 0, + "high": 100 + }, + "direct_transition": "Itchy_Eyes_Symptom" + }, + "Itchy_Eyes_Symptom": { + "type": "Symptom", + "symptom": "Itchy Eyes", + "range": { + "low": 0, + "high": 100 + }, + "direct_transition": "Runny_Nose_Symptom" + }, + "Runny_Nose_Symptom": { + "type": "Symptom", + "symptom": "Runny Nose", + "range": { + "low": 0, + "high": 100 + }, + "direct_transition": "Allergy_Season_Start" + }, + "Allergy_Season_Start": { + "type": "SetAttribute", + "attribute": "allergy_season", + "value": true, + "direct_transition": "Allergy_Flare_Up" + }, + "Allergy_Flare_Up": { + "type": "Symptom", + "symptom": "Nasal Congestion", + "exact": { + "quantity": 70 + }, + "direct_transition": "Sneezing_Flare_Up" + }, + "Sneezing_Flare_Up": { + "type": "Symptom", + "symptom": "Sneezing", + "exact": { + "quantity": 80 + }, + "direct_transition": "Itchy_Eyes_Flare_Up" + }, + "Itchy_Eyes_Flare_Up": { + "type": "Symptom", + "symptom": "Itchy Eyes", + "exact": { + "quantity": 75 + }, + "direct_transition": "Runny_Nose_Flare_Up" + }, + "Runny_Nose_Flare_Up": { + "type": "Symptom", + "symptom": "Runny Nose", + "exact": { + "quantity": 85 + }, + "direct_transition": "Seek_Care_Decision" + }, + "Seek_Care_Decision": { + "type": "Delay", + "range": { + "low": 1, + "high": 14, + "unit": "days" + }, + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Allergy_Diagnosis_Encounter" + }, + { + "distribution": 0.3, + "transition": "Self_Medication" + } + ] + }, + "Self_Medication": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "1020137", + "display": "Cetirizine 10 MG Oral Tablet" + } + ], + "direct_transition": "Allergy_Season_End" + }, + "Allergy_Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "seasonal_allergies", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom" + } + ], + "direct_transition": "Allergy_Diagnosis" + }, + "Allergy_Diagnosis": { + "type": "ConditionOnset", + "target_encounter": "Allergy_Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "367498001", + "display": "Seasonal allergic rhinitis" + } + ], + "direct_transition": "Allergy_Testing" + }, + "Allergy_Testing": { + "type": "Procedure", + "target_encounter": "Allergy_Diagnosis_Encounter", + "reason": "seasonal_allergies", + "codes": [ + { + "system": "SNOMED-CT", + "code": "395142003", + "display": "Allergy screening test" + } + ], + "direct_transition": "Treatment_Decision" + }, + "Treatment_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.4, + "transition": "Prescribe_Antihistamine" + }, + { + "distribution": 0.3, + "transition": "Prescribe_Nasal_Steroid" + }, + { + "distribution": 0.2, + "transition": "Prescribe_Combination_Therapy" + }, + { + "distribution": 0.1, + "transition": "Prescribe_Leukotriene_Modifier" + } + ] + }, + "Prescribe_Antihistamine": { + "type": "MedicationOrder", + "target_encounter": "Allergy_Diagnosis_Encounter", + "reason": "seasonal_allergies", + "codes": [ + { + "system": "RxNorm", + "code": "1014676", + "display": "Loratadine 10 MG Oral Tablet" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "Prescribe_Nasal_Steroid": { + "type": "MedicationOrder", + "target_encounter": "Allergy_Diagnosis_Encounter", + "reason": "seasonal_allergies", + "codes": [ + { + "system": "RxNorm", + "code": "895994", + "display": "Fluticasone propionate 50 UG/ACTUAT Nasal Spray" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "Prescribe_Combination_Therapy": { + "type": "MedicationOrder", + "target_encounter": "Allergy_Diagnosis_Encounter", + "reason": "seasonal_allergies", + "codes": [ + { + "system": "RxNorm", + "code": "1014676", + "display": "Loratadine 10 MG Oral Tablet" + } + ], + "direct_transition": "Add_Nasal_Steroid" + }, + "Add_Nasal_Steroid": { + "type": "MedicationOrder", + "target_encounter": "Allergy_Diagnosis_Encounter", + "reason": "seasonal_allergies", + "codes": [ + { + "system": "RxNorm", + "code": "895994", + "display": "Fluticasone propionate 50 UG/ACTUAT Nasal Spray" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "Prescribe_Leukotriene_Modifier": { + "type": "MedicationOrder", + "target_encounter": "Allergy_Diagnosis_Encounter", + "reason": "seasonal_allergies", + "codes": [ + { + "system": "RxNorm", + "code": "1180149", + "display": "Montelukast 10 MG Oral Tablet" + } + ], + "direct_transition": "End_Diagnosis_Encounter" + }, + "End_Diagnosis_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Allergy_Season_End" + }, + "Allergy_Season_End": { + "type": "SetAttribute", + "attribute": "allergy_season", + "value": false, + "direct_transition": "Symptom_Improvement" + }, + "Symptom_Improvement": { + "type": "Symptom", + "symptom": "Nasal Congestion", + "exact": { + "quantity": 10 + }, + "direct_transition": "Sneezing_Improvement" + }, + "Sneezing_Improvement": { + "type": "Symptom", + "symptom": "Sneezing", + "exact": { + "quantity": 5 + }, + "direct_transition": "Itchy_Eyes_Improvement" + }, + "Itchy_Eyes_Improvement": { + "type": "Symptom", + "symptom": "Itchy Eyes", + "exact": { + "quantity": 5 + }, + "direct_transition": "Runny_Nose_Improvement" + }, + "Runny_Nose_Improvement": { + "type": "Symptom", + "symptom": "Runny Nose", + "exact": { + "quantity": 10 + }, + "direct_transition": "Wait_Until_Next_Season" + }, + "Wait_Until_Next_Season": { + "type": "Delay", + "range": { + "low": 6, + "high": 10, + "unit": "months" + }, + "distributed_transition": [ + { + "distribution": 0.9, + "transition": "Check_For_Complications" + }, + { + "distribution": 0.1, + "transition": "Terminal" + } + ] + }, + "Check_For_Complications": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.85, + "transition": "Allergy_Season_Start" + }, + { + "distribution": 0.1, + "transition": "Develop_Sinusitis" + }, + { + "distribution": 0.05, + "transition": "Develop_Asthma" + } + ] + }, + "Develop_Sinusitis": { + "type": "ConditionOnset", + "target_encounter": "Complication_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "36971009", + "display": "Sinusitis" + } + ], + "direct_transition": "Complication_Encounter" + }, + "Develop_Asthma": { + "type": "ConditionOnset", + "target_encounter": "Complication_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "195967001", + "display": "Asthma" + } + ], + "direct_transition": "Complication_Encounter" + }, + "Complication_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": " \ No newline at end of file diff --git a/src/main/resources/modules/self_harm.json b/src/main/resources/modules/self_harm.json new file mode 100644 index 0000000..577c548 --- /dev/null +++ b/src/main/resources/modules/self_harm.json @@ -0,0 +1,666 @@ +{ + "name": "Self Harm", + "remarks": [ + "In the U.S., suicides occur at a rate of 12.93/100k people. However, suicide attempts occur ", + "at approximately 12x this rate. The incidence of attempts and completed suicides varies ", + "greatly depending on race, age, and gender. The following factors influence the likelihood ", + "of suicide in this module: ", + "Race - White males (esp. middle age or older) account for 7/10 suicides ", + "Gender - Females attempt suicide 3x as often as males, but males complete 3.5x as often ", + "Age - In general, the older you get the more likely you are to commit suicide ", + "source: https://afsp.org/about-suicide/suicide-statistics/", + "A Harvard University study on attempted suicides shed additional light on the incidence, ", + "recurrence, and outcomes of suicide attempts. See: ", + "https://www.hsph.harvard.edu/means-matter/means-matter/survival/" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + "Initial breakdown by gender and race. For simplicity, grouping race into only 3 categories: ", + "white, native, and the rest. For the rest, I averaged the incidence rates: (6.3 + 5.9 + 5.5) / 3 = 5.9 ", + "The assumption here is that all races have the same relative ratios of attempts to completions (12:1).", + "Females ATTEMPT suicide 3x as often as males, but males complete 3.5x as often. If the death rate ", + "is 12.93/100k and attempt rates are estimated at 12x that number, then the average ATTEMPT rates ", + "for males and females, by race, are: ", + "| Race | Completion Rate | Attempt Rates (12x) | Female Incidence (75%) | Male Incidence (25%) | ", + "-------------------------------------------------------------------------------------------------- ", + "| White | 0.000147 | 0.001764 | 0.001323 | 0.000441 | ", + "| Native | 0.000109 | 0.001308 | 0.000981 | 0.000327 | ", + "| Rest | 0.000059 | 0.000708 | 0.000531 | 0.000177 | ", + "-------------------------------------------------------------------------------------------------- " + ], + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Gender", + "gender": "M" + }, + { + "condition_type": "Race", + "race": "White" + } + ] + }, + "distributions": [ + { + "distribution": 0.000441, + "transition": "Attempted_Suicide_Incidence_By_Age" + }, + { + "distribution": 0.999559, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Gender", + "gender": "M" + }, + { + "condition_type": "Race", + "race": "Native" + } + ] + }, + "distributions": [ + { + "distribution": 0.000327, + "transition": "Attempted_Suicide_Incidence_By_Age" + }, + { + "distribution": 0.999673, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "M", + "remarks": [ + "This catches males of any other race." + ] + }, + "distributions": [ + { + "distribution": 0.000177, + "transition": "Attempted_Suicide_Incidence_By_Age" + }, + { + "distribution": 0.999823, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Gender", + "gender": "F" + }, + { + "condition_type": "Race", + "race": "White" + } + ] + }, + "distributions": [ + { + "distribution": 0.001323, + "transition": "Attempted_Suicide_Incidence_By_Age" + }, + { + "distribution": 0.998677, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Gender", + "gender": "F" + }, + { + "condition_type": "Race", + "race": "Native" + } + ] + }, + "distributions": [ + { + "distribution": 0.000981, + "transition": "Attempted_Suicide_Incidence_By_Age" + }, + { + "distribution": 0.999019, + "transition": "Terminal" + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F", + "remarks": [ + "This catches females of any other race." + ] + }, + "distributions": [ + { + "distribution": 0.000531, + "transition": "Attempted_Suicide_Incidence_By_Age" + }, + { + "distribution": 0.999469, + "transition": "Terminal" + } + ] + } + ] + }, + "Attempted_Suicide_Incidence_By_Age": { + "type": "Simple", + "remarks": [ + "Instead of using the incidence rates out of 100k, using the relative proportions ", + "of the age-adjusted incidence rates. Adjusted these to the following values: ", + "<20 3.2 / 89.3 => 0.036 ", + "20-34 14.8 / 89.3 => 0.166 ", + "35-44 16.6 / 89.3 => 0.186 ", + "45-64 19.2 / 89.3 => 0.215 ", + "65-84 16.2 / 89.3 => 0.181 ", + "85+ 19.3 / 89.3 => 0.216 ", + "----------------------------- ", + "Total: 89.3 / 89.3 => 1.000 " + ], + "distributed_transition": [ + { + "distribution": 0.036, + "transition": "Delay_Until_Teens" + }, + { + "distribution": 0.166, + "transition": "Delay_Until_20_34" + }, + { + "distribution": 0.186, + "transition": "Delay_Until_35_44" + }, + { + "distribution": 0.215, + "transition": "Delay_Until_45_64" + }, + { + "distribution": 0.181, + "transition": "Delay_Until_65_84" + }, + { + "distribution": 0.216, + "transition": "Delay_Until_85_Plus" + } + ] + }, + "Delay_Until_Teens": { + "type": "Delay", + "range": { + "low": 15, + "high": 19, + "unit": "years" + }, + "direct_transition": "Attempts_Suicide" + }, + "Delay_Until_20_34": { + "type": "Delay", + "range": { + "low": 20, + "high": 34, + "unit": "years" + }, + "direct_transition": "Attempts_Suicide" + }, + "Delay_Until_35_44": { + "type": "Delay", + "range": { + "low": 35, + "high": 44, + "unit": "years" + }, + "direct_transition": "Attempts_Suicide" + }, + "Delay_Until_45_64": { + "type": "Delay", + "range": { + "low": 45, + "high": 64, + "unit": "years" + }, + "direct_transition": "Attempts_Suicide" + }, + "Delay_Until_65_84": { + "type": "Delay", + "range": { + "low": 64, + "high": 84, + "unit": "years" + }, + "direct_transition": "Attempts_Suicide" + }, + "Delay_Until_85_Plus": { + "type": "Delay", + "range": { + "low": 85, + "high": 90, + "unit": "years" + }, + "direct_transition": "Attempts_Suicide" + }, + "Attempts_Suicide": { + "type": "Simple", + "remarks": [ + "It's difficult to find accurate statistics for how many people actually attempt suicide since ", + "those who attempt suicide often don't seek medical attention afterwards. Therefore, the attempts ", + "modeled in this module are considered severe enough to merit medical attention.", + "Males COMPLETE suicide 3.5x as often as females do. Suicides have a 7% completion rate overall." + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "distribution": 0.0546, + "transition": "Fatal_Attempt" + }, + { + "distribution": 0.9454, + "transition": "Non_Fatal_Attempt" + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "distribution": 0.0156, + "transition": "Fatal_Attempt" + }, + { + "distribution": 0.9844, + "transition": "Non_Fatal_Attempt" + } + ] + } + ] + }, + "Non_Fatal_Attempt": { + "type": "Simple", + "remarks": [ + "======================================================================", + " NON-FATAL ", + "======================================================================", + "Most commonly this is from poisoning (overdose), suffocation, or cutting. Less than 1% of all ", + "non-fatal attempts involve firearms, so omitting that option altogether. The distributions here ", + "are based on the Harvard University study, see: ", + "https://www.hsph.harvard.edu/means-matter/basic-suicide-facts/how/" + ], + "distributed_transition": [ + { + "distribution": 0.64, + "transition": "Attempt_By_Poisoning" + }, + { + "distribution": 0.19, + "transition": "Attempt_By_Cutting" + }, + { + "distribution": 0.17, + "transition": "Attempt_By_Suffocation" + } + ] + }, + "Attempt_By_Poisoning": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Attempted_Suicide", + "assign_to_attribute": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "86849004", + "display": "Suicidal poisoning (disorder)" + } + ], + "direct_transition": "ED_Visit_For_Attempted_Suicide" + }, + "Attempt_By_Cutting": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Attempted_Suicide", + "assign_to_attribute": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "287185009", + "display": "Attempted suicide - cut/stab (event)" + } + ], + "direct_transition": "ED_Visit_For_Attempted_Suicide" + }, + "Attempt_By_Suffocation": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Attempted_Suicide", + "assign_to_attribute": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "287182007", + "display": "Attempted suicide - suffocation (event)" + } + ], + "direct_transition": "ED_Visit_For_Attempted_Suicide" + }, + "ED_Visit_For_Attempted_Suicide": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "Psychiatric_Evaluation" + }, + "Psychiatric_Evaluation": { + "type": "Procedure", + "reason": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "90407005", + "display": "Evaluation of psychiatric state of patient (procedure)" + } + ], + "direct_transition": "Short_Hospital_Stay" + }, + "Short_Hospital_Stay": { + "type": "Procedure", + "reason": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "74857009", + "display": "Hospital admission, short-term, 24 hours (procedure)" + } + ], + "duration": { + "low": 24, + "high": 72, + "unit": "hours" + }, + "direct_transition": "End_Attempted_Suicide_Observation_Period" + }, + "End_Attempted_Suicide_Observation_Period": { + "type": "EncounterEnd", + "direct_transition": "End_Suicide_Attempt" + }, + "End_Suicide_Attempt": { + "type": "ConditionEnd", + "referenced_by_attribute": "suicide_attempt", + "direct_transition": "Delay_Until_Outpatient_Followup" + }, + "Delay_Until_Outpatient_Followup": { + "type": "Delay", + "range": { + "low": 3, + "high": 7, + "unit": "days" + }, + "direct_transition": "Attempted_Suicide_Followup" + }, + "Attempted_Suicide_Followup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Suicide_CarePlan_Selector" + }, + "Suicide_CarePlan_Selector": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "suicide_careplan", + "operator": "is nil" + }, + "transition": "Suicide_CarePlan" + }, + { + "transition": "Followup_Psychiatric_Evaluation" + } + ] + }, + "Suicide_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "suicide_careplan", + "reason": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183401008", + "display": "Anti-suicide psychotherapy (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "768835002", + "display": "Depression care management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "415665002", + "display": "Suicide prevention (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "10029008", + "display": "Suicide precautions (procedure)" + } + ], + "direct_transition": "Followup_Psychiatric_Evaluation" + }, + "Followup_Psychiatric_Evaluation": { + "type": "Procedure", + "reason": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "88848003", + "display": "Psychiatric follow-up (procedure)" + } + ], + "direct_transition": "End_Followup_Encounter" + }, + "End_Followup_Encounter": { + "type": "EncounterEnd", + "remarks": [ + "From the Harvard University study on suicide attempts: ", + " 7% are fatal ", + "70% do not attempt suicide again ", + "23% reattempt at some point " + ], + "distributed_transition": [ + { + "distribution": 0.753, + "transition": "Terminal" + }, + { + "distribution": 0.247, + "transition": "Delay_Until_Next_Attempt" + } + ] + }, + "Delay_Until_Next_Attempt": { + "type": "Delay", + "remarks": [ + "It's unclear what a typical amount of time is between suicide attempts. Leaving this as ", + "a broad range from 0.5 - 3 years." + ], + "range": { + "low": 6, + "high": 36, + "unit": "months" + }, + "direct_transition": "Attempts_Suicide" + }, + "Fatal_Attempt": { + "type": "Simple", + "remarks": [ + "======================================================================", + " FATAL ", + "======================================================================", + "The most common methods of fatal suicide are: ", + "49.9% by firearms ", + "26.7% by suffocation or hanging (includes CO from motor vehicles)", + "15.9% by poisoning ", + " 7.5% by other means (vehicular, drowning, falls, etc.)" + ], + "distributed_transition": [ + { + "distribution": 0.499, + "transition": "Suicide_By_Firearm" + }, + { + "distribution": 0.267, + "transition": "Suicide_By_Suffocation" + }, + { + "distribution": 0.159, + "transition": "Suicide_By_Poisoning" + }, + { + "distribution": 0.075, + "transition": "Suicide_By_Other_Means" + } + ] + }, + "Suicide_By_Firearm": { + "type": "ConditionOnset", + "target_encounter": "Autopsy_Encounter", + "assign_to_attribute": "suicide", + "codes": [ + { + "system": "SNOMED-CT", + "code": "287193009", + "display": "Suicide - firearms (event)" + } + ], + "direct_transition": "Death" + }, + "Suicide_By_Suffocation": { + "type": "ConditionOnset", + "target_encounter": "Autopsy_Encounter", + "assign_to_attribute": "suicide", + "codes": [ + { + "system": "SNOMED-CT", + "code": "287191006", + "display": "Suicide - suffocation (event)" + } + ], + "direct_transition": "Death" + }, + "Suicide_By_Poisoning": { + "type": "ConditionOnset", + "target_encounter": "Autopsy_Encounter", + "assign_to_attribute": "suicide", + "codes": [ + { + "system": "SNOMED-CT", + "code": "86849004", + "display": "Suicidal poisoning (disorder)" + } + ], + "direct_transition": "Death" + }, + "Suicide_By_Other_Means": { + "type": "ConditionOnset", + "target_encounter": "Autopsy_Encounter", + "assign_to_attribute": "suicide", + "codes": [ + { + "system": "SNOMED-CT", + "code": "44301001", + "display": "Suicide (event)" + } + ], + "direct_transition": "Death" + }, + "Death": { + "type": "Death", + "referenced_by_attribute": "suicide", + "direct_transition": "Autopsy_Encounter" + }, + "Autopsy_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "suicide", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Autopsy_Examination" + }, + "Autopsy_Examination": { + "type": "Procedure", + "reason": "suicide", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29240004", + "display": "Autopsy examination (procedure)" + } + ], + "direct_transition": "End_Suicide" + }, + "End_Suicide": { + "type": "ConditionEnd", + "referenced_by_attribute": "suicide", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/sepsis.json b/src/main/resources/modules/sepsis.json new file mode 100644 index 0000000..ad4f21b --- /dev/null +++ b/src/main/resources/modules/sepsis.json @@ -0,0 +1,644 @@ +{ + "name": "Sepsis", + "remarks": [ + "Module Title: Sepsis", + "Version Number: 1.0", + "Date Created: 12/15/2020", + "Module Steward: ONC", + "Module Developer: Clinovations Government + Health", + "Description: Sepsis is a leading cause of death in critically ill patients in the United States. This module models the treatment of sepsis in patients >=18 years of age. It is based on the Surviving Sepsis Campaign clinical care guidelines for sepsis, particularly the guidelines for the Hour-1 Bundle for initial resuscitation of sepsis and septic shock. ", + "", + "References: ", + "1. Hotchkiss RS, Karl IE. The Pathophysiology and Treatment of Sepsis. N Engl J Med. 2003 Jan 9;348(2):138–50. ", + "2. \tSurviving Sepsis Campaign: International Guidelines for Mana... : Critical Care Medicine [Internet]. [cited 2020 Oct 16]. Available from: https://journals.lww.com/ccmjournal/Fulltext/2017/03000/Surviving_Sepsis_Campaign___International.15.aspx", + "3. \tDellinger RP, Schorr CA, Levy MM. A Users’ Guide to the 2016 Surviving Sepsis Guidelines. Crit Care Med. 2017 Mar;45(3):381–385. " + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Guard" + }, + "Terminal": { + "type": "Terminal" + }, + "Sepsis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91302008", + "display": "Sepsis (disorder)" + } + ], + "direct_transition": "Sepsis_ED_Encounter", + "target_encounter": "Sepsis_ED_Encounter" + }, + "Administer_Broad_Spectrum_Abx": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Aztreonam", + "condition": { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": "7984", + "display": "Penicillin V" + } + ] + } + }, + { + "transition": "Piperacillin_Tazobactam" + } + ] + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years", + "value": 0 + }, + "remarks": [ + "Sepsis shown to be present in 6% of hospital admissions, with a sensitivity of 69.7% (95% confidence interval [CI] 52.9% to 92.0%), 98.1% specificity (95% CI 97.7% to 98.5%),", + "70.4% positive predictive value (95% CI 64.0% to 78.8%), and 98.0% negative predictive value (95% CI 95.9% to", + "99.6%) when using Sepsis-3 criteria as the reference standard. ", + "Ref: https://www.cdc.gov/sepsis/clinicaltools/index.html?CDC_AA_refVal=https%3A%2F%2Fwww.cdc.gov%2Fsepsis%2Fdatareports%2Findex.html" + ], + "distributed_transition": [ + { + "transition": "Delay", + "distribution": 0.06 + }, + { + "transition": "Terminal", + "distribution": 0.94 + } + ] + }, + "Piperacillin_Tazobactam": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1659131, + "display": "piperacillin 2000 MG / tazobactam 250 MG Injection" + } + ], + "reason": "Sepsis", + "administration": true, + "direct_transition": "Vancomycin" + }, + "Vancomycin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1807510, + "display": "150 ML vancomycin 5 MG/ML Injection" + } + ], + "reason": "Sepsis", + "administration": true, + "direct_transition": "Vitals_and_Labs" + }, + "Fluid_Resuscitation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "430701006", + "display": "Resuscitation using intravenous fluid (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Check_Septic_Shock", + "reason": "Sepsis" + }, + "Lactate_Level": { + "type": "Observation", + "category": "laboratory", + "unit": "mmol/L", + "codes": [ + { + "system": "LOINC", + "code": "32693-4", + "display": "Lactate [Moles/volume] in Blood" + } + ], + "conditional_transition": [ + { + "transition": "Administer_Vasopressors", + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "32693-4", + "display": "Lactate [Moles/volume] in Blood" + } + ], + "operator": ">=", + "value": 2 + } + }, + { + "transition": "Record_Blood_Pressure" + } + ], + "range": { + "low": 0, + "high": 4 + } + }, + "Administer_Vasopressors": { + "type": "Simple", + "direct_transition": "Norepinephrine" + }, + "Vitals_and_Labs": { + "type": "Simple", + "direct_transition": "Capillary_Refill" + }, + "Blood_Cultures": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "600-7", + "display": "Blood Culture, Routine" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "88262-1", + "display": "Gram positive blood culture panel by Probe in Positive blood culture" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "10828004", + "display": "Positive (qualifier value)" + } + } + ], + "direct_transition": "Administer_Broad_Spectrum_Abx" + }, + "Discharge_to_Home": { + "type": "EncounterEnd", + "direct_transition": "Terminal", + "discharge_disposition": { + "system": "NUBC", + "code": 1, + "display": "Discharge to home" + } + }, + "Delay_3-10_days": { + "type": "Delay", + "range": { + "low": 3, + "high": 10, + "unit": "days" + }, + "distributed_transition": [ + { + "transition": "Discharge_to_Home", + "distribution": 0.6 + }, + { + "transition": "Admit_to_ICU", + "distribution": 0.4 + } + ] + }, + "Delay_in_ICU": { + "type": "Delay", + "range": { + "low": 1, + "high": 2, + "unit": "days" + }, + "remarks": [ + "Overall mortality of sepsis is 12.5% among patients with sepsis. Ref: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6250243/#:~:text=The%20higher%20prevalence%20of%20sepsis,sepsis%20and%20septic%20shock%2C%20respectively." + ], + "distributed_transition": [ + { + "transition": "Death", + "distribution": 0.125 + }, + { + "transition": "Record_Blood_Pressure_2", + "distribution": 0.875 + } + ] + }, + "Death": { + "type": "Death", + "exact": { + "quantity": 1, + "unit": "days" + }, + "direct_transition": "End Encounter by Death", + "remarks": [ + "Overall mortality of sepsis is 12.5% among patients with sepsis. Ref: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6250243/#:~:text=The%20higher%20prevalence%20of%20sepsis,sepsis%20and%20septic%20shock%2C%20respectively." + ] + }, + "Septic_Shock": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "76571007", + "display": "Septic shock (disorder)" + } + ], + "direct_transition": "Admit_to_ICU" + }, + "Capillary_Refill": { + "type": "Observation", + "category": "exam", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "44963-7", + "display": "Capillary refill [Time] of Nail bed" + } + ], + "direct_transition": "Pulse_Oximetry", + "value_code": { + "system": "SNOMED-CT", + "code": "50427001", + "display": "Increased capillary filling time (finding)" + } + }, + "Pulse_Oximetry": { + "type": "Observation", + "category": "vital-signs", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "2708-6", + "display": "Oxygen saturation in Arterial blood" + }, + { + "system": "LOINC", + "code": "59408-5", + "display": "Oxygen saturation in Arterial blood by Pulse oximetry" + } + ], + "direct_transition": "Lactate_Level1", + "vital_sign": "Oxygen Saturation" + }, + "Check_Septic_Shock": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Low_MAP", + "distribution": 0.2 + }, + { + "transition": "Normal_MAP", + "distribution": 0.8 + } + ], + "remarks": [ + "Twenty percent of sepsis patients develop septic shock which can involve cardiovascular failure. Ref: https://pubmed.ncbi.nlm.nih.gov/22734959/ " + ] + }, + "Acute_Respiratory_Distress_Syndrome_ARDS": { + "type": "ConditionOnset", + "assign_to_attribute": "ARDS", + "codes": [ + { + "system": "SNOMED-CT", + "code": "67782005", + "display": "Acute respiratory distress syndrome (disorder)" + } + ], + "direct_transition": "Ventilator" + }, + "Check_ARDS": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Acute_Respiratory_Distress_Syndrome_ARDS", + "distribution": 0.18 + }, + { + "transition": "Delay_in_ICU", + "distribution": 0.8200000000000001 + } + ], + "remarks": [ + "The incidence of ARDS is approximately 18% in patients with septic shock, and mortality approaches 50%. ", + "", + "Ref: https://www.medscape.com/answers/168402-27366/what-is-the-incidence-of-acute-respiratory-distress-syndrome-ards-in-sepsisseptic-shock-and-what-are-the-potential-outcomes#:~:text=The%20patients%20demonstrate%20severe%20dyspnea,sepsis%2C%2018%2D25%25).", + "" + ] + }, + "Ventilator": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40617009", + "display": "Artificial ventilation (regime/therapy)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Ventilator_Weaning", + "reason": "Acute_Respiratory_Distress_Syndrome_ARDS" + }, + "Norepinephrine": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 242969, + "display": "4 ML norepinephrine 1 MG/ML Injection" + } + ], + "direct_transition": "Record_Blood_Pressure", + "administration": true, + "remarks": [ + "Among them, NE remains the most commonly used vasopressor and is recommended as the first-line agent by the Surviving Sepsis Campaign (SSC) experts (2). As a strong α-adrenergic agonist, NE increases blood pressure primarily through its vasoconstrictive properties with little effect on heart rate. Ref: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7333107/#:~:text=Among%20them%2C%20NE%20remains%20the,little%20effect%20on%20heart%20rate.", + "" + ], + "reason": "Septic_Shock" + }, + "Admit_to_ICU": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "305351004", + "display": "Admission to intensive care unit (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Fluid_Resuscitation2", + "reason": "Septic_Shock" + }, + "Admit_to_Inpatient": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "449214001", + "display": "Transfer to stepdown unit (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Delay_3-10_days", + "reason": "Sepsis" + }, + "Sepsis_ED_Encounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "Sepsis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Blood_Cultures" + }, + "Lactate_Level1": { + "type": "Observation", + "category": "laboratory", + "unit": "mmol/L", + "codes": [ + { + "system": "LOINC", + "code": "32693-4", + "display": "Lactate [Moles/volume] in Blood" + } + ], + "direct_transition": "Fluid_Resuscitation", + "range": { + "low": 1, + "high": 4 + } + }, + "Low_MAP": { + "type": "Observation", + "category": "vital-signs", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "8478-0", + "display": "Mean blood pressure" + } + ], + "direct_transition": "Septic_Shock", + "range": { + "low": 20, + "high": 60 + } + }, + "Normal_MAP": { + "type": "Observation", + "category": "vital-signs", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "8478-0", + "display": "Mean blood pressure" + } + ], + "direct_transition": "Admit_to_Inpatient", + "range": { + "low": 70, + "high": 100 + } + }, + "Record_Blood_Pressure": { + "type": "MultiObservation", + "category": "vital-signs", + "number_of_observations": 0, + "codes": [ + { + "system": "LOINC", + "code": "85354-9", + "display": "Blood pressure panel with all children optional" + } + ], + "observations": [ + { + "category": "vital-signs", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic Blood Pressure" + } + ], + "range": { + "low": 40, + "high": 120 + } + }, + { + "category": "laboratory", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "8462-4", + "display": "Diastolic Blood Pressure" + } + ], + "range": { + "low": 40, + "high": 120 + } + } + ], + "direct_transition": "Check_ARDS" + }, + "Ventilator_Weaning": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "243174005", + "display": "Weaning from mechanically assisted ventilation (regime/therapy)" + } + ], + "duration": { + "low": 3, + "high": 10, + "unit": "days" + }, + "distributed_transition": [ + { + "transition": "Delay_in_ICU", + "distribution": 0.5 + }, + { + "transition": "Death", + "distribution": 0.5 + } + ], + "remarks": [ + "The incidence of ARDS is approximately 18% in patients with septic shock, and mortality approaches 50%. Ref: https://www.medscape.com/answers/168402-27366/what-is-the-incidence-of-acute-respiratory-distress-syndrome-ards-in-sepsisseptic-shock-and-what-are-the-potential-outcomes#:~:text=The%20patients%20demonstrate%20severe%20dyspnea,sepsis%2C%2018%2D25%25).", + "" + ], + "reason": "Acute_Respiratory_Distress_Syndrome_ARDS" + }, + "Fluid_Resuscitation2": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "430701006", + "display": "Resuscitation using intravenous fluid (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Lactate_Level", + "reason": "Septic_Shock" + }, + "Delay": { + "type": "Delay", + "direct_transition": "Sepsis", + "range": { + "low": 2, + "high": 40, + "unit": "years" + } + }, + "Record_Blood_Pressure_2": { + "type": "MultiObservation", + "category": "vital-signs", + "number_of_observations": 0, + "codes": [ + { + "system": "LOINC", + "code": "85354-9", + "display": "Blood pressure panel with all children optional" + } + ], + "observations": [ + { + "category": "vital-signs", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic Blood Pressure" + } + ], + "vital_sign": "Systolic Blood Pressure" + }, + { + "category": "laboratory", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "8462-4", + "display": "Diastolic Blood Pressure" + } + ], + "vital_sign": "Diastolic Blood Pressure" + } + ], + "direct_transition": "Admit_to_Inpatient" + }, + "Aztreonam": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1664986, + "display": "Aztreonam 2000 MG Injection" + } + ], + "direct_transition": "Vancomycin", + "administration": true, + "reason": "Sepsis" + }, + "End Encounter by Death": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/sexual_activity.json b/src/main/resources/modules/sexual_activity.json new file mode 100644 index 0000000..cdd67fc --- /dev/null +++ b/src/main/resources/modules/sexual_activity.json @@ -0,0 +1,494 @@ +{ + "name": "Sexual Activity", + "remarks": [ + "This module models the sexual activity of males and females from puberty ", + "to old age. Most of the incidence in this module is based on a recent study ", + "from Indiana University: http://www.nationalsexstudy.indiana.edu/graph.html", + "This module operates on the assumption that these incidences for human sexual ", + "activity have remained similar throughout modern history.", + "No consideration is given to the age, race, socioeconomic status, or marriage ", + "status of the patient. This complexity could be added." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Initially_Inactive" + }, + "Initially_Inactive": { + "type": "SetAttribute", + "remarks": [ + "Initially, everyone is not sexually active. I hope." + ], + "attribute": "sexually_active", + "value": false, + "direct_transition": "Delay_For_Sexual_Activity" + }, + "Delay_For_Sexual_Activity": { + "type": "Delay", + "remarks": [ + "There is no data on sexual activity before the age of 14." + ], + "exact": { + "quantity": 14, + "unit": "years" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "transition": "Male_Sexual_Activity" + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "transition": "Female_Sexual_Activity" + } + ] + }, + "Female_Sexual_Activity": { + "type": "Delay", + "remarks": [ + "======================================================================", + " FEMALE SEXUAL ACTIVITY ", + "======================================================================", + "Sexual activity is modeled on a yearly basis, matching the Indiana University ", + "study. The incidences used here match the 'Vaginal Intercourse' numbers from ", + "the study." + ], + "exact": { + "quantity": 1, + "unit": "years" + }, + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 16, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.11, + "transition": "Sexually_Active" + }, + { + "distribution": 0.89, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 18, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.3, + "transition": "Sexually_Active" + }, + { + "distribution": 0.7, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 20, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.62, + "transition": "Sexually_Active" + }, + { + "distribution": 0.38, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 25, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.8, + "transition": "Sexually_Active" + }, + { + "distribution": 0.2, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 30, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.87, + "transition": "Sexually_Active" + }, + { + "distribution": 0.13, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 40, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.74, + "transition": "Sexually_Active" + }, + { + "distribution": 0.26, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 50, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.7, + "transition": "Sexually_Active" + }, + { + "distribution": 0.3, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 60, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.51, + "transition": "Sexually_Active" + }, + { + "distribution": 0.49, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 70, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.42, + "transition": "Sexually_Active" + }, + { + "distribution": 0.58, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 70, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.22, + "transition": "Sexually_Active" + }, + { + "distribution": 0.78, + "transition": "Not_Sexually_Active" + } + ] + } + ] + }, + "Male_Sexual_Activity": { + "type": "Delay", + "remarks": [ + "======================================================================", + " MALE SEXUAL ACTIVITY ", + "======================================================================", + "Also matching the 'Vaginal Intercourse' numbers from the study." + ], + "exact": { + "quantity": 1, + "unit": "years" + }, + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 16, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.09, + "transition": "Sexually_Active" + }, + { + "distribution": 0.91, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 18, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.3, + "transition": "Sexually_Active" + }, + { + "distribution": 0.7, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 20, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.53, + "transition": "Sexually_Active" + }, + { + "distribution": 0.47, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 25, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.63, + "transition": "Sexually_Active" + }, + { + "distribution": 0.37, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 30, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.86, + "transition": "Sexually_Active" + }, + { + "distribution": 0.14, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 40, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.85, + "transition": "Sexually_Active" + }, + { + "distribution": 0.15, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 50, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.74, + "transition": "Sexually_Active" + }, + { + "distribution": 0.26, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 60, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.58, + "transition": "Sexually_Active" + }, + { + "distribution": 0.42, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 70, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.54, + "transition": "Sexually_Active" + }, + { + "distribution": 0.46, + "transition": "Not_Sexually_Active" + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 70, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.43, + "transition": "Sexually_Active" + }, + { + "distribution": 0.57, + "transition": "Not_Sexually_Active" + } + ] + } + ] + }, + "Sexually_Active": { + "type": "SetAttribute", + "attribute": "sexually_active", + "value": true, + "direct_transition": "Old_Age_Check" + }, + "Not_Sexually_Active": { + "type": "SetAttribute", + "attribute": "sexually_active", + "value": false, + "direct_transition": "Old_Age_Check" + }, + "Old_Age_Check": { + "type": "Simple", + "remarks": [ + "Once patients reach 70+ years old, their sexual activity no longer changes.", + "Those who are still sexually active at 70 years old stay that way ;). Most will ", + "remain sexually inactive for the rest of their lives :| ." + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 70, + "unit": "years" + }, + "transition": "Terminal" + }, + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "transition": "Male_Sexual_Activity" + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "transition": "Female_Sexual_Activity" + } + ] + }, + "Terminal": { + "type": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/sinusitis.json b/src/main/resources/modules/sinusitis.json new file mode 100644 index 0000000..5b5c236 --- /dev/null +++ b/src/main/resources/modules/sinusitis.json @@ -0,0 +1,560 @@ +{ + "name": "Sinusitis", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Potential_Onset" + }, + "Potential_Onset": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "remarks": [ + "Sinusitis, also called rhinosinusitis, affects about 1 in 8 adults annually", + "http://www.entnet.org/content/sinusitis", + "Although sinus infections are the fifth leading reason for antibiotic prescriptions, 90 to 98 percent of cases are caused by viruses,", + "http://www.idsociety.org/2012_Rhinosinusitis_Guidelines/", + "While 15 percent of the population self-reports chronic sinusitis, only an estimated 2 to 3 percent of doctors’ visits are for the disease", + "http://labblog.uofmhealth.org/rounds/chronic-sinusitis-rarer-than-most-providers-and-patients-believe" + ], + "distributed_transition": [ + { + "distribution": 0.009, + "transition": "Viral_Infection_Starts" + }, + { + "distribution": 0.0005, + "transition": "Bacterial_Infection_Starts" + }, + { + "distribution": 0.0005, + "transition": "Inflammation_Starts" + }, + { + "distribution": 0.99, + "transition": "Potential_Onset" + } + ] + }, + "Viral_Infection_Starts": { + "type": "ConditionOnset", + "target_encounter": "Doctor_Visit", + "assign_to_attribute": "Sinusitis Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "444814009", + "display": "Viral sinusitis (disorder)" + } + ], + "direct_transition": "Symptom_of_Infection" + }, + "Bacterial_Infection_Starts": { + "type": "ConditionOnset", + "target_encounter": "Doctor_Visit", + "assign_to_attribute": "Sinusitis Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "75498004", + "display": "Acute bacterial sinusitis (disorder)" + } + ], + "direct_transition": "Symptom_of_Infection" + }, + "Symptom_of_Infection": { + "type": "Symptom", + "symptom": "Sinus Pain", + "range": { + "low": 50, + "high": 80 + }, + "direct_transition": "Common_Symptom" + }, + "Inflammation_Starts": { + "type": "ConditionOnset", + "target_encounter": "Doctor_Visit", + "assign_to_attribute": "Sinusitis Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "36971009", + "display": "Sinusitis (disorder)" + } + ], + "direct_transition": "Symptom_of_Inflammation" + }, + "Symptom_of_Inflammation": { + "type": "Symptom", + "symptom": "Sinus Pain", + "range": { + "low": 30, + "high": 50 + }, + "direct_transition": "Common_Symptom" + }, + "Common_Symptom": { + "type": "Symptom", + "symptom": "Nasal Congestion", + "range": { + "low": 0, + "high": 25 + }, + "direct_transition": "Common_Symptom1" + }, + "Common_Symptom1": { + "type": "Symptom", + "symptom": "Fever", + "range": { + "low": 0, + "high": 25 + }, + "direct_transition": "Common_Symptom2" + }, + "Common_Symptom2": { + "type": "Symptom", + "symptom": "Headache", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Common_Symptom3" + }, + "Common_Symptom3": { + "type": "Symptom", + "symptom": "Nasal Discharge", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Common_Symptom4" + }, + "Common_Symptom4": { + "type": "Symptom", + "symptom": "Sore Throat", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Common_Symptom5" + }, + "Common_Symptom5": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Common_Symptom6" + }, + "Common_Symptom6": { + "type": "Symptom", + "symptom": "Facial Swelling", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Common_Symptom7" + }, + "Common_Symptom7": { + "type": "Symptom", + "symptom": "Pain with Bright Lights", + "range": { + "low": 25, + "high": 50 + }, + "direct_transition": "Wait_to_see_Dr" + }, + "Wait_to_see_Dr": { + "type": "Delay", + "range": { + "low": 5, + "high": 10, + "unit": "days" + }, + "direct_transition": "Doctor_Visit" + }, + "Doctor_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Sinusitis Condition", + "remarks": [ + "Antibiotics are overprescribed for sinus infections" + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.8, + "transition": "End_Encounter" + }, + { + "distribution": 0.2, + "transition": "Penicillin_Allergy_Check" + } + ] + }, + "Prescribe_Antibiotic": { + "type": "MedicationOrder", + "remarks": [ + "https://www.drugs.com/dosage/amoxicillin.html#Usual_Adult_Dose_for_Sinusitis" + ], + "reason": "Sinusitis Condition", + "codes": [ + { + "system": "RxNorm", + "code": "562251", + "display": "Amoxicillin 250 MG / Clavulanate 125 MG Oral Tablet" + } + ], + "direct_transition": "End_Encounter" + }, + "End_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Wait_for_condition_to_resolve" + }, + "Wait_for_condition_to_resolve": { + "type": "Delay", + "range": { + "low": 1, + "high": 4, + "unit": "weeks" + }, + "conditional_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "562251", + "display": "Amoxicillin 250 MG / Clavulanate 125 MG Oral Tablet" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "75498004", + "display": "Acute bacterial sinusitis (disorder)" + } + ] + } + ] + }, + "transition": "Sinusitis_Ends" + }, + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "444814009", + "display": "Viral sinusitis (disorder)" + } + ] + }, + "transition": "Sinusitis_Ends" + }, + { + "transition": "Chronic_Sinusitis_Continues" + } + ] + }, + "Sinusitis_Ends": { + "type": "ConditionEnd", + "referenced_by_attribute": "Sinusitis Condition", + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": "562251", + "display": "Amoxicillin 250 MG / Clavulanate 125 MG Oral Tablet" + } + ] + }, + "transition": "End_Antibiotic" + }, + { + "transition": "Symptom1_Subsides" + } + ] + }, + "End_Antibiotic": { + "type": "MedicationEnd", + "medication_order": "Prescribe_Antibiotic", + "direct_transition": "Symptom1_Subsides" + }, + "Symptom1_Subsides": { + "type": "Symptom", + "symptom": "Sinus Pain", + "exact": { + "quantity": 0 + }, + "direct_transition": "Symptom2_Subsides" + }, + "Symptom2_Subsides": { + "type": "Symptom", + "symptom": "Nasal Congestion", + "exact": { + "quantity": 0 + }, + "direct_transition": "Symptom3_Subsides" + }, + "Symptom3_Subsides": { + "type": "Symptom", + "symptom": "Fever", + "exact": { + "quantity": 0 + }, + "direct_transition": "Symptom4_Subsides" + }, + "Symptom4_Subsides": { + "type": "Symptom", + "symptom": "Headache", + "exact": { + "quantity": 0 + }, + "direct_transition": "Symptom5_Subsides" + }, + "Symptom5_Subsides": { + "type": "Symptom", + "symptom": "Nasal Discharge", + "exact": { + "quantity": 0 + }, + "direct_transition": "Symptom6_Subsides" + }, + "Symptom6_Subsides": { + "type": "Symptom", + "symptom": "Sore Throat", + "exact": { + "quantity": 0 + }, + "direct_transition": "Symptom7_Subsides" + }, + "Symptom7_Subsides": { + "type": "Symptom", + "symptom": "Cough", + "exact": { + "quantity": 0 + }, + "direct_transition": "Symptom8_Subsides" + }, + "Symptom8_Subsides": { + "type": "Symptom", + "symptom": "Facial Swelling", + "exact": { + "quantity": 0 + }, + "direct_transition": "Symptom9_Subsides" + }, + "Symptom9_Subsides": { + "type": "Symptom", + "symptom": "Pain with Bright Lights", + "exact": { + "quantity": 0 + }, + "direct_transition": "Potential_Onset" + }, + "Chronic_Sinusitis_Continues": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "distributed_transition": [ + { + "distribution": 0.1, + "transition": "Sinusitis_Ends" + }, + { + "distribution": 0.75, + "transition": "Chronic_Sinusitis_Continues" + }, + { + "distribution": 0.15, + "transition": "Chronic_Symptoms_Worsen" + } + ] + }, + "Chronic_Symptoms_Worsen": { + "type": "Symptom", + "symptom": "Sinus Pain", + "range": { + "low": 70, + "high": 130 + }, + "direct_transition": "Chronic_Sinusitis_Followup" + }, + "Chronic_Sinusitis_Followup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Sinusitis Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40055000", + "display": "Chronic sinusitis (disorder)" + } + ] + }, + "distributions": [ + { + "distribution": 0.95, + "transition": "Chronic_Sinusitis_Followup_without_action" + }, + { + "distribution": 0.05, + "transition": "Sinus_Surgery" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.95, + "transition": "Diagnose_Chronic_Sinusitis" + }, + { + "distribution": 0.05, + "transition": "Sinus_Surgery" + } + ] + } + ] + }, + "Diagnose_Chronic_Sinusitis": { + "type": "ConditionOnset", + "target_encounter": "Chronic_Sinusitis_Followup", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40055000", + "display": "Chronic sinusitis (disorder)" + } + ], + "direct_transition": "Nebulizer" + }, + "End_Chronic_Followup": { + "type": "EncounterEnd", + "direct_transition": "Chronic_Sinusitis_Continues" + }, + "Sinus_Surgery": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "112790001", + "display": "Nasal sinus endoscopy (procedure)" + } + ], + "direct_transition": "End_Surgery_Encounter" + }, + "End_Surgery_Encounter": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40055000", + "display": "Chronic sinusitis (disorder)" + } + ] + }, + "transition": "Chronic_Sinusisitis_Ends" + }, + { + "transition": "Sinusitis_Ends" + } + ] + }, + "Chronic_Sinusisitis_Ends": { + "type": "ConditionEnd", + "condition_onset": "Diagnose_Chronic_Sinusitis", + "direct_transition": "End Nebulizer" + }, + "Chronic_Sinusitis_Followup_without_action": { + "type": "EncounterEnd", + "direct_transition": "Chronic_Sinusitis_Continues" + }, + "Penicillin_Allergy_Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Prescribe_Alternative_Antibiotic", + "condition": { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": "7984", + "display": "Penicillin V" + } + ] + } + }, + { + "transition": "Prescribe_Antibiotic" + } + ] + }, + "Prescribe_Alternative_Antibiotic": { + "type": "MedicationOrder", + "reason": "Sinusitis Condition", + "codes": [ + { + "system": "RxNorm", + "code": 1649987, + "display": "doxycycline hyclate 100 MG" + } + ], + "direct_transition": "End_Encounter" + }, + "Nebulizer": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "170615005", + "display": "Home nebulizer (physical object)" + }, + "direct_transition": "End_Chronic_Followup" + }, + "End Nebulizer": { + "type": "DeviceEnd", + "direct_transition": "Sinusitis_Ends", + "device": "Nebulizer" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/sleep_apnea.json b/src/main/resources/modules/sleep_apnea.json new file mode 100644 index 0000000..06a7003 --- /dev/null +++ b/src/main/resources/modules/sleep_apnea.json @@ -0,0 +1,989 @@ +{ + "name": "Sleep Apnea", + "remarks": [ + "Basic Sleep Apnea module primarily derived from Harrison's Principles of Internal Medicine (15th edition, 2001) except where otherwise quoted and cited.", + "", + "\"... the overall prevalence of any OSA ranged from 9% to 38% in the general adult population, from 13% to 33% in men and from 6% to 19% in women, although much higher in the elderly groups.\" - from https://doi.org/10.1016/j.smrv.2016.07.002.", + "", + "Sleep apnea ... is one of the leading causes of excessive daytime sleepiness.", + "...", + "... inevitably results in snoring. In most patients, snoring antedates the development of obstructive events by many years.", + "...", + "Over 50% of patients with Obstructive Sleep Apnea (OSA) have systemic hypertension.", + "...", + "the typical patient is a male aged 30 to 60 years who presents with a history of snoring, excessive daytime sleepiness ... and often mild to moderate hypertension.", + "...", + "The definitive investigation for suspected OSA is polysomnography, a detailed overnight sleep study...", + "...", + "Because polysomnography is a time-consuming and expensive test, there is considerable interest in the role of simplified, unattended, ambulatory sleep monitoring ... that would allow the patient to be studied at home...", + "...", + "Studies suggest that overnight oximetry can obviate the need for polysomnography in about one-third of clinic patients referred for consideration ... the remaining two-thirds of patients ... will require polysomnography.", + "...", + "TREATMENT", + "...", + "Mild to moderate OSA can often be managed effectively by modest weight reduction, avoidance of alcohol, improvement of nasal patency, and avoidance of sleeping in the supine posture. Intraoral appliances ... are also effective in 55 to 80% of patients.", + "...", + "Nasal CPAP ... is currently the most successful long-term approach to treatment, being well tolerated and effective In over 80% of patients ... For patients with ischemic heart disease or congestive heart failure who also have OSA, nasal CPAP is the only treatment that has been specifically test. and is considered the treatment of choice." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Wait Until Middle Age" + }, + "Terminal": { + "type": "Terminal" + }, + "Wait Until Middle Age": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "years", + "direct_transition": "Prevalence" + }, + "Prevalence": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "Sleep Disorder", + "distribution": 0.06 + }, + { + "transition": "Terminal", + "distribution": 0.94 + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "transition": "Sleep Disorder", + "distribution": 0.13 + }, + { + "transition": "Terminal", + "distribution": 0.87 + } + ] + }, + { + "transition": "Terminal" + } + ] + }, + "Initial Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Sleep Disorder", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "direct_transition": "Initial Assessment" + }, + "Loud Snoring": { + "type": "Symptom", + "symptom": "loud snoring", + "cause": "", + "probability": 1, + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "direct_transition": "Excessive Daytime Sleepiness" + }, + "Excessive Daytime Sleepiness": { + "type": "Symptom", + "symptom": "excessive daytime sleepiness", + "cause": "", + "probability": 1, + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "direct_transition": "Initial Encounter" + }, + "Hypertension": { + "type": "SetAttribute", + "attribute": "hypertension", + "direct_transition": "Loud Snoring", + "value": true + }, + "Overnight Test": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "Sleep Disorder", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "2nd Assessment" + }, + "2nd Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "103750000", + "display": "Sleep apnea assessment (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "Monitoring Equipment", + "reason": "Sleep Disorder" + }, + "Sleep Study": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "82808001", + "display": "Sleep apnea monitoring with alarm (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "60554003", + "display": "Polysomnography (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "10563004", + "display": "Sleep disorder function test (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "446573003", + "display": "Continuous positive airway pressure titration (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 9, + "low": 3 + } + }, + "unit": "hours", + "direct_transition": "End Monitoring Equipment", + "reason": "Sleep Disorder" + }, + "Monitoring Equipment": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "701077002", + "display": "Respiratory apnea monitoring system (physical object)" + }, + "direct_transition": "Polysomnography Device" + }, + "End Monitoring Equipment": { + "type": "DeviceEnd", + "direct_transition": "End Polysomnography Device", + "device": "Monitoring Equipment" + }, + "Obstructive Sleep Apnea": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "78275009", + "display": "Obstructive sleep apnea syndrome (disorder)" + } + ], + "direct_transition": "Treatment", + "assign_to_attribute": "sleep_apnea" + }, + "Sleep Disorder": { + "type": "ConditionOnset", + "target_encounter": "Initial Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "39898005", + "display": "Sleep disorder (disorder)" + } + ], + "distributed_transition": [ + { + "transition": "Hypertension", + "distribution": 0.5 + }, + { + "transition": "Loud Snoring", + "distribution": 0.5 + } + ] + }, + "Home Sleep Device": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "720253003", + "display": "Home-use sleep apnea recording system (physical object)" + }, + "direct_transition": "Sleep Specialist Encounter End" + }, + "Polysomnography Device": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "701100002", + "display": "Polysomnography analyzer (physical object)" + }, + "direct_transition": "Sleep Study" + }, + "End Polysomnography Device": { + "type": "DeviceEnd", + "direct_transition": "Obstructive Sleep Apnea", + "device": "Polysomnography Device" + }, + "Wait Until Overnight Study": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 21, + "low": 1 + } + }, + "unit": "days", + "direct_transition": "Overnight Test" + }, + "Return Home Sleep Device": { + "type": "DeviceEnd", + "direct_transition": "2nd_Assessment", + "device": "Home Sleep Device" + }, + "Sleep Apnea": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "73430006", + "display": "Sleep apnea (disorder)" + } + ], + "direct_transition": "Treatment", + "assign_to_attribute": "sleep_apnea" + }, + "2nd_Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "103750000", + "display": "Sleep apnea assessment (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "reason": "Sleep Disorder", + "direct_transition": "CPAP Titration" + }, + "Treatment": { + "type": "Simple", + "direct_transition": "Sleep Apnea Care Plan" + }, + "End 2nd Encounter": { + "type": "EncounterEnd", + "direct_transition": "Wellness Encounter" + }, + "Sleep Apnea Care Plan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "734163000", + "display": "Care plan (record artifact)" + } + ], + "reason": "sleep_apnea", + "activities": [ + { + "system": "SNOMED-CT", + "code": "388976009", + "display": "Weight reduction regimen (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "419822006", + "display": "Warning. Avoid alcoholic drink (qualifier value)" + }, + { + "system": "SNOMED-CT", + "code": "47545007", + "display": "Continuous positive airway pressure ventilation treatment (regime/therapy)" + } + ], + "goals": [ + { + "addresses": [ + "text" + ], + "text": "Avoid sleeping in the supine posture" + } + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "chf", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "coronary_heart_disease", + "operator": "is not nil" + } + ] + }, + "transition": "Set Device CPAP" + }, + { + "distributions": [ + { + "transition": "Set Device CPAP", + "distribution": 0.8 + }, + { + "transition": "Set_Device_Oral_Appliance", + "distribution": 0.2 + } + ] + } + ] + }, + "Intraoral Appliance": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "272265001", + "display": "Appliance for sleep apnea (physical object)" + }, + "direct_transition": "Set Visit Count" + }, + "Home CPAP Unit": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "702172008", + "display": "Home continuous positive airway pressure unit (physical object)" + }, + "distributed_transition": [ + { + "transition": "Oral_Mask_Supplies", + "distribution": 0.5 + }, + { + "transition": "Nasal Mask Supplies", + "distribution": 0.5 + } + ] + }, + "Initial Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "103750000", + "display": "Sleep apnea assessment (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "reason": "Sleep Disorder", + "direct_transition": "Referral to Sleep Specialist" + }, + "Referral to Sleep Specialist": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698560000", + "display": "Referral to sleep apnea clinic (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 5 + } + }, + "unit": "minutes", + "reason": "Sleep Disorder", + "direct_transition": "Initial Encounter End" + }, + "Sleep Specialist Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Sleep Disorder", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "direct_transition": "Specialist Assessment" + }, + "Wait Until Appointment": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 21, + "low": 7 + } + }, + "unit": "days", + "direct_transition": "Sleep Specialist Encounter" + }, + "Sleep Specialist Encounter End": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Wait Until Overnight Study", + "condition": { + "condition_type": "PriorState", + "name": "Referral to Overnight" + } + }, + { + "transition": "Appointment Delay" + } + ] + }, + "Initial Encounter End": { + "type": "EncounterEnd", + "direct_transition": "Wait Until Appointment" + }, + "Specialist Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "103750000", + "display": "Sleep apnea assessment (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "reason": "Sleep Disorder", + "distributed_transition": [ + { + "transition": "Home Sleep Device", + "distribution": 0.33 + }, + { + "transition": "Referral to Overnight", + "distribution": 0.6699999999999999 + } + ] + }, + "Referral to Overnight": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698560000", + "display": "Referral to sleep apnea clinic (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 5 + } + }, + "unit": "minutes", + "direct_transition": "Sleep Specialist Encounter End", + "reason": "Sleep Disorder" + }, + "Appointment Delay": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 14, + "low": 7 + } + }, + "unit": "days", + "direct_transition": "Follow Up" + }, + "CPAP Titration": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "446573003", + "display": "Continuous positive airway pressure titration (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 9, + "low": 3 + } + }, + "unit": "hours", + "direct_transition": "Sleep Apnea" + }, + "Follow Up": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "Sleep Disorder", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185389009", + "display": "Follow-up visit (procedure)" + } + ], + "direct_transition": "Return Home Sleep Device" + }, + "Wellness Encounter": { + "type": "Encounter", + "reason": "Sleep Disorder", + "telemedicine_possibility": "none", + "wellness": true, + "direct_transition": "Assessment Check" + }, + "Set Device CPAP": { + "type": "SetAttribute", + "attribute": "sleep_apnea_treatment", + "direct_transition": "Home CPAP Unit", + "value": "cpap" + }, + "Set_Device_Oral_Appliance": { + "type": "SetAttribute", + "attribute": "sleep_apnea_treatment", + "direct_transition": "Intraoral Appliance", + "value": "oral_appliance" + }, + "CPAP Renewal": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Stop previous CPAP unit", + "condition": { + "condition_type": "Attribute", + "attribute": "years_until_sleep_apnea_renewal", + "operator": "<=", + "value": 0 + } + }, + { + "transition": "CPAP Supply Renewal" + } + ] + }, + "Oral Appliance Renewal": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Stop previous oral device", + "condition": { + "condition_type": "Attribute", + "attribute": "years_until_sleep_apnea_renewal", + "operator": "<=", + "value": 0 + } + }, + { + "transition": "Reset Counter" + } + ] + }, + "End Wellness Visit": { + "type": "EncounterEnd", + "direct_transition": "Wellness Encounter" + }, + "Periodic Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "103750000", + "display": "Sleep apnea assessment (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 10 + } + }, + "unit": "minutes", + "reason": "Sleep Disorder", + "direct_transition": "Device Renewal Check" + }, + "Device Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "CPAP Renewal", + "condition": { + "condition_type": "Attribute", + "attribute": "sleep_apnea_treatment", + "operator": "==", + "value": "cpap" + } + }, + { + "transition": "Oral Appliance Renewal", + "condition": { + "condition_type": "Attribute", + "attribute": "sleep_apnea_treatment", + "operator": "==", + "value": "oral_appliance" + } + }, + { + "transition": "Reset Counter" + } + ] + }, + "Assessment Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Periodic Assessment", + "distribution": 0.8 + }, + { + "transition": "Device Renewal Check", + "distribution": 0.2 + } + ] + }, + "Set Visit Count": { + "type": "SetAttribute", + "attribute": "years_until_sleep_apnea_renewal", + "direct_transition": "End 2nd Encounter", + "value": 5 + }, + "Decrement Counter": { + "type": "Counter", + "attribute": "years_until_sleep_apnea_renewal", + "action": "decrement", + "direct_transition": "Device Check" + }, + "Device Renewal Check": { + "type": "Simple", + "direct_transition": "Decrement Counter" + }, + "Reset Counter": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Reset_Visit_Count", + "condition": { + "condition_type": "Attribute", + "attribute": "years_until_sleep_apnea_renewal", + "operator": "<=", + "value": 0 + } + }, + { + "transition": "End Wellness Visit" + } + ] + }, + "Reset_Visit_Count": { + "type": "SetAttribute", + "attribute": "years_until_sleep_apnea_renewal", + "value": 5, + "direct_transition": "End Wellness Visit" + }, + "Home_CPAP_Unit": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "702172008", + "display": "Home continuous positive airway pressure unit (physical object)" + }, + "direct_transition": "Stop_previous_humidifier" + }, + "Intraoral_Appliance": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "272265001", + "display": "Appliance for sleep apnea (physical object)" + }, + "direct_transition": "Reset Counter" + }, + "Humidifier": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "706180003", + "display": "Respiratory humidifier (physical object)" + }, + "direct_transition": "Set Visit Count" + }, + "Nasal Mask Supplies": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "467645007", + "display": "Continuous positive airway pressure nasal oxygen cannula (physical object)" + } + }, + { + "quantity": 5, + "code": { + "system": "SNOMED-CT", + "code": "972002", + "display": "Air filter, device (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "463659001", + "display": "Medical air low pressure tubing (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "706226000", + "display": "Continuous positive airway pressure/Bilevel positive airway pressure mask (physical object)" + } + } + ], + "direct_transition": "Humidifier" + }, + "Oral_Mask_Supplies": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "704718009", + "display": "CPAP/BPAP oral mask (physical object)" + } + }, + { + "quantity": 5, + "code": { + "system": "SNOMED-CT", + "code": "972002", + "display": "Air filter, device (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "463659001", + "display": "Medical air low pressure tubing (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "706226000", + "display": "Continuous positive airway pressure/Bilevel positive airway pressure mask (physical object)" + } + } + ], + "direct_transition": "Humidifier" + }, + "CPAP Supply Renewal": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Nasal_Mask_Supplies", + "distribution": 0.5 + }, + { + "transition": "Oral_Mask_Supplies_2", + "distribution": 0.5 + } + ] + }, + "Nasal_Mask_Supplies": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "467645007", + "display": "Continuous positive airway pressure nasal oxygen cannula (physical object)" + } + }, + { + "quantity": 5, + "code": { + "system": "SNOMED-CT", + "code": "972002", + "display": "Air filter, device (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "463659001", + "display": "Medical air low pressure tubing (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "706226000", + "display": "Continuous positive airway pressure/Bilevel positive airway pressure mask (physical object)" + } + } + ], + "direct_transition": "Reset Counter" + }, + "Oral_Mask_Supplies_2": { + "type": "SupplyList", + "supplies": [ + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "704718009", + "display": "CPAP/BPAP oral mask (physical object)" + } + }, + { + "quantity": 5, + "code": { + "system": "SNOMED-CT", + "code": "972002", + "display": "Air filter, device (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "463659001", + "display": "Medical air low pressure tubing (physical object)" + } + }, + { + "quantity": 1, + "code": { + "system": "SNOMED-CT", + "code": "706226000", + "display": "Continuous positive airway pressure/Bilevel positive airway pressure mask (physical object)" + } + } + ], + "direct_transition": "Reset Counter" + }, + "Humidifier_2": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "706180003", + "display": "Respiratory humidifier (physical object)" + }, + "direct_transition": "CPAP Supply Renewal" + }, + "Stop previous oral device": { + "type": "DeviceEnd", + "direct_transition": "Intraoral_Appliance", + "codes": [ + { + "system": "SNOMED-CT", + "code": "272265001", + "display": "Appliance for sleep apnea (physical object)" + } + ] + }, + "Stop previous CPAP unit": { + "type": "DeviceEnd", + "direct_transition": "Home_CPAP_Unit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "702172008", + "display": "Home continuous positive airway pressure unit (physical object)" + } + ] + }, + "Stop_previous_humidifier": { + "type": "DeviceEnd", + "direct_transition": "Humidifier_2", + "codes": [ + { + "system": "SNOMED-CT", + "code": "706180003", + "display": "Respiratory humidifier (physical object)" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/snf/skilled_nursing_facility.json b/src/main/resources/modules/snf/skilled_nursing_facility.json new file mode 100644 index 0000000..3049db7 --- /dev/null +++ b/src/main/resources/modules/snf/skilled_nursing_facility.json @@ -0,0 +1,351 @@ +{ + "name": "Skilled Nursing Facility", + "remarks": [ + "Simplified Skilled Nursing Facility module with a regular routine of physical therapy, occupational therapy, social services, medication administration, and dietary counseling. Length of stay statistics: https://us.milliman.com/-/media/milliman/pdfs/2021-articles/1-21-21_variation_in_snf_alos_for_medicare_beneficiaries.ashx" + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Transition_To_SNF_Reason", + "condition": { + "condition_type": "Attribute", + "attribute": "snf_reason", + "operator": "is nil" + } + }, + { + "transition": "SNF_Admission" + } + ] + }, + "SNF_Admission": { + "type": "Encounter", + "encounter_class": "snf", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32485007", + "display": "Hospital admission (procedure)" + } + ], + "conditional_transition": [ + { + "transition": "Determine_LOS", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "snf_days", + "operator": "is nil" + }, + { + "condition_type": "Attribute", + "attribute": "snf_days", + "operator": "<=", + "value": 0 + } + ] + } + }, + { + "transition": "History_Physical_Exam" + } + ], + "reason": "snf_reason" + }, + "Determine_LOS": { + "type": "SetAttribute", + "attribute": "snf_days", + "distribution": { + "kind": "EXPONENTIAL", + "round": true, + "parameters": { + "mean": 18.7 + } + }, + "conditional_transition": [ + { + "transition": "Max Length of Stay", + "condition": { + "condition_type": "Attribute", + "attribute": "snf_days", + "operator": ">", + "value": 100 + } + }, + { + "transition": "History_Physical_Exam" + } + ] + }, + "History_Physical_Exam": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "63332003", + "display": "History AND physical examination (procedure)" + } + ], + "direct_transition": "Initial_Patient_Assessment" + }, + "Initial_Patient_Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "315639002", + "display": "Initial patient assessment (procedure)" + } + ], + "direct_transition": "Facility_Wheelchair" + }, + "Development_of_Individualized_Care_Plan": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "370789001", + "display": "Development of individualized plan of care (procedure)" + } + ], + "direct_transition": "Begin_Day" + }, + "Begin_Day": { + "type": "Counter", + "attribute": "snf_days", + "action": "decrement", + "amount": 1, + "direct_transition": "Nursing" + }, + "Nursing": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "410401003", + "display": "Nursing care/supplementary surveillance (regime/therapy)" + } + ], + "direct_transition": "Physical_Therapy_Check" + }, + "Physical_Therapy_Check": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.1, + "transition": "Physical_Therapy" + }, + { + "distribution": 0.9, + "transition": "Occupational_Therapy_Check" + } + ] + }, + "Physical_Therapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91251008", + "display": "Physical therapy procedure (regime/therapy)" + } + ], + "range": { + "high": 60, + "low": 45, + "unit": "minutes" + }, + "direct_transition": "Occupational_Therapy_Check" + }, + "Occupational_Therapy_Check": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.1, + "transition": "Occupational_Therapy" + }, + { + "distribution": 0.9, + "transition": "Speech_Language_Therapy_Check" + } + ] + }, + "Occupational_Therapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "84478008", + "display": "Occupational therapy (regime/therapy)" + } + ], + "direct_transition": "Speech_Language_Therapy_Check" + }, + "Speech_Language_Therapy_Check": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.05, + "transition": "Speech_Language_Therapy" + }, + { + "distribution": 0.95, + "transition": "NTA_Check" + } + ] + }, + "Speech_Language_Therapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "311555007", + "display": "Speech and language therapy regime (regime/therapy)" + } + ], + "direct_transition": "NTA_Check" + }, + "NTA_Check": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.25, + "transition": "Professional_Services_Care" + }, + { + "distribution": 0.75, + "transition": "Status_Change_Check" + } + ] + }, + "Professional_Services_Care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "409023009", + "display": "Professional / ancillary services care (regime/therapy)" + } + ], + "direct_transition": "Status_Change_Check" + }, + "Status_Change_Check": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.01, + "transition": "Care_Regimes_Assessment" + }, + { + "distribution": 0.99, + "transition": "End_Day" + } + ] + }, + "Care_Regimes_Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "392091000", + "display": "Care regimes assessment (procedure)" + } + ], + "direct_transition": "End_Day" + }, + "End_Day": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "unit": "days", + "conditional_transition": [ + { + "transition": "Begin_Day", + "condition": { + "condition_type": "Attribute", + "attribute": "snf_days", + "operator": ">", + "value": 0 + } + }, + { + "transition": "Predischarge_Assessment" + } + ] + }, + "Predischarge_Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225386006", + "display": "Pre-discharge assessment (procedure)" + } + ], + "direct_transition": "Discharge_From_SNF" + }, + "Discharge_From_SNF": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308283009", + "display": "Discharge from hospital (procedure)" + } + ], + "direct_transition": "Return_Wheelchair" + }, + "Terminal": { + "type": "Terminal" + }, + "End Encounter": { + "type": "EncounterEnd", + "direct_transition": "Clear SNF Reason" + }, + "Facility_Wheelchair": { + "type": "Device", + "code": { + "system": "SNOMED-CT", + "code": "228869008", + "display": "Manual wheelchair (physical object)" + }, + "direct_transition": "Development_of_Individualized_Care_Plan", + "assign_to_attribute": "snf_wheelchair" + }, + "Return_Wheelchair": { + "type": "DeviceEnd", + "referenced_by_attribute": "snf_wheelchair", + "direct_transition": "End Encounter" + }, + "Max Length of Stay": { + "type": "SetAttribute", + "attribute": "snf_days", + "value": 100, + "direct_transition": "History_Physical_Exam" + }, + "Transition_To_SNF_Reason": { + "type": "SetAttribute", + "attribute": "snf_reason", + "direct_transition": "SNF_Admission", + "value_code": { + "system": "SNOMED-CT", + "code": "25675004", + "display": "Patient transfer to skilled nursing facility (procedure)" + } + }, + "Clear SNF Reason": { + "type": "SetAttribute", + "attribute": "snf_reason", + "direct_transition": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/sore_throat.json b/src/main/resources/modules/sore_throat.json new file mode 100644 index 0000000..2110295 --- /dev/null +++ b/src/main/resources/modules/sore_throat.json @@ -0,0 +1,691 @@ +{ + "name": "Sore Throat", + "remarks": [ + "Covers both bacterial and viral sore throat. Focuses on strep for bacterial, although gonorrhea and syphilis are also causes.", + "Viral sore throats are caused by cold, flu, coxsackie virus, mononucleosis.", + "Primary references:", + "http://www.medicinenet.com/sore_throat_virus_or_strep/views.htm", + "http://emedicine.medscape.com/article/225362-overview" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Potential_Infection" + }, + "Potential_Infection": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "remarks": [ + "Each year, pharyngitis is responsible for more than 40 million visits to health care providers. ", + "Most children and adults experience 3-5 viral upper respiratory tract infections (including pharyngitis) per year.", + "Viral pharyngitis affects both children and adults, but it is more common in children.", + "Approximately 10% of children seen by medical care providers each year have pharyngitis, and 25-50% of these children have GABHS pharyngitis.", + "only about 5%-10% of sore throats are caused by a bacterial infection" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 15, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.00583, + "transition": "Acquire_Viral_Infection" + }, + { + "distribution": 0.00292, + "transition": "Acquire_Bacterial_Infection", + "remarks": [ + "Bacterial is more common in children than in adults. Assume viral is only 2x as likely as bacterial for children" + ] + }, + { + "distribution": 0.99125, + "transition": "Potential_Infection" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.005, + "transition": "Acquire_Viral_Infection" + }, + { + "distribution": 0.000875, + "transition": "Acquire_Bacterial_Infection", + "remarks": [ + "[in adults] only about 5%-10% of sore throats are caused by a bacterial infection" + ] + }, + { + "distribution": 0.9942, + "transition": "Potential_Infection" + } + ] + } + ] + }, + "Acquire_Viral_Infection": { + "type": "ConditionOnset", + "target_encounter": "Doctor_Visit", + "assign_to_attribute": "Sore Throat Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "195662009", + "display": "Acute viral pharyngitis (disorder)" + } + ], + "direct_transition": "Viral_Symptom_1" + }, + "Viral_Symptom_1": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Viral_Symptom_2" + }, + "Viral_Symptom_2": { + "type": "Symptom", + "symptom": "Swollen Lymph Nodes", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Viral_Symptom_3" + }, + "Viral_Symptom_3": { + "type": "Symptom", + "symptom": "Swollen Tonsils", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Common_Symptom_1" + }, + "Common_Symptom_1": { + "type": "Symptom", + "symptom": "Sore Throat", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Common_Symptom_2" + }, + "Common_Symptom_2": { + "type": "Symptom", + "symptom": "Difficulty Swallowing", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Common_Symptom_3" + }, + "Common_Symptom_3": { + "type": "Symptom", + "symptom": "Runny/Stuffy Nose", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Common_Symptom_4" + }, + "Common_Symptom_4": { + "type": "Symptom", + "symptom": "Fever", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Common_Symptom_5" + }, + "Common_Symptom_5": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Common_Symptom_6" + }, + "Common_Symptom_6": { + "type": "Symptom", + "symptom": "Body Aches", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Common_Symptom_7" + }, + "Common_Symptom_7": { + "type": "Symptom", + "symptom": "Decreased Appetite", + "range": { + "low": 0, + "high": 50 + }, + "direct_transition": "Symptoms_dont_resolve" + }, + "Acquire_Bacterial_Infection": { + "type": "ConditionOnset", + "target_encounter": "Doctor_Visit", + "assign_to_attribute": "Sore Throat Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "43878008", + "display": "Streptococcal sore throat (disorder)" + } + ], + "direct_transition": "Bacterial_Symptom_1" + }, + "Bacterial_Symptom_1": { + "type": "Symptom", + "symptom": "Cough", + "exact": { + "quantity": 0 + }, + "remarks": [ + "Strep generally does not present with cough" + ], + "direct_transition": "Bacterial_Symptom_2" + }, + "Bacterial_Symptom_2": { + "type": "Symptom", + "symptom": "Swollen Lymph Nodes", + "range": { + "low": 20, + "high": 70 + }, + "remarks": [ + "Strep generally presents with swollen lymph nodes" + ], + "direct_transition": "Bacterial_Symptom_3" + }, + "Bacterial_Symptom_3": { + "type": "Symptom", + "symptom": "Swollen Tonsils", + "range": { + "low": 20, + "high": 70 + }, + "direct_transition": "Common_Symptom_1" + }, + "Symptoms_dont_resolve": { + "type": "Delay", + "range": { + "low": 1, + "high": 5, + "unit": "days" + }, + "direct_transition": "Doctor_Visit" + }, + "Doctor_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Sore Throat Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "43878008", + "display": "Streptococcal sore throat (disorder)" + } + ] + }, + "transition": "Take_Temperature_High", + "remarks": [ + "high fever is a hallmark of strep throat http://www.webmd.com/cold-and-flu/news/20131104/two-questions-may-rule-out-strep-throat" + ] + }, + { + "transition": "Take_Temperature_Low" + } + ] + }, + "Take_Temperature_High": { + "type": "Observation", + "category": "vital-signs", + "range": { + "low": 37.2, + "high": 39.4 + }, + "remarks": [ + "37.2 - 39.4 Celsius == 99 - 103 Fahrenheit" + ], + "unit": "Cel", + "codes": [ + { + "system": "LOINC", + "code": "8310-5", + "display": "Body temperature" + }, + { + "system": "LOINC", + "code": "8331-1", + "display": "Oral temperature" + } + ], + "direct_transition": "Determine_if_Bacterial" + }, + "Take_Temperature_Low": { + "type": "Observation", + "category": "vital-signs", + "range": { + "low": 37, + "high": 38 + }, + "remarks": [ + "37.0 - 38.0 Celsius == 98.6 - 100.4 Fahrenheit" + ], + "unit": "Cel", + "codes": [ + { + "system": "LOINC", + "code": "8310-5", + "display": "Body temperature" + }, + { + "system": "LOINC", + "code": "8331-1", + "display": "Oral temperature" + } + ], + "direct_transition": "Determine_if_Bacterial" + }, + "Determine_if_Bacterial": { + "type": "Simple", + "remarks": [ + "the Centor criteria are used to determine if a sore throat is bacterial", + "http://www.mdcalc.com/modified-centor-score-for-strep-pharyngitis/", + "modified slightly here to account for our simpler logic", + "(we can't do -1 for age > 44 so we do +1 for age <= 44, and require an extra +1)" + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "At Least", + "minimum": 5, + "conditions": [ + { + "condition_type": "Symptom", + "symptom": "Cough", + "operator": "<", + "value": 30 + }, + { + "condition_type": "Symptom", + "symptom": "Swollen Lymph Nodes", + "operator": ">", + "value": 30 + }, + { + "condition_type": "Symptom", + "symptom": "Swollen Tonsils", + "operator": ">", + "value": 30 + }, + { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "8310-5", + "display": "Body temperature" + } + ], + "operator": ">", + "value": 38 + }, + { + "condition_type": "Age", + "operator": "<", + "quantity": 15, + "unit": "years" + }, + { + "condition_type": "Age", + "operator": "<=", + "quantity": 44, + "unit": "years" + } + ] + }, + "transition": "Prescribe_Antibiotics" + }, + { + "condition": { + "condition_type": "At Least", + "minimum": 3, + "conditions": [ + { + "condition_type": "Symptom", + "symptom": "Cough", + "operator": "<", + "value": 30 + }, + { + "condition_type": "Symptom", + "symptom": "Swollen Lymph Nodes", + "operator": ">", + "value": 30 + }, + { + "condition_type": "Symptom", + "symptom": "Swollen Tonsils", + "operator": ">", + "value": 30 + }, + { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "8310-5", + "display": "Body temperature" + } + ], + "operator": ">", + "value": 38 + }, + { + "condition_type": "Age", + "operator": "<", + "quantity": 15, + "unit": "years" + }, + { + "condition_type": "Age", + "operator": "<=", + "quantity": 44, + "unit": "years" + } + ] + }, + "transition": "Throat_Culture" + }, + { + "transition": "End_Encounter" + } + ] + }, + "Prescribe_Antibiotics": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Adult_Allergy_Check", + "condition": { + "condition_type": "Age", + "operator": ">", + "quantity": 18, + "unit": "years" + } + }, + { + "transition": "Pediatric_Allergy_Check" + } + ] + }, + "Prescribe_Antibiotics_Child": { + "type": "MedicationOrder", + "assign_to_attribute": "Sore Throat Antibiotic", + "reason": "Sore Throat Condition", + "remarks": [ + "if we eventually add Penicillin allergies, we'll need a conditional to prescribe amoxicillin instead" + ], + "codes": [ + { + "system": "RxNorm", + "code": "834061", + "display": "Penicillin V Potassium 250 MG Oral Tablet" + } + ], + "direct_transition": "End_Encounter" + }, + "Prescribe_Antibiotics_Adult": { + "type": "MedicationOrder", + "assign_to_attribute": "Sore Throat Antibiotic", + "reason": "Sore Throat Condition", + "codes": [ + { + "system": "RxNorm", + "code": "834102", + "display": "Penicillin V Potassium 500 MG Oral Tablet" + } + ], + "direct_transition": "End_Encounter" + }, + "Throat_Culture": { + "type": "Procedure", + "reason": "Sore Throat Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "117015009", + "display": "Throat culture (procedure)" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "43878008", + "display": "Streptococcal sore throat (disorder)" + } + ] + }, + "transition": "Prescribe_Antibiotics", + "remarks": [ + "assuming here for simplicity that the test is 100% accurate. real world it's more like 90-95%" + ] + }, + { + "transition": "End_Encounter" + } + ] + }, + "End_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Time_Passes" + }, + "Time_Passes": { + "type": "Delay", + "range": { + "low": 7, + "high": 14, + "unit": "days" + }, + "direct_transition": "Symptom_1_Ends" + }, + "Symptom_1_Ends": { + "type": "Symptom", + "symptom": "Cough", + "exact": { + "quantity": 0 + }, + "direct_transition": "Symptom_2_Ends" + }, + "Symptom_2_Ends": { + "type": "Symptom", + "symptom": "Swollen Lymph Nodes", + "exact": { + "quantity": 0 + }, + "direct_transition": "Symptom_3_Ends" + }, + "Symptom_3_Ends": { + "type": "Symptom", + "symptom": "Swollen Tonsils", + "exact": { + "quantity": 0 + }, + "direct_transition": "Symptom_4_Ends" + }, + "Symptom_4_Ends": { + "type": "Symptom", + "symptom": "Difficulty Swallowing", + "exact": { + "quantity": 0 + }, + "direct_transition": "Symptom_5_Ends" + }, + "Symptom_5_Ends": { + "type": "Symptom", + "symptom": "Sore Throat", + "exact": { + "quantity": 0 + }, + "direct_transition": "Symptom_6_Ends" + }, + "Symptom_6_Ends": { + "type": "Symptom", + "symptom": "Runny/Stuffy Nose", + "exact": { + "quantity": 0 + }, + "direct_transition": "Symptom_7_Ends" + }, + "Symptom_7_Ends": { + "type": "Symptom", + "symptom": "Fever", + "exact": { + "quantity": 0 + }, + "direct_transition": "Symptom_8_Ends" + }, + "Symptom_8_Ends": { + "type": "Symptom", + "symptom": "Fatigue", + "exact": { + "quantity": 0 + }, + "direct_transition": "Symptom_9_Ends" + }, + "Symptom_9_Ends": { + "type": "Symptom", + "symptom": "Body Aches", + "exact": { + "quantity": 0 + }, + "direct_transition": "Symptom_10_Ends" + }, + "Symptom_10_Ends": { + "type": "Symptom", + "symptom": "Decreased Appetite", + "exact": { + "quantity": 0 + }, + "direct_transition": "Condition_Resolves" + }, + "Condition_Resolves": { + "type": "ConditionEnd", + "referenced_by_attribute": "Sore Throat Condition", + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Medication", + "referenced_by_attribute": "Sore Throat Antibiotic" + }, + "transition": "End_Antibiotics" + }, + { + "transition": "Potential_Infection" + } + ] + }, + "End_Antibiotics": { + "type": "MedicationEnd", + "referenced_by_attribute": "Sore Throat Antibiotic", + "direct_transition": "Potential_Infection" + }, + "Pediatric_Allergy_Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Prescribe_Alternate_Pediatric", + "condition": { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": "7984", + "display": "Penicillin V" + } + ] + } + }, + { + "transition": "Prescribe_Antibiotics_Child" + } + ] + }, + "Adult_Allergy_Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Prescribe_Alternate_Adult", + "condition": { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": "7984", + "display": "Penicillin V" + } + ] + } + }, + { + "transition": "Prescribe_Antibiotics_Adult" + } + ] + }, + "Prescribe_Alternate_Adult": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 212446, + "display": "Azithromycin 250mg" + } + ], + "assign_to_attribute": "Sore Throat Antibiotic", + "direct_transition": "End_Encounter" + }, + "Prescribe_Alternate_Pediatric": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 284215, + "display": "Clindamycin 300mg" + } + ], + "direct_transition": "End_Encounter", + "assign_to_attribute": "Sore Throat Antibiotic" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/spina_bifida.json b/src/main/resources/modules/spina_bifida.json new file mode 100644 index 0000000..c17aa2e --- /dev/null +++ b/src/main/resources/modules/spina_bifida.json @@ -0,0 +1,978 @@ +{ + "name": "Spina Bifida", + "remarks": [ + "Module Title: Spina Bifida", + "", + "Version Number: 1.0", + "", + "Date Created: 11/30/2020", + "", + "Module Steward: Office of the National Coordinator for Health Information Technology (ONC)", + "", + "Module Developer: Clinovations Government + Health", + "", + "Description: Spina bifida is the most common permanently disabling birth defect that is associated with life (1). It is a condition that affects the spine and a type of neural tube detect. The three most common types of spina bifida are myelomeningocele, meningocele, spina bifida occulta. This module models myelomeningocele, the most severe form of spina bifida, for patients age < 18.", + "", + "Disclaimer: SyntheaTM is an open-source synthetic patient generator, created by MITRE, that models the medical history of synthetic patients. This module is developed using the Synthea Module Builder and is limited to the capabilities of Synthea and the Synthea Module Builder. ", + "This Synthea module is not a clinical guideline, does not establish a standard of medical care, and has not been tested for all potential applications. THIS MODULE IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF ANY KIND.", + "", + "Related Module(s): None ", + "", + "Reference(s): list of references are available in the Synthea Module Companion Guide for Spina Bifida.", + "", + "", + "" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Enter_Spina_Bifida" + }, + "Terminal": { + "type": "Terminal" + }, + "Myelomeningocele": { + "type": "ConditionOnset", + "target_encounter": "Encounter_NICU", + "codes": [ + { + "system": "SNOMED-CT", + "code": "414667000", + "display": "Meningomyelocele (disorder)" + } + ], + "direct_transition": "Encounter_NICU" + }, + "Meningocele": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "171131006", + "display": "Meningocele (disorder)" + } + ], + "direct_transition": "Delay_Meningocele", + "target_encounter": "Encounter_Meningocele" + }, + "Spina_Bifida_Occulta": { + "type": "ConditionOnset", + "target_encounter": "Encounter_Occulta", + "codes": [ + { + "system": "SNOMED-CT", + "code": "76916001", + "display": "Spina bifida occulta (disorder)" + } + ], + "direct_transition": "Delay_Occulta" + }, + "Encounter_NICU": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "Myelomeningocele", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32485007", + "display": "Hospital admission (procedure)" + } + ], + "distributed_transition": [ + { + "transition": "Chiari_II_Malformation", + "distribution": 0.9 + }, + { + "transition": "Neurological_Exam", + "distribution": 0.1 + } + ] + }, + "Myelomeningocele_Repair": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "42839003", + "display": "Repair of myelomeningocele (procedure)" + } + ], + "duration": { + "low": 4, + "high": 6, + "unit": "hours" + }, + "distributed_transition": [ + { + "transition": "Hydrocephalus", + "distribution": 0.85 + }, + { + "transition": "Delay_Discharge", + "distribution": 0.15 + } + ], + "reason": "Myelomeningocele" + }, + "Encounter_Occulta": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Spina_Bifida_Occulta", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308335008", + "display": "Patient encounter procedure (procedure)" + } + ], + "direct_transition": "End_Encounter_Occulta" + }, + "Delay_Occulta": { + "type": "Delay", + "direct_transition": "Encounter_Occulta", + "range": { + "low": 10, + "high": 30, + "unit": "years" + } + }, + "End_Encounter_Occulta": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Encounter_Meningocele": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Meningocele", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308335008", + "display": "Patient encounter procedure (procedure)" + } + ], + "direct_transition": "End_Encounter_Meningocele" + }, + "Delay_Meningocele": { + "type": "Delay", + "direct_transition": "Encounter_Meningocele", + "range": { + "low": 0, + "high": 2, + "unit": "years" + } + }, + "End_Encounter_Meningocele": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Delay_Myelomeningocele": { + "type": "Delay", + "range": { + "low": 24, + "high": 48, + "unit": "hours" + }, + "distributed_transition": [ + { + "transition": "Myelomeningocele_Repair", + "distribution": 0.96 + }, + { + "transition": "Had_Fetal_Surgery", + "distribution": 0.04 + } + ] + }, + "Hydrocephalus": { + "type": "ConditionOnset", + "target_encounter": "Encounter_NICU", + "codes": [ + { + "system": "SNOMED-CT", + "code": "230745008", + "display": "Hydrocephalus (disorder)" + } + ], + "direct_transition": "Delay_Shunt_Placement" + }, + "Ventriculoperitoneal_Shunt": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "47020004", + "display": "Ventriculoperitoneal shunt (procedure)" + } + ], + "duration": { + "low": 45, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "Delay_Discharge", + "reason": "Hydrocephalus" + }, + "Orthopedic_Exam": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "363215001", + "display": "Musculoskeletal system physical examination (procedure)" + } + ], + "duration": { + "low": 30, + "high": 45, + "unit": "minutes" + }, + "direct_transition": "Foot_Deformity", + "reason": "Myelomeningocele" + }, + "Scoliosis": { + "type": "ConditionOnset", + "target_encounter": "Encounter_NICU", + "codes": [ + { + "system": "SNOMED-CT", + "code": "298382003", + "display": "Scoliosis deformity of spine (disorder)" + } + ], + "remarks": [ + "It resulted in six articles, two concerning diastematomyelia (103 patients, 82 females and 21 males) and four about myelomeningocele (479 patients, 283 females and 196 males) with an overall weighted prevalence of scoliosis (20-degree Cobb angle cutoff) of 44.4% and 52.5%, respectively.", + "", + "https://thejns.org/pediatrics/view/journals/j-neurosurg-pediatr/20/1/article-p99.xml#:~:text=Pooled%20statistical%20analysis%20of%20the,MMC%20and%20scoliosis%20than%20males.", + "Pooled statistical analysis of the included articles revealed the prevalence of scoliosis in MMC patients to be 53% (95% CI 0.42–0.64). Slightly more females (56%) are affected with both MMC and scoliosis than males." + ], + "direct_transition": "Chance_of_Kyphosis" + }, + "Foot_Deformity": { + "type": "ConditionOnset", + "target_encounter": "Encounter_NICU", + "codes": [ + { + "system": "SNOMED-CT", + "code": "302297009", + "display": "Congenital deformity of foot (disorder)" + } + ], + "remarks": [ + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3221758/", + "Almost all patients with spina bifida will experience ", + "problems with foot deformity" + ], + "distributed_transition": [ + { + "transition": "Scoliosis", + "distribution": 0.53 + }, + { + "transition": "Chance_of_Kyphosis", + "distribution": 0.37 + } + ] + }, + "Enter_Spina_Bifida": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Myelomeningocele", + "distribution": 0.00035 + }, + { + "transition": "Meningocele", + "distribution": 0.0001 + }, + { + "transition": "Spina_Bifida_Occulta", + "distribution": 0.00025 + }, + { + "transition": "Terminal", + "distribution": 0.9993 + } + ] + }, + "Delay_Shunt_Placement": { + "type": "Delay", + "range": { + "low": 2, + "high": 5, + "unit": "days" + }, + "remarks": [ + "Usually a shunt is placed several days", + "after the initial repair, although infrequently this may need to be done at the same", + "time as the repair" + ], + "distributed_transition": [ + { + "transition": "Ventriculoperitoneal_Shunt", + "distribution": 0.8 + }, + { + "transition": "ETV", + "distribution": 0.2 + } + ] + }, + "Had_Fetal_Surgery": { + "type": "ConditionOnset", + "target_encounter": "Encounter_NICU", + "codes": [ + { + "system": "SNOMED-CT", + "code": "120991000119102", + "display": "History of undergoing in utero procedure while a fetus (situation)" + } + ], + "distributed_transition": [ + { + "transition": "Hydrocephalus", + "distribution": 0.45 + }, + { + "transition": "Delay_Discharge", + "distribution": 0.55 + } + ] + }, + "Neurological_Exam": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "84728005", + "display": "Neurological examination (procedure)" + } + ], + "duration": { + "low": 30, + "high": 45, + "unit": "minutes" + }, + "direct_transition": "Orthopedic_Exam", + "reason": "Myelomeningocele" + }, + "Chiari_II_Malformation": { + "type": "ConditionOnset", + "target_encounter": "Encounter_NICU", + "codes": [ + { + "system": "SNOMED-CT", + "code": "373587001", + "display": "Chiari malformation type II (disorder)" + } + ], + "direct_transition": "Neurological_Exam" + }, + "SB_Visit_1st": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Myelomeningocele", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308335008", + "display": "Patient encounter procedure (procedure)" + } + ], + "direct_transition": "Urodynamic_Test" + }, + "ETV": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "441763001", + "display": "Endoscopic exteriorization of third ventricle (procedure)" + } + ], + "duration": { + "low": 60, + "high": 90, + "unit": "minutes" + }, + "direct_transition": "CPC", + "reason": "Hydrocephalus" + }, + "CPC": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "17881005", + "display": "Cauterization of choroid plexus (procedure)" + } + ], + "duration": { + "low": 15, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Delay_Discharge", + "reason": "Hydrocephalus" + }, + "Kyphosis": { + "type": "ConditionOnset", + "target_encounter": "Encounter_NICU", + "codes": [ + { + "system": "SNOMED-CT", + "code": "414564002", + "display": "Kyphosis deformity of spine (disorder)" + } + ], + "remarks": [ + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3069279/#:~:text=Spinal%20deformity%20is%20a%20common,9%2C%2021%2C%2025%5D.", + "", + "Spinal deformity is a common problem in myelomeningocele. Although it is less common than scoliosis, rigid kyphosis reportedly occurs in 8% to 20% of patients with myelomeningocele [1–3, 6, 9, 21, 25]. " + ], + "direct_transition": "Chance_of_Survival_Day1" + }, + "Delay_Discharge": { + "type": "Delay", + "direct_transition": "Chance_of_Survival_2", + "range": { + "low": 3, + "high": 7, + "unit": "days" + } + }, + "End_Encounter_NICU": { + "type": "EncounterEnd", + "direct_transition": "Delay_SB_Visit" + }, + "Delay_SB_Visit": { + "type": "Delay", + "direct_transition": "SB_Visit_1st", + "range": { + "low": 2, + "high": 3, + "unit": "months" + } + }, + "CT_Head": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "303653007", + "display": "Computed tomography of head (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "MRI_Spine", + "reason": "Myelomeningocele" + }, + "MRI_Spine": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "241645008", + "display": "Magnetic resonance imaging of spine (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Muscle_Testing", + "reason": "Myelomeningocele" + }, + "Muscle_Testing": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "9002005", + "display": "Manual testing of muscle function (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "distributed_transition": [ + { + "transition": "Latex_Allergy", + "distribution": 0.6 + }, + { + "transition": "End_SB_Visit_1st", + "distribution": 0.4 + } + ], + "reason": "Myelomeningocele" + }, + "End_SB_Visit_1st": { + "type": "EncounterEnd", + "direct_transition": "Living_With_SB" + }, + "Living_With_SB": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Delay_3_Months", + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 1, + "unit": "years", + "value": 0 + } + }, + { + "transition": "Living_With_SB_2", + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 1, + "unit": "years", + "value": 0 + } + } + ] + }, + "End_SB_Visit_Under_Age_5": { + "type": "EncounterEnd", + "distributed_transition": [ + { + "transition": "Living_With_SB_3", + "distribution": 0.99 + }, + { + "transition": "Death", + "distribution": 0.01 + } + ] + }, + "SB_Visit_Under_Age_5": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Myelomeningocele", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308335008", + "display": "Patient encounter procedure (procedure)" + } + ], + "distributed_transition": [ + { + "transition": "Condition_UTI_3", + "distribution": 0.5 + }, + { + "transition": "Condition_Pressure_Ulcer_3", + "distribution": 0.106 + }, + { + "transition": "End_SB_Visit_Under_Age_5", + "distribution": 0.394 + } + ] + }, + "SB_Visit_After_Age_5": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Myelomeningocele", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308335008", + "display": "Patient encounter procedure (procedure)" + } + ], + "distributed_transition": [ + { + "transition": "Condition_UTI_2", + "distribution": 0.5 + }, + { + "transition": "End_SB_Visit_After_Age_5", + "distribution": 0.394 + }, + { + "transition": "Condition_Pressure_Ulcer", + "distribution": 0.106 + } + ] + }, + "End_SB_Visit_After_Age_5": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years", + "value": 0 + } + }, + { + "transition": "Living_With_SB_4", + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 18, + "unit": "years", + "value": 0 + } + } + ] + }, + "Living_With_SB_2": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Living_With_SB", + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 1, + "unit": "years", + "value": 0 + } + }, + { + "transition": "Delay_6_Months", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">=", + "quantity": 1, + "unit": "years", + "value": 0 + }, + { + "condition_type": "Age", + "operator": "<", + "quantity": 5, + "unit": "years", + "value": 0 + } + ] + } + }, + { + "transition": "Delay_1_Year", + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 5, + "unit": "years", + "value": 0 + } + } + ] + }, + "Living_With_SB_3": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Living_With_SB_2", + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 5, + "unit": "years", + "value": 0 + } + }, + { + "transition": "Delay_1_Year", + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 5, + "unit": "years", + "value": 0 + } + } + ] + }, + "Latex_Allergy": { + "type": "ConditionOnset", + "target_encounter": "SB_Visit_1st", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1003755004", + "display": "Allergy to Hevea brasiliensis latex protein (finding)" + } + ], + "direct_transition": "End_SB_Visit_1st" + }, + "Chance_of_Kyphosis": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Kyphosis", + "distribution": 0.2 + }, + { + "transition": "Chance_of_Survival_Day1", + "distribution": 0.8 + } + ] + }, + "Office_Visit_Under_Age_1": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Myelomeningocele", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308335008", + "display": "Patient encounter procedure (procedure)" + } + ], + "distributed_transition": [ + { + "transition": "Condition_UTI", + "distribution": 0.5 + }, + { + "transition": "End_Office_Visit_Under_Age_1", + "distribution": 0.5 + } + ] + }, + "End_Office_Visit_Under_Age_1": { + "type": "EncounterEnd", + "direct_transition": "Living_With_SB_2" + }, + "Death": { + "type": "Death", + "direct_transition": "Terminal", + "codes": [ + { + "system": "SNOMED-CT", + "code": "414667000", + "display": "Meningomyelocele (disorder)" + } + ], + "remarks": [ + "https://onlinelibrary.wiley.com/doi/pdf/10.1111/j.1469-8749.2009.03543.x", + "One in three of the cohort (40 ⁄ 117) died before the age of 5 years." + ] + }, + "Living_With_SB_4": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Death", + "distribution": 0.005 + }, + { + "transition": "Delay_1_Year", + "distribution": 0.995 + } + ] + }, + "Urodynamic_Test": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "252895004", + "display": "Urodynamic studies (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Renal_Ultrasound", + "reason": "Myelomeningocele" + }, + "Renal_Ultrasound": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "709640007", + "display": "Doppler ultrasonography of renal vein (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "CT_Head", + "reason": "Myelomeningocele" + }, + "Delay_3_Months": { + "type": "Delay", + "direct_transition": "Office_Visit_Under_Age_1", + "exact": { + "quantity": 3, + "unit": "months" + } + }, + "Delay_6_Months": { + "type": "Delay", + "exact": { + "quantity": 6, + "unit": "months" + }, + "direct_transition": "SB_Visit_Under_Age_5" + }, + "Delay_1_Year": { + "type": "Delay", + "direct_transition": "SB_Visit_After_Age_5", + "exact": { + "quantity": 1, + "unit": "years" + } + }, + "Chance_of_Survival_Day1": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Death", + "distribution": 0.061 + }, + { + "transition": "Delay_Myelomeningocele", + "distribution": 0.939 + } + ], + "remarks": [ + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6899817/" + ] + }, + "Chance_of_Survival_2": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "End_Encounter_NICU", + "distribution": 0.98 + }, + { + "transition": "Death", + "distribution": 0.02 + } + ] + }, + "Condition_UTI": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "68566005", + "display": "Urinary tract infectious disease (disorder)" + } + ], + "direct_transition": "End_Office_Visit_Under_Age_1", + "target_encounter": "Office_Visit_Under_Age_1" + }, + "Condition_UTI_3": { + "type": "ConditionOnset", + "target_encounter": "SB_Visit_Under_Age_5", + "codes": [ + { + "system": "SNOMED-CT", + "code": "68566005", + "display": "Urinary tract infectious disease (disorder)" + } + ], + "distributed_transition": [ + { + "transition": "End_SB_Visit_Under_Age_5", + "distribution": 0.9 + }, + { + "transition": "Condition_Pressure_Ulcer_4", + "distribution": 0.1 + } + ] + }, + "Condition_Pressure_Ulcer_3": { + "type": "ConditionOnset", + "target_encounter": "SB_Visit_Under_Age_5", + "codes": [ + { + "system": "SNOMED-CT", + "code": 399912005, + "display": "Pressure ulcer (disorder)" + } + ], + "direct_transition": "End_SB_Visit_Under_Age_5" + }, + "Condition_Pressure_Ulcer_4": { + "type": "ConditionOnset", + "target_encounter": "SB_Visit_Under_Age_5", + "codes": [ + { + "system": "SNOMED-CT", + "code": 399912005, + "display": "Pressure ulcer (disorder)" + } + ], + "direct_transition": "End_SB_Visit_Under_Age_5" + }, + "Condition_UTI_2": { + "type": "ConditionOnset", + "target_encounter": "SB_Visit_After_Age_5", + "codes": [ + { + "system": "SNOMED-CT", + "code": "68566005", + "display": "Urinary tract infectious disease (disorder)" + } + ], + "distributed_transition": [ + { + "transition": "Condition_Pressure_Ulcer_2", + "distribution": 0.1 + }, + { + "transition": "End_SB_Visit_After_Age_5", + "distribution": 0.9 + } + ] + }, + "Condition_Pressure_Ulcer": { + "type": "ConditionOnset", + "target_encounter": "SB_Visit_After_Age_5", + "codes": [ + { + "system": "SNOMED-CT", + "code": 399912005, + "display": "Pressure ulcer (disorder)" + } + ], + "direct_transition": "End_SB_Visit_After_Age_5" + }, + "Condition_Pressure_Ulcer_2": { + "type": "ConditionOnset", + "target_encounter": "SB_Visit_After_Age_5", + "codes": [ + { + "system": "SNOMED-CT", + "code": 399912005, + "display": "Pressure ulcer (disorder)" + } + ], + "direct_transition": "End_SB_Visit_After_Age_5" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/stable_ischemic_heart_disease.json b/src/main/resources/modules/stable_ischemic_heart_disease.json new file mode 100644 index 0000000..9cb928b --- /dev/null +++ b/src/main/resources/modules/stable_ischemic_heart_disease.json @@ -0,0 +1,244 @@ +{ + "name": "Stable Ischemic Heart Disease", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "This module is not intended to model clinical workflow, it is intended to funnel eligible patients into heart surgery." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Chance_of_IHD" + }, + "Terminal": { + "type": "Terminal" + }, + "Chance_of_IHD": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "distributed_transition": [ + { + "transition": "IHD_Start", + "distribution": { + "attribute": "ihd_risk", + "default": 0 + } + }, + { + "transition": "Chance_of_IHD", + "distribution": 1 + } + ] + }, + "IHD_Start": { + "type": "ConditionOnset", + "assign_to_attribute": "cardiac_surgery_reason", + "target_encounter": "Diagnosis_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "414545008", + "display": "Ischemic heart disease (disorder)" + } + ], + "direct_transition": "Delay_Until_Symptoms" + }, + "Delay_Until_Symptoms": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "distributed_transition": [ + { + "transition": "Symptoms_Start", + "distribution": 0.25 + }, + { + "transition": "Cardiac_Arrest", + "distribution": 0.0005 + }, + { + "transition": "Delay_Until_Symptoms", + "distribution": 0.7495 + } + ], + "remarks": [ + "The original Java code used sex-based annual risk of event: M = 0.042, F = 0.015", + "http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1647098/pdf/amjph00262-0029.pdf", + "", + "Then 80% of events are MI, 20% cardiac arrest", + "", + "For now assume .03 chance annually * .2 == .006 chance annually == .0005 chance monthly (not just divided by 12 btw, the match just works that way)" + ] + }, + "Symptoms_Start": { + "type": "Symptom", + "symptom": "Chest Pain", + "cause": "", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Dyspnea_Symptom" + }, + "Cardiac_Arrest": { + "type": "Death", + "direct_transition": "Terminal", + "codes": [ + { + "system": "SNOMED-CT", + "code": "410429000", + "display": "Cardiac arrest (disorder)" + } + ] + }, + "ECG / Labs": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Stress Test", + "distribution": 0.99 + }, + { + "transition": "CABG", + "distribution": 0.01 + } + ] + }, + "Stress Test": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Medical_Therapy", + "distribution": 0.99 + }, + { + "transition": "CABG", + "distribution": 0.01 + } + ] + }, + "Medical_Therapy": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "direct_transition": "Prescribe_CHD_Meds" + }, + "Symptoms_Continue": { + "type": "Simple", + "direct_transition": "CABG" + }, + "CABG": { + "type": "CallSubmodule", + "submodule": "heart/cabg_sequence", + "direct_transition": "Terminal" + }, + "Diagnosis_Encounter": { + "type": "Encounter", + "reason": "IHD_Start", + "direct_transition": "ECG / Labs", + "wellness": true + }, + "Prescribe_CHD_Meds": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Start_Clopidogrel", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 1997 + } + }, + { + "transition": "Start_Simvastatin", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 1991 + } + }, + { + "transition": "Start_Metoprolol", + "condition": { + "condition_type": "Date", + "operator": ">=", + "year": 1978 + } + }, + { + "transition": "Start_Nitroglycerin" + } + ] + }, + "Start_Clopidogrel": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 309362, + "display": "Clopidogrel 75 MG Oral Tablet" + } + ], + "direct_transition": "Start_Simvastatin" + }, + "Start_Simvastatin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 312961, + "display": "Simvastatin 20 MG Oral Tablet" + } + ], + "direct_transition": "Start_Metoprolol" + }, + "Start_Metoprolol": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 866412, + "display": "24 HR metoprolol succinate 100 MG Extended Release Oral Tablet" + } + ], + "direct_transition": "Start_Nitroglycerin" + }, + "Start_Nitroglycerin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 705129, + "display": "Nitroglycerin 0.4 MG/ACTUAT Mucosal Spray" + } + ], + "distributed_transition": [ + { + "transition": "Symptoms_Continue", + "distribution": 0.9 + }, + { + "transition": "Medical_Therapy", + "distribution": 0.1 + } + ] + }, + "Dyspnea_Symptom": { + "type": "Symptom", + "symptom": "Dyspnea on exertion", + "cause": "", + "probability": 1, + "exact": { + "quantity": 1 + }, + "direct_transition": "Diagnosis_Encounter" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/status_asthmaticus.json b/src/main/resources/modules/status_asthmaticus.json new file mode 100644 index 0000000..cc303b0 --- /dev/null +++ b/src/main/resources/modules/status_asthmaticus.json @@ -0,0 +1,425 @@ +{ + "name": "Status Asthmaticus", + "remarks": [ + "Status asthmaticus is a severe, life-threatening asthma exacerbation that does not respond to standard treatments.", + "This module models the occurrence of status asthmaticus in patients with pre-existing asthma.", + "Sources: https://www.ncbi.nlm.nih.gov/books/NBK526070/", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5760713/", + "https://www.lung.org/lung-health-diseases/lung-disease-lookup/asthma/learn-about-asthma/severe-asthma" + ], + "gmf_version": 2, + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Check_For_Asthma" + }, + "Check_For_Asthma": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "195967001", + "display": "Asthma (disorder)" + }, + { + "system": "SNOMED-CT", + "code": "233678006", + "display": "Childhood asthma (disorder)" + } + ] + }, + "transition": "Delay_For_Status_Asthmaticus_Onset" + }, + { + "transition": "Terminal" + } + ] + }, + "Delay_For_Status_Asthmaticus_Onset": { + "type": "Delay", + "remarks": [ + "Status asthmaticus can occur at any point after asthma diagnosis.", + "The risk is higher in patients with poorly controlled asthma." + ], + "range": { + "low": 1, + "high": 10, + "unit": "years" + }, + "direct_transition": "Status_Asthmaticus_Probability" + }, + "Status_Asthmaticus_Probability": { + "type": "Simple", + "remarks": [ + "Status asthmaticus occurs in approximately 5-10% of asthma patients.", + "We model a 7% chance of developing status asthmaticus." + ], + "distributed_transition": [ + { + "distribution": 0.07, + "transition": "Status_Asthmaticus_Trigger" + }, + { + "distribution": 0.93, + "transition": "No_Status_Asthmaticus" + } + ] + }, + "No_Status_Asthmaticus": { + "type": "Simple", + "direct_transition": "Terminal" + }, + "Status_Asthmaticus_Trigger": { + "type": "Simple", + "remarks": [ + "Status asthmaticus can be triggered by various factors including:", + "- Respiratory infections", + "- Allergen exposure", + "- Exercise", + "- Weather changes", + "- Medication non-compliance" + ], + "distributed_transition": [ + { + "distribution": 0.4, + "transition": "Trigger_Respiratory_Infection" + }, + { + "distribution": 0.3, + "transition": "Trigger_Allergen_Exposure" + }, + { + "distribution": 0.15, + "transition": "Trigger_Exercise" + }, + { + "distribution": 0.15, + "transition": "Trigger_Medication_Noncompliance" + } + ] + }, + "Trigger_Respiratory_Infection": { + "type": "ConditionOnset", + "target_encounter": "Status_Asthmaticus_Emergency_Visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "54150009", + "display": "Acute upper respiratory infection (disorder)" + } + ], + "direct_transition": "Status_Asthmaticus_Onset" + }, + "Trigger_Allergen_Exposure": { + "type": "Simple", + "direct_transition": "Status_Asthmaticus_Onset" + }, + "Trigger_Exercise": { + "type": "Simple", + "direct_transition": "Status_Asthmaticus_Onset" + }, + "Trigger_Medication_Noncompliance": { + "type": "Simple", + "direct_transition": "Status_Asthmaticus_Onset" + }, + "Status_Asthmaticus_Onset": { + "type": "ConditionOnset", + "target_encounter": "Status_Asthmaticus_Emergency_Visit", + "assign_to_attribute": "status_asthmaticus", + "codes": [ + { + "system": "SNOMED-CT", + "code": "67415000", + "display": "Status asthmaticus (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "J46", + "display": "Status asthmaticus" + } + ], + "direct_transition": "Status_Asthmaticus_Symptoms" + }, + "Status_Asthmaticus_Symptoms": { + "type": "Symptom", + "symptom": "Severe Wheezing", + "range": { + "low": 80, + "high": 100 + }, + "direct_transition": "Status_Asthmaticus_Symptom_SOB" + }, + "Status_Asthmaticus_Symptom_SOB": { + "type": "Symptom", + "symptom": "Severe Shortness of Breath", + "range": { + "low": 90, + "high": 100 + }, + "direct_transition": "Status_Asthmaticus_Symptom_Cough" + }, + "Status_Asthmaticus_Symptom_Cough": { + "type": "Symptom", + "symptom": "Severe Cough", + "range": { + "low": 70, + "high": 100 + }, + "direct_transition": "Status_Asthmaticus_Symptom_ChestTightness" + }, + "Status_Asthmaticus_Symptom_ChestTightness": { + "type": "Symptom", + "symptom": "Chest Tightness", + "range": { + "low": 80, + "high": 100 + }, + "direct_transition": "Status_Asthmaticus_Symptom_Anxiety" + }, + "Status_Asthmaticus_Symptom_Anxiety": { + "type": "Symptom", + "symptom": "Anxiety", + "range": { + "low": 60, + "high": 90 + }, + "direct_transition": "Status_Asthmaticus_Emergency_Visit" + }, + "Status_Asthmaticus_Emergency_Visit": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "status_asthmaticus", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183478001", + "display": "Emergency hospital admission for asthma (procedure)" + } + ], + "direct_transition": "Status_Asthmaticus_Vitals" + }, + "Status_Asthmaticus_Vitals": { + "type": "Procedure", + "target_encounter": "Status_Asthmaticus_Emergency_Visit", + "reason": "status_asthmaticus", + "codes": [ + { + "system": "LOINC", + "code": "85353-1", + "display": "Vital signs, weight and height panel" + } + ], + "direct_transition": "Status_Asthmaticus_Respiratory_Rate" + }, + "Status_Asthmaticus_Respiratory_Rate": { + "type": "Observation", + "category": "vital-signs", + "unit": "/min", + "codes": [ + { + "system": "LOINC", + "code": "9279-1", + "display": "Respiratory rate" + } + ], + "range": { + "low": 25, + "high": 40 + }, + "direct_transition": "Status_Asthmaticus_Oxygen_Saturation" + }, + "Status_Asthmaticus_Oxygen_Saturation": { + "type": "Observation", + "category": "vital-signs", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "2708-6", + "display": "Oxygen saturation in Arterial blood" + } + ], + "range": { + "low": 75, + "high": 90 + }, + "direct_transition": "Status_Asthmaticus_Heart_Rate" + }, + "Status_Asthmaticus_Heart_Rate": { + "type": "Observation", + "category": "vital-signs", + "unit": "/min", + "codes": [ + { + "system": "LOINC", + "code": "8867-4", + "display": "Heart rate" + } + ], + "range": { + "low": 100, + "high": 140 + }, + "direct_transition": "Status_Asthmaticus_Diagnostic_Tests" + }, + "Status_Asthmaticus_Diagnostic_Tests": { + "type": "Procedure", + "target_encounter": "Status_Asthmaticus_Emergency_Visit", + "reason": "status_asthmaticus", + "codes": [ + { + "system": "SNOMED-CT", + "code": "23426006", + "display": "Measurement of peak expiratory flow rate (procedure)" + } + ], + "direct_transition": "Status_Asthmaticus_PEF_Result" + }, + "Status_Asthmaticus_PEF_Result": { + "type": "Observation", + "category": "laboratory", + "unit": "L/min", + "codes": [ + { + "system": "LOINC", + "code": "19935-1", + "display": "Peak expiratory flow rate" + } + ], + "range": { + "low": 50, + "high": 150 + }, + "direct_transition": "Status_Asthmaticus_Chest_Xray" + }, + "Status_Asthmaticus_Chest_Xray": { + "type": "Procedure", + "target_encounter": "Status_Asthmaticus_Emergency_Visit", + "reason": "status_asthmaticus", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain chest X-ray (procedure)" + } + ], + "direct_transition": "Status_Asthmaticus_ABG" + }, + "Status_Asthmaticus_ABG": { + "type": "Procedure", + "target_encounter": "Status_Asthmaticus_Emergency_Visit", + "reason": "status_asthmaticus", + "codes": [ + { + "system": "SNOMED-CT", + "code": "27722008", + "display": "Arterial blood gas measurement (procedure)" + } + ], + "direct_transition": "Status_Asthmaticus_Treatment_Decision" + }, + "Status_Asthmaticus_Treatment_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.7, + "transition": "Status_Asthmaticus_ED_Treatment" + }, + { + "distribution": 0.3, + "transition": "Status_Asthmaticus_ICU_Admission" + } + ] + }, + "Status_Asthmaticus_ED_Treatment": { + "type": "Procedure", + "target_encounter": "Status_Asthmaticus_Emergency_Visit", + "reason": "status_asthmaticus", + "codes": [ + { + "system": "SNOMED-CT", + "code": "371600003", + "display": "Nebulized bronchodilator therapy (procedure)" + } + ], + "direct_transition": "Status_Asthmaticus_Albuterol" + }, + "Status_Asthmaticus_Albuterol": { + "type": "MedicationOrder", + "target_encounter": "Status_Asthmaticus_Emergency_Visit", + "reason": "status_asthmaticus", + "codes": [ + { + "system": "RxNorm", + "code": "2108", + "display": "Albuterol 0.83 MG/ML Inhalation Solution" + } + ], + "direct_transition": "Status_Asthmaticus_Ipratropium" + }, + "Status_Asthmaticus_Ipratropium": { + "type": "MedicationOrder", + "target_encounter": "Status_Asthmaticus_Emergency_Visit", + "reason": "status_asthmaticus", + "codes": [ + { + "system": "RxNorm", + "code": "2108", + "display": "Ipratropium Bromide 0.2 MG/ML Inhalation Solution" + } + ], + "direct_transition": "Status_Asthmaticus_Steroids" + }, + "Status_Asthmaticus_Steroids": { + "type": "MedicationOrder", + "target_encounter": "Status_Asthmaticus_Emergency_Visit", + "reason": "status_asthmaticus", + "codes": [ + { + "system": "RxNorm", + "code": "312617", + "display": "Methylprednisolone 40 MG Injection" + } + ], + "direct_transition": "Status_Asthmaticus_Oxygen" + }, + "Status_Asthmaticus_Oxygen": { + "type": "Procedure", + "target_encounter": "Status_Asthmaticus_Emergency_Visit", + "reason": "status_asthmaticus", + "codes": [ + { + "system": "SNOMED-CT", + "code": "57485005", + "display": "Oxygen therapy (procedure)" + } + ], + "direct_transition": "Status_Asthmaticus_ED_Outcome" + }, + "Status_Asthmaticus_ED_Outcome": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.8, + "transition": "Status_Asthmaticus_ED_Improvement" + }, + { + "distribution": 0.2, + "transition": "Status_Asthmaticus_Deterioration" + } + ] + }, + "Status_Asthmaticus_ED_Improvement": { + "type": "Simple", + "direct_transition": "Status_Asthmaticus_Hospital_Admission" + }, + "Status_Asthmaticus_Deterioration": { + "type": "Simple", + "direct_transition": "Status_Asthmaticus_ICU_Admission" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/stroke.json b/src/main/resources/modules/stroke.json new file mode 100644 index 0000000..39a942c --- /dev/null +++ b/src/main/resources/modules/stroke.json @@ -0,0 +1,171 @@ +{ + "name": "Stroke", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "This module is not intended to model clinical workflow, it is intended to funnel eligible patients into heart surgery." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Chance_of_Stroke" + }, + "Terminal": { + "type": "Terminal" + }, + "Mechanical Thrombectomy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "433112001", + "display": "Percutaneous mechanical thrombectomy of portal vein using fluoroscopic guidance with contrast (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "distributed_transition": [ + { + "transition": "Death", + "distribution": 0.175 + }, + { + "transition": "End_Encounter", + "distribution": 0.825 + } + ] + }, + "Stroke": { + "type": "ConditionOnset", + "assign_to_attribute": "stroke_history", + "target_encounter": "Emergency_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "230690007", + "display": "Cerebrovascular accident (disorder)" + } + ], + "direct_transition": "Emergency_Encounter" + }, + "Emergency_Encounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "Stroke", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "conditional_transition": [ + { + "transition": "Clopidogrel", + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 1997 + } + }, + { + "transition": "Alteplase", + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 1987 + } + }, + { + "transition": "Echocardiogram" + } + ] + }, + "End_Encounter": { + "type": "EncounterEnd", + "direct_transition": "End_Stroke_Condition" + }, + "Chance_of_Stroke": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "distributed_transition": [ + { + "transition": "Stroke", + "distribution": { + "attribute": "stroke_risk", + "default": 0 + } + }, + { + "transition": "Chance_of_Stroke", + "distribution": 1 + } + ] + }, + "Clopidogrel": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 309362, + "display": "Clopidogrel 75 MG Oral Tablet" + } + ], + "direct_transition": "Alteplase" + }, + "Alteplase": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1804799, + "display": "Alteplase 100 MG Injection" + } + ], + "direct_transition": "Echocardiogram" + }, + "Echocardiogram": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "40701008", + "display": "Echocardiography (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Mechanical Thrombectomy" + }, + "Death": { + "type": "Death", + "range": { + "low": 1, + "high": 30, + "unit": "days" + }, + "codes": [ + { + "system": "SNOMED-CT", + "code": "230690007", + "display": "Cerebrovascular accident (disorder)" + } + ], + "direct_transition": "End_Encounter" + }, + "End_Stroke_Condition": { + "type": "ConditionEnd", + "direct_transition": "Terminal", + "condition_onset": "Stroke" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/stroke_not_specified_as_haemorrhage_or_infarction.json b/src/main/resources/modules/stroke_not_specified_as_haemorrhage_or_infarction.json new file mode 100644 index 0000000..fcbad69 --- /dev/null +++ b/src/main/resources/modules/stroke_not_specified_as_haemorrhage_or_infarction.json @@ -0,0 +1,528 @@ +{ + "name": "Stroke not specified as haemorrhage or infarction", + "remarks": [ + "This module models stroke not specified as haemorrhage or infarction (ICD-10 code: I64).", + "This represents a cerebrovascular event where the type (ischemic or hemorrhagic) is not determined.", + "Risk factors include hypertension, diabetes, smoking, obesity, and atrial fibrillation.", + "Information sources:", + "https://www.ncbi.nlm.nih.gov/books/NBK535369/", + "https://www.ahajournals.org/doi/10.1161/STROKEAHA.118.022182", + "https://www.who.int/news-room/fact-sheets/detail/the-top-10-causes-of-death" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + "Stroke is the second leading cause of death worldwide.", + "Incidence increases with age, with rates doubling for each decade after age 55." + ], + "direct_transition": "Age_Guard" + }, + "Age_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 45, + "unit": "years" + }, + "direct_transition": "Risk_Factor_Check" + }, + "Risk_Factor_Check": { + "type": "Simple", + "remarks": [ + "Check for common risk factors that increase stroke probability" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "hypertension", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "diabetes", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "atrial_fibrillation", + "operator": "is not nil" + } + ] + }, + "distributions": [ + { + "distribution": 0.03, + "transition": "Stroke_Onset_Delay" + }, + { + "distribution": 0.97, + "transition": "Terminal" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.01, + "transition": "Stroke_Onset_Delay" + }, + { + "distribution": 0.99, + "transition": "Terminal" + } + ] + } + ] + }, + "Stroke_Onset_Delay": { + "type": "Delay", + "range": { + "low": 1, + "high": 10, + "unit": "years" + }, + "direct_transition": "Stroke_Onset" + }, + "Stroke_Onset": { + "type": "ConditionOnset", + "target_encounter": "Emergency_Encounter", + "assign_to_attribute": "stroke", + "codes": [ + { + "system": "SNOMED-CT", + "code": "230690007", + "display": "Cerebrovascular accident (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I64", + "display": "Stroke, not specified as haemorrhage or infarction" + } + ], + "direct_transition": "Stroke_Symptoms" + }, + "Stroke_Symptoms": { + "type": "Symptom", + "symptom": "Sudden Confusion", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Facial_Drooping" + }, + "Facial_Drooping": { + "type": "Symptom", + "symptom": "Facial Drooping", + "range": { + "low": 60, + "high": 100 + }, + "direct_transition": "Arm_Weakness" + }, + "Arm_Weakness": { + "type": "Symptom", + "symptom": "Arm Weakness", + "range": { + "low": 70, + "high": 100 + }, + "direct_transition": "Speech_Difficulty" + }, + "Speech_Difficulty": { + "type": "Symptom", + "symptom": "Speech Difficulty", + "range": { + "low": 60, + "high": 100 + }, + "direct_transition": "Severe_Headache" + }, + "Severe_Headache": { + "type": "Symptom", + "symptom": "Severe Headache", + "range": { + "low": 40, + "high": 90 + }, + "direct_transition": "Emergency_Call" + }, + "Emergency_Call": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "182813001", + "display": "Emergency hospital admission (procedure)" + } + ], + "duration": { + "low": 30, + "high": 120, + "unit": "minutes" + }, + "direct_transition": "Emergency_Encounter" + }, + "Emergency_Encounter": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "stroke", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "Stroke_Severity_Assessment" + }, + "Stroke_Severity_Assessment": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Mild_Stroke" + }, + { + "distribution": 0.4, + "transition": "Moderate_Stroke" + }, + { + "distribution": 0.3, + "transition": "Severe_Stroke" + } + ] + }, + "Mild_Stroke": { + "type": "SetAttribute", + "attribute": "stroke_severity", + "value": "mild", + "direct_transition": "Vital_Signs" + }, + "Moderate_Stroke": { + "type": "SetAttribute", + "attribute": "stroke_severity", + "value": "moderate", + "direct_transition": "Vital_Signs" + }, + "Severe_Stroke": { + "type": "SetAttribute", + "attribute": "stroke_severity", + "value": "severe", + "direct_transition": "Vital_Signs" + }, + "Vital_Signs": { + "type": "Observation", + "category": "vital-signs", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic blood pressure" + } + ], + "range": { + "low": 140, + "high": 220 + }, + "direct_transition": "Diastolic_BP" + }, + "Diastolic_BP": { + "type": "Observation", + "category": "vital-signs", + "unit": "mm[Hg]", + "codes": [ + { + "system": "LOINC", + "code": "8462-4", + "display": "Diastolic blood pressure" + } + ], + "range": { + "low": 80, + "high": 120 + }, + "direct_transition": "Neurological_Examination" + }, + "Neurological_Examination": { + "type": "Procedure", + "reason": "stroke", + "codes": [ + { + "system": "SNOMED-CT", + "code": "5880005", + "display": "Physical examination of nervous system (procedure)" + } + ], + "direct_transition": "NIHSS_Score" + }, + "NIHSS_Score": { + "type": "Observation", + "category": "survey", + "unit": "score", + "codes": [ + { + "system": "LOINC", + "code": "70182-1", + "display": "NIH stroke scale" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "stroke_severity", + "operator": "==", + "value": "mild" + }, + "transition": "NIHSS_Mild" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "stroke_severity", + "operator": "==", + "value": "moderate" + }, + "transition": "NIHSS_Moderate" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "stroke_severity", + "operator": "==", + "value": "severe" + }, + "transition": "NIHSS_Severe" + } + ] + }, + "NIHSS_Mild": { + "type": "Observation", + "category": "survey", + "unit": "score", + "codes": [ + { + "system": "LOINC", + "code": "70182-1", + "display": "NIH stroke scale" + } + ], + "range": { + "low": 1, + "high": 4 + }, + "direct_transition": "CT_Scan" + }, + "NIHSS_Moderate": { + "type": "Observation", + "category": "survey", + "unit": "score", + "codes": [ + { + "system": "LOINC", + "code": "70182-1", + "display": "NIH stroke scale" + } + ], + "range": { + "low": 5, + "high": 15 + }, + "direct_transition": "CT_Scan" + }, + "NIHSS_Severe": { + "type": "Observation", + "category": "survey", + "unit": "score", + "codes": [ + { + "system": "LOINC", + "code": "70182-1", + "display": "NIH stroke scale" + } + ], + "range": { + "low": 16, + "high": 42 + }, + "direct_transition": "CT_Scan" + }, + "CT_Scan": { + "type": "Procedure", + "reason": "stroke", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418714002", + "display": "Computed tomography of head (procedure)" + } + ], + "duration": { + "low": 15, + "high": 30, + "unit": "minutes" + }, + "direct_transition": "Blood_Tests" + }, + "Blood_Tests": { + "type": "Procedure", + "reason": "stroke", + "codes": [ + { + "system": "SNOMED-CT", + "code": "396550006", + "display": "Blood test (procedure)" + } + ], + "direct_transition": "CBC_Test" + }, + "CBC_Test": { + "type": "Procedure", + "reason": "stroke", + "codes": [ + { + "system": "SNOMED-CT", + "code": "252275004", + "display": "Complete blood count (procedure)" + } + ], + "direct_transition": "Coagulation_Studies" + }, + "Coagulation_Studies": { + "type": "Procedure", + "reason": "stroke", + "codes": [ + { + "system": "SNOMED-CT", + "code": "269872007", + "display": "Coagulation screen (procedure)" + } + ], + "direct_transition": "Electrolyte_Panel" + }, + "Electrolyte_Panel": { + "type": "Procedure", + "reason": "stroke", + "codes": [ + { + "system": "SNOMED-CT", + "code": "271236005", + "display": "Serum electrolyte panel (procedure)" + } + ], + "direct_transition": "Glucose_Test" + }, + "Glucose_Test": { + "type": "Observation", + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 70, + "high": 200 + }, + "direct_transition": "ECG" + }, + "ECG": { + "type": "Procedure", + "reason": "stroke", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29303009", + "display": "Electrocardiographic procedure (procedure)" + } + ], + "direct_transition": "Stroke_Treatment_Decision" + }, + "Stroke_Treatment_Decision": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "stroke_severity", + "operator": "==", + "value": "severe" + }, + "transition": "Mortality_Check_Severe" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "stroke_severity", + "operator": "==", + "value": "moderate" + }, + "transition": "Mortality_Check_Moderate" + }, + { + "transition": "Mortality_Check_Mild" + } + ] + }, + "Mortality_Check_Severe": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.3, + "transition": "Death_From_Stroke" + }, + { + "distribution": 0.7, + "transition": "Admit_To_ICU" + } + ] + }, + "Mortality_Check_Moderate": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.15, + "transition": "Death_From_Stroke" + }, + { + "distribution": 0.85, + "transition": "Admit_To_Hospital" + } + ] + }, + "Mortality_Check_Mild": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.05, + "transition": "Death_From_Stroke" + }, + { + "distribution": 0.95, + "transition": "Admit_To_Hospital" + } + ] + }, + "Death_From_Stroke": { + "type": "Death", + "range": { + "low": 0, + "high": 24, + "unit": "hours" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/subsequent_myocardial_infarction.json b/src/main/resources/modules/subsequent_myocardial_infarction.json new file mode 100644 index 0000000..47b2198 --- /dev/null +++ b/src/main/resources/modules/subsequent_myocardial_infarction.json @@ -0,0 +1,474 @@ +{ + "name": "Subsequent Myocardial Infarction", + "remarks": [ + "Subsequent myocardial infarction refers to a heart attack that occurs after a previous myocardial infarction.", + "It is classified as occurring within 28 days of a previous MI (ICD-10 code I22).", + "Patients who have had a prior MI are at significantly increased risk for subsequent events.", + "Risk factors include inadequate secondary prevention, incomplete revascularization, and progression of coronary artery disease.", + "Information on prevalence, progression, and treatment obtained from:", + "https://www.ncbi.nlm.nih.gov/books/NBK537076/", + "https://www.ahajournals.org/doi/10.1161/CIRCULATIONAHA.117.032791", + "https://www.heart.org/en/health-topics/heart-attack/life-after-a-heart-attack" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "======================================================================", + " INCIDENCE ", + "======================================================================", + "Subsequent myocardial infarction occurs in approximately 10-20% of patients within one year of their first MI.", + "The risk is highest in the first 6 months following the initial event." + ], + "direct_transition": "Guard_For_Prior_MI" + }, + "Guard_For_Prior_MI": { + "type": "Guard", + "allow": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "prior_mi", + "operator": "is not nil" + }, + { + "condition_type": "Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "22298006", + "display": "Myocardial infarction (disorder)" + } + ] + } + ] + }, + "direct_transition": "Set_Prior_MI_Attribute" + }, + "Set_Prior_MI_Attribute": { + "type": "SetAttribute", + "attribute": "prior_mi", + "value": true, + "direct_transition": "Subsequent_MI_Risk_Period" + }, + "Subsequent_MI_Risk_Period": { + "type": "Delay", + "range": { + "low": 1, + "high": 12, + "unit": "months" + }, + "direct_transition": "Subsequent_MI_Probability" + }, + "Subsequent_MI_Probability": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 75, + "unit": "years" + }, + "distributions": [ + { + "distribution": 0.25, + "transition": "Subsequent_MI_Onset" + }, + { + "distribution": 0.75, + "transition": "Continue_Secondary_Prevention" + } + ] + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Gender", + "gender": "M" + }, + { + "condition_type": "Attribute", + "attribute": "diabetes", + "operator": "is not nil" + } + ] + }, + "distributions": [ + { + "distribution": 0.2, + "transition": "Subsequent_MI_Onset" + }, + { + "distribution": 0.8, + "transition": "Continue_Secondary_Prevention" + } + ] + }, + { + "distributions": [ + { + "distribution": 0.15, + "transition": "Subsequent_MI_Onset" + }, + { + "distribution": 0.85, + "transition": "Continue_Secondary_Prevention" + } + ] + } + ] + }, + "Continue_Secondary_Prevention": { + "type": "Delay", + "range": { + "low": 3, + "high": 6, + "unit": "months" + }, + "direct_transition": "Subsequent_MI_Probability" + }, + "Subsequent_MI_Onset": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Subsequent_MI", + "codes": [ + { + "system": "SNOMED-CT", + "code": "394659003", + "display": "Acute coronary syndrome (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I22.9", + "display": "Subsequent ST elevation (STEMI) and non-ST elevation (NSTEMI) myocardial infarction, unspecified site" + } + ], + "direct_transition": "Chest_Pain_Symptom" + }, + "Chest_Pain_Symptom": { + "type": "Symptom", + "symptom": "Chest Pain", + "range": { + "low": 75, + "high": 100 + }, + "direct_transition": "Dyspnea_Symptom" + }, + "Dyspnea_Symptom": { + "type": "Symptom", + "symptom": "Dyspnea", + "range": { + "low": 60, + "high": 90 + }, + "direct_transition": "Diaphoresis_Symptom" + }, + "Diaphoresis_Symptom": { + "type": "Symptom", + "symptom": "Diaphoresis", + "range": { + "low": 50, + "high": 80 + }, + "direct_transition": "Nausea_Symptom" + }, + "Nausea_Symptom": { + "type": "Symptom", + "symptom": "Nausea/Vomiting", + "range": { + "low": 30, + "high": 70 + }, + "direct_transition": "ED_Visit_For_Subsequent_MI" + }, + "ED_Visit_For_Subsequent_MI": { + "type": "Encounter", + "encounter_class": "emergency", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "EKG" + }, + "EKG": { + "type": "Procedure", + "reason": "Subsequent_MI_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29303009", + "display": "Electrocardiographic procedure (procedure)" + } + ], + "direct_transition": "Troponin_Test" + }, + "Troponin_Test": { + "type": "Procedure", + "reason": "Subsequent_MI_Onset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "313791000", + "display": "Troponin measurement (procedure)" + } + ], + "direct_transition": "Troponin_I_Result" + }, + "Troponin_I_Result": { + "type": "Observation", + "category": "laboratory", + "unit": "ng/mL", + "codes": [ + { + "system": "LOINC", + "code": "10839-9", + "display": "Troponin I [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.4, + "high": 10.0 + }, + "direct_transition": "MI_Type_Determination" + }, + "MI_Type_Determination": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.6, + "transition": "STEMI_Diagnosis" + }, + { + "distribution": 0.4, + "transition": "NSTEMI_Diagnosis" + } + ] + }, + "STEMI_Diagnosis": { + "type": "ConditionOnset", + "assign_to_attribute": "subsequent_mi", + "target_encounter": "ED_Visit_For_Subsequent_MI", + "codes": [ + { + "system": "SNOMED-CT", + "code": "401303003", + "display": "Acute ST segment elevation myocardial infarction (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I22.0", + "display": "Subsequent ST elevation (STEMI) myocardial infarction of anterior wall" + } + ], + "direct_transition": "Hospital_Admission" + }, + "NSTEMI_Diagnosis": { + "type": "ConditionOnset", + "assign_to_attribute": "subsequent_mi", + "target_encounter": "ED_Visit_For_Subsequent_MI", + "codes": [ + { + "system": "SNOMED-CT", + "code": "401314000", + "display": "Acute non-ST segment elevation myocardial infarction (disorder)" + }, + { + "system": "ICD-10-CM", + "code": "I22.2", + "display": "Subsequent non-ST elevation (NSTEMI) myocardial infarction" + } + ], + "direct_transition": "Hospital_Admission" + }, + "Hospital_Admission": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "subsequent_mi", + "codes": [ + { + "system": "SNOMED-CT", + "code": "32485007", + "display": "Hospital admission (procedure)" + } + ], + "direct_transition": "Cardiac_Catheterization_Decision" + }, + "Cardiac_Catheterization_Decision": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "401303003", + "display": "Acute ST segment elevation myocardial infarction (disorder)" + } + ] + }, + "transition": "Cardiac_Catheterization" + }, + { + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 80, + "unit": "years" + }, + "transition": "Conservative_Treatment" + }, + { + "transition": "Cardiac_Catheterization" + } + ] + }, + "Cardiac_Catheterization": { + "type": "Procedure", + "reason": "subsequent_mi", + "codes": [ + { + "system": "SNOMED-CT", + "code": "80146002", + "display": "Cardiac catheterization (procedure)" + } + ], + "duration": { + "low": 1, + "high": 2, + "unit": "hours" + }, + "direct_transition": "PCI_Decision" + }, + "PCI_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.8, + "transition": "PCI_Procedure" + }, + { + "distribution": 0.2, + "transition": "Conservative_Treatment" + } + ] + }, + "PCI_Procedure": { + "type": "Procedure", + "reason": "subsequent_mi", + "codes": [ + { + "system": "SNOMED-CT", + "code": "415070008", + "display": "Percutaneous coronary intervention (procedure)" + } + ], + "duration": { + "low": 1, + "high": 3, + "unit": "hours" + }, + "direct_transition": "Stent_Placement" + }, + "Stent_Placement": { + "type": "Procedure", + "reason": "subsequent_mi", + "codes": [ + { + "system": "SNOMED-CT", + "code": "36969009", + "display": "Placement of stent in coronary artery (procedure)" + } + ], + "direct_transition": "Post_PCI_Care" + }, + "Post_PCI_Care": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "days" + }, + "direct_transition": "Medication_Management" + }, + "Conservative_Treatment": { + "type": "Delay", + "range": { + "low": 2, + "high": 5, + "unit": "days" + }, + "direct_transition": "Medication_Management" + }, + "Medication_Management": { + "type": "Simple", + "direct_transition": "Aspirin_Prescription" + }, + "Aspirin_Prescription": { + "type": "MedicationOrder", + "reason": "subsequent_mi", + "codes": [ + { + "system": "RxNorm", + "code": "197361", + "display": "Aspirin 81 MG Oral Tablet" + } + ], + "direct_transition": "Clopidogrel_Prescription" + }, + "Clopidogrel_Prescription": { + "type": "MedicationOrder", + "reason": "subsequent_mi", + "codes": [ + { + "system": "RxNorm", + "code": "309362", + "display": "Clopidogrel 75 MG Oral Tablet" + } + ], + "direct_transition": "Statin_Prescription" + }, + "Statin_Prescription": { + "type": "MedicationOrder", + "reason": "subsequent_mi", + "codes": [ + { + "system": "RxNorm", + "code": "617311", + "display": "Atorvastatin 40 MG Oral Tablet" + } + ], + "direct_transition": "Beta_Blocker_Prescription" + }, + "Beta_Blocker_Prescription": { + "type": "MedicationOrder", + "reason": "subsequent_mi", + "codes": [ + { + "system": "RxNorm", + "code": "197884", + "display": "Metoprolol Succinate 25 MG Oral Tablet" + } + ], + "direct_transition": "ACE_Inhibitor_Prescription" + }, + "ACE_Inhibitor_Prescription": { + "type": "MedicationOrder", + "reason": "subsequent_mi", + "codes": [ + { + "system": "RxNorm", + "code": "1299896", + "display": "Lisinopril 10 MG Oral Tablet" + } + ], + "direct_transition": "Cardiac_Rehab_Referral" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/surgery/general_anesthesia.json b/src/main/resources/modules/surgery/general_anesthesia.json new file mode 100644 index 0000000..6746875 --- /dev/null +++ b/src/main/resources/modules/surgery/general_anesthesia.json @@ -0,0 +1,363 @@ +{ + "name": "General Anesthesia", + "remarks": [ + "Prior to surgery, patients are commonly placed under general anesthesia. This model attempts to capture the most common case for general anesthesia, based in part on this discussion of the most common case:", + "https://www.reddit.com/r/askscience/comments/1v1ei5/most_descriptions_of_general_anesthesia_as_used/", + "", + "This article may be helpful for future efforts, but it is not open access: https://www.nejm.org/doi/full/10.1056/Nejmra0808281", + "", + "This article was helpful in determining current clinical guidelines for surgery, though it did not focus on general anesthesia: https://journals.lww.com/anesthesia-analgesia/Fulltext/2014/01000/Consensus_Guidelines_for_the_Management_of.13.aspx", + "", + "Known model limitations:", + "- Anesthesiology is a complex, complicated field with many edge cases. A patient's medication 'cocktail' will differ based on facility limitations, the type of surgery, and age/weight/allergies of the patient. Greater variability in this model would help it to reflect reality.", + "- This assumes the patient is undergoing surgery in the 21st century (after propofol gained wide use) - historical anesthesia techniques are not modeled", + "- New anesthetics are actively being tested and used: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3642742/" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Anesthesia Submodule" + }, + "Terminal": { + "type": "Terminal" + }, + "Induction_Medication": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1808217, + "display": "100 ML Propofol 10 MG/ML Injection" + } + ], + "direct_transition": "Induction_Medication_End", + "remarks": [ + "TODO: look into Phenobarbital (can cause apnea), Etomidate (risk of nausea), Ketamine (increased secretions, risk of laryngospasm and hallucinations), Dexmedetomidine", + "https://www.ncbi.nlm.nih.gov/books/NBK493199/" + ], + "administration": true + }, + "Intubation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "52765003", + "display": "Intubation (procedure)" + } + ], + "direct_transition": "Volatile_Anesthetic" + }, + "Midazolam": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 311700, + "display": "Midazolam 1 MG/ML Injectable Solution" + } + ], + "direct_transition": "Midazolam_End", + "administration": true + }, + "Anxiolytic": { + "type": "Simple", + "remarks": [ + "Benzodiazepines (e.g. Midazolam, Diazepam, Lorazepam) are administered to reduce anxiety and inhibit the formation of memories", + "94% of patients receive Midazolam", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5509245/" + ], + "distributed_transition": [ + { + "transition": "Midazolam", + "distribution": 0.94 + }, + { + "transition": "Diazepam", + "distribution": 0.03 + }, + { + "transition": "Lorazepam", + "distribution": 0.03 + } + ] + }, + "Diazepam": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 309845, + "display": "Diazepam 5 MG/ML Injectable Solution" + } + ], + "direct_transition": "Diazepam_End", + "administration": true + }, + "Lorazepam": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 238100, + "display": "Lorazepam 2 MG/ML Injectable Solution" + } + ], + "direct_transition": "Lorazepam_End", + "administration": true + }, + "Antiemetic": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1740467, + "display": "2 ML Ondansetron 2 MG/ML Injection" + } + ], + "direct_transition": "Antiemetic_End", + "remarks": [ + "4mg is the most common dose for Ondansetron and virtually all anesthesia patients receive it prior to general anesthesia.", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5509245/" + ], + "administration": true + }, + "Paralytic": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1234995, + "display": "Rocuronium bromide 10 MG/ML Injectable Solution" + } + ], + "direct_transition": "Paralytic_End", + "remarks": [ + "Paralytics are administered to prevent patients from moving around during surgery and to assist in intubation.", + "Succinylcholine, Rocuronium, and Vecuronium are possible paralytics but Succinylcholine has considerable side effects. ", + "Source: http://go.galegroup.com/ps/anonymous?id=GALE%7CA470367351", + "", + "In one study of general anesthetics, Rocuronium was used in 96.7% of cases", + "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5500064/" + ], + "administration": true + }, + "Fentanyl": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "1735006", + "display": "10 ML Fentanyl 0.05 MG/ML Injection" + } + ], + "direct_transition": "Fentanyl_End", + "administration": true + }, + "Analgesic": { + "type": "Simple", + "remarks": [ + "Fentanyl, alfentanil, sufentanil, remifentanil are all used.", + "TODO: determine actual prevalence of usage. Many studies mentioned remifentanil so it is given the highest prevalence in this model." + ], + "distributed_transition": [ + { + "transition": "Remifentanil", + "distribution": 0.4 + }, + { + "transition": "Fentanyl", + "distribution": 0.2 + }, + { + "transition": "Alfentanil", + "distribution": 0.2 + }, + { + "transition": "Sufentanil", + "distribution": 0.2 + } + ] + }, + "Remifentanil": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "1729584", + "display": "remifentanil 2 MG Injection" + } + ], + "direct_transition": "Remifentanil_End", + "administration": true + }, + "Alfentanil": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "1723208", + "display": "10 ML Alfentanil 0.5 MG/ML Injection" + } + ], + "direct_transition": "Alfentanil_End", + "administration": true + }, + "Sufentanil": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "1809104", + "display": "5 ML SUFentanil 0.05 MG/ML Injection" + } + ], + "direct_transition": "Sufentanil_End", + "administration": true + }, + "Isoflurane": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 542347, + "display": "isoflurane 99.9 % Inhalation Solution" + } + ], + "direct_transition": "Isoflurane_End", + "administration": true + }, + "Volatile_Anesthetic": { + "type": "Simple", + "remarks": [ + "Isoflurane, Sevoflurane, and Desflurane are all used. Isoflurane is the least expensive. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5735481/", + "TODO: Isoflurane seems to be the most common choice in the literature, but I haven't found explicit drug utilization studies.", + "TODO: Halothane was used historically https://www.ncbi.nlm.nih.gov/books/NBK493199/", + "TODO: this article may be useful but it's not open-access: https://onlinelibrary.wiley.com/doi/full/10.1592/phco.2005.25.12.1773" + ], + "distributed_transition": [ + { + "transition": "Isoflurane", + "distribution": 0.7 + }, + { + "transition": "Desflurane", + "distribution": 0.15 + }, + { + "transition": "Sevoflurane", + "distribution": 0.15 + } + ] + }, + "Desflurane": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "562366", + "display": "desflurane 1000 MG/ML Inhalation Solution" + } + ], + "direct_transition": "Desflurane_End", + "administration": true + }, + "Sevoflurane": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 200243, + "display": "sevoflurane 1000 MG/ML Inhalation Solution" + } + ], + "direct_transition": "Sevoflurane_End", + "administration": true + }, + "Midazolam_End": { + "type": "MedicationEnd", + "direct_transition": "Induction_Medication", + "medication_order": "Midazolam" + }, + "Diazepam_End": { + "type": "MedicationEnd", + "direct_transition": "Induction_Medication", + "medication_order": "Diazepam" + }, + "Lorazepam_End": { + "type": "MedicationEnd", + "direct_transition": "Induction_Medication", + "medication_order": "Lorazepam" + }, + "Antiemetic_End": { + "type": "MedicationEnd", + "direct_transition": "Anxiolytic", + "medication_order": "Antiemetic" + }, + "Induction_Medication_End": { + "type": "MedicationEnd", + "direct_transition": "Paralytic", + "medication_order": "Induction_Medication" + }, + "Paralytic_End": { + "type": "MedicationEnd", + "direct_transition": "Intubation", + "medication_order": "Paralytic" + }, + "Isoflurane_End": { + "type": "MedicationEnd", + "direct_transition": "Analgesic", + "medication_order": "Isoflurane" + }, + "Desflurane_End": { + "type": "MedicationEnd", + "direct_transition": "Analgesic", + "medication_order": "Desflurane" + }, + "Sevoflurane_End": { + "type": "MedicationEnd", + "direct_transition": "Analgesic", + "medication_order": "Sevoflurane" + }, + "Fentanyl_End": { + "type": "MedicationEnd", + "direct_transition": "Terminal", + "medication_order": "Fentanyl" + }, + "Remifentanil_End": { + "type": "MedicationEnd", + "direct_transition": "Terminal", + "medication_order": "Remifentanil" + }, + "Alfentanil_End": { + "type": "MedicationEnd", + "direct_transition": "Terminal", + "medication_order": "Alfentanil" + }, + "Sufentanil_End": { + "type": "MedicationEnd", + "direct_transition": "Terminal", + "medication_order": "Sufentanil" + }, + "Anesthesia Submodule": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "410770002", + "display": "Administration of anesthesia for procedure (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "mean": 61.7256546, + "standardDeviation": 14.82022284 + } + }, + "unit": "minutes", + "direct_transition": "Antiemetic" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/total_joint_replacement.json b/src/main/resources/modules/total_joint_replacement.json new file mode 100644 index 0000000..5ebf991 --- /dev/null +++ b/src/main/resources/modules/total_joint_replacement.json @@ -0,0 +1,414 @@ +{ + "name": "Total Joint Replacement", + "remarks": [ + "This is not a standalone module. Currently joint replacements are triggered by ", + "the 'joint_replacement' attribute set by the osteoarthritis and rheumatoid ", + "arthritis modules. Possible values for the 'joint_replacement' attribute are ", + "'hip' and 'knee'." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Joint_Replacement_Guard" + }, + "Joint_Replacement_Guard": { + "type": "Guard", + "remarks": [ + "As a side note, knee and hip replacements weren't available before the late ", + "1960's. However, since we're only applying these surgeries to subjects 50 years ", + "or older they should not occur prior to the late 1960's." + ], + "allow": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "joint_replacement", + "operator": "is not nil" + }, + { + "condition_type": "Age", + "operator": ">", + "quantity": 50, + "unit": "years" + } + ] + }, + "direct_transition": "Delay_For_Joint_Replacement" + }, + "Delay_For_Joint_Replacement": { + "type": "Delay", + "remarks": [ + "Added to stagger the date/time of the joint replacements." + ], + "range": { + "low": 0, + "high": 12, + "unit": "months" + }, + "direct_transition": "Pre_Procedure_Encounter_Reason" + }, + "Joint_Replacement_Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183495009", + "display": "Non-urgent orthopedic admission (procedure)" + } + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "joint_replacement", + "operator": "==", + "value": "knee" + }, + "transition": "Knee_Replacement_Procedure" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "joint_replacement", + "operator": "==", + "value": "hip" + }, + "transition": "Hip_Replacement_Procedure" + }, + { + "transition": "Terminal" + } + ], + "reason": "History of Joint Replacement" + }, + "Knee_Replacement_Procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "609588000", + "display": "Prosthetic total arthroplasty of knee joint (procedure)" + } + ], + "direct_transition": "Post_Op_CarePlan" + }, + "Hip_Replacement_Procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "52734007", + "display": "Total replacement of hip (procedure)" + } + ], + "direct_transition": "Post_Op_CarePlan" + }, + "Post_Op_CarePlan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "737567002", + "display": "Major surgery care management (procedure)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "91251008", + "display": "Physical therapy procedure (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "229070002", + "display": "Stretching exercises (regime/therapy)" + } + ], + "direct_transition": "Post_Op_Prescribe_Pain_Reliever", + "reason": "History of Joint Replacement" + }, + "Post_Op_Prescribe_Pain_Reliever": { + "type": "CallSubmodule", + "submodule": "medications/moderate_opioid_pain_reliever", + "direct_transition": "In_Hospital_Post_Surgery_Recovery" + }, + "In_Hospital_Post_Surgery_Recovery": { + "type": "Delay", + "range": { + "low": 3, + "high": 5, + "unit": "days" + }, + "direct_transition": "End_Encounter" + }, + "End_Encounter": { + "type": "EncounterEnd", + "distributed_transition": [ + { + "transition": "Home Health Visits", + "distribution": 0.5 + }, + { + "transition": "Delay_For_Recovery", + "distribution": 0.5 + } + ] + }, + "Delay_For_Recovery": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "distributed_transition": [ + { + "transition": "DME End", + "distribution": 0.99 + }, + { + "transition": "End_Post_Op_CarePlan", + "distribution": 0.01 + } + ] + }, + "End_Post_Op_CarePlan": { + "type": "CarePlanEnd", + "careplan": "Post_Op_CarePlan", + "conditional_transition": [ + { + "transition": "Delay_For_Post_Assessment_Knee", + "condition": { + "condition_type": "Attribute", + "attribute": "joint_replacement", + "operator": "==", + "value": "knee" + } + }, + { + "transition": "Delay_For_Post_Assessment_Hip", + "condition": { + "condition_type": "Attribute", + "attribute": "joint_replacement", + "operator": "==", + "value": "hip" + } + } + ] + }, + "Delay_Until_New_Replacement_Needed": { + "type": "Delay", + "remarks": [ + "Source: http://www.aahks.org/care-for-hips-and-knees/do-i-need-a-joint-replacement/total-knee-replacement/", + "Annual failure rate of 0.5 - 1%, or about a 3.7% chance every 5 years. Favoring the ", + "5-years timestep to reduce the number of iterations in this loop." + ], + "exact": { + "quantity": 5, + "unit": "years" + }, + "distributed_transition": [ + { + "distribution": 0.037, + "transition": "Joint_Replacement_Encounter" + }, + { + "distribution": 0.963, + "transition": "Delay_Until_New_Replacement_Needed" + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Delay_After_Assessments": { + "type": "Delay", + "direct_transition": "History of Joint Replacement", + "range": { + "low": 0, + "high": 90, + "unit": "days" + } + }, + "Delay_After_Assessments_2": { + "type": "Delay", + "direct_transition": "History of Joint Replacement", + "range": { + "low": 0, + "high": 180, + "unit": "days" + } + }, + "Pre_Procedure_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for check up (procedure)" + } + ], + "direct_transition": "Functional_Status_Assessments", + "reason": "pre_procedure_encounter_reason" + }, + "Pre_Procedure_Encounter_End": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Delay_After_Assessments", + "condition": { + "condition_type": "Attribute", + "attribute": "joint_replacement", + "operator": "==", + "value": "knee" + } + }, + { + "transition": "Delay_After_Assessments_2", + "condition": { + "condition_type": "Attribute", + "attribute": "joint_replacement", + "operator": "==", + "value": "hip" + } + } + ] + }, + "Functional_Status_Assessments": { + "type": "CallSubmodule", + "submodule": "total_joint_replacement/functional_status_assessments", + "direct_transition": "Pre_Procedure_Encounter_End" + }, + "Post_Procedure_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185389009", + "display": "Follow-up visit (procedure)" + } + ], + "direct_transition": "Functional_Status_Assessments_2", + "reason": "History of Joint Replacement" + }, + "Delay_For_Post_Assessment_Hip": { + "type": "Delay", + "direct_transition": "Post_Procedure_Encounter", + "range": { + "low": 30, + "high": 150, + "unit": "days" + }, + "remarks": [ + "Obtained from:", + "https://ecqi.healthit.gov/system/files/ecqm/measures/CMS56v5_2.html", + "1 month recovery subtracted from overall delay time" + ] + }, + "Delay_For_Post_Assessment_Knee": { + "type": "Delay", + "direct_transition": "Post_Procedure_Encounter", + "range": { + "low": 240, + "high": 335, + "unit": "days" + }, + "remarks": [ + "Obtained from:", + "https://ecqi.healthit.gov/ecqm/measures/cms066v7", + "1 month recovery time subtracted from overall delay time", + "" + ] + }, + "Functional_Status_Assessments_2": { + "type": "CallSubmodule", + "submodule": "total_joint_replacement/functional_status_assessments", + "direct_transition": "Post_Procedure_Encounter_End" + }, + "Post_Procedure_Encounter_End": { + "type": "EncounterEnd", + "direct_transition": "Delay_Until_New_Replacement_Needed" + }, + "Home Health Visits": { + "type": "SetAttribute", + "attribute": "home_health", + "value": true, + "conditional_transition": [ + { + "transition": "Home Health Reason Knee", + "condition": { + "condition_type": "Attribute", + "attribute": "joint_replacement", + "operator": "==", + "value": "knee" + } + }, + { + "transition": "Home Health Reason Hip", + "condition": { + "condition_type": "Attribute", + "attribute": "joint_replacement", + "operator": "==", + "value": "hip" + } + } + ] + }, + "DME End": { + "type": "DeviceEnd", + "direct_transition": "End Wheelchair", + "referenced_by_attribute": "osteoarthritis_dme" + }, + "End Wheelchair": { + "type": "CallSubmodule", + "submodule": "dme/wheelchair_end", + "direct_transition": "End_Post_Op_CarePlan" + }, + "History of Joint Replacement": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "161679004", + "display": "History of artificial joint (situation)" + } + ], + "direct_transition": "Joint_Replacement_Encounter", + "target_encounter": "Joint_Replacement_Encounter" + }, + "Pre_Procedure_Encounter_Reason": { + "type": "SetAttribute", + "attribute": "pre_procedure_encounter_reason", + "direct_transition": "Pre_Procedure_Encounter", + "value_code": { + "system": "SNOMED-CT", + "code": "110466009", + "display": "Pre-surgery evaluation (procedure)" + } + }, + "Home Health Reason Knee": { + "type": "SetAttribute", + "attribute": "home_health_reason", + "direct_transition": "Delay_For_Recovery", + "value_code": { + "system": "SNOMED-CT", + "code": "609588000", + "display": "Prosthetic total arthroplasty of knee joint (procedure)" + } + }, + "Home Health Reason Hip": { + "type": "SetAttribute", + "attribute": "home_health_reason", + "direct_transition": "Delay_For_Recovery", + "value_code": { + "system": "SNOMED-CT", + "code": "52734007", + "display": "Total replacement of hip (procedure)" + } + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/total_joint_replacement/functional_status_assessments.json b/src/main/resources/modules/total_joint_replacement/functional_status_assessments.json new file mode 100644 index 0000000..96ada6e --- /dev/null +++ b/src/main/resources/modules/total_joint_replacement/functional_status_assessments.json @@ -0,0 +1,850 @@ +{ + "name": "Functional Status Assessments", + "remarks": [ + "This is a submodule that includes the possible assessments a patient will go through prior to and following either a total knee replacement or a total hip replacement.\n" + ], + "states": { + "KOOS_Total_Assessment": { + "type": "MultiObservation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "72091-2", + "display": "Knee injury and Osteoarthritis Outcome Score [KOOS]" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72101-9", + "display": "Symptoms score [KOOS]" + } + ], + "range": { + "low": 0, + "high": 100 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72102-7", + "display": "Pain score [KOOS]" + } + ], + "range": { + "low": 0, + "high": 100 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72100-1", + "display": "Activities of daily living score [KOOS]" + } + ], + "range": { + "low": 0, + "high": 100 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72099-5", + "display": "Sport-recreation score [KOOS]" + } + ], + "range": { + "low": 0, + "high": 100 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72098-7", + "display": "Quality of life score [KOOS]" + } + ], + "range": { + "low": 0, + "high": 100 + } + } + ], + "direct_transition": "KOOS_Attribute_Set", + "remarks": [ + "Five different subscales are scored separately: KOOS Pain (9 items); KOOS Symptoms (7 items); KOOS ADL (17 items); KOOS Sport/Rec (5 items); KOOS QOL (4 items). Each item has five possible answer options scored from 0 (No Problems) to 4 (Extreme Problems), and the scores are transformed to a 0–100 scale, with zero representing extreme knee problems and 100 representing no knee problems.", + "http://www.koos.nu" + ] + }, + "PROMIS10_Total_Assessment": { + "type": "MultiObservation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "61576-5", + "display": "PROMIS short form - global - version 1.1" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "71972-4", + "display": "PROMIS-10 Global Physical Health (GPH) score" + } + ], + "range": { + "low": 4, + "high": 20 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "71970-8", + "display": "PROMIS-10 Global Mental Health (GMH) score" + } + ], + "range": { + "low": 4, + "high": 20 + } + } + ], + "direct_transition": "PROMIS10_Attribute_Set", + "remarks": [ + "Two different subscales are scored separately: Global Mental Health and Global Physical Health. Each have a score between 4 - 20." + ] + }, + "HOOS_Total_Assessment": { + "type": "MultiObservation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "72092-0", + "display": "Hip Dysfunction and Osteoarthritis Outcome Score [HOOS]" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72096-1", + "display": "Symptoms score [HOOS]" + } + ], + "range": { + "low": 0, + "high": 100 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72097-9", + "display": "Pain score [HOOS]" + } + ], + "range": { + "low": 0, + "high": 100 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72095-3", + "display": "Activities of daily living score [HOOS]" + } + ], + "range": { + "low": 0, + "high": 100 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72094-6", + "display": "Sport-recreation score [HOOS]" + } + ], + "range": { + "low": 0, + "high": 100 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72093-8", + "display": "Quality of life score [HOOS]" + } + ], + "range": { + "low": 0, + "high": 100 + } + } + ], + "direct_transition": "HOOS_Attribute_Set", + "remarks": [ + "Five different subscales are scored separately: HOOS Pain (9 items); HOOS Symptoms (7 items); HOOS ADL (17 items); HOOS Sport/Rec (5 items); HOOS QOL (4 items). The scores are transformed to a 0–100 scale, with zero representing extreme knee problems and 100 representing no knee problems.", + "http://www.koos.nu" + ] + }, + "Joint_Replacement_Assessment_Terminal": { + "type": "Terminal" + }, + "VR36_Total_Assessment": { + "type": "MultiObservation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "71933-6", + "display": "Veterans Rand health survey - 36 item (VR-36)" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "71973-2", + "display": "VR-36 Mental health (MH) score - oblique method" + } + ], + "range": { + "low": 5, + "high": 30 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "71974-0", + "display": "VR-36 Role emotion (RE) score - oblique method" + } + ], + "range": { + "low": 3, + "high": 15 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "71975-7", + "display": "VR-36 Social functioning (SF) score - oblique method" + } + ], + "range": { + "low": 2, + "high": 10 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "71976-5", + "display": "VR-36 Vitality (VT) score - oblique method" + } + ], + "range": { + "low": 4, + "high": 24 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "71977-3", + "display": "VR-36 General health (GH) score - oblique method" + } + ], + "range": { + "low": 5, + "high": 25 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "71978-1", + "display": "VR-36 Bodily pain (BP) score - oblique method" + } + ], + "range": { + "low": 2, + "high": 12 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "71979-9", + "display": "VR-36 Role physical (RP) score - oblique method" + } + ], + "range": { + "low": 4, + "high": 20 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "71980-7", + "display": "VR-36 Physical functioning (PF) score - oblique method" + } + ], + "range": { + "low": 10, + "high": 30 + } + } + ], + "direct_transition": "VR36_Attribute_Set", + "remarks": [ + "Eight different subscales are scored separately: Mental Health, Role Emotion, Social Functioning, Vitality, General Health, Bodily Pain, Role Physical, and Physical Functioning. Each have a score between 4 - 20." + ] + }, + "PROMIS29_Total_Assessment": { + "type": "MultiObservation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "62337-1", + "display": "PROMIS item bank - 29 profile" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "71956-7", + "display": "PROMIS-29 Sleep disturbance score" + } + ], + "range": { + "low": 4, + "high": 20 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "71958-3", + "display": "PROMIS-29 Satisfaction with participation in social roles score" + } + ], + "range": { + "low": 4, + "high": 20 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "71960-9", + "display": "PROMIS-29 Physical function score" + } + ], + "range": { + "low": 4, + "high": 20 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "71962-5", + "display": "PROMIS-29 Pain interference score" + } + ], + "exact": { + "quantity": 1 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "71964-1", + "display": "PROMIS-29 Fatigue score" + } + ], + "range": { + "low": 4, + "high": 20 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "71966-6", + "display": "PROMIS-29 Depression score" + } + ], + "range": { + "low": 4, + "high": 20 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "71968-2", + "display": "PROMIS-29 Anxiety score" + } + ], + "range": { + "low": 4, + "high": 20 + } + } + ], + "direct_transition": "PROMIS29_Attribute_Set", + "remarks": [ + "Seven different subscales are scored separately: Sleep Disturbance, Satisfaction with Participation in Social Roles,", + "Physical Function, Pain Interference, Fatigue, Depression, and Anxiety. Each have a score between 4 - 20." + ] + }, + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Perform_Functional_Status_Assessment_Knee", + "condition": { + "condition_type": "Attribute", + "attribute": "joint_replacement", + "operator": "==", + "value": "knee" + } + }, + { + "transition": "Perform_Functional_Status_Assessment_Hip", + "condition": { + "condition_type": "Attribute", + "attribute": "joint_replacement", + "operator": "==", + "value": "hip" + } + }, + { + "transition": "Joint_Replacement_Assessment_Terminal" + } + ] + }, + "Perform_Functional_Status_Assessment_Knee": { + "type": "Simple", + "remarks": [ + "Possible assessment options obtained from:", + "https://ecqi.healthit.gov/ecqm/measures/cms066v7" + ], + "conditional_transition": [ + { + "transition": "KOOS_Total_Assessment", + "condition": { + "condition_type": "Attribute", + "attribute": "assessment_done", + "operator": "==", + "value": "KOOS" + } + }, + { + "transition": "PROMIS10_Total_Assessment", + "condition": { + "condition_type": "Attribute", + "attribute": "assessment_done", + "operator": "==", + "value": "PROMIS-10" + } + }, + { + "transition": "VR12_Total_Assessment", + "condition": { + "condition_type": "Attribute", + "attribute": "assessment_done", + "operator": "==", + "value": "VR-12" + } + }, + { + "transition": "First_FSA_Knee" + } + ] + }, + "Perform_Functional_Status_Assessment_Hip": { + "type": "Simple", + "remarks": [ + "Possible assessment options obtained from:", + "https://ecqi.healthit.gov/ecqm/measures/cms056v5" + ], + "conditional_transition": [ + { + "transition": "HOOS_Total_Assessment", + "condition": { + "condition_type": "Attribute", + "attribute": "assessment_done", + "operator": "==", + "value": "HOOS" + } + }, + { + "transition": "PROMIS10_Total_Assessment", + "condition": { + "condition_type": "Attribute", + "attribute": "assessment_done", + "operator": "==", + "value": "PROMIS-10" + } + }, + { + "transition": "PROMIS29_Total_Assessment", + "condition": { + "condition_type": "Attribute", + "attribute": "assessment_done", + "operator": "==", + "value": "PROMIS-29" + } + }, + { + "transition": "VR12_Total_Assessment", + "condition": { + "condition_type": "Attribute", + "attribute": "assessment_done", + "operator": "==", + "value": "VR-12" + } + }, + { + "transition": "VR36_Total_Assessment", + "condition": { + "condition_type": "Attribute", + "attribute": "assessment_done", + "operator": "==", + "value": "VR-36" + } + }, + { + "transition": "First_FSA_Hip" + } + ] + }, + "VR12_Total_Assessment": { + "type": "MultiObservation", + "category": "survey", + "codes": [ + { + "system": "LOINC", + "code": "71934-4", + "display": "Veterans Rand health survey - 12 item (VR-12)" + } + ], + "observations": [ + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72009-4", + "display": "VR-12 Mental health (MH) score - oblique method" + } + ], + "range": { + "low": 2, + "high": 12 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72010-2", + "display": "VR-12 Role emotion (RE) score - oblique method" + } + ], + "range": { + "low": 2, + "high": 10 + } + }, + { + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72011-0", + "display": "VR-12 Social functioning (SF) score - oblique method" + } + ], + "range": { + "low": 1, + "high": 5 + } + }, + { + "type": "Observation", + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72012-8", + "display": "VR-12 Vitality (VT) score - oblique method" + } + ], + "range": { + "low": 1, + "high": 6 + } + }, + { + "type": "Observation", + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72013-6", + "display": "VR-12 General health (GH) score - oblique method" + } + ], + "range": { + "low": 1, + "high": 5 + } + }, + { + "type": "Observation", + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72014-4", + "display": "VR-12 Bodily pain (BP) score - oblique method" + } + ], + "range": { + "low": 1, + "high": 5 + } + }, + { + "type": "Observation", + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72015-1", + "display": "VR-12 Role physical (RP) score - oblique method" + } + ], + "range": { + "low": 2, + "high": 10 + } + }, + { + "type": "Observation", + "category": "survey", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72016-9", + "display": "VR-12 Physical functioning (PF) score - oblique method" + } + ], + "range": { + "low": 2, + "high": 6 + } + } + ], + "direct_transition": "VR12_Attribute_Set", + "remarks": [ + "Eight different subscales are scored separately: Mental Health, Role Emotion, Social Functioning, Vitality, General Health, Bodily Pain, Role Physical, and Physical Functioning. Each have a score between 4 - 20." + ] + }, + "KOOS_Attribute_Set": { + "type": "SetAttribute", + "attribute": "assessment_done", + "direct_transition": "FSA_Performed", + "value": "KOOS" + }, + "PROMIS10_Attribute_Set": { + "type": "SetAttribute", + "attribute": "assessment_done", + "direct_transition": "FSA_Performed", + "value": "PROMIS-10" + }, + "PROMIS29_Attribute_Set": { + "type": "SetAttribute", + "attribute": "assessment_done", + "direct_transition": "FSA_Performed", + "value": "PROMIS-29" + }, + "VR12_Attribute_Set": { + "type": "SetAttribute", + "attribute": "assessment_done", + "direct_transition": "FSA_Performed", + "value": "VR-12" + }, + "VR36_Attribute_Set": { + "type": "SetAttribute", + "attribute": "assessment_done", + "direct_transition": "FSA_Performed", + "value": "VR-36" + }, + "HOOS_Attribute_Set": { + "type": "SetAttribute", + "attribute": "assessment_done", + "direct_transition": "FSA_Performed", + "value": "HOOS" + }, + "FSA_Performed": { + "type": "Simple", + "direct_transition": "Joint_Replacement_Assessment_Terminal" + }, + "First_FSA_Knee": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "KOOS_Total_Assessment", + "distribution": 0.34 + }, + { + "transition": "PROMIS10_Total_Assessment", + "distribution": 0.33 + }, + { + "transition": "VR12_Total_Assessment", + "distribution": 0.33 + } + ] + }, + "First_FSA_Hip": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "HOOS_Total_Assessment", + "distribution": 0.2 + }, + { + "transition": "PROMIS10_Total_Assessment", + "distribution": 0.2 + }, + { + "transition": "PROMIS29_Total_Assessment", + "distribution": 0.2 + }, + { + "transition": "VR12_Total_Assessment", + "distribution": 0.2 + }, + { + "transition": "VR36_Total_Assessment", + "distribution": 0.2 + } + ] + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/trigger_bone_marrow_transplant.json b/src/main/resources/modules/trigger_bone_marrow_transplant.json new file mode 100644 index 0000000..c00259d --- /dev/null +++ b/src/main/resources/modules/trigger_bone_marrow_transplant.json @@ -0,0 +1,125 @@ +{ + "name": "trigger_bone_marrow_transplant", + "remarks": [ + "The purpose of this module is to drive bone marrow and stem cell transplants.", + "", + "Multiple myeloma is a relatively uncommon cancer. In the United States, the lifetime risk of getting multiple myeloma is 1 in 132 (0.76%).", + "", + "https://www.cancer.org/cancer/types/multiple-myeloma/about/key-statistics.html", + "", + "Approximately 1.6 percent of men and women will be diagnosed with leukemia at some point during their lifetime, based on 2017–2019 data.", + "", + "https://seer.cancer.gov/statfacts/html/leuks.html", + "" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Delay" + }, + "Terminal": { + "type": "Terminal" + }, + "Multiple Myeloma": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "109989006", + "display": "Multiple myeloma (disorder)" + } + ], + "direct_transition": "Admission", + "assign_to_attribute": "trigger_reason", + "target_encounter": "Admission" + }, + "Check Multiple Myeloma": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Multiple Myeloma", + "distribution": 0.0076 + }, + { + "transition": "Check Leukemia", + "distribution": 0.9924 + } + ] + }, + "Check Leukemia": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Leukemia", + "distribution": 0.016 + }, + { + "transition": "Terminal", + "distribution": 0.984 + } + ] + }, + "Leukemia": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "93143009", + "display": "Leukemia, disease (disorder)" + } + ], + "direct_transition": "Admission", + "assign_to_attribute": "trigger_reason", + "target_encounter": "Admission" + }, + "Admission": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "trigger_reason", + "telemedicine_possibility": "none", + "codes": [ + { + "system": "SNOMED-CT", + "code": "308251003", + "display": "Admission to clinical oncology department (procedure)" + } + ], + "direct_transition": "Stem Cells" + }, + "Delay": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 70, + "low": 65 + } + }, + "unit": "years", + "direct_transition": "Check Multiple Myeloma" + }, + "Stem Cells": { + "type": "SetAttribute", + "attribute": "bone_marrow", + "direct_transition": "Care", + "value": true + }, + "Care": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 5, + "low": 1 + } + }, + "unit": "days", + "direct_transition": "Discharge" + }, + "Discharge": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/unspecified_diabetes_mellitus.json b/src/main/resources/modules/unspecified_diabetes_mellitus.json new file mode 100644 index 0000000..615086a --- /dev/null +++ b/src/main/resources/modules/unspecified_diabetes_mellitus.json @@ -0,0 +1,557 @@ +{ + "name": "Unspecified diabetes mellitus", + "remarks": [ + "This module models unspecified diabetes mellitus (ICD-10 code: E14), representing cases where the type of diabetes is not clearly specified.", + "Prevalence data is based on CDC National Diabetes Statistics Report and other epidemiological studies.", + "The module includes initial diagnosis, common symptoms, complications, and management approaches for unspecified diabetes." + ], + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Female", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "Male", + "condition": { + "condition_type": "Gender", + "gender": "M" + } + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Female": { + "type": "Simple", + "remarks": [ + "Diabetes prevalence varies by gender and race/ethnicity.", + "Source: CDC National Diabetes Statistics Report, 2020" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Race", + "race": "Native" + }, + "distributions": [ + { + "transition": "Female_Diabetes_Risk", + "distribution": 0.146 + }, + { + "transition": "Terminal", + "distribution": 0.854 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Black" + }, + "distributions": [ + { + "transition": "Female_Diabetes_Risk", + "distribution": 0.123 + }, + { + "transition": "Terminal", + "distribution": 0.877 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Hispanic" + }, + "distributions": [ + { + "transition": "Female_Diabetes_Risk", + "distribution": 0.118 + }, + { + "transition": "Terminal", + "distribution": 0.882 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Asian" + }, + "distributions": [ + { + "transition": "Female_Diabetes_Risk", + "distribution": 0.095 + }, + { + "transition": "Terminal", + "distribution": 0.905 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "White" + }, + "distributions": [ + { + "transition": "Female_Diabetes_Risk", + "distribution": 0.075 + }, + { + "transition": "Terminal", + "distribution": 0.925 + } + ] + } + ] + }, + "Male": { + "type": "Simple", + "remarks": [ + "Diabetes prevalence varies by gender and race/ethnicity.", + "Source: CDC National Diabetes Statistics Report, 2020" + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Race", + "race": "Native" + }, + "distributions": [ + { + "transition": "Male_Diabetes_Risk", + "distribution": 0.158 + }, + { + "transition": "Terminal", + "distribution": 0.842 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Black" + }, + "distributions": [ + { + "transition": "Male_Diabetes_Risk", + "distribution": 0.132 + }, + { + "transition": "Terminal", + "distribution": 0.868 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Hispanic" + }, + "distributions": [ + { + "transition": "Male_Diabetes_Risk", + "distribution": 0.125 + }, + { + "transition": "Terminal", + "distribution": 0.875 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "Asian" + }, + "distributions": [ + { + "transition": "Male_Diabetes_Risk", + "distribution": 0.105 + }, + { + "transition": "Terminal", + "distribution": 0.895 + } + ] + }, + { + "condition": { + "condition_type": "Race", + "race": "White" + }, + "distributions": [ + { + "transition": "Male_Diabetes_Risk", + "distribution": 0.085 + }, + { + "transition": "Terminal", + "distribution": 0.915 + } + ] + } + ] + }, + "Female_Diabetes_Risk": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Age_20-29", + "distribution": 0.05 + }, + { + "transition": "Age_30-39", + "distribution": 0.1 + }, + { + "transition": "Age_40-49", + "distribution": 0.2 + }, + { + "transition": "Age_50-59", + "distribution": 0.3 + }, + { + "transition": "Age_60-74", + "distribution": 0.35 + } + ], + "remarks": [ + "Age distribution for diabetes onset in females", + "Source: https://www.cdc.gov/diabetes/data/statistics-report/index.html" + ] + }, + "Male_Diabetes_Risk": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Age_20-29", + "distribution": 0.04 + }, + { + "transition": "Age_30-39", + "distribution": 0.09 + }, + { + "transition": "Age_40-49", + "distribution": 0.22 + }, + { + "transition": "Age_50-59", + "distribution": 0.32 + }, + { + "transition": "Age_60-74", + "distribution": 0.33 + } + ], + "remarks": [ + "Age distribution for diabetes onset in males", + "Source: https://www.cdc.gov/diabetes/data/statistics-report/index.html" + ] + }, + "Age_20-29": { + "type": "Delay", + "direct_transition": "Diabetes_Onset", + "range": { + "low": 20, + "high": 29, + "unit": "years" + } + }, + "Age_30-39": { + "type": "Delay", + "direct_transition": "Diabetes_Onset", + "range": { + "low": 30, + "high": 39, + "unit": "years" + } + }, + "Age_40-49": { + "type": "Delay", + "direct_transition": "Diabetes_Onset", + "range": { + "low": 40, + "high": 49, + "unit": "years" + } + }, + "Age_50-59": { + "type": "Delay", + "direct_transition": "Diabetes_Onset", + "range": { + "low": 50, + "high": 59, + "unit": "years" + } + }, + "Age_60-74": { + "type": "Delay", + "direct_transition": "Diabetes_Onset", + "range": { + "low": 60, + "high": 74, + "unit": "years" + } + }, + "Diabetes_Onset": { + "type": "ConditionOnset", + "target_encounter": "Diabetes_Diagnosis_Encounter", + "codes": [ + { + "system": "ICD-10-CM", + "code": "E14", + "display": "Unspecified diabetes mellitus" + }, + { + "system": "SNOMED-CT", + "code": "73211009", + "display": "Diabetes mellitus (disorder)" + } + ], + "direct_transition": "Symptom_Polydipsia" + }, + "Symptom_Polydipsia": { + "type": "Symptom", + "symptom": "Polydipsia", + "range": { + "low": 0, + "high": 100 + }, + "direct_transition": "Symptom_Polyuria" + }, + "Symptom_Polyuria": { + "type": "Symptom", + "symptom": "Polyuria", + "range": { + "low": 0, + "high": 100 + }, + "direct_transition": "Symptom_Fatigue" + }, + "Symptom_Fatigue": { + "type": "Symptom", + "symptom": "Fatigue", + "range": { + "low": 0, + "high": 100 + }, + "direct_transition": "Symptom_Blurred_Vision" + }, + "Symptom_Blurred_Vision": { + "type": "Symptom", + "symptom": "Blurred Vision", + "range": { + "low": 0, + "high": 100 + }, + "direct_transition": "Diabetes_Diagnosis_Encounter" + }, + "Diabetes_Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for diabetes mellitus" + } + ], + "direct_transition": "Diabetes_Lab_Panel" + }, + "Diabetes_Lab_Panel": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24331-1", + "display": "Diabetes diagnostic panel" + } + ], + "observations": [ + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "2339-0", + "display": "Glucose [Mass/volume] in Blood" + } + ], + "range": { + "low": 140, + "high": 400 + } + }, + { + "category": "laboratory", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "4548-4", + "display": "Hemoglobin A1c/Hemoglobin.total in Blood" + } + ], + "range": { + "low": 6.5, + "high": 12 + } + } + ], + "direct_transition": "Prescribe_Metformin" + }, + "Prescribe_Metformin": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": "860975", + "display": "Metformin hydrochloride 500 MG Oral Tablet" + } + ], + "reason": "Unspecified diabetes mellitus", + "direct_transition": "Diabetes_Follow_Up" + }, + "Diabetes_Follow_Up": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698360004", + "display": "Diabetes self management plan" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "308335008", + "display": "Patient education about diabetes" + }, + { + "system": "SNOMED-CT", + "code": "229062002", + "display": "Exercise therapy" + }, + { + "system": "SNOMED-CT", + "code": "226060000", + "display": "Diabetic diet" + } + ], + "direct_transition": "Complication_Decision" + }, + "Complication_Decision": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Develop_Neuropathy", + "distribution": 0.2 + }, + { + "transition": "Develop_Nephropathy", + "distribution": 0.15 + }, + { + "transition": "Develop_Retinopathy", + "distribution": 0.15 + }, + { + "transition": "No_Complications", + "distribution": 0.5 + } + ] + }, + "Develop_Neuropathy": { + "type": "Delay", + "range": { + "low": 3, + "high": 10, + "unit": "years" + }, + "direct_transition": "Diabetic_Neuropathy" + }, + "Diabetic_Neuropathy": { + "type": "ConditionOnset", + "target_encounter": "Neuropathy_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "230572002", + "display": "Diabetic neuropathy" + } + ], + "direct_transition": "Neuropathy_Encounter" + }, + "Neuropathy_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for diabetic neuropathy" + } + ], + "direct_transition": "Ongoing_Diabetes_Management" + }, + "Develop_Nephropathy": { + "type": "Delay", + "range": { + "low": 5, + "high": 15, + "unit": "years" + }, + "direct_transition": "Diabetic_Nephropathy" + }, + "Diabetic_Nephropathy": { + "type": "ConditionOnset", + "target_encounter": "Nephropathy_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "127013003", + "display": "Diabetic nephropathy" + } + ], + "direct_transition": "Nephropathy_Encounter" + }, + "Nephropathy_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185349003", + "display": "Encounter for diabetic nephropathy" + } + ], + "direct_transition": "Ongoing_Diabetes_Management" + }, + "Develop_Retinopathy": { + "type": "Delay", + "range": { + "low": 4, + "high": 12, + "unit": "years" + }, + "direct_transition": "Diabetic_Retinopathy" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/urinary_tract_infections.json b/src/main/resources/modules/urinary_tract_infections.json new file mode 100644 index 0000000..3c8e37f --- /dev/null +++ b/src/main/resources/modules/urinary_tract_infections.json @@ -0,0 +1,278 @@ +{ + "name": "Urinary Tract Infections", + "remarks": [ + "These are quite common in women but rare in men. Most of the incidence statistics I got from the NIH: ", + "https://www.nichd.nih.gov/health/topics/urinary/conditioninfo/Pages/affected.aspx", + "Incidence for recurrent UTIs: ", + "https://www.kidney.org/sites/default/files/uti.pdf", + "Incidence for men: ", + "https://www.betterhealth.vic.gov.au/health/conditionsandtreatments/urinary-tract-infections-uti", + "UTIs are practically nonexistent in young men but can occur in elderly men.", + "The NIH claims 8.1M doctor visits each year are because of UTIs. However, some of these could be recurrent ", + "visits for the same woman. Estimates show about a quarter of UTIs are recurring, so more realistically ", + "about 75% of those visits to the physician are unique patients. I therefore estimate (0.75 * 8.1M) = 6.08M ", + "unique patients get UTIs every year, or about 1.9% of the population (out of 320M Americans in 2016).", + "Several risk factors also increase the likelihood of a UTI including diabetes and obseity. Obesity doubles ", + "the risk for a UTI in women. For now these are not represented in this module." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Wait Unit 15" + }, + "Terminal": { + "type": "Terminal" + }, + "Wait Unit 15": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 15, + "unit": "years", + "value": 0 + }, + "direct_transition": "Urinary Tract Infection" + }, + "Urinary Tract Infection": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Cystitis", + "default_probability": 0.1, + "lookup_table_name": "uti.csv" + }, + { + "transition": "Pyelonephritis", + "default_probability": 0.1, + "lookup_table_name": "uti.csv" + }, + { + "transition": "Wait_for_UTI", + "default_probability": 0.8, + "lookup_table_name": "uti.csv" + } + ] + }, + "Cystitis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "307426000", + "display": "Acute infective cystitis (disorder)" + } + ], + "direct_transition": "Care Pathways", + "assign_to_attribute": "uti" + }, + "Pyelonephritis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "45816000", + "display": "Pyelonephritis (disorder)" + } + ], + "direct_transition": "Care Pathways", + "assign_to_attribute": "uti" + }, + "Care Pathways": { + "type": "Simple", + "type_of_care_transition": { + "ambulatory": "Ambulatory", + "emergency": "ED", + "telemedicine": "Telemedicine" + } + }, + "Wait_for_UTI": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 12, + "low": 0 + } + }, + "unit": "months", + "direct_transition": "Urinary Tract Infection" + }, + "Telemedicine": { + "type": "Simple", + "direct_transition": "UTI Telemed Sub" + }, + "Ambulatory": { + "type": "Simple", + "direct_transition": "UTI Ambulatory Sub" + }, + "ED": { + "type": "Simple", + "direct_transition": "UTI ED Sub" + }, + "UTI Telemed Sub": { + "type": "CallSubmodule", + "submodule": "uti/telemed_path", + "direct_transition": "Time Delay" + }, + "UTI Ambulatory Sub": { + "type": "CallSubmodule", + "submodule": "uti/ambulatory_path", + "direct_transition": "Time Delay" + }, + "UTI ED Sub": { + "type": "CallSubmodule", + "submodule": "uti/ed_path", + "direct_transition": "Time Delay" + }, + "Time Delay": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 48, + "low": 0 + } + }, + "unit": "hours", + "direct_transition": "Clear ESI" + }, + "End UTI Tx": { + "type": "MedicationEnd", + "referenced_by_attribute": "UTI_Tx", + "distributed_transition": [ + { + "transition": "End UTI", + "distribution": 0.86 + }, + { + "transition": "Care Pathways", + "distribution": 0.14 + } + ] + }, + "Clear ESI": { + "type": "SetAttribute", + "attribute": "esi", + "direct_transition": "Clear BldCx" + }, + "Clear BldCx": { + "type": "SetAttribute", + "attribute": "UTI_Positive_BldCx", + "direct_transition": "Clear UTI ED" + }, + "Clear UTI ED": { + "type": "SetAttribute", + "attribute": "UTI_ED", + "direct_transition": "Clear UTI_Care_Referral" + }, + "Clear UTI_Care_Referral": { + "type": "SetAttribute", + "attribute": "UTI_Care_Referral", + "direct_transition": "Clear UTI_Lab_SendOut" + }, + "Clear UTI_Lab_SendOut": { + "type": "SetAttribute", + "attribute": "UTI_Lab_SendOut", + "direct_transition": "Clear GU_Pregnancy_Check" + }, + "Clear GU_Pregnancy_Check": { + "type": "SetAttribute", + "attribute": "GU_Pregnancy_Check", + "direct_transition": "Clear UTI_Labs" + }, + "Clear UTI_Labs": { + "type": "SetAttribute", + "attribute": "UTI_Labs", + "direct_transition": "Clear UTI_Bacteria" + }, + "Clear UTI_Bacteria": { + "type": "SetAttribute", + "attribute": "UTI_Bacteria", + "direct_transition": "Clear UTI_Telemed" + }, + "Clear UTI_Telemed": { + "type": "SetAttribute", + "attribute": "UTI_Telemed", + "direct_transition": "Clear UTI_Ambulatory" + }, + "Clear UTI_Ambulatory": { + "type": "SetAttribute", + "attribute": "UTI_Ambulatory", + "direct_transition": "End UTI Tx" + }, + "End UTI": { + "type": "ConditionEnd", + "referenced_by_attribute": "uti", + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "Recurrence Delay", + "distribution": 0.096 + }, + { + "transition": "Terminal", + "distribution": 0.9039999999999999 + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "transition": "Recurrence Delay", + "distribution": 0.05 + }, + { + "transition": "Terminal", + "distribution": 0.95 + } + ] + } + ] + }, + "Recurrence Delay": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 6, + "low": 3 + } + }, + "unit": "months", + "direct_transition": "Recurrent UTI" + }, + "Recurrent UTI": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "197927001", + "display": "Recurrent urinary tract infection (disorder)" + } + ], + "lookup_table_transition": [ + { + "transition": "Cystitis", + "default_probability": 0.9, + "lookup_table_name": "uti_recurrence.csv" + }, + { + "transition": "Pyelonephritis", + "default_probability": 0.1, + "lookup_table_name": "uti_recurrence.csv" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/uti/abx_tx.json b/src/main/resources/modules/uti/abx_tx.json new file mode 100644 index 0000000..a397005 --- /dev/null +++ b/src/main/resources/modules/uti/abx_tx.json @@ -0,0 +1,1046 @@ +{ + "name": "Abx_Tx", + "states": { + "Initial": { + "type": "Initial", + "conditional_transition": [ + { + "transition": "Female", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "Male", + "condition": { + "condition_type": "Gender", + "gender": "M" + } + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Male": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Male with Pyelo", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "45816000", + "display": "Pyelonephritis (disorder)" + } + ] + } + }, + { + "transition": "Male with Cystitis", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "307426000", + "display": "Acute infective cystitis (disorder)" + } + ] + } + } + ] + }, + "Female": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Pregnant Female with Cystitis", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "GU_pregnancy_check", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "pregnancy", + "operator": "==", + "value": true + } + ] + } + }, + { + "transition": "Female_with_Cystitis", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "307426000", + "display": "Acute infective cystitis (disorder)" + } + ] + } + }, + { + "transition": "Female with Pyelo", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "45816000", + "display": "Pyelonephritis (disorder)" + } + ] + } + } + ] + }, + "Male with Pyelo": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": "7984", + "display": "Penicillin V" + } + ] + }, + { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": 10831, + "display": "Sulfamethoxazole / Trimethoprim" + } + ] + } + ] + }, + "distributions": [ + { + "transition": "Cipro_500 7 day", + "distribution": 0.55 + }, + { + "transition": "Cepha 10 day", + "distribution": 0.24 + }, + { + "transition": "Cefpo 200", + "distribution": 0.20999999999999996 + } + ] + }, + { + "distributions": [ + { + "transition": "Sulfa 10 day", + "distribution": 0.05 + }, + { + "transition": "AmxClav 875, 10 day", + "distribution": 0.05 + }, + { + "transition": "Cipro_500 7 day", + "distribution": 0.5 + }, + { + "transition": "Cepha 5 day", + "distribution": 0.22 + }, + { + "transition": "Cefpo 200", + "distribution": 0.18 + } + ] + } + ] + }, + "Male with Cystitis": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "At Least", + "minimum": 1, + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 4 + }, + { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": "7984", + "display": "Penicillin V" + } + ] + }, + { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": 10831, + "display": "Sulfamethoxazole / Trimethoprim" + } + ] + } + ] + }, + "distributions": [ + { + "transition": "Cepha 7 day", + "distribution": 0.1667 + }, + { + "transition": "Cipro 500, 5 day", + "distribution": 0.8332999999999999 + } + ] + }, + { + "distributions": [ + { + "transition": "Nitro 7 day", + "distribution": 0.08 + }, + { + "transition": "Sulfa 7 day", + "distribution": 0.21 + }, + { + "transition": "AmxClav 875, 7 day", + "distribution": 0.05 + }, + { + "transition": "Cepha 7 day", + "distribution": 0.11 + }, + { + "transition": "Cipro 500, 5 day", + "distribution": 0.55 + } + ] + } + ] + }, + "Nitro 5 day": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1648755, + "display": "nitrofurantoin, macrocrystals 25 MG / nitrofurantoin, monohydrate 75 MG Oral Capsule", + "value_set": "" + } + ], + "reason": "uti", + "direct_transition": "ED Check", + "assign_to_attribute": "UTI_Tx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 5, + "unit": "days" + } + } + }, + "Nitro 7 day": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1648756, + "display": "nitrofurantoin, macrocrystals 25 MG / nitrofurantoin, monohydrate 75 MG Oral Capsule", + "value_set": "" + } + ], + "reason": "uti", + "assign_to_attribute": "UTI_Tx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 7, + "unit": "days" + } + }, + "direct_transition": "ED Check" + }, + "Fosfo": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 808917, + "display": "fosfomycin 3000 MG Powder", + "value_set": "" + } + ], + "reason": "uti", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "days" + } + }, + "assign_to_attribute": "UTI_Tx", + "direct_transition": "ED Check" + }, + "Sulfa 3 day": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 198335, + "display": "sulfamethoxazole 800 MG / trimethoprim 160 MG Oral Tablet", + "value_set": "" + } + ], + "reason": "uti", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 3, + "unit": "days" + } + }, + "direct_transition": "ED Check", + "assign_to_attribute": "UTI_Tx" + }, + "Sulfa 7 day": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 198335, + "display": "sulfamethoxazole 800 MG / trimethoprim 160 MG Oral Tablet", + "value_set": "" + } + ], + "reason": "uti", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 7, + "unit": "days" + } + }, + "direct_transition": "ED Check", + "assign_to_attribute": "UTI_Tx" + }, + "Sulfa 10 day": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 198335, + "display": "sulfamethoxazole 800 MG / trimethoprim 160 MG Oral Tablet", + "value_set": "" + } + ], + "reason": "uti", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + } + }, + "direct_transition": "ED Check", + "assign_to_attribute": "UTI_Tx" + }, + "AmxClav 500, 5 day": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 617296, + "display": "amoxicillin 500 MG / clavulanate 125 MG Oral Tablet", + "value_set": "" + } + ], + "reason": "uti", + "assign_to_attribute": "UTI_Tx", + "direct_transition": "ED Check" + }, + "AmxClav 875, 7 day": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 562508, + "display": "amoxicillin 875 MG / clavulanate 125 MG Oral Tablet", + "value_set": "" + } + ], + "reason": "uti", + "assign_to_attribute": "UTI_Tx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 7, + "unit": "days" + } + }, + "direct_transition": "ED Check" + }, + "AmxClav 875, 10 day": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 562508, + "display": "amoxicillin 875 MG / clavulanate 125 MG Oral Tablet", + "value_set": "" + } + ], + "reason": "uti", + "assign_to_attribute": "UTI_Tx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + } + }, + "direct_transition": "ED Check" + }, + "Amox 7 day": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 308192, + "display": "amoxicillin 500 MG Oral Tablet", + "value_set": "" + } + ], + "reason": "uti", + "assign_to_attribute": "UTI_Tx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 3, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 7, + "unit": "days" + } + }, + "direct_transition": "ED Check" + }, + "Cepha 5 day": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 197454, + "display": "cephalexin 500 MG Oral Tablet", + "value_set": "" + } + ], + "reason": "uti", + "assign_to_attribute": "UTI_Tx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 5, + "unit": "days" + } + }, + "direct_transition": "ED Check" + }, + "Cepha 10 day": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 197454, + "display": "cephalexin 500 MG Oral Tablet", + "value_set": "" + } + ], + "reason": "uti", + "assign_to_attribute": "UTI_Tx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 4, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + } + }, + "direct_transition": "ED Check" + }, + "Cepha 7 day": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 197454, + "display": "cephalexin 500 MG Oral Tablet", + "value_set": "" + } + ], + "reason": "uti", + "assign_to_attribute": "UTI_Tx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 4, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 7, + "unit": "days" + } + }, + "direct_transition": "ED Check" + }, + "Cipro 250, 3 day": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 197511, + "display": "ciprofloxacin 250 MG Oral Tablet", + "value_set": "" + } + ], + "reason": "uti", + "assign_to_attribute": "UTI_Tx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 2, + "unit": "days" + }, + "duration": { + "quantity": 3, + "unit": "days" + } + }, + "direct_transition": "ED Check" + }, + "Cipro 500, 5 day": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 309309, + "display": "ciprofloxacin 500 MG Oral Tablet", + "value_set": "" + } + ], + "reason": "uti", + "assign_to_attribute": "UTI_Tx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 5, + "unit": "days" + } + }, + "direct_transition": "ED Check" + }, + "Cipro_500 7 day": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 309309, + "display": "ciprofloxacin 500 MG Oral Tablet", + "value_set": "" + } + ], + "reason": "uti", + "assign_to_attribute": "UTI_Tx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 7, + "unit": "days" + } + }, + "direct_transition": "ED Check" + }, + "Cefpo 100": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 309076, + "display": "cefpodoxime 100 MG Oral Tablet", + "value_set": "" + } + ], + "reason": "uti", + "assign_to_attribute": "UTI_Tx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 5, + "unit": "days" + } + }, + "direct_transition": "ED Check" + }, + "Cefpo 200": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 309078, + "display": "cefpodoxime 200 MG Oral Tablet", + "value_set": "" + } + ], + "reason": "uti", + "assign_to_attribute": "UTI_Tx", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 2, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 10, + "unit": "days" + } + }, + "direct_transition": "ED Check" + }, + "Ceftriaxone": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1665021, + "display": "ceftriaxone 1000 MG Injection", + "value_set": "" + } + ], + "reason": "uti", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 1, + "unit": "days" + } + }, + "direct_transition": "Terminal", + "administration": true + }, + "ED Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "UTI_ED", + "operator": "==", + "value": true + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "45816000", + "display": "Pyelonephritis (disorder)" + } + ] + } + ] + }, + "distributions": [ + { + "transition": "ED and Pyelo", + "distribution": 0.75 + }, + { + "transition": "Terminal", + "distribution": 0.25 + } + ] + }, + { + "transition": "Terminal" + } + ] + }, + "Female_with_Cystitis": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "At Least", + "minimum": 1, + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 4 + }, + { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": "7984", + "display": "Penicillin V" + } + ] + }, + { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": 10831, + "display": "Sulfamethoxazole / Trimethoprim" + } + ] + } + ] + }, + "distributions": [ + { + "transition": "Fosfo", + "distribution": 0.075 + }, + { + "transition": "Cepha 5 day", + "distribution": 0.475 + }, + { + "transition": "Cipro 250, 3 day", + "distribution": 0.4500000000000002 + } + ] + }, + { + "distributions": [ + { + "transition": "Nitro 5 day", + "distribution": 0.4 + }, + { + "transition": "Fosfo", + "distribution": 0.03 + }, + { + "transition": "Sulfa 3 day", + "distribution": 0.12 + }, + { + "transition": "AmxClav 500, 5 day", + "distribution": 0.08 + }, + { + "transition": "Cepha 5 day", + "distribution": 0.19 + }, + { + "transition": "Cipro 250, 3 day", + "distribution": 0.17999999999999994 + } + ] + } + ] + }, + "Pregnant Female with Cystitis": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "At Least", + "minimum": 1, + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 4 + }, + { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": "7984", + "display": "Penicillin V" + } + ] + }, + { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": 10831, + "display": "Sulfamethoxazole / Trimethoprim" + } + ] + } + ] + }, + "distributions": [ + { + "transition": "Cepha 7 day", + "distribution": 0.5 + }, + { + "transition": "Cefpo 100", + "distribution": 0.5 + } + ] + }, + { + "distributions": [ + { + "transition": "Nitro 5 day", + "distribution": 0.05 + }, + { + "transition": "Amox 7 day", + "distribution": 0.12 + }, + { + "transition": "AmxClav 875, 7 day", + "distribution": 0.26 + }, + { + "transition": "Cepha 7 day", + "distribution": 0.26 + }, + { + "transition": "Cefpo 100", + "distribution": 0.26 + }, + { + "transition": "Sulfa 3 day", + "distribution": 0.05 + } + ] + } + ] + }, + "Female with Pyelo": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "At Least", + "minimum": 1, + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 4 + }, + { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": "7984", + "display": "Penicillin V" + } + ] + }, + { + "condition_type": "Active Allergy", + "codes": [ + { + "system": "RxNorm", + "code": 10831, + "display": "Sulfamethoxazole / Trimethoprim" + } + ] + } + ] + }, + "distributions": [ + { + "transition": "Cipro 500, 5 day", + "distribution": 0.231 + }, + { + "transition": "Cepha 10 day", + "distribution": 0.41 + }, + { + "transition": "Cefpo 200", + "distribution": 0.359 + } + ] + }, + { + "distributions": [ + { + "transition": "Sulfa 10 day", + "distribution": 0.1 + }, + { + "transition": "AmxClav 875, 10 day", + "distribution": 0.12 + }, + { + "transition": "Cipro_500 7 day", + "distribution": 0.18 + }, + { + "transition": "Cepha 10 day", + "distribution": 0.32 + }, + { + "transition": "Cefpo 200", + "distribution": 0.28 + } + ] + } + ] + }, + "ED and Pyelo": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Terminal", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 197511, + "display": "Cipro 250" + } + ] + }, + { + "condition_type": "Active Medication", + "codes": [ + { + "system": "RxNorm", + "code": 309309, + "display": "Cipro 500" + } + ] + } + ] + } + }, + { + "transition": "Ceftriaxone" + } + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/uti/ambulatory_eval.json b/src/main/resources/modules/uti/ambulatory_eval.json new file mode 100644 index 0000000..b251655 --- /dev/null +++ b/src/main/resources/modules/uti/ambulatory_eval.json @@ -0,0 +1,81 @@ +{ + "name": "UTI_Ambulatory_Eval", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Eval Procedure" + }, + "Terminal": { + "type": "Terminal" + }, + "Eval Procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386053000", + "display": "Evaluation procedure (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 15 + } + }, + "unit": "minutes", + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "UTI_Labs", + "distribution": 0.2 + }, + { + "transition": "GU_Pregnancy_Check", + "distribution": 0.8 + } + ] + } + ] + }, + "GU_Pregnancy_Check": { + "type": "CallSubmodule", + "submodule": "uti/gu_pregnancy_check", + "direct_transition": "UTI_Labs" + }, + "UTI_Labs": { + "type": "CallSubmodule", + "submodule": "uti/labs", + "direct_transition": "Abx Therapy" + }, + "Abx Therapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "281789004", + "display": "Antibiotic therapy (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 10 + } + }, + "unit": "minutes", + "direct_transition": "UTI_Abx" + }, + "UTI_Abx": { + "type": "CallSubmodule", + "submodule": "uti/abx_tx", + "direct_transition": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/uti/ambulatory_path.json b/src/main/resources/modules/uti/ambulatory_path.json new file mode 100644 index 0000000..e0a6a16 --- /dev/null +++ b/src/main/resources/modules/uti/ambulatory_path.json @@ -0,0 +1,215 @@ +{ + "name": "UTI_Ambulatory", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "UTI Diagnosis" + }, + "Terminal": { + "type": "Terminal" + }, + "Evaluation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183444007", + "display": "Referral for further care (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 15 + } + }, + "unit": "minutes", + "direct_transition": "End Ambulatory Encounter", + "assign_to_attribute": "UTI_Care_Referral" + }, + "Exam": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "67879005", + "display": "History and physical examination, limited (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 15 + } + }, + "unit": "minutes", + "direct_transition": "Risk Check" + }, + "UTI_Ambulatory_Eval": { + "type": "CallSubmodule", + "submodule": "uti/ambulatory_eval", + "direct_transition": "End Ambulatory Encounter" + }, + "Risk Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "pregnancy", + "operator": "==", + "value": true + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "45816000", + "display": "Pyelonephritis (disorder)" + } + ] + } + ] + }, + "transition": "Evaluation" + }, + { + "distributions": [ + { + "distribution": 0.1, + "transition": "Evaluation" + }, + { + "transition": "UTI_Ambulatory_Eval", + "distribution": 0.9 + } + ] + } + ] + }, + "End Ambulatory Encounter": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Delay 24 to 48 hours", + "condition": { + "condition_type": "Attribute", + "attribute": "UTI_Lab_SendOut", + "operator": "is not nil" + } + }, + { + "transition": "Delay 0 to 48 hours", + "condition": { + "condition_type": "Attribute", + "attribute": "UTI_Care_Referral", + "operator": "is not nil" + } + }, + { + "transition": "Terminal" + } + ] + }, + "Delay 24 to 48 hours": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 48, + "low": 24 + } + }, + "unit": "hours", + "direct_transition": "Telephone Encounter" + }, + "Delay 0 to 48 hours": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 48, + "low": 0 + } + }, + "unit": "hours", + "direct_transition": "Emergency Follow-up" + }, + "Telephone Encounter": { + "type": "Encounter", + "encounter_class": "virtual", + "reason": "", + "telemedicine_possibility": "always", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "UTI_Lab_FollowUp" + }, + "UTI_Lab_FollowUp": { + "type": "CallSubmodule", + "submodule": "uti/lab_follow_up", + "direct_transition": "End Telephone Encounter" + }, + "End Telephone Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Emergency Follow-up": { + "type": "Encounter", + "encounter_class": "emergency", + "telemedicine_possibility": "none", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Set UTI_ED" + }, + "UTI_ED_Eval": { + "type": "CallSubmodule", + "submodule": "uti/ed_eval", + "direct_transition": "End ED Follow-up" + }, + "End ED Follow-up": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Set UTI_ED": { + "type": "SetAttribute", + "attribute": "UTI_ED", + "direct_transition": "UTI_ED_Eval", + "value": true + }, + "UTI Diagnosis": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "uti", + "telemedicine_possibility": "none", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "direct_transition": "UTI_HPI" + }, + "UTI_HPI": { + "type": "CallSubmodule", + "submodule": "uti/hpi", + "direct_transition": "Exam" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/uti/ed_bundle.json b/src/main/resources/modules/uti/ed_bundle.json new file mode 100644 index 0000000..1cb8414 --- /dev/null +++ b/src/main/resources/modules/uti/ed_bundle.json @@ -0,0 +1,2265 @@ +{ + "name": "UTI_ED_Bundle", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Triage" + }, + "Terminal": { + "type": "Terminal" + }, + "Triage": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386478007", + "display": "Triage: emergency center (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 15 + } + }, + "unit": "minutes", + "direct_transition": "Vitals" + }, + "Vitals": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "61746007", + "display": "Taking patient vital signs (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 5 + } + }, + "unit": "minutes", + "conditional_transition": [ + { + "transition": "Pyelo", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "45816000", + "display": "Pyelonephritis (disorder)" + } + ] + } + }, + { + "transition": "Cystitis", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "307426000", + "display": "Acute infective cystitis (disorder)" + } + ] + } + } + ] + }, + "Cystitis": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "ESI-3", + "distribution": 0.2 + }, + { + "transition": "ESI-4", + "distribution": 0.7 + }, + { + "transition": "ESI-5", + "distribution": 0.1 + } + ] + }, + "Pyelo": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 1 + }, + { + "condition_type": "Attribute", + "attribute": "diabetes", + "operator": "==", + "value": true + } + ] + }, + "distributions": [ + { + "transition": "ESI-1", + "distribution": 0.007 + }, + { + "transition": "ESI-2", + "distribution": 0.062 + }, + { + "transition": "ESI-3", + "distribution": 0.931 + } + ] + }, + { + "distributions": [ + { + "transition": "ESI-1", + "distribution": 0.006 + }, + { + "transition": "ESI-2", + "distribution": 0.054 + }, + { + "transition": "ESI-3", + "distribution": 0.8 + }, + { + "transition": "ESI-4", + "distribution": 0.1 + } + ] + } + ] + }, + "ESI-1": { + "type": "Observation", + "category": "exam", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "75636-1", + "display": "Emergency severity index", + "value_set": "" + } + ], + "direct_transition": "ESI_State 1", + "value_code": { + "system": "LOINC", + "code": "LA21567-5", + "display": "Requires immediate life-saving intervention" + } + }, + "ESI-2": { + "type": "Observation", + "category": "exam", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "75636-1", + "display": "Emergency severity index", + "value_set": "" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA21752-3", + "display": "High risk or confused/lethargic/disoriented or severe pain/distress" + }, + "direct_transition": "ESI_State 2" + }, + "ESI-3": { + "type": "Observation", + "category": "exam", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "75636-1", + "display": "Emergency severity index", + "value_set": "" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA21753-1", + "display": "Needs 2 or more resources" + }, + "direct_transition": "ESI_State 3" + }, + "ESI-4": { + "type": "Observation", + "category": "exam", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "75636-1", + "display": "Emergency severity index", + "value_set": "" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA21754-9", + "display": "Needs 1 resource" + }, + "direct_transition": "ESI_State 4" + }, + "ESI-5": { + "type": "Observation", + "category": "exam", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "75636-1", + "display": "Emergency severity index", + "value_set": "" + } + ], + "value_code": { + "system": "LOINC", + "code": "LA21755-6", + "display": "Needs no resources" + }, + "direct_transition": "ESI State 5" + }, + "Record_BP_4_5": { + "type": "MultiObservation", + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "85354-9", + "display": "Blood Pressure", + "value_set": "" + } + ], + "observations": [ + { + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic Blood Pressure" + } + ], + "unit": "mm[Hg]", + "range": { + "low": 110, + "high": 160 + } + }, + { + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "8462-4", + "display": "Diastolic Blood Pressure" + } + ], + "unit": "mm[Hg]", + "range": { + "low": 60, + "high": 100 + } + } + ], + "direct_transition": "Record_Heart_Rate_4_5" + }, + "Record_BP_3": { + "type": "MultiObservation", + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "85354-9", + "display": "Blood Pressure", + "value_set": "" + } + ], + "observations": [ + { + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic Blood Pressure" + } + ], + "unit": "mm[Hg]", + "range": { + "low": 110, + "high": 180 + } + }, + { + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "8462-4", + "display": "Diastolic Blood Pressure" + } + ], + "unit": "mm[Hg]", + "range": { + "low": 60, + "high": 110 + } + } + ], + "direct_transition": "Record_Heart_Rate_3" + }, + "Record_Heart_Rate_4_5": { + "type": "Observation", + "category": "vital-signs", + "unit": "/min", + "codes": [ + { + "system": "LOINC", + "code": "8867-4", + "display": "Heart rate", + "value_set": "" + } + ], + "direct_transition": "Record_Respiratory_Rate_4_5", + "range": { + "low": 60, + "high": 99 + } + }, + "Record_Respiratory_Rate_4_5": { + "type": "Observation", + "category": "vital-signs", + "unit": "/min", + "codes": [ + { + "system": "LOINC", + "code": "9279-1", + "display": "Respiratory rate", + "value_set": "" + } + ], + "direct_transition": "O2_4_5", + "range": { + "low": 12, + "high": 20 + } + }, + "O2_4_5": { + "type": "Observation", + "category": "vital-signs", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "2708-6", + "display": "Oxygen saturation in Arterial blood", + "value_set": "" + }, + { + "system": "LOINC", + "code": "59408-5", + "display": "Oxygen saturation in Arterial blood by Pulse oximetry" + } + ], + "distribution": { + "kind": "UNIFORM", + "round": false, + "parameters": { + "high": 100, + "low": 99 + } + }, + "direct_transition": "Take_Temperature_4_5" + }, + "Record_Heart_Rate_3": { + "type": "Observation", + "category": "vital-signs", + "unit": "/min", + "codes": [ + { + "system": "LOINC", + "code": "8867-4", + "display": "Heart rate", + "value_set": "" + } + ], + "range": { + "low": 60, + "high": 99 + }, + "direct_transition": "Record_Respiratory_Rate_3" + }, + "Record_Respiratory_Rate_3": { + "type": "Observation", + "category": "vital-signs", + "unit": "/min", + "codes": [ + { + "system": "LOINC", + "code": "9279-1", + "display": "Respiratory rate", + "value_set": "" + } + ], + "range": { + "low": 12, + "high": 20 + }, + "direct_transition": "O2_3" + }, + "O2_3": { + "type": "Observation", + "category": "vital-signs", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "2708-6", + "display": "Oxygen saturation in Arterial blood", + "value_set": "" + }, + { + "system": "LOINC", + "code": "59408-5", + "display": "Oxygen saturation in Arterial blood by Pulse oximetry" + } + ], + "distribution": { + "kind": "UNIFORM", + "round": false, + "parameters": { + "high": 100, + "low": 97 + } + }, + "direct_transition": "Take_Temperature_3" + }, + "History and Physical Exam": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "14736009", + "display": "History and physical examination with evaluation and management of patient (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "Check CBC" + }, + "Record_BP_2": { + "type": "MultiObservation", + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "85354-9", + "display": "Blood Pressure", + "value_set": "" + } + ], + "observations": [ + { + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic Blood Pressure" + } + ], + "unit": "mm[Hg]", + "range": { + "low": 90, + "high": 110 + } + }, + { + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "8462-4", + "display": "Diastolic Blood Pressure" + } + ], + "unit": "mm[Hg]", + "range": { + "low": 40, + "high": 60 + } + } + ], + "direct_transition": "Record_Heart_Rate_2" + }, + "Record_Heart_Rate_2": { + "type": "Observation", + "category": "vital-signs", + "unit": "/min", + "codes": [ + { + "system": "LOINC", + "code": "8867-4", + "display": "Heart rate", + "value_set": "" + } + ], + "range": { + "low": 80, + "high": 130 + }, + "direct_transition": "Record_Respiratory_Rate_2" + }, + "Record_Respiratory_Rate_2": { + "type": "Observation", + "category": "vital-signs", + "unit": "/min", + "codes": [ + { + "system": "LOINC", + "code": "9279-1", + "display": "Respiratory rate", + "value_set": "" + } + ], + "range": { + "low": 21, + "high": 25 + }, + "direct_transition": "O2_2" + }, + "O2_2": { + "type": "Observation", + "category": "vital-signs", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "2708-6", + "display": "Oxygen saturation in Arterial blood", + "value_set": "" + }, + { + "system": "LOINC", + "code": "59408-5", + "display": "Oxygen saturation in Arterial blood by Pulse oximetry" + } + ], + "distribution": { + "kind": "UNIFORM", + "round": false, + "parameters": { + "high": 94, + "low": 89 + } + }, + "direct_transition": "Take_Temperature_2" + }, + "Record_BP_1": { + "type": "MultiObservation", + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "85354-9", + "display": "Blood Pressure", + "value_set": "" + } + ], + "observations": [ + { + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic Blood Pressure" + } + ], + "unit": "mm[Hg]", + "range": { + "low": 60, + "high": 85 + } + }, + { + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "8462-4", + "display": "Diastolic Blood Pressure" + } + ], + "unit": "mm[Hg]", + "range": { + "low": 20, + "high": 40 + } + } + ], + "direct_transition": "Record_Heart_Rate_1" + }, + "Record_Heart_Rate_1": { + "type": "Observation", + "category": "vital-signs", + "unit": "/min", + "codes": [ + { + "system": "LOINC", + "code": "8867-4", + "display": "Heart rate", + "value_set": "" + } + ], + "range": { + "low": 80, + "high": 130 + }, + "direct_transition": "Record_Respiratory_Rate_1" + }, + "Record_Respiratory_Rate_1": { + "type": "Observation", + "category": "vital-signs", + "unit": "/min", + "codes": [ + { + "system": "LOINC", + "code": "9279-1", + "display": "Respiratory rate", + "value_set": "" + } + ], + "range": { + "low": 25, + "high": 30 + }, + "direct_transition": "O2_1" + }, + "O2_1": { + "type": "Observation", + "category": "vital-signs", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "2708-6", + "display": "Oxygen saturation in Arterial blood", + "value_set": "" + }, + { + "system": "LOINC", + "code": "59408-5", + "display": "Oxygen saturation in Arterial blood by Pulse oximetry" + } + ], + "distribution": { + "kind": "UNIFORM", + "round": false, + "parameters": { + "high": 88, + "low": 70 + } + }, + "direct_transition": "Take_Temperature_1" + }, + "Check CBC": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "CBC", + "condition": { + "condition_type": "Attribute", + "attribute": "esi", + "operator": "<=", + "value": 3 + } + }, + { + "transition": "Electrolyte Check" + } + ] + }, + "Electrolyte Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Provider Choice", + "condition": { + "condition_type": "Attribute", + "attribute": "esi", + "operator": "<=", + "value": 3 + } + }, + { + "transition": "Blood Culture Check" + } + ] + }, + "CBC": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "26604007", + "display": "Complete blood count (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 10 + } + }, + "unit": "minutes", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "esi", + "operator": "==", + "value": 1 + }, + "distributions": [ + { + "transition": "Record_CBC_Panel", + "distribution": 0.1 + }, + { + "transition": "Record_Abnormal CBC_Panel", + "distribution": 0.9 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "esi", + "operator": "==", + "value": 2 + }, + "distributions": [ + { + "transition": "Record_CBC_Panel", + "distribution": 0.3 + }, + { + "transition": "Record_Abnormal CBC_Panel", + "distribution": 0.7 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "esi", + "operator": "==", + "value": 3 + }, + "distributions": [ + { + "transition": "Record_CBC_Panel", + "distribution": 0.7 + }, + { + "transition": "Record_Abnormal CBC_Panel", + "distribution": 0.3 + } + ] + }, + { + "distributions": [ + { + "transition": "Record_CBC_Panel", + "distribution": 1 + } + ] + } + ] + }, + "Take_Temperature_4_5": { + "type": "Observation", + "category": "vital-signs", + "range": { + "low": 36.4, + "high": 38.6 + }, + "remarks": [ + "37.2 - 39.4 Celsius == 99 - 103 Fahrenheit" + ], + "unit": "Cel", + "codes": [ + { + "system": "LOINC", + "code": "8310-5", + "display": "Body temperature", + "value_set": "" + }, + { + "system": "LOINC", + "code": "8331-1", + "display": "Oral temperature", + "value_set": "" + } + ], + "direct_transition": "History and Physical Exam" + }, + "Take_Temperature_3": { + "type": "Observation", + "category": "vital-signs", + "range": { + "low": 36.4, + "high": 38.6 + }, + "remarks": [ + "37.2 - 39.4 Celsius == 99 - 103 Fahrenheit" + ], + "unit": "Cel", + "codes": [ + { + "system": "LOINC", + "code": "8310-5", + "display": "Body temperature", + "value_set": "" + }, + { + "system": "LOINC", + "code": "8331-1", + "display": "Oral temperature", + "value_set": "" + } + ], + "direct_transition": "History and Physical Exam" + }, + "Take_Temperature_1": { + "type": "Observation", + "category": "vital-signs", + "range": { + "low": 35, + "high": 39.4 + }, + "remarks": [ + "37.2 - 39.4 Celsius == 99 - 103 Fahrenheit" + ], + "unit": "Cel", + "codes": [ + { + "system": "LOINC", + "code": "8310-5", + "display": "Body temperature", + "value_set": "" + }, + { + "system": "LOINC", + "code": "8331-1", + "display": "Oral temperature", + "value_set": "" + } + ], + "direct_transition": "History and Physical Exam" + }, + "Take_Temperature_2": { + "type": "Observation", + "category": "vital-signs", + "range": { + "low": 36.4, + "high": 38.6 + }, + "remarks": [ + "37.2 - 39.4 Celsius == 99 - 103 Fahrenheit" + ], + "unit": "Cel", + "codes": [ + { + "system": "LOINC", + "code": "8310-5", + "display": "Body temperature", + "value_set": "" + }, + { + "system": "LOINC", + "code": "8331-1", + "display": "Oral temperature", + "value_set": "" + } + ], + "direct_transition": "History and Physical Exam" + }, + "ESI State 5": { + "type": "SetAttribute", + "attribute": "esi", + "direct_transition": "Record_BP_4_5", + "value": 5 + }, + "ESI_State 4": { + "type": "SetAttribute", + "attribute": "esi", + "value": 4, + "direct_transition": "Record_BP_4_5" + }, + "ESI_State 3": { + "type": "SetAttribute", + "attribute": "esi", + "value": 3, + "direct_transition": "Record_BP_3" + }, + "ESI_State 2": { + "type": "SetAttribute", + "attribute": "esi", + "value": 2, + "direct_transition": "Record_BP_2" + }, + "ESI_State 1": { + "type": "SetAttribute", + "attribute": "esi", + "value": 1, + "direct_transition": "Record_BP_1" + }, + "Record_CBC_Panel": { + "type": "DiagnosticReport", + "number_of_observations": 4, + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "Complete blood count (hemogram) panel - Blood by Automated count", + "value_set": "" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*3/uL", + "range": { + "low": 3.5, + "high": 10.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*6/uL", + "range": { + "low": 3.9, + "high": 5.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "unit": "g/dL", + "range": { + "low": 12, + "high": 17.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "4544-3", + "display": "Hematocrit [Volume Fraction] of Blood by Automated count" + } + ], + "unit": "%", + "range": { + "low": 35, + "high": 50 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 80, + "high": 95 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 27, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "21000-5", + "display": "Erythrocyte distribution width [Entitic volume] by Automated count" + } + ], + "range": { + "low": 39, + "high": 46 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32207-3", + "display": "Platelet distribution width [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 520 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32623-1", + "display": "Platelet mean volume [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 9.4, + "high": 12.3 + } + } + ], + "direct_transition": "Electrolyte Check" + }, + "Record_Abnormal CBC_Panel": { + "type": "DiagnosticReport", + "number_of_observations": 4, + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "Complete blood count (hemogram) panel - Blood by Automated count", + "value_set": "" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*3/uL", + "range": { + "low": 12, + "high": 22 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*6/uL", + "range": { + "low": 3.9, + "high": 5.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "unit": "g/dL", + "range": { + "low": 12, + "high": 17.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "4544-3", + "display": "Hematocrit [Volume Fraction] of Blood by Automated count" + } + ], + "unit": "%", + "range": { + "low": 35, + "high": 50 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 80, + "high": 95 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 27, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "21000-5", + "display": "Erythrocyte distribution width [Entitic volume] by Automated count" + } + ], + "range": { + "low": 39, + "high": 46 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32207-3", + "display": "Platelet distribution width [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 520 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32623-1", + "display": "Platelet mean volume [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 9.4, + "high": 12.3 + } + } + ], + "direct_transition": "Electrolyte Check" + }, + "Blood Culture Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Blood Culture", + "condition": { + "condition_type": "Attribute", + "attribute": "esi", + "operator": "<=", + "value": 2 + } + }, + { + "transition": "Urinalysis" + } + ] + }, + "Urinalysis": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "441550005", + "display": "Urinalysis with reflex to microscopy and culture (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 10 + } + }, + "unit": "minutes", + "direct_transition": "Labs Submodule" + }, + "Labs Submodule": { + "type": "CallSubmodule", + "submodule": "uti/labs", + "direct_transition": "Terminal" + }, + "Provider Choice": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "esi", + "operator": "<=", + "value": 2 + }, + "transition": "CMP" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "esi", + "operator": "==", + "value": 3 + }, + "distributions": [ + { + "transition": "CMP", + "distribution": 0.3 + }, + { + "transition": "BMP", + "distribution": 0.7 + } + ] + } + ] + }, + "CMP": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "371361000119107", + "display": "Comprehensive metabolic panel (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 10 + } + }, + "unit": "minutes", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 1 + }, + "transition": "Comprehensive_Metabolic_Panel_with_Kidney_Damage" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "esi", + "operator": "<=", + "value": 2 + }, + "distributions": [ + { + "transition": "Comprehensive_Metabolic_Panel_with_Kidney_Damage", + "distribution": 0.6 + }, + { + "transition": "Comprehensive_Metabolic_Panel", + "distribution": 0.4 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "esi", + "operator": "==", + "value": 3 + }, + "distributions": [ + { + "transition": "Comprehensive_Metabolic_Panel_with_Kidney_Damage", + "distribution": 0.05 + }, + { + "transition": "Comprehensive_Metabolic_Panel", + "distribution": 0.95 + } + ] + } + ] + }, + "BMP": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "866146005", + "display": "Serum metabolic panel (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 10 + } + }, + "unit": "minutes", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "ckd", + "operator": ">=", + "value": 1 + }, + "transition": "Basic_Metabolic_Panel_with_Kidney Damage" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "esi", + "operator": "<=", + "value": 2 + }, + "transition": "Basic_Metabolic_Panel_with_Normal_Kidney" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "esi", + "operator": "==", + "value": 3 + }, + "distributions": [ + { + "transition": "Basic_Metabolic_Panel_with_Kidney Damage", + "distribution": 0.05 + }, + { + "transition": "Basic_Metabolic_Panel_with_Normal_Kidney", + "distribution": 0.95 + } + ] + } + ] + }, + "Comprehensive_Metabolic_Panel": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma", + "value_set": "" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 1.5, + "high": 3 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted" + } + ], + "range": { + "low": 5, + "high": 14 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 8.5 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 4, + "high": 5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 15 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 39, + "high": 117 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 44 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 40 + } + } + ], + "direct_transition": "Blood Culture Check" + }, + "Comprehensive_Metabolic_Panel_with_Kidney_Damage": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma", + "value_set": "" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.5, + "high": 3 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted" + } + ], + "range": { + "low": 5, + "high": 14 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 8.5 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 4, + "high": 5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 15 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 39, + "high": 117 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 44 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0, + "high": 40 + } + } + ], + "direct_transition": "Blood Culture Check" + }, + "Basic_Metabolic_Panel_with_Normal_Kidney": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24321-2", + "display": "Basic metabolic 2000 panel - Serum or Plasma", + "value_set": "" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.5, + "high": 3 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted" + } + ], + "range": { + "low": 5, + "high": 14 + } + } + ], + "direct_transition": "Blood Culture Check" + }, + "Basic_Metabolic_Panel_with_Kidney Damage": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24321-2", + "display": "Basic metabolic 2000 panel - Serum or Plasma", + "value_set": "" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2345-7", + "display": "Glucose [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "3094-0", + "display": "Urea nitrogen [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2160-0", + "display": "Creatinine [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.5, + "high": 3 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "17861-6", + "display": "Calcium [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2951-2", + "display": "Sodium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "2823-3", + "display": "Potassium [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2075-0", + "display": "Chloride [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "2028-9", + "display": "Carbon dioxide, total [Moles/volume] in Serum or Plasma" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted" + } + ], + "range": { + "low": 5, + "high": 14 + } + } + ], + "direct_transition": "Blood Culture Check" + }, + "Blood Culture": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "30088009", + "display": "Blood culture (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "distributed_transition": [ + { + "transition": "Positive_Blood_Culture", + "distribution": 0.5 + }, + { + "transition": "Negative Blood Culture", + "distribution": 0.5 + } + ] + }, + "Negative Blood Culture": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "600-7", + "display": "Bacteria identified in Blood by Culture", + "value_set": "" + } + ], + "direct_transition": "Urinalysis", + "value_code": { + "system": "SNOMED-CT", + "code": "708118007", + "display": "No organism isolated by microbiologic culture (finding)" + } + }, + "Positive_Blood_Culture": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "600-7", + "display": "Bacteria identified in Blood by Culture", + "value_set": "" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "8730001000004107", + "display": "Organism isolated in blood by culture (finding)" + }, + "direct_transition": "Set BldCx" + }, + "Set BldCx": { + "type": "SetAttribute", + "attribute": "UTI_Positive_BldCx", + "direct_transition": "Urinalysis", + "value": true + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/uti/ed_eval.json b/src/main/resources/modules/uti/ed_eval.json new file mode 100644 index 0000000..e26a15c --- /dev/null +++ b/src/main/resources/modules/uti/ed_eval.json @@ -0,0 +1,126 @@ +{ + "name": "UTI_ED_Eval", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "UTI_ED_Bundle" + }, + "Terminal": { + "type": "Terminal" + }, + "UTI_ED_Bundle": { + "type": "CallSubmodule", + "submodule": "uti/ed_bundle", + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "45816000", + "display": "Pyelonephritis (disorder)" + } + ] + } + ] + }, + "transition": "Hospital admission" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "UTI_Positive_BldCx", + "operator": "is not nil" + }, + "transition": "Hospital admission" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "esi", + "operator": "==", + "value": 3 + }, + "distributions": [ + { + "transition": "Hospital admission", + "distribution": 0.15 + }, + { + "transition": "Antibiotic therapy", + "distribution": 0.85 + } + ] + }, + { + "transition": "Hospital admission", + "condition": { + "condition_type": "Attribute", + "attribute": "esi", + "operator": "<=", + "value": 2 + } + }, + { + "transition": "Antibiotic therapy" + } + ] + }, + "Antibiotic therapy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "281789004", + "display": "Antibiotic therapy (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 10 + } + }, + "unit": "minutes", + "direct_transition": "UTI_Abx" + }, + "UTI_Abx": { + "type": "CallSubmodule", + "submodule": "uti/abx_tx", + "direct_transition": "Patient discharge" + }, + "Patient discharge": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "58000006", + "display": "Patient discharge (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 10 + } + }, + "unit": "minutes", + "direct_transition": "Terminal" + }, + "Hospital admission": { + "type": "Simple", + "direct_transition": "Antibiotic therapy" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/uti/ed_path.json b/src/main/resources/modules/uti/ed_path.json new file mode 100644 index 0000000..9330e05 --- /dev/null +++ b/src/main/resources/modules/uti/ed_path.json @@ -0,0 +1,47 @@ +{ + "name": "UTI_ED_Path", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "UTI Diagnosis" + }, + "Terminal": { + "type": "Terminal" + }, + "UTI Diagnosis": { + "type": "Encounter", + "encounter_class": "emergency", + "telemedicine_possibility": "none", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "direct_transition": "Set_UTI_ED", + "reason": "uti" + }, + "Set_UTI_ED": { + "type": "SetAttribute", + "attribute": "UTI_ED", + "value": true, + "direct_transition": "UTI_HPI" + }, + "UTI_ED_Eval": { + "type": "CallSubmodule", + "submodule": "uti/ed_eval", + "direct_transition": "End_ED_Follow_up" + }, + "End_ED_Follow_up": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "UTI_HPI": { + "type": "CallSubmodule", + "submodule": "uti/hpi", + "direct_transition": "UTI_ED_Eval" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/uti/gu_pregnancy_check.json b/src/main/resources/modules/uti/gu_pregnancy_check.json new file mode 100644 index 0000000..fb28939 --- /dev/null +++ b/src/main/resources/modules/uti/gu_pregnancy_check.json @@ -0,0 +1,143 @@ +{ + "name": "GU_Pregnancy_Check", + "states": { + "Initial": { + "type": "Initial", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "UTI_Telemed", + "operator": "is not nil" + }, + "transition": "Discuss Pregnancy" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "UTI_ED", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "Pregnancy Test", + "distribution": 0.76 + }, + { + "transition": "Discuss Pregnancy", + "distribution": 0.24 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "UTI_Ambulatory", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "Pregnancy Test", + "distribution": 0.4 + }, + { + "transition": "Discuss Pregnancy", + "distribution": 0.6 + } + ] + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "Pregnancy Test": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "252160004", + "display": "Standard pregnancy test (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 15 + } + }, + "unit": "minutes", + "conditional_transition": [ + { + "transition": "Positive Result", + "condition": { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + } + }, + { + "transition": "Negative Result" + } + ] + }, + "Discuss Pregnancy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "440546007", + "display": "Discussion about pregnancy (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 10 + } + }, + "unit": "minutes", + "direct_transition": "Terminal" + }, + "Negative Result": { + "type": "Observation", + "category": "procedure", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "2106-3", + "display": "Choriogonadotropin (pregnancy test) [Presence] in Urine", + "value_set": "" + } + ], + "direct_transition": "Terminal", + "value_code": { + "system": "SNOMED-CT", + "code": "260385009", + "display": "Negative (qualifier value)" + } + }, + "Positive Result": { + "type": "Observation", + "category": "procedure", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "2106-3", + "display": "Choriogonadotropin (pregnancy test) [Presence] in Urine", + "value_set": "" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "10828004", + "display": "Positive (qualifier value)" + }, + "direct_transition": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/uti/hpi.json b/src/main/resources/modules/uti/hpi.json new file mode 100644 index 0000000..5a64d10 --- /dev/null +++ b/src/main/resources/modules/uti/hpi.json @@ -0,0 +1,175 @@ +{ + "name": "UTI_HPI", + "remarks": [ + "UTI History of Present Illness" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "History Taking" + }, + "Terminal": { + "type": "Terminal" + }, + "History Taking": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "84100007", + "display": "History taking (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 15, + "low": 5 + } + }, + "unit": "minutes", + "direct_transition": "Dysuria" + }, + "Dysuria": { + "type": "Symptom", + "symptom": "Dysuria", + "cause": "", + "probability": 1, + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 0.5 + } + }, + "direct_transition": "Increased frequency of urination" + }, + "Increased frequency of urination": { + "type": "Symptom", + "symptom": "Increased frequency of urination", + "cause": "", + "probability": 1, + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "direct_transition": "Urgent desire to urinate" + }, + "Urgent desire to urinate": { + "type": "Symptom", + "symptom": "Urgent desire to urinate", + "cause": "", + "probability": 1, + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "direct_transition": "Suprapubic pain" + }, + "Suprapubic pain": { + "type": "Symptom", + "symptom": "Suprapubic pain", + "cause": "", + "probability": 1, + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "conditional_transition": [ + { + "transition": "Renal angle tenderness", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "45816000", + "display": "Pyelonephritis (disorder)" + } + ] + } + }, + { + "transition": "Discussion about signs and symptoms" + } + ] + }, + "Discussion about signs and symptoms": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "223470000", + "display": "Discussion about signs and symptoms (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 15, + "low": 5 + } + }, + "unit": "minutes", + "direct_transition": "Terminal" + }, + "Renal angle tenderness": { + "type": "Symptom", + "symptom": "Renal angle tenderness", + "cause": "", + "probability": 1, + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "direct_transition": "Flank pain" + }, + "Flank pain": { + "type": "Symptom", + "symptom": "Flank pain", + "cause": "", + "probability": 1, + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "direct_transition": "Fever" + }, + "Fever": { + "type": "Symptom", + "symptom": "", + "cause": "", + "probability": 1, + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "direct_transition": "Tendency to nausea and vomiting" + }, + "Tendency to nausea and vomiting": { + "type": "Symptom", + "symptom": "Tendency to nausea and vomiting", + "cause": "", + "probability": 1, + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "direct_transition": "Discussion about signs and symptoms" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/uti/lab_follow_up.json b/src/main/resources/modules/uti/lab_follow_up.json new file mode 100644 index 0000000..3211cff --- /dev/null +++ b/src/main/resources/modules/uti/lab_follow_up.json @@ -0,0 +1,152 @@ +{ + "name": "UTI_Lab_Follow_Up", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Inform Patient" + }, + "Terminal": { + "type": "Terminal" + }, + "Inform Patient": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "165355002", + "display": "Patient informed - test result (situation)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 5 + } + }, + "unit": "minutes", + "direct_transition": "Lab Finding Education" + }, + "Lab Finding Education": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "410299006", + "display": "Lab findings education, guidance, and counseling (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 5 + } + }, + "unit": "minutes", + "direct_transition": "Discussion" + }, + "Discussion": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "223484005", + "display": "Discussion about treatment (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 5 + } + }, + "unit": "minutes", + "conditional_transition": [ + { + "transition": "Evaluate Abx Response", + "condition": { + "condition_type": "Attribute", + "attribute": "UTI_Tx", + "operator": "is not nil" + } + }, + { + "transition": "Prescribe Abx" + } + ] + }, + "Prescribe Abx": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "33633005", + "display": "Prescription of drug (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 5 + } + }, + "unit": "minutes", + "direct_transition": "UTI Abx Tx Sub" + }, + "UTI Abx Tx Sub": { + "type": "CallSubmodule", + "submodule": "uti/abx_tx", + "direct_transition": "Terminal" + }, + "Evaluate Abx Response": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225953001", + "display": "Evaluating response to treatment (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 5 + } + }, + "unit": "minutes", + "distributed_transition": [ + { + "transition": "Stop UTI Abx", + "distribution": 0.14 + }, + { + "transition": "Terminal", + "distribution": 0.8599999999999999 + } + ] + }, + "Stop UTI Abx": { + "type": "MedicationEnd", + "direct_transition": "Change Treatment", + "referenced_by_attribute": "UTI_Tx" + }, + "Change Treatment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "445528004", + "display": "Treatment changed (situation)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 5 + } + }, + "unit": "minutes", + "direct_transition": "UTI Abx Tx Sub" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/uti/labs.json b/src/main/resources/modules/uti/labs.json new file mode 100644 index 0000000..ab129b3 --- /dev/null +++ b/src/main/resources/modules/uti/labs.json @@ -0,0 +1,661 @@ +{ + "name": "UTI_Labs", + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Collection" + }, + "Terminal": { + "type": "Terminal" + }, + "Collection": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "57617002", + "display": "Urine specimen collection (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 10 + } + }, + "unit": "minutes", + "conditional_transition": [ + { + "transition": "Dipstick", + "condition": { + "condition_type": "Attribute", + "attribute": "UTI_ambulatory", + "operator": "is not nil" + } + }, + { + "transition": "Urinalysis Micro" + } + ] + }, + "Dipstick": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "167226008", + "display": "Urine dipstick test (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 10 + } + }, + "unit": "minutes", + "direct_transition": "Record_Urinalysis" + }, + "Record_Urinalysis": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24357-6", + "display": "Urinalysis macro (dipstick) panel - Urine", + "value_set": "" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5792-7", + "display": "Glucose [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0, + "high": 15 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "2514-8", + "display": "Ketones [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167287002", + "display": "Urine ketones not detected (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5811-5", + "display": "Specific gravity of Urine by Test strip" + } + ], + "range": { + "low": 1.005, + "high": 1.03 + } + }, + { + "category": "laboratory", + "unit": "pH", + "codes": [ + { + "system": "LOINC", + "code": "5803-2", + "display": "pH of Urine by Test strip" + } + ], + "range": { + "low": 5, + "high": 7 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5804-0", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 0, + "high": 14 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5802-4", + "display": "Nitrite [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "314137006", + "display": "Nitrite detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5794-3", + "display": "Hemoglobin [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167300001", + "display": "Urine blood test = + (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5799-2", + "display": "Leukocyte esterase [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "394712000", + "display": "Urine leukocyte test one plus (finding)" + } + } + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "45816000", + "display": "Pyelonephritis (disorder)" + } + ] + }, + "distributions": [ + { + "transition": "Urine Culture", + "distribution": 0.95 + }, + { + "transition": "Terminal", + "distribution": 0.05 + } + ] + }, + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "307426000", + "display": "Acute infective cystitis (disorder)" + } + ] + }, + "distributions": [ + { + "transition": "Urine Culture", + "distribution": 0.55 + }, + { + "transition": "Terminal", + "distribution": 0.44999999999999996 + } + ] + }, + { + "transition": "Terminal" + } + ] + }, + "Urinalysis Micro": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "441550005", + "display": "Urinalysis with reflex to microscopy and culture (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 10 + } + }, + "unit": "minutes", + "direct_transition": "Record_Urinalysis_Micro" + }, + "Record_Urinalysis_Micro": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24357-6", + "display": "Urinalysis macro (dipstick) panel - Urine", + "value_set": "" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5792-7", + "display": "Glucose [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0, + "high": 15 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "2514-8", + "display": "Ketones [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167287002", + "display": "Urine ketones not detected (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5811-5", + "display": "Specific gravity of Urine by Test strip" + } + ], + "range": { + "low": 1.005, + "high": 1.03 + } + }, + { + "category": "laboratory", + "unit": "pH", + "codes": [ + { + "system": "LOINC", + "code": "5803-2", + "display": "pH of Urine by Test strip" + } + ], + "range": { + "low": 5, + "high": 7 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5804-0", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 0, + "high": 14 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5802-4", + "display": "Nitrite [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "314137006", + "display": "Nitrite detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5794-3", + "display": "Hemoglobin [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167300001", + "display": "Urine blood test = + (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5799-2", + "display": "Leukocyte esterase [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "394712000", + "display": "Urine leukocyte test one plus (finding)" + } + }, + { + "category": "laboratory", + "unit": "/[HPF]", + "codes": [ + { + "system": "LOINC", + "code": "5821-4", + "display": "WBCs" + } + ], + "range": { + "low": 11, + "high": 50 + } + }, + { + "category": "laboratory", + "unit": "/[HPF]", + "codes": [ + { + "system": "LOINC", + "code": "13945-1", + "display": "RBCs" + } + ], + "range": { + "low": 1, + "high": 3 + } + }, + { + "category": "laboratory", + "unit": "/[HPF]", + "codes": [ + { + "system": "LOINC", + "code": "5787-7", + "display": "Epithelial Cells" + } + ], + "range": { + "low": 0, + "high": 4 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "24124-0", + "display": "Casts" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167336003", + "display": "Urine microscopy: no casts (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "8247-9", + "display": "Mucus Threads" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "276409005", + "display": "Mucus in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5769-5", + "display": "Bacteria" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "365691004", + "display": "Finding of presence of bacteria (finding)" + } + } + ], + "direct_transition": "Urine Culture Result" + }, + "Urine Culture": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "117010004", + "display": "Urine culture (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 10 + } + }, + "unit": "minutes", + "direct_transition": "Urine Culture Result", + "assign_to_attribute": "UTI_Lab_Send_Out" + }, + "Urine Culture Result": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "UTI_Ambulatory", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "UTI_Tx", + "operator": "is not nil" + } + ] + }, + "distributions": [ + { + "transition": "No Growth", + "distribution": 1 + } + ] + }, + { + "distributions": [ + { + "transition": "E Coli", + "distribution": 0.76 + }, + { + "transition": "Klebsiella", + "distribution": 0.09 + }, + { + "transition": "Enterococcus", + "distribution": 0.05 + }, + { + "transition": "Proteus", + "distribution": 0.04 + }, + { + "transition": "Pseudomonas", + "distribution": 0.02 + }, + { + "transition": "Klebsiella oxytoca", + "distribution": 0.01 + }, + { + "transition": "Citrobacter", + "distribution": 0.01 + }, + { + "transition": "Staphylococcus", + "distribution": 0.01 + } + ] + } + ] + }, + "E Coli": { + "type": "SetAttribute", + "attribute": "UTI_Bacteria", + "direct_transition": "Observe Bacteria", + "value": "Greater than 100,000 colony forming units per mL Escherichia coli" + }, + "Klebsiella": { + "type": "SetAttribute", + "attribute": "UTI_Bacteria", + "direct_transition": "Observe Bacteria", + "value": "Greater than 100,000 colony forming units per mL Klebsiella pneumoniae" + }, + "Enterococcus": { + "type": "SetAttribute", + "attribute": "UTI_Bacteria", + "direct_transition": "Observe Bacteria", + "value": "Greater than 100,000 colony forming units per mL Enterococcus faecalis" + }, + "Proteus": { + "type": "SetAttribute", + "attribute": "UTI_Bacteria", + "direct_transition": "Observe Bacteria", + "value": "Greater than 100,000 colony forming units per mL Proteus mirabilis" + }, + "Pseudomonas": { + "type": "SetAttribute", + "attribute": "UTI_Bacteria", + "direct_transition": "Observe Bacteria", + "value": "Greater than 100,000 colony forming units per mL Pseudomonas aeruginosa" + }, + "Klebsiella oxytoca": { + "type": "SetAttribute", + "attribute": "UTI_Bacteria", + "direct_transition": "Observe Bacteria", + "value": "Greater than 100,000 colony forming units per mL Klebsiella oxytoca" + }, + "Citrobacter": { + "type": "SetAttribute", + "attribute": "UTI_Bacteria", + "direct_transition": "Observe Bacteria", + "value": "Greater than 100,000 colony forming units per mL Citrobacter freundii complex" + }, + "Staphylococcus": { + "type": "SetAttribute", + "attribute": "UTI_Bacteria", + "direct_transition": "Observe Bacteria", + "value": "Greater than 100,000 colony forming units per mL Staphylococcus aureus" + }, + "No Growth": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "630-4", + "display": "Bacteria identified in Urine by Culture", + "value_set": "" + } + ], + "direct_transition": "Terminal", + "value_code": { + "system": "SNOMED-CT", + "code": "264868006", + "display": "No growth (qualifier value)" + } + }, + "Observe Bacteria": { + "type": "Observation", + "category": "laboratory", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "630-4", + "display": "Bacteria identified in Urine by Culture", + "value_set": "" + } + ], + "direct_transition": "Terminal", + "attribute": "UTI_Bacteria" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/uti/telemed_path.json b/src/main/resources/modules/uti/telemed_path.json new file mode 100644 index 0000000..ab67daa --- /dev/null +++ b/src/main/resources/modules/uti/telemed_path.json @@ -0,0 +1,486 @@ +{ + "name": "UTI_Telemed_Path", + "states": { + "Initial": { + "type": "Initial", + "distributed_transition": [ + { + "transition": "UTI_Diagnosis_Encounter", + "distribution": 0.7 + }, + { + "transition": "UTI_Diagnosis_Encounter_Audio_Only", + "distribution": 0.3 + } + ] + }, + "Terminal": { + "type": "Terminal" + }, + "UTI_Diagnosis_Encounter_Audio_Only": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "uti", + "telemedicine_possibility": "always", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185317003", + "display": "Telephone encounter (procedure)" + } + ], + "direct_transition": "Telemed_Procedure" + }, + "UTI_Diagnosis_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "", + "telemedicine_possibility": "always", + "codes": [ + { + "system": "SNOMED-CT", + "code": "453131000124105", + "display": "Videotelephony encounter (procedure)" + } + ], + "direct_transition": "Telemed_Procedure" + }, + "Telemed_Procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "448337001", + "display": "Telemedicine consultation with patient (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 60, + "low": 30 + } + }, + "unit": "minutes", + "direct_transition": "UTI_HPI" + }, + "Risk_Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "45816000", + "display": "Pyelonephritis (disorder)" + } + ] + }, + "transition": "Evaluation" + }, + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "transition": "Referral_to_Ambulatory", + "distribution": 0.9 + }, + { + "transition": "Evaluation", + "distribution": 0.1 + } + ] + }, + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "pregnancy", + "operator": "==", + "value": true + }, + { + "condition_type": "Attribute", + "attribute": "GU_Pregnancy_Check", + "operator": "is not nil" + } + ] + }, + "distributions": [ + { + "transition": "Referral_to_Ambulatory", + "distribution": 0.8 + }, + { + "transition": "Evaluation", + "distribution": 0.2 + } + ] + }, + { + "transition": "Evaluation" + } + ] + }, + "Referral_to_Ambulatory": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183444007", + "display": "Referral for further care (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 15 + } + }, + "unit": "minutes", + "direct_transition": "End_UTI_Diagnosis", + "assign_to_attribute": "UTI_Care_Referral" + }, + "Evaluation": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "386053000", + "display": "Evaluation procedure (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 15 + } + }, + "unit": "minutes", + "distributed_transition": [ + { + "transition": "Referral_to_Labs", + "distribution": 0.1 + }, + { + "transition": "Antibiotics", + "distribution": 0.9 + } + ] + }, + "Referral_to_Labs": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "266753000", + "display": "Referral for laboratory tests (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 15 + } + }, + "unit": "minutes", + "direct_transition": "End_UTI_Diagnosis", + "assign_to_attribute": "UTI_Labs" + }, + "End_UTI_Diagnosis": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Time Delay", + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "UTI_Care_Referral", + "operator": "is not nil" + }, + { + "condition_type": "Attribute", + "attribute": "UTI_Labs", + "operator": "is not nil" + } + ] + } + }, + { + "transition": "Terminal" + } + ] + }, + "Antibiotics": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "281789004", + "display": "Antibiotic therapy (procedure)" + } + ], + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 10 + } + }, + "unit": "minutes", + "direct_transition": "UTI_Abx" + }, + "UTI_HPI": { + "type": "CallSubmodule", + "submodule": "uti/hpi", + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "GU_Pregnancy_Check", + "distribution": 0.7 + }, + { + "transition": "Risk_Check", + "distribution": 0.3 + } + ] + }, + { + "transition": "Risk_Check" + } + ] + }, + "GU_Pregnancy_Check": { + "type": "CallSubmodule", + "submodule": "uti/gu_pregnancy_check", + "direct_transition": "Risk_Check" + }, + "UTI_Abx": { + "type": "CallSubmodule", + "submodule": "uti/abx_tx", + "distributed_transition": [ + { + "transition": "End_UTI_Diagnosis", + "distribution": 0.95 + }, + { + "transition": "Referral_to_Labs", + "distribution": 0.05 + } + ] + }, + "Time Delay": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 48, + "low": 0 + } + }, + "unit": "hours", + "conditional_transition": [ + { + "transition": "Lab Encounter", + "condition": { + "condition_type": "Attribute", + "attribute": "UTI_Labs", + "operator": "is not nil" + } + }, + { + "transition": "Patient Choice", + "condition": { + "condition_type": "Attribute", + "attribute": "UTI_Care_Referral", + "operator": "is not nil" + } + } + ] + }, + "Lab Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "uti", + "telemedicine_possibility": "none", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Labs Sub" + }, + "Labs Sub": { + "type": "CallSubmodule", + "submodule": "uti/labs", + "direct_transition": "End Labs Encounter" + }, + "End Labs Encounter": { + "type": "EncounterEnd", + "direct_transition": "Result Delay" + }, + "Result Delay": { + "type": "Delay", + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 48, + "low": 24 + } + }, + "unit": "hours", + "direct_transition": "Lab Result Encounter" + }, + "Lab Result Encounter": { + "type": "Encounter", + "encounter_class": "virtual", + "reason": "uti", + "telemedicine_possibility": "always", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185316007", + "display": "Indirect encounter (procedure)" + } + ], + "direct_transition": "Follow Up" + }, + "Follow Up": { + "type": "CallSubmodule", + "submodule": "uti/lab_follow_up", + "direct_transition": "End Results Encounter" + }, + "End Results Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Patient Choice": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Attribute", + "attribute": "pregnant", + "operator": "==", + "value": true + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "45816000", + "display": "Pyelonephritis (disorder)" + } + ] + } + ] + }, + "transition": "Emergency Follow Up" + }, + { + "distributions": [ + { + "transition": "Emergency Follow Up", + "distribution": 0.1 + }, + { + "transition": "Ambulatory Encounter", + "distribution": 0.9 + } + ] + } + ] + }, + "Ambulatory Eval": { + "type": "CallSubmodule", + "submodule": "uti/ambulatory_eval", + "direct_transition": "End Ambulatory" + }, + "Ambulatory Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "uti", + "telemedicine_possibility": "none", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "Set UTI_Ambulatory" + }, + "Set UTI_Ambulatory": { + "type": "SetAttribute", + "attribute": "UTI_Ambulatory", + "direct_transition": "Ambulatory Eval", + "value": true + }, + "End Ambulatory": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Result Delay", + "condition": { + "condition_type": "Attribute", + "attribute": "UTI_Lab_Send_Out", + "operator": "is not nil" + } + }, + { + "transition": "Terminal" + } + ] + }, + "Emergency Follow Up": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "uti", + "telemedicine_possibility": "none", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "Set UTI_ED" + }, + "ED Eval": { + "type": "CallSubmodule", + "submodule": "uti/ed_eval", + "direct_transition": "End ED Encounter" + }, + "End ED Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Set UTI_ED": { + "type": "SetAttribute", + "attribute": "UTI_ED", + "direct_transition": "ED Eval", + "value": true + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/veteran.json b/src/main/resources/modules/veteran.json new file mode 100644 index 0000000..225c4c2 --- /dev/null +++ b/src/main/resources/modules/veteran.json @@ -0,0 +1,633 @@ +{ + "name": "Veteran", + "remarks": [ + "Sources:", + "[1] https://factfinder.census.gov/bkmk/table/1.0/en/ACS/16_1YR/B21002", + "[2] https://www.benefits.va.gov/pension/wartimeperiod.asp", + "", + "Relevant conflicts", + " World War II (December 7, 1941 -> December 31, 1946)", + " Korean conflict (June 27, 1950 -> January 31, 1955)", + " Vietnam era (February 28, 1961 -> May 7, 1975)", + " Gulf War (August 2, 1990 -> through a future date to be set by law or Presidential Proclamation)", + "", + "Per [1] , only about 3% of living veterans in 2016 were involved in more than 1 of these conflict, so for simplicity we assume a veteran was only involved in 1.", + "", + "%s are based on age breakdown in the 2015 census estimates. Ex, 57% of men over 75 are veterans and 43% of men over 75 are non-veterans; 2 % of women over 75 are veterans and 98% of women over 75 are non-vets. WW2 ended ~75 years ago so we plug those numbers in for WW2", + "", + "", + "Not quite tabular but added here for reference:", + "Population Group Total population Vet/Nonvet %", + "Estimate; Total: 241816698 ", + "Estimate; Total: - Veteran 20108332 8.32%", + "Estimate; Total: - Nonveteran 221708366 91.68%", + "Estimate; Total: - Male: 117201081 ", + "Estimate; Total: - Male: - Veteran 18529804 15.81%", + "Estimate; Total: - Male: - Nonveteran 98671277 84.19%", + "Estimate; Total: - Male: - 18 to 34 years: 37029758 ", + "Estimate; Total: - Male: - 18 to 34 years: - Veteran 1390821 3.76%", + "Estimate; Total: - Male: - 18 to 34 years: - Nonveteran 35638937 96.24%", + "Estimate; Total: - Male: - 35 to 54 years: 41636969 ", + "Estimate; Total: - Male: - 35 to 54 years: - Veteran 4215934 10.13%", + "Estimate; Total: - Male: - 35 to 54 years: - Nonveteran 37421035 89.87%", + "Estimate; Total: - Male: - 55 to 64 years: 18994676 ", + "Estimate; Total: - Male: - 55 to 64 years: - Veteran 3835781 20.19%", + "Estimate; Total: - Male: - 55 to 64 years: - Nonveteran 15158895 79.81%", + "Estimate; Total: - Male: - 65 to 74 years: 11743784 ", + "Estimate; Total: - Male: - 65 to 74 years: - Veteran 4635676 39.47%", + "Estimate; Total: - Male: - 65 to 74 years: - Nonveteran 7108108 60.53%", + "Estimate; Total: - Male: - 75 years and over: 7795894 ", + "Estimate; Total: - Male: - 75 years and over: - Veteran 4451592 57.10%", + "Estimate; Total: - Male: - 75 years and over: - Nonveteran 3344302 42.90%", + "Estimate; Total: - Female: 124615617 ", + "Estimate; Total: - Female: - Veteran 1578528 1.27%", + "Estimate; Total: - Female: - Nonveteran 123037089 98.73%", + "Estimate; Total: - Female: - 18 to 34 years: 36457348 ", + "Estimate; Total: - Female: - 18 to 34 years: - Veteran 319891 0.88%", + "Estimate; Total: - Female: - 18 to 34 years: - Nonveteran 36137457 99.12%", + "Estimate; Total: - Female: - 35 to 54 years: 42664110 ", + "Estimate; Total: - Female: - 35 to 54 years: - Veteran 687067 1.61%", + "Estimate; Total: - Female: - 35 to 54 years: - Nonveteran 41977043 98.39%", + "Estimate; Total: - Female: - 55 to 64 years: 20418360 ", + "Estimate; Total: - Female: - 55 to 64 years: - Veteran 301390 1.48%", + "Estimate; Total: - Female: - 55 to 64 years: - Nonveteran 20116970 98.52%", + "Estimate; Total: - Female: - 65 to 74 years: 13391383 ", + "Estimate; Total: - Female: - 65 to 74 years: - Veteran 124498 0.93%", + "Estimate; Total: - Female: - 65 to 74 years: - Nonveteran 13266885 99.07%", + "Estimate; Total: - Female: - 75 years and over: 11684416 ", + "Estimate; Total: - Female: - 75 years and over: - Veteran 145682 1.25%", + "Estimate; Total: - Female: - 75 years and over: - Nonveteran 11538734 98.75%", + "" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Wait_Until_18" + }, + "Terminal": { + "type": "Terminal" + }, + "Wait_Until_18": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years" + }, + "conditional_transition": [ + { + "transition": "Late_Gulf_War", + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 2001 + } + }, + { + "transition": "Early_Gulf_War", + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 1990 + } + }, + { + "transition": "Between_VW_and_GW", + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 1975 + } + }, + { + "transition": "Vietnam_War", + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 1961 + } + }, + { + "transition": "Between_KW_and_VW", + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 1955 + } + }, + { + "transition": "Korean_War", + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 1950 + } + }, + { + "transition": "Between_WW2_and_KW", + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 1946 + } + }, + { + "transition": "WW2", + "condition": { + "condition_type": "Date", + "operator": ">", + "year": 1941 + } + }, + { + "transition": "Pre_WW2" + } + ] + }, + "Pre_WW2": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran_population_override", + "operator": "is not nil" + }, + "transition": "Set_Veteran_Pre_WW2" + }, + { + "distributions": [ + { + "transition": "Set_Veteran_Pre_WW2", + "distribution": 0.57 + }, + { + "transition": "Terminal", + "distribution": 0.43 + } + ], + "condition": { + "condition_type": "Gender", + "gender": "M" + } + }, + { + "distributions": [ + { + "transition": "Set_Veteran_Pre_WW2", + "distribution": 0.0125 + }, + { + "transition": "Terminal", + "distribution": 0.9875 + } + ], + "condition": { + "condition_type": "Gender", + "gender": "F" + } + } + ], + "remarks": [ + "Using the same weights as WW2. There will be so few patients from pre-WW2 (minimum age 77) in the general population that the #s aren't critical" + ] + }, + "Set_Veteran_Pre_WW2": { + "type": "SetAttribute", + "attribute": "veteran", + "value": "Pre_WW2", + "direct_transition": "Terminal" + }, + "WW2": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran_population_override", + "operator": "is not nil" + }, + "transition": "Set_Veteran_WW2" + }, + { + "distributions": [ + { + "transition": "Set_Veteran_WW2", + "distribution": 0.57 + }, + { + "transition": "Terminal", + "distribution": 0.43 + } + ], + "condition": { + "condition_type": "Gender", + "gender": "M" + } + }, + { + "distributions": [ + { + "transition": "Set_Veteran_WW2", + "distribution": 0.0125 + }, + { + "transition": "Terminal", + "distribution": 0.9875 + } + ], + "condition": { + "condition_type": "Gender", + "gender": "F" + } + } + ] + }, + "Set_Veteran_WW2": { + "type": "SetAttribute", + "attribute": "veteran", + "value": "WW2", + "direct_transition": "Terminal" + }, + "Between_WW2_and_KW": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran_population_override", + "operator": "is not nil" + }, + "transition": "Set_Veteran_Between_WW2_and_KW" + }, + { + "distributions": [ + { + "transition": "Set_Veteran_Between_WW2_and_KW", + "distribution": 0.3947 + }, + { + "transition": "Terminal", + "distribution": 0.6053 + } + ], + "condition": { + "condition_type": "Gender", + "gender": "M" + } + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "Set_Veteran_Between_WW2_and_KW", + "distribution": 0.0093 + }, + { + "transition": "Terminal", + "distribution": 0.9907 + } + ] + } + ], + "remarks": [ + "Looking at age 65-74 in the dataset" + ] + }, + "Set_Veteran_Between_WW2_and_KW": { + "type": "SetAttribute", + "attribute": "veteran", + "value": "Between_WW2_and_KW", + "direct_transition": "Terminal" + }, + "Korean_War": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran_population_override", + "operator": "is not nil" + }, + "transition": "Set_Veteran_Korean_War" + }, + { + "distributions": [ + { + "transition": "Set_Veteran_Korean_War", + "distribution": 0.2019 + }, + { + "transition": "Terminal", + "distribution": 0.7981 + } + ], + "condition": { + "condition_type": "Gender", + "gender": "M" + } + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "Set_Veteran_Korean_War", + "distribution": 0.0148 + }, + { + "transition": "Terminal", + "distribution": 0.9852 + } + ] + } + ], + "remarks": [ + "Looking at age 55-64 in the dataset, same as Between KW and VW" + ] + }, + "Set_Veteran_Korean_War": { + "type": "SetAttribute", + "attribute": "veteran", + "value": "Korean_War", + "direct_transition": "Terminal" + }, + "Between_KW_and_VW": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran_population_override", + "operator": "is not nil" + }, + "transition": "Set_Veteran_Between_KW_and_VW" + }, + { + "distributions": [ + { + "transition": "Set_Veteran_Between_KW_and_VW", + "distribution": 0.2019 + }, + { + "transition": "Terminal", + "distribution": 0.7981 + } + ], + "condition": { + "condition_type": "Gender", + "gender": "M" + } + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "Set_Veteran_Between_KW_and_VW", + "distribution": 0.0148 + }, + { + "transition": "Terminal", + "distribution": 0.9852 + } + ] + } + ], + "remarks": [ + "Looking at age 55-64 in the dataset" + ] + }, + "Set_Veteran_Between_KW_and_VW": { + "type": "SetAttribute", + "attribute": "veteran", + "value": "Between_KW_and_VW", + "direct_transition": "Terminal" + }, + "Vietnam_War": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran_population_override", + "operator": "is not nil" + }, + "transition": "Set_Veteran_Vietnam_War" + }, + { + "distributions": [ + { + "transition": "Set_Veteran_Vietnam_War", + "distribution": 0.1013 + }, + { + "transition": "Terminal", + "distribution": 0.8987 + } + ], + "condition": { + "condition_type": "Gender", + "gender": "M" + } + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "Set_Veteran_Vietnam_War", + "distribution": 0.0161 + }, + { + "transition": "Terminal", + "distribution": 0.9839 + } + ] + } + ], + "remarks": [ + "Looking at the 35-54 range in the dataset, same as Between VW and GW" + ] + }, + "Set_Veteran_Vietnam_War": { + "type": "SetAttribute", + "attribute": "veteran", + "value": "Vietnam_War", + "direct_transition": "Terminal" + }, + "Between_VW_and_GW": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran_population_override", + "operator": "is not nil" + }, + "transition": "Set_Veteran_Between_VW_and_GW" + }, + { + "distributions": [ + { + "transition": "Set_Veteran_Between_VW_and_GW", + "distribution": 0.1013 + }, + { + "transition": "Terminal", + "distribution": 0.8987 + } + ], + "condition": { + "condition_type": "Gender", + "gender": "M" + } + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "Set_Veteran_Between_VW_and_GW", + "distribution": 0.0161 + }, + { + "transition": "Terminal", + "distribution": 0.9839 + } + ] + } + ], + "remarks": [ + "Looking at the 35-54 range in the dataset" + ] + }, + "Set_Veteran_Between_VW_and_GW": { + "type": "SetAttribute", + "attribute": "veteran", + "value": "Between_VW_and_GW", + "direct_transition": "Terminal" + }, + "Early_Gulf_War": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran_population_override", + "operator": "is not nil" + }, + "transition": "Set_Veteran_Early_Gulf_War" + }, + { + "distributions": [ + { + "transition": "Set_Veteran_Early_Gulf_War", + "distribution": 0.0376 + }, + { + "transition": "Terminal", + "distribution": 0.9624 + } + ], + "condition": { + "condition_type": "Gender", + "gender": "M" + } + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "Set_Veteran_Early_Gulf_War", + "distribution": 0.0088 + }, + { + "transition": "Terminal", + "distribution": 0.9912 + } + ] + } + ], + "remarks": [ + "Looking at the 18-34 range in the dataset, same as Late Gulf War" + ] + }, + "Set_Veteran_Early_Gulf_War": { + "type": "SetAttribute", + "attribute": "veteran", + "value": "Early_Gulf_War", + "direct_transition": "Terminal" + }, + "Late_Gulf_War": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran_population_override", + "operator": "is not nil" + }, + "transition": "Set_Veteran_Late_Gulf_War" + }, + { + "distributions": [ + { + "transition": "Set_Veteran_Late_Gulf_War", + "distribution": 0.0376 + }, + { + "transition": "Terminal", + "distribution": 0.9624 + } + ], + "condition": { + "condition_type": "Gender", + "gender": "M" + } + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "Set_Veteran_Late_Gulf_War", + "distribution": 0.0088 + }, + { + "transition": "Terminal", + "distribution": 0.9912 + } + ] + } + ], + "remarks": [ + "Looking at the 18-34 range in the dataset" + ] + }, + "Set_Veteran_Late_Gulf_War": { + "type": "SetAttribute", + "attribute": "veteran", + "value": "Late_Gulf_War", + "direct_transition": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/veteran_hyperlipidemia.json b/src/main/resources/modules/veteran_hyperlipidemia.json new file mode 100644 index 0000000..3bf06c9 --- /dev/null +++ b/src/main/resources/modules/veteran_hyperlipidemia.json @@ -0,0 +1,834 @@ +{ + "name": "Veteran Hyperlipidemia", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "age guard" + }, + "Terminal": { + "type": "Terminal" + }, + "age guard": { + "type": "Delay", + "direct_transition": "veteran guard", + "range": { + "low": 40, + "high": 80, + "unit": "years" + } + }, + "veteran guard": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "Hyperlipidemia symptom onset 1", + "distribution": 0.397 + }, + { + "transition": "Terminal", + "distribution": 0.603 + } + ] + } + ] + }, + "initial encounter end": { + "type": "EncounterEnd", + "direct_transition": "intra_encounter time gate" + }, + "intra_encounter time gate": { + "type": "Delay", + "exact": { + "quantity": 3, + "unit": "weeks" + }, + "direct_transition": "followup_hyperlipidemia_encounter" + }, + "followup encounter end": { + "type": "EncounterEnd", + "direct_transition": "Time Delay" + }, + "Hyperlipidemia symptom onset 1": { + "type": "Symptom", + "symptom": "weight gain", + "cause": "", + "exact": { + "quantity": 1 + }, + "direct_transition": "Hyperlipidemia Condition Start" + }, + "Hyperlipidemia Condition Start": { + "type": "ConditionOnset", + "assign_to_attribute": "hyperlipidemia", + "target_encounter": "Hyperlipidemia initial workup encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "55822004", + "display": "Hyperlipidemia (disorder)" + } + ], + "direct_transition": "Hyperlipidemia initial workup encounter" + }, + "Hyperlipidemia initial workup encounter": { + "type": "Encounter", + "reason": "hyperlipidemia", + "direct_transition": "Record_LipidPanel", + "wellness": true + }, + "Record_LipidPanel": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "57698-3", + "display": "Lipid panel with direct LDL - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Total Cholesterol", + "codes": [ + { + "system": "LOINC", + "code": "2093-3", + "display": "Cholesterol [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 205, + "high": 305 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2571-8", + "display": "Triglycerides" + } + ], + "unit": "mg/dL", + "range": { + "low": 100, + "high": 400 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "18262-6", + "display": "Low Density Lipoprotein Cholesterol" + } + ], + "unit": "mg/dL", + "range": { + "low": 101, + "high": 200 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2085-9", + "display": "Cholesterol in HDL [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 20, + "high": 65 + } + } + ], + "direct_transition": "Record_CMP" + }, + "followup_hyperlipidemia_encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "hyperlipidemia", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "hyperlipidemia careplan" + }, + "hyperlipidemia careplan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736285004", + "display": "Hyperlipidemia clinical management plan (record artifact)" + } + ], + "direct_transition": "Hyperlipidemia medication start", + "reason": "hyperlipidemia", + "activities": [ + { + "system": "SNOMED-CT", + "code": "183063000", + "display": "Low salt diet education (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "183301007", + "display": "Physical exercises (regime/therapy)" + } + ] + }, + "Hyperlipidemia medication start": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 314231, + "display": "Simvastatin 10 MG Oral Tablet" + } + ], + "direct_transition": "followup encounter end", + "reason": "hyperlipidemia", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "refills": 10 + }, + "assign_to_attribute": "statin_initial" + }, + "Record_CMP": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2339-0", + "display": "Glucose [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "6299-2", + "display": "Urea nitrogen [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "38483-4", + "display": "Creatinine [Mass/volume] in Blood" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.5, + "high": 3.5 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "49765-1", + "display": "Calcium [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2947-0", + "display": "Sodium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "6298-4", + "display": "Potassium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2069-3", + "display": "Chloride [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "20565-8", + "display": "Carbon dioxide, total [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 65, + "high": 90 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 3.5, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "g/L", + "codes": [ + { + "system": "LOINC", + "code": "10834-0", + "display": "Globulin [Mass/volume] in Serum by calculation" + } + ], + "range": { + "low": 2, + "high": 3.5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.1, + "high": 1.2 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 20, + "high": 140 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 20, + "high": 60 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 40 + } + } + ], + "direct_transition": "initial encounter end" + }, + "Time Delay": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "years" + }, + "direct_transition": "annual_hyperlipidemia_assessment" + }, + "annual_hyperlipidemia_assessment": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "hyperlipidemia", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "direct_transition": "Record_CMP_2" + }, + "Record_CMP_2": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2339-0", + "display": "Glucose [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "6299-2", + "display": "Urea nitrogen [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "38483-4", + "display": "Creatinine [Mass/volume] in Blood" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.5, + "high": 3.5 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "49765-1", + "display": "Calcium [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2947-0", + "display": "Sodium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "6298-4", + "display": "Potassium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2069-3", + "display": "Chloride [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "20565-8", + "display": "Carbon dioxide, total [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 65, + "high": 90 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 3.5, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "g/L", + "codes": [ + { + "system": "LOINC", + "code": "10834-0", + "display": "Globulin [Mass/volume] in Serum by calculation" + } + ], + "range": { + "low": 2, + "high": 3.5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.1, + "high": 1.2 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 20, + "high": 140 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 20, + "high": 60 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 40 + } + } + ], + "direct_transition": "Record_LipidPanel_2" + }, + "Record_LipidPanel_2": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "57698-3", + "display": "Lipid panel with direct LDL - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2093-3", + "display": "Cholesterol [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 150, + "high": 210 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2571-8", + "display": "Triglycerides" + } + ], + "unit": "mg/dL", + "range": { + "low": 100, + "high": 200 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "18262-6", + "display": "Low Density Lipoprotein Cholesterol" + } + ], + "unit": "mg/dL", + "range": { + "low": 80, + "high": 150 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "2085-9", + "display": "Cholesterol in HDL [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL", + "range": { + "low": 30, + "high": 80 + } + } + ], + "conditional_transition": [ + { + "transition": "end old statin", + "condition": { + "condition_type": "Attribute", + "attribute": "statin_initial", + "operator": "is not nil" + } + }, + { + "transition": "Hyperlipidemia_medication_renewal" + } + ] + }, + "end encounter": { + "type": "EncounterEnd", + "direct_transition": "Time Delay" + }, + "end old statin": { + "type": "MedicationEnd", + "direct_transition": "Hyperlipidemia_medication_renewal", + "referenced_by_attribute": "statin_initial" + }, + "Hyperlipidemia_medication_renewal": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 314231, + "display": "Simvastatin 10 MG Oral Tablet" + } + ], + "reason": "hyperlipidemia", + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 30, + "unit": "days" + }, + "refills": 12 + }, + "assign_to_attribute": "statin_renewal", + "direct_transition": "end encounter" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/veteran_lung_cancer.json b/src/main/resources/modules/veteran_lung_cancer.json new file mode 100644 index 0000000..6c65f41 --- /dev/null +++ b/src/main/resources/modules/veteran_lung_cancer.json @@ -0,0 +1,1079 @@ +{ + "name": "Veteran Lung Cancer", + "remarks": [ + "Most of the data for this module was synthesized from two primary sources:", + "1. The comprehensive pages starting at http://www.cancer.org/cancer/lungcancer/index", + "2. The Cancer Care Ontario Pathway Maps at https://www.cancercare.on.ca/ocs/qpi/dispathmgmt/pathways/lung_cancer_pathway_map/", + "Some data statistics came from:", + "3. The American Lung Association Lung Cancer Fact Sheet @ http://www.lung.org/lung-health-and-diseases/lung-disease-lookup/lung-cancer/learn-about-lung-cancer/lung-cancer-fact-sheet.html", + "4. https://www.verywell.com/what-percentage-of-smokers-get-lung-cancer-2248868", + "5. Life Expectancies: http://www.healthcommunities.com/lung-cancer/prognosis.shtml" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Veteran_Guard" + }, + "Ages_45_65": { + "type": "Delay", + "range": { + "low": 45, + "high": 65, + "unit": "years" + }, + "direct_transition": "smoking_status", + "remarks": [ + "Lung cancer mainly occurs in older people. About 2 out of 3 people diagnosed with lung cancer are 65 or older, while less than 2% are younger than 45. The average age at the time of diagnosis is about 70.", + "http://www.cancer.org/cancer/lungcancer-non-smallcell/detailedguide/non-small-cell-lung-cancer-key-statistics" + ] + }, + "Onset_Lung_Cancer": { + "type": "SetAttribute", + "attribute": "lung_cancer", + "value": true, + "direct_transition": "Init_Lung_Cancer_Counter" + }, + "Init_Lung_Cancer_Counter": { + "type": "SetAttribute", + "attribute": "lung_cancer_nondiagnosis_counter", + "value": 0, + "direct_transition": "Undiagnosed_Lung_Cancer" + }, + "Undiagnosed_Lung_Cancer": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "months" + }, + "distributed_transition": [ + { + "distribution": { + "attribute": "probability_of_lung_cancer_treatment", + "default": 0.2 + }, + "transition": "Cough" + }, + { + "distribution": { + "attribute": "probability_of_no_lung_cancer_treatment", + "default": 0.8 + }, + "transition": "Increment_Counter" + } + ] + }, + "Increment_Counter": { + "type": "Counter", + "action": "increment", + "attribute": "lung_cancer_nondiagnosis_counter", + "direct_transition": "Undiagnosed_Lung_Cancer" + }, + "Cough": { + "type": "Symptom", + "symptom": "Cough", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Chest Pain" + }, + "Chest Pain": { + "type": "Symptom", + "symptom": "Chest Pain", + "range": { + "low": 50, + "high": 100 + }, + "direct_transition": "Suspected Lung Cancer" + }, + "Suspected Lung Cancer": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter I", + "assign_to_attribute": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "162573006", + "display": "Suspected lung cancer (situation)" + } + ], + "direct_transition": "Diagnosis Encounter I" + }, + "Diagnosis Encounter I": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "Chest X-Ray" + }, + "Chest X-Ray": { + "type": "Procedure", + "reason": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "399208008", + "display": "Plain X-ray of chest (procedure)" + } + ], + "duration": { + "low": 10, + "high": 25, + "unit": "minutes" + }, + "direct_transition": "End_Diagnosis_Encounter_I" + }, + "End_Diagnosis_Encounter_I": { + "type": "EncounterEnd", + "direct_transition": "Schedule Follow Up I" + }, + "Schedule Follow Up I": { + "type": "Delay", + "range": { + "low": 2, + "high": 9, + "unit": "days" + }, + "direct_transition": "Diagnosis Encounter II" + }, + "Diagnosis Encounter II": { + "type": "Encounter", + "encounter_class": "outpatient", + "reason": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Chest CT Scan" + }, + "Chest CT Scan": { + "type": "Procedure", + "reason": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "418891003", + "display": "Computed tomography of chest and abdomen (procedure)" + } + ], + "duration": { + "low": 20, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "End_Diagnosis_Encounter_II" + }, + "End_Diagnosis_Encounter_II": { + "type": "EncounterEnd", + "direct_transition": "Schedule Follow Up II" + }, + "Schedule Follow Up II": { + "type": "Delay", + "range": { + "low": 1, + "high": 9, + "unit": "days" + }, + "distributed_transition": [ + { + "distribution": 0.85, + "transition": "Non-Small Cell Lung Cancer" + }, + { + "distribution": 0.15, + "transition": "Small Cell Lung Cancer" + } + ], + "remarks": [ + "About 85% of lung cancers are non-small cell lung cancers.", + "About 10%-15% of lung cancers are small cell lung cancers.", + "http://www.cancer.org/cancer/lungcancer/index" + ] + }, + "Non-Small Cell Lung Cancer": { + "type": "SetAttribute", + "attribute": "Lung Cancer Type", + "value": "NSCLC", + "direct_transition": "NSCLC" + }, + "NSCLC": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter III", + "assign_to_attribute": "Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "254637007", + "display": "Non-small cell lung cancer (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter III" + }, + "Small Cell Lung Cancer": { + "type": "SetAttribute", + "attribute": "Lung Cancer Type", + "value": "SCLC", + "direct_transition": "SCLC" + }, + "SCLC": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter III", + "assign_to_attribute": "Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "254632001", + "display": "Small cell carcinoma of lung (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter III" + }, + "Diagnosis Encounter III": { + "type": "Encounter", + "encounter_class": "outpatient", + "reason": "Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "distributed_transition": [ + { + "distribution": 0.25, + "transition": "Sputum Cytology (Phelgm)" + }, + { + "distribution": 0.25, + "transition": "Thoracentesis (Fluid)" + }, + { + "distribution": 0.25, + "transition": "Needle Biopsy (Cells)" + }, + { + "distribution": 0.25, + "transition": "Bronchoscopy (Tube)" + } + ] + }, + "Sputum Cytology (Phelgm)": { + "type": "Procedure", + "reason": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "167995008", + "display": "Sputum microscopy (procedure)" + } + ], + "direct_transition": "End_Diagnosis_Encounter_III" + }, + "Thoracentesis (Fluid)": { + "type": "Procedure", + "reason": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91602002", + "display": "Thoracentesis (procedure)" + } + ], + "direct_transition": "End_Diagnosis_Encounter_III" + }, + "Needle Biopsy (Cells)": { + "type": "Procedure", + "reason": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "432231006", + "display": "Fine needle aspiration biopsy of lung (procedure)" + } + ], + "direct_transition": "End_Diagnosis_Encounter_III" + }, + "Bronchoscopy (Tube)": { + "type": "Procedure", + "reason": "Suspected Lung Cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "85765000", + "display": "Fiberoptic bronchoscopy (procedure)" + } + ], + "direct_transition": "End_Diagnosis_Encounter_III" + }, + "End_Diagnosis_Encounter_III": { + "type": "EncounterEnd", + "direct_transition": "Schedule Follow Up III" + }, + "Schedule Follow Up III": { + "type": "Delay", + "range": { + "low": 1, + "high": 3, + "unit": "days" + }, + "remarks": [ + "See Stage Distribution (%) 2006-2012, Case Counts and Percentages", + "http://seer.cancer.gov/csr/1975_2013/browse_csr.php?sectionSEL=15&pageSEL=sect_15_table.14.html", + "http://seer.cancer.gov/csr/1975_2013/browse_csr.php?sectionSEL=15&pageSEL=sect_15_table.13.html", + "only 15 percent of lung cancer cases are diagnosed at an early stage.", + "http://www.lung.org/lung-health-and-diseases/lung-disease-lookup/lung-cancer/learn-about-lung-cancer/lung-cancer-fact-sheet.html", + "updated remarks 2017-08-31:", + "http://oregon.providence.org/our-services/a/ask-a-providence-expert/forms-and-information/ask-an-expert-lung-cancer-growth-and-spread/", + "It takes at least 30 divisions of one cancer cell to create a tumor that is 1 centimeter in size (about half an inch).", + "That is the smallest size likely to be seen on an X-ray. It takes about three to six months for most lung cancers to double their size. ", + "Therefore, it could take several years for a typical lung cancer to reach a size at which it could be diagnosed on a chest X-ray. " + ], + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "lung_cancer_nondiagnosis_counter", + "operator": "<=", + "value": 36 + }, + "transition": "Stage I" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "lung_cancer_nondiagnosis_counter", + "operator": "<=", + "value": 72 + }, + "transition": "Stage II" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "lung_cancer_nondiagnosis_counter", + "operator": "<=", + "value": 108 + }, + "transition": "Stage III" + }, + { + "transition": "Stage IV" + } + ] + }, + "Stage I": { + "type": "Death", + "range": { + "low": 2, + "high": 6, + "unit": "years" + }, + "referenced_by_attribute": "Lung Cancer", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "SCLC" + }, + "transition": "SCLC I" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "NSCLC" + }, + "transition": "NSCLC I" + } + ] + }, + "Stage II": { + "type": "Death", + "range": { + "low": 16, + "high": 28, + "unit": "months" + }, + "referenced_by_attribute": "Lung Cancer", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "SCLC" + }, + "transition": "SCLC II" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "NSCLC" + }, + "transition": "NSCLC II" + } + ] + }, + "Stage III": { + "type": "Death", + "range": { + "low": 9, + "high": 18, + "unit": "months" + }, + "referenced_by_attribute": "Lung Cancer", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "SCLC" + }, + "transition": "SCLC III" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "NSCLC" + }, + "transition": "NSCLC III" + } + ] + }, + "Stage IV": { + "type": "Death", + "range": { + "low": 6, + "high": 10, + "unit": "months" + }, + "referenced_by_attribute": "Lung Cancer", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "SCLC" + }, + "transition": "SCLC IV" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "NSCLC" + }, + "transition": "NSCLC IV" + } + ] + }, + "NSCLC I": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter IV", + "assign_to_attribute": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "424132000", + "display": "Non-small cell carcinoma of lung, TNM stage 1 (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter IV" + }, + "NSCLC II": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter IV", + "assign_to_attribute": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "425048006", + "display": "Non-small cell carcinoma of lung, TNM stage 2 (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter IV" + }, + "NSCLC III": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter IV", + "assign_to_attribute": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "422968005", + "display": "Non-small cell carcinoma of lung, TNM stage 3 (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter IV" + }, + "NSCLC IV": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter IV", + "assign_to_attribute": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "423121009", + "display": "Non-small cell carcinoma of lung, TNM stage 4 (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter IV" + }, + "SCLC I": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter IV", + "assign_to_attribute": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "67811000119102", + "display": "Primary small cell malignant neoplasm of lung, TNM stage 1 (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter IV" + }, + "SCLC II": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter IV", + "assign_to_attribute": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "67821000119109", + "display": "Primary small cell malignant neoplasm of lung, TNM stage 2 (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter IV" + }, + "SCLC III": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter IV", + "assign_to_attribute": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "67831000119107", + "display": "Primary small cell malignant neoplasm of lung, TNM stage 3 (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter IV" + }, + "SCLC IV": { + "type": "ConditionOnset", + "target_encounter": "Diagnosis Encounter IV", + "assign_to_attribute": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "67841000119103", + "display": "Primary small cell malignant neoplasm of lung, TNM stage 4 (disorder)" + } + ], + "direct_transition": "Diagnosis Encounter IV" + }, + "Diagnosis Encounter IV": { + "type": "Encounter", + "encounter_class": "outpatient", + "reason": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Lung_Cancer_CarePlan" + }, + "Lung_Cancer_CarePlan": { + "type": "CarePlanStart", + "reason": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "182964004", + "display": "Terminal care (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "133918004", + "display": "Comfort measures (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "408957008", + "display": "Chronic pain control management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "243072006", + "display": "Cancer education (procedure)" + } + ], + "direct_transition": "MRI Brain" + }, + "MRI Brain": { + "type": "Procedure", + "reason": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "698354004", + "display": "Magnetic resonance imaging for measurement of brain volume (procedure)" + } + ], + "duration": { + "low": 30, + "high": 120, + "unit": "minutes" + }, + "distributed_transition": [ + { + "transition": "Stem Cells", + "distribution": 0.01 + }, + { + "transition": "End_Diagnosis_Encounter_IV", + "distribution": 0.99 + } + ] + }, + "End_Diagnosis_Encounter_IV": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "SCLC" + }, + "transition": "SCLC Treatment Path" + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "Lung Cancer Type", + "operator": "==", + "value": "NSCLC" + }, + "transition": "NSCLC Treatment Path" + } + ] + }, + "SCLC Treatment Path": { + "type": "Simple", + "direct_transition": "SCLC Treatment Encounter" + }, + "SCLC Treatment Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "reason": "Lung Cancer Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Set_SCLC_LOS" + }, + "SCLC Chemotheraphy I": { + "type": "MedicationOrder", + "reason": "Lung Cancer Condition", + "assign_to_attribute": "chemotherapy1", + "remarks": [ + "SCLC is generally treated with combinations of chemotherapy drugs. The combinations most often used are: Cisplatin and etoposide", + "http://www.cancer.org/cancer/lungcancer-smallcell/detailedguide/small-cell-lung-cancer-treating-chemotherapy" + ], + "codes": [ + { + "system": "RxNorm", + "code": "1736854", + "display": "Cisplatin 50 MG Injection" + } + ], + "direct_transition": "SCLC Chemotheraphy IB", + "administration": true + }, + "SCLC Chemotheraphy IB": { + "type": "MedicationEnd", + "referenced_by_attribute": "chemotherapy1", + "direct_transition": "SCLC Chemotheraphy II" + }, + "SCLC Chemotheraphy II": { + "type": "MedicationOrder", + "reason": "Lung Cancer Condition", + "assign_to_attribute": "chemotherapy2", + "remarks": [ + "SCLC is generally treated with combinations of chemotherapy drugs. The combinations most often used are: Cisplatin and etoposide", + "http://www.cancer.org/cancer/lungcancer-smallcell/detailedguide/small-cell-lung-cancer-treating-chemotherapy" + ], + "codes": [ + { + "system": "RxNorm", + "code": "226719", + "display": "Etoposide 100 MG Injection" + } + ], + "direct_transition": "SCLC Chemotheraphy IIB", + "administration": true + }, + "SCLC Chemotheraphy IIB": { + "type": "MedicationEnd", + "referenced_by_attribute": "chemotherapy2", + "direct_transition": "SCLC Radiation" + }, + "SCLC Radiation": { + "type": "Procedure", + "reason": "Lung Cancer Condition", + "remarks": [ + "The type of radiation therapy most often used to treat SCLC is called external beam radiation therapy (EBRT).", + "http://www.cancer.org/cancer/lungcancer-smallcell/detailedguide/small-cell-lung-cancer-treating-radiation-therapy" + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "703423002", + "display": "Combined chemotherapy and radiation therapy (procedure)" + } + ], + "duration": { + "low": 0.5, + "high": 4, + "unit": "hours" + }, + "direct_transition": "Delay" + }, + "End_SCLC_Treatment_Encounter": { + "type": "EncounterEnd", + "direct_transition": "SCLC Treatment Delay" + }, + "SCLC Treatment Delay": { + "type": "Delay", + "range": { + "low": 21, + "high": 28, + "unit": "days" + }, + "remarks": [ + "Doctors give chemo in cycles, with a period of treatment (usually 1 to 3 days) followed by a rest period to allow your body time to recover. Each cycle generally lasts about 3 to 4 weeks", + "http://www.cancer.org/cancer/lungcancer-smallcell/detailedguide/small-cell-lung-cancer-treating-chemotherapy", + "Most often, radiation as part of the initial treatment for SCLC is given once or twice daily, 5 days a week, for 3 to 7 weeks.", + "http://www.cancer.org/cancer/lungcancer-smallcell/detailedguide/small-cell-lung-cancer-treating-radiation-therapy" + ], + "direct_transition": "SCLC Treatment Path" + }, + "NSCLC Treatment Path": { + "type": "Simple", + "direct_transition": "NSCLC Treatment Encounter" + }, + "NSCLC Treatment Encounter": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Set_NSCLC_LOS", + "reason": "Lung Cancer Condition" + }, + "NSCLC Chemotheraphy I": { + "type": "MedicationOrder", + "reason": "Lung Cancer Condition", + "assign_to_attribute": "chemotherapy1", + "remarks": [ + "Most often, treatment for NSCLC uses a combination of 2 chemo drugs.", + "If a combination is used, it often includes cisplatin or carboplatin plus one other drug", + "http://www.cancer.org/cancer/lungcancer-non-smallcell/detailedguide/non-small-cell-lung-cancer-treating-chemotherapy" + ], + "codes": [ + { + "system": "RxNorm", + "code": "1736854", + "display": "Cisplatin 50 MG Injection" + } + ], + "direct_transition": "NSCLC Chemotheraphy IB", + "administration": true + }, + "NSCLC Chemotheraphy IB": { + "type": "MedicationEnd", + "referenced_by_attribute": "chemotherapy1", + "direct_transition": "NSCLC Chemotheraphy II" + }, + "NSCLC Chemotheraphy II": { + "type": "MedicationOrder", + "reason": "Lung Cancer Condition", + "assign_to_attribute": "chemotherapy2", + "remarks": [ + "The chemo drugs most often used for NSCLC include ... Paclitaxel (Taxol)", + "http://www.cancer.org/cancer/lungcancer-non-smallcell/detailedguide/non-small-cell-lung-cancer-treating-chemotherapy" + ], + "codes": [ + { + "system": "RxNorm", + "code": "583214", + "display": "PACLitaxel 100 MG Injection" + } + ], + "direct_transition": "NSCLC Chemotheraphy IIB", + "administration": true + }, + "NSCLC Chemotheraphy IIB": { + "type": "MedicationEnd", + "referenced_by_attribute": "chemotherapy2", + "direct_transition": "NSCLC Radiation" + }, + "NSCLC Radiation": { + "type": "Procedure", + "reason": "Lung Cancer Condition", + "remarks": [ + "External beam radiation therapy (EBRT) focuses radiation from outside the body on the cancer. This is the type of radiation therapy most often used to treat NSCLC or its spread to other organs.", + "http://www.cancer.org/cancer/lungcancer-non-smallcell/detailedguide/non-small-cell-lung-cancer-treating-radiation-therapy" + ], + "codes": [ + { + "system": "SNOMED-CT", + "code": "703423002", + "display": "Combined chemotherapy and radiation therapy (procedure)" + } + ], + "duration": { + "low": 0.5, + "high": 4, + "unit": "hours" + }, + "direct_transition": "Delay_2" + }, + "End_NSCLC_Treatment_Encounter": { + "type": "EncounterEnd", + "direct_transition": "NSCLC Treatment Delay" + }, + "NSCLC Treatment Delay": { + "type": "Delay", + "range": { + "low": 28, + "high": 35, + "unit": "days" + }, + "remarks": [ + "Doctors give chemo in cycles, with a period of treatment (usually 1 to 3 days) followed by a rest period to allow the body time to recover. Some chemo drugs, though, are given every day. Chemo cycles generally last about 3 to 4 weeks.", + "http://www.cancer.org/cancer/lungcancer-non-smallcell/detailedguide/non-small-cell-lung-cancer-treating-radiation-therapy", + "Most often, radiation treatments to the lungs are given 5 days a week for 5 to 7 weeks", + "http://www.cancer.org/cancer/lungcancer-non-smallcell/detailedguide/non-small-cell-lung-cancer-treating-radiation-therapy" + ], + "direct_transition": "NSCLC Treatment Path" + }, + "Terminal": { + "type": "Terminal" + }, + "Veteran_Guard": { + "type": "Guard", + "allow": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "is not nil" + }, + "direct_transition": "Ages_45_65" + }, + "smoking_status": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "veteran_smoker", + "condition": { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "is not nil" + } + }, + { + "transition": "veteran_non_smoker", + "condition": { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "is nil" + } + } + ] + }, + "veteran_smoker": { + "type": "Simple", + "direct_transition": "smoker_Lung Cancer Probabilities" + }, + "veteran_non_smoker": { + "type": "Simple", + "direct_transition": "non_smoker_Lung Cancer Probabilities" + }, + "non_smoker_Lung Cancer Probabilities": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": { + "attribute": "probability_of_lung_cancer", + "default": 0.0645 + }, + "transition": "Onset_Lung_Cancer" + }, + { + "distribution": { + "attribute": "probability_of_no_lung_cancer", + "default": 0.93355 + }, + "transition": "Terminal" + } + ], + "remarks": [ + "Overall, the chance that a man will develop lung cancer in his lifetime is about 1 in 14; for a woman, the risk is about 1 in 17.", + "http://www.cancer.org/cancer/lungcancer-non-smallcell/detailedguide/non-small-cell-lung-cancer-key-statistics", + "Men who smoke are 23 times more likely to develop lung cancer. Women are 13 times more likely, compared to never smokers.", + "http://www.lung.org/lung-health-and-diseases/lung-disease-lookup/lung-cancer/learn-about-lung-cancer/lung-cancer-fact-sheet.html", + "In a 2006 European study, the risk of developing lung cancer was: 0.2 percent for men who never smoked (0.4% for women); 5.5 percent of male former smokers (2.6% in women); 15.9 percent of current male smokers (9.5% for women); 24.4 percent for male “heavy smokers” defined as smoking more than 5 cigarettes per day (18.5 percent for women)", + "https://www.verywell.com/what-percentage-of-smokers-get-lung-cancer-2248868" + ] + }, + "smoker_Lung Cancer Probabilities": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Onset_Lung_Cancer", + "distribution": 0.3 + }, + { + "transition": "Terminal", + "distribution": 0.7 + } + ] + }, + "Set_SCLC_LOS": { + "type": "SetAttribute", + "attribute": "lung_cancer_los", + "distribution": { + "kind": "EXPONENTIAL", + "round": true, + "parameters": { + "mean": 3 + } + }, + "direct_transition": "Minimum_of_3_days" + }, + "Begin_SCLC_Day": { + "type": "Counter", + "attribute": "lung_cancer_los", + "action": "decrement", + "direct_transition": "SCLC Chemotheraphy I" + }, + "Delay": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "unit": "days", + "conditional_transition": [ + { + "transition": "Begin_SCLC_Day", + "condition": { + "condition_type": "Attribute", + "attribute": "lung_cancer_los", + "operator": ">", + "value": 0 + } + }, + { + "transition": "End_SCLC_Treatment_Encounter" + } + ] + }, + "Set_NSCLC_LOS": { + "type": "SetAttribute", + "attribute": "lung_cancer_los", + "distribution": { + "kind": "EXPONENTIAL", + "round": true, + "parameters": { + "mean": 3 + } + }, + "direct_transition": "Minimum_of_3_days_2" + }, + "Begin_NSCLC_Day": { + "type": "Counter", + "attribute": "lung_cancer_los", + "action": "decrement", + "direct_transition": "NSCLC Chemotheraphy I" + }, + "Delay_2": { + "type": "Delay", + "distribution": { + "kind": "EXACT", + "parameters": { + "value": 1 + } + }, + "unit": "days", + "conditional_transition": [ + { + "transition": "Begin_NSCLC_Day", + "condition": { + "condition_type": "Attribute", + "attribute": "lung_cancer_los", + "operator": ">", + "value": 0 + } + }, + { + "transition": "End_NSCLC_Treatment_Encounter" + } + ] + }, + "Minimum_of_3_days": { + "type": "Counter", + "attribute": "lung_cancer_los", + "action": "increment", + "amount": 2, + "direct_transition": "Begin_SCLC_Day" + }, + "Minimum_of_3_days_2": { + "type": "Counter", + "attribute": "lung_cancer_los", + "action": "increment", + "amount": 2, + "direct_transition": "Begin_NSCLC_Day" + }, + "Stem Cells": { + "type": "SetAttribute", + "attribute": "bone_marrow", + "direct_transition": "End_Diagnosis_Encounter_IV", + "value": true + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/veteran_mdd.json b/src/main/resources/modules/veteran_mdd.json new file mode 100644 index 0000000..42a8032 --- /dev/null +++ b/src/main/resources/modules/veteran_mdd.json @@ -0,0 +1,765 @@ +{ + "name": "Veteran MDD", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "age guard" + }, + "Terminal": { + "type": "Terminal" + }, + "Female": { + "type": "Simple", + "remarks": [ + "Females suffer depression at rates 2x than males (www.americanhealthrankings.com), cited by VA", + "Age related and War Era related distributions of MDD provided by " + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "==", + "value": "Late_Gulf_War" + }, + "distributions": [ + { + "transition": "MDD Episode", + "distribution": 0.15 + }, + { + "transition": "Terminal", + "distribution": 0.85 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "==", + "value": "Early_Gulf_War" + }, + "distributions": [ + { + "transition": "MDD Episode", + "distribution": 0.25 + }, + { + "transition": "Terminal", + "distribution": 0.75 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "==", + "value": "Between_VW_and_GW" + }, + "distributions": [ + { + "transition": "MDD Episode", + "distribution": 0.23 + }, + { + "transition": "Terminal", + "distribution": 0.77 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "==", + "value": "Vietnam_War" + }, + "distributions": [ + { + "transition": "MDD Episode", + "distribution": 0.16 + }, + { + "transition": "Terminal", + "distribution": 0.84 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "==", + "value": "Between_KW_and_VW" + }, + "distributions": [ + { + "transition": "MDD Episode", + "distribution": 0.15 + }, + { + "transition": "Terminal", + "distribution": 0.85 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "==", + "value": "Korean_War" + }, + "distributions": [ + { + "transition": "MDD Episode", + "distribution": 0.06 + }, + { + "transition": "Terminal", + "distribution": 0.94 + } + ] + } + ] + }, + "Male": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "==", + "value": "Late_Gulf_War" + }, + "distributions": [ + { + "transition": "MDD Episode", + "distribution": 0.156 + }, + { + "transition": "Terminal", + "distribution": 0.844 + } + ] + }, + { + "distributions": [ + { + "transition": "MDD Episode", + "distribution": 0.155 + }, + { + "transition": "Terminal", + "distribution": 0.845 + } + ], + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "==", + "value": "Early_Gulf_War" + } + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "==", + "value": "Between_VW_and_GW" + }, + "distributions": [ + { + "transition": "MDD Episode", + "distribution": 0.225 + }, + { + "transition": "Terminal", + "distribution": 0.775 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "==", + "value": "Vietnam_War" + }, + "distributions": [ + { + "transition": "MDD Episode", + "distribution": 0.09 + }, + { + "transition": "Terminal", + "distribution": 0.91 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "==", + "value": "Between_KW_and_VW" + }, + "distributions": [ + { + "transition": "MDD Episode", + "distribution": 0.07 + }, + { + "transition": "Terminal", + "distribution": 0.93 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "==", + "value": "Korean_War" + }, + "distributions": [ + { + "transition": "MDD Episode", + "distribution": 0.05 + }, + { + "transition": "Terminal", + "distribution": 0.95 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "==", + "value": "Between_WW2_and_KW" + }, + "distributions": [ + { + "transition": "MDD Episode", + "distribution": 0.03 + }, + { + "transition": "Terminal", + "distribution": 0.97 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "==", + "value": "WW2" + }, + "distributions": [ + { + "transition": "MDD Episode", + "distribution": 0.02 + }, + { + "transition": "Terminal", + "distribution": 0.98 + } + ] + } + ] + }, + "Veteran": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Female", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "Male", + "condition": { + "condition_type": "Gender", + "gender": "M" + } + } + ] + }, + "Non_Veteran": { + "type": "Simple", + "direct_transition": "Terminal" + }, + "end_Psych_encounter": { + "type": "EncounterEnd", + "direct_transition": "therapy_delay" + }, + "end re_evaluation_medication": { + "type": "MedicationEnd", + "direct_transition": "MDD Medication Order", + "referenced_by_attribute": "ssri" + }, + "MDD Episode": { + "type": "ConditionOnset", + "assign_to_attribute": "mdd", + "target_encounter": "MDD_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "36923009", + "display": "Major depression, single episode (disorder)" + } + ], + "direct_transition": "Time Gate" + }, + "Time Gate": { + "type": "Delay", + "exact": { + "quantity": 6, + "unit": "weeks" + }, + "direct_transition": "MDD_Encounter" + }, + "MDD_Initial_Careplan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "718347000", + "display": "Mental health care plan (record artifact)" + } + ], + "assign_to_attribute": "MDD care plan", + "reason": "mdd", + "activities": [ + { + "system": "SNOMED-CT", + "code": "79094001", + "display": "Initial psychiatric interview with mental status and evaluation (procedure)" + } + ], + "direct_transition": "end_MDD_Encounter" + }, + "end_MDD_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Initial_Psychiatric_MDD_Encounter", + "discharge_disposition": { + "system": "NUBC", + "code": "01", + "display": "Discharged home safe" + } + }, + "Initial_Psychiatric_MDD_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "79094001", + "display": "Initial psychiatric interview with mental status and evaluation (procedure)" + } + ], + "reason": "mdd", + "distributed_transition": [ + { + "transition": "Positive_PHQ9", + "distribution": 0.9 + }, + { + "transition": "Negative_PHQ9", + "distribution": 0.1 + } + ] + }, + "MDD Diagnosis": { + "type": "ConditionOnset", + "assign_to_attribute": "mdd_psych", + "target_encounter": "Initial_Psychiatric_MDD_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "370143000", + "display": "Major depressive disorder (disorder)" + } + ], + "distributed_transition": [ + { + "transition": "Change_Dx_Not_MDD", + "distribution": 0.1 + }, + { + "transition": "MDD_Careplan_Psych", + "distribution": 0.2 + }, + { + "transition": "MDD_Careplan_Psych_and_Rx", + "distribution": 0.4 + }, + { + "transition": "MDD_Careplan_Rx_ONLY", + "distribution": 0.3 + } + ] + }, + "Change_Dx_Not_MDD": { + "type": "ConditionEnd", + "direct_transition": "end_MDD_Re_evaluation Encounter", + "referenced_by_attribute": "mdd" + }, + "end_MDD_Re_evaluation Encounter": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "MDD_Careplan_Psych_and_Rx": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736254008", + "display": "Psychiatry care plan (record artifact)" + } + ], + "conditional_transition": [ + { + "transition": "end re_evaluation_medication", + "condition": { + "condition_type": "Attribute", + "attribute": "ssri", + "operator": "is not nil" + } + }, + { + "transition": "MDD Medication Order", + "condition": { + "condition_type": "Attribute", + "attribute": "ssri", + "operator": "is nil" + } + } + ], + "reason": "mdd_psych", + "activities": [ + { + "system": "SNOMED-CT", + "code": "88848003", + "display": "Psychiatric follow-up (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "385724002", + "display": "Coping support management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "225337009", + "display": "Suicide risk assessment (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "425680009", + "display": "Cognitive behavioral therapy by multidisciplinary team (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "304822001", + "display": "Psychodynamic-interpersonal psychotherapy (regime/therapy)" + } + ] + }, + "MDD_Careplan_Psych": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736254008", + "display": "Psychiatry care plan (record artifact)" + } + ], + "direct_transition": "end_Psych_encounter", + "reason": "mdd_psych", + "activities": [ + { + "system": "SNOMED-CT", + "code": "385724002", + "display": "Coping support management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "88848003", + "display": "Psychiatric follow-up (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "225337009", + "display": "Suicide risk assessment (procedure)" + } + ] + }, + "MDD_Re_evaluation Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "mdd_psych", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390906007", + "display": "Follow-up encounter (procedure)" + } + ], + "distributed_transition": [ + { + "transition": "negative_re_eval_phq9", + "distribution": 0.5 + }, + { + "transition": "positive_re_eval_phq9", + "distribution": 0.5 + } + ] + }, + "MDD Medication Order": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 310385, + "display": "FLUoxetine 20 MG Oral Capsule" + } + ], + "assign_to_attribute": "ssri", + "reason": "mdd", + "distributed_transition": [ + { + "transition": "end_Psych_encounter", + "distribution": 0.5 + }, + { + "transition": "MDD Chronic Pain Med", + "distribution": 0.5 + } + ], + "prescription": { + "dosage": { + "amount": 1, + "frequency": 1, + "period": 1, + "unit": "days" + }, + "duration": { + "quantity": 60, + "unit": "days" + }, + "refills": 12 + } + }, + "MDD_Careplan_Rx_ONLY": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "737434004", + "display": "Major depressive disorder clinical management plan (record artifact)" + } + ], + "conditional_transition": [ + { + "transition": "end re_evaluation_medication", + "condition": { + "condition_type": "Attribute", + "attribute": "ssri", + "operator": "is not nil" + } + }, + { + "transition": "MDD Medication Order", + "condition": { + "condition_type": "Attribute", + "attribute": "ssri", + "operator": "is nil" + } + } + ], + "reason": "mdd_psych" + }, + "Positive_PHQ9": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "112001000119100", + "display": "Positive screening for depression on Patient Health Questionnaire 9 (finding)" + } + ], + "direct_transition": "MDD Diagnosis", + "reason": "mdd" + }, + "Negative_PHQ9": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "112011000119102", + "display": "Negative screening for depression on Patient Health Questionnaire 9 (finding)" + } + ], + "direct_transition": "Change_Dx_Not_MDD", + "reason": "mdd" + }, + "positive_re_eval_phq9": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "112001000119100", + "display": "Positive screening for depression on Patient Health Questionnaire 9 (finding)" + } + ], + "distributed_transition": [ + { + "transition": "MDD_Careplan_Psych_and_Rx", + "distribution": 0.3 + }, + { + "transition": "MDD_Careplan_Psych", + "distribution": 0.3 + }, + { + "transition": "MDD_Careplan_Rx_ONLY", + "distribution": 0.4 + } + ] + }, + "negative_re_eval_phq9": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "112011000119102", + "display": "Negative screening for depression on Patient Health Questionnaire 9 (finding)" + } + ], + "direct_transition": "Change_Dx_Not_MDD" + }, + "MDD Chronic Pain Med": { + "type": "CallSubmodule", + "submodule": "medications/moderate_opioid_pain_reliever", + "direct_transition": "end_Psych_encounter" + }, + "age guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">", + "quantity": 18, + "unit": "years" + }, + "direct_transition": "veteran guard" + }, + "veteran guard": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Veteran", + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "is not nil" + } + }, + { + "transition": "Non_Veteran", + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "is nil" + } + } + ] + }, + "MDD_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "mdd", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "direct_transition": "MDD_Initial_Careplan" + }, + "therapy_delay": { + "type": "Delay", + "range": { + "low": 5, + "high": 14, + "unit": "days" + }, + "direct_transition": "Therapy_Visit" + }, + "Therapy_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "mdd_psych", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Therapy_Note" + }, + "Therapy_Note": { + "type": "Observation", + "category": "therapy", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "75443-2", + "display": "Mental health Outpatient Note" + } + ], + "exact": { + "quantity": 1 + }, + "direct_transition": "end therapy visit" + }, + "end therapy visit": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "therapy_delay", + "condition": { + "condition_type": "PriorState", + "name": "MDD_Re_evaluation Encounter", + "within": { + "quantity": 3, + "unit": "months" + } + } + }, + { + "transition": "MDD_Re_evaluation Encounter" + } + ] + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/veteran_prostate_cancer.json b/src/main/resources/modules/veteran_prostate_cancer.json new file mode 100644 index 0000000..9abb3cb --- /dev/null +++ b/src/main/resources/modules/veteran_prostate_cancer.json @@ -0,0 +1,1303 @@ +{ + "name": "Veteran Prostate Cancer", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "age_guard" + }, + "Terminal": { + "type": "Terminal" + }, + "veteran_status": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "male_guard", + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "is not nil" + } + }, + { + "transition": "Terminal", + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "is nil" + } + } + ] + }, + "age_guard": { + "type": "Delay", + "exact": { + "quantity": 60, + "unit": "years" + }, + "direct_transition": "veteran_status" + }, + "annual_wellness_visit": { + "type": "Encounter", + "direct_transition": "wellness_procedure", + "wellness": true, + "reason": "wellness_encounter_reason" + }, + "male_guard": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Wellness_Encounter_Reason", + "condition": { + "condition_type": "Gender", + "gender": "M" + } + }, + { + "transition": "Terminal", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + } + ] + }, + "wellness_procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "410006001", + "display": "Digital examination of rectum (procedure)" + } + ], + "duration": { + "low": 2, + "high": 5, + "unit": "minutes" + }, + "distributed_transition": [ + { + "transition": "Prostate Cancer Symptom 2", + "distribution": 0.6 + }, + { + "transition": "normal_DRE", + "distribution": 0.4 + } + ] + }, + "detect_abnormal results": { + "type": "Observation", + "category": "laboratory", + "unit": "ng/mL", + "codes": [ + { + "system": "LOINC", + "code": "2857-1", + "display": "Prostate specific Ag [Mass/volume] in Serum or Plasma" + } + ], + "direct_transition": "end_wellness_visit", + "range": { + "low": 4.5, + "high": 7.7 + } + }, + "end_wellness_visit": { + "type": "EncounterEnd", + "complex_transition": [ + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "2857-1", + "display": "Prostate specific Ag [Mass/volume] in Serum or Plasma" + } + ], + "operator": "<=", + "value": 4 + }, + "distributions": [ + { + "transition": "wellness_visit_time_delay", + "distribution": 1 + } + ] + }, + { + "condition": { + "condition_type": "Observation", + "codes": [ + { + "system": "LOINC", + "code": "2857-1", + "display": "Prostate specific Ag [Mass/volume] in Serum or Plasma" + } + ], + "operator": ">=", + "value": 4.1 + }, + "distributions": [ + { + "transition": "Prostate Cancer Symptom", + "distribution": 1 + } + ] + } + ] + }, + "detect_normal results": { + "type": "Observation", + "category": "laboratory", + "unit": "ng/mL", + "codes": [ + { + "system": "LOINC", + "code": "2857-1", + "display": "Prostate specific Ag [Mass/volume] in Serum or Plasma" + } + ], + "direct_transition": "end_wellness_visit", + "range": { + "low": 0.5, + "high": 4 + } + }, + "abnormal_DRE": { + "type": "Observation", + "category": "exam", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "32465-7", + "display": "Physical findings of Prostate" + } + ], + "distributed_transition": [ + { + "transition": "detect_abnormal results", + "distribution": 0.29 + }, + { + "transition": "detect_normal results", + "distribution": 0.71 + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "275302008", + "display": "Prostate enlarged on PR (finding)" + } + }, + "normal_DRE": { + "type": "Observation", + "category": "exam", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "32465-7", + "display": "Physical findings of Prostate" + } + ], + "direct_transition": "detect_normal results", + "value_code": { + "system": "SNOMED-CT", + "code": "300531004", + "display": "Normal sized prostate (finding)" + } + }, + "wellness_visit_time_delay": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "years" + }, + "direct_transition": "male_guard" + }, + "biopsy_visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "direct_transition": "biopsy procedure", + "reason": "Suspected_Prostate_Cancer" + }, + "biopsy procedure": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "65575008", + "display": "Biopsy of prostate (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "distributed_transition": [ + { + "transition": "biopsy_results_abnormal", + "distribution": 0.5 + }, + { + "transition": "biopsy_results_normal", + "distribution": 0.5 + } + ] + }, + "biopsy_results_abnormal": { + "type": "Observation", + "category": "procedure", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "46288-7", + "display": "US Guidance for biopsy of Prostate" + } + ], + "direct_transition": "Prostate_Cancer", + "value_code": { + "system": "SNOMED-CT", + "code": "165132006", + "display": "Surgical biopsy result abnormal (finding)" + } + }, + "biopsy_results_normal": { + "type": "Observation", + "category": "procedure", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "46288-7", + "display": "US Guidance for biopsy of Prostate" + } + ], + "direct_transition": "End_Suspected_Prostate_Cancer", + "value_code": { + "system": "SNOMED-CT", + "code": "165131004", + "display": "Surgical biopsy result normal (finding)" + } + }, + "biopsy_visit_end": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Prostate Symtpom 3", + "condition": { + "condition_type": "Attribute", + "attribute": "prostate_cancer", + "operator": "is not nil" + } + }, + { + "transition": "wellness_visit_time_delay", + "condition": { + "condition_type": "Attribute", + "attribute": "prostate_cancer", + "operator": "is nil" + } + } + ] + }, + "Prostate_Cancer": { + "type": "ConditionOnset", + "assign_to_attribute": "prostate_cancer", + "target_encounter": "Prostate_Cancer_Therapy", + "codes": [ + { + "system": "SNOMED-CT", + "code": "126906006", + "display": "Neoplasm of prostate (disorder)" + } + ], + "direct_transition": "End_Suspected_Prostate_Cancer" + }, + "Aggressive_Therapy_Careplan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736252007", + "display": "Cancer care plan (record artifact)" + } + ], + "direct_transition": "In Situ Prostate Cancer", + "activities": [ + { + "system": "SNOMED-CT", + "code": "408580007", + "display": "Physical activity target light exercise (finding)" + }, + { + "system": "SNOMED-CT", + "code": "229578001", + "display": "Ice bath treatment (regime/therapy)" + } + ], + "reason": "prostate_cancer" + }, + "Watchful_Waiting_Careplan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736252007", + "display": "Cancer care plan (record artifact)" + } + ], + "direct_transition": "Stage 4 Prostate Cancer", + "assign_to_attribute": "watchful_waiting", + "reason": "prostate_cancer" + }, + "Chemotherapy_Hormone Order": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 1860480, + "display": "1 ML DOCEtaxel 20 MG/ML Injection" + } + ], + "direct_transition": "Chemotherapy_Hormone Order2", + "reason": "Prostate_Cancer", + "administration": true + }, + "Prostatectomy": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "90470006", + "display": "Prostatectomy (procedure)" + } + ], + "duration": { + "low": 4, + "high": 6, + "unit": "hours" + }, + "direct_transition": "end_chemo_med", + "reason": "prostate_cancer" + }, + "end_cancer_therapy encounter": { + "type": "EncounterEnd", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "watchful_waiting", + "operator": "is nil" + }, + "distributions": [ + { + "transition": "watchful_waiting_guard", + "distribution": 0.95 + }, + { + "transition": "eventual_death", + "distribution": 0.05 + } + ] + }, + { + "condition": { + "condition_type": "Attribute", + "attribute": "watchful_waiting", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "eventual_death", + "distribution": 1 + } + ] + } + ] + }, + "watchful_waiting_guard": { + "type": "Delay", + "exact": { + "quantity": 3, + "unit": "months" + }, + "conditional_transition": [ + { + "transition": "Prostate_Cancer_Therapy", + "condition": { + "condition_type": "PriorState", + "name": "Prostatectomy", + "within": { + "quantity": 120, + "unit": "days" + } + } + }, + { + "transition": "Terminal" + } + ] + }, + "eventual_death": { + "type": "Death", + "direct_transition": "Terminal", + "range": { + "low": 1, + "high": 5, + "unit": "years" + }, + "condition_onset": "Prostate_Cancer" + }, + "Prostate Cancer Symptom": { + "type": "Symptom", + "symptom": "difficulty with urination", + "cause": "", + "exact": { + "quantity": 1 + }, + "direct_transition": "Suspected_Prostate_Cancer" + }, + "Prostate Cancer Symptom 2": { + "type": "Symptom", + "symptom": "blood in urine", + "cause": "", + "exact": { + "quantity": 1 + }, + "direct_transition": "abnormal_DRE" + }, + "Prostate Symtpom 3": { + "type": "Symptom", + "symptom": "urinary frequency", + "cause": "", + "exact": { + "quantity": 20 + }, + "distributed_transition": [ + { + "transition": "Stem Cells", + "distribution": 0.01 + }, + { + "transition": "Prostate_Cancer_Therapy", + "distribution": 0.99 + } + ] + }, + "end_chemo_med": { + "type": "Simple", + "direct_transition": "end_cancer_therapy encounter" + }, + "Chemotherapy_Hormone Order2": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 752899, + "display": "0.25 ML Leuprolide Acetate 30 MG/ML Prefilled Syringe" + } + ], + "conditional_transition": [ + { + "transition": "end_chemo_med", + "condition": { + "condition_type": "PriorState", + "name": "Prostatectomy" + } + }, + { + "transition": "Prostatectomy" + } + ], + "reason": "Prostate_Cancer", + "administration": true + }, + "Prostate_Cancer_Therapy": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "prostate_cancer", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "distributed_transition": [ + { + "transition": "Aggressive_Therapy_Careplan", + "distribution": 0.91 + }, + { + "transition": "Watchful_Waiting_Careplan", + "distribution": 0.09 + } + ] + }, + "Stage 4 Prostate Cancer": { + "type": "ConditionOnset", + "target_encounter": "Prostate_Cancer_Therapy", + "codes": [ + { + "system": "SNOMED-CT", + "code": "94503003", + "display": "Metastatic malignant neoplasm to prostate (disorder)" + } + ], + "direct_transition": "end_cancer_therapy encounter" + }, + "In Situ Prostate Cancer": { + "type": "ConditionOnset", + "target_encounter": "Prostate_Cancer_Therapy", + "codes": [ + { + "system": "SNOMED-CT", + "code": "92691004", + "display": "Carcinoma in situ of prostate (disorder)" + } + ], + "direct_transition": "Record_CMP" + }, + "Record_CMP": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24323-8", + "display": "Comprehensive metabolic 2000 panel - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2339-0", + "display": "Glucose [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "6299-2", + "display": "Urea nitrogen [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "38483-4", + "display": "Creatinine [Mass/volume] in Blood" + } + ], + "unit": "mg/dL", + "range": { + "low": 2.5, + "high": 3.5 + } + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "49765-1", + "display": "Calcium [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2947-0", + "display": "Sodium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "6298-4", + "display": "Potassium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2069-3", + "display": "Chloride [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "20565-8", + "display": "Carbon dioxide, total [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "unit": "mL/min", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "range": { + "low": 4, + "high": 29 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "2885-2", + "display": "Protein [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 8 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "1751-7", + "display": "Albumin [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 3.5, + "high": 5.5 + } + }, + { + "category": "laboratory", + "unit": "g/L", + "codes": [ + { + "system": "LOINC", + "code": "10834-0", + "display": "Globulin [Mass/volume] in Serum by calculation" + } + ], + "range": { + "low": 2, + "high": 3.5 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "1975-2", + "display": "Bilirubin.total [Mass/volume] in Serum or Plasma" + } + ], + "range": { + "low": 0.1, + "high": 1.2 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "6768-6", + "display": "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 20, + "high": 140 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1742-6", + "display": "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 20, + "high": 60 + } + }, + { + "category": "laboratory", + "unit": "U/L", + "codes": [ + { + "system": "LOINC", + "code": "1920-8", + "display": "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma" + } + ], + "range": { + "low": 6, + "high": 40 + } + } + ], + "direct_transition": "Record_Urinalysis" + }, + "Record_Urinalysis": { + "type": "DiagnosticReport", + "codes": [ + { + "system": "LOINC", + "code": "24357-6", + "display": "Urinalysis macro (dipstick) panel - Urine" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5767-9", + "display": "Appearance of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "7766007", + "display": "Cloudy urine (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "34533-0", + "display": "Odor of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "690701000119101", + "display": "Foul smelling urine (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "32167-9", + "display": "Clarity of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "7766007", + "display": "Cloudy urine (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5778-6", + "display": "Color of Urine" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "720003003", + "display": "Reddish color urine (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5792-7", + "display": "Glucose [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.5, + "high": 2.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "25428-4", + "display": "Glucose [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "167265006", + "display": "Urine glucose test = ++ (finding)" + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "20505-4", + "display": "Bilirubin.total [Mass/volume] in Urine by Test strip" + } + ], + "unit": "mg/dL", + "range": { + "low": 0.2, + "high": 1.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "5770-3", + "display": "Bilirubin.total [Presence] in Urine by Test strip" + } + ], + "unit": "{nominal}", + "value_code": { + "system": "SNOMED-CT", + "code": "275778006", + "display": "Finding of bilirubin in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5797-6", + "display": "Ketones [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 0, + "high": 20 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "2514-8", + "display": "Ketones [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167291007", + "display": "Urine ketone test = +++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5811-5", + "display": "Specific gravity of Urine by Test strip" + } + ], + "range": { + "low": 1.001, + "high": 1.039 + } + }, + { + "category": "laboratory", + "unit": "pH", + "codes": [ + { + "system": "LOINC", + "code": "5803-2", + "display": "pH of Urine by Test strip" + } + ], + "range": { + "low": 5, + "high": 7 + } + }, + { + "category": "laboratory", + "unit": "mg/dL", + "codes": [ + { + "system": "LOINC", + "code": "5804-0", + "display": "Protein [Mass/volume] in Urine by Test strip" + } + ], + "range": { + "low": 250, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "20454-5", + "display": "Protein [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "167277001", + "display": "Urine protein test = +++ (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5802-4", + "display": "Nitrite [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "314138001", + "display": "Nitrite not detected in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5794-3", + "display": "Hemoglobin [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "34436003", + "display": "Blood in urine (finding)" + } + }, + { + "category": "laboratory", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "5799-2", + "display": "Leukocyte esterase [Presence] in Urine by Test strip" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "394717006", + "display": "Urine leukocytes not detected (finding)" + } + } + ], + "direct_transition": "Record_CBC_Panel" + }, + "Record_CBC_Panel": { + "type": "DiagnosticReport", + "number_of_observations": 4, + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*3/uL", + "range": { + "low": 0.5, + "high": 5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*6/uL", + "range": { + "low": 3.9, + "high": 5.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "unit": "g/dL", + "range": { + "low": 12, + "high": 17.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "4544-3", + "display": "Hematocrit [Volume Fraction] of Blood by Automated count" + } + ], + "unit": "%", + "range": { + "low": 35, + "high": 50 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 80, + "high": 95 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 27, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "21000-5", + "display": "Erythrocyte distribution width [Entitic volume] by Automated count" + } + ], + "range": { + "low": 39, + "high": 46 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32207-3", + "display": "Platelet distribution width [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 520 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32623-1", + "display": "Platelet mean volume [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 9.4, + "high": 12.3 + } + } + ], + "direct_transition": "Chemotherapy_Hormone Order" + }, + "Suspected_Prostate_Cancer": { + "type": "ConditionOnset", + "target_encounter": "biopsy_visit", + "codes": [ + { + "system": "SNOMED-CT", + "code": "315268008", + "display": "Suspected prostate cancer (situation)" + } + ], + "direct_transition": "biopsy_visit" + }, + "End_Suspected_Prostate_Cancer": { + "type": "ConditionEnd", + "direct_transition": "biopsy_visit_end", + "condition_onset": "Suspected_Prostate_Cancer" + }, + "Wellness_Encounter_Reason": { + "type": "SetAttribute", + "attribute": "wellness_encounter_reason", + "direct_transition": "annual_wellness_visit", + "value_code": { + "system": "SNOMED-CT", + "code": "410424005", + "display": "Wellness surveillance (regime/therapy)" + } + }, + "Stem Cells": { + "type": "SetAttribute", + "attribute": "bone_marrow", + "direct_transition": "Prostate_Cancer_Therapy", + "value": true + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/veteran_ptsd.json b/src/main/resources/modules/veteran_ptsd.json new file mode 100644 index 0000000..dd57381 --- /dev/null +++ b/src/main/resources/modules/veteran_ptsd.json @@ -0,0 +1,1220 @@ +{ + "name": "Veteran PTSD", + "remarks": [ + "Post Traumatic Stress Disorder is one of the top disease conditions (by prevalence), disproportionately affecting veterans. A majority of the guidelines detailed here in this module... Sources: https://www.ncbi.nlm.nih.gov/pubmed/26243685 ; https://cptforptsd.com/wp-content/uploads/2017/10/1-s2.0-S0005789417300783-main.pdf ; https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5047000/ ; https://www.ptsd.va.gov/apps/decisionaid/compare.aspx ; https://www.nursingtimes.net/post-traumatic-stress-disorder/1996064.article " + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "age guard" + }, + "Terminal": { + "type": "Terminal" + }, + "Female": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Onset_age_21_to_29_Female", + "distribution": 0.0315 + }, + { + "transition": "Onset_age_30_to_39_Female", + "distribution": 0.0245 + }, + { + "transition": "Onset_age_40_to_49_Female", + "distribution": 0.0252 + }, + { + "transition": "Onset_age_50_to_59_Female", + "distribution": 0.014 + }, + { + "transition": "Onset_age_60_to_99_Female", + "distribution": 0.0084 + }, + { + "transition": "Terminal", + "distribution": 0.8964 + } + ], + "remarks": [ + "The prevalence data presented here come from the seminal report on VHA health care delivery systems and management processes. It can be accessed here: https://www.va.gov/opa/choiceact/documents/assessments/integrated_report.pdf", + "" + ] + }, + "Male": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Onset_age_21_to_29_Male", + "distribution": 0.049 + }, + { + "transition": "Onset_age_30_to_39_Male", + "distribution": 0.0385 + }, + { + "transition": "Onset_age_40_to_49_Male", + "distribution": 0.0266 + }, + { + "transition": "Onset_age_50_to_59_Male", + "distribution": 0.014 + }, + { + "transition": "Onset_age_60_to_99_Male", + "distribution": 0.007 + }, + { + "transition": "Terminal", + "distribution": 0.8649 + } + ], + "remarks": [ + "The prevalence data presented here come from the seminal report on VHA health care delivery systems and management processes. It can be accessed here: https://www.va.gov/opa/choiceact/documents/assessments/integrated_report.pdf" + ] + }, + "Veteran": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Female", + "condition": { + "condition_type": "Gender", + "gender": "F" + } + }, + { + "transition": "Male", + "condition": { + "condition_type": "Gender", + "gender": "M" + } + } + ] + }, + "Non_Veteran": { + "type": "Simple", + "direct_transition": "Terminal" + }, + "Onset_age_30_to_39_Male": { + "type": "Delay", + "direct_transition": "PTSD Episode", + "range": { + "low": 9, + "high": 18, + "unit": "years" + } + }, + "Onset_age_30_to_39_Female": { + "type": "Delay", + "direct_transition": "PTSD Episode", + "range": { + "low": 9, + "high": 18, + "unit": "years" + } + }, + "Onset_age_40_to_49_Male": { + "type": "Delay", + "direct_transition": "PTSD Episode", + "range": { + "low": 19, + "high": 28, + "unit": "years" + } + }, + "Onset_age_40_to_49_Female": { + "type": "Delay", + "direct_transition": "PTSD Episode", + "range": { + "low": 19, + "high": 28, + "unit": "years" + } + }, + "Onset_age_50_to_59_Female": { + "type": "Delay", + "direct_transition": "PTSD Episode", + "range": { + "low": 29, + "high": 38, + "unit": "years" + } + }, + "Onset_age_50_to_59_Male": { + "type": "Delay", + "direct_transition": "PTSD Episode", + "range": { + "low": 29, + "high": 38, + "unit": "years" + } + }, + "PTSD Episode": { + "type": "ConditionOnset", + "assign_to_attribute": "ptsd", + "target_encounter": "PTSD_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "47505003", + "display": "Posttraumatic stress disorder (disorder)" + } + ], + "direct_transition": "Wait_For_PHQ" + }, + "PTSD_Initial_Careplan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736254008", + "display": "Psychiatry care plan (record artifact)" + } + ], + "reason": "ptsd", + "activities": [ + { + "system": "SNOMED-CT", + "code": "79094001", + "display": "Initial psychiatric interview with mental status and evaluation (procedure)" + } + ], + "direct_transition": "end_PTSD_Encounter" + }, + "Initial_Psychiatric_PTSD_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "79094001", + "display": "Initial psychiatric interview with mental status and evaluation (procedure)" + } + ], + "reason": "ptsd", + "direct_transition": "PHQ2_Q9 Assessment" + }, + "PTSD_Careplan_Psych_and_Rx": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "718347000", + "display": "Mental health care plan (record artifact)" + } + ], + "reason": "ptsd", + "activities": [ + { + "system": "SNOMED-CT", + "code": "385724002", + "display": "Coping support management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "406185000", + "display": "Trauma therapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "88848003", + "display": "Psychiatric follow-up (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "225337009", + "display": "Suicide risk assessment (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "76168009", + "display": "Group psychotherapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "719858009", + "display": "Telehealth monitoring (regime/therapy)" + } + ], + "assign_to_attribute": "ptsd_careplan", + "remarks": [ + "overall care plan recommendation provided in consultation with Drs Jodie Trafton and Brian Marx, SMEs for PTSD within the VA", + "" + ], + "conditional_transition": [ + { + "transition": "end re_evaluation_medication", + "condition": { + "condition_type": "Attribute", + "attribute": "SSRI", + "operator": "is not nil" + } + }, + { + "transition": "PTSD Medication Order", + "condition": { + "condition_type": "Attribute", + "attribute": "SSRI", + "operator": "is nil" + } + } + ] + }, + "PTSD_Careplan_Psych": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "718347000", + "display": "Mental health care plan (record artifact)" + } + ], + "direct_transition": "end_Psych_encounter", + "reason": "ptsd", + "assign_to_attribute": "ptsd_careplan", + "activities": [ + { + "system": "SNOMED-CT", + "code": "406185000", + "display": "Trauma therapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "225337009", + "display": "Suicide risk assessment (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "385724002", + "display": "Coping support management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "88848003", + "display": "Psychiatric follow-up (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "76168009", + "display": "Group psychotherapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "719858009", + "display": "Telehealth monitoring (regime/therapy)" + } + ] + }, + "Change_Dx_Not_PTSD": { + "type": "ConditionEnd", + "direct_transition": "Pain_Vital_3", + "referenced_by_attribute": "ptsd" + }, + "PTSD_Careplan_Rx_ONLY": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "718347000", + "display": "Mental health care plan (record artifact)" + } + ], + "conditional_transition": [ + { + "transition": "end re_evaluation_medication", + "condition": { + "condition_type": "Attribute", + "attribute": "SSRI", + "operator": "is not nil" + } + }, + { + "transition": "PTSD Medication Order", + "condition": { + "condition_type": "Attribute", + "attribute": "SSRI", + "operator": "is nil" + } + } + ], + "reason": "ptsd", + "assign_to_attribute": "ptsd_careplan" + }, + "PTSD Diagnosis": { + "type": "ConditionOnset", + "target_encounter": "Initial_Psychiatric_PTSD_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "47505003", + "display": "Posttraumatic stress disorder (disorder)" + } + ], + "distributed_transition": [ + { + "transition": "Change_Dx_Not_PTSD", + "distribution": 0.1 + }, + { + "transition": "PTSD_Careplan_Psych", + "distribution": 0.1 + }, + { + "transition": "PTSD_Careplan_Psych_and_Rx", + "distribution": 0.2 + }, + { + "transition": "PTSD_Careplan_Rx_ONLY", + "distribution": 0.3 + }, + { + "transition": "PTSD_Careplan_Telehealth_Psych_and_Rx", + "distribution": 0.2 + }, + { + "transition": "PTSD_Careplan_Telehealth_Psych", + "distribution": 0.1 + } + ], + "remarks": [ + "estimate of percents of patients falling into larger categories of treatment models (e.g. Rx only, Rx + Psychology or Psych only) provided by Jodie Trafton, PhD.", + "" + ] + }, + "end_PTSD_Encounter": { + "type": "EncounterEnd", + "direct_transition": "time gate", + "discharge_disposition": { + "system": "NUBC", + "code": "01", + "display": "Discharged home safe" + } + }, + "Evaluation Gate delay": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "direct_transition": "PTSD_Re_evaluation Encounter" + }, + "PTSD_Re_evaluation Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "codes": [ + { + "system": "SNOMED-CT", + "code": "47505003", + "display": "Posttraumatic stress disorder (disorder)" + } + ], + "distributed_transition": [ + { + "transition": "Change_Dx_Not_PTSD", + "distribution": 0.22999999999999998 + }, + { + "transition": "PTSD_Careplan_Psych", + "distribution": 0.15 + }, + { + "transition": "PTSD_Careplan_Rx_ONLY", + "distribution": 0.15 + }, + { + "transition": "PTSD_Careplan_Psych_and_Rx", + "distribution": 0.15 + }, + { + "transition": "Inpatient Suicide Assessment", + "distribution": 0.02 + }, + { + "transition": "PTSD_Careplan_Telehealth_Psych_and_Rx", + "distribution": 0.15 + }, + { + "transition": "PTSD_Careplan_Telehealth_Psych", + "distribution": 0.15 + } + ], + "reason": "ptsd" + }, + "end_Psych_encounter": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "Evaluation Gate delay", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "PriorState", + "name": "PTSD_Careplan_Rx_ONLY", + "since": "PTSD_Re_evaluation Encounter" + }, + { + "condition_type": "Attribute", + "attribute": "SSRI", + "operator": "is not nil" + } + ] + } + }, + { + "transition": "therapy delay" + } + ] + }, + "PTSD Medication Order": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 312938, + "display": "Sertraline 100 MG Oral Tablet", + "value_set": "" + } + ], + "assign_to_attribute": "SSRI", + "reason": "ptsd", + "distributed_transition": [ + { + "transition": "Pain_Vital_4", + "distribution": 0.5 + }, + { + "transition": "PTSD Chronic Pain Med", + "distribution": 0.5 + } + ], + "remarks": [ + "most common Rx ordered tied to mental health conditions like PTSD are SSRIs (per VA CDW data analysis)", + "" + ] + }, + "end re_evaluation_medication": { + "type": "MedicationEnd", + "direct_transition": "PTSD Medication Order", + "referenced_by_attribute": "SSRI" + }, + "end_PTSD_Re_evaluation_Encounter": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "end_follow_up_careplan", + "condition": { + "condition_type": "Attribute", + "attribute": "ptsd_careplan", + "operator": "is not nil" + } + }, + { + "transition": "Terminal" + } + ] + }, + "age guard": { + "type": "Delay", + "exact": { + "quantity": 21, + "unit": "years" + }, + "remarks": [ + "model attempt to wait for war exposure to provide traumatic instance. Most veterans exposed to at least 1 tour in a war-time scenario become veterans after 21 years age" + ], + "conditional_transition": [ + { + "transition": "mTBI check", + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "is not nil" + } + }, + { + "transition": "Non_Veteran", + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "is nil" + } + } + ] + }, + "PTSD Chronic Pain Med": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 856980, + "display": "Acetaminophen/Hydrocodone", + "value_set": "" + } + ], + "direct_transition": "Pain_Vital", + "reason": "ptsd", + "remarks": [ + "per Dr Trafton and other sources" + ] + }, + "end_follow_up_careplan": { + "type": "CarePlanEnd", + "direct_transition": "Terminal", + "referenced_by_attribute": "ptsd_careplan" + }, + "time gate": { + "type": "Delay", + "exact": { + "quantity": 2, + "unit": "weeks" + }, + "direct_transition": "Initial_Psychiatric_PTSD_Encounter", + "remarks": [ + "estimate provided by Jodie Trafton, PhD", + "" + ] + }, + "Columbia Suicide Risk Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225337009", + "display": "Suicide risk assessment (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "reason": "ptsd", + "distributed_transition": [ + { + "transition": "PTSD Diagnosis", + "distribution": 0.98 + }, + { + "transition": "At Risk for suicide", + "distribution": 0.02 + } + ], + "remarks": [ + "per new VA protocol identified by Jodie Trafton, PhD", + "" + ] + }, + "PHQ2_Q9 Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "715252007", + "display": "Depression screening using Patient Health Questionnaire Nine Item score (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "reason": "ptsd", + "distributed_transition": [ + { + "transition": "Columbia Suicide Risk Assessment", + "distribution": 0.9 + }, + { + "transition": "Change_Dx_Not_PTSD", + "distribution": 0.1 + } + ], + "remarks": [ + "estimate of 10% of patients who initially screened positive for PTSD to not ultimately screen in by a mental health expert, provided in consultation with Jodie Trafton, PhD", + "" + ] + }, + "At Risk for suicide": { + "type": "ConditionOnset", + "assign_to_attribute": "suicide_risk", + "target_encounter": "Initial_Psychiatric_PTSD_Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225444004", + "display": "At increased risk for suicide (finding)" + } + ], + "direct_transition": "Inpatient Suicide Assessment" + }, + "Inpatient Suicide Assessment": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "suicide_risk", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Inpatient Suicide Risk Assessment" + }, + "Inpatient_admission": { + "type": "Encounter", + "encounter_class": "inpatient", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183801001", + "display": "Inpatient stay 3 days (finding)" + } + ], + "direct_transition": "Pain_Vital_2", + "reason": "suicide_risk" + }, + "Inpatient Suicide Risk Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225337009", + "display": "Suicide risk assessment (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "reason": "ptsd", + "direct_transition": "emergency_encounter end" + }, + "emergency_encounter end": { + "type": "EncounterEnd", + "direct_transition": "Inpatient_admission" + }, + "Inpatient Suicide Care Plan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "736353004", + "display": "Inpatient care plan (record artifact)" + } + ], + "direct_transition": "time delay", + "reason": "suicide_risk", + "activities": [ + { + "system": "SNOMED-CT", + "code": "183402001", + "display": "Potential suicide care (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "183401008", + "display": "Anti-suicide psychotherapy (regime/therapy)" + } + ] + }, + "time delay": { + "type": "Delay", + "exact": { + "quantity": 3, + "unit": "days" + }, + "direct_transition": "Inpatient Suicide Care Plan_2" + }, + "Inpatient Suicide Care Plan_2": { + "type": "CarePlanEnd", + "direct_transition": "PTSD_Re_evaluation Encounter", + "careplan": "Inpatient Suicide Care Plan" + }, + "Onset_age_21_to_29_Male": { + "type": "Delay", + "direct_transition": "PTSD Episode", + "range": { + "low": 0, + "high": 9, + "unit": "years" + } + }, + "Onset_age_60_to_99_Male": { + "type": "Delay", + "direct_transition": "PTSD Episode", + "range": { + "low": 39, + "high": 68, + "unit": "years" + } + }, + "Onset_age_21_to_29_Female": { + "type": "Delay", + "direct_transition": "PTSD Episode", + "range": { + "low": 0, + "high": 9, + "unit": "years" + } + }, + "Onset_age_60_to_99_Female": { + "type": "Delay", + "direct_transition": "PTSD Episode", + "range": { + "low": 39, + "high": 68, + "unit": "years" + } + }, + "PTSD_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "ptsd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185345009", + "display": "Encounter for symptom (procedure)" + } + ], + "direct_transition": "PC-PTSD Screen" + }, + "Telehealth_Visit": { + "type": "Encounter", + "encounter_class": "virtual", + "reason": "ptsd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185317003", + "display": "Telephone encounter (procedure)" + } + ], + "direct_transition": "Telehealth_Observations", + "remarks": [ + "careplan to include regular telephone psychotherapy. workflow recommendation provided by Brian Marx, PhD, SME for PTSD within VA", + "" + ] + }, + "therapy delay": { + "type": "Delay", + "range": { + "low": 5, + "high": 14, + "unit": "days" + }, + "conditional_transition": [ + { + "transition": "Therapy_Visit_Telehealth", + "condition": { + "condition_type": "PriorState", + "name": "PTSD_Careplan_Telehealth_Psych", + "since": "PTSD_Re_evaluation Encounter" + } + }, + { + "transition": "Therapy_Visit_Telehealth", + "condition": { + "condition_type": "PriorState", + "name": "PTSD_Careplan_Telehealth_Psych_and_Rx", + "since": "PTSD_Re_evaluation Encounter" + } + }, + { + "transition": "Therapy_Visit" + } + ] + }, + "Therapy_Visit": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "ptsd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Therapy Note" + }, + "telehealth delay": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "weeks" + }, + "direct_transition": "Telehealth_Visit" + }, + "Telehealth_Observations": { + "type": "Observation", + "category": "therapy", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "84215-3", + "display": "Mental health Telehealth Note", + "value_set": "" + } + ], + "exact": { + "quantity": 1 + }, + "direct_transition": "end telehealth" + }, + "Therapy Note": { + "type": "Observation", + "category": "therapy", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "75443-2", + "display": "Mental health Outpatient Note", + "value_set": "" + } + ], + "exact": { + "quantity": 1 + }, + "direct_transition": "end therapy visit" + }, + "end therapy visit": { + "type": "EncounterEnd", + "direct_transition": "telehealth delay" + }, + "end telehealth": { + "type": "EncounterEnd", + "conditional_transition": [ + { + "transition": "therapy delay", + "condition": { + "condition_type": "PriorState", + "name": "PTSD_Re_evaluation Encounter", + "within": { + "quantity": 6, + "unit": "months" + } + } + }, + { + "transition": "Evaluation Gate delay" + } + ] + }, + "PHQ2_Q9_Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "715252007", + "display": "Depression screening using Patient Health Questionnaire Nine Item score (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "reason": "ptsd", + "direct_transition": "Columbia_Suicide_Risk_Assessment", + "remarks": [ + "per new VA protocol identified by Jodie Trafton, PhD", + "" + ] + }, + "Columbia_Suicide_Risk_Assessment": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "225337009", + "display": "Suicide risk assessment (procedure)" + } + ], + "duration": { + "low": 30, + "high": 30, + "unit": "minutes" + }, + "reason": "ptsd", + "direct_transition": "PTSD_Initial_Careplan", + "remarks": [ + "per new VA protocol identified by Jodie Trafton, PhD" + ] + }, + "mTBI check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "mTBI", + "operator": "is not nil" + }, + "distributions": [ + { + "transition": "PTSD Episode", + "distribution": 0.439 + }, + { + "transition": "Veteran", + "distribution": 0.561 + } + ] + }, + { + "distributions": [ + { + "transition": "Veteran", + "distribution": 1 + } + ] + } + ], + "remarks": [ + "Strong comorbidity relationship between mTBI and PTSD:", + "", + "https://www.ncbi.nlm.nih.gov/books/NBK326723/", + "", + "" + ] + }, + "Pain_Vital": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported", + "value_set": "" + } + ], + "range": { + "decimals": 0, + "low": 4, + "high": 8 + }, + "direct_transition": "end_Psych_encounter" + }, + "Pain_Vital_2": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported", + "value_set": "" + } + ], + "range": { + "decimals": 0, + "low": 4, + "high": 8 + }, + "direct_transition": "Inpatient Suicide Care Plan" + }, + "Pain_Vital_3": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported", + "value_set": "" + } + ], + "range": { + "decimals": 0, + "low": 0, + "high": 3 + }, + "direct_transition": "end_PTSD_Re_evaluation_Encounter" + }, + "Pain_Vital_4": { + "type": "Observation", + "category": "vital-signs", + "unit": "{score}", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported", + "value_set": "" + } + ], + "range": { + "decimals": 0, + "low": 1, + "high": 4 + }, + "direct_transition": "end_Psych_encounter" + }, + "PC-PTSD Screen": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "385892002", + "display": "Mental health screening (procedure)" + } + ], + "duration": { + "low": 2, + "high": 10, + "unit": "minutes" + }, + "direct_transition": "PHQ2_Q9_Assessment", + "remarks": [ + "workflow approach provided by Brian " + ] + }, + "PTSD_Careplan_Telehealth_Psych_and_Rx": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "718347000", + "display": "Mental health care plan (record artifact)" + } + ], + "reason": "ptsd", + "activities": [ + { + "system": "SNOMED-CT", + "code": "385724002", + "display": "Coping support management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "406185000", + "display": "Trauma therapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "88848003", + "display": "Psychiatric follow-up (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "225337009", + "display": "Suicide risk assessment (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "76168009", + "display": "Group psychotherapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "719858009", + "display": "Telehealth monitoring (regime/therapy)" + } + ], + "assign_to_attribute": "ptsd_careplan", + "remarks": [ + "overall care plan recommendation provided in consultation with Drs Jodie Trafton and Brian Marx, SMEs for PTSD within the VA", + "" + ], + "conditional_transition": [ + { + "transition": "end re_evaluation_medication", + "condition": { + "condition_type": "Attribute", + "attribute": "SSRI", + "operator": "is not nil" + } + }, + { + "transition": "PTSD Medication Order", + "condition": { + "condition_type": "Attribute", + "attribute": "SSRI", + "operator": "is nil" + } + } + ] + }, + "PTSD_Careplan_Telehealth_Psych": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "718347000", + "display": "Mental health care plan (record artifact)" + } + ], + "reason": "ptsd", + "assign_to_attribute": "ptsd_careplan", + "activities": [ + { + "system": "SNOMED-CT", + "code": "406185000", + "display": "Trauma therapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "225337009", + "display": "Suicide risk assessment (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "385724002", + "display": "Coping support management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "88848003", + "display": "Psychiatric follow-up (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "76168009", + "display": "Group psychotherapy (regime/therapy)" + }, + { + "system": "SNOMED-CT", + "code": "719858009", + "display": "Telehealth monitoring (regime/therapy)" + } + ], + "direct_transition": "end_Psych_encounter" + }, + "Therapy_Visit_Telehealth": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "ptsd", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Therapy Note" + }, + "Wait_For_PHQ": { + "type": "Guard", + "allow": { + "condition_type": "Date", + "operator": ">=", + "year": 1999 + }, + "direct_transition": "PTSD_Encounter" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/veteran_self_harm.json b/src/main/resources/modules/veteran_self_harm.json new file mode 100644 index 0000000..9f3ca90 --- /dev/null +++ b/src/main/resources/modules/veteran_self_harm.json @@ -0,0 +1,590 @@ +{ + "name": "Veteran Self Harm", + "remarks": [ + "In the U.S., suicides occur at a rate of 12.93/100k people. However, suicide attempts occur \nat approximately 12x this rate. Veteran Incident rates are 21% more frequent than the US general population.\n\n\n\n" + ], + "states": { + "Initial": { + "type": "Initial", + "remarks": [ + "" + ], + "direct_transition": "Veteran Guard" + }, + "Attempt_By_Poisoning": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Attempted_Suicide", + "assign_to_attribute": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "86849004", + "display": "Suicidal poisoning (disorder)" + } + ], + "direct_transition": "ED_Visit_For_Attempted_Suicide" + }, + "Attempt_By_Cutting": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Attempted_Suicide", + "assign_to_attribute": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "287185009", + "display": "Attempted suicide - cut/stab (event)" + } + ], + "direct_transition": "ED_Visit_For_Attempted_Suicide" + }, + "Attempt_By_Suffocation": { + "type": "ConditionOnset", + "target_encounter": "ED_Visit_For_Attempted_Suicide", + "assign_to_attribute": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "287182007", + "display": "Attempted suicide - suffocation (event)" + } + ], + "direct_transition": "ED_Visit_For_Attempted_Suicide" + }, + "ED_Visit_For_Attempted_Suicide": { + "type": "Encounter", + "encounter_class": "emergency", + "reason": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "50849002", + "display": "Emergency room admission (procedure)" + } + ], + "direct_transition": "Psychiatric_Evaluation" + }, + "Psychiatric_Evaluation": { + "type": "Procedure", + "reason": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "90407005", + "display": "Evaluation of psychiatric state of patient (procedure)" + } + ], + "direct_transition": "Short_Hospital_Stay" + }, + "Short_Hospital_Stay": { + "type": "Procedure", + "reason": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "74857009", + "display": "Hospital admission, short-term, 24 hours (procedure)" + } + ], + "duration": { + "low": 24, + "high": 72, + "unit": "hours" + }, + "direct_transition": "End_Attempted_Suicide_Observation_Period" + }, + "End_Attempted_Suicide_Observation_Period": { + "type": "EncounterEnd", + "direct_transition": "End_Suicide_Attempt" + }, + "End_Suicide_Attempt": { + "type": "ConditionEnd", + "referenced_by_attribute": "suicide_attempt", + "direct_transition": "Delay_Until_Outpatient_Followup" + }, + "Delay_Until_Outpatient_Followup": { + "type": "Delay", + "range": { + "low": 3, + "high": 7, + "unit": "days" + }, + "direct_transition": "Attempted_Suicide_Followup" + }, + "Attempted_Suicide_Followup": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Suicide_CarePlan_Selector" + }, + "Suicide_CarePlan_Selector": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "suicide_careplan", + "operator": "is nil" + }, + "transition": "Suicide_CarePlan" + }, + { + "transition": "Followup_Psychiatric_Evaluation" + } + ] + }, + "Suicide_CarePlan": { + "type": "CarePlanStart", + "assign_to_attribute": "suicide_careplan", + "reason": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "183401008", + "display": "Anti-suicide psychotherapy (regime/therapy)" + } + ], + "activities": [ + { + "system": "SNOMED-CT", + "code": "768835002", + "display": "Depression care management (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "415665002", + "display": "Suicide prevention (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "10029008", + "display": "Suicide precautions (procedure)" + } + ], + "direct_transition": "Followup_Psychiatric_Evaluation" + }, + "Followup_Psychiatric_Evaluation": { + "type": "Procedure", + "reason": "suicide_attempt", + "codes": [ + { + "system": "SNOMED-CT", + "code": "88848003", + "display": "Psychiatric follow-up (procedure)" + } + ], + "direct_transition": "End_Followup_Encounter" + }, + "End_Followup_Encounter": { + "type": "EncounterEnd", + "remarks": [ + "From the Harvard University study on suicide attempts: ", + " 7% are fatal ", + "70% do not attempt suicide again ", + "23% reattempt at some point " + ], + "distributed_transition": [ + { + "distribution": 0.753, + "transition": "End_Suicidal_Thoughts" + }, + { + "distribution": 0.247, + "transition": "Delay_Until_Next_Attempt" + } + ] + }, + "Delay_Until_Next_Attempt": { + "type": "Delay", + "remarks": [ + "It's unclear what a typical amount of time is between suicide attempts. Leaving this as ", + "a broad range from 0.5 - 3 years." + ], + "range": { + "low": 6, + "high": 36, + "unit": "months" + }, + "direct_transition": "Suicidal_Thoughts" + }, + "Fatal_Attempt": { + "type": "Simple", + "remarks": [ + "======================================================================", + " FATAL ", + "======================================================================", + "The most common methods of fatal suicide are: ", + "49.9% by firearms ", + "26.7% by suffocation or hanging (includes CO from motor vehicles)", + "15.9% by poisoning ", + " 7.5% by other means (vehicular, drowning, falls, etc.)" + ], + "distributed_transition": [ + { + "distribution": 0.499, + "transition": "Suicide_By_Firearm" + }, + { + "distribution": 0.267, + "transition": "Suicide_By_Suffocation" + }, + { + "distribution": 0.159, + "transition": "Suicide_By_Poisoning" + }, + { + "distribution": 0.075, + "transition": "Suicide_By_Other_Means" + } + ] + }, + "Suicide_By_Firearm": { + "type": "ConditionOnset", + "target_encounter": "Autopsy_Encounter", + "assign_to_attribute": "suicide", + "codes": [ + { + "system": "SNOMED-CT", + "code": "287193009", + "display": "Suicide - firearms (event)" + } + ], + "direct_transition": "Death" + }, + "Suicide_By_Suffocation": { + "type": "ConditionOnset", + "target_encounter": "Autopsy_Encounter", + "assign_to_attribute": "suicide", + "codes": [ + { + "system": "SNOMED-CT", + "code": "287191006", + "display": "Suicide - suffocation (event)" + } + ], + "direct_transition": "Death" + }, + "Suicide_By_Poisoning": { + "type": "ConditionOnset", + "target_encounter": "Autopsy_Encounter", + "assign_to_attribute": "suicide", + "codes": [ + { + "system": "SNOMED-CT", + "code": "86849004", + "display": "Suicidal poisoning (disorder)" + } + ], + "direct_transition": "Death" + }, + "Suicide_By_Other_Means": { + "type": "ConditionOnset", + "target_encounter": "Autopsy_Encounter", + "assign_to_attribute": "suicide", + "codes": [ + { + "system": "SNOMED-CT", + "code": "44301001", + "display": "Suicide (event)" + } + ], + "direct_transition": "Death" + }, + "Death": { + "type": "Death", + "referenced_by_attribute": "suicide", + "direct_transition": "Autopsy_Encounter" + }, + "Autopsy_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "suicide", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Autopsy_Examination" + }, + "Autopsy_Examination": { + "type": "Procedure", + "reason": "suicide", + "codes": [ + { + "system": "SNOMED-CT", + "code": "29240004", + "display": "Autopsy examination (procedure)" + } + ], + "direct_transition": "End_Suicide" + }, + "End_Suicide": { + "type": "ConditionEnd", + "referenced_by_attribute": "suicide", + "direct_transition": "Terminal" + }, + "Terminal": { + "type": "Terminal" + }, + "Delay 55 to 74 years old": { + "type": "Delay", + "range": { + "low": 37, + "high": 56, + "unit": "years" + }, + "direct_transition": "Suicidal_Thoughts" + }, + "Delay 35 to 54 years old": { + "type": "Delay", + "range": { + "low": 17, + "high": 36, + "unit": "years" + }, + "direct_transition": "Suicidal_Thoughts" + }, + "Delay 75 to 110 years old": { + "type": "Delay", + "range": { + "low": 57, + "high": 92, + "unit": "years" + }, + "direct_transition": "Suicidal_Thoughts" + }, + "Delay 18 to 34 years old": { + "type": "Delay", + "range": { + "low": 0, + "high": 16, + "unit": "years" + }, + "direct_transition": "Suicidal_Thoughts" + }, + "MH & SUD Comorbidty Check": { + "type": "CallSubmodule", + "submodule": "veterans/veteran_suicide_probabilities", + "distributed_transition": [ + { + "transition": "Comorbidity Check", + "distribution": { + "attribute": "probability_of_suicide", + "default": 0.0045 + } + }, + { + "transition": "Terminal", + "distribution": { + "attribute": "probability_of_no_suicide", + "default": 0.9955 + } + } + ] + }, + "Comorbidity Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "transition": "Delay 18 to 34 years old", + "distribution": 0.3122 + }, + { + "transition": "Delay 35 to 54 years old", + "distribution": 0.25343 + }, + { + "transition": "Delay 55 to 74 years old", + "distribution": 0.17982 + }, + { + "transition": "Delay 75 to 110 years old", + "distribution": 0.25455 + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "Delay 18 to 34 years old", + "distribution": 0.280155642 + }, + { + "transition": "Delay 35 to 54 years old", + "distribution": 0.449416342 + }, + { + "transition": "Delay 55 to 74 years old", + "distribution": 0.270428016 + } + ] + } + ] + }, + "VA Hotline Call": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "VA Hotline Encounter", + "distribution": 0.1 + }, + { + "transition": "Non_Fatal_Attempt", + "distribution": 0.9 + } + ] + }, + "Non_Fatal_Attempt": { + "type": "Simple", + "distributed_transition": [ + { + "distribution": 0.64, + "transition": "Attempt_By_Poisoning" + }, + { + "distribution": 0.19, + "transition": "Attempt_By_Cutting" + }, + { + "distribution": 0.17, + "transition": "Attempt_By_Suffocation" + } + ], + "remarks": [ + "======================================================================", + " NON-FATAL ", + "======================================================================", + "Most commonly this is from poisoning (overdose), suffocation, or cutting. Less than 1% of all ", + "non-fatal attempts involve firearms, so omitting that option altogether. The distributions here ", + "are based on the Harvard University study, see: ", + "https://www.hsph.harvard.edu/means-matter/basic-suicide-facts/how/", + "" + ] + }, + "VA Hotline Encounter": { + "type": "Encounter", + "encounter_class": "virtual", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185317003", + "display": "Telephone encounter (procedure)" + } + ], + "direct_transition": "Hotline Mental Health Note", + "reason": "Suicidal_Thoughts" + }, + "end telehealth": { + "type": "EncounterEnd", + "distributed_transition": [ + { + "transition": "End_Suicidal_Thoughts", + "distribution": 0.8 + }, + { + "transition": "Non_Fatal_Attempt", + "distribution": 0.2 + } + ] + }, + "Hotline Mental Health Note": { + "type": "Observation", + "category": "therapy", + "unit": "{nominal}", + "codes": [ + { + "system": "LOINC", + "code": "87626-8", + "display": "Suicide prevention note" + } + ], + "exact": { + "quantity": 1 + }, + "direct_transition": "end telehealth" + }, + "Veteran Guard": { + "type": "Guard", + "allow": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "is not nil" + }, + "direct_transition": "MH & SUD Comorbidty Check" + }, + "End_Suicidal_Thoughts": { + "type": "ConditionEnd", + "direct_transition": "Terminal", + "condition_onset": "Suicidal_Thoughts" + }, + "Suicidal_Thoughts": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "6471006", + "display": "Suicidal thoughts (finding)" + } + ], + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "distribution": 0.0546, + "transition": "Fatal_Attempt" + }, + { + "distribution": 0.9454, + "transition": "VA Hotline Call" + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "distribution": 0.0156, + "transition": "Fatal_Attempt" + }, + { + "distribution": 0.9844, + "transition": "VA Hotline Call" + } + ] + } + ], + "remarks": [ + "It's difficult to find accurate statistics for how many people actually attempt suicide since ", + "those who attempt suicide often don't seek medical attention afterwards. Therefore, the attempts ", + "modeled in this module are considered severe enough to merit medical attention.", + "Males COMPLETE suicide 3.5x as often as females do. Suicides have a 7% completion rate overall." + ] + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/veteran_substance_abuse_conditions.json b/src/main/resources/modules/veteran_substance_abuse_conditions.json new file mode 100644 index 0000000..8440869 --- /dev/null +++ b/src/main/resources/modules/veteran_substance_abuse_conditions.json @@ -0,0 +1,154 @@ +{ + "name": "Veteran Substance Abuse Conditions", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Age_Guard" + }, + "Terminal": { + "type": "Terminal" + }, + "Veteran_Status": { + "type": "Guard", + "allow": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "is not nil" + }, + "direct_transition": "Smoking Check" + }, + "smoker": { + "type": "SetAttribute", + "attribute": "smoking", + "value": true, + "direct_transition": "Alcohol Check" + }, + "non_smoker": { + "type": "SetAttribute", + "attribute": "smoking", + "direct_transition": "Alcohol Check" + }, + "Age_Guard": { + "type": "Delay", + "direct_transition": "Veteran_Status", + "range": { + "low": 18, + "high": 65, + "unit": "years" + } + }, + "Smoking Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "smoker", + "distribution": 0.2 + }, + { + "transition": "non_smoker", + "distribution": 0.8 + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "transition": "smoker", + "distribution": 0.241 + }, + { + "transition": "non_smoker", + "distribution": 0.759 + } + ] + } + ] + }, + "Alcohol Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Gender", + "gender": "F" + }, + "distributions": [ + { + "transition": "Alcohol Dependence", + "distribution": 0.152 + }, + { + "transition": "No Alcohol Dependence", + "distribution": 0.848 + } + ] + }, + { + "condition": { + "condition_type": "Gender", + "gender": "M" + }, + "distributions": [ + { + "transition": "Alcohol Dependence", + "distribution": 0.175 + }, + { + "transition": "No Alcohol Dependence", + "distribution": 0.825 + } + ] + } + ] + }, + "Alcohol Dependence": { + "type": "SetAttribute", + "attribute": "alcoholism", + "value": true, + "direct_transition": "Opioid Abuse check" + }, + "No Alcohol Dependence": { + "type": "SetAttribute", + "attribute": "alcoholism", + "direct_transition": "Opioid Abuse check" + }, + "Opioid Abuse check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Opioid Dependance", + "distribution": 0.13 + }, + { + "transition": "No Opioid Dependence", + "distribution": 0.87 + } + ] + }, + "Opioid Dependance": { + "type": "SetAttribute", + "attribute": "opioid_addiction", + "direct_transition": "Terminal", + "value": true + }, + "No Opioid Dependence": { + "type": "SetAttribute", + "attribute": "opioid_addiction", + "direct_transition": "Terminal" + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/veteran_substance_abuse_treatment.json b/src/main/resources/modules/veteran_substance_abuse_treatment.json new file mode 100644 index 0000000..b2f25da --- /dev/null +++ b/src/main/resources/modules/veteran_substance_abuse_treatment.json @@ -0,0 +1,249 @@ +{ + "name": "Veteran Substance Abuse Treatment", + "remarks": [ + "A blank module" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Veteran Guard" + }, + "Smoking_Condition": { + "type": "ConditionOnset", + "target_encounter": "Wellness Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "449868002", + "display": "Smokes tobacco daily (finding)" + } + ], + "direct_transition": "Smoking_Careplan" + }, + "Smoking_Careplan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "734163000", + "display": "Care plan (record artifact)" + } + ], + "reason": "Smoking_Condition", + "activities": [ + { + "system": "SNOMED-CT", + "code": "710081004", + "display": "Smoking cessation therapy (regime/therapy)" + } + ], + "conditional_transition": [ + { + "transition": "Smoking Medication", + "condition": { + "condition_type": "Attribute", + "attribute": "smoking_medication", + "operator": "is nil" + } + }, + { + "transition": "Alcohol Check" + } + ] + }, + "Smoking Medication": { + "type": "MedicationOrder", + "codes": [ + { + "system": "RxNorm", + "code": 198031, + "display": "nicotine 7 MG/Day 24HR Transdermal System" + } + ], + "direct_transition": "Alcohol Check", + "reason": "Smoking_Condition", + "assign_to_attribute": "smoking_medication" + }, + "Alcohol Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Alcohol Diagnosis", + "condition": { + "condition_type": "Attribute", + "attribute": "alcoholism", + "operator": "is not nil" + } + }, + { + "transition": "SUD check" + } + ] + }, + "Alcohol Diagnosis": { + "type": "ConditionOnset", + "target_encounter": "Wellness Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "7200002", + "display": "Alcoholism (disorder)" + } + ], + "direct_transition": "Alcoholism_Care_Plan" + }, + "Wellness Encounter": { + "type": "Encounter", + "direct_transition": "Smoking_Check", + "wellness": true + }, + "encounter_end": { + "type": "EncounterEnd", + "direct_transition": "smoking post treatment" + }, + "smoking symptom post treatment": { + "type": "SetAttribute", + "attribute": "smoking", + "direct_transition": "alcoholism post treatment" + }, + "alcoholism post treatment": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "alcoholism symptom post treatment", + "distribution": 0.05 + }, + { + "transition": "Loop_Back_To_Encounter", + "distribution": 0.95 + } + ] + }, + "smoking post treatment": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "alcoholism post treatment", + "distribution": 0.95 + }, + { + "transition": "smoking symptom post treatment", + "distribution": 0.05 + } + ] + }, + "alcoholism symptom post treatment": { + "type": "SetAttribute", + "attribute": "alcoholism", + "direct_transition": "Loop_Back_To_Encounter" + }, + "Opioid Addiction Care Plan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "734163000", + "display": "Care plan (record artifact)" + } + ], + "direct_transition": "Opioid Abuse Diagnosis", + "activities": [ + { + "system": "SNOMED-CT", + "code": "313071005", + "display": "Counseling for substance abuse (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "408935001", + "display": "Substance abuse prevention education (procedure)" + }, + { + "system": "SNOMED-CT", + "code": "408936000", + "display": "Substance abuse prevention management (procedure)" + } + ] + }, + "Veteran Guard": { + "type": "Guard", + "allow": { + "condition_type": "Age", + "operator": ">", + "quantity": 18, + "unit": "years" + }, + "direct_transition": "Wellness Encounter" + }, + "SUD check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Opioid Addiction Care Plan", + "condition": { + "condition_type": "Attribute", + "attribute": "opioid_addiction", + "operator": "is not nil" + } + }, + { + "transition": "encounter_end" + } + ] + }, + "Opioid Abuse Diagnosis": { + "type": "ConditionOnset", + "target_encounter": "Wellness Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "5602001", + "display": "Opioid abuse (disorder)" + } + ], + "direct_transition": "encounter_end" + }, + "Smoking_Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Smoking_Condition", + "condition": { + "condition_type": "Attribute", + "attribute": "smoking", + "operator": "is not nil" + } + }, + { + "transition": "Alcohol Check" + } + ] + }, + "Alcoholism_Care_Plan": { + "type": "CarePlanStart", + "codes": [ + { + "system": "SNOMED-CT", + "code": "734163000", + "display": "Care plan (record artifact)" + } + ], + "direct_transition": "SUD check", + "activities": [ + { + "system": "SNOMED-CT", + "code": "24165007", + "display": "Alcoholism counseling (procedure)" + } + ] + }, + "Loop_Back_To_Encounter": { + "type": "Simple", + "direct_transition": "Wellness Encounter", + "remarks": [ + "Added this state just so that only one path goes back up to the top" + ] + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/veterans/veteran_suicide_probabilities.json b/src/main/resources/modules/veterans/veteran_suicide_probabilities.json new file mode 100644 index 0000000..65a73a6 --- /dev/null +++ b/src/main/resources/modules/veterans/veteran_suicide_probabilities.json @@ -0,0 +1,100 @@ +{ + "name": "Veteran Suicide Probabilities", + "remarks": [ + "" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Veteran check" + }, + "Terminal": { + "type": "Terminal" + }, + "Veteran": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "PTSD", + "condition": { + "condition_type": "Attribute", + "attribute": "ptsd", + "operator": "is not nil" + } + }, + { + "transition": "SUD", + "condition": { + "condition_type": "Attribute", + "attribute": "opioid_addiction", + "operator": "is not nil" + } + }, + { + "transition": "MDD", + "condition": { + "condition_type": "Attribute", + "attribute": "mdd", + "operator": "is not nil" + } + }, + { + "transition": "Baseline" + } + ] + }, + "PTSD": { + "type": "SetAttribute", + "attribute": "probability_of_suicide", + "direct_transition": "Terminal", + "value": 0.006, + "remarks": [ + "50 deaths / 100k * 12 attempts / completion == 600 attempts / 100k == .006 == .6 % lifetime probability" + ] + }, + "SUD": { + "type": "SetAttribute", + "attribute": "probability_of_suicide", + "direct_transition": "Terminal", + "value": 0.0144, + "remarks": [ + "120 deaths / 100k * 12 attempts / completion == 1440 attempts / 100k == .0144 == 1.44 % lifetime probability" + ] + }, + "Veteran check": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "veteran", + "operator": "is not nil" + }, + "transition": "Veteran" + }, + { + "transition": "Terminal" + } + ] + }, + "MDD": { + "type": "SetAttribute", + "attribute": "probability_of_suicide", + "direct_transition": "Terminal", + "value": 0.0072, + "remarks": [ + "60 deaths / 100k * 12 attempts / completion == 720 attempts / 100k == .0072 == .72 % lifetime probability" + ] + }, + "Baseline": { + "type": "SetAttribute", + "attribute": "probability_of_suicide", + "direct_transition": "Terminal", + "value": 0.003072, + "remarks": [ + "25.6 deaths / 100k * 12 attempts / completion == 307.2 attempts / 100k == .003072 == .3 % lifetime probability" + ] + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/modules/vhd_aortic.json b/src/main/resources/modules/vhd_aortic.json new file mode 100644 index 0000000..6866f0b --- /dev/null +++ b/src/main/resources/modules/vhd_aortic.json @@ -0,0 +1,679 @@ +{ + "name": "vhd_aortic", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "Aortic Valvular Heart Disease (VHD) Progression model." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Set_Risk_Factors" + }, + "Terminal": { + "type": "Terminal" + }, + "Aortic Valve Stenosis": { + "type": "ConditionOnset", + "assign_to_attribute": "vhd_diagnosis", + "target_encounter": "Echo Encounter", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60573004", + "display": "Aortic valve stenosis (disorder)" + } + ], + "direct_transition": "Echo Encounter" + }, + "Aortic Valve Regurgitation": { + "type": "ConditionOnset", + "assign_to_attribute": "vhd_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60234000", + "display": "Aortic valve regurgitation (disorder)" + } + ], + "direct_transition": "Echo Encounter" + }, + "Echo Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "vhd_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "conditional_transition": [ + { + "transition": "Only AR Check", + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60234000", + "display": "Aortic valve regurgitation (disorder)" + } + ] + } + }, + { + "transition": "Only AS Check" + } + ] + }, + "Annual Check": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "years" + }, + "direct_transition": "Risk Factor Check" + }, + "Risk Factor Check": { + "type": "Simple", + "direct_transition": "Check for AS Onset" + }, + "Check for AS Onset": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Aortic Valve Stenosis", + "default_probability": 0, + "lookup_table_name": "vhd_as.csv" + }, + { + "transition": "Check for AR Onset", + "default_probability": 1, + "lookup_table_name": "vhd_as.csv" + } + ] + }, + "Check for AR Onset": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Aortic Valve Regurgitation", + "default_probability": 0, + "lookup_table_name": "vhd_ar.csv" + }, + { + "default_probability": 1, + "lookup_table_name": "vhd_ar.csv", + "transition": "Annual Check" + } + ] + }, + "Set_Risk_Factors": { + "type": "CallSubmodule", + "submodule": "heart/vhd_risks", + "direct_transition": "Risk Factor Check", + "remarks": [ + "For this initial impl, risk factors are set to true once. Later versions of this model should move this into Risk Factor Check and update the risk factors yearly" + ] + }, + "Only AR Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "End Encounter and Exit", + "condition": { + "condition_type": "At Least", + "minimum": 1, + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60573004", + "display": "Aortic valve stenosis (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "48724000", + "display": "Mitral valve regurgitation (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "79619009", + "display": "Mitral valve stenosis (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "56786000", + "display": "Pulmonic valve stenosis (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91434003", + "display": "Pulmonic valve regurgitation (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "111287006", + "display": "Tricuspid valve regurgitation (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "49915006", + "display": "Tricuspid valve stenosis (disorder)" + } + ] + } + ] + } + }, + { + "transition": "Referral to Echocardiography" + } + ] + }, + "Only AS Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "End Encounter and Exit", + "condition": { + "condition_type": "At Least", + "minimum": 1, + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "60234000", + "display": "Aortic valve regurgitation (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "48724000", + "display": "Mitral valve regurgitation (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "79619009", + "display": "Mitral valve stenosis (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "56786000", + "display": "Pulmonic valve stenosis (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91434003", + "display": "Pulmonic valve regurgitation (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "111287006", + "display": "Tricuspid valve regurgitation (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "49915006", + "display": "Tricuspid valve stenosis (disorder)" + } + ] + } + ] + } + }, + { + "transition": "Referral to Echocardiography" + } + ] + }, + "Echocardiography": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "433236007", + "display": "Transthoracic echocardiography (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "80891009", + "display": "Heart structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "US", + "display": "Ultrasound" + }, + "instances": [ + { + "title": "Ultrasound Multiframe Image Storage", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.3.1", + "display": "Ultrasound Multiframe Image Storage" + } + } + ] + } + ], + "conditional_transition": [ + { + "transition": "Severity_Check_with_BAV", + "condition": { + "condition_type": "Attribute", + "attribute": "bicuspid_aortic_valve", + "operator": "is not nil" + } + }, + { + "transition": "Severity Check" + } + ] + }, + "Referral to Echocardiography": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "390791001", + "display": "Referral for echocardiography (procedure)" + } + ], + "distribution": { + "kind": "UNIFORM", + "parameters": { + "high": 30, + "low": 5 + } + }, + "unit": "minutes", + "direct_transition": "Echocardiography", + "reason": "vhd_diagnosis" + }, + "Severity_Check_with_BAV": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 44, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "End Echo Encounter", + "distribution": 0.01 + }, + { + "transition": "Redo Echo Encounter", + "distribution": 0.99 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 54, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "End Echo Encounter", + "distribution": 0.06 + }, + { + "transition": "Redo Echo Encounter", + "distribution": 0.94 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 64, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "End Echo Encounter", + "distribution": 0.5 + }, + { + "transition": "Redo Echo Encounter", + "distribution": 0.5 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 74, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "End Echo Encounter", + "distribution": 0.625 + }, + { + "transition": "Redo Echo Encounter", + "distribution": 0.375 + } + ] + }, + { + "distributions": [ + { + "transition": "End Echo Encounter", + "distribution": 0.75 + }, + { + "transition": "Redo Echo Encounter", + "distribution": 0.25 + } + ] + } + ] + }, + "Severity Check": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 44, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "End Echo Encounter", + "distribution": 0.005 + }, + { + "transition": "Redo Echo Encounter", + "distribution": 0.995 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 54, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "End Echo Encounter", + "distribution": 0.03 + }, + { + "transition": "Redo Echo Encounter", + "distribution": 0.97 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 64, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "End Echo Encounter", + "distribution": 0.25 + }, + { + "transition": "Redo Echo Encounter", + "distribution": 0.75 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 74, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "End Echo Encounter", + "distribution": 0.5 + }, + { + "transition": "Redo Echo Encounter", + "distribution": 0.5 + } + ] + }, + { + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 84, + "unit": "years", + "value": 0 + }, + "distributions": [ + { + "transition": "End Echo Encounter", + "distribution": 0.625 + }, + { + "transition": "Redo Echo Encounter", + "distribution": 0.375 + } + ] + }, + { + "distributions": [ + { + "transition": "End Echo Encounter", + "distribution": 0.75 + }, + { + "transition": "Redo Echo Encounter", + "distribution": 0.25 + } + ] + } + ] + }, + "End Echo Encounter": { + "type": "EncounterEnd", + "direct_transition": "AVRr Sequence" + }, + "AVRr Sequence": { + "type": "CallSubmodule", + "submodule": "heart/avrr/sequence", + "complex_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "1231000119100", + "display": "History of aortic valve replacement (situation)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "119481000119105", + "display": "History of aortic valve repair (situation)" + } + ] + } + ] + }, + "distributions": [ + { + "transition": "Set PriorValveOp", + "distribution": 0.005 + }, + { + "transition": "Terminal", + "distribution": 0.995 + } + ] + }, + { + "distributions": [ + { + "transition": "Terminal", + "distribution": 1 + } + ] + } + ] + }, + "Medium Wait for Encounter": { + "type": "Delay", + "direct_transition": "Echo Encounter", + "range": { + "low": 12, + "high": 24, + "unit": "months" + } + }, + "Short Wait for Encounter": { + "type": "Delay", + "range": { + "low": 6, + "high": 12, + "unit": "months" + }, + "direct_transition": "Echo Encounter" + }, + "Long Wait for Encounter": { + "type": "Delay", + "range": { + "low": 36, + "high": 60, + "unit": "months" + }, + "direct_transition": "Echo Encounter" + }, + "Redo Echo Encounter": { + "type": "EncounterEnd", + "distributed_transition": [ + { + "transition": "Long Wait for Encounter", + "distribution": 0.1 + }, + { + "transition": "Medium Wait for Encounter", + "distribution": 0.6 + }, + { + "transition": "Short Wait for Encounter", + "distribution": 0.3 + } + ] + }, + "Set PriorValveOp": { + "type": "SetAttribute", + "attribute": "PriorValveOp", + "direct_transition": "Delay 10 years", + "value": true + }, + "Delay 10 years": { + "type": "Simple", + "direct_transition": "AVRr Sequence" + }, + "End Encounter and Exit": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/vhd_mitral.json b/src/main/resources/modules/vhd_mitral.json new file mode 100644 index 0000000..1b6dd4a --- /dev/null +++ b/src/main/resources/modules/vhd_mitral.json @@ -0,0 +1,173 @@ +{ + "name": "vhd_mitral", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "Mitral Valvular Heart Disease (VHD) Progression model." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Set_Risk_Factors" + }, + "Terminal": { + "type": "Terminal" + }, + "Mitral Valve Regurgitation": { + "type": "ConditionOnset", + "assign_to_attribute": "vhd_diagnosis", + "target_encounter": "Encounter_MVR", + "codes": [ + { + "system": "SNOMED-CT", + "code": "48724000", + "display": "Mitral valve regurgitation (disorder)" + } + ], + "direct_transition": "Wait_for_Encounter MVR" + }, + "Transthoracic_Echo MVR": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "433236007", + "display": "Transthoracic echocardiography (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "51185008", + "display": "Thoracic structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "US", + "display": "Ultrasound" + }, + "instances": [ + { + "title": "Ultrasound Multiframe Image Storage", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.3.1", + "display": "Ultrasound Multiframe Image Storage" + } + } + ] + } + ], + "direct_transition": "Placeholder for Mitral Clip" + }, + "Placeholder for Mitral Clip": { + "type": "Simple", + "direct_transition": "End_Encounter_MVR" + }, + "Wait_for_Encounter MVR": { + "type": "Delay", + "range": { + "low": 12, + "high": 24, + "unit": "months" + }, + "direct_transition": "Encounter_MVR" + }, + "Encounter_MVR": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "vhd_diagnosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Transthoracic_Echo MVR" + }, + "End_Encounter_MVR": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Annual Check": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "years" + }, + "direct_transition": "Risk Factor Check" + }, + "Risk Factor Check": { + "type": "Simple", + "direct_transition": "Check for MS Onset" + }, + "Check for MR Onset": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Mitral Valve Regurgitation", + "default_probability": 0, + "lookup_table_name": "vhd_mr.csv" + }, + { + "default_probability": 1, + "lookup_table_name": "vhd_mr.csv", + "transition": "Annual Check" + } + ] + }, + "Check for MS Onset": { + "type": "Simple", + "lookup_table_transition": [ + { + "default_probability": 0, + "lookup_table_name": "vhd_ms.csv", + "transition": "Mitral Valve Stenosis" + }, + { + "transition": "Check for MR Onset", + "default_probability": 1, + "lookup_table_name": "vhd_ms.csv" + } + ] + }, + "Mitral Valve Stenosis": { + "type": "ConditionOnset", + "assign_to_attribute": "vhd_diagnosis", + "target_encounter": "Placeholder MVS Treatment", + "codes": [ + { + "system": "SNOMED-CT", + "code": "79619009", + "display": "Mitral valve stenosis (disorder)" + } + ], + "direct_transition": "Placeholder MVS Treatment" + }, + "Placeholder MVS Treatment": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Mitral Valve Stenosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "End Placeholder MVS Treatment" + }, + "Set_Risk_Factors": { + "type": "CallSubmodule", + "submodule": "heart/vhd_risks", + "direct_transition": "Risk Factor Check", + "remarks": [ + "For this initial impl, risk factors are set to true once. Later versions of this model should move this into Risk Factor Check and update the risk factors yearly" + ] + }, + "End Placeholder MVS Treatment": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/vhd_pulmonic.json b/src/main/resources/modules/vhd_pulmonic.json new file mode 100644 index 0000000..e394c06 --- /dev/null +++ b/src/main/resources/modules/vhd_pulmonic.json @@ -0,0 +1,173 @@ +{ + "name": "vhd_pulmonic", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "Pulmonic Valvular Heart Disease (VHD) Progression model." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Set_Risk_Factors" + }, + "Terminal": { + "type": "Terminal" + }, + "Placeholder for Other Valve Surgery": { + "type": "Simple", + "direct_transition": "End_Encounter_PVR" + }, + "Annual Check": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "years" + }, + "direct_transition": "Risk Factor Check" + }, + "Risk Factor Check": { + "type": "Simple", + "direct_transition": "Check for PS Onset" + }, + "Check for PS Onset": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Check for PR Onset", + "default_probability": 1, + "lookup_table_name": "vhd_ps.csv" + }, + { + "transition": "Pulmonic Valve Stenosis", + "default_probability": 1, + "lookup_table_name": "vhd_ps.csv" + } + ] + }, + "Check for PR Onset": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Annual Check", + "default_probability": 1, + "lookup_table_name": "vhd_pr.csv" + }, + { + "transition": "Pulmonic Valve Regurgitation", + "default_probability": 0, + "lookup_table_name": "vhd_pr.csv" + } + ] + }, + "Pulmonic Valve Stenosis": { + "type": "ConditionOnset", + "assign_to_attribute": "", + "target_encounter": "Encounter_PVS", + "codes": [ + { + "system": "SNOMED-CT", + "code": "56786000", + "display": "Pulmonic valve stenosis (disorder)" + } + ], + "direct_transition": "Encounter_PVS" + }, + "Pulmonic Valve Regurgitation": { + "type": "ConditionOnset", + "assign_to_attribute": "vhd_diagnosis", + "target_encounter": "Encounter_PVR", + "codes": [ + { + "system": "SNOMED-CT", + "code": "91434003", + "display": "Pulmonic valve regurgitation (disorder)" + } + ], + "direct_transition": "Wait_for_Encounter_PVR" + }, + "Wait_for_Encounter_PVR": { + "type": "Delay", + "range": { + "low": 12, + "high": 24, + "unit": "months" + }, + "direct_transition": "Encounter_PVR" + }, + "Encounter_PVR": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Pulmonic Valve Regurgitation", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Transthoracic Echo PVR" + }, + "Transthoracic Echo PVR": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "433236007", + "display": "Transthoracic echocardiography (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "51185008", + "display": "Thoracic structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "US", + "display": "Ultrasound" + }, + "instances": [ + { + "title": "Ultrasound Multiframe Image Storage", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.3.1", + "display": "Ultrasound Multiframe Image Storage" + } + } + ] + } + ], + "direct_transition": "Placeholder for Other Valve Surgery" + }, + "End_Encounter_PVR": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Encounter_PVS": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Pulmonic Valve Stenosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "End_Encounter_PVS" + }, + "End_Encounter_PVS": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Set_Risk_Factors": { + "type": "CallSubmodule", + "submodule": "heart/vhd_risks", + "direct_transition": "Risk Factor Check", + "remarks": [ + "For this initial impl, risk factors are set to true once. Later versions of this model should move this into Risk Factor Check and update the risk factors yearly" + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/vhd_tricuspid.json b/src/main/resources/modules/vhd_tricuspid.json new file mode 100644 index 0000000..6db75c8 --- /dev/null +++ b/src/main/resources/modules/vhd_tricuspid.json @@ -0,0 +1,173 @@ +{ + "name": "vhd_tricuspid", + "specialty": "CARDIOVASCULAR DISEASE (CARDIOLOGY)", + "remarks": [ + "Tricuspid Valvular Heart Disease (VHD) Progression model." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Set_Risk_Factors" + }, + "Terminal": { + "type": "Terminal" + }, + "Tricuspid Valve Regurgitation": { + "type": "ConditionOnset", + "assign_to_attribute": "vhd_diagnosis", + "target_encounter": "Encounter_TVR", + "codes": [ + { + "system": "SNOMED-CT", + "code": "111287006", + "display": "Tricuspid valve regurgitation (disorder)" + } + ], + "direct_transition": "Wait_for_Encounter_TVR" + }, + "Transthoracic Echo TVR": { + "type": "ImagingStudy", + "procedure_code": { + "system": "SNOMED-CT", + "code": "433236007", + "display": "Transthoracic echocardiography (procedure)" + }, + "series": [ + { + "body_site": { + "system": "SNOMED-CT", + "code": "51185008", + "display": "Thoracic structure (body structure)" + }, + "modality": { + "system": "DICOM-DCM", + "code": "US", + "display": "Ultrasound" + }, + "instances": [ + { + "title": "Ultrasound Multiframe Image Storage", + "sop_class": { + "system": "DICOM-SOP", + "code": "1.2.840.10008.5.1.4.1.1.3.1", + "display": "Ultrasound Multiframe Image Storage" + } + } + ] + } + ], + "direct_transition": "Placeholder for Other Valve Surgery" + }, + "Placeholder for Other Valve Surgery": { + "type": "Simple", + "direct_transition": "End_Encounter_TVR" + }, + "Wait_for_Encounter_TVR": { + "type": "Delay", + "range": { + "low": 12, + "high": 24, + "unit": "months" + }, + "direct_transition": "Encounter_TVR" + }, + "Encounter_TVR": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Tricuspid Valve Regurgitation", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "Transthoracic Echo TVR" + }, + "End_Encounter_TVR": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Annual Check": { + "type": "Delay", + "exact": { + "quantity": 1, + "unit": "years" + }, + "direct_transition": "Risk Factor Check" + }, + "Risk Factor Check": { + "type": "Simple", + "direct_transition": "Check for TS Onset" + }, + "Check for TR Onset": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Annual Check", + "default_probability": 1, + "lookup_table_name": "vhd_tr.csv" + }, + { + "transition": "Tricuspid Valve Regurgitation", + "default_probability": 0, + "lookup_table_name": "vhd_tr.csv" + } + ] + }, + "Check for TS Onset": { + "type": "Simple", + "lookup_table_transition": [ + { + "transition": "Check for TR Onset", + "default_probability": 1, + "lookup_table_name": "vhd_ts.csv" + }, + { + "transition": "Tricuspid Valve Stenosis", + "default_probability": 1, + "lookup_table_name": "vhd_ts.csv" + } + ] + }, + "Tricuspid Valve Stenosis": { + "type": "ConditionOnset", + "assign_to_attribute": "", + "target_encounter": "Encounter_TVS", + "codes": [ + { + "system": "SNOMED-CT", + "code": "49915006", + "display": "Tricuspid valve stenosis (disorder)" + } + ], + "direct_transition": "Encounter_TVS" + }, + "End_Encounter_TVS": { + "type": "EncounterEnd", + "direct_transition": "Terminal" + }, + "Encounter_TVS": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "Tricuspid Valve Stenosis", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "End_Encounter_TVS" + }, + "Set_Risk_Factors": { + "type": "CallSubmodule", + "submodule": "heart/vhd_risks", + "direct_transition": "Risk Factor Check", + "remarks": [ + "For this initial impl, risk factors are set to true once. Later versions of this model should move this into Risk Factor Check and update the risk factors yearly" + ] + } + }, + "gmf_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/modules/weight_loss/mend_week.json b/src/main/resources/modules/weight_loss/mend_week.json new file mode 100644 index 0000000..71fe997 --- /dev/null +++ b/src/main/resources/modules/weight_loss/mend_week.json @@ -0,0 +1,157 @@ +{ + "name": "MEND Weekly Sessions", + "remarks": [ + "2 intervention encounters that record vitals and provide a cooking class ", + "and exercise class." + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Wait_For_First" + }, + "Nutrition_Intervention_Procedure": { + "type": "Procedure", + "reason": "obesity", + "codes": [ + { + "system": "SNOMED-CT", + "code": "290045001", + "display": "Kitchen practice (regime/therapy)" + } + ], + "direct_transition": "Exercise_Intervention_Procedure", + "duration": { + "low": 45, + "high": 60, + "unit": "minutes" + } + }, + "Exercise_Intervention_Procedure": { + "type": "Procedure", + "reason": "obesity", + "codes": [ + { + "system": "SNOMED-CT", + "code": "229095001", + "display": "Exercise class (regime/therapy)" + } + ], + "duration": { + "low": 45, + "high": 60, + "unit": "minutes" + }, + "direct_transition": "End_Exercise_Intervention" + }, + "End_Exercise_Intervention": { + "type": "EncounterEnd", + "direct_transition": "Check_For_End" + }, + "MEND_Encounter": { + "type": "Encounter", + "encounter_class": "ambulatory", + "reason": "obesity", + "telemedicine_possibility": "possible", + "codes": [ + { + "system": "SNOMED-CT", + "code": "185347001", + "display": "Encounter for problem (procedure)" + } + ], + "direct_transition": "MEND_Vitals" + }, + "End_MEND_Week": { + "type": "Terminal" + }, + "MEND_Vitals": { + "type": "CallSubmodule", + "submodule": "encounter/vitals", + "direct_transition": "Nutrition_Intervention_Procedure" + }, + "Reset_Visit_Counter": { + "type": "SetAttribute", + "attribute": "mend_weekly_visit_count", + "direct_transition": "Increment_MEND_Visit", + "value": 0 + }, + "Increment_MEND_Visit": { + "type": "Counter", + "attribute": "mend_weekly_visit_count", + "action": "increment", + "complex_transition": [ + { + "condition": { + "condition_type": "Attribute", + "attribute": "weight_loss_adherence", + "operator": "==", + "value": true + }, + "distributions": [ + { + "transition": "MEND_Encounter", + "distribution": 0.95 + }, + { + "transition": "Check_For_End", + "distribution": 0.05 + } + ] + }, + { + "distributions": [ + { + "transition": "MEND_Encounter", + "distribution": 0.1 + }, + { + "transition": "Check_For_End", + "distribution": 0.9 + } + ] + } + ] + }, + "Wait_For_Next_Visit": { + "type": "Delay", + "exact": { + "quantity": 3, + "unit": "days" + }, + "direct_transition": "Increment_MEND_Visit" + }, + "Wait_For_Week_To_End": { + "type": "Delay", + "exact": { + "quantity": 2, + "unit": "days" + }, + "direct_transition": "End_MEND_Week" + }, + "Check_For_End": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Wait_For_Week_To_End", + "condition": { + "condition_type": "Attribute", + "attribute": "mend_weekly_visit_count", + "operator": ">", + "value": 2 + } + }, + { + "transition": "Wait_For_Next_Visit" + } + ] + }, + "Wait_For_First": { + "type": "Delay", + "exact": { + "quantity": 2, + "unit": "days" + }, + "direct_transition": "Reset_Visit_Counter" + } + } +} \ No newline at end of file diff --git a/src/main/resources/modules/wellness_encounters.json b/src/main/resources/modules/wellness_encounters.json new file mode 100644 index 0000000..2e0f37e --- /dev/null +++ b/src/main/resources/modules/wellness_encounters.json @@ -0,0 +1,1163 @@ +{ + "name": "Wellness Encounters", + "remarks": [ + "migrated observations from Lifecycle and Metabolic Syndrome ruby modules" + ], + "states": { + "Initial": { + "type": "Initial", + "direct_transition": "Wellness_Encounter_Reason" + }, + "Wellness_Encounter": { + "type": "Encounter", + "wellness": true, + "direct_transition": "Record_Height", + "reason": "wellness_encounter_reason" + }, + "Record_Height": { + "type": "Observation", + "category": "vital-signs", + "vital_sign": "Height", + "codes": [ + { + "system": "LOINC", + "code": "8302-2", + "display": "Body Height" + } + ], + "unit": "cm", + "direct_transition": "Record_Pain" + }, + "Record_Weight": { + "type": "Observation", + "category": "vital-signs", + "vital_sign": "Weight", + "codes": [ + { + "system": "LOINC", + "code": "29463-7", + "display": "Body Weight" + } + ], + "unit": "kg", + "conditional_transition": [ + { + "transition": "Record_Weight_For_Length_Percentile", + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 3, + "unit": "years" + } + }, + { + "transition": "Record_BMI" + } + ] + }, + "Record_BMI": { + "type": "Observation", + "category": "vital-signs", + "vital_sign": "BMI", + "codes": [ + { + "system": "LOINC", + "code": "39156-5", + "display": "Body mass index (BMI) [Ratio]" + } + ], + "unit": "kg/m2", + "conditional_transition": [ + { + "transition": "Record_BMI_Percentile", + "condition": { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Age", + "operator": ">=", + "quantity": 2, + "unit": "years" + }, + { + "condition_type": "Age", + "operator": "<", + "quantity": 20, + "unit": "years" + } + ] + } + }, + { + "transition": "Obese_Check" + } + ] + }, + "Obese_Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Severe Obesity", + "condition": { + "condition_type": "Vital Sign", + "vital_sign": "BMI", + "operator": ">=", + "value": 40 + } + }, + { + "transition": "Obesity", + "condition": { + "condition_type": "Vital Sign", + "vital_sign": "BMI", + "operator": ">=", + "value": 30 + } + }, + { + "transition": "Record_BP" + } + ] + }, + "Obesity": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "162864005", + "display": "Body mass index 30+ - obesity (finding)" + } + ], + "direct_transition": "Record_BP", + "assign_to_attribute": "obesity" + }, + "Severe Obesity": { + "type": "ConditionOnset", + "assign_to_attribute": "obesity", + "codes": [ + { + "system": "SNOMED-CT", + "code": "408512008", + "display": "Body mass index 40+ - severely obese (finding)" + } + ], + "direct_transition": "Record_BP" + }, + "Record_BP": { + "type": "MultiObservation", + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "85354-9", + "display": "Blood pressure panel with all children optional" + } + ], + "observations": [ + { + "category": "vital-signs", + "vital_sign": "Systolic Blood Pressure", + "codes": [ + { + "system": "LOINC", + "code": "8480-6", + "display": "Systolic Blood Pressure" + } + ], + "unit": "mm[Hg]" + }, + { + "category": "vital-signs", + "vital_sign": "Diastolic Blood Pressure", + "codes": [ + { + "system": "LOINC", + "code": "8462-4", + "display": "Diastolic Blood Pressure" + } + ], + "unit": "mm[Hg]" + } + ], + "direct_transition": "Record_Heart_Rate" + }, + "Record_MetabolicPanel": { + "type": "DiagnosticReport", + "number_of_observations": 8, + "codes": [ + { + "system": "LOINC", + "code": "51990-0", + "display": "Basic metabolic panel - Blood" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Glucose", + "codes": [ + { + "system": "LOINC", + "code": "2339-0", + "display": "Glucose [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Urea Nitrogen", + "codes": [ + { + "system": "LOINC", + "code": "6299-2", + "display": "Urea nitrogen [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Creatinine", + "codes": [ + { + "system": "LOINC", + "code": "38483-4", + "display": "Creatinine [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Calcium", + "codes": [ + { + "system": "LOINC", + "code": "49765-1", + "display": "Calcium [Mass/volume] in Blood" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Sodium", + "codes": [ + { + "system": "LOINC", + "code": "2947-0", + "display": "Sodium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Potassium", + "codes": [ + { + "system": "LOINC", + "code": "6298-4", + "display": "Potassium [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Chloride", + "codes": [ + { + "system": "LOINC", + "code": "2069-3", + "display": "Chloride [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + }, + { + "category": "laboratory", + "vital_sign": "Carbon Dioxide", + "codes": [ + { + "system": "LOINC", + "code": "20565-8", + "display": "Carbon dioxide, total [Moles/volume] in Blood" + } + ], + "unit": "mmol/L" + } + ], + "direct_transition": "Lab_LipidPanel" + }, + "Record_LipidPanel": { + "type": "DiagnosticReport", + "number_of_observations": 4, + "codes": [ + { + "system": "LOINC", + "code": "57698-3", + "display": "Lipid panel with direct LDL - Serum or Plasma" + } + ], + "observations": [ + { + "category": "laboratory", + "vital_sign": "Total Cholesterol", + "codes": [ + { + "system": "LOINC", + "code": "2093-3", + "display": "Cholesterol [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "Triglycerides", + "codes": [ + { + "system": "LOINC", + "code": "2571-8", + "display": "Triglycerides" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "LDL", + "codes": [ + { + "system": "LOINC", + "code": "18262-6", + "display": "Low Density Lipoprotein Cholesterol" + } + ], + "unit": "mg/dL" + }, + { + "category": "laboratory", + "vital_sign": "HDL", + "codes": [ + { + "system": "LOINC", + "code": "2085-9", + "display": "Cholesterol in HDL [Mass/volume] in Serum or Plasma" + } + ], + "unit": "mg/dL" + } + ], + "direct_transition": "Lab_ACR" + }, + "Record_ACR": { + "type": "Observation", + "vital_sign": "Microalbumin Creatinine Ratio", + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "14959-1", + "display": "Microalbumin/Creatinine [Mass Ratio] in Urine" + } + ], + "unit": "mg/g", + "direct_transition": "check_CBC" + }, + "Record_EGFR": { + "type": "Observation", + "category": "laboratory", + "vital_sign": "EGFR", + "codes": [ + { + "system": "LOINC", + "code": "33914-3", + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum or Plasma by Creatinine-based formula (MDRD)" + } + ], + "unit": "mL/min/{1.73_m2}", + "direct_transition": "Smoker_Status_Observation" + }, + "Lab_MetabolicPanel": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "44054006", + "display": "Diabetes mellitus type 2 (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "714628002", + "display": "Prediabetes (finding)" + } + ] + } + ] + }, + "transition": "Record_MetabolicPanel" + }, + { + "transition": "Lab_LipidPanel" + } + ] + }, + "Lab_LipidPanel": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "44054006", + "display": "Diabetes mellitus type 2 (disorder)" + } + ] + }, + { + "condition_type": "And", + "conditions": [ + { + "condition_type": "Not", + "condition": { + "condition_type": "PriorState", + "name": "Record_LipidPanel", + "within": { + "quantity": 3, + "unit": "years" + } + } + }, + { + "condition_type": "Age", + "operator": ">=", + "quantity": 30, + "unit": "years" + } + ] + } + ] + }, + "transition": "Record_LipidPanel" + }, + { + "transition": "Lab_ACR" + } + ] + }, + "Lab_ACR": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "44054006", + "display": "Diabetes mellitus type 2 (disorder)" + } + ] + }, + "transition": "Record_ACR" + }, + { + "transition": "check_CBC" + } + ] + }, + "Smoker_Status_Observation": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Record_Current_Smoker", + "condition": { + "condition_type": "Attribute", + "attribute": "smoker", + "operator": "==", + "value": true + } + }, + { + "transition": "Record_Former_Smoker", + "condition": { + "condition_type": "Attribute", + "attribute": "quit smoking age", + "operator": "is not nil" + } + }, + { + "transition": "Record_Never_Smoker" + } + ] + }, + "Record_Current_Smoker": { + "type": "Observation", + "category": "social-history", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "72166-2", + "display": "Tobacco smoking status" + } + ], + "value_code": { + "system": "SNOMED-CT", + "code": "449868002", + "display": "Smokes tobacco daily (finding)" + }, + "direct_transition": "SDoH Check" + }, + "Record_Former_Smoker": { + "type": "Observation", + "category": "social-history", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "72166-2", + "display": "Tobacco smoking status" + } + ], + "direct_transition": "SDoH Check", + "value_code": { + "system": "SNOMED-CT", + "code": "8517006", + "display": "Ex-smoker (finding)" + } + }, + "Record_Never_Smoker": { + "type": "Observation", + "category": "social-history", + "unit": "", + "codes": [ + { + "system": "LOINC", + "code": "72166-2", + "display": "Tobacco smoking status" + } + ], + "direct_transition": "SDoH Check", + "value_code": { + "system": "SNOMED-CT", + "code": "266919005", + "display": "Never smoked tobacco (finding)" + } + }, + "check_CBC": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "check_eGFR", + "condition": { + "condition_type": "PriorState", + "name": "Record_CBC_Panel", + "within": { + "quantity": 5, + "unit": "years" + } + } + }, + { + "transition": "Record_CBC_Panel" + } + ] + }, + "check_eGFR": { + "type": "Simple", + "conditional_transition": [ + { + "condition": { + "condition_type": "Or", + "conditions": [ + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "44054006", + "display": "Diabetes mellitus type 2 (disorder)" + } + ] + }, + { + "condition_type": "Active Condition", + "codes": [ + { + "system": "SNOMED-CT", + "code": "38341003", + "display": "Hypertensive disorder, systemic arterial (disorder)" + } + ] + } + ] + }, + "transition": "Record_EGFR" + }, + { + "transition": "Smoker_Status_Observation" + } + ] + }, + "Record_CBC_Panel": { + "type": "DiagnosticReport", + "number_of_observations": 4, + "codes": [ + { + "system": "LOINC", + "code": "58410-2", + "display": "CBC panel - Blood by Automated count" + } + ], + "observations": [ + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "6690-2", + "display": "Leukocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*3/uL", + "range": { + "low": 3.5, + "high": 10.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "789-8", + "display": "Erythrocytes [#/volume] in Blood by Automated count" + } + ], + "unit": "10*6/uL", + "range": { + "low": 3.9, + "high": 5.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "718-7", + "display": "Hemoglobin [Mass/volume] in Blood" + } + ], + "unit": "g/dL", + "range": { + "low": 12, + "high": 17.5 + } + }, + { + "category": "laboratory", + "codes": [ + { + "system": "LOINC", + "code": "4544-3", + "display": "Hematocrit [Volume Fraction] of Blood by Automated count" + } + ], + "unit": "%", + "range": { + "low": 35, + "high": 50 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "787-2", + "display": "MCV [Entitic volume] by Automated count" + } + ], + "range": { + "low": 80, + "high": 95 + } + }, + { + "category": "laboratory", + "unit": "pg", + "codes": [ + { + "system": "LOINC", + "code": "785-6", + "display": "MCH [Entitic mass] by Automated count" + } + ], + "range": { + "low": 27, + "high": 33 + } + }, + { + "category": "laboratory", + "unit": "g/dL", + "codes": [ + { + "system": "LOINC", + "code": "786-4", + "display": "MCHC [Mass/volume] by Automated count" + } + ], + "range": { + "low": 33, + "high": 36 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "21000-5", + "display": "Erythrocyte distribution width [Entitic volume] by Automated count" + } + ], + "range": { + "low": 39, + "high": 46 + } + }, + { + "category": "laboratory", + "unit": "10*3/uL", + "codes": [ + { + "system": "LOINC", + "code": "777-3", + "display": "Platelets [#/volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 450 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32207-3", + "display": "Platelet distribution width [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 150, + "high": 520 + } + }, + { + "category": "laboratory", + "unit": "fL", + "codes": [ + { + "system": "LOINC", + "code": "32623-1", + "display": "Platelet mean volume [Entitic volume] in Blood by Automated count" + } + ], + "range": { + "low": 9.4, + "high": 12.3 + } + } + ], + "direct_transition": "check_eGFR" + }, + "Record_Pain": { + "type": "Observation", + "category": "vital-signs", + "codes": [ + { + "system": "LOINC", + "code": "72514-3", + "display": "Pain severity - 0-10 verbal numeric rating [Score] - Reported" + } + ], + "unit": "{score}", + "direct_transition": "Record_Weight", + "range": { + "decimals": 0, + "low": 0, + "high": 4 + } + }, + "Record_BMI_Percentile": { + "type": "Observation", + "category": "vital-signs", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "59576-9", + "display": "Body mass index (BMI) [Percentile] Per age and sex" + } + ], + "direct_transition": "Record_BP", + "attribute": "bmi_percentile" + }, + "Record_Weight_For_Length_Percentile": { + "type": "Observation", + "category": "vital-signs", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "77606-2", + "display": "Weight-for-length Per age and sex" + } + ], + "attribute": "current_weight_length_percentile", + "direct_transition": "Record_Head_Circumference_Percentile" + }, + "Record Head Circumference": { + "type": "Observation", + "category": "vital-signs", + "unit": "cm", + "codes": [ + { + "system": "LOINC", + "code": "9843-4", + "display": "Head Occipital-frontal circumference" + } + ], + "conditional_transition": [ + { + "transition": "Record_BMI", + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 2, + "unit": "years" + } + }, + { + "transition": "Record_BP" + } + ], + "vital_sign": "Head Circumference" + }, + "Record_Heart_Rate": { + "type": "Observation", + "category": "vital-signs", + "unit": "/min", + "codes": [ + { + "system": "LOINC", + "code": "8867-4", + "display": "Heart rate" + } + ], + "direct_transition": "Record_Respiratory_Rate", + "vital_sign": "Heart Rate" + }, + "Record_Respiratory_Rate": { + "type": "Observation", + "category": "vital-signs", + "unit": "/min", + "codes": [ + { + "system": "LOINC", + "code": "9279-1", + "display": "Respiratory rate" + } + ], + "direct_transition": "Lab_MetabolicPanel", + "vital_sign": "Respiration Rate" + }, + "End_Of_Wellness_Encounter": { + "type": "EncounterEnd", + "direct_transition": "Wellness_Encounter" + }, + "PRAPARE": { + "type": "CallSubmodule", + "submodule": "encounter/sdoh_hrsn", + "direct_transition": "Anxiety Screening Check" + }, + "SDoH Check": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "PRAPARE", + "condition": { + "condition_type": "Age", + "operator": ">=", + "quantity": 18, + "unit": "years", + "value": 0 + } + }, + { + "transition": "Anxiety Screening Check" + } + ] + }, + "Anxiety Screening": { + "type": "CallSubmodule", + "submodule": "encounter/anxiety_screening", + "direct_transition": "Fall Risk Screening Check" + }, + "Fall Risk Screening": { + "type": "CallSubmodule", + "submodule": "encounter/fall_risk_screening", + "direct_transition": "HARK Screening Check" + }, + "HARK Screening": { + "type": "CallSubmodule", + "submodule": "encounter/hark_screening", + "direct_transition": "Depression Screening Check" + }, + "Depression Screening": { + "type": "CallSubmodule", + "submodule": "encounter/depression_screening", + "direct_transition": "Substance Use Screening Check" + }, + "Anxiety Screening Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Anxiety Screening", + "distribution": 0.5 + }, + { + "transition": "Fall Risk Screening Check", + "distribution": 0.5 + } + ] + }, + "Fall Risk Screening Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Fall Risk Screening", + "distribution": 0.7 + }, + { + "transition": "HARK Screening Check", + "distribution": 0.3 + } + ] + }, + "HARK Screening Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "HARK Screening", + "distribution": 0.3 + }, + { + "transition": "Depression Screening Check", + "distribution": 0.7 + } + ] + }, + "Depression Screening Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Depression Screening", + "distribution": 0.8 + }, + { + "transition": "Substance Use Screening Check", + "distribution": 0.2 + } + ] + }, + "Substance Use Screening Check": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Substance Use Screening", + "distribution": 0.7 + }, + { + "transition": "Dental Referral?", + "distribution": 0.3 + } + ] + }, + "Substance Use Screening": { + "type": "CallSubmodule", + "submodule": "encounter/substance_use_screening", + "direct_transition": "Dental Referral?" + }, + "Record_Head_Circumference_Percentile": { + "type": "Observation", + "category": "vital-signs", + "unit": "%", + "codes": [ + { + "system": "LOINC", + "code": "8289-1", + "display": "Head Occipital-frontal circumference Percentile" + } + ], + "vital_sign": "Head Circumference Percentile", + "direct_transition": "Record Head Circumference" + }, + "Wellness_Encounter_Reason": { + "type": "SetAttribute", + "attribute": "wellness_encounter_reason", + "direct_transition": "Wellness_Encounter", + "value_code": { + "system": "SNOMED-CT", + "code": "410424005", + "display": "Wellness surveillance (regime/therapy)" + } + }, + "Dental Referral?": { + "type": "Simple", + "conditional_transition": [ + { + "transition": "Pediatric Dentist", + "condition": { + "condition_type": "Age", + "operator": "<=", + "quantity": 6, + "unit": "years", + "value": 0 + } + }, + { + "transition": "Refer to Dentist" + } + ] + }, + "Patient referral for dental care": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "103697008", + "display": "Patient referral for dental care (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 10, + "standardDeviation": 5 + } + }, + "unit": "minutes", + "direct_transition": "End_Of_Wellness_Encounter", + "reason": "dental_referral" + }, + "Gingivitis": { + "type": "ConditionOnset", + "codes": [ + { + "system": "SNOMED-CT", + "code": "66383009", + "display": "Gingivitis (disorder)" + } + ], + "direct_transition": "Patient referral for dental care", + "assign_to_attribute": "dental_referral" + }, + "Go see a Dentist": { + "type": "Procedure", + "codes": [ + { + "system": "SNOMED-CT", + "code": "103697008", + "display": "Patient referral for dental care (procedure)" + } + ], + "distribution": { + "kind": "GAUSSIAN", + "parameters": { + "min": 5, + "mean": 10, + "standardDeviation": 5 + } + }, + "unit": "minutes", + "direct_transition": "End_Of_Wellness_Encounter", + "assign_to_attribute": "dental_referral" + }, + "Refer to Dentist": { + "type": "Simple", + "distributed_transition": [ + { + "transition": "Gingivitis", + "distribution": 0.25 + }, + { + "transition": "Go see a Dentist", + "distribution": 0.25 + }, + { + "transition": "End_Of_Wellness_Encounter", + "distribution": 0.5 + } + ] + }, + "Pediatric Dentist": { + "type": "Simple", + "complex_transition": [ + { + "condition": { + "condition_type": "Age", + "operator": "<", + "quantity": 2, + "unit": "years", + "value": 0 + }, + "distributions": [], + "transition": "End_Of_Wellness_Encounter" + }, + { + "distributions": [ + { + "transition": "Go see a Dentist", + "distribution": 0.25 + }, + { + "transition": "End_Of_Wellness_Encounter", + "distribution": 0.75 + } + ] + } + ] + } + }, + "gmf_version": 1 +} \ No newline at end of file diff --git a/src/main/resources/version.txt b/src/main/resources/version.txt new file mode 100644 index 0000000..e69de29 diff --git a/trace.txt b/trace.txt new file mode 100644 index 0000000..fc0c124 --- /dev/null +++ b/trace.txt @@ -0,0 +1,2 @@ +task_id hash native_id name status exit submit duration realtime %cpu peak_rss peak_vmem rchar wchar +1 48/6b3902 74409 checkAndGetModule FAILED 1 2025-03-23 11:46:23.178 1.1s 995ms - - - - -