Initial Checking with all 820 MLMs

This commit is contained in:
2020-02-02 00:54:01 -05:00
parent c59dc6de2e
commit 840d0432f4
828 changed files with 239162 additions and 0 deletions

View File

@@ -0,0 +1,305 @@
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: