Got Monk?
Home Example Request Info NextGate

The Original Monk Code After running through Monk2J

;; source-event-path: monk_scripts/common/etds_star_adt_master.ssc
;; destination-event-path: monk_scripts/common/etd_lab_adt2.ssc
(define usercomment "")
(define version "3.1")
(define xlate-name "crs_star_lab_adt")
(define input-message-format-file-name "etds_star_adt_master.ssc")
(define output-message-format-file-name "etd_lab_adt2.ssc")
(load "etds_star_adt_master.ssc")
(load "etd_lab_adt2.ssc")
(define src-collapsed-nodes '(
"star_adt.MSH"
"star_adt.EVN"
"star_adt.PID"
"star_adt.PID.PID_2_patient_ID_external.CK"
"star_adt.PID.PID_3_patient_ID_internal.CK"
"star_adt.PID.PID_5_patient_name.PN"
"star_adt.PID.PID_9_patient_alias.PN"
"star_adt.PID.PID_11_patient_address.AD"
"star_adt.PID.PID_18_account_number.CK"
"star_adt.PID.PID_20_driver_lic_num.LI"
"star_adt.PID.PID_21_mothers_ID.CK"
"star_adt.PID.PID_27_veterans_military_status.CE"
"star_adt.PV1"
"star_adt.PV1.PV1_3_assigned_patient_location.PL"
"star_adt.PV1.PV1_6_prior_patient_location.PL"
"star_adt.PV1.PV1_7_attending_doctor.CN"
"star_adt.PV1.PV1_8_referring_doctor.CN"
"star_adt.PV1.PV1_9_consulting_doctor.CN"
"star_adt.PV1.PV1_11_temporary_location.PL"
"star_adt.PV1.PV1_17_admitting_doctor.CN"
"star_adt.PV1.PV1_42_pending_location.PL"
"star_adt.PV1.PV1_43_prior_temporary_location.PL"
"star_adt.PV1.PV1_50_alternate_visit_ID.CK"
"star_adt.PV2"
"star_adt.PV2.PV2_1_prior_pending_location.PL"
"star_adt.PV2.PV2_2_accommodation_code.CE"
"star_adt.PV2.PV2_3_admit_reason.CE"
"star_adt.PV2.PV2_4_transfer_reason.CE"
"star_adt.DG1"
"star_adt.DG1.DG1_7_major_diagnostic_category.CE"
"star_adt.DG1.DG1_11_outlier_type.CE"
"star_adt.DG1.DG1_16_diagnosing_clinician.CN"
"star_adt.PR1"
"star_adt.PR1.PR1_8_anesthesiologist.CN"
"star_adt.PR1.PR1_11_surgeon.CN"
"star_adt.PR2"
"star_adt.GT1"
"star_adt.GT1.GT1_1_set_ID"
"star_adt.GT1.GT1_2_guarantor_number.CK"
"star_adt.GT1.GT1_3_guarantor_name.PN"
"star_adt.GT1.GT1_4_guarantor_spouse_name.PN"
"star_adt.GT1.GT1_5_guarantor_address.AD"
"star_adt.GT1.GT1_17_guarantor_employer_address.AD"
"star_adt.plans"
"star_adt.plans.IN1"
"star_adt.plans.IN1.IN1_5_insurance_co_address.AD"
"star_adt.plans.IN1.IN1_6_insurance_co_contact_person.PN"
"star_adt.plans.IN1.IN1_16_name_of_insured.PN"
"star_adt.plans.IN1.IN1_19_insured_address.AD"
"star_adt.plans.IN1.IN1_30_verification_by.CN"
"star_adt.plans.IN1.IN1_42_insured_employment_status.CE"
"star_adt.plans.IN1.IN1_44_insured_employer_address.AD"
"star_adt.plans.IN2"
"star_adt.plans.IN2.IN2_3_insureds_employer_name.CN"
"star_adt.plans.ZMI"
"star_adt.NK1"
"star_adt.NK1.NK1_2_next_of_kin_name.PN"
"star_adt.NK1.NK1_3_next_of_kin_relationship.CE"
"star_adt.NK1.NK1_4_next_of_kin_address.AD"
"star_adt.MRG"
"star_adt.MRG.MRG_1_prior_patient_ID_internal.CK"
"star_adt.MRG.MRG_2_prior_alternate_patient_ID.CK"
"star_adt.MRG.MRG_3_prior_patient_account_number.CK"
"star_adt.PD1"
"star_adt.PRD"
"star_adt.ACC"
"star_adt.UB2"
"star_adt.ZM1"
"star_adt.ZM2"
"star_adt.ZM2.ZM2_27.AD"
"star_adt.ZED"
))
(define dest-collapsed-nodes '(
"lab_adt.MSH"
"lab_adt.EVN"
"lab_adt.PID"
"lab_adt.PID.PID_2_patient_ID_external.CK"
"lab_adt.PID.PID_3_patient_ID_internal.CK"
"lab_adt.PID.PID_5_patient_name.PN"
"lab_adt.PID.PID_9_patient_alias.PN"
"lab_adt.PID.PID_11_patient_address.AD"
"lab_adt.PID.PID_18_account_number.CK"
"lab_adt.PID.PID_20_driver_lic_num.LI"
"lab_adt.PID.PID_21_mothers_ID.CK"
"lab_adt.PID.PID_27_veterans_military_status.CE"
"lab_adt.PV1"
"lab_adt.PV1.PV1_3_assigned_patient_location.PL"
"lab_adt.PV1.PV1_6_prior_patient_location.PL"
"lab_adt.PV1.PV1_7_attending_doctor.CN"
"lab_adt.PV1.PV1_8_referring_doctor.CN"
"lab_adt.PV1.PV1_9_consulting_doctor.CN"
"lab_adt.PV1.PV1_11_temporary_location.PL"
"lab_adt.PV1.PV1_17_admitting_doctor.CN"
"lab_adt.PV1.PV1_42_pending_location.PL"
"lab_adt.PV1.PV1_43_prior_temporary_location.PL"
"lab_adt.PV1.PV1_50_alternate_visit_ID.CK"
"lab_adt.DG1"
"lab_adt.DG1.DG1_7_major_diagnostic_category.CE"
"lab_adt.DG1.DG1_11_outlier_type.CE"
"lab_adt.DG1.DG1_16_diagnosing_clinician.CN"
"lab_adt.PR1"
"lab_adt.PR1.PR1_8_anesthesiologist.CN"
"lab_adt.PR1.PR1_11_surgeon.CN"
"lab_adt.PR2"
"lab_adt.GT1"
"lab_adt.GT1.GT1_1_set_ID"
"lab_adt.GT1.GT1_2_guarantor_number.CK"
"lab_adt.GT1.GT1_3_guarantor_name.PN"
"lab_adt.GT1.GT1_4_guarantor_spouse_name.PN"
"lab_adt.GT1.GT1_5_guarantor_address.AD"
"lab_adt.GT1.GT1_17_guarantor_employer_address.AD"
"lab_adt.plans.IN1"
"lab_adt.plans.IN1.IN1_5_insurance_co_address.AD"
"lab_adt.plans.IN1.IN1_6_insurance_co_contact_person.PN"
"lab_adt.plans.IN1.IN1_16_name_of_insured.PN"
"lab_adt.plans.IN1.IN1_19_insured_address.AD"
"lab_adt.plans.IN1.IN1_30_verification_by.CN"
"lab_adt.plans.IN1.IN1_42_insured_employment_status.CE"
"lab_adt.plans.IN1.IN1_44_insured_employer_address.AD"
"lab_adt.plans.IN2"
"lab_adt.plans.IN2.IN2_3_insureds_employer_name.CN"
"lab_adt.plans.ZMI"
"lab_adt.NK1"
"lab_adt.NK1.NK1_2_next_of_kin_name.PN"
"lab_adt.NK1.NK1_3_next_of_kin_relationship.CE"
"lab_adt.NK1.NK1_4_next_of_kin_address.AD"
))
(define collapsed-rules '(
"3"
"13"
"16"
"25"
"41"
"43"
"45"
))
(define crs_star_lab_adt
(let ((input ($make-event-map star_adt-delm star_adt-struct))
(output ($make-event-map lab_adt-delm lab_adt-struct))
)
(lambda (message-string)
($event-parse input message-string)
($event-clear output)
(begin
(comment "Change Log" "01-23-1999 - Created
03-28-1999 - Integrated and stress test - complete
04-30-1999 - Moved into production")
(display (string-append "=== Inside collaboration.")) (newline)
(comment "Map MSH" "")
(copy-strip "STC" ~output%lab_adt.MSH.MSH_3_sending_application "")
(copy-strip ~input%star_adt.MSH.MSH_4_sending_facility ~output%lab_adt.MSH.MSH_4_sending_facility "")
(copy-strip "LAB" ~output%lab_adt.MSH.MSH_5_receiving_application "")
(copy-strip ~input%star_adt.MSH.MSH_6_receiving_facility ~output%lab_adt.MSH.MSH_6_receiving_facility "")
(copy-strip ~input%star_adt.MSH.MSH_7_message_date/time ~output%lab_adt.MSH.MSH_7_message_date/time "")
(copy-strip ~input%star_adt.MSH.MSH_9_message_type ~output%lab_adt.MSH.MSH_9_message_type "")
(copy-strip ~input%star_adt.MSH.MSH_10_message_control_ID ~output%lab_adt.MSH.MSH_10_message_control_ID "")
(copy-strip ~input%star_adt.MSH.MSH_11_processing_ID ~output%lab_adt.MSH.MSH_11_processing_ID "")
(copy-strip "2.3" ~output%lab_adt.MSH.MSH_12_version_ID "")
(comment "Map EVN" "")
(copy-strip ~input%star_adt.EVN ~output%lab_adt.EVN "")
(display (string-append " - Event type is [" ~input%star_adt.MSH.MSH_9_message_type.MSH_9_2_trigger_event "]")) (newline)
(comment "Map PID" "")
(copy-strip ~input%star_adt.PID ~output%lab_adt.PID "")
(copy-strip ~input%star_adt.ZM1.ZM1_26PATIENT_EMPLOYER_BUSINESS_PHONE_NUMBER ~output%lab_adt.PID.PID_14_business_phone[0]:0-END "")
(list-lookup ~input%star_adt.MSH.MSH_3_sending_application ~output%lab_adt.PID.PID_2_patient_ID_external.CK.assigning_fac '(("KEANE" "KNE")("HBOC" "STR") (else "")) "" "")
(copy-strip ~input%star_adt.ZM1.ZM1_25PATIENT_EMPLOYER_ADDRESS.set.ZM1_25_0_Patient_Employer_Address ~output%lab_adt.PID.PID_11_patient_address[1].AD.street_1:0-END "")
(copy-strip ~input%star_adt.ZM1.ZM1_25PATIENT_EMPLOYER_ADDRESS.set.ZM1_25_1_Patient_Employer_Address_Cont ~output%lab_adt.PID.PID_11_patient_address[1].AD.street_2:0-END "")
(copy-strip ~input%star_adt.ZM1.ZM1_25PATIENT_EMPLOYER_ADDRESS.set.ZM1_25_2_Patient_Employer_City ~output%lab_adt.PID.PID_11_patient_address[1].AD.city:0-END "")
(copy-strip ~input%star_adt.ZM1.ZM1_25PATIENT_EMPLOYER_ADDRESS.set.ZM1_25_3_Patient_Employer_State ~output%lab_adt.PID.PID_11_patient_address[1].AD.state_or_province:0-END "")
(copy-strip ~input%star_adt.ZM1.ZM1_25PATIENT_EMPLOYER_ADDRESS.set.ZM1_25_4_Patient_Employer_Zip_Code ~output%lab_adt.PID.PID_11_patient_address[1].AD.zip:0-END "")
(comment "Map PV1" "")
(copy-strip ~input%star_adt.PV1.PV1_1_set_ID ~output%lab_adt.PV1.PV1_1_set_ID "")
(copy-strip ~input%star_adt.PV1.PV1_2_patient_class ~output%lab_adt.PV1.PV1_2_patient_class "")
(copy-strip ~input%star_adt.PV1.PV1_3_assigned_patient_location ~output%lab_adt.PV1.PV1_3_assigned_patient_location "")
(copy-strip ~input%star_adt.PV1.PV1_4_admission_type ~output%lab_adt.PV1.PV1_4_admission_type "")
(copy-strip ~input%star_adt.PV1.PV1_6_prior_patient_location ~output%lab_adt.PV1.PV1_6_prior_patient_location "")
(copy-strip ~input%star_adt.PV1.PV1_7_attending_doctor ~output%lab_adt.PV1.PV1_7_attending_doctor "")
(copy-strip ~input%star_adt.PV1.PV1_8_referring_doctor ~output%lab_adt.PV1.PV1_8_referring_doctor "")
(copy-strip ~input%star_adt.PV1.PV1_16_VIP_indicator ~output%lab_adt.PV1.PV1_16_VIP_indicator "")
(copy-strip ~input%star_adt.PV1.PV1_17_admitting_doctor ~output%lab_adt.PV1.PV1_17_admitting_doctor "")
(copy-strip ~input%star_adt.PV1.PV1_18_patient_type ~output%lab_adt.PV1.PV1_18_patient_type "")
(copy-strip ~input%star_adt.PV1.PV1_19_visit_number ~output%lab_adt.PV1.PV1_19_visit_number "")
(copy-strip ~input%star_adt.PV1.PV1_40_bed_status ~output%lab_adt.PV1.PV1_40_bed_status "")
(if (regex "\^BSO" ~input%star_adt.plans[0].ZMI.ZMI_2INSURANCE_COMPANY_ID)
(begin
(copy-strip ~input%star_adt.PV1.PV1_41_account_status ~output%lab_adt.PV1.PV1_41_account_status "")
)
(begin
(display " - Insurance is non-BSO, do not copy account status.") (newline)
)
)
(copy-strip ~input%star_adt.PV1.PV1_44_admit_date/time ~output%lab_adt.PV1.PV1_44_admit_date/time "")
(copy-strip ~input%star_adt.PV1.PV1_45_discharge_date/time ~output%lab_adt.PV1.PV1_45_discharge_date/time "")
(comment "Map DG1" "")
(copy-strip ~input%star_adt.DG1[0] ~output%lab_adt.DG1 "")
(comment "Map NK1" "")
(copy-strip ~input%star_adt.NK1[0].NK1_2_next_of_kin_name ~output%lab_adt.NK1[0].NK1_2_next_of_kin_name "")
(copy-strip ~input%star_adt.NK1[0].NK1_4_next_of_kin_address ~output%lab_adt.NK1[0].NK1_4_next_of_kin_address "")
(copy-strip ~input%star_adt.NK1[0].NK15next_of_kin_phone ~output%lab_adt.NK1[0].NK15next_of_kin_phone "")
(copy-strip ~input%star_adt.NK1[0].NK1_6_business_phone_num ~output%lab_adt.NK1[0].NK1_6_business_phone_num "")
(display "=== Leaving collaboration.") (newline)
)
(let ((result ($event->string output)))
($event-clear input)
($event-clear output)
result)
)))