| [613] | 1 | IBCIUT4 ;DSI/SLM - MISC UTILITIES ;29-JAN-2001 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**161,226,348**;21-MAR-94;Build 5 | 
|---|
|  | 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | Q | 
|---|
|  | 6 | COMERR ;create msg for comm error | 
|---|
|  | 7 | NEW L,L1,MGROUP,TEXT,IBCISMG,IBCIERR | 
|---|
|  | 8 | I '$D(IBCICLNP) S IBCICLNP=$P(^DGCR(399,IBIFN,0),U) | 
|---|
|  | 9 | S MGROUP=$P(^IBE(350.9,1,50),U,4),MGROUP=$P(^XMB(3.8,MGROUP,0),U),L1=1 | 
|---|
|  | 10 | S IBCIERR=$$P1(PROBLEM) | 
|---|
|  | 11 | D SNTMSG | 
|---|
|  | 12 | S TEXT(L1)="        ** CLAIMSMANAGER COMMUNICATIONS ERROR **",L1=L1+1 | 
|---|
|  | 13 | S TEXT(L1)=" ",L1=L1+1 | 
|---|
|  | 14 | S TEXT(L1)="While attempting to send claim # "_IBCICLNP_", Error Code # "_$P(IBCIERR,U,1),L1=L1+1 | 
|---|
|  | 15 | S TEXT(L1)="was generated.",L1=L1+1 | 
|---|
|  | 16 | S TEXT(L1)=" ",L1=L1+1 | 
|---|
|  | 17 | S TEXT(L1)="User attempted "_IBCISMG,L1=L1+1 | 
|---|
|  | 18 | S TEXT(L1)=" ",L1=L1+1 | 
|---|
|  | 19 | S TEXT(L1)="Error Description:",L1=L1+1 | 
|---|
|  | 20 | S TEXT(L1)=" ",L1=L1+1 | 
|---|
|  | 21 | S TEXT(L1)=$P(IBCIERR,U,2),L1=L1+1 | 
|---|
|  | 22 | S TEXT(L1)=" ",L1=L1+1 | 
|---|
|  | 23 | I $P(IBCIERR,U,3)'="" D | 
|---|
|  | 24 | . S TEXT(L1)="ClaimsManager Error Message:",L1=L1+1 | 
|---|
|  | 25 | . S TEXT(L1)=" ",L1=L1+1 | 
|---|
|  | 26 | . S TEXT(L1)=$P($P(IBCIERR,U,3)," - ",1),L1=L1+1 | 
|---|
|  | 27 | . S TEXT(L1)=$P($P(IBCIERR,U,3,99)," - ",2,99),L1=L1+1 | 
|---|
|  | 28 | . S TEXT(L1)=" ",L1=L1+1 | 
|---|
|  | 29 | . Q | 
|---|
|  | 30 | ; | 
|---|
|  | 31 | ; esg - 10/29/01 - Direct the reader to the Clear CM Results Queue | 
|---|
|  | 32 | ;       option if the problem does not go away. | 
|---|
|  | 33 | ; | 
|---|
|  | 34 | I PROBLEM=99 S TEXT(L1)="Please correct the problem and send again.",L1=L1+1 | 
|---|
|  | 35 | E  D | 
|---|
|  | 36 | . S TEXT(L1)="If this problem persists, then please try running the",L1=L1+1 | 
|---|
|  | 37 | . S TEXT(L1)="option to clear out the ClaimsManager results queue.",L1=L1+1 | 
|---|
|  | 38 | . S TEXT(L1)="This option name is IBCI CLEAR CLAIMSMANAGER QUEUE.",L1=L1+1 | 
|---|
|  | 39 | . Q | 
|---|
|  | 40 | S TEXT(L1)=" ",L1=L1+1 | 
|---|
|  | 41 | S TEXT(L1)="Bill Sent By: "_$P(^VA(200,DUZ,0),U) | 
|---|
|  | 42 | S XMSUB="ClaimsManager Communications Error sending "_IBCICLNP | 
|---|
|  | 43 | S XMDUZ="ClaimsManager Interface",XMTEXT="TEXT(",XMY("G."_MGROUP)="" | 
|---|
|  | 44 | D ^XMD | 
|---|
|  | 45 | K XMSUB,XMDUZ,XMTEXT,TEXT | 
|---|
|  | 46 | Q | 
|---|
|  | 47 | GENERR(IBIFN,IBCIETP) ;create msg for general error | 
|---|
|  | 48 | Q:IBCISNT'=2 | 
|---|
|  | 49 | NEW L,L1,L2,L3,MGROUP,TEXT,XMTEXT,XMY,XMSUB,XMDUZ,USER,IBCISMG,IBCIE1 | 
|---|
|  | 50 | I '$D(IBCICLNP) S IBCICLNP=$P(^DGCR(399,IBIFN,0),U) | 
|---|
|  | 51 | S MGROUP=$P(^IBE(350.9,1,50),U,3),MGROUP=$P(^XMB(3.8,MGROUP,0),U),L1=1 | 
|---|
|  | 52 | D SNTMSG | 
|---|
|  | 53 | S TEXT(L1)="User attempted "_IBCISMG,L1=L1+1 | 
|---|
|  | 54 | S TEXT(L1)=" ",L1=L1+1 | 
|---|
|  | 55 | ;pull error msg from 351.9 based on mnemonic (IBCIETP) error type | 
|---|
|  | 56 | S IBCIE1=0 F  S IBCIE1=$O(^IBA(351.9,IBIFN,1,"B",IBCIETP,IBCIE1)) Q:'IBCIE1  D | 
|---|
|  | 57 | .S TEXT(L1)="Line Item: "_+$P(^IBA(351.9,IBIFN,1,IBCIE1,0),U,2),L1=L1+1 | 
|---|
|  | 58 | .S TEXT(L1)="Error Mnemonic: "_$P(^IBA(351.9,IBIFN,1,IBCIE1,0),U),L1=L1+1 | 
|---|
|  | 59 | .S TEXT(L1)="Error Level: "_$P(^IBA(351.9,IBIFN,1,IBCIE1,0),"~",2),L1=L1+1 | 
|---|
|  | 60 | .S TEXT(L1)=" ",L1=L1+1 | 
|---|
|  | 61 | .S TEXT(L1)="Error Message:",L1=L1+1 | 
|---|
|  | 62 | .S L2=0 F  S L2=$O(^IBA(351.9,IBIFN,1,IBCIE1,L2)) Q:'L2  D | 
|---|
|  | 63 | ..S L3=0 F  S L3=$O(^IBA(351.9,IBIFN,1,IBCIE1,L2,L3)) Q:'L3  D | 
|---|
|  | 64 | ...S TEXT(L1)=^IBA(351.9,IBIFN,1,IBCIE1,L2,L3,0),L1=L1+1 | 
|---|
|  | 65 | .S TEXT(L1)=" ",L1=L1+1 | 
|---|
|  | 66 | S TEXT(L1)=" ",XMTEXT="TEXT(" | 
|---|
|  | 67 | S XMY(DUZ)="",XMY("G."_MGROUP)="" | 
|---|
|  | 68 | ; | 
|---|
|  | 69 | ; Additionally, send this MailMan message to the biller, the | 
|---|
|  | 70 | ; assigned to person, the person who last edited this bill, and | 
|---|
|  | 71 | ; the person who last sent it to ClaimsManager. | 
|---|
|  | 72 | ; esg - 9/5/01 & 9/27/01 | 
|---|
|  | 73 | ; | 
|---|
|  | 74 | S USER=+$$BILLER^IBCIUT5(IBIFN) I USER S XMY(USER)="" | 
|---|
|  | 75 | S USER=+$P($G(^IBA(351.9,IBIFN,0)),U,12) I USER S XMY(USER)="" | 
|---|
|  | 76 | S USER=+$P($G(^IBA(351.9,IBIFN,0)),U,9) I USER S XMY(USER)="" | 
|---|
|  | 77 | S USER=+$P($G(^IBA(351.9,IBIFN,0)),U,5) I USER S XMY(USER)="" | 
|---|
|  | 78 | ; | 
|---|
|  | 79 | S XMSUB="ClaimsManager Claim "_IBCICLNP_" Returned with Errors" | 
|---|
|  | 80 | S XMDUZ="ClaimsManager Interface" | 
|---|
|  | 81 | D ^XMD | 
|---|
|  | 82 | Q | 
|---|
|  | 83 | SNTMSG ;determine what user was doing for message | 
|---|
|  | 84 | ; | 
|---|
|  | 85 | I IBCISNT=1 S IBCISMG="a Normal Send after Editing." | 
|---|
|  | 86 | I IBCISNT=2 S IBCISMG="a Normal Send from the Multiple Send Option." | 
|---|
|  | 87 | I IBCISNT=3 S IBCISMG="a Test Send from the Edit Screens." | 
|---|
|  | 88 | I IBCISNT=4 S IBCISMG="to Cancel the Claim." | 
|---|
|  | 89 | I IBCISNT=5 S IBCISMG="to Override the Errors." | 
|---|
|  | 90 | I IBCISNT=6 S IBCISMG="to Send an Authorized Claim from the Multiple Send Option." | 
|---|
|  | 91 | I IBCISNT=7 S IBCISMG="to delete the lines on this bill which is no longer a CMS-1500." | 
|---|
|  | 92 | Q | 
|---|
|  | 93 | ; | 
|---|
|  | 94 | ;TCK CALL check text for ClaimsManager delimiters and strip if found | 
|---|
|  | 95 | ;Input variable | 
|---|
|  | 96 | ;  x | 
|---|
|  | 97 | TCK() ;check text for characters used as delimiters and strip them out | 
|---|
|  | 98 | Q:$G(X)=""  S X=$TR(X,$C(28,29,30)_"'%") | 
|---|
|  | 99 | Q | 
|---|
|  | 100 | CCK() ;check codes for decimal points and strip them out | 
|---|
|  | 101 | Q:$G(X)=""  S X=$TR(X,".") | 
|---|
|  | 102 | Q | 
|---|
|  | 103 | Z1AR ;converts ibciz array to ibciz1 array and import into error field | 
|---|
|  | 104 | Q:'$D(IBCIZ)  K IBCIZ1 | 
|---|
|  | 105 | S ERNUM=0 F  S ERNUM=$O(IBCIZ("RL",ERNUM)) Q:'ERNUM  D | 
|---|
|  | 106 | .I $P(IBCIZ("RL",ERNUM,0),U,2)="" Q | 
|---|
|  | 107 | .S IBCIZ1(ERNUM,0)=$P(IBCIZ("RL",ERNUM,0),U,2)_U_$P(IBCIZ("RL",ERNUM,0),U)_U_$P(IBCIZ("RL",ERNUM,0),U,3,999) | 
|---|
|  | 108 | .S LINE=0 F  S LINE=$O(IBCIZ("RL",ERNUM,"E",LINE)) Q:'LINE  D | 
|---|
|  | 109 | ..S IBCIZ1(ERNUM,LINE)=IBCIZ("RL",ERNUM,"E",LINE) | 
|---|
|  | 110 | I IBCISNT>2 G Z1Q | 
|---|
|  | 111 | I $P($G(^IBA(351.9,IBIFN,1,0)),U,4) D DELER | 
|---|
|  | 112 | S IBCIN1=0 F  S IBCIN1=$O(IBCIZ1(IBCIN1)) Q:'IBCIN1  D ADDSUB1 | 
|---|
|  | 113 | Z1Q K DIC,DIE,DA,L1,LINE,ERDT,IBCIN1,ERNUM | 
|---|
|  | 114 | Q | 
|---|
|  | 115 | PROC() ;convert procedure code | 
|---|
|  | 116 | Q:$G(X)=""  N DA,GNODE | 
|---|
|  | 117 | S DA=$P(X,";"),GNODE="^"_$P(X,";",2)_DA_",0)",X=$P(@GNODE,U) | 
|---|
|  | 118 | Q | 
|---|
|  | 119 | ADDSUB1 ;create the subfile for errors and add data | 
|---|
|  | 120 | S DIC="^IBA(351.9,"_IBIFN_",1,",DA(1)=IBIFN,DIC(0)="LMN" | 
|---|
|  | 121 | S X=$P(IBCIZ1(IBCIN1,0),U) D FILE^DICN Q:Y<1  S DA=+Y | 
|---|
|  | 122 | S ERDT=$P(IBCIZ1(IBCIN1,0),U,2,999),ERDT=$TR(ERDT,"^","~") | 
|---|
|  | 123 | S DIE=DIC,DR=".02////"_ERDT D ^DIE | 
|---|
|  | 124 | S L1=0 F  S L1=$O(IBCIZ1(IBCIN1,L1)) Q:'L1  D | 
|---|
|  | 125 | .S IBCIZ1(IBCIN1,L1)=$TR(IBCIZ1(IBCIN1,L1),";",",") | 
|---|
|  | 126 | .S DR=".03///+"_IBCIZ1(IBCIN1,L1) D ^DIE | 
|---|
|  | 127 | Q | 
|---|
|  | 128 | DELER ;delete the error information in 351.9 | 
|---|
|  | 129 | Q:'IBIFN | 
|---|
|  | 130 | Q:'$P($G(^IBA(351.9,IBIFN,1,0)),U,4) | 
|---|
|  | 131 | S DIK="^IBA(351.9,"_IBIFN_",1,",DA(1)=IBIFN | 
|---|
|  | 132 | S DA=0 F  S DA=$O(^IBA(351.9,IBIFN,1,DA)) Q:'DA  D ^DIK | 
|---|
|  | 133 | K DIK,DA | 
|---|
|  | 134 | Q | 
|---|
|  | 135 | DELTI ;delete temporary information in 351.9 | 
|---|
|  | 136 | N IBCIX4,TMPDATA,NODE | 
|---|
|  | 137 | S DIE="^IBA(351.9,"_IBIFN_",5," | 
|---|
|  | 138 | F IBCIX4=$P($G(^IBA(351.9,IBIFN,5,0)),U,4):-1:1 S DA=IBCIX4 D | 
|---|
|  | 139 | .S DA(1)=IBIFN,DR=".01////@" D ^DIE | 
|---|
|  | 140 | K DIE,DR,DA | 
|---|
|  | 141 | I $D(^IBA(351.9,IBIFN,4)) D | 
|---|
|  | 142 | .S DIE="^IBA(351.9,",DA=IBIFN | 
|---|
|  | 143 | .S DR="4.01////@;4.02////@;4.03////@;4.04////@" D ^DIE | 
|---|
|  | 144 | K DIE,DR,DA | 
|---|
|  | 145 | I $D(^IBA(351.9,IBIFN,3)) D | 
|---|
|  | 146 | .S DIE="^IBA(351.9,",DA=IBIFN | 
|---|
|  | 147 | .S DR="3.01////@;3.02////@;3.03////@;3.04////@;3.05////@;3.06////@;" | 
|---|
|  | 148 | .S DR=DR_"3.07////@;3.08////@;3.09////@;3.1////@;3.11////@;3.12////@" | 
|---|
|  | 149 | .D ^DIE K DIE,DR,DA | 
|---|
|  | 150 | F NODE=3,4,5 S TMPDATA="^IBA(351.9,IBIFN,NODE)" K @TMPDATA | 
|---|
|  | 151 | Q | 
|---|
|  | 152 | ; | 
|---|
|  | 153 | DCOM(IBIFN) ;delete whatever's in the comment field in 351.9 | 
|---|
|  | 154 | S DIE="^IBA(351.9,",DA=IBIFN,DR="2.01///@;.13///@;.14///@" | 
|---|
|  | 155 | D ^DIE K DIE,DA,DR | 
|---|
|  | 156 | Q | 
|---|
|  | 157 | ; | 
|---|
|  | 158 | P1(PROBLEM) ;comm error handling with problem variable | 
|---|
|  | 159 | ;Input variable | 
|---|
|  | 160 | ;  PROBLEM | 
|---|
|  | 161 | ;Returns | 
|---|
|  | 162 | ;  error code^error desc^msg returned from ClaimsManager | 
|---|
|  | 163 | N IBCIY,IBCICODE,IBCIDESC,IBCIMSG S IBCICODE=PROBLEM | 
|---|
|  | 164 | I IBCICODE=1 S IBCIDESC="TCP/IP time-out during 1st read." D | 
|---|
|  | 165 | .S IBCIMSG=$G(IBCIZ)_" - "_$G(IBCIZ(1,1)) | 
|---|
|  | 166 | I IBCICODE=2 S IBCIDESC="Local Symbol Size Storage Problems during 1st read." | 
|---|
|  | 167 | I IBCICODE=3 S IBCIDESC="1st read was NOT a ClaimsManager ACK message." D | 
|---|
|  | 168 | .S IBCIMSG=$G(IBCIZ)_" - "_$G(IBCIZ(1,1)) | 
|---|
|  | 169 | I IBCICODE=4 S IBCIDESC="TCP/IP Time-out during 2nd read." D | 
|---|
|  | 170 | .S IBCIMSG=$G(IBCIZ)_" - "_$G(IBCIZ(1,1)) | 
|---|
|  | 171 | I IBCICODE=5 S IBCIDESC="Local Symbol Size Storage Problems during 2nd read." | 
|---|
|  | 172 | I IBCICODE=6 S IBCIDESC="2nd read was NOT a RESULTREC message type." D | 
|---|
|  | 173 | .S IBCIMSG=$G(IBCIZ)_" - "_$G(IBCIZ(1,1)) | 
|---|
|  | 174 | I IBCICODE=7 S IBCIDESC="Fatal System Error",IBCIMSG=$G(IBCIZ)_" - "_$G(IBCIZ(1,1)) ; ib*226 | 
|---|
|  | 175 | I IBCICODE=99 S IBCIDESC="Unable to Open Port." D | 
|---|
|  | 176 | .S IBCIMSG="Please restart the Ingenix Event Manager services." | 
|---|
|  | 177 | I "^1^2^3^4^5^6^7^99^"'[IBCICODE S IBCIDESC="Unknown Error Type." | 
|---|
|  | 178 | S IBCIY=IBCICODE_"^"_IBCIDESC_"^"_$G(IBCIMSG) | 
|---|
|  | 179 | Q IBCIY | 
|---|
|  | 180 | ; | 
|---|