66
77import psycopg
88
9+ from constants import (
10+ IDR_BENE_COMBINED_DUAL_TABLE ,
11+ IDR_BENE_ENTITLEMENT_REASON_TABLE ,
12+ IDR_BENE_ENTITLEMENT_TABLE ,
13+ IDR_BENE_HISTORY_TABLE ,
14+ IDR_BENE_LOW_INCOME_SUBSIDY_TABLE ,
15+ IDR_BENE_MA_PART_D_RX_TABLE ,
16+ IDR_BENE_MA_PART_D_TABLE ,
17+ IDR_BENE_MBI_TABLE ,
18+ IDR_BENE_STATUS_TABLE ,
19+ IDR_BENE_THIRD_PARTY_TABLE ,
20+ IDR_BENE_XREF_TABLE ,
21+ IDR_CLAIM_ANSI_SIGNATURE_TABLE ,
22+ IDR_CLAIM_DATE_SIGNATURE_TABLE ,
23+ IDR_CLAIM_DOCUMENTATION_TABLE ,
24+ IDR_CLAIM_FISS_TABLE ,
25+ IDR_CLAIM_INSTITUTIONAL_TABLE ,
26+ IDR_CLAIM_LINE_DOCUMENTATION_TABLE ,
27+ IDR_CLAIM_LINE_INSTITUTIONAL_TABLE ,
28+ IDR_CLAIM_LINE_PROFESSIONAL_TABLE ,
29+ IDR_CLAIM_LINE_RX_TABLE ,
30+ IDR_CLAIM_LINE_TABLE ,
31+ IDR_CLAIM_LOCATION_HISTORY_TABLE ,
32+ IDR_CLAIM_PROD_TABLE ,
33+ IDR_CLAIM_PROFESSIONAL_TABLE ,
34+ IDR_CLAIM_RELATED_CONDITION_SIGNATURE_TABLE ,
35+ IDR_CLAIM_TABLE ,
36+ IDR_CLAIM_VAL_TABLE ,
37+ IDR_CONTRACT_PBP_CONTACT_TABLE ,
38+ IDR_CONTRACT_PBP_NUM_TABLE ,
39+ IDR_PROVIDER_HISTORY_TABLE ,
40+ )
941from loader import get_connection_string
1042from logger_config import configure_logger
1143from model .base_model import LoadMode
1244
1345logger = logging .getLogger (__name__ )
1446
1547tables = [
16- {"csv_name" : "SYNTHETIC_BENE_HSTRY.csv" , "table" : "v2_mdcr_bene_hstry" },
17- {"csv_name" : "SYNTHETIC_BENE_MBI_ID.csv" , "table" : "v2_mdcr_bene_mbi_id" },
18- {"csv_name" : "SYNTHETIC_BENE_XREF.csv" , "table" : "v2_mdcr_bene_xref" },
19- {"csv_name" : "SYNTHETIC_BENE_MDCR_ENTLMT.csv" , "table" : "v2_mdcr_bene_mdcr_entlmt" },
48+ {"csv_name" : "SYNTHETIC_BENE_HSTRY.csv" , "table" : IDR_BENE_HISTORY_TABLE },
49+ {"csv_name" : "SYNTHETIC_BENE_MBI_ID.csv" , "table" : IDR_BENE_MBI_TABLE },
50+ {"csv_name" : "SYNTHETIC_BENE_XREF.csv" , "table" : IDR_BENE_XREF_TABLE },
51+ {"csv_name" : "SYNTHETIC_BENE_MDCR_ENTLMT.csv" , "table" : IDR_BENE_ENTITLEMENT_TABLE },
2052 {
2153 "csv_name" : "SYNTHETIC_BENE_MDCR_ENTLMT_RSN.csv" ,
22- "table" : "v2_mdcr_bene_mdcr_entlmt_rsn" ,
54+ "table" : IDR_BENE_ENTITLEMENT_REASON_TABLE ,
2355 },
24- {"csv_name" : "SYNTHETIC_BENE_MDCR_STUS.csv" , "table" : "v2_mdcr_bene_mdcr_stus" },
25- {"csv_name" : "SYNTHETIC_BENE_TP.csv" , "table" : "v2_mdcr_bene_tp" },
26- {"csv_name" : "SYNTHETIC_BENE_CMBND_DUAL_MDCR.csv" , "table" : "v2_mdcr_bene_cmbnd_dual_mdcr" },
27- {"csv_name" : "SYNTHETIC_BENE_LIS.csv" , "table" : "v2_mdcr_bene_lis" },
28- {"csv_name" : "SYNTHETIC_BENE_MAPD_ENRLMT.csv" , "table" : "v2_mdcr_bene_mapd_enrlmt" },
29- {"csv_name" : "SYNTHETIC_BENE_MAPD_ENRLMT_RX.csv" , "table" : "v2_mdcr_bene_mapd_enrlmt_rx" },
30- {"csv_name" : "SYNTHETIC_CLM.csv" , "table" : "v2_mdcr_clm" },
31- {"csv_name" : "SYNTHETIC_CLM_INSTNL.csv" , "table" : "v2_mdcr_clm_instnl" },
32- {"csv_name" : "SYNTHETIC_CLM_PRFNL.csv" , "table" : "v2_mdcr_clm_prfnl" },
33- {"csv_name" : "SYNTHETIC_CLM_DCMTN.csv" , "table" : "v2_mdcr_clm_dcmtn" },
34- {"csv_name" : "SYNTHETIC_CLM_LINE_DCMTN.csv" , "table" : "v2_mdcr_clm_line_dcmtn" },
35- {"csv_name" : "SYNTHETIC_CLM_DT_SGNTR.csv" , "table" : "v2_mdcr_clm_dt_sgntr" },
36- {"csv_name" : "SYNTHETIC_CLM_VAL.csv" , "table" : "v2_mdcr_clm_val" },
37- {"csv_name" : "SYNTHETIC_CLM_LINE.csv" , "table" : "v2_mdcr_clm_line" },
38- {"csv_name" : "SYNTHETIC_CLM_LINE_INSTNL.csv" , "table" : "v2_mdcr_clm_line_instnl" },
39- {"csv_name" : "SYNTHETIC_CLM_LINE_PRFNL.csv" , "table" : "v2_mdcr_clm_line_prfnl" },
40- {"csv_name" : "SYNTHETIC_CLM_ANSI_SGNTR.csv" , "table" : "v2_mdcr_clm_ansi_sgntr" },
41- {"csv_name" : "SYNTHETIC_CLM_PROD.csv" , "table" : "v2_mdcr_clm_prod" },
42- {"csv_name" : "SYNTHETIC_CLM_FISS.csv" , "table" : "v2_mdcr_clm_fiss" },
43- {"csv_name" : "SYNTHETIC_CLM_LINE_RX.csv" , "table" : "v2_mdcr_clm_line_rx" },
44- {"csv_name" : "SYNTHETIC_CLM_LCTN_HSTRY.csv" , "table" : "v2_mdcr_clm_lctn_hstry" },
45- {"csv_name" : "SYNTHETIC_CLM_RLT_COND_SGNTR_MBR.csv" , "table" : "v2_mdcr_clm_rlt_cond_sgntr_mbr" },
46- {"csv_name" : "SYNTHETIC_PRVDR_HSTRY.csv" , "table" : "v2_mdcr_prvdr_hstry" },
47- {"csv_name" : "SYNTHETIC_CNTRCT_PBP_NUM.csv" , "table" : "v2_mdcr_cntrct_pbp_num" },
48- {"csv_name" : "SYNTHETIC_CNTRCT_PBP_CNTCT.csv" , "table" : "v2_mdcr_cntrct_pbp_cntct" },
56+ {"csv_name" : "SYNTHETIC_BENE_MDCR_STUS.csv" , "table" : IDR_BENE_STATUS_TABLE },
57+ {"csv_name" : "SYNTHETIC_BENE_TP.csv" , "table" : IDR_BENE_THIRD_PARTY_TABLE },
58+ {"csv_name" : "SYNTHETIC_BENE_CMBND_DUAL_MDCR.csv" , "table" : IDR_BENE_COMBINED_DUAL_TABLE },
59+ {"csv_name" : "SYNTHETIC_BENE_LIS.csv" , "table" : IDR_BENE_LOW_INCOME_SUBSIDY_TABLE },
60+ {"csv_name" : "SYNTHETIC_BENE_MAPD_ENRLMT.csv" , "table" : IDR_BENE_MA_PART_D_TABLE },
61+ {"csv_name" : "SYNTHETIC_BENE_MAPD_ENRLMT_RX.csv" , "table" : IDR_BENE_MA_PART_D_RX_TABLE },
62+ {"csv_name" : "SYNTHETIC_CLM.csv" , "table" : IDR_CLAIM_TABLE },
63+ {"csv_name" : "SYNTHETIC_CLM_INSTNL.csv" , "table" : IDR_CLAIM_INSTITUTIONAL_TABLE },
64+ {"csv_name" : "SYNTHETIC_CLM_PRFNL.csv" , "table" : IDR_CLAIM_PROFESSIONAL_TABLE },
65+ {"csv_name" : "SYNTHETIC_CLM_DCMTN.csv" , "table" : IDR_CLAIM_DOCUMENTATION_TABLE },
66+ {"csv_name" : "SYNTHETIC_CLM_LINE_DCMTN.csv" , "table" : IDR_CLAIM_LINE_DOCUMENTATION_TABLE },
67+ {"csv_name" : "SYNTHETIC_CLM_DT_SGNTR.csv" , "table" : IDR_CLAIM_DATE_SIGNATURE_TABLE },
68+ {"csv_name" : "SYNTHETIC_CLM_VAL.csv" , "table" : IDR_CLAIM_VAL_TABLE },
69+ {"csv_name" : "SYNTHETIC_CLM_LINE.csv" , "table" : IDR_CLAIM_LINE_TABLE },
70+ {"csv_name" : "SYNTHETIC_CLM_LINE_INSTNL.csv" , "table" : IDR_CLAIM_LINE_INSTITUTIONAL_TABLE },
71+ {"csv_name" : "SYNTHETIC_CLM_LINE_PRFNL.csv" , "table" : IDR_CLAIM_LINE_PROFESSIONAL_TABLE },
72+ {"csv_name" : "SYNTHETIC_CLM_ANSI_SGNTR.csv" , "table" : IDR_CLAIM_ANSI_SIGNATURE_TABLE },
73+ {"csv_name" : "SYNTHETIC_CLM_PROD.csv" , "table" : IDR_CLAIM_PROD_TABLE },
74+ {"csv_name" : "SYNTHETIC_CLM_FISS.csv" , "table" : IDR_CLAIM_FISS_TABLE },
75+ {"csv_name" : "SYNTHETIC_CLM_LINE_RX.csv" , "table" : IDR_CLAIM_LINE_RX_TABLE },
76+ {"csv_name" : "SYNTHETIC_CLM_LCTN_HSTRY.csv" , "table" : IDR_CLAIM_LOCATION_HISTORY_TABLE },
77+ {
78+ "csv_name" : "SYNTHETIC_CLM_RLT_COND_SGNTR_MBR.csv" ,
79+ "table" : IDR_CLAIM_RELATED_CONDITION_SIGNATURE_TABLE ,
80+ },
81+ {"csv_name" : "SYNTHETIC_PRVDR_HSTRY.csv" , "table" : IDR_PROVIDER_HISTORY_TABLE },
82+ {"csv_name" : "SYNTHETIC_CNTRCT_PBP_NUM.csv" , "table" : IDR_CONTRACT_PBP_NUM_TABLE },
83+ {"csv_name" : "SYNTHETIC_CNTRCT_PBP_CNTCT.csv" , "table" : IDR_CONTRACT_PBP_CONTACT_TABLE },
4984]
5085
5186
@@ -54,16 +89,14 @@ def load_from_csv(conn: psycopg.Connection, src_folder: str) -> None:
5489 for table in tables :
5590 # Clear out any previous data
5691 sql_table = table ["table" ]
57- full_table = f"cms_vdm_view_mdcr_prd. { sql_table } "
58- cur .execute (f"TRUNCATE TABLE { full_table } " ) # type: ignore
92+
93+ cur .execute (f"TRUNCATE TABLE { sql_table } " ) # type: ignore
5994 file = table ["csv_name" ]
60- _load_file (cur , src_folder , file , sql_table , full_table )
95+ _load_file (cur , src_folder , file , sql_table )
6196 conn .commit ()
6297
6398
64- def _load_file (
65- cur : psycopg .Cursor , src_folder : str , file : str , sql_table : str , full_table : str
66- ) -> None :
99+ def _load_file (cur : psycopg .Cursor , src_folder : str , file : str , full_table : str ) -> None :
67100 path = Path (src_folder )
68101 # `glob` will return nothing for an invalid path so we'll explicitly make sure you supplied a
69102 # valid path
@@ -81,6 +114,7 @@ def _load_file(
81114
82115 # fetch the list of columns from the database and filter them out
83116 # so we don't get errors trying to insert extra columns
117+ sql_table = full_table .split ("." )[1 ]
84118 db_columns = cur .execute (
85119 t """
86120 SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS
0 commit comments