Exposure categories observed in this cohort
Each row aggregates patients and records associated with one exposure category. ECTO column shows the representative ontology term. "Source" indicates whether matches came from structured codes (coded), free-text regex (text), or both.
| Exposure category | ECTO | Patients | Records | Source | |
|---|---|---|---|---|---|
| heavy_metals | curation pending | 13 | 63 | text | |
| head_trauma | curation pending | 13 | 46 | text | |
| smoking | ECTO:9000250 | 12 | 52 | coded+text | |
| military_service | curation pending | 11 | 66 | text | |
| pesticides_agriculture | curation pending | 11 | 40 | text | |
| solvents_industrial | curation pending | 11 | 21 | text | |
| cyanotoxins | curation pending | 10 | 20 | text | |
| asbestos | ECTO:9000033 | 9 | 17 | text | |
| emf_radiation | curation pending | 9 | 19 | text | |
| biological_mold | curation pending | 4 | 5 | text |
All exposures / indicators
| Exposure / indicator | Category | Patients | Records | Source |
|---|---|---|---|---|
| lead_exposure | heavy_metals | 13 | 28 | text |
| contact_sport_football | head_trauma | 13 | 25 | text |
| smoking_status_former | smoking | 12 | 24 | text |
| pack_years | smoking | 11 | 21 | text |
| camp_lejeune | military_service | 11 | 22 | text |
| farming_occupation | pesticides_agriculture | 11 | 22 | text |
| tce_pce | solvents_industrial | 11 | 21 | text |
| military_gulf_war | military_service | 10 | 21 | text |
| manganese_exposure | heavy_metals | 10 | 21 | text |
| cyanotoxin | cyanotoxins | 10 | 20 | text |
| military_service_general | military_service | 9 | 23 | text |
| pesticide_paraquat | pesticides_agriculture | 9 | 18 | text |
| asbestos | asbestos | 9 | 17 | text |
| tbi_history | head_trauma | 9 | 21 | text |
| emf_electrical | emf_radiation | 9 | 19 | text |
| Personal history of nicotine dependence | smoking | 7 | 7 | coded |
| arsenic_exposure | heavy_metals | 6 | 14 | text |
| mold_exposure | biological_mold | 4 | 5 | text |
Patient × exposure-category matrix
PT-NNNN pseudonyms. Cell shows the number of records for that patient in that category; · = none. Categories with fewer than k=2 unique patients are suppressed.
| Patient | heavy_metals | head_trauma | smoking | military_service | pesticides_agriculture | solvents_industrial | cyanotoxins | asbestos | emf_radiation | biological_mold |
|---|---|---|---|---|---|---|---|---|---|---|
| PT-0002 | 6 | 5 | 7 | 7 | 5 | 2 | 2 | 3 | 3 | 1 |
| PT-0001 | 5 | 3 | 7 | 9 | 6 | 3 | 1 | 3 | 1 | 1 |
| PT-0004 | 9 | 5 | 6 | 5 | 5 | 2 | 3 | 2 | 1 | 1 |
| PT-0005 | 8 | 5 | 5 | 6 | 5 | 1 | 2 | 2 | 2 | · |
| PT-0007 | 5 | 4 | 4 | 7 | 6 | 2 | 2 | 3 | 2 | · |
| PT-0003 | 6 | 4 | 4 | 8 | 2 | 1 | 3 | 1 | 3 | 2 |
| PT-0006 | 7 | 4 | 5 | 3 | 3 | 1 | 1 | 1 | 3 | · |
| PT-0008 | 6 | 5 | 4 | 4 | 2 | 1 | 2 | 1 | 1 | · |
| PT-0009 | 2 | 4 | 2 | 8 | 2 | 3 | 1 | 1 | 3 | · |
| PT-0010 | 2 | 1 | 3 | 6 | 2 | 2 | 3 | · | · | · |
| PT-0011 | 3 | 2 | 4 | 3 | 2 | 3 | · | · | · | · |
| PT-0013 | 3 | 2 | · | · | · | · | · | · | · | · |
| PT-0012 | 1 | 2 | 1 | · | · | · | · | · | · | · |
Source-record snippets
Up to 3 representative text excerpts per regex pattern, prioritizing unique-patient diversity. Snippet text truncated to 200 chars. For verification and chart-review preparation; not for analysis.
lead_exposure 13 unique patients · category heavy_metals · ECTO:9000945
Lead exposure
contact_sport_football 13 unique patients · category head_trauma
Football history
smoking_status_former 12 unique patients · category smoking · ECTO:9000250
Former tobacco smoker
pack_years 11 unique patients · category smoking · ECTO:9000250
Pack-years quantification
camp_lejeune 11 unique patients · category military_service
Camp Lejeune water contamination
farming_occupation 11 unique patients · category pesticides_agriculture
Agricultural occupation
tce_pce 11 unique patients · category solvents_industrial
TCE / PCE solvent exposure
military_gulf_war 10 unique patients · category military_service
Gulf War deployment
manganese_exposure 10 unique patients · category heavy_metals
Manganese / welding fumes
cyanotoxin 10 unique patients · category cyanotoxins
Cyanotoxin / BMAA exposure
military_service_general 9 unique patients · category military_service
Military service mention
pesticide_paraquat 9 unique patients · category pesticides_agriculture
Paraquat herbicide exposure
asbestos 9 unique patients · category asbestos · ECTO:9000033
Asbestos exposure
tbi_history 9 unique patients · category head_trauma
TBI / concussion history
emf_electrical 9 unique patients · category emf_radiation
EMF / electrical work
arsenic_exposure 6 unique patients · category heavy_metals · ECTO:9000032
Arsenic exposure
mold_exposure 4 unique patients · category biological_mold
Mold exposure
ECTO ontology mapping
Each exposure category in this dashboard is grounded in a representative term from ECTO, the Environmental Conditions, Treatments, and Exposures Ontology (an OBO Foundry resource maintained at github.com/EnvironmentOntology/environmental-exposure-ontology). ECTO interoperates with GA4GH Phenopackets and is the recommended terminology for exposure annotation. The "in data" column marks which categories actually have observations in this cohort. Click any verified term ID to open it in the EBI Ontology Lookup Service.
| Category | ECTO term | ECTO label | Curation | In cohort? | Notes |
|---|---|---|---|---|---|
| air_pollution | ECTO:0000977 | exposure to ultrafine respirable suspended particulate matter via inhalation | verified | · | This is the verified term for PM2.5/PM10 inhalation. For diesel exhaust, NO2, or other named pollutants, prefer the specific child term. |
| asbestos | ECTO:9000033 | exposure to asbestos | verified | ✓ | |
| smoking | ECTO:9000250 | exposure to nicotine | verified | ✓ | For more specific encoding, consider exposure to cigarette smoke, tobacco smoke, or second-hand smoke separately. |
| biological_mold | curation pending | — | pending | ✓ | Verify at OLS — fungal toxin / mycotoxin exposure terms. |
| cyanotoxins | curation pending | — | pending | ✓ | Verify at OLS. ECTO has chemical-level terms for specific cyanotoxins (microcystin, BMAA, anatoxin-a) that may be more appropriate than a generic cyanotoxin parent. |
| emf_radiation | curation pending | — | pending | ✓ | Verify at OLS — distinguish ionizing radiation (X-ray, gamma) from non-ionizing (EMF, RF, UV). Different ECTO terms. |
| head_trauma | curation pending | — | pending | ✓ | Head trauma is a physical / mechanical exposure rather than a chemical exposure; ECTO coverage for blast/impact events is limited. May need OBI or another ontology for more precise encoding. |
| heavy_metals | curation pending | — | pending | ✓ | No verified parent term yet. Verified child terms: ECTO:9000945 lead, ECTO:0001571 mercury, ECTO:9000032 arsenic. The individual EXPOSURE_PATTERNS carry these specific IDs in ecto_seed. |
| military_service | curation pending | — | pending | ✓ | ECTO does not have a "military service" parent term; the operational guidance is to encode specific sub-exposures separately (Agent Orange — herbicide; Camp Lejeune — TCE/PCE in drinking water; blast injury — see head_trauma). |
| occupational_dust | curation pending | — | pending | · | Verify at OLS — silica, coal, wood, and grain dust each have specific terms. |
| occupational_noise | curation pending | — | pending | · | Verify at OLS. |
| pesticides_agriculture | curation pending | — | pending | ✓ | Verify the parent term at OLS (search "exposure to pesticide"). Specific child terms exist for individual agents — paraquat, glyphosate, organophosphate, DDT, etc. — prefer the most specific term when the agent is known. |
| radiation | curation pending | — | pending | · | Distinguish ionizing (medical X-ray, gamma, alpha) vs non-ionizing (UV, RF, EMF) — these are different ECTO terms. |
| soil_pollution | curation pending | — | pending | · | Verify at OLS. |
| solvents_industrial | curation pending | — | pending | ✓ | Verify parent term at OLS (search "exposure to organic solvent"). Specific child terms exist for benzene, formaldehyde, TCE/PCE, etc. |
| water_pollution | curation pending | — | pending | · | Verify at OLS. Usually co-coded with a specific contaminant (lead in water, TCE in water, etc.). |
| biological_other | n/a — catch-all bucket | — | catch-all | · | Catch-all bucket; not a real ECTO term. |
| environmental_other | n/a — catch-all bucket | — | catch-all | · | Catch-all bucket; not a real ECTO term. Records here need re-categorization. |
| occupational_other | n/a — catch-all bucket | — | catch-all | · | Catch-all bucket; not a real ECTO term. |
| other_psychosocial | out of ECTO scope | — | out of scope | · | Psychosocial exposures are out of scope for ECTO; consider other ontologies for these (e.g. OBI, MSH). |
About this dashboard
This dashboard summarizes environmental, occupational, and toxic exposures captured in the EHR data of an ALS cohort, demonstrating Registry Forge's capability to surface candidate ALS risk factors from existing clinical data. It combines two underlying CSVs:
exposure_codes.csv— structured matches against ICD-10-CM codes (Z57.x occupational exposure, Z77.x environmental contact, F17.x nicotine dependence, Z87.891 personal history of smoking, Z91.82 personal history of military deployment, Z87.820 personal history of TBI, and others).exposure_extractions.csv— regex matches againstnotes[].narrative_textanddocuments[].plain_textcovering smoking, military service (including Gulf War / OIF / OEF / Vietnam / Camp Lejeune), pesticides (with named-agent patterns for paraquat, glyphosate, organophosphates, DDT), heavy metals (lead, mercury, manganese / welding fumes, arsenic, cadmium), industrial solvents (TCE, PCE, benzene, formaldehyde), asbestos, repetitive head trauma (TBI history, football, military blast), electromagnetic fields, cyanotoxins / BMAA, mold, air pollution, and occupational dust.
Ontology grounding. Each exposure category is mapped to a representative term in ECTO, the Environmental Conditions, Treatments, and Exposures Ontology (an OBO Foundry resource, ~2,700 exposure terms). ECTO is the recommended terminology for exposure annotation in GA4GH Phenopackets and interoperates with Mondo for environmentally-influenced diseases. The GA4GH Human Exposome Data Standards Study Group is actively extending Phenopackets with schemas for exposure data; this module is forward-compatible with that effort. See the ECTO Mapping tab for the term table including curation status — verified IDs were confirmed against the published ECTO SSSOM mapping file; pending ones need curation against the current ECTO release before publication-grade use.
Privacy controls (baked in):
- Patient identifiers replaced with PT-NNNN pseudonyms, stable within this run.
- Calendar dates reduced to year only.
- Snippet text truncated to 200 characters.
- Categories and patterns with fewer than k=2 unique patients are suppressed.
- Resource UUIDs are never emitted.
ALS risk factor literature context. The exposure categories represented here are drawn from the established and proposed ALS environmental risk factor literature: smoking is the most consistent epidemiological signal; military service is associated with elevated ALS risk and ALS is a presumptive service-connected disability for some veteran cohorts; pesticide exposure (especially organophosphates and paraquat), heavy metals (particularly lead), industrial solvents (TCE), repetitive head trauma (football, military blast injury), cyanotoxins (BMAA hypothesis), and electromagnetic fields have all been studied as candidate risk factors. This dashboard is designed to surface candidate signals in routinely-collected EHR data; confirmatory epidemiological analysis requires independent exposure assessment and case-control or cohort designs.
Important caveat. Most environmental and occupational exposure information lives in social-history narrative sections of clinical notes rather than as structured ICD-10 codes. Z57.x and Z77.x codes are systematically under-coded in clinical practice; the bulk of signal in this dashboard comes from the regex side scanning narratives. Adopters should not over-interpret the absence of structured codes as absence of exposure, and detection sensitivity will vary substantially across EHR vendors and clinical-documentation conventions.