implement P6 bibliography: col tags, bib sync, generate models, lineage (fix #22, fix #23, fix #24, fix #25)

- dev/scripts/seed_col_tags.py: seed 138 col: tags for core, input_layer,
  and cclf schemas from CMS data dictionaries and Tuva documentation
- src/cli/bib.py: wire sync (apply col: tags as DuckDB column comments),
  tag (list/search tags), query (search items) commands
- src/cli/generate.py: wire models command with --sync/--no-sync flag
  to apply column comments before regenerating enriched Pydantic models
- src/aco/lake/lineage.py: build table-level DAG from pipeline Exprs,
  column-level lineage from Field metadata, export as DOT/Mermaid
- src/api/routes/lineage.py: GET /lineage, /lineage/{table},
  /lineage/export/mermaid, /lineage/export/dot endpoints
- fix import sorting in generated table models (ruff I001)
This commit is contained in:
kert
2026-03-12 17:25:30 -04:00
parent 8fd907a549
commit 816403811d
49 changed files with 1699 additions and 895 deletions

BIN
data/bib.sqlite Normal file

Binary file not shown.

View File

@@ -0,0 +1,275 @@
"""Seed col: tags for core, input_layer, and cclf schemas.
Creates a bib store item for column documentation, then attaches
col:schema.table.column=description tags for high-value tables.
Usage:
uv run python dev/scripts/seed_col_tags.py [--dry-run]
"""
from __future__ import annotations
import argparse
import sys
from bib import connect
from bib.item import Source
from bib.tag import Tag
# ── Known column descriptions from CMS data dictionaries ──────────
# CCLF field descriptions (from CCLF Information Packet)
CCLF_DESCRIPTIONS: dict[str, dict[str, str]] = {
"cclf.cclf1": {
"cur_clm_uniq_id": "Current claim unique identifier",
"clm_line_num": "Claim line number",
"bene_mbi_id": "Beneficiary Medicare Beneficiary Identifier",
"bene_hic_num": "Beneficiary Health Insurance Claim number",
"clm_type_cd": "Claim type code",
"clm_from_dt": "Claim service from date",
"clm_thru_dt": "Claim service through date",
"clm_bill_fac_type_cd": "Claim bill facility type code",
"clm_bill_clsfctn_cd": "Claim bill classification code",
"prvdr_oscar_num": "Provider OSCAR number",
"clm_fed_type_srvc_cd": "Federal type of service code",
"clm_pos_cd": "Claim place of service code",
"clm_line_from_dt": "Claim line service from date",
"clm_line_thru_dt": "Claim line service through date",
"clm_line_hcpcs_cd": "Claim line HCPCS code",
"clm_line_srvc_unit_qty": "Claim line service unit quantity",
"clm_line_cvrd_pd_amt": "Claim line covered paid amount",
"hcpcs_1_mdfr_cd": "First HCPCS modifier code",
"hcpcs_2_mdfr_cd": "Second HCPCS modifier code",
"clm_line_dgns_cd": "Claim line diagnosis code",
"clm_tot_chrg_amt": "Total charge amount for the claim",
},
"cclf.cclf2": {
"cur_clm_uniq_id": "Current claim unique identifier",
"clm_line_num": "Claim line number",
"bene_mbi_id": "Beneficiary Medicare Beneficiary Identifier",
"clm_dgns_1_cd": "Claim diagnosis code 1",
"clm_dgns_2_cd": "Claim diagnosis code 2",
"clm_dgns_3_cd": "Claim diagnosis code 3",
"clm_dgns_4_cd": "Claim diagnosis code 4",
"clm_dgns_5_cd": "Claim diagnosis code 5",
},
"cclf.cclf5": {
"cur_clm_uniq_id": "Current claim unique identifier",
"clm_line_num": "Claim line number",
"bene_mbi_id": "Beneficiary Medicare Beneficiary Identifier",
"clm_from_dt": "Claim service from date",
"clm_thru_dt": "Claim service through date",
"clm_line_hcpcs_cd": "Claim line HCPCS code",
"clm_pos_cd": "Place of service code",
"clm_line_srvc_unit_qty": "Claim line service unit quantity",
"clm_prmry_pyr_cd": "Primary payer code",
"payto_prvdr_npi_num": "Pay-to provider NPI",
"ordrg_prvdr_npi_num": "Ordering provider NPI",
},
"cclf.cclf8": {
"bene_mbi_id": "Beneficiary Medicare Beneficiary Identifier",
"bene_hic_num": "Beneficiary Health Insurance Claim number",
"bene_fips_state_cd": "Beneficiary FIPS state code",
"bene_fips_cnty_cd": "Beneficiary FIPS county code",
"bene_zip_cd": "Beneficiary ZIP code",
"bene_dob": "Beneficiary date of birth",
"bene_sex_cd": "Beneficiary sex code",
"bene_race_cd": "Beneficiary race code",
"bene_mdcr_stus_cd": "Beneficiary Medicare status code",
"bene_dual_stus_cd": "Beneficiary dual eligibility status code",
"bene_death_dt": "Beneficiary date of death",
"bene_entlmt_rsn_curr": "Current entitlement reason code",
},
}
# Core model descriptions (from Tuva data model)
CORE_DESCRIPTIONS: dict[str, dict[str, str]] = {
"core.patient": {
"patient_id": "Unique patient identifier",
"sex": "Patient biological sex",
"birth_date": "Patient date of birth",
"death_date": "Patient date of death",
"death_flag": "Whether patient is deceased",
"race": "Patient race",
"zip_code": "Patient ZIP code",
"state": "Patient state of residence",
"county": "Patient county of residence",
"latitude": "Patient geocoded latitude",
"longitude": "Patient geocoded longitude",
},
"core.encounter": {
"encounter_id": "Unique encounter identifier",
"patient_id": "Patient associated with encounter",
"encounter_type": "Type of encounter (acute inpatient, outpatient, etc.)",
"encounter_start_date": "Encounter admission or start date",
"encounter_end_date": "Encounter discharge or end date",
"admit_source_code": "Source of admission code",
"admit_type_code": "Type of admission code",
"discharge_disposition_code": "Discharge disposition code",
"ms_drg_code": "Medicare Severity DRG code",
"apr_drg_code": "All-Patient Refined DRG code",
"facility_id": "Facility where encounter occurred",
"attending_provider_id": "Attending provider identifier",
"paid_amount": "Total paid amount for encounter",
"charge_amount": "Total charge amount for encounter",
},
"core.medical_claim": {
"claim_id": "Unique claim identifier",
"claim_line_number": "Line number within the claim",
"patient_id": "Patient associated with the claim",
"claim_type": "Type of claim (institutional, professional)",
"claim_start_date": "Claim service start date",
"claim_end_date": "Claim service end date",
"place_of_service_code": "Place of service code",
"hcpcs_code": "HCPCS/CPT procedure code",
"revenue_center_code": "Revenue center code",
"diagnosis_code_1": "Primary diagnosis code (ICD-10)",
"paid_amount": "Amount paid for claim line",
"charge_amount": "Amount charged for claim line",
"billing_npi": "Billing provider NPI",
"rendering_npi": "Rendering provider NPI",
"facility_npi": "Facility NPI",
},
"core.condition": {
"condition_id": "Unique condition identifier",
"patient_id": "Patient with the condition",
"condition_type": "Type of condition record",
"code_type": "Code system (icd-10-cm, snomed-ct)",
"code": "Condition diagnosis code",
"onset_date": "Date condition was first recorded",
"resolved_date": "Date condition was resolved",
"source_model": "Source system that recorded the condition",
},
"core.eligibility": {
"patient_id": "Patient identifier",
"enrollment_start_date": "Enrollment period start date",
"enrollment_end_date": "Enrollment period end date",
"payer": "Insurance payer name",
"payer_type": "Payer category (medicare, medicaid, commercial)",
"plan": "Insurance plan name",
"dual_status_code": "Dual eligibility status code",
"medicare_status_code": "Medicare entitlement status code",
"original_reason_entitlement_code": "Original reason for Medicare entitlement",
},
"core.pharmacy_claim": {
"claim_id": "Unique pharmacy claim identifier",
"patient_id": "Patient identifier",
"dispensing_date": "Date prescription was dispensed",
"ndc_code": "National Drug Code",
"quantity": "Quantity dispensed",
"days_supply": "Number of days supply",
"paid_amount": "Amount paid for prescription",
"prescribing_provider_npi": "Prescribing provider NPI",
"dispensing_provider_npi": "Dispensing pharmacy NPI",
},
}
# Input layer descriptions
INPUT_LAYER_DESCRIPTIONS: dict[str, dict[str, str]] = {
"input_layer.medical_claim": {
"claim_id": "Source claim identifier",
"claim_line_number": "Line number within the claim",
"patient_id": "Patient identifier from source system",
"claim_start_date": "Claim service start date",
"claim_end_date": "Claim service end date",
"hcpcs_code": "HCPCS/CPT procedure code",
"place_of_service_code": "Place of service code",
"diagnosis_code_1": "Primary diagnosis code",
"paid_amount": "Paid amount from source",
},
"input_layer.eligibility": {
"patient_id": "Patient identifier from source system",
"enrollment_start_date": "Coverage start date",
"enrollment_end_date": "Coverage end date",
"payer": "Payer name from source",
"payer_type": "Payer type classification",
},
"input_layer.pharmacy_claim": {
"claim_id": "Source pharmacy claim identifier",
"patient_id": "Patient identifier",
"dispensing_date": "Date prescription was dispensed",
"ndc_code": "National Drug Code from source",
"quantity": "Quantity dispensed",
"days_supply": "Number of days supply",
},
}
def seed_tags(dry_run: bool = False) -> dict[str, int]:
"""Seed col: tags into the bib store.
Returns dict with counts: created, skipped, errors.
"""
store = connect()
# Find or create the documentation item to attach tags to
items = store.list_items(query="column documentation")
if items:
item_key = items[0].key
else:
item = Source(
key="",
title="Column Documentation Tags",
url="",
abstract="Container item for col: namespace tags that document table columns.",
tags=["module:aco"],
)
item_key = store.create(item, tags=["module:aco"], collection="")
print(f"Created documentation item: {item_key}")
# Merge all description dicts
all_descriptions: dict[str, dict[str, str]] = {}
all_descriptions.update(CCLF_DESCRIPTIONS)
all_descriptions.update(CORE_DESCRIPTIONS)
all_descriptions.update(INPUT_LAYER_DESCRIPTIONS)
counts = {"created": 0, "skipped": 0, "errors": 0}
# Get existing col: tags
existing_tags = {t["name"] for t in store.list_tags(namespace="col")}
for table_ref, columns in sorted(all_descriptions.items()):
for col_name, description in sorted(columns.items()):
tag = Tag.col(f"{table_ref}.{col_name}", description)
label = tag.label
if label in existing_tags:
counts["skipped"] += 1
continue
if dry_run:
print(f" would add: {label}")
counts["created"] += 1
continue
try:
store.add_tag(item_key, label)
counts["created"] += 1
except Exception as e:
print(f" ERROR: {label}: {e}", file=sys.stderr)
counts["errors"] += 1
return counts
def main() -> None:
parser = argparse.ArgumentParser(
description="Seed col: tags for column descriptions"
)
parser.add_argument(
"--dry-run", action="store_true", help="Report without creating"
)
args = parser.parse_args()
counts = seed_tags(dry_run=args.dry_run)
verb = "Would create" if args.dry_run else "Created"
print(
f"\n{verb} {counts['created']} tags, "
f"skipped {counts['skipped']}, "
f"errors {counts['errors']}"
)
if __name__ == "__main__":
main()

101
src/aco/lake/lineage.py Normal file
View File

@@ -0,0 +1,101 @@
"""Column-level lineage graph from Expr inputs and Field metadata.
Walks all pipeline Expr objects to build a table-level DAG, then
inspects Field metadata (json_schema_extra.source) for column-level
lineage.
Usage::
from aco.lake.lineage import build_lineage
graph = build_lineage()
graph.table_deps("readmissions.encounter")
graph.column_lineage("readmissions.encounter", "readmission_flag")
graph.to_mermaid()
"""
from __future__ import annotations
import inspect
from typing import Any
from aco.pipe.runner import _param_to_table
class LineageGraph:
"""Table and column lineage graph."""
def __init__(self) -> None:
self.table_edges: dict[str, list[str]] = {} # output -> [inputs]
self.column_sources: dict[str, dict[str, str]] = {} # table -> {col: source}
def table_deps(self, table_ref: str) -> list[str]:
"""Return direct input tables for a given output table."""
return self.table_edges.get(table_ref, [])
def all_tables(self) -> list[str]:
"""Return all tables in the lineage graph."""
tables = set(self.table_edges.keys())
for inputs in self.table_edges.values():
tables.update(inputs)
return sorted(tables)
def column_lineage(self, table_ref: str, column: str) -> str | None:
"""Return source reference for a column, if annotated."""
return self.column_sources.get(table_ref, {}).get(column)
def to_dot(self) -> str:
"""Export lineage as DOT graph."""
lines = ["digraph lineage {", " rankdir=LR;"]
for output, inputs in sorted(self.table_edges.items()):
for inp in inputs:
lines.append(f' "{inp}" -> "{output}";')
lines.append("}")
return "\n".join(lines)
def to_mermaid(self) -> str:
"""Export lineage as Mermaid flowchart."""
lines = ["graph LR"]
for output, inputs in sorted(self.table_edges.items()):
safe_out = output.replace(".", "_")
for inp in inputs:
safe_in = inp.replace(".", "_")
lines.append(f" {safe_in}[{inp}] --> {safe_out}[{output}]")
return "\n".join(lines)
def to_dict(self) -> dict[str, Any]:
"""Serialize to JSON-friendly dict."""
return {
"tables": self.all_tables(),
"edges": self.table_edges,
"column_sources": self.column_sources,
}
def build_lineage() -> LineageGraph:
"""Build lineage graph from all registered pipelines."""
from aco.pipe import registry
graph = LineageGraph()
for pipeline in registry.values():
for expr in pipeline.exprs:
output_name = expr.name
fn = expr.fn
# Table-level: function parameters → input tables
sig = inspect.signature(fn)
inputs = [_param_to_table(p) for p in sig.parameters]
graph.table_edges[output_name] = inputs
# Column-level: Field metadata with source annotation
if hasattr(expr, "output_cls") and expr.output_cls is not None:
col_sources: dict[str, str] = {}
for field_name, field_info in expr.output_cls.model_fields.items():
extra = field_info.json_schema_extra
if isinstance(extra, dict) and "source" in extra:
col_sources[field_name] = extra["source"]
if col_sources:
graph.column_sources[output_name] = col_sources
return graph

View File

@@ -16,7 +16,7 @@ class AhrqMeasuresIntPqi01Denom(SQLTable):
person_id: str | None = None person_id: str | None = None
data_source: str | None = None data_source: str | None = None
age: int | None = None age: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi01Exclusions(SQLTable): class AhrqMeasuresIntPqi01Exclusions(SQLTable):
@@ -29,7 +29,7 @@ class AhrqMeasuresIntPqi01Exclusions(SQLTable):
data_source: str | None = None data_source: str | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_number: int | None = None exclusion_number: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi01Num(SQLTable): class AhrqMeasuresIntPqi01Num(SQLTable):
@@ -42,7 +42,7 @@ class AhrqMeasuresIntPqi01Num(SQLTable):
person_id: str | None = None person_id: str | None = None
year_number: int | None = None year_number: int | None = None
encounter_id: str | None = None encounter_id: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi03Denom(SQLTable): class AhrqMeasuresIntPqi03Denom(SQLTable):
@@ -55,7 +55,7 @@ class AhrqMeasuresIntPqi03Denom(SQLTable):
person_id: str | None = None person_id: str | None = None
data_source: str | None = None data_source: str | None = None
age: int | None = None age: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi03Exclusions(SQLTable): class AhrqMeasuresIntPqi03Exclusions(SQLTable):
@@ -68,7 +68,7 @@ class AhrqMeasuresIntPqi03Exclusions(SQLTable):
data_source: str | None = None data_source: str | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_number: int | None = None exclusion_number: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi03Num(SQLTable): class AhrqMeasuresIntPqi03Num(SQLTable):
@@ -81,7 +81,7 @@ class AhrqMeasuresIntPqi03Num(SQLTable):
person_id: str | None = None person_id: str | None = None
year_number: int | None = None year_number: int | None = None
encounter_id: str | None = None encounter_id: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi05Denom(SQLTable): class AhrqMeasuresIntPqi05Denom(SQLTable):
@@ -94,7 +94,7 @@ class AhrqMeasuresIntPqi05Denom(SQLTable):
person_id: str | None = None person_id: str | None = None
data_source: str | None = None data_source: str | None = None
age: int | None = None age: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi05Exclusions(SQLTable): class AhrqMeasuresIntPqi05Exclusions(SQLTable):
@@ -107,7 +107,7 @@ class AhrqMeasuresIntPqi05Exclusions(SQLTable):
data_source: str | None = None data_source: str | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_number: int | None = None exclusion_number: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi05Num(SQLTable): class AhrqMeasuresIntPqi05Num(SQLTable):
@@ -120,7 +120,7 @@ class AhrqMeasuresIntPqi05Num(SQLTable):
person_id: str | None = None person_id: str | None = None
year_number: int | None = None year_number: int | None = None
encounter_id: str | None = None encounter_id: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi07Denom(SQLTable): class AhrqMeasuresIntPqi07Denom(SQLTable):
@@ -133,7 +133,7 @@ class AhrqMeasuresIntPqi07Denom(SQLTable):
person_id: str | None = None person_id: str | None = None
data_source: str | None = None data_source: str | None = None
age: int | None = None age: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi07Exclusions(SQLTable): class AhrqMeasuresIntPqi07Exclusions(SQLTable):
@@ -146,7 +146,7 @@ class AhrqMeasuresIntPqi07Exclusions(SQLTable):
data_source: str | None = None data_source: str | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_number: int | None = None exclusion_number: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi07Num(SQLTable): class AhrqMeasuresIntPqi07Num(SQLTable):
@@ -159,7 +159,7 @@ class AhrqMeasuresIntPqi07Num(SQLTable):
person_id: str | None = None person_id: str | None = None
year_number: int | None = None year_number: int | None = None
encounter_id: str | None = None encounter_id: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi08Denom(SQLTable): class AhrqMeasuresIntPqi08Denom(SQLTable):
@@ -172,7 +172,7 @@ class AhrqMeasuresIntPqi08Denom(SQLTable):
person_id: str | None = None person_id: str | None = None
data_source: str | None = None data_source: str | None = None
age: int | None = None age: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi08Exclusions(SQLTable): class AhrqMeasuresIntPqi08Exclusions(SQLTable):
@@ -185,7 +185,7 @@ class AhrqMeasuresIntPqi08Exclusions(SQLTable):
data_source: str | None = None data_source: str | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_number: int | None = None exclusion_number: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi08Num(SQLTable): class AhrqMeasuresIntPqi08Num(SQLTable):
@@ -198,7 +198,7 @@ class AhrqMeasuresIntPqi08Num(SQLTable):
person_id: str | None = None person_id: str | None = None
year_number: int | None = None year_number: int | None = None
encounter_id: str | None = None encounter_id: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi11Denom(SQLTable): class AhrqMeasuresIntPqi11Denom(SQLTable):
@@ -211,7 +211,7 @@ class AhrqMeasuresIntPqi11Denom(SQLTable):
person_id: str | None = None person_id: str | None = None
data_source: str | None = None data_source: str | None = None
age: int | None = None age: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi11Exclusions(SQLTable): class AhrqMeasuresIntPqi11Exclusions(SQLTable):
@@ -224,7 +224,7 @@ class AhrqMeasuresIntPqi11Exclusions(SQLTable):
data_source: str | None = None data_source: str | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_number: int | None = None exclusion_number: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi11Num(SQLTable): class AhrqMeasuresIntPqi11Num(SQLTable):
@@ -237,7 +237,7 @@ class AhrqMeasuresIntPqi11Num(SQLTable):
person_id: str | None = None person_id: str | None = None
year_number: int | None = None year_number: int | None = None
encounter_id: str | None = None encounter_id: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi12Denom(SQLTable): class AhrqMeasuresIntPqi12Denom(SQLTable):
@@ -250,7 +250,7 @@ class AhrqMeasuresIntPqi12Denom(SQLTable):
person_id: str | None = None person_id: str | None = None
data_source: str | None = None data_source: str | None = None
age: int | None = None age: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi12Exclusions(SQLTable): class AhrqMeasuresIntPqi12Exclusions(SQLTable):
@@ -263,7 +263,7 @@ class AhrqMeasuresIntPqi12Exclusions(SQLTable):
data_source: str | None = None data_source: str | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_number: int | None = None exclusion_number: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi12Num(SQLTable): class AhrqMeasuresIntPqi12Num(SQLTable):
@@ -276,7 +276,7 @@ class AhrqMeasuresIntPqi12Num(SQLTable):
person_id: str | None = None person_id: str | None = None
year_number: int | None = None year_number: int | None = None
encounter_id: str | None = None encounter_id: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi14Denom(SQLTable): class AhrqMeasuresIntPqi14Denom(SQLTable):
@@ -289,7 +289,7 @@ class AhrqMeasuresIntPqi14Denom(SQLTable):
person_id: str | None = None person_id: str | None = None
data_source: str | None = None data_source: str | None = None
age: int | None = None age: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi14Exclusions(SQLTable): class AhrqMeasuresIntPqi14Exclusions(SQLTable):
@@ -302,7 +302,7 @@ class AhrqMeasuresIntPqi14Exclusions(SQLTable):
data_source: str | None = None data_source: str | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_number: int | None = None exclusion_number: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi14Num(SQLTable): class AhrqMeasuresIntPqi14Num(SQLTable):
@@ -315,7 +315,7 @@ class AhrqMeasuresIntPqi14Num(SQLTable):
person_id: str | None = None person_id: str | None = None
year_number: int | None = None year_number: int | None = None
encounter_id: str | None = None encounter_id: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi15Denom(SQLTable): class AhrqMeasuresIntPqi15Denom(SQLTable):
@@ -328,7 +328,7 @@ class AhrqMeasuresIntPqi15Denom(SQLTable):
person_id: str | None = None person_id: str | None = None
data_source: str | None = None data_source: str | None = None
age: int | None = None age: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi15Exclusions(SQLTable): class AhrqMeasuresIntPqi15Exclusions(SQLTable):
@@ -341,7 +341,7 @@ class AhrqMeasuresIntPqi15Exclusions(SQLTable):
data_source: str | None = None data_source: str | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_number: int | None = None exclusion_number: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi15Num(SQLTable): class AhrqMeasuresIntPqi15Num(SQLTable):
@@ -354,7 +354,7 @@ class AhrqMeasuresIntPqi15Num(SQLTable):
person_id: str | None = None person_id: str | None = None
year_number: int | None = None year_number: int | None = None
encounter_id: str | None = None encounter_id: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi16Denom(SQLTable): class AhrqMeasuresIntPqi16Denom(SQLTable):
@@ -367,7 +367,7 @@ class AhrqMeasuresIntPqi16Denom(SQLTable):
person_id: str | None = None person_id: str | None = None
data_source: str | None = None data_source: str | None = None
age: int | None = None age: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi16Exclusions(SQLTable): class AhrqMeasuresIntPqi16Exclusions(SQLTable):
@@ -380,7 +380,7 @@ class AhrqMeasuresIntPqi16Exclusions(SQLTable):
data_source: str | None = None data_source: str | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_number: int | None = None exclusion_number: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqi16Num(SQLTable): class AhrqMeasuresIntPqi16Num(SQLTable):
@@ -393,7 +393,7 @@ class AhrqMeasuresIntPqi16Num(SQLTable):
person_id: str | None = None person_id: str | None = None
year_number: int | None = None year_number: int | None = None
encounter_id: str | None = None encounter_id: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqiSharedExclusionMissingDates(SQLTable): class AhrqMeasuresIntPqiSharedExclusionMissingDates(SQLTable):
@@ -404,7 +404,7 @@ class AhrqMeasuresIntPqiSharedExclusionMissingDates(SQLTable):
encounter_id: str | None = None encounter_id: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqiSharedExclusionMissingGender(SQLTable): class AhrqMeasuresIntPqiSharedExclusionMissingGender(SQLTable):
@@ -415,7 +415,7 @@ class AhrqMeasuresIntPqiSharedExclusionMissingGender(SQLTable):
data_source: str | None = None data_source: str | None = None
person_id: str | None = None person_id: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqiSharedExclusionMissingPrimaryDx(SQLTable): class AhrqMeasuresIntPqiSharedExclusionMissingPrimaryDx(SQLTable):
@@ -426,7 +426,7 @@ class AhrqMeasuresIntPqiSharedExclusionMissingPrimaryDx(SQLTable):
encounter_id: str | None = None encounter_id: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqiSharedExclusionTransfer(SQLTable): class AhrqMeasuresIntPqiSharedExclusionTransfer(SQLTable):
@@ -437,7 +437,7 @@ class AhrqMeasuresIntPqiSharedExclusionTransfer(SQLTable):
encounter_id: str | None = None encounter_id: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqiSharedExclusionUngroupableDrg(SQLTable): class AhrqMeasuresIntPqiSharedExclusionUngroupableDrg(SQLTable):
@@ -448,7 +448,7 @@ class AhrqMeasuresIntPqiSharedExclusionUngroupableDrg(SQLTable):
encounter_id: str | None = None encounter_id: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqiSharedExclusionUnion(SQLTable): class AhrqMeasuresIntPqiSharedExclusionUnion(SQLTable):
@@ -460,7 +460,7 @@ class AhrqMeasuresIntPqiSharedExclusionUnion(SQLTable):
encounter_id: str | None = None encounter_id: str | None = None
data_source: str | None = None data_source: str | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresIntPqiSharedExclusionsMissingAge(SQLTable): class AhrqMeasuresIntPqiSharedExclusionsMissingAge(SQLTable):
@@ -471,7 +471,7 @@ class AhrqMeasuresIntPqiSharedExclusionsMissingAge(SQLTable):
data_source: str | None = None data_source: str | None = None
person_id: str | None = None person_id: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresStgPqiInpatientEncounter(SQLTable): class AhrqMeasuresStgPqiInpatientEncounter(SQLTable):
@@ -539,7 +539,7 @@ class AhrqMeasuresPqiDenomLong(SQLTable):
person_id: str | None = None person_id: str | None = None
data_source: str | None = None data_source: str | None = None
pqi_number: str | None = None pqi_number: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresPqiExclusionLong(SQLTable): class AhrqMeasuresPqiExclusionLong(SQLTable):
@@ -553,7 +553,7 @@ class AhrqMeasuresPqiExclusionLong(SQLTable):
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_number: int | None = None exclusion_number: int | None = None
pqi_number: int | None = None pqi_number: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresPqiNumLong(SQLTable): class AhrqMeasuresPqiNumLong(SQLTable):
@@ -567,7 +567,7 @@ class AhrqMeasuresPqiNumLong(SQLTable):
year_number: int | None = None year_number: int | None = None
encounter_id: str | None = None encounter_id: str | None = None
pqi_number: str | None = None pqi_number: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresPqiRate(SQLTable): class AhrqMeasuresPqiRate(SQLTable):
@@ -582,7 +582,7 @@ class AhrqMeasuresPqiRate(SQLTable):
denom_count: int | None = None denom_count: int | None = None
num_count: int | None = None num_count: int | None = None
rate_per_100_thousand: float | None = None rate_per_100_thousand: float | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class AhrqMeasuresPqiSummary(SQLTable): class AhrqMeasuresPqiSummary(SQLTable):
@@ -604,4 +604,4 @@ class AhrqMeasuresPqiSummary(SQLTable):
encounter_end_date: date | None = None encounter_end_date: date | None = None
length_of_stay: int | None = None length_of_stay: int | None = None
paid_amount: Decimal | None = None paid_amount: Decimal | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None

View File

@@ -69,7 +69,7 @@ class CcsrDxVerticalPivot(SQLTable):
ccsr_category_rank: int | None = None ccsr_category_rank: int | None = None
is_ip_default_category: int | None = None is_ip_default_category: int | None = None
is_op_default_category: int | None = None is_op_default_category: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CcsrLongConditionCategory(SQLTable): class CcsrLongConditionCategory(SQLTable):
@@ -94,7 +94,7 @@ class CcsrLongConditionCategory(SQLTable):
is_op_default_category: int | None = None is_op_default_category: int | None = None
data_source: str | None = None data_source: str | None = None
dxccsr_version: str | None = None dxccsr_version: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CcsrLongProcedureCategory(SQLTable): class CcsrLongProcedureCategory(SQLTable):
@@ -119,7 +119,7 @@ class CcsrLongProcedureCategory(SQLTable):
qualifier: str | None = None qualifier: str | None = None
data_source: str | None = None data_source: str | None = None
prccsr_version: str | None = None prccsr_version: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CcsrProcedureCategoryMap(SQLTable): class CcsrProcedureCategoryMap(SQLTable):
@@ -139,7 +139,7 @@ class CcsrProcedureCategoryMap(SQLTable):
approach: str | None = None approach: str | None = None
device: str | None = None device: str | None = None
qualifier: str | None = None qualifier: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CcsrProcedureSummary(SQLTable): class CcsrProcedureSummary(SQLTable):
@@ -155,7 +155,7 @@ class CcsrProcedureSummary(SQLTable):
n_occurrences_with_approach: int | None = None n_occurrences_with_approach: int | None = None
n_total_occurrences: int | None = None n_total_occurrences: int | None = None
approach_rate: float | None = None approach_rate: float | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CcsrSingularConditionCategory(SQLTable): class CcsrSingularConditionCategory(SQLTable):
@@ -176,4 +176,4 @@ class CcsrSingularConditionCategory(SQLTable):
body_system: str | None = None body_system: str | None = None
data_source: str | None = None data_source: str | None = None
dxccsr_version: str | None = None dxccsr_version: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None

View File

@@ -18,7 +18,7 @@ class ChronicConditionsIntCmsChronicConditionAll(SQLTable):
condition_category: str | None = None condition_category: str | None = None
condition: str | None = None condition: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ChronicConditionsIntCmsChronicConditionHivAids(SQLTable): class ChronicConditionsIntCmsChronicConditionHivAids(SQLTable):
@@ -34,7 +34,7 @@ class ChronicConditionsIntCmsChronicConditionHivAids(SQLTable):
condition_category: str | None = None condition_category: str | None = None
condition: str | None = None condition: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ChronicConditionsIntCmsChronicConditionOud(SQLTable): class ChronicConditionsIntCmsChronicConditionOud(SQLTable):
@@ -50,7 +50,20 @@ class ChronicConditionsIntCmsChronicConditionOud(SQLTable):
condition_category: str | None = None condition_category: str | None = None
condition: str | None = None condition: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ChronicConditionsValueSetChronicConditionsHierarchy(SQLTable):
"""Schema: chronic_conditions / Table: _value_set_chronic_conditions_hierarchy"""
__schema__ = "chronic_conditions"
__tablename__ = "_value_set_chronic_conditions_hierarchy"
condition_family: str | None = None
condition: str | None = None
icd_10_cm_code: str | None = None
icd_10_cm_description: str | None = None
condition_column_name: str | None = None
class ChronicConditionsValueSetCmsChronicConditionsHierarchy(SQLTable): class ChronicConditionsValueSetCmsChronicConditionsHierarchy(SQLTable):
@@ -71,17 +84,72 @@ class ChronicConditionsValueSetCmsChronicConditionsHierarchy(SQLTable):
code: str | None = None code: str | None = None
class ChronicConditionsValueSetConditionsHierarchy(SQLTable): class ChronicConditionsChronicConditionsLong(SQLTable):
"""Schema: chronic_conditions / Table: _value_set_chronic_conditions_hierarchy (upstream)""" """Schema: chronic_conditions / Table: chronic_conditions_long"""
__schema__ = "chronic_conditions" __schema__ = "chronic_conditions"
__tablename__ = "_value_set_chronic_conditions_hierarchy" __tablename__ = "chronic_conditions_long"
condition_family: str | None = None person_id: str | None = None
condition: str | None = None condition: str | None = None
icd_10_cm_code: str | None = None first_diagnosis_date: date | None = None
icd_10_cm_description: str | None = None last_diagnosis_date: date | None = None
condition_column_name: str | None = None last_run: datetime | None = None
class ChronicConditionsChronicConditionsWide(SQLTable):
"""Schema: chronic_conditions / Table: chronic_conditions_wide"""
__schema__ = "chronic_conditions"
__tablename__ = "chronic_conditions_wide"
person_id: str | None = None
obesity: int | None = None
osteoarthritis: int | None = None
copd: int | None = None
anxiety_disorders: int | None = None
ckd: int | None = None
t2d: int | None = None
cll: int | None = None
dysplipidemias: int | None = None
hypertension: int | None = None
atherosclerosis: int | None = None
dementia: int | None = None
rheumatoid_arthritis: int | None = None
celiac: int | None = None
hip_fracture: int | None = None
immunodeficiencies_and_white_blood_cell_disorders: int | None = None
asthma: int | None = None
t1d: int | None = None
ulcerative_colitis: int | None = None
chrohns: int | None = None
holicobacter: int | None = None
bipolar: int | None = None
heart_failure: int | None = None
tabacco: int | None = None
lyme: int | None = None
breast_cancer: int | None = None
osteoporosis: int | None = None
pulmonary_embolism: int | None = None
schizophrenia: int | None = None
atrial_fibrillation: int | None = None
colorectal_cancer: int | None = None
depression: int | None = None
deep_vein_thrombosis: int | None = None
alzheimer: int | None = None
stroke: int | None = None
myocardial_infraction: int | None = None
opiod_use_disorder: int | None = None
lung_cancer: int | None = None
herpes: int | None = None
rickettsiosis: int | None = None
ms: int | None = None
alchohol: int | None = None
adhd: int | None = None
hiv: int | None = None
ptsd: int | None = None
lupus: int | None = None
last_run: datetime | None = None
class ChronicConditionsCmsChronicConditionsLong(SQLTable): class ChronicConditionsCmsChronicConditionsLong(SQLTable):
@@ -97,7 +165,7 @@ class ChronicConditionsCmsChronicConditionsLong(SQLTable):
condition_category: str | None = None condition_category: str | None = None
condition: str | None = None condition: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ChronicConditionsCmsChronicConditionsWide(SQLTable): class ChronicConditionsCmsChronicConditionsWide(SQLTable):
@@ -188,72 +256,4 @@ class ChronicConditionsCmsChronicConditionsWide(SQLTable):
int | None int | None
) = None ) = None
viral_hepatitis_general: int | None = None viral_hepatitis_general: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ChronicConditionsLong(SQLTable):
"""Schema: chronic_conditions / Table: chronic_conditions_long (upstream)"""
__schema__ = "chronic_conditions"
__tablename__ = "chronic_conditions_long"
person_id: str | None = None
condition: str | None = None
first_diagnosis_date: date | None = None
last_diagnosis_date: date | None = None
pipeline_last_run: datetime | None = None
class ChronicConditionsWide(SQLTable):
"""Schema: chronic_conditions / Table: chronic_conditions_wide (upstream)"""
__schema__ = "chronic_conditions"
__tablename__ = "chronic_conditions_wide"
person_id: str | None = None
obesity: int | None = None
osteoarthritis: int | None = None
copd: int | None = None
anxiety_disorders: int | None = None
ckd: int | None = None
t2d: int | None = None
cll: int | None = None
dysplipidemias: int | None = None
hypertension: int | None = None
atherosclerosis: int | None = None
dementia: int | None = None
rheumatoid_arthritis: int | None = None
celiac: int | None = None
hip_fracture: int | None = None
immunodeficiencies_and_white_blood_cell_disorders: int | None = None
asthma: int | None = None
t1d: int | None = None
ulcerative_colitis: int | None = None
chrohns: int | None = None
holicobacter: int | None = None
bipolar: int | None = None
heart_failure: int | None = None
tabacco: int | None = None
lyme: int | None = None
breast_cancer: int | None = None
osteoporosis: int | None = None
pulmonary_embolism: int | None = None
schizophrenia: int | None = None
atrial_fibrillation: int | None = None
colorectal_cancer: int | None = None
depression: int | None = None
deep_vein_thrombosis: int | None = None
alzheimer: int | None = None
stroke: int | None = None
myocardial_infraction: int | None = None
opiod_use_disorder: int | None = None
lung_cancer: int | None = None
herpes: int | None = None
rickettsiosis: int | None = None
ms: int | None = None
alchohol: int | None = None
adhd: int | None = None
hiv: int | None = None
ptsd: int | None = None
lupus: int | None = None
pipeline_last_run: datetime | None = None

File diff suppressed because it is too large Load Diff

View File

@@ -32,7 +32,7 @@ class CmsHccIntDemographicFactors(SQLTable):
payment_year: int | None = None payment_year: int | None = None
collection_start_date: date | None = None collection_start_date: date | None = None
collection_end_date: date | None = None collection_end_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CmsHccIntDisabledInteractionFactors(SQLTable): class CmsHccIntDisabledInteractionFactors(SQLTable):
@@ -50,7 +50,7 @@ class CmsHccIntDisabledInteractionFactors(SQLTable):
payment_year: int | None = None payment_year: int | None = None
collection_start_date: date | None = None collection_start_date: date | None = None
collection_end_date: date | None = None collection_end_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CmsHccIntDiseaseFactors(SQLTable): class CmsHccIntDiseaseFactors(SQLTable):
@@ -70,7 +70,7 @@ class CmsHccIntDiseaseFactors(SQLTable):
payment_year: int | None = None payment_year: int | None = None
collection_start_date: date | None = None collection_start_date: date | None = None
collection_end_date: date | None = None collection_end_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CmsHccIntDiseaseInteractionFactors(SQLTable): class CmsHccIntDiseaseInteractionFactors(SQLTable):
@@ -90,7 +90,7 @@ class CmsHccIntDiseaseInteractionFactors(SQLTable):
payment_year: int | None = None payment_year: int | None = None
collection_start_date: date | None = None collection_start_date: date | None = None
collection_end_date: date | None = None collection_end_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CmsHccIntEligibleConditions(SQLTable): class CmsHccIntEligibleConditions(SQLTable):
@@ -107,7 +107,7 @@ class CmsHccIntEligibleConditions(SQLTable):
payment_year: int | None = None payment_year: int | None = None
collection_start_date: date | None = None collection_start_date: date | None = None
collection_end_date: date | None = None collection_end_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CmsHccIntEnrollmentInteractionFactors(SQLTable): class CmsHccIntEnrollmentInteractionFactors(SQLTable):
@@ -125,7 +125,7 @@ class CmsHccIntEnrollmentInteractionFactors(SQLTable):
payment_year: int | None = None payment_year: int | None = None
collection_start_date: date | None = None collection_start_date: date | None = None
collection_end_date: date | None = None collection_end_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CmsHccIntHccCountFactors(SQLTable): class CmsHccIntHccCountFactors(SQLTable):
@@ -143,7 +143,7 @@ class CmsHccIntHccCountFactors(SQLTable):
payment_year: int | None = None payment_year: int | None = None
collection_start_date: date | None = None collection_start_date: date | None = None
collection_end_date: date | None = None collection_end_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CmsHccIntHccHierarchy(SQLTable): class CmsHccIntHccHierarchy(SQLTable):
@@ -159,7 +159,7 @@ class CmsHccIntHccHierarchy(SQLTable):
collection_start_date: date | None = None collection_start_date: date | None = None
collection_end_date: date | None = None collection_end_date: date | None = None
hcc_code: str | None = None hcc_code: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CmsHccIntHccMapping(SQLTable): class CmsHccIntHccMapping(SQLTable):
@@ -176,7 +176,7 @@ class CmsHccIntHccMapping(SQLTable):
payment_year: int | None = None payment_year: int | None = None
collection_start_date: date | None = None collection_start_date: date | None = None
collection_end_date: date | None = None collection_end_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CmsHccIntMembers(SQLTable): class CmsHccIntMembers(SQLTable):
@@ -201,7 +201,7 @@ class CmsHccIntMembers(SQLTable):
payment_year: int | None = None payment_year: int | None = None
collection_start_date: date | None = None collection_start_date: date | None = None
collection_end_date: date | None = None collection_end_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CmsHccIntMonthlyCollectionDates(SQLTable): class CmsHccIntMonthlyCollectionDates(SQLTable):
@@ -402,7 +402,7 @@ class CmsHccPatientRiskFactors(SQLTable):
coefficient: Decimal | None = None coefficient: Decimal | None = None
model_version: str | None = None model_version: str | None = None
payment_year: int | None = None payment_year: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CmsHccPatientRiskFactorsMonthly(SQLTable): class CmsHccPatientRiskFactorsMonthly(SQLTable):
@@ -426,7 +426,7 @@ class CmsHccPatientRiskFactorsMonthly(SQLTable):
payment_year: int | None = None payment_year: int | None = None
collection_start_date: date | None = None collection_start_date: date | None = None
collection_end_date: date | None = None collection_end_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CmsHccPatientRiskScores(SQLTable): class CmsHccPatientRiskScores(SQLTable):
@@ -445,7 +445,7 @@ class CmsHccPatientRiskScores(SQLTable):
payment_risk_score_weighted_by_months: Decimal | None = None payment_risk_score_weighted_by_months: Decimal | None = None
member_months: int | None = None member_months: int | None = None
payment_year: int | None = None payment_year: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CmsHccPatientRiskScoresMonthly(SQLTable): class CmsHccPatientRiskScoresMonthly(SQLTable):
@@ -470,7 +470,7 @@ class CmsHccPatientRiskScoresMonthly(SQLTable):
payment_risk_score: Decimal | None = None payment_risk_score: Decimal | None = None
payment_risk_score_weighted_by_months: Decimal | None = None payment_risk_score_weighted_by_months: Decimal | None = None
member_months: int | None = None member_months: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CmsHccPatientRiskScoresMonthlyByFactorType(SQLTable): class CmsHccPatientRiskScoresMonthlyByFactorType(SQLTable):
@@ -496,4 +496,4 @@ class CmsHccPatientRiskScoresMonthlyByFactorType(SQLTable):
payment_year: int | None = None payment_year: int | None = None
collection_start_date: date | None = None collection_start_date: date | None = None
collection_end_date: date | None = None collection_end_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None

View File

@@ -3,6 +3,8 @@ from __future__ import annotations
from datetime import date, datetime from datetime import date, datetime
from decimal import Decimal from decimal import Decimal
from pydantic import Field
from aco.table.base import SQLTable from aco.table.base import SQLTable
@@ -33,7 +35,7 @@ class CoreStgClaimsCondition(SQLTable):
present_on_admit_code: str | None = None present_on_admit_code: str | None = None
present_on_admit_description: str | None = None present_on_admit_description: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
payer: str | None = None payer: str | None = None
@@ -70,7 +72,7 @@ class CoreStgClaimsEligibility(SQLTable):
data_source: str | None = None data_source: str | None = None
file_date: datetime | None = None file_date: datetime | None = None
ingest_datetime: datetime | None = None ingest_datetime: datetime | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClaimsEncounter(SQLTable): class CoreStgClaimsEncounter(SQLTable):
@@ -123,7 +125,7 @@ class CoreStgClaimsEncounter(SQLTable):
source_model: str | None = None source_model: str | None = None
data_source: str | None = None data_source: str | None = None
encounter_source_type: str | None = None encounter_source_type: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClaimsLocation(SQLTable): class CoreStgClaimsLocation(SQLTable):
@@ -144,7 +146,7 @@ class CoreStgClaimsLocation(SQLTable):
latitude: float | None = None latitude: float | None = None
longitude: float | None = None longitude: float | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClaimsMedicalClaim(SQLTable): class CoreStgClaimsMedicalClaim(SQLTable):
@@ -218,7 +220,7 @@ class CoreStgClaimsMedicalClaim(SQLTable):
file_date: datetime | None = None file_date: datetime | None = None
ingest_datetime: datetime | None = None ingest_datetime: datetime | None = None
file_name: str | None = None file_name: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClaimsMemberMonths(SQLTable): class CoreStgClaimsMemberMonths(SQLTable):
@@ -234,7 +236,7 @@ class CoreStgClaimsMemberMonths(SQLTable):
payer: str | None = None payer: str | None = None
plan: str | None = None plan: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
payer_attributed_provider: str | None = None payer_attributed_provider: str | None = None
payer_attributed_provider_practice: str | None = None payer_attributed_provider_practice: str | None = None
payer_attributed_provider_organization: str | None = None payer_attributed_provider_organization: str | None = None
@@ -275,7 +277,7 @@ class CoreStgClaimsPatient(SQLTable):
data_source: str | None = None data_source: str | None = None
age: int | None = None age: int | None = None
age_group: str | None = None age_group: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClaimsPharmacyClaim(SQLTable): class CoreStgClaimsPharmacyClaim(SQLTable):
@@ -315,7 +317,7 @@ class CoreStgClaimsPharmacyClaim(SQLTable):
file_date: datetime | None = None file_date: datetime | None = None
ingest_datetime: datetime | None = None ingest_datetime: datetime | None = None
file_name: str | None = None file_name: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClaimsPractitioner(SQLTable): class CoreStgClaimsPractitioner(SQLTable):
@@ -332,7 +334,7 @@ class CoreStgClaimsPractitioner(SQLTable):
specialty: str | None = None specialty: str | None = None
sub_specialty: str | None = None sub_specialty: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClaimsProcedure(SQLTable): class CoreStgClaimsProcedure(SQLTable):
@@ -361,7 +363,7 @@ class CoreStgClaimsProcedure(SQLTable):
modifier_5: str | None = None modifier_5: str | None = None
practitioner_id: str | None = None practitioner_id: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClinicalAppointment(SQLTable): class CoreStgClinicalAppointment(SQLTable):
@@ -401,7 +403,7 @@ class CoreStgClinicalAppointment(SQLTable):
normalized_cancellation_reason_code: str | None = None normalized_cancellation_reason_code: str | None = None
normalized_cancellation_reason_description: str | None = None normalized_cancellation_reason_description: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClinicalCondition(SQLTable): class CoreStgClinicalCondition(SQLTable):
@@ -431,7 +433,7 @@ class CoreStgClinicalCondition(SQLTable):
present_on_admit_code: str | None = None present_on_admit_code: str | None = None
present_on_admit_description: str | None = None present_on_admit_description: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClinicalEncounter(SQLTable): class CoreStgClinicalEncounter(SQLTable):
@@ -484,7 +486,7 @@ class CoreStgClinicalEncounter(SQLTable):
source_model: str | None = None source_model: str | None = None
data_source: str | None = None data_source: str | None = None
encounter_source_type: str | None = None encounter_source_type: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClinicalImmunization(SQLTable): class CoreStgClinicalImmunization(SQLTable):
@@ -514,7 +516,7 @@ class CoreStgClinicalImmunization(SQLTable):
location_id: str | None = None location_id: str | None = None
practitioner_id: str | None = None practitioner_id: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClinicalLabResult(SQLTable): class CoreStgClinicalLabResult(SQLTable):
@@ -555,7 +557,7 @@ class CoreStgClinicalLabResult(SQLTable):
specimen: str | None = None specimen: str | None = None
ordering_practitioner_id: str | None = None ordering_practitioner_id: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClinicalLocation(SQLTable): class CoreStgClinicalLocation(SQLTable):
@@ -576,7 +578,7 @@ class CoreStgClinicalLocation(SQLTable):
latitude: float | None = None latitude: float | None = None
longitude: float | None = None longitude: float | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClinicalMedication(SQLTable): class CoreStgClinicalMedication(SQLTable):
@@ -607,7 +609,7 @@ class CoreStgClinicalMedication(SQLTable):
days_supply: int | None = None days_supply: int | None = None
practitioner_id: str | None = None practitioner_id: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClinicalObservation(SQLTable): class CoreStgClinicalObservation(SQLTable):
@@ -637,7 +639,7 @@ class CoreStgClinicalObservation(SQLTable):
normalized_reference_range_low: str | None = None normalized_reference_range_low: str | None = None
normalized_reference_range_high: str | None = None normalized_reference_range_high: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClinicalPatient(SQLTable): class CoreStgClinicalPatient(SQLTable):
@@ -670,7 +672,7 @@ class CoreStgClinicalPatient(SQLTable):
data_source: str | None = None data_source: str | None = None
age: int | None = None age: int | None = None
age_group: str | None = None age_group: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClinicalPractitioner(SQLTable): class CoreStgClinicalPractitioner(SQLTable):
@@ -687,7 +689,7 @@ class CoreStgClinicalPractitioner(SQLTable):
specialty: str | None = None specialty: str | None = None
sub_specialty: str | None = None sub_specialty: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreStgClinicalProcedure(SQLTable): class CoreStgClinicalProcedure(SQLTable):
@@ -716,7 +718,7 @@ class CoreStgClinicalProcedure(SQLTable):
modifier_5: str | None = None modifier_5: str | None = None
practitioner_id: str | None = None practitioner_id: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreAppointment(SQLTable): class CoreAppointment(SQLTable):
@@ -757,7 +759,7 @@ class CoreAppointment(SQLTable):
normalized_cancellation_reason_description: str | None = None normalized_cancellation_reason_description: str | None = None
mapping_method: str | None = None mapping_method: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreCondition(SQLTable): class CoreCondition(SQLTable):
@@ -766,18 +768,28 @@ class CoreCondition(SQLTable):
__schema__ = "core" __schema__ = "core"
__tablename__ = "condition" __tablename__ = "condition"
condition_id: str | None = None condition_id: str | None = Field(
default=None, description="Unique condition identifier"
)
payer: str | None = None payer: str | None = None
person_id: str | None = None person_id: str | None = None
member_id: str | None = None member_id: str | None = None
patient_id: str | None = None patient_id: str | None = Field(
default=None, description="Patient with the condition"
)
encounter_id: str | None = None encounter_id: str | None = None
claim_id: str | None = None claim_id: str | None = None
recorded_date: date | None = None recorded_date: date | None = None
onset_date: date | None = None onset_date: date | None = Field(
resolved_date: date | None = None default=None, description="Date condition was first recorded"
)
resolved_date: date | None = Field(
default=None, description="Date condition was resolved"
)
status: str | None = None status: str | None = None
condition_type: str | None = None condition_type: str | None = Field(
default=None, description="Type of condition record"
)
source_code_type: str | None = None source_code_type: str | None = None
source_code: str | None = None source_code: str | None = None
source_description: str | None = None source_description: str | None = None
@@ -789,7 +801,7 @@ class CoreCondition(SQLTable):
present_on_admit_code: str | None = None present_on_admit_code: str | None = None
present_on_admit_description: str | None = None present_on_admit_description: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreEligibility(SQLTable): class CoreEligibility(SQLTable):
@@ -804,14 +816,26 @@ class CoreEligibility(SQLTable):
subscriber_id: str | None = None subscriber_id: str | None = None
birth_date: date | None = None birth_date: date | None = None
death_date: date | None = None death_date: date | None = None
enrollment_start_date: date | None = None enrollment_start_date: date | None = Field(
enrollment_end_date: date | None = None default=None, description="Enrollment period start date"
payer: str | None = None )
payer_type: str | None = None enrollment_end_date: date | None = Field(
plan: str | None = None default=None, description="Enrollment period end date"
original_reason_entitlement_code: str | None = None )
dual_status_code: str | None = None payer: str | None = Field(default=None, description="Insurance payer name")
medicare_status_code: str | None = None payer_type: str | None = Field(
default=None, description="Payer category (medicare, medicaid, commercial)"
)
plan: str | None = Field(default=None, description="Insurance plan name")
original_reason_entitlement_code: str | None = Field(
default=None, description="Original reason for Medicare entitlement"
)
dual_status_code: str | None = Field(
default=None, description="Dual eligibility status code"
)
medicare_status_code: str | None = Field(
default=None, description="Medicare entitlement status code"
)
enrollment_status: str | None = None enrollment_status: str | None = None
hospice_flag: int | None = None hospice_flag: int | None = None
institutional_snp_flag: int | None = None institutional_snp_flag: int | None = None
@@ -825,7 +849,7 @@ class CoreEligibility(SQLTable):
data_source: str | None = None data_source: str | None = None
file_date: datetime | None = None file_date: datetime | None = None
ingest_datetime: datetime | None = None ingest_datetime: datetime | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreEncounter(SQLTable): class CoreEncounter(SQLTable):
@@ -835,22 +859,41 @@ class CoreEncounter(SQLTable):
__tablename__ = "encounter" __tablename__ = "encounter"
_dbt_source_relation: str | None = None _dbt_source_relation: str | None = None
encounter_id: str | None = None encounter_id: str | None = Field(
default=None, description="Unique encounter identifier"
)
person_id: str | None = None person_id: str | None = None
encounter_type: str | None = None encounter_type: str | None = Field(
default=None,
description="Type of encounter (acute inpatient, outpatient, etc.)",
)
encounter_group: str | None = None encounter_group: str | None = None
encounter_start_date: date | None = None encounter_start_date: date | None = Field(
encounter_end_date: date | None = None default=None, description="Encounter admission or start date"
)
encounter_end_date: date | None = Field(
default=None, description="Encounter discharge or end date"
)
length_of_stay: int | None = None length_of_stay: int | None = None
admit_source_code: str | None = None admit_source_code: str | None = Field(
default=None, description="Source of admission code"
)
admit_source_description: str | None = None admit_source_description: str | None = None
admit_type_code: str | None = None admit_type_code: str | None = Field(
default=None, description="Type of admission code"
)
admit_type_description: str | None = None admit_type_description: str | None = None
discharge_disposition_code: str | None = None discharge_disposition_code: str | None = Field(
default=None, description="Discharge disposition code"
)
discharge_disposition_description: str | None = None discharge_disposition_description: str | None = None
attending_provider_id: str | None = None attending_provider_id: str | None = Field(
default=None, description="Attending provider identifier"
)
attending_provider_name: str | None = None attending_provider_name: str | None = None
facility_id: str | None = None facility_id: str | None = Field(
default=None, description="Facility where encounter occurred"
)
facility_name: str | None = None facility_name: str | None = None
facility_type: str | None = None facility_type: str | None = None
observation_flag: int | None = None observation_flag: int | None = None
@@ -870,16 +913,20 @@ class CoreEncounter(SQLTable):
drg_code_type: str | None = None drg_code_type: str | None = None
drg_code: str | None = None drg_code: str | None = None
drg_description: str | None = None drg_description: str | None = None
paid_amount: Decimal | None = None paid_amount: Decimal | None = Field(
default=None, description="Total paid amount for encounter"
)
allowed_amount: Decimal | None = None allowed_amount: Decimal | None = None
charge_amount: Decimal | None = None charge_amount: Decimal | None = Field(
default=None, description="Total charge amount for encounter"
)
claim_count: int | None = None claim_count: int | None = None
inst_claim_count: int | None = None inst_claim_count: int | None = None
prof_claim_count: int | None = None prof_claim_count: int | None = None
source_model: str | None = None source_model: str | None = None
data_source: str | None = None data_source: str | None = None
encounter_source_type: str | None = None encounter_source_type: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreImmunization(SQLTable): class CoreImmunization(SQLTable):
@@ -910,7 +957,7 @@ class CoreImmunization(SQLTable):
location_id: str | None = None location_id: str | None = None
practitioner_id: str | None = None practitioner_id: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreLabResult(SQLTable): class CoreLabResult(SQLTable):
@@ -952,7 +999,7 @@ class CoreLabResult(SQLTable):
specimen: str | None = None specimen: str | None = None
ordering_practitioner_id: str | None = None ordering_practitioner_id: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreLocation(SQLTable): class CoreLocation(SQLTable):
@@ -973,7 +1020,7 @@ class CoreLocation(SQLTable):
latitude: float | None = None latitude: float | None = None
longitude: float | None = None longitude: float | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreMedicalClaim(SQLTable): class CoreMedicalClaim(SQLTable):
@@ -983,18 +1030,26 @@ class CoreMedicalClaim(SQLTable):
__tablename__ = "medical_claim" __tablename__ = "medical_claim"
medical_claim_id: str | None = None medical_claim_id: str | None = None
claim_id: str | None = None claim_id: str | None = Field(default=None, description="Unique claim identifier")
claim_line_number: int | None = None claim_line_number: int | None = Field(
default=None, description="Line number within the claim"
)
encounter_id: str | None = None encounter_id: str | None = None
encounter_type: str | None = None encounter_type: str | None = None
encounter_group: str | None = None encounter_group: str | None = None
claim_type: str | None = None claim_type: str | None = Field(
default=None, description="Type of claim (institutional, professional)"
)
person_id: str | None = None person_id: str | None = None
member_id: str | None = None member_id: str | None = None
payer: str | None = None payer: str | None = None
plan: str | None = None plan: str | None = None
claim_start_date: date | None = None claim_start_date: date | None = Field(
claim_end_date: date | None = None default=None, description="Claim service start date"
)
claim_end_date: date | None = Field(
default=None, description="Claim service end date"
)
claim_line_start_date: date | None = None claim_line_start_date: date | None = None
claim_line_end_date: date | None = None claim_line_end_date: date | None = None
admission_date: date | None = None admission_date: date | None = None
@@ -1008,17 +1063,21 @@ class CoreMedicalClaim(SQLTable):
admit_type_description: str | None = None admit_type_description: str | None = None
discharge_disposition_code: str | None = None discharge_disposition_code: str | None = None
discharge_disposition_description: str | None = None discharge_disposition_description: str | None = None
place_of_service_code: str | None = None place_of_service_code: str | None = Field(
default=None, description="Place of service code"
)
place_of_service_description: str | None = None place_of_service_description: str | None = None
bill_type_code: str | None = None bill_type_code: str | None = None
bill_type_description: str | None = None bill_type_description: str | None = None
drg_code_type: str | None = None drg_code_type: str | None = None
drg_code: str | None = None drg_code: str | None = None
drg_description: str | None = None drg_description: str | None = None
revenue_center_code: str | None = None revenue_center_code: str | None = Field(
default=None, description="Revenue center code"
)
revenue_center_description: str | None = None revenue_center_description: str | None = None
service_unit_quantity: Decimal | None = None service_unit_quantity: Decimal | None = None
hcpcs_code: str | None = None hcpcs_code: str | None = Field(default=None, description="HCPCS/CPT procedure code")
hcpcs_modifier_1: str | None = None hcpcs_modifier_1: str | None = None
hcpcs_modifier_2: str | None = None hcpcs_modifier_2: str | None = None
hcpcs_modifier_3: str | None = None hcpcs_modifier_3: str | None = None
@@ -1033,9 +1092,13 @@ class CoreMedicalClaim(SQLTable):
facility_id: str | None = None facility_id: str | None = None
facility_name: str | None = None facility_name: str | None = None
paid_date: date | None = None paid_date: date | None = None
paid_amount: Decimal | None = None paid_amount: Decimal | None = Field(
default=None, description="Amount paid for claim line"
)
allowed_amount: Decimal | None = None allowed_amount: Decimal | None = None
charge_amount: Decimal | None = None charge_amount: Decimal | None = Field(
default=None, description="Amount charged for claim line"
)
coinsurance_amount: Decimal | None = None coinsurance_amount: Decimal | None = None
copayment_amount: Decimal | None = None copayment_amount: Decimal | None = None
deductible_amount: Decimal | None = None deductible_amount: Decimal | None = None
@@ -1047,7 +1110,7 @@ class CoreMedicalClaim(SQLTable):
file_date: datetime | None = None file_date: datetime | None = None
ingest_datetime: datetime | None = None ingest_datetime: datetime | None = None
file_name: str | None = None file_name: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreMedication(SQLTable): class CoreMedication(SQLTable):
@@ -1081,7 +1144,7 @@ class CoreMedication(SQLTable):
days_supply: int | None = None days_supply: int | None = None
practitioner_id: str | None = None practitioner_id: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreMemberMonths(SQLTable): class CoreMemberMonths(SQLTable):
@@ -1097,7 +1160,7 @@ class CoreMemberMonths(SQLTable):
payer: str | None = None payer: str | None = None
plan: str | None = None plan: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
payer_attributed_provider: str | None = None payer_attributed_provider: str | None = None
payer_attributed_provider_practice: str | None = None payer_attributed_provider_practice: str | None = None
payer_attributed_provider_organization: str | None = None payer_attributed_provider_organization: str | None = None
@@ -1136,7 +1199,7 @@ class CoreObservation(SQLTable):
normalized_reference_range_low: str | None = None normalized_reference_range_low: str | None = None
normalized_reference_range_high: str | None = None normalized_reference_range_high: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CorePatient(SQLTable): class CorePatient(SQLTable):
@@ -1150,26 +1213,32 @@ class CorePatient(SQLTable):
first_name: str | None = None first_name: str | None = None
middle_name: str | None = None middle_name: str | None = None
last_name: str | None = None last_name: str | None = None
sex: str | None = None sex: str | None = Field(default=None, description="Patient biological sex")
race: str | None = None race: str | None = Field(default=None, description="Patient race")
birth_date: date | None = None birth_date: date | None = Field(default=None, description="Patient date of birth")
death_date: date | None = None death_date: date | None = Field(default=None, description="Patient date of death")
death_flag: int | None = None death_flag: int | None = Field(
default=None, description="Whether patient is deceased"
)
social_security_number: str | None = None social_security_number: str | None = None
address: str | None = None address: str | None = None
city: str | None = None city: str | None = None
state: str | None = None state: str | None = Field(default=None, description="Patient state of residence")
zip_code: str | None = None zip_code: str | None = Field(default=None, description="Patient ZIP code")
county: str | None = None county: str | None = Field(default=None, description="Patient county of residence")
latitude: float | None = None latitude: float | None = Field(
longitude: float | None = None default=None, description="Patient geocoded latitude"
)
longitude: float | None = Field(
default=None, description="Patient geocoded longitude"
)
phone: str | None = None phone: str | None = None
email: str | None = None email: str | None = None
ethnicity: str | None = None ethnicity: str | None = None
data_source: str | None = None data_source: str | None = None
age: int | None = None age: int | None = None
age_group: str | None = None age_group: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CorePersonIdCrosswalk(SQLTable): class CorePersonIdCrosswalk(SQLTable):
@@ -1184,7 +1253,7 @@ class CorePersonIdCrosswalk(SQLTable):
payer: str | None = None payer: str | None = None
plan: str | None = None plan: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CorePharmacyClaim(SQLTable): class CorePharmacyClaim(SQLTable):
@@ -1194,7 +1263,9 @@ class CorePharmacyClaim(SQLTable):
__tablename__ = "pharmacy_claim" __tablename__ = "pharmacy_claim"
pharmacy_claim_id: str | None = None pharmacy_claim_id: str | None = None
claim_id: str | None = None claim_id: str | None = Field(
default=None, description="Unique pharmacy claim identifier"
)
claim_line_number: int | None = None claim_line_number: int | None = None
person_id: str | None = None person_id: str | None = None
member_id: str | None = None member_id: str | None = None
@@ -1204,14 +1275,18 @@ class CorePharmacyClaim(SQLTable):
prescribing_provider_name: str | None = None prescribing_provider_name: str | None = None
dispensing_provider_id: str | None = None dispensing_provider_id: str | None = None
dispensing_provider_name: str | None = None dispensing_provider_name: str | None = None
dispensing_date: date | None = None dispensing_date: date | None = Field(
ndc_code: str | None = None default=None, description="Date prescription was dispensed"
)
ndc_code: str | None = Field(default=None, description="National Drug Code")
ndc_description: str | None = None ndc_description: str | None = None
quantity: int | None = None quantity: int | None = Field(default=None, description="Quantity dispensed")
days_supply: int | None = None days_supply: int | None = Field(default=None, description="Number of days supply")
refills: int | None = None refills: int | None = None
paid_date: date | None = None paid_date: date | None = None
paid_amount: Decimal | None = None paid_amount: Decimal | None = Field(
default=None, description="Amount paid for prescription"
)
allowed_amount: Decimal | None = None allowed_amount: Decimal | None = None
charge_amount: Decimal | None = None charge_amount: Decimal | None = None
coinsurance_amount: Decimal | None = None coinsurance_amount: Decimal | None = None
@@ -1224,7 +1299,7 @@ class CorePharmacyClaim(SQLTable):
file_date: datetime | None = None file_date: datetime | None = None
ingest_datetime: datetime | None = None ingest_datetime: datetime | None = None
file_name: str | None = None file_name: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CorePractitioner(SQLTable): class CorePractitioner(SQLTable):
@@ -1241,7 +1316,7 @@ class CorePractitioner(SQLTable):
specialty: str | None = None specialty: str | None = None
sub_specialty: str | None = None sub_specialty: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class CoreProcedure(SQLTable): class CoreProcedure(SQLTable):
@@ -1271,4 +1346,4 @@ class CoreProcedure(SQLTable):
modifier_5: str | None = None modifier_5: str | None = None
practitioner_id: str | None = None practitioner_id: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None

File diff suppressed because it is too large Load Diff

View File

@@ -21,7 +21,7 @@ class FinancialPmpmIntPatientSpendWithServiceCategories(SQLTable):
total_paid: Decimal | None = None total_paid: Decimal | None = None
total_allowed: Decimal | None = None total_allowed: Decimal | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class FinancialPmpmIntServiceCategory1AllowedPivot(SQLTable): class FinancialPmpmIntServiceCategory1AllowedPivot(SQLTable):
@@ -41,7 +41,7 @@ class FinancialPmpmIntServiceCategory1AllowedPivot(SQLTable):
ancillary_allowed: Decimal | None = None ancillary_allowed: Decimal | None = None
other_allowed: Decimal | None = None other_allowed: Decimal | None = None
pharmacy_allowed: Decimal | None = None pharmacy_allowed: Decimal | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class FinancialPmpmIntServiceCategory1PaidPivot(SQLTable): class FinancialPmpmIntServiceCategory1PaidPivot(SQLTable):
@@ -61,7 +61,7 @@ class FinancialPmpmIntServiceCategory1PaidPivot(SQLTable):
ancillary_paid: Decimal | None = None ancillary_paid: Decimal | None = None
other_paid: Decimal | None = None other_paid: Decimal | None = None
pharmacy_paid: Decimal | None = None pharmacy_paid: Decimal | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class FinancialPmpmIntServiceCategory2AllowedPivot(SQLTable): class FinancialPmpmIntServiceCategory2AllowedPivot(SQLTable):
@@ -104,7 +104,7 @@ class FinancialPmpmIntServiceCategory2AllowedPivot(SQLTable):
skilled_nursing_allowed: Decimal | None = None skilled_nursing_allowed: Decimal | None = None
telehealth_visit_allowed: Decimal | None = None telehealth_visit_allowed: Decimal | None = None
urgent_care_allowed: Decimal | None = None urgent_care_allowed: Decimal | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class FinancialPmpmIntServiceCategory2PaidPivot(SQLTable): class FinancialPmpmIntServiceCategory2PaidPivot(SQLTable):
@@ -147,7 +147,7 @@ class FinancialPmpmIntServiceCategory2PaidPivot(SQLTable):
skilled_nursing_paid: Decimal | None = None skilled_nursing_paid: Decimal | None = None
telehealth_visit_paid: Decimal | None = None telehealth_visit_paid: Decimal | None = None
urgent_care_paid: Decimal | None = None urgent_care_paid: Decimal | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class FinancialPmpmPmpmPayer(SQLTable): class FinancialPmpmPmpmPayer(SQLTable):
@@ -228,7 +228,7 @@ class FinancialPmpmPmpmPayer(SQLTable):
skilled_nursing_allowed: float | None = None skilled_nursing_allowed: float | None = None
telehealth_visit_allowed: float | None = None telehealth_visit_allowed: float | None = None
urgent_care_allowed: float | None = None urgent_care_allowed: float | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class FinancialPmpmPmpmPayerPlan(SQLTable): class FinancialPmpmPmpmPayerPlan(SQLTable):
@@ -310,7 +310,7 @@ class FinancialPmpmPmpmPayerPlan(SQLTable):
skilled_nursing_allowed: float | None = None skilled_nursing_allowed: float | None = None
telehealth_visit_allowed: float | None = None telehealth_visit_allowed: float | None = None
urgent_care_allowed: float | None = None urgent_care_allowed: float | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class FinancialPmpmPmpmPrep(SQLTable): class FinancialPmpmPmpmPrep(SQLTable):
@@ -406,4 +406,4 @@ class FinancialPmpmPmpmPrep(SQLTable):
medical_paid: Decimal | None = None medical_paid: Decimal | None = None
total_allowed: Decimal | None = None total_allowed: Decimal | None = None
medical_allowed: Decimal | None = None medical_allowed: Decimal | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None

View File

@@ -22,7 +22,7 @@ class HccSuspectingIntAllConditions(SQLTable):
hcc_code: str | None = None hcc_code: str | None = None
hcc_description: str | None = None hcc_description: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class HccSuspectingIntAllMedications(SQLTable): class HccSuspectingIntAllMedications(SQLTable):
@@ -37,7 +37,7 @@ class HccSuspectingIntAllMedications(SQLTable):
drug_code: str | None = None drug_code: str | None = None
code_system: str | None = None code_system: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class HccSuspectingIntComorbiditySuspects(SQLTable): class HccSuspectingIntComorbiditySuspects(SQLTable):
@@ -62,7 +62,7 @@ class HccSuspectingIntComorbiditySuspects(SQLTable):
reason: str | None = None reason: str | None = None
contributing_factor: str | None = None contributing_factor: str | None = None
suspect_date: date | None = None suspect_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class HccSuspectingIntLabSuspects(SQLTable): class HccSuspectingIntLabSuspects(SQLTable):
@@ -84,7 +84,7 @@ class HccSuspectingIntLabSuspects(SQLTable):
reason: str | None = None reason: str | None = None
contributing_factor: str | None = None contributing_factor: str | None = None
suspect_date: date | None = None suspect_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class HccSuspectingIntMedicationSuspects(SQLTable): class HccSuspectingIntMedicationSuspects(SQLTable):
@@ -105,7 +105,7 @@ class HccSuspectingIntMedicationSuspects(SQLTable):
reason: str | None = None reason: str | None = None
contributing_factor: str | None = None contributing_factor: str | None = None
suspect_date: date | None = None suspect_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class HccSuspectingIntObservationSuspects(SQLTable): class HccSuspectingIntObservationSuspects(SQLTable):
@@ -129,7 +129,7 @@ class HccSuspectingIntObservationSuspects(SQLTable):
reason: str | None = None reason: str | None = None
contributing_factor: str | None = None contributing_factor: str | None = None
suspect_date: date | None = None suspect_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class HccSuspectingIntPatientHccHistory(SQLTable): class HccSuspectingIntPatientHccHistory(SQLTable):
@@ -154,7 +154,7 @@ class HccSuspectingIntPatientHccHistory(SQLTable):
reason: str | None = None reason: str | None = None
contributing_factor: str | None = None contributing_factor: str | None = None
suspect_date: date | None = None suspect_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class HccSuspectingIntPrepConditions(SQLTable): class HccSuspectingIntPrepConditions(SQLTable):
@@ -171,7 +171,7 @@ class HccSuspectingIntPrepConditions(SQLTable):
code_type: str | None = None code_type: str | None = None
code: str | None = None code: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class HccSuspectingIntPrepEgfrLabs(SQLTable): class HccSuspectingIntPrepEgfrLabs(SQLTable):
@@ -187,7 +187,7 @@ class HccSuspectingIntPrepEgfrLabs(SQLTable):
code: str | None = None code: str | None = None
result_date: date | None = None result_date: date | None = None
result: Decimal | None = None result: Decimal | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class HccSuspectingStgCondition(SQLTable): class HccSuspectingStgCondition(SQLTable):
@@ -332,7 +332,7 @@ class HccSuspectingList(SQLTable):
reason: str | None = None reason: str | None = None
contributing_factor: str | None = None contributing_factor: str | None = None
suspect_date: date | None = None suspect_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class HccSuspectingListRollup(SQLTable): class HccSuspectingListRollup(SQLTable):
@@ -349,7 +349,7 @@ class HccSuspectingListRollup(SQLTable):
reason: str | None = None reason: str | None = None
contributing_factor: str | None = None contributing_factor: str | None = None
latest_suspect_date: date | None = None latest_suspect_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class HccSuspectingSummary(SQLTable): class HccSuspectingSummary(SQLTable):
@@ -364,4 +364,4 @@ class HccSuspectingSummary(SQLTable):
patient_birth_date: date | None = None patient_birth_date: date | None = None
patient_age: int | None = None patient_age: int | None = None
suspecting_gaps: int | None = None suspecting_gaps: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None

View File

@@ -2,6 +2,8 @@ from __future__ import annotations
from datetime import date, datetime from datetime import date, datetime
from pydantic import Field
from aco.table.base import SQLTable from aco.table.base import SQLTable
@@ -74,7 +76,7 @@ class InputLayerCondition(SQLTable):
data_source: str | None = None data_source: str | None = None
file_name: str | None = None file_name: str | None = None
ingest_datetime: datetime | None = None ingest_datetime: datetime | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class InputLayerEligibility(SQLTable): class InputLayerEligibility(SQLTable):
@@ -91,10 +93,16 @@ class InputLayerEligibility(SQLTable):
birth_date: date | None = None birth_date: date | None = None
death_date: date | None = None death_date: date | None = None
death_flag: int | None = None death_flag: int | None = None
enrollment_start_date: date | None = None enrollment_start_date: date | None = Field(
enrollment_end_date: date | None = None default=None, description="Coverage start date"
payer: str | None = None )
payer_type: str | None = None enrollment_end_date: date | None = Field(
default=None, description="Coverage end date"
)
payer: str | None = Field(default=None, description="Payer name from source")
payer_type: str | None = Field(
default=None, description="Payer type classification"
)
plan: str | None = None plan: str | None = None
original_reason_entitlement_code: str | None = None original_reason_entitlement_code: str | None = None
dual_status_code: str | None = None dual_status_code: str | None = None
@@ -159,7 +167,7 @@ class InputLayerEncounter(SQLTable):
data_source: str | None = None data_source: str | None = None
file_name: str | None = None file_name: str | None = None
ingest_datetime: datetime | None = None ingest_datetime: datetime | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class InputLayerImmunization(SQLTable): class InputLayerImmunization(SQLTable):
@@ -262,7 +270,7 @@ class InputLayerInputLayerCondition(SQLTable):
data_source: str | None = None data_source: str | None = None
file_name: str | None = None file_name: str | None = None
ingest_datetime: datetime | None = None ingest_datetime: datetime | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class InputLayerInputLayerEligibility(SQLTable): class InputLayerInputLayerEligibility(SQLTable):
@@ -347,7 +355,7 @@ class InputLayerInputLayerEncounter(SQLTable):
data_source: str | None = None data_source: str | None = None
file_name: str | None = None file_name: str | None = None
ingest_datetime: datetime | None = None ingest_datetime: datetime | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class InputLayerInputLayerImmunization(SQLTable): class InputLayerInputLayerImmunization(SQLTable):
@@ -441,7 +449,7 @@ class InputLayerInputLayerLocation(SQLTable):
latitude: float | None = None latitude: float | None = None
longitude: float | None = None longitude: float | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class InputLayerInputLayerMedicalClaim(SQLTable): class InputLayerInputLayerMedicalClaim(SQLTable):
@@ -630,7 +638,7 @@ class InputLayerInputLayerMedication(SQLTable):
data_source: str | None = None data_source: str | None = None
file_name: str | None = None file_name: str | None = None
ingest_datetime: datetime | None = None ingest_datetime: datetime | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class InputLayerInputLayerObservation(SQLTable): class InputLayerInputLayerObservation(SQLTable):
@@ -695,7 +703,7 @@ class InputLayerInputLayerPatient(SQLTable):
data_source: str | None = None data_source: str | None = None
file_name: str | None = None file_name: str | None = None
ingest_datetime: datetime | None = None ingest_datetime: datetime | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class InputLayerInputLayerPharmacyClaim(SQLTable): class InputLayerInputLayerPharmacyClaim(SQLTable):
@@ -745,7 +753,7 @@ class InputLayerInputLayerPractitioner(SQLTable):
specialty: str | None = None specialty: str | None = None
sub_specialty: str | None = None sub_specialty: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class InputLayerInputLayerProcedure(SQLTable): class InputLayerInputLayerProcedure(SQLTable):
@@ -775,7 +783,7 @@ class InputLayerInputLayerProcedure(SQLTable):
data_source: str | None = None data_source: str | None = None
file_name: str | None = None file_name: str | None = None
ingest_datetime: datetime | None = None ingest_datetime: datetime | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class InputLayerInputLayerProviderAttribution(SQLTable): class InputLayerInputLayerProviderAttribution(SQLTable):
@@ -860,7 +868,7 @@ class InputLayerLocation(SQLTable):
latitude: float | None = None latitude: float | None = None
longitude: float | None = None longitude: float | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class InputLayerMedicalClaim(SQLTable): class InputLayerMedicalClaim(SQLTable):
@@ -869,15 +877,21 @@ class InputLayerMedicalClaim(SQLTable):
__schema__ = "input_layer" __schema__ = "input_layer"
__tablename__ = "medical_claim" __tablename__ = "medical_claim"
claim_id: str | None = None claim_id: str | None = Field(default=None, description="Source claim identifier")
claim_line_number: int | None = None claim_line_number: int | None = Field(
default=None, description="Line number within the claim"
)
claim_type: str | None = None claim_type: str | None = None
person_id: str | None = None person_id: str | None = None
member_id: str | None = None member_id: str | None = None
payer: str | None = None payer: str | None = None
plan: str | None = None plan: str | None = None
claim_start_date: date | None = None claim_start_date: date | None = Field(
claim_end_date: date | None = None default=None, description="Claim service start date"
)
claim_end_date: date | None = Field(
default=None, description="Claim service end date"
)
claim_line_start_date: date | None = None claim_line_start_date: date | None = None
claim_line_end_date: date | None = None claim_line_end_date: date | None = None
admission_date: date | None = None admission_date: date | None = None
@@ -885,13 +899,15 @@ class InputLayerMedicalClaim(SQLTable):
admit_source_code: str | None = None admit_source_code: str | None = None
admit_type_code: str | None = None admit_type_code: str | None = None
discharge_disposition_code: str | None = None discharge_disposition_code: str | None = None
place_of_service_code: str | None = None place_of_service_code: str | None = Field(
default=None, description="Place of service code"
)
bill_type_code: str | None = None bill_type_code: str | None = None
drg_code_type: str | None = None drg_code_type: str | None = None
drg_code: str | None = None drg_code: str | None = None
revenue_center_code: str | None = None revenue_center_code: str | None = None
service_unit_quantity: int | None = None service_unit_quantity: int | None = None
hcpcs_code: str | None = None hcpcs_code: str | None = Field(default=None, description="HCPCS/CPT procedure code")
hcpcs_modifier_1: str | None = None hcpcs_modifier_1: str | None = None
hcpcs_modifier_2: str | None = None hcpcs_modifier_2: str | None = None
hcpcs_modifier_3: str | None = None hcpcs_modifier_3: str | None = None
@@ -903,7 +919,9 @@ class InputLayerMedicalClaim(SQLTable):
billing_tin: str | None = None billing_tin: str | None = None
facility_npi: str | None = None facility_npi: str | None = None
paid_date: date | None = None paid_date: date | None = None
paid_amount: float | None = None paid_amount: float | None = Field(
default=None, description="Paid amount from source"
)
allowed_amount: float | None = None allowed_amount: float | None = None
charge_amount: float | None = None charge_amount: float | None = None
coinsurance_amount: float | None = None coinsurance_amount: float | None = None
@@ -911,7 +929,9 @@ class InputLayerMedicalClaim(SQLTable):
deductible_amount: float | None = None deductible_amount: float | None = None
total_cost_amount: float | None = None total_cost_amount: float | None = None
diagnosis_code_type: str | None = None diagnosis_code_type: str | None = None
diagnosis_code_1: str | None = None diagnosis_code_1: str | None = Field(
default=None, description="Primary diagnosis code"
)
diagnosis_code_2: str | None = None diagnosis_code_2: str | None = None
diagnosis_code_3: str | None = None diagnosis_code_3: str | None = None
diagnosis_code_4: str | None = None diagnosis_code_4: str | None = None
@@ -1049,7 +1069,7 @@ class InputLayerMedication(SQLTable):
data_source: str | None = None data_source: str | None = None
file_name: str | None = None file_name: str | None = None
ingest_datetime: datetime | None = None ingest_datetime: datetime | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class InputLayerObservation(SQLTable): class InputLayerObservation(SQLTable):
@@ -1114,7 +1134,7 @@ class InputLayerPatient(SQLTable):
data_source: str | None = None data_source: str | None = None
file_name: str | None = None file_name: str | None = None
ingest_datetime: datetime | None = None ingest_datetime: datetime | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class InputLayerPharmacyClaim(SQLTable): class InputLayerPharmacyClaim(SQLTable):
@@ -1123,7 +1143,9 @@ class InputLayerPharmacyClaim(SQLTable):
__schema__ = "input_layer" __schema__ = "input_layer"
__tablename__ = "pharmacy_claim" __tablename__ = "pharmacy_claim"
claim_id: str | None = None claim_id: str | None = Field(
default=None, description="Source pharmacy claim identifier"
)
claim_line_number: int | None = None claim_line_number: int | None = None
person_id: str | None = None person_id: str | None = None
member_id: str | None = None member_id: str | None = None
@@ -1131,10 +1153,14 @@ class InputLayerPharmacyClaim(SQLTable):
plan: str | None = None plan: str | None = None
prescribing_provider_npi: str | None = None prescribing_provider_npi: str | None = None
dispensing_provider_npi: str | None = None dispensing_provider_npi: str | None = None
dispensing_date: date | None = None dispensing_date: date | None = Field(
ndc_code: str | None = None default=None, description="Date prescription was dispensed"
quantity: int | None = None )
days_supply: int | None = None ndc_code: str | None = Field(
default=None, description="National Drug Code from source"
)
quantity: int | None = Field(default=None, description="Quantity dispensed")
days_supply: int | None = Field(default=None, description="Number of days supply")
refills: int | None = None refills: int | None = None
paid_date: date | None = None paid_date: date | None = None
paid_amount: float | None = None paid_amount: float | None = None
@@ -1164,7 +1190,7 @@ class InputLayerPractitioner(SQLTable):
specialty: str | None = None specialty: str | None = None
sub_specialty: str | None = None sub_specialty: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class InputLayerProcedure(SQLTable): class InputLayerProcedure(SQLTable):
@@ -1194,7 +1220,7 @@ class InputLayerProcedure(SQLTable):
data_source: str | None = None data_source: str | None = None
file_name: str | None = None file_name: str | None = None
ingest_datetime: datetime | None = None ingest_datetime: datetime | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class InputLayerProviderAttribution(SQLTable): class InputLayerProviderAttribution(SQLTable):

View File

@@ -580,7 +580,7 @@ class MainHccSuspectingListAll(SQLTable):
contributing_factor: str | None = None contributing_factor: str | None = None
suspect_date: date | None = None suspect_date: date | None = None
current_year_billed: bool | None = None current_year_billed: bool | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class MainJobRunResults(SQLTable): class MainJobRunResults(SQLTable):

View File

@@ -5,11 +5,11 @@ from datetime import datetime
from aco.table.base import SQLTable from aco.table.base import SQLTable
class MetadataPipelineInvocations(SQLTable): class MetadataInvocations(SQLTable):
"""Schema: metadata / Table: pipeline_invocations""" """Schema: metadata / Table: invocations"""
__schema__ = "metadata" __schema__ = "metadata"
__tablename__ = "pipeline_invocations" __tablename__ = "invocations"
invocation_id: str | None = None invocation_id: str | None = None
project_name: str | None = None project_name: str | None = None

135
src/aco/table/pfs.py Normal file
View File

@@ -0,0 +1,135 @@
from __future__ import annotations
from aco.table.base import SQLTable
class PfsCarrierLocality(SQLTable):
"""Schema: pfs / Table: carrier_locality"""
__schema__ = "pfs"
__tablename__ = "carrier_locality"
year: int | None = None
mac: str | None = None
locality: str | None = None
hcpcs: str | None = None
mod: str | None = None
non_fac_fee: float | None = None
fac_fee: float | None = None
non_fac_limiting_charge: float | None = None
fac_limiting_charge: float | None = None
class PfsClinicalLabor(SQLTable):
"""Schema: pfs / Table: clinical_labor"""
__schema__ = "pfs"
__tablename__ = "clinical_labor"
hcpcs: str | None = None
activity_code: str | None = None
activity_description: str | None = None
rate_per_minute: float | None = None
year: int | None = None
class PfsGpci(SQLTable):
"""Schema: pfs / Table: gpci"""
__schema__ = "pfs"
__tablename__ = "gpci"
mac: str | None = None
locality: str | None = None
locality_name: str | None = None
work_gpci: float | None = None
pe_gpci: float | None = None
mp_gpci: float | None = None
year: int | None = None
state: str | None = None
class PfsMedicalEquipment(SQLTable):
"""Schema: pfs / Table: medical_equipment"""
__schema__ = "pfs"
__tablename__ = "medical_equipment"
hcpcs: str | None = None
equipment_code: str | None = None
equipment_description: str | None = None
nf_minutes: float | None = None
f_minutes: float | None = None
unit_price: float | None = None
useful_life: float | None = None
year: int | None = None
minutes_per_year: float | None = None
class PfsMedicalSupply(SQLTable):
"""Schema: pfs / Table: medical_supply"""
__schema__ = "pfs"
__tablename__ = "medical_supply"
hcpcs: str | None = None
supply_code: str | None = None
supply_description: str | None = None
nf_quantity: float | None = None
f_quantity: float | None = None
unit_price: float | None = None
year: int | None = None
class PfsPhysicianWorkTime(SQLTable):
"""Schema: pfs / Table: physician_work_time"""
__schema__ = "pfs"
__tablename__ = "physician_work_time"
hcpcs: str | None = None
pre_eval_time: float | None = None
pre_positioning_time: float | None = None
pre_scrub_dress_wait: float | None = None
intra_service_time: float | None = None
post_immediate_time: float | None = None
total_time: float | None = None
year: int | None = None
class PfsRvu(SQLTable):
"""Schema: pfs / Table: rvu"""
__schema__ = "pfs"
__tablename__ = "rvu"
hcpcs: str | None = None
mod: str | None = None
status_code: str | None = None
description: str | None = None
work_rvu: float | None = None
non_fac_pe_rvu: float | None = None
fac_pe_rvu: float | None = None
mp_rvu: float | None = None
non_fac_total: float | None = None
fac_total: float | None = None
glob_days: str | None = None
year: int | None = None
not_used_for_medicare: str | None = None
class PfsZipCarrierLocality(SQLTable):
"""Schema: pfs / Table: zip_carrier_locality"""
__schema__ = "pfs"
__tablename__ = "zip_carrier_locality"
state: str | None = None
zip_code: str | None = None
carrier: str | None = None
locality: str | None = None
rural_indicator: str | None = None
plus_four_flag: str | None = None
part_b_indicator: str | None = None
year: int | None = None
quarter: int | None = None

View File

@@ -13,7 +13,7 @@ class PharmacyIntBrandWithGenericAvailable(SQLTable):
__tablename__ = "_int_brand_with_generic_available" __tablename__ = "_int_brand_with_generic_available"
brand_with_generic_available: str | None = None brand_with_generic_available: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class PharmacyIntClaimsCurrentCost(SQLTable): class PharmacyIntClaimsCurrentCost(SQLTable):
@@ -33,7 +33,7 @@ class PharmacyIntClaimsCurrentCost(SQLTable):
cost_per_claim: float | None = None cost_per_claim: float | None = None
total_units: int | None = None total_units: int | None = None
cost_per_unit: float | None = None cost_per_unit: float | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class PharmacyIntGenericCost(SQLTable): class PharmacyIntGenericCost(SQLTable):
@@ -46,7 +46,7 @@ class PharmacyIntGenericCost(SQLTable):
data_source: str | None = None data_source: str | None = None
prescribed_atleast_one_generic_history: int | None = None prescribed_atleast_one_generic_history: int | None = None
generic_average_cost_per_unit: float | None = None generic_average_cost_per_unit: float | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class PharmacyIntGenericCostByNdc(SQLTable): class PharmacyIntGenericCostByNdc(SQLTable):
@@ -63,7 +63,7 @@ class PharmacyIntGenericCostByNdc(SQLTable):
total_units: int | None = None total_units: int | None = None
cost_per_unit: float | None = None cost_per_unit: float | None = None
prescribed_atleast_one_generic_history: int | None = None prescribed_atleast_one_generic_history: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class PharmacyBrandGenericOpportunity(SQLTable): class PharmacyBrandGenericOpportunity(SQLTable):
@@ -86,7 +86,7 @@ class PharmacyBrandGenericOpportunity(SQLTable):
generic_average_cost_per_unit: float | None = None generic_average_cost_per_unit: float | None = None
brand_less_generic_cost_per_unit: float | None = None brand_less_generic_cost_per_unit: float | None = None
generic_available_total_opportunity: float | None = None generic_available_total_opportunity: float | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class PharmacyGenericAvailableList(SQLTable): class PharmacyGenericAvailableList(SQLTable):
@@ -108,7 +108,7 @@ class PharmacyGenericAvailableList(SQLTable):
generic_prescribed_history: int | None = None generic_prescribed_history: int | None = None
generic_cost_per_unit: float | None = None generic_cost_per_unit: float | None = None
generic_cost_at_units: float | None = None generic_cost_at_units: float | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class PharmacyPharmacyClaimExpanded(SQLTable): class PharmacyPharmacyClaimExpanded(SQLTable):

View File

@@ -169,7 +169,7 @@ class ProviderAttributionAssignedBeneficiariesCurrent(SQLTable):
lookback_start_date: date | None = None lookback_start_date: date | None = None
lookback_end_date: date | None = None lookback_end_date: date | None = None
attribution_key: str | None = None attribution_key: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ProviderAttributionAssignedBeneficiariesYearly(SQLTable): class ProviderAttributionAssignedBeneficiariesYearly(SQLTable):
@@ -190,7 +190,7 @@ class ProviderAttributionAssignedBeneficiariesYearly(SQLTable):
lookback_start_date: date | None = None lookback_start_date: date | None = None
lookback_end_date: date | None = None lookback_end_date: date | None = None
attribution_key: str | None = None attribution_key: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ProviderAttributionProviderRanking(SQLTable): class ProviderAttributionProviderRanking(SQLTable):
@@ -214,4 +214,4 @@ class ProviderAttributionProviderRanking(SQLTable):
lookback_end_date: date | None = None lookback_end_date: date | None = None
ranking: int | None = None ranking: int | None = None
attribution_key: str | None = None attribution_key: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None

View File

@@ -37,7 +37,7 @@ class QualityMeasuresIntAdhDiabetesDenominator(SQLTable):
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
denominator_flag: int | None = None denominator_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntAdhDiabetesExclusions(SQLTable): class QualityMeasuresIntAdhDiabetesExclusions(SQLTable):
@@ -50,7 +50,7 @@ class QualityMeasuresIntAdhDiabetesExclusions(SQLTable):
exclusion_date: date | None = None exclusion_date: date | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_flag: int | None = None exclusion_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntAdhDiabetesLong(SQLTable): class QualityMeasuresIntAdhDiabetesLong(SQLTable):
@@ -72,7 +72,7 @@ class QualityMeasuresIntAdhDiabetesLong(SQLTable):
measure_id: str | None = None measure_id: str | None = None
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntAdhDiabetesNumerator(SQLTable): class QualityMeasuresIntAdhDiabetesNumerator(SQLTable):
@@ -86,7 +86,7 @@ class QualityMeasuresIntAdhDiabetesNumerator(SQLTable):
evidence_value: str | None = None evidence_value: str | None = None
adherence: Decimal | None = None adherence: Decimal | None = None
numerator_flag: int | None = None numerator_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntAdhStatinsPerformancePeriod(SQLTable): class QualityMeasuresIntAdhStatinsPerformancePeriod(SQLTable):
@@ -119,7 +119,7 @@ class QualityMeasuresIntAdhStatinsDenominator(SQLTable):
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
denominator_flag: int | None = None denominator_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntAdhStatinsExclusions(SQLTable): class QualityMeasuresIntAdhStatinsExclusions(SQLTable):
@@ -132,7 +132,7 @@ class QualityMeasuresIntAdhStatinsExclusions(SQLTable):
exclusion_date: date | None = None exclusion_date: date | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_flag: int | None = None exclusion_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntAdhStatinsLong(SQLTable): class QualityMeasuresIntAdhStatinsLong(SQLTable):
@@ -154,7 +154,7 @@ class QualityMeasuresIntAdhStatinsLong(SQLTable):
measure_id: str | None = None measure_id: str | None = None
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntAdhStatinsNumerator(SQLTable): class QualityMeasuresIntAdhStatinsNumerator(SQLTable):
@@ -168,7 +168,7 @@ class QualityMeasuresIntAdhStatinsNumerator(SQLTable):
evidence_value: str | None = None evidence_value: str | None = None
adherence: Decimal | None = None adherence: Decimal | None = None
numerator_flag: int | None = None numerator_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntAdhrasPerformancePeriod(SQLTable): class QualityMeasuresIntAdhrasPerformancePeriod(SQLTable):
@@ -201,7 +201,7 @@ class QualityMeasuresIntAdhrasDenominator(SQLTable):
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
denominator_flag: int | None = None denominator_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntAdhrasExclusions(SQLTable): class QualityMeasuresIntAdhrasExclusions(SQLTable):
@@ -214,7 +214,7 @@ class QualityMeasuresIntAdhrasExclusions(SQLTable):
exclusion_date: date | None = None exclusion_date: date | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_flag: int | None = None exclusion_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntAdhrasLong(SQLTable): class QualityMeasuresIntAdhrasLong(SQLTable):
@@ -236,7 +236,7 @@ class QualityMeasuresIntAdhrasLong(SQLTable):
measure_id: str | None = None measure_id: str | None = None
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntAdhrasNumerator(SQLTable): class QualityMeasuresIntAdhrasNumerator(SQLTable):
@@ -250,7 +250,7 @@ class QualityMeasuresIntAdhrasNumerator(SQLTable):
evidence_value: str | None = None evidence_value: str | None = None
adherence: Decimal | None = None adherence: Decimal | None = None
numerator_flag: int | None = None numerator_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntCqm130PerformancePeriod(SQLTable): class QualityMeasuresIntCqm130PerformancePeriod(SQLTable):
@@ -282,7 +282,7 @@ class QualityMeasuresIntCqm130Denominator(SQLTable):
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
denominator_flag: int | None = None denominator_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntCqm130Exclusions(SQLTable): class QualityMeasuresIntCqm130Exclusions(SQLTable):
@@ -295,7 +295,7 @@ class QualityMeasuresIntCqm130Exclusions(SQLTable):
exclusion_date: date | None = None exclusion_date: date | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_flag: int | None = None exclusion_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntCqm130Long(SQLTable): class QualityMeasuresIntCqm130Long(SQLTable):
@@ -317,7 +317,7 @@ class QualityMeasuresIntCqm130Long(SQLTable):
measure_id: str | None = None measure_id: str | None = None
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntCqm130Numerator(SQLTable): class QualityMeasuresIntCqm130Numerator(SQLTable):
@@ -335,7 +335,7 @@ class QualityMeasuresIntCqm130Numerator(SQLTable):
evidence_date: date | None = None evidence_date: date | None = None
evidence_value: str | None = None evidence_value: str | None = None
numerator_flag: int | None = None numerator_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntCqm438PerformancePeriod(SQLTable): class QualityMeasuresIntCqm438PerformancePeriod(SQLTable):
@@ -365,7 +365,7 @@ class QualityMeasuresIntCqm438Denominator(SQLTable):
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
denominator_flag: int | None = None denominator_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntCqm438DenominatorCriteria1(SQLTable): class QualityMeasuresIntCqm438DenominatorCriteria1(SQLTable):
@@ -380,7 +380,7 @@ class QualityMeasuresIntCqm438DenominatorCriteria1(SQLTable):
measure_id: str | None = None measure_id: str | None = None
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntCqm438DenominatorCriteria2(SQLTable): class QualityMeasuresIntCqm438DenominatorCriteria2(SQLTable):
@@ -395,7 +395,7 @@ class QualityMeasuresIntCqm438DenominatorCriteria2(SQLTable):
measure_id: str | None = None measure_id: str | None = None
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntCqm438DenominatorCriteria3(SQLTable): class QualityMeasuresIntCqm438DenominatorCriteria3(SQLTable):
@@ -410,7 +410,7 @@ class QualityMeasuresIntCqm438DenominatorCriteria3(SQLTable):
measure_id: str | None = None measure_id: str | None = None
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntCqm438Exclusions(SQLTable): class QualityMeasuresIntCqm438Exclusions(SQLTable):
@@ -423,7 +423,7 @@ class QualityMeasuresIntCqm438Exclusions(SQLTable):
exclusion_date: date | None = None exclusion_date: date | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_flag: int | None = None exclusion_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntCqm438Long(SQLTable): class QualityMeasuresIntCqm438Long(SQLTable):
@@ -445,7 +445,7 @@ class QualityMeasuresIntCqm438Long(SQLTable):
measure_id: str | None = None measure_id: str | None = None
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntCqm438Numerator(SQLTable): class QualityMeasuresIntCqm438Numerator(SQLTable):
@@ -463,7 +463,7 @@ class QualityMeasuresIntCqm438Numerator(SQLTable):
evidence_date: date | None = None evidence_date: date | None = None
evidence_value: str | None = None evidence_value: str | None = None
numerator_flag: int | None = None numerator_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntNqf0420PerformancePeriod(SQLTable): class QualityMeasuresIntNqf0420PerformancePeriod(SQLTable):
@@ -493,7 +493,7 @@ class QualityMeasuresIntNqf0420Denominator(SQLTable):
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
denominator_flag: int | None = None denominator_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntNqf0420Exclusions(SQLTable): class QualityMeasuresIntNqf0420Exclusions(SQLTable):
@@ -506,7 +506,7 @@ class QualityMeasuresIntNqf0420Exclusions(SQLTable):
exclusion_date: date | None = None exclusion_date: date | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_flag: int | None = None exclusion_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntNqf0420Long(SQLTable): class QualityMeasuresIntNqf0420Long(SQLTable):
@@ -528,7 +528,7 @@ class QualityMeasuresIntNqf0420Long(SQLTable):
measure_id: str | None = None measure_id: str | None = None
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntNqf0420Numerator(SQLTable): class QualityMeasuresIntNqf0420Numerator(SQLTable):
@@ -546,7 +546,7 @@ class QualityMeasuresIntNqf0420Numerator(SQLTable):
evidence_date: date | None = None evidence_date: date | None = None
evidence_value: str | None = None evidence_value: str | None = None
numerator_flag: int | None = None numerator_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntSharedExclusionsAdvancedIllness(SQLTable): class QualityMeasuresIntSharedExclusionsAdvancedIllness(SQLTable):
@@ -563,7 +563,7 @@ class QualityMeasuresIntSharedExclusionsAdvancedIllness(SQLTable):
claim_end_date: date | None = None claim_end_date: date | None = None
procedure_date: date | None = None procedure_date: date | None = None
patient_type: str | None = None patient_type: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntSharedExclusionsDementia(SQLTable): class QualityMeasuresIntSharedExclusionsDementia(SQLTable):
@@ -578,7 +578,7 @@ class QualityMeasuresIntSharedExclusionsDementia(SQLTable):
exclusion_type: str | None = None exclusion_type: str | None = None
dispensing_date: date | None = None dispensing_date: date | None = None
paid_date: date | None = None paid_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntSharedExclusionsFrailty(SQLTable): class QualityMeasuresIntSharedExclusionsFrailty(SQLTable):
@@ -590,7 +590,7 @@ class QualityMeasuresIntSharedExclusionsFrailty(SQLTable):
person_id: str | None = None person_id: str | None = None
exclusion_date: date | None = None exclusion_date: date | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntSharedExclusionsHospicePalliative(SQLTable): class QualityMeasuresIntSharedExclusionsHospicePalliative(SQLTable):
@@ -603,7 +603,7 @@ class QualityMeasuresIntSharedExclusionsHospicePalliative(SQLTable):
exclusion_date: date | None = None exclusion_date: date | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_type: str | None = None exclusion_type: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntSharedExclusionsInstitutionalSnp(SQLTable): class QualityMeasuresIntSharedExclusionsInstitutionalSnp(SQLTable):
@@ -616,7 +616,7 @@ class QualityMeasuresIntSharedExclusionsInstitutionalSnp(SQLTable):
exclusion_date: date | None = None exclusion_date: date | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_type: str | None = None exclusion_type: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntSupdPerformancePeriod(SQLTable): class QualityMeasuresIntSupdPerformancePeriod(SQLTable):
@@ -646,7 +646,7 @@ class QualityMeasuresIntSupdDenominator(SQLTable):
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
denominator_flag: int | None = None denominator_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntSupdExclusions(SQLTable): class QualityMeasuresIntSupdExclusions(SQLTable):
@@ -659,7 +659,7 @@ class QualityMeasuresIntSupdExclusions(SQLTable):
exclusion_date: date | None = None exclusion_date: date | None = None
exclusion_reason: str | None = None exclusion_reason: str | None = None
exclusion_flag: int | None = None exclusion_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntSupdLong(SQLTable): class QualityMeasuresIntSupdLong(SQLTable):
@@ -681,7 +681,7 @@ class QualityMeasuresIntSupdLong(SQLTable):
measure_id: str | None = None measure_id: str | None = None
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresIntSupdNumerator(SQLTable): class QualityMeasuresIntSupdNumerator(SQLTable):
@@ -694,7 +694,7 @@ class QualityMeasuresIntSupdNumerator(SQLTable):
evidence_date: date | None = None evidence_date: date | None = None
evidence_value: str | None = None evidence_value: str | None = None
numerator_flag: int | None = None numerator_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresStgCondition(SQLTable): class QualityMeasuresStgCondition(SQLTable):
@@ -711,7 +711,7 @@ class QualityMeasuresStgCondition(SQLTable):
source_code: str | None = None source_code: str | None = None
normalized_code_type: str | None = None normalized_code_type: str | None = None
normalized_code: str | None = None normalized_code: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresStgEncounter(SQLTable): class QualityMeasuresStgEncounter(SQLTable):
@@ -727,7 +727,7 @@ class QualityMeasuresStgEncounter(SQLTable):
length_of_stay: int | None = None length_of_stay: int | None = None
encounter_start_date: date | None = None encounter_start_date: date | None = None
encounter_end_date: date | None = None encounter_end_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresStgLabResult(SQLTable): class QualityMeasuresStgLabResult(SQLTable):
@@ -761,7 +761,7 @@ class QualityMeasuresStgMedicalClaim(SQLTable):
hcpcs_modifier_3: str | None = None hcpcs_modifier_3: str | None = None
hcpcs_modifier_4: str | None = None hcpcs_modifier_4: str | None = None
hcpcs_modifier_5: str | None = None hcpcs_modifier_5: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresStgMedication(SQLTable): class QualityMeasuresStgMedication(SQLTable):
@@ -778,7 +778,7 @@ class QualityMeasuresStgMedication(SQLTable):
source_code: str | None = None source_code: str | None = None
ndc_code: str | None = None ndc_code: str | None = None
rxnorm_code: str | None = None rxnorm_code: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresStgObservation(SQLTable): class QualityMeasuresStgObservation(SQLTable):
@@ -796,7 +796,7 @@ class QualityMeasuresStgObservation(SQLTable):
normalized_code_type: str | None = None normalized_code_type: str | None = None
normalized_code: str | None = None normalized_code: str | None = None
normalized_description: str | None = None normalized_description: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresStgPatient(SQLTable): class QualityMeasuresStgPatient(SQLTable):
@@ -809,7 +809,7 @@ class QualityMeasuresStgPatient(SQLTable):
sex: str | None = None sex: str | None = None
birth_date: date | None = None birth_date: date | None = None
death_date: date | None = None death_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresStgPharmacyClaim(SQLTable): class QualityMeasuresStgPharmacyClaim(SQLTable):
@@ -823,7 +823,7 @@ class QualityMeasuresStgPharmacyClaim(SQLTable):
ndc_code: str | None = None ndc_code: str | None = None
days_supply: int | None = None days_supply: int | None = None
paid_date: date | None = None paid_date: date | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresStgProcedure(SQLTable): class QualityMeasuresStgProcedure(SQLTable):
@@ -844,7 +844,7 @@ class QualityMeasuresStgProcedure(SQLTable):
modifier_3: str | None = None modifier_3: str | None = None
modifier_4: str | None = None modifier_4: str | None = None
modifier_5: str | None = None modifier_5: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresValueSetCodes(SQLTable): class QualityMeasuresValueSetCodes(SQLTable):
@@ -899,7 +899,7 @@ class QualityMeasuresSummaryCounts(SQLTable):
numerator_sum: int | None = None numerator_sum: int | None = None
exclusion_sum: int | None = None exclusion_sum: int | None = None
performance_rate: Decimal | None = None performance_rate: Decimal | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresSummaryLong(SQLTable): class QualityMeasuresSummaryLong(SQLTable):
@@ -922,7 +922,7 @@ class QualityMeasuresSummaryLong(SQLTable):
measure_id: str | None = None measure_id: str | None = None
measure_name: str | None = None measure_name: str | None = None
measure_version: str | None = None measure_version: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class QualityMeasuresSummaryWide(SQLTable): class QualityMeasuresSummaryWide(SQLTable):
@@ -939,4 +939,4 @@ class QualityMeasuresSummaryWide(SQLTable):
cqm_438: int | None = None cqm_438: int | None = None
nqf_0420: int | None = None nqf_0420: int | None = None
supd: int | None = None supd: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None

View File

@@ -24,7 +24,7 @@ class ReadmissionsIntEncounter(SQLTable):
primary_diagnosis_code: str | None = None primary_diagnosis_code: str | None = None
encounter_source_type: str | None = None encounter_source_type: str | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ReadmissionsIntEncounterDataQuality(SQLTable): class ReadmissionsIntEncounterDataQuality(SQLTable):
@@ -47,7 +47,7 @@ class ReadmissionsIntEncounterDataQuality(SQLTable):
overlaps_with_another_encounter_flag: int | None = None overlaps_with_another_encounter_flag: int | None = None
missing_drg_flag: int | None = None missing_drg_flag: int | None = None
invalid_drg_flag: int | None = None invalid_drg_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ReadmissionsIntEncounterOverlap(SQLTable): class ReadmissionsIntEncounterOverlap(SQLTable):
@@ -78,7 +78,7 @@ class ReadmissionsIntEncounterSpecialtyCohort(SQLTable):
encounter_id: str | None = None encounter_id: str | None = None
specialty_cohort: str | None = None specialty_cohort: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ReadmissionsIntEncounterWithCcs(SQLTable): class ReadmissionsIntEncounterWithCcs(SQLTable):
@@ -99,7 +99,7 @@ class ReadmissionsIntEncounterWithCcs(SQLTable):
primary_diagnosis_code: str | None = None primary_diagnosis_code: str | None = None
valid_primary_diagnosis_code_flag: int | None = None valid_primary_diagnosis_code_flag: int | None = None
ccs_diagnosis_category: str | None = None ccs_diagnosis_category: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ReadmissionsIntExclusion(SQLTable): class ReadmissionsIntExclusion(SQLTable):
@@ -109,7 +109,7 @@ class ReadmissionsIntExclusion(SQLTable):
__tablename__ = "_int_exclusion" __tablename__ = "_int_exclusion"
encounter_id: str | None = None encounter_id: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ReadmissionsIntIndexAdmission(SQLTable): class ReadmissionsIntIndexAdmission(SQLTable):
@@ -119,7 +119,7 @@ class ReadmissionsIntIndexAdmission(SQLTable):
__tablename__ = "_int_index_admission" __tablename__ = "_int_index_admission"
encounter_id: str | None = None encounter_id: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ReadmissionsIntIndexDischargeRequirement(SQLTable): class ReadmissionsIntIndexDischargeRequirement(SQLTable):
@@ -129,7 +129,7 @@ class ReadmissionsIntIndexDischargeRequirement(SQLTable):
__tablename__ = "_int_index_discharge_requirement" __tablename__ = "_int_index_discharge_requirement"
encounter_id: str | None = None encounter_id: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ReadmissionsIntIndexTimeRequirement(SQLTable): class ReadmissionsIntIndexTimeRequirement(SQLTable):
@@ -139,7 +139,7 @@ class ReadmissionsIntIndexTimeRequirement(SQLTable):
__tablename__ = "_int_index_time_requirement" __tablename__ = "_int_index_time_requirement"
encounter_id: str | None = None encounter_id: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ReadmissionsIntPlannedEncounter(SQLTable): class ReadmissionsIntPlannedEncounter(SQLTable):
@@ -149,7 +149,7 @@ class ReadmissionsIntPlannedEncounter(SQLTable):
__tablename__ = "_int_planned_encounter" __tablename__ = "_int_planned_encounter"
encounter_id: str | None = None encounter_id: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ReadmissionsIntProcedureCcs(SQLTable): class ReadmissionsIntProcedureCcs(SQLTable):
@@ -162,7 +162,7 @@ class ReadmissionsIntProcedureCcs(SQLTable):
procedure_code: str | None = None procedure_code: str | None = None
valid_icd_10_pcs_flag: int | None = None valid_icd_10_pcs_flag: int | None = None
ccs_procedure_category: str | None = None ccs_procedure_category: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ReadmissionsIntReadmissionCrude(SQLTable): class ReadmissionsIntReadmissionCrude(SQLTable):
@@ -178,7 +178,7 @@ class ReadmissionsIntReadmissionCrude(SQLTable):
had_readmission_flag: int | None = None had_readmission_flag: int | None = None
days_to_readmit: int | None = None days_to_readmit: int | None = None
readmit_30_flag: int | None = None readmit_30_flag: int | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ReadmissionsValueSetAcuteDiagnosisCcs(SQLTable): class ReadmissionsValueSetAcuteDiagnosisCcs(SQLTable):
@@ -334,7 +334,7 @@ class ReadmissionsEncounterAugmented(SQLTable):
missing_drg_flag: int | None = None missing_drg_flag: int | None = None
invalid_drg_flag: int | None = None invalid_drg_flag: int | None = None
data_source: str | None = None data_source: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None
class ReadmissionsReadmissionSummary(SQLTable): class ReadmissionsReadmissionSummary(SQLTable):
@@ -375,4 +375,4 @@ class ReadmissionsReadmissionSummary(SQLTable):
readmission_specialty_cohort: str | None = None readmission_specialty_cohort: str | None = None
readmission_died_flag: int | None = None readmission_died_flag: int | None = None
readmission_diagnosis_ccs: str | None = None readmission_diagnosis_ccs: str | None = None
pipeline_last_run: datetime | None = None last_run: datetime | None = None

65
src/api/routes/lineage.py Normal file
View File

@@ -0,0 +1,65 @@
"""Lineage endpoints — table and column dependency graph."""
from __future__ import annotations
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
router = APIRouter(prefix="/lineage", tags=["lineage"])
class LineageResponse(BaseModel):
tables: list[str]
edges: dict[str, list[str]]
column_sources: dict[str, dict[str, str]]
class TableLineageResponse(BaseModel):
table: str
inputs: list[str]
column_sources: dict[str, str]
@router.get("", response_model=LineageResponse)
def get_lineage() -> LineageResponse:
"""Return the full table-level lineage graph."""
from aco.lake.lineage import build_lineage
graph = build_lineage()
data = graph.to_dict()
return LineageResponse(**data)
@router.get("/export/mermaid")
def export_mermaid() -> dict[str, str]:
"""Export lineage as Mermaid flowchart."""
from aco.lake.lineage import build_lineage
graph = build_lineage()
return {"format": "mermaid", "content": graph.to_mermaid()}
@router.get("/export/dot")
def export_dot() -> dict[str, str]:
"""Export lineage as DOT graph."""
from aco.lake.lineage import build_lineage
graph = build_lineage()
return {"format": "dot", "content": graph.to_dot()}
@router.get("/{table_ref:path}", response_model=TableLineageResponse)
def get_table_lineage(table_ref: str) -> TableLineageResponse:
"""Return lineage for a specific table."""
from aco.lake.lineage import build_lineage
graph = build_lineage()
if table_ref not in graph.table_edges:
raise HTTPException(status_code=404, detail=f"Table '{table_ref}' not found.")
return TableLineageResponse(
table=table_ref,
inputs=graph.table_deps(table_ref),
column_sources=graph.column_sources.get(table_ref, {}),
)

View File

@@ -11,7 +11,7 @@ from __future__ import annotations
from fastapi import FastAPI from fastapi import FastAPI
from api.routes import auth, bib, health, pipelines, schema from api.routes import auth, bib, health, lineage, pipelines, schema
app = FastAPI( app = FastAPI(
title="stack", title="stack",
@@ -24,3 +24,4 @@ app.include_router(health.router)
app.include_router(pipelines.router) app.include_router(pipelines.router)
app.include_router(bib.router) app.include_router(bib.router)
app.include_router(schema.router) app.include_router(schema.router)
app.include_router(lineage.router)

View File

@@ -8,17 +8,50 @@ app = typer.Typer(no_args_is_help=True)
@app.command() @app.command()
def sync() -> None: def sync(
dry_run: bool = typer.Option(False, "--dry-run", help="Report without applying."),
) -> None:
"""Apply col: tags as DuckDB column comments.""" """Apply col: tags as DuckDB column comments."""
typer.echo("bib sync [stub]") import duckdb
from bib import connect
from bib.meta import apply_column_comments, collect_column_comments
from conf import path
store = connect()
comments = collect_column_comments(store)
if not comments:
typer.echo("No col: tags found. Run seed_col_tags.py first.")
return
if dry_run:
for ref, desc in sorted(comments.items()):
typer.echo(f" {ref} = {desc}")
typer.echo(f"Would apply {len(comments)} column comments.")
return
con = duckdb.connect(str(path("db.aco")), read_only=False)
stmts = apply_column_comments(con, store)
con.close()
typer.echo(f"Applied {len(stmts)} column comments.")
@app.command() @app.command()
def tag( def tag(
pattern: str = typer.Argument("", help="Tag pattern to search."), pattern: str = typer.Argument("", help="Tag namespace or pattern to filter."),
) -> None: ) -> None:
"""List or search bibliography tags.""" """List or search bibliography tags."""
typer.echo(f"bib tag: pattern={pattern!r} [stub]") from bib import connect
store = connect()
tags = store.list_tags(namespace=pattern)
for t in tags:
typer.echo(f" {t['name']} ({t['count']} items)")
typer.echo(f"{len(tags)} tags found.")
@app.command() @app.command()
@@ -26,4 +59,15 @@ def query(
term: str = typer.Argument(help="Search term."), term: str = typer.Argument(help="Search term."),
) -> None: ) -> None:
"""Search the bibliography store.""" """Search the bibliography store."""
typer.echo(f"bib query: term={term!r} [stub]") from bib import connect
store = connect()
items = store.list_items(query=term)
for item in items[:20]:
tags_str = ", ".join(item.tags[:3]) if item.tags else ""
typer.echo(f" {item.key}: {item.title[:60]} [{tags_str}]")
if len(items) > 20:
typer.echo(f" ... and {len(items) - 20} more")
typer.echo(f"{len(items)} items found.")

View File

@@ -8,6 +8,53 @@ app = typer.Typer(no_args_is_help=True)
@app.command() @app.command()
def models() -> None: def models(
sync_first: bool = typer.Option(
True, "--sync/--no-sync", help="Run bib sync before generating."
),
) -> None:
"""Regenerate Pydantic table models from DuckDB schemas.""" """Regenerate Pydantic table models from DuckDB schemas."""
typer.echo("generate models [stub]") from pathlib import Path
import duckdb
from conf import cfg, path
if sync_first:
typer.echo("Syncing column comments from bib store...")
from bib import connect
from bib.meta import apply_column_comments, collect_column_comments
store = connect()
comments = collect_column_comments(store)
if comments:
con = duckdb.connect(str(path("db.aco")), read_only=False)
stmts = apply_column_comments(con, store)
con.close()
typer.echo(f" Applied {len(stmts)} column comments.")
from dev.scripts.generate_models import (
generate_schema_module,
get_schemas,
get_tables,
)
db_path = str(path("db.aco"))
out_dir = Path(str(path("generate.table_out")))
base_import = cfg.generate.base_import
con = duckdb.connect(db_path, read_only=True)
schemas = get_schemas(con)
total_tables = 0
for schema in schemas:
safe_name = schema.replace("-", "_")
module_path = out_dir / f"{safe_name}.py"
code = generate_schema_module(con, schema, base_import)
module_path.write_text(code)
table_count = len(get_tables(con, schema))
total_tables += table_count
typer.echo(f" {module_path.name} ({table_count} tables)")
con.close()
typer.echo(f"Generated {len(schemas)} modules, {total_tables} tables.")

View File

@@ -131,3 +131,38 @@ class TestSchema:
def test_missing_table(self, client) -> None: def test_missing_table(self, client) -> None:
r = client.get("/schema/nonexistent_table") r = client.get("/schema/nonexistent_table")
assert r.status_code == 404 assert r.status_code == 404
class TestLineage:
def test_full_graph(self, client) -> None:
r = client.get("/lineage")
assert r.status_code == 200
data = r.json()
assert "tables" in data
assert "edges" in data
assert len(data["tables"]) > 0
def test_table_lineage(self, client) -> None:
r = client.get("/lineage/readmissions._int_encounter")
assert r.status_code == 200
data = r.json()
assert data["table"] == "readmissions._int_encounter"
assert "inputs" in data
def test_table_not_found(self, client) -> None:
r = client.get("/lineage/nonexistent.table")
assert r.status_code == 404
def test_export_mermaid(self, client) -> None:
r = client.get("/lineage/export/mermaid")
assert r.status_code == 200
data = r.json()
assert data["format"] == "mermaid"
assert "graph LR" in data["content"]
def test_export_dot(self, client) -> None:
r = client.get("/lineage/export/dot")
assert r.status_code == 200
data = r.json()
assert data["format"] == "dot"
assert "digraph" in data["content"]

View File

@@ -59,27 +59,27 @@ class TestLoad:
class TestGenerate: class TestGenerate:
def test_generate_models(self) -> None: def test_generate_models_help(self) -> None:
result = runner.invoke(app, ["generate", "models"]) result = runner.invoke(app, ["generate", "models", "--help"])
assert result.exit_code == 0 assert result.exit_code == 0
assert "generate models" in result.output assert "sync" in result.output
class TestBib: class TestBib:
def test_bib_sync(self) -> None: def test_bib_sync_help(self) -> None:
result = runner.invoke(app, ["bib", "sync"]) result = runner.invoke(app, ["bib", "sync", "--help"])
assert result.exit_code == 0 assert result.exit_code == 0
assert "bib sync" in result.output assert "dry-run" in result.output
def test_bib_tag(self) -> None: def test_bib_tag(self) -> None:
result = runner.invoke(app, ["bib", "tag"]) result = runner.invoke(app, ["bib", "tag"])
assert result.exit_code == 0 assert result.exit_code == 0
assert "bib tag" in result.output assert "tags found" in result.output
def test_bib_query(self) -> None: def test_bib_query(self) -> None:
result = runner.invoke(app, ["bib", "query", "pfs"]) result = runner.invoke(app, ["bib", "query", "pfs"])
assert result.exit_code == 0 assert result.exit_code == 0
assert "bib query" in result.output assert "items found" in result.output
class TestLake: class TestLake: