Initial Checking with all 820 MLMs
This commit is contained in:
@@ -0,0 +1,178 @@
|
||||
maintenance:
|
||||
|
||||
title: SCH_Access_Manager_InsuranceID_Formatting;;
|
||||
mlmname: SCH_Access_Manager_InsuranceID_Formatting;;
|
||||
arden: version 2.5;;
|
||||
version: 5.50;;
|
||||
institution: St. Clair Hospital;;
|
||||
author: Dan Bredl ;;
|
||||
specialist: Don Warnick;;
|
||||
date: 2017-06-05;;
|
||||
validation: testing;;
|
||||
|
||||
library:
|
||||
purpose: Called from registraion event
|
||||
;;
|
||||
explanation: This MLM will check the format of Insurance IDs
|
||||
|
||||
Change history
|
||||
|
||||
06.05.2017 DW CSR# 26413 Access Manager - Created
|
||||
01.30.2018 JML CSR# 26413 Access Manager - Modified to accept additional Medicare Insurance Number Formats
|
||||
02.14.2018 DW CSR# 26413 Access Manager - Modified to accept additional an additional 12 digit pattern
|
||||
03.28.2018 DW CSR# 36475 AMPFM upgrade - Comment out Medicare rules as new complex ones were introuduced on April 1. The registration department decided to remove all Medicare formatting edits for now
|
||||
|
||||
|
||||
;;
|
||||
keywords: Regsitration Event MLM
|
||||
;;
|
||||
knowledge:
|
||||
type: data-driven;;
|
||||
data:
|
||||
|
||||
standard_libs := MLM {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}};
|
||||
include standard_libs;
|
||||
error_occurred := false;
|
||||
|
||||
send_alert:= "DoNotSend";
|
||||
mlm_alert := destination { Alert: warning, "Insurance Number Formatting Problem", high, chart, "Insurance Formatting MLM", 15042, send_alert, "No Override Allowed" };
|
||||
|
||||
insurance_enter_event := Event {InsuranceEnter ANY ClientVisit};
|
||||
insurance_modify_event:= Event {InsuranceModify ANY ClientVisit};
|
||||
|
||||
ClientUserData_Obj := read last { Insurance: ClientUserData REFERENCING EvokingObject };
|
||||
(CUD_User_Data_Code, CUD_Value ) := read last { ClientUserData: UserDataCode, Value REFERENCING ClientUserData_Obj };
|
||||
|
||||
InsuranceType := EVOKINGOBJECT.FRPName;
|
||||
InsuranceNumber := ClientUserData_Obj.value;
|
||||
InsuranceNumberLength := length (ClientUserData_Obj.value);
|
||||
InsuranceNumberPattern := "";
|
||||
MessageText := "OK";
|
||||
errormessage := " ";
|
||||
GenerateAlert := false;
|
||||
|
||||
// Medicaid Insurance
|
||||
|
||||
If InsuranceNumberLength < 10 and InsuranceType = "MEDICAID"
|
||||
then
|
||||
MessageText := " must be 10 characters in length. The number has " || InsuranceNumberLength || " characters.";
|
||||
else
|
||||
MessageText := "OK";
|
||||
|
||||
endif; // Medicaid
|
||||
|
||||
/*
|
||||
// Medicare Insurance
|
||||
|
||||
|
||||
If InsuranceType = "MEDICARE"
|
||||
then
|
||||
|
||||
for x in 1 seqto InsuranceNumberLength do
|
||||
|
||||
InsuranceCharacter := substring 1 characters starting at x from InsuranceNumber ;
|
||||
|
||||
if (InsuranceCharacter as number) is null
|
||||
then InsuranceCharacterType := "X";
|
||||
else InsuranceCharacterType := "9";
|
||||
endif;
|
||||
|
||||
InsuranceNumberPattern := InsuranceNumberPattern || InsuranceCharacterType ;
|
||||
|
||||
enddo;
|
||||
|
||||
If InsuranceNumberLength < 6 or InsuranceNumberLength > 12
|
||||
then
|
||||
MessageText := " must be between 6 and 12 characters in length. The number has " || InsuranceNumberLength || " characters.";
|
||||
elseif
|
||||
InsuranceNumberLength = 6
|
||||
then
|
||||
if InsuranceNumberPattern = "X99999"
|
||||
then MessageText := "OK"; else MessageText := " is incorrectly formatted.";
|
||||
endif;
|
||||
elseif
|
||||
InsuranceNumberLength = 7
|
||||
then
|
||||
if InsuranceNumberPattern = "X999999" or InsuranceNumberPattern = "XX99999"
|
||||
then MessageText := "OK"; else MessageText := " is incorrectly formatted.";
|
||||
endif;
|
||||
elseif
|
||||
InsuranceNumberLength = 8
|
||||
then
|
||||
if InsuranceNumberPattern = "X9999999" or InsuranceNumberPattern = "XX999999"
|
||||
then MessageText := "OK"; else MessageText := " is incorrectly formatted.";
|
||||
endif;
|
||||
elseif
|
||||
InsuranceNumberLength = 9
|
||||
then
|
||||
if InsuranceNumberPattern = "X99999999" or InsuranceNumberPattern = "XX9999999"
|
||||
then MessageText := "OK"; else MessageText := " is incorrectly formatted.";
|
||||
endif;
|
||||
elseif
|
||||
InsuranceNumberLength = 10
|
||||
then
|
||||
if InsuranceNumberPattern = "X999999999" or InsuranceNumberPattern = "XX99999999" or InsuranceNumberPattern = "999999999X" or InsuranceNumberPattern = "9999999999"
|
||||
then MessageText := "OK"; else MessageText := " is incorrectly formatted.";
|
||||
endif;
|
||||
elseif
|
||||
InsuranceNumberLength = 11
|
||||
then
|
||||
// JML : Added insurance number patterns
|
||||
if InsuranceNumberPattern = "X9999999999" or InsuranceNumberPattern = "XX999999999" OR InsuranceNumberPattern = "999999999XX" OR InsuranceNumberPattern = "999999999X9"
|
||||
then MessageText := "OK"; else MessageText := " is incorrectly formatted.";
|
||||
endif;
|
||||
elseif
|
||||
InsuranceNumberLength = 12
|
||||
then
|
||||
// JML : Added insurance number patterns 02/14/2018 DW : added pattern InsuranceNumberPattern = XXX999999999
|
||||
if InsuranceNumberPattern = "X99999999999" or InsuranceNumberPattern = "XX9999999999" or InsuranceNumberPattern = "XXX999999999" or InsuranceNumberPattern = "99999999999X" OR InsuranceNumberPattern = "9999999999XX"
|
||||
then MessageText := "OK"; else MessageText := " is incorrectly formatted.";
|
||||
endif;
|
||||
else
|
||||
MessageText := "OK";
|
||||
endif;
|
||||
|
||||
endif; // Medicare
|
||||
|
||||
*/
|
||||
|
||||
|
||||
// Format the error message if necessary
|
||||
|
||||
|
||||
If MessageText <> "OK"
|
||||
then
|
||||
GenerateAlert := true;
|
||||
errormessage := "The " || InsuranceType || " number" || MessageText || " Please correct this.";
|
||||
endif;
|
||||
|
||||
|
||||
;;
|
||||
evoke:
|
||||
|
||||
insurance_enter_event;
|
||||
insurance_modify_event;
|
||||
|
||||
|
||||
;;
|
||||
logic:
|
||||
Conclude true ;
|
||||
;;
|
||||
action:
|
||||
|
||||
|
||||
if GenerateAlert = true
|
||||
then
|
||||
write errormessage at mlm_alert;
|
||||
endif;
|
||||
|
||||
|
||||
|
||||
if error_occurred then
|
||||
write "An error has occured in the MLM {{+B}}SCH_Access_Manager_InsuranceID_Formatting {{-B}} " ||"Please notify your System Administrators that an error message has occurred message: \n" at mlm_alert;
|
||||
write messageText at mlm_alert;
|
||||
endif;
|
||||
|
||||
;;
|
||||
Urgency: 50;;
|
||||
end:
|
||||
Reference in New Issue
Block a user