Skip to content

Instantly share code, notes, and snippets.

@jmeirow
Created September 12, 2012 19:29
Show Gist options
  • Save jmeirow/3709299 to your computer and use it in GitHub Desktop.
Save jmeirow/3709299 to your computer and use it in GitHub Desktop.
Text parsing and mapping in Ruby
# the big picture... what data we're getting from where and its destination
@data_binding_hash = {
:@pSMSR_GRGR_ID=> [ :GRGR_ID, 'facets_field', DataType.STRING, DataSource.FACETS, '@pSMSR_GRGR_ID=""' , nil ],
:@pSMSR_SBSB_ID=> [ :SBSB_ID, 'facets_field', DataType.STRING, DataSource.FACETS, '@pSMSR_SBSB_ID=""' , nil ],
:@pSMSR_REL=> [ :patient_rel_code, 'rel_code', DataType.STRING, DataSource.LOOKUP, '@pSMSR_REL=""' , nil ],
:@pSMSR_SSN=> [ :MEME_SSN, 'facets_field', DataType.STRING, DataSource.FACETS, '@pSMSR_SSN=""' , nil ],
:@pSMSR_LNAME=> [ :SBSB_LAST_NAME, 'facets_field', DataType.STRING, DataSource.FACETS, '@pSMSR_LNAME=""' , nil ],
:@pSMSR_FNAME=> [ :SBSB_FIRST_NAME, 'facets_field', DataType.STRING, DataSource.FACETS, '@pSMSR_FNAME=""' , nil ],
:@pSMSR_DOB=> [ :SBSB_BIRTH_DT, 'facets_field', DataType.DATE, DataSource.FACETS, '@pSMSR_DOB=""' , nil ],
:@pUMUM_UPDATE_CD=> [ :case_update_flag, 'update_code', DataType.STRING, DataSource.LOOKUP, '@pUMUM_UPDATE_CD=""' , nil ],
:@pUMUM_REF_ID=> [ :case_control_number, 'ref_id' , DataType.STRING, DataSource.FILE, '@pUMUM_REF_ID=""' , nil ],
:@pGRGR_ID=> [ :GRGR_ID, 'facets_field', DataType.STRING, DataSource.FACETS, '@pGRGR_ID=""' , nil ],
:@pSBSB_ID=> [ :SBSB_ID, 'facets_field', DataType.STRING, DataSource.FACETS, '@pSBSB_ID=""' , nil ],
:@pMEME_REL=> [ :patient_rel_code, 'rel_code', DataType.STRING, DataSource.LOOKUP, '@pMEME_REL=""' , nil ],
:@pMEME_ID_NAME=> [ :MEME_ID_NAME, 'facets_field', DataType.STRING, DataSource.FACETS, '@pMEME_ID_NAME=""' , nil ],
:@pUMUM_CREATE_USID=> [ :facets, 'static_field', DataType.STRING, DataSource.STATIC, '@pUMUM_CREATE_USID=""' , nil ],
:@pPVSR_IND=> [ :PRPR_ENTITY, 'facets_field', DataType.STRING, DataSource.FACETS, '@pPVSR_IND=""' , nil ],
:@pPVSR_MCTN_ID=> [ :MCTN_ID, 'facets_field', DataType.STRING, DataSource.FACETS, '@pPVSR_MCTN_ID=""' , nil ],
:@pPVSR_NAME=> [ :PRPR_NAME, 'facets_field', DataType.STRING, DataSource.FACETS, '@pPVSR_NAME=""' , nil ],
:@pUMIN_IDCD_ID_PRI=> [ :case_diagnosis_code_1, 'diag_code', DataType.STRING, DataSource.FILE, '@pUMIN_IDCD_ID_PRI=""' , nil ],
:@pUMIN_AUTH_IND=> [ :auth_ind, 'static_field', DataType.STRING, DataSource.STATIC, '@pUMIN_AUTH_IND=""' , nil ],
:@pUMIN_REF_IND=> [ :ref_ind, 'static_field', DataType.STRING, DataSource.STATIC, '@pUMIN_REF_IND=""' , nil ],
:@pUMIN_TYPE=> [ :umin_type, 'static_field', DataType.STRING, DataSource.STATIC, '@pUMIN_TYPE=""' , nil ],
:@pUMIN_INPUT_USID=> [ :batch, 'static_field', DataType.STRING, DataSource.STATIC, '@pUMIN_INPUT_USID=""' , nil ],
:@pUMIN_INPUT_DT=> [ :case_received_date, 'file_field', DataType.DATE, DataSource.FILE, '@pUMIN_INPUT_DT=""' , nil ],
:@pUMIN_RECD_DT=> [ :case_received_date, 'file_field', DataType.DATE, DataSource.FILE , '@pUMIN_RECD_DT=""' , nil ],
:@pUMIN_PRPR_ID_FAC=> [ :PRPR_ID, 'facets_field', DataType.STRING, DataSource.FACETS, '@pUMIN_PRPR_ID_FAC=""' , nil ],
:@pUMIN_PRPR_ID_REQ=> [ :PRPR_ID, 'facets_field', DataType.STRING, DataSource.FACETS, '@pUMIN_PRPR_ID_REQ=""' , nil ],
:@pUMIN_CAT_ADM=> [ :cat_curr, 'static_field', DataType.STRING, DataSource.STATIC, '@pUMIN_CAT_ADM=""' , nil ],
:@pUMIN_CAT_CURR=> [ :cat_curr, 'static_field', DataType.STRING, DataSource.STATIC, '@pUMIN_CAT_CURR=""' , nil ],
:@pUMIN_PSCD_ID_REQ=> [ :case_location_code, 'file_field', DataType.STRING, DataSource.FILE, '@pUMIN_PSCD_ID_REQ=""' , nil ],
:@pUMIN_PSCD_ID_AUTH=> [ :case_procedure_code_1, 'file_field', DataType.STRING, DataSource.FILE, '@pUMIN_PSCD_ID_AUTH=""' , nil ],
:@pUMIN_PRPR_ID_ADM=> [ :PRPR_ID, 'facets_field', DataType.STRING, DataSource.FACETS, '@pUMIN_PRPR_ID_ADM=""' , nil ],
:@pUMIN_IPCD_ID_PRI=> [ :case_procedure_code_1, 'file_field', DataType.STRING, DataSource.FILE , '@pUMIN_IPCD_ID_PRI=""' , nil ],
:@pUMIN_LOS_REQ_TOT=> [ :case_total_los_approved, 'file_field', DataType.NUMERIC, DataSource.FILE, '@pUMIN_LOS_REQ_TOT=""' , nil ],
:@pUMIN_LOS_AUTH_TOT=> [ :case_total_los_approved, 'file_field', DataType.NUMERIC, DataSource.FILE , '@pUMIN_LOS_AUTH_TOT=""' , nil ],
:@pUMIN_TOT_ALW_DAYS=> [ :case_total_los_approved, 'file_field', DataType.NUMERIC, DataSource.FILE, '@pUMIN_TOT_ALW_DAYS=""' , nil ],
:@pUMIN_AUTH_ADM_DT=> [ :case_expected_service_date, 'file_field', DataType.DATE, DataSource.FILE, '@pUMIN_AUTH_ADM_DT=""' , nil ],
:@pUMIN_ACT_ADM_DT=> [ :case_actual_service_date, 'file_field', DataType.DATE, DataSource.FILE, '@pUMIN_ACT_ADM_DT=""' , nil ],
:@pUMIN_DC_EXP_DTM=> [ :case_expected_service_date, 'file_field', DataType.DATE, DataSource.FILE, '@pUMIN_DC_EXP_DTM=""' , nil ],
:@pUMIN_DC_DTM=> [ DataSource.UNKNOWN, 'unknown_data', DataType.STRING, DataSource.UNKNOWN, '@pUMIN_DC_DTM=""' , nil ],
:@pUMIR_REVIEW_DT=> [ DataSource.UNKNOWN, 'unknown_data', DataType.DATE , DataSource.UNKNOWN, '@pUMIR_REVIEW_DT=""' , nil ],
:@pUMIR_CAT_CURR=> [ :cat_curr , 'static_field', DataType.STRING, DataSource.STATIC, '@pUMIR_CAT_CURR=""' , nil ],
:@pUMIR_LOS_REQ_TOT=> [ DataSource.UNKNOWN, 'unknown_data', DataType.NUMERIC, DataSource.UNKNOWN, '@pUMIR_LOS_REQ_TOT=""' , nil ],
:@pUMIR_LOS_AUTH_TOT=> [ DataSource.UNKNOWN, 'unknown_data', DataType.NUMERIC, DataSource.UNKNOWN, '@pUMIR_LOS_AUTH_TOT=""' , nil ],
:@pUMLS_LOS_REQ=> [ :case_total_length_of_stay, 'file_field', DataType.NUMERIC, DataSource.FILE, '@pUMLS_LOS_REQ=""' , nil ],
:@pUMLS_LOS_AUTH=> [ :case_total_los_approved, 'file_field', DataType.NUMERIC, DataSource.FILE , '@pUMLS_LOS_AUTH=""' , nil ],
:@pUMLS_ROOM_TYPE=> [ DataSource.UNKNOWN, 'unknown_data', DataType.STRING, DataSource.UNKNOWN, '@pUMLS_ROOM_TYPE=""' , nil ],
:@pUMLS_CHARGE=> [ DataSource.UNKNOWN, 'unknown_data', DataType.STRING, DataSource.UNKNOWN, '@pUMLS_CHARGE=""' , nil ],
:@pEXCD_ID=> [ DataSource.UNKNOWN, 'unknown_data', DataType.STRING, DataSource.UNKNOWN, '@pEXCD_ID=""' , nil ],
:@pUMLS_USID_RDNY=> [ :facets , 'static_field', DataType.STRING, DataSource.STATIC, '@pUMLS_USID_RDNY=""' , nil ],
:@pUMLS_PAID_DAYS=> [ :case_total_length_of_stay, 'file_field', DataType.NUMERIC, DataSource.FILE, '@pUMLS_PAID_DAYS=""' , nil ],
:@pUMLS_ALLOW_DAYS=> [ :case_total_length_of_stay, 'file_field', DataType.NUMERIC, DataSource.FILE , '@pUMLS_ALLOW_DAYS=""' , nil ],
:@pUMIN_REQ_ADM_DT=> [ :case_expected_service_date, 'file_field', DataType.DATE, DataSource.FILE, '@pUMIN_REQ_ADM_DT=""' , nil ],
:@pUMUM_USID_PRI=> [ :facets, 'static_field', DataType.STRING, DataSource.STATIC, '@pUMUM_USID_PRI=""' , nil ],
:@pUMSV_UPDATE_CD=> [ :case_update_flag, 'update_code', DataType.STRING, DataSource.LOOKUP, '@pUMSV_UPDATE_CD=""' , nil ],
:@pUMSV_AUTH_IND=> [ :auth_ind, 'static_field', DataType.STRING, DataSource.STATIC, '@pUMSV_AUTH_IND=""' , nil ],
:@pUMSV_TYPE=> [ :umin_type, 'static_field', DataType.STRING, DataSource.STATIC, '@pUMSV_TYPE=""' , nil ],
:@pUMSV_CAT=> [ :cat_curr, 'static_field', DataType.STRING, DataSource.STATIC, '@pUMSV_CAT=""' , nil ],
:@pUMSV_INPUT_USID=> [ :erisco, 'static_field', DataType.STRING, DataSource.STATIC, '@pUMSV_INPUT_USID=""' , nil ],
:@pUMSV_INPUT_DT=> [ :today, 'static_field', DataType.DATE, DataSource.STATIC, '@pUMSV_INPUT_DT=""' , nil ],
:@pUMSV_RECD_DT=> [ :today, 'static_field', DataType.DATE, DataSource.STATIC, '@pUMSV_RECD_DT=""' , nil ],
:@pUMSV_FROM_DT=> [ :case_actual_service_date, 'file_field', DataType.DATE, DataSource.FILE, '@pUMSV_FROM_DT=""' , nil ],
:@pUMSV_TO_DT=> [ :case_discharge_date, 'file_field', DataType.DATE, DataSource.FILE, '@pUMSV_TO_DT=""' , nil ],
:@pUMSV_IDCD_ID_PRI=> [ :case_diagnosis_code_1, 'file_field', DataType.STRING, DataSource.FILE, '@pUMSV_IDCD_ID_PRI=""' , nil ],
:@pUMSV_PSCD_ID_REQ=> [ :case_procedure_code_1, 'file_field', DataType.STRING, DataSource.FILE, '@pUMSV_PSCD_ID_REQ=""' , nil ],
:@pUMSV_PSCD_ID_AUTH=> [ :case_procedure_code_1, 'file_field', DataType.STRING, DataSource.FILE, '@pUMSV_PSCD_ID_AUTH=""' , nil ],
:@pUMSV_PR_NW_STS=> [ :network_indicator, 'static_field', DataType.STRING, DataSource.STATIC, '@pUMSV_PR_NW_STS=""' , nil ],
:@pIPCD_ID=> [ :case_diagnosis_code_1, 'file_field', DataType.STRING, DataSource.FILE, '@pIPCD_ID=> ""' , nil ],
:@pUMSV_UNITS_REQ=> [ :case_total_length_of_stay, 'file_field', DataType.NUMERIC, DataSource.FILE, '@pUMSV_UNITS_REQ=""' , nil ],
:@pUMSV_UNITS_AUTH=> [ :case_total_los_approved, 'file_field', DataType.NUMERIC, DataSource.FILE, '@pUMSV_UNITS_AUTH=""' , nil ],
:@pUMVT_STS=> [ :facets, 'static_field', DataType.STRING, DataSource.STATIC, '@pUMVT_STS=""' , nil ],
:@pUMSV_UNITS_ALLOW=> [ :case_total_los_approved, 'file_field', DataType.NUMERIC, DataSource.FILE, '@pUMSV_UNITS_ALLOW=""' , nil ],
:@rec_set_to_create=> [ :location, 'file_field', DataType.STRING, DataSource.FILE, '@rec_set_to_create=""' , nil ]
}
@jmeirow
Copy link
Author

jmeirow commented Sep 12, 2012

The second field of the each array element (a string) is the method name that is invoked via 'send' to process that field.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment