maintenance: title: Regression test include definitions;; mlmname: STD_FUNC_DOSAGE_INCLUDES;; arden: version 2.5;; version: 18.4;; institution: Allscripts, Standard MLM;; author: Allscripts Healthcare Solutions, Inc.;; specialist: ;; date: 2018-10-26;; validation: testing;; /* P r o p r i e t a r y N o t i c e */ /* Unpublished (c) 2013 - 2018 Allscripts Healthcare, LLC. and/or its affiliates. All Rights Reserved. P r o p r i e t a r y N o t i c e: This software has been provided pursuant to a License Agreement, with Allscripts Healthcare, LLC. and/or its affiliates, containing restrictions on its use. This software contains valuable trade secrets and proprietary information of Allscripts Healthcare, LLC. and/or its affiliates and is protected by trade secret and copyright law. This software may not be copied or distributed in any form or medium, disclosed to any third parties, or used in any manner not provided for in said License Agreement except with prior written authorization from Allscripts Healthcare, LLC. and/or its affiliates. Notice to U.S. Government Users: This software is {{{SINGLE-QUOTE}}}Commercial Computer Software{{{SINGLE-QUOTE}}}. All product names are the trademarks or registered trademarks of Allscripts Healthcare, LLC. and/or its affiliates. */ /* P r o p r i e t a r y N o t i c e */ library: purpose: The purpose of this MLM is to include the common data structures needed by dosage range MLMs ;; explanation: Include this MLM at the start of any MLM that will be making using the objects in the MLM ;; keywords: single dose; average daily dose; total daily dose; dosage range ;; knowledge: type: data-driven;; data: // Core UOM Constant Object Core_UOM_OBJECT := OBJECT [ lb_string, gm_string, kg_string, M2_string, ounce_string, day_string, hour_string, minute_string, month_string, second_string, week_string, year_string ]; // Item catalog criteria type string object Catalog_DRC_Criteria_Type_String_Object := OBJECT [ age_average_daily_dose_string, age_string, age_total_daily_dose_string, BSA_average_daily_dose_string, Body_Surface_Area_string, BSA_total_daily_dose_string, weight_average_daily_dose_string, weight_string, weight_total_daily_dose_string ]; //Declare the Med_Data_Object //Note: Med_Data_GUID is the //CV3Order.GUID, CV3OrderComponent.GUID or CV3OrderVariableComponent.GUID //Depending on whether this is a Regular Order, IV-Additive Order, or Complex Order Med_Data_Object := OBJECT [ sort_number, med_order_type, med_data_guid, grouper_id, multum_dnum, multum_mmdc, order_med_significant_date, // CalculatedStartDtm when component order_med_name, order_med_route, order_med_route_id, // multum drug key for the order_med_route order_med_dose_low, order_med_dose_high, order_med_units, order_med_uom_id, // multum drug key for the order_med_units order_med_frequency, multum_freq_id, // multum drug key for frequency order_interval, calc_dose_method, calc_med_dose_low, calc_med_dose_high, calc_med_per_uom, updated_calc_med_per_uom, //Populated by DoseBasis MLM wt_kg, //Populated by DoseBasis MLM calc_text, //Populated by DoseBasis MLM dose_basis, //Populated by DoseBasis MLM stop_dtm, calcStop_dtm, //Debug info calcStart_dtm, //Debug info calculation_method, //Debug info stop_after_value, stop_after_option_type, freq_from_time, freq_to_time, freq_uom, freq_multiplier, // only used by Prescription isShiftFrequency, admin_dtm_list, admin_dtm_list_calc_method, // ORDER or MLM - Debug Info order_catalog_item_obj, retrieved_dose_range_data, missing_route, unmapped_route, generic_route, missing_uom, unmapped_uom, uom_conversion_issue, unmapped_drug, unmapped_grouper, processed_missing_data_msg, processed_for_printing, outside_single_dosage_range, contraindication_found, alert_msg_for_single, is_order, is_outpatient_order, //indicate whether this order is outpatient order or not is_script, //used for outpatient order is_iv_additive, rx_instructions ]; // Declare dosage range object Dosage_Range_Object := OBJECT [ sort_number, match_found, // true if matching dose range found. false if missing age/weight/gender/route dosage_type, // single, average, total, or contraindication med_name, age_criteria, BSA_criteria, weight_criteria, gender_criteria, renal_criteria, creatinine_criteria, liver_criteria, contraindication_msg, // for dosage_type = contraindication recommendation_msg, // for dosage type = single/average/total is_range, lower_dose, // for dosage_type = single/average/total upper_dose, // for dosage_type = single/average/total unit_of_measure, conversion_factor, uom_conversion_factor, // Keep the pure UOM conversion factor based on the SXAUnitOfMeasureConversion table // This is used only used for Catalog DRC checking in STD_FUNC_DOSAGE_CAT, because // STD_FUNC_DOSAGE_CAT has logic to override conversion_factor value for "per weight" scenario. // uom_conversion_factor is currently not used in STD_FUNC_DOSAGE_MULTUM. uom_conversion_issue, Is_PER_WT, Is_PER_M2, dose_calc_method, corrected_uom, calc_per_core_uom, is_multum, grouper_id, case_id, route, route_id, // Populated in STD_FUNC_DOSAGE_MULTUM.mlm and STD_FUNC_DOSAGE_CAT.mlm // Contains the medication route and route ID used to retrieve this // dosage range by the two MLMs mentioned above med_route, med_route_id, display_route, // the route to display to the user. Populated by // STD_FUNC_DOSAGE_MESSAGES.MLM. //cannot_match_to_generic_route, unrecognized_route_conversion_issue, inapplicable_route_conversion_issue, is_default, hard_stop_high, hard_stop_low, crcl_within_range, patient_age_at_order, dnum_ic_match_found, dose_frequency, // e.g. "once a day" frequency_issue, // "too frequent", "unmapped", or null //[New born birth-time missing] // 0: alert not using estimated ages; 1: using estimated min age; 2: using estimated max age max; 3: using both estimated age min/max. estimated_age_used ]; // medication dosage range map object Medication_Dosage_Range_Map := OBJECT [ sort_number, med_sort_number, dosage_range_sort_number, dosage_type, match_found, above_range, below_range, med_name, med_dose_low, med_dose_high, med_dose_uom, adjusted_dose_high, adjusted_dose_low, adjusted_dose_uom, hard_stop_low, hard_stop_high, dose_frequency, // e.g. "once a day" frequency_issue // "too frequent", "unmapped", or null ]; Alert_If_Missing_Obj := OBJECT [ patient_age, patient_gender, patient_height, patient_weight, uom, route, uom_conversion, unmapped_drug, unmapped_grouper, unmapped_gender, unmapped_route, unmapped_uom, unmapped_frequency, cannot_check_DNUM_Rx_to_Multum, cannot_check_Rx_to_IC, cannot_check_generic_route, inapplicable_route ]; //[New born birth-time missing]Holding info of birthday and max estimated_birthday //the age values are patient_age_at_order calcualted by birthday and order order_med_significant_date Patient_Birthday_Info_Obj := OBJECT [ birthday, age_year_value, age_month_value, age_week_value, age_day_value, age_hour_value, age_str, // from here only used when is_estimated_birthday is true is_estimated_birthday, age_max_inhour_str, estimated_birthday_to, age_year_min_value, age_month_min_value, age_week_min_value, age_day_min_value, age_hour_min_value, age_min_inhour_str ]; // weight, 68 kg, entered on 2011-nov-22, false, false // height, Patient_Property_Obj := OBJECT [ type, value, date, is_missing, is_unmapped, not_current, unknown_other ]; // Holds patient property objects Patient_Info_Obj := Object [ Age, Weight, Height, BSA, Gender, Liver, Renal, Creatinine, DNum_Grouper, ICD9_List ]; // Holds the currentness duration Validity_Duration := OBJECT [ duration, toAge, fromAge ]; // Note fromAge is set by the system Grouper_Info_Object := OBJECT [ grouper_id, grouper_name, dosage_range_found ]; ;; priority: 50 ;; evoke: ;; logic: ;; action: ;; Urgency: 50;; end: