{
  "title": "Pharmacovigilance Lot Page — Data Artifact Catalog",
  "generatedBy": "schemas/catalog.json",
  "artifacts": [
    {
      "id": "lot-dashboard-html",
      "name": "Pharmacovigilance lot dashboard (static HTML)",
      "format": "HTML",
      "location": "vaers-lot-dashboard.html",
      "producer": "integrate_lot_dashboard.py",
      "schema": "schemas/vaers_lot_summary.schema.json",
      "usedOnPage": "Pre-rendered lot tables, Canada Vigilance blocks, and PV systems overview"
    },
    {
      "id": "vaers-lot-summary",
      "name": "VAERS lot summary",
      "format": "JSON",
      "location": "vaers_lot_output/vaers_lot_summary.json",
      "producer": "vaers_lot_pipeline.py",
      "schema": "schemas/vaers_lot_summary.schema.json",
      "usedOnPage": "Source for dashboard generation and vaccine page lot embeds"
    },
    {
      "id": "vaers-lot-manifest",
      "name": "VAERS lot pipeline manifest",
      "format": "JSON",
      "location": "vaers_lot_output/vaers_lot_manifest.json",
      "producer": "vaers_lot_pipeline.py",
      "schema": "schemas/vaers_lot_manifest.schema.json",
      "usedOnPage": "Provenance, year-level quality gates"
    },
    {
      "id": "vaers-lot-cases",
      "name": "VAERS lot cases",
      "format": "Parquet",
      "location": "vaers_lot_output/vaers_lot_cases.parquet",
      "producer": "vaers_lot_pipeline.py",
      "schema": "schemas/vaers_lot_cases.parquet.schema.json",
      "usedOnPage": "Underlying case-level lot attribution (not rendered directly)"
    },
    {
      "id": "vaers-lot-events",
      "name": "VAERS lot events",
      "format": "Parquet",
      "location": "vaers_lot_output/vaers_lot_events.parquet",
      "producer": "vaers_lot_pipeline.py",
      "schema": "schemas/vaers_lot_events.parquet.schema.json",
      "usedOnPage": "Disproportionality input (lot × MedDRA PT)"
    },
    {
      "id": "vaers-lot-summary-table",
      "name": "VAERS lot summary table",
      "format": "Parquet",
      "location": "vaers_lot_output/vaers_lot_summary_table.parquet",
      "producer": "vaers_lot_pipeline.py",
      "schema": "schemas/vaers_lot_summary_table.parquet.schema.json",
      "usedOnPage": "Aggregated lot metrics feeding vaers_lot_summary.json"
    },
    {
      "id": "vaers-lot-signals",
      "name": "VAERS disproportionality signals",
      "format": "Parquet",
      "location": "vaers_lot_output/vaers_lot_signals.parquet",
      "producer": "vaers_lot_pipeline.py",
      "schema": "schemas/vaers_lot_signals.parquet.schema.json",
      "usedOnPage": "PRR/ROR tables on dashboard and in summary JSON"
    },
    {
      "id": "canada-vigilance",
      "name": "Canada Vigilance category data",
      "format": "JSON",
      "location": "canada_vigilance_category_data.json",
      "producer": "canada_vigilance_pipeline.py",
      "schema": "schemas/canada_vigilance_category_data.schema.json",
      "usedOnPage": "Canada Vigilance panels (product-level; no lot field)"
    },
    {
      "id": "pmda-category-data",
      "name": "JADER (PMDA, Japan) category data",
      "format": "JSON",
      "location": "pmda_category_data.json",
      "producer": "pmda_pipeline.py",
      "schema": "schemas/canada_vigilance_category_data.schema.json",
      "usedOnPage": "JADER panels and AE pie charts (product-level; no lot field)"
    },
    {
      "id": "eudravigilance-category-data",
      "name": "EudraVigilance (EU) case data",
      "format": "JSON",
      "location": "eudravigilance_category_data.json",
      "producer": "eudravigilance_pipeline.py",
      "schema": "schemas/canada_vigilance_category_data.schema.json",
      "usedOnPage": "EudraVigilance panels and surveillance grid (case counts from DAP xlsx; no lot field)"
    },
    {
      "id": "pv-systems",
      "name": "Pharmacovigilance system registry",
      "format": "JSON (embedded)",
      "location": "lot_pharmacovigilance.py → LOT_DATA.pvSystems",
      "producer": "lot_pharmacovigilance.py",
      "schema": "schemas/pharmacovigilance_system.schema.json",
      "usedOnPage": "Systems comparison table on dashboard and vaccine pages"
    },
    {
      "id": "csv-export",
      "name": "Dashboard CSV export",
      "format": "CSV",
      "location": "Client download (vaers_lot_signals.csv)",
      "producer": "vaers-lot-dashboard.html Export button",
      "schema": "schemas/vaers_lot_csv_export.schema.json",
      "usedOnPage": "User-exported subset of topLots"
    },
    {
      "id": "vaccine-page-embed",
      "name": "Vaccine page lot HTML block",
      "format": "HTML (logical JSON)",
      "location": "*-vaccine.html#vaers-lot-signals-table",
      "producer": "integrate_lot_tables.py",
      "schema": "schemas/vaccine_page_lot_embed.schema.json",
      "usedOnPage": "Per-vaccine Section 3 lot tables + Canada Vigilance context"
    },
    {
      "id": "vaccine-product-ingredients",
      "name": "Vaccine product composition (package-insert ingredients)",
      "format": "JSON",
      "location": "ingredients/vaccine_product_composition.json",
      "producer": "ingredients/_build_composition_data.py",
      "schema": "schemas/vaccine_product_ingredients.schema.json",
      "usedOnPage": "Ingredient tags on vaccine pages; reverse index for ingredients/pages/*; structured antigen/adjuvant/excipient/preservative/encapsulation/delivery data"
    },
    {
      "id": "active-pharmacovigilance",
      "name": "Active pharmacovigilance records (defined-population surveillance)",
      "format": "JSON",
      "location": "active_pharmacovigilance_data.json",
      "producer": "manual curation + integrate_active_pharmacovigilance.py",
      "schema": "schemas/active_pharmacovigilance.schema.json",
      "usedOnPage": "Active Pharmacovigilance pane in Section 3 of each *-vaccine.html (after passive VAERS block)"
    },
    {
      "id": "vaccine-pipeline",
      "name": "Vaccine development pipeline candidates",
      "format": "JSON",
      "location": "vaccine_pipeline_data.json",
      "producer": "manual curation from company filings / ClinicalTrials.gov / FDA-EMA",
      "schema": "schemas/vaccine_pipeline.schema.json",
      "usedOnPage": "vaccine-pipeline.html dashboard"
    },
    {
      "id": "covid-injury-table-strict",
      "name": "COVID-19 vaccine injury table (strict WHO causality criteria)",
      "format": "JSON",
      "location": "covid_injury_table_strict.json",
      "producer": "manual curation + scripts/generate_injury_tables.py (planned automation)",
      "schema": "schemas/injury_table.schema.json",
      "usedOnPage": "vaccine-pipeline/injury-tables/index.html (strict tab)"
    },
    {
      "id": "ae-mechanisms-catalog",
      "name": "Adverse event biological mechanisms catalog",
      "format": "JSON",
      "location": "ae_mechanisms_catalog.json",
      "producer": "manual curation + build_all_vaccine_injury_tables.py",
      "schema": "schemas/ae_mechanism.schema.json",
      "usedOnPage": "Causality assessment section on each *-vaccine.html"
    },
    {
      "id": "vaccine-injury-tables-all",
      "name": "Per-vaccine WHO causality + mechanism injury tables",
      "format": "JSON",
      "location": "vaccine-pipeline/injury-tables/vaccine_injury_table_*.json",
      "producer": "build_all_vaccine_injury_tables.py",
      "schema": "schemas/vaccine_injury_table.schema.json",
      "usedOnPage": "integrate_injury_tables_to_pages.py → all vaccine pages"
    },
    {
      "id": "vaccine-licensure-trial-design",
      "name": "ICAN/OpenVAERS licensure trial design (No Placebo Table)",
      "format": "JSON",
      "location": "vaccine_licensure_trial_design.json",
      "producer": "scripts/parse_no_placebo_table.py + integrate_trial_design_sections.py",
      "schema": null,
      "usedOnPage": "Section 2 of each *-vaccine.html (comparator / placebo-use table)"
    },
    {
      "id": "covid-injury-table-loosened",
      "name": "COVID-19 vaccine injury table (loosened WHO causality criteria)",
      "format": "JSON",
      "location": "covid_injury_table_loosened.json",
      "producer": "manual curation + scripts/generate_injury_tables.py (planned automation)",
      "schema": "schemas/injury_table.schema.json",
      "usedOnPage": "vaccine-pipeline/injury-tables/index.html (loosened tab)"
    }
  ]
}