Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/INTEGRATED_BILLING-IB-PRQ--IBD--IBQ--PRQS/IBCE835.m

    r613 r623  
    1 IBCE835 ;ALB/TMP - 835 EDI EXPLANATION OF BENEFITS MSG PROCESSING ;19-JAN-99
    2         ;;2.0;INTEGRATED BILLING;**137,135,155,377**;21-MAR-94;Build 23
    3         ;;Per VHA Directive 2004-038, this routine should not be modified.
    4         ;
    5         Q
    6         ;
    7         ; MESSAGE HEADER DATA STRING =
    8         ;   type of message^msg queue^msg #^bill #^^date/time
    9         ;
    10 HDR(IBCLNO,IBD) ;Process header data
    11         ; INPUT:
    12         ;   IBCLNO = claim #
    13         ;
    14         ;   ^TMP("IBMSGH",$J,0) = header message text
    15         ;
    16         ; OUTPUT:
    17         ;   IBD array returned with processed data
    18         ;      "LINE"  = The last line # populated in the message
    19         ;      "DATE"  = Date/Time of EOB (Fileman format)
    20         ;      "MRA"   = 1 if MRA, 0 if not
    21         ;      "X12"   = 1 if X12, 0 if not
    22         ;
    23         ;   ^TMP("IBMSG",$J,"CLAIM",claim #,0)=MESSAGE HEADER DATA STRING
    24         ;                                  ,"D",0,1)=header record raw data
    25         ;                                  ,"D1",1,0)=header record raw data
    26         ;                                  ,line #)=EOB message lines
    27         ;
    28         N CT,IB399,IBD0,IBBILL,LINE,L,X,Y,Z,%DT
    29         S IBD0=$G(^TMP("IBMSGH",$J,0)),IBD("LINE")=0
    30         Q:IBD0=""
    31         S X=$P(IBD0,U,3),X=$E(X,5,8)_$E(X,1,4)_"@"_$P(IBD0,U,4)
    32         I X S %DT="XTS" D ^%DT
    33         S IBD("DATE")=$S(Y>0:Y,1:"")
    34         S IBD("MRA")=$P(IBD0,U,5)
    35         S IBD("X12")=($P(IBD0,U,2)="X")
    36         S CT=0
    37         ;
    38         I $P(IBD0,U,6)'="" S CT=CT+1 S LINE(CT)=$G(LINE(CT))_"Payer Name: "_$P(IBD0,U,6)
    39         ;
    40         I CT D
    41         . S (L,Z)=0
    42         . F  S Z=$O(LINE(Z)) Q:'Z  S L=L+1,^TMP("IBMSG",$J,"CLAIM",IBCLNO,L)=LINE(Z)
    43         . S IBD("LINE")=IBD("LINE")+CT
    44         ;
    45         S IB399=+$O(^DGCR(399,"B",$$GETCLM^IBCE277(IBCLNO),""),-1)
    46         ;
    47         S IBBILL=$$LAST364^IBCEF4(IB399)
    48         ;
    49         S ^TMP("IBMSG",$J,"CLAIM",IBCLNO,0)="835EOB"_U_$G(IBD("MSG#"))_U_$G(IBD("SUBJ"))_U_IBBILL_U_U_IBD("DATE")
    50         ;
    51         S ^TMP("IBMSG",$J,"CLAIM",IBCLNO,"D",0,1)="##RAW DATA: "_IBD0
    52         S ^TMP("IBMSG",$J,"CLAIM",IBCLNO,"D1",1,0)="##RAW DATA: "_IBD0
    53         Q
    54         ;
    55 5(IBD)  ; Process claim patient ID data
    56         ; INPUT:
    57         ;   IBD must be passed by reference = entire message line
    58         ;
    59         ; OUTPUT:
    60         ;   IBD array
    61         ;      "LINE" = the last line # populated in the message
    62         ;
    63         ;   ^TMP("IBMSG",$J,"CLAIM",claim #,line#)=claim pt id message lines
    64         ;                                  ,"D",5,msg seq #)=
    65         ;                                  ,"D1",msg seq #,5)=
    66         ;                                       claim pt id message raw data
    67         ;
    68         N IBBILL
    69         S IBBILL=$$GETCLM^IBCE277($P(IBD,U,2))
    70         ;
    71         I '$D(^TMP("IBMSG",$J,"CLAIM",IBBILL)) D HDR(IBBILL,.IBD) ;Process header data if not already done for claim
    72         ;
    73         I $P(IBD,U,9) D  ;Statement dates
    74         . S IBD("LINE")=$G(IBD("LINE"))+1
    75         . S ^TMP("IBMSG",$J,"CLAIM",IBBILL,IBD("LINE"))="Statement Dates: "_$$DATE^IBCE277($P(IBD,U,9))_" - "_$$DATE^IBCE277($P(IBD,U,10))
    76         ;
    77         S ^TMP("IBMSG",$J,"CLAIM",IBBILL,"D",5,1)="##RAW DATA: "_IBD
    78         S ^TMP("IBMSG",$J,"CLAIM",IBBILL,"D1",1,5)="##RAW DATA: "_IBD
    79         Q
    80         ;
    81 6(IBD)  ; Process 06 record type for corrected name and/or ID# - IB*2*377 - 1/14/08
    82         NEW IBCLM,Z
    83         S IBCLM=$$GETCLM^IBCE277($P(IBD,U,2))
    84         Q:IBCLM=""
    85         I '$D(^TMP("IBMSG",$J,"CLAIM",IBCLM)) D HDR(IBCLM,.IBD)   ;Process header data if not already done for claim
    86         ;
    87         S Z=$G(IBD("LINE"))
    88         I $P(IBD,U,3)'="" S Z=Z+1,^TMP("IBMSG",$J,"CLAIM",IBCLM,Z)="Corrected Patient Last Name: "_$P(IBD,U,3)
    89         I $P(IBD,U,4)'="" S Z=Z+1,^TMP("IBMSG",$J,"CLAIM",IBCLM,Z)="Corrected Patient First Name: "_$P(IBD,U,4)
    90         I $P(IBD,U,5)'="" S Z=Z+1,^TMP("IBMSG",$J,"CLAIM",IBCLM,Z)="Corrected Patient Middle Name: "_$P(IBD,U,5)
    91         I $P(IBD,U,6)'="" S Z=Z+1,^TMP("IBMSG",$J,"CLAIM",IBCLM,Z)="Corrected Patient ID#: "_$P(IBD,U,6)
    92         S IBD("LINE")=Z
    93         ;
    94         S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D",6,1)="##RAW DATA: "_IBD
    95         S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D1",1,6)="##RAW DATA: "_IBD
    96         Q
    97         ;
    98 10(IBD) ; Process claim status data
    99         ; INPUT:
    100         ;   IBD must be passed by reference = entire message line
    101         ;
    102         ; OUTPUT:
    103         ;   IBD array returned with processed data
    104         ;      "CLAIM" = The claim #
    105         ;      "LINE" = The last line # populated in the message
    106         ;
    107         ;   ^TMP("IBMSG",$J,"CLAIM",claim #,line#)=claim status message lines
    108         ;                                  ,"D",10,msg seq #)=
    109         ;                                  ,"D1",msg seq #,10)=
    110         ;                                       claim status raw data
    111         ;
    112         N IBCLM,CT,LINE,L,Z,Z0,IBDATA,IBSTAT
    113         S IBCLM=$$GETCLM^IBCE277($P(IBD,U,2))
    114         Q:IBCLM=""
    115         ;
    116         I '$D(^TMP("IBMSG",$J,"CLAIM",IBCLM)) D HDR(IBCLM,.IBD) ;Process header data if not already done for claim
    117         ;
    118         S CT=0
    119         F Z=3:1:6 I $P(IBD,U,Z)="Y" D  Q  ;Claim status
    120         . S IBSTAT=(Z-2)
    121         . S CT=CT+1,LINE(CT)="CLAIM STATUS: "_$P("PROCESSED^DENIED^PENDED^REVERSAL",U,IBSTAT)
    122         I '$G(IBSTAT) D
    123         . S CT=CT+1,LINE(CT)="CLAIM STATUS: "_$P(IBD,U,7)_" (OTHER)"
    124         ;
    125         I $P(IBD,U,8)'="" D  ;Crossed over info
    126         . S LINE(CT)=LINE(CT)_"  Crossed over to: "_$P(IBD,U,9)_"  "_$P(IBD,U,8)
    127         ;
    128         I CT D
    129         . S L=$G(IBD("LINE")),Z=0
    130         . F  S Z=$O(LINE(Z)) Q:'Z  S L=L+1,^TMP("IBMSG",$J,"CLAIM",IBCLM,L)=LINE(Z)
    131         . S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D",10,1)="##RAW DATA: "_IBD
    132         . S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D1",1,10)="##RAW DATA: "_IBD
    133         . S IBD("LINE")=$G(IBD("LINE"))+CT
    134         Q
    135         ;
    136 15(IBD) ; Process claim status data
    137         ; INPUT:
    138         ;   IBD must be passed by reference = entire message line
    139         ;
    140         ; OUTPUT:
    141         ;   IBD array
    142         ;      "LINE" = The last line # populated in the message
    143         ;
    144         ;   ^TMP("IBMSG",$J,"CLAIM",claim #,"D",15,msg seq #)=
    145         ;   ^TMP("IBMSG",$J,"CLAIM",claim #,"D1",msg seq #,15)=
    146         ;                                       claim status raw data
    147         ;
    148         N IBCLM,Z,Z0,IBDATA
    149         S IBCLM=$$GETCLM^IBCE277($P(IBD,U,2))
    150         Q:IBCLM=""
    151         ;
    152         I '$D(^TMP("IBMSG",$J,"CLAIM",IBCLM)) D HDR(IBCLM,.IBD) ;Process header data if not already done for claim
    153         ;
    154         S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D",15,1)="##RAW DATA: "_IBD
    155         S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D1",1,15)="##RAW DATA: "_IBD
    156         Q
    157         ;
    158 20(IBD) ; Process claim level adjustment data
    159         ; Claim must have been referenced by a previous '05' level
    160         ;
    161         ; INPUT:
    162         ;   IBD must be passed by reference = entire message line
    163         ;
    164         ; OUTPUT:
    165         ;    IBD("LINE") = The last line # populated in the message
    166         ;   ^TMP("IBMSG",$J,"CLAIM",claim #,line #)=claim level adjustment
    167         ;                                  ,"D",20,seq#)=
    168         ;                                  ,"D1",seq#,20)=
    169         ;                                          claim level adjust. raw data
    170         ;
    171         N IBCLM
    172         S IBCLM=$$GETCLM^IBCE277($P(IBD,U,2))
    173         Q:'$D(^TMP("IBMSG",$J,"CLAIM",IBCLM))
    174         S IBD("LINE")=$G(IBD("LINE"))+1
    175         S ^TMP("IBMSG",$J,"CLAIM",IBCLM,IBD("LINE"))="ADJUSTMENT GROUP: "_$P(IBD,U,3)_"  QTY: "_+$P(IBD,U,6)_", AMT: "_($P(IBD,U,5)/100)
    176         S IBD("LINE")=IBD("LINE")+1
    177         S ^TMP("IBMSG",$J,"CLAIM",IBCLM,IBD("LINE"))="   REASON: ("_$P(IBD,U,4)_")  "_$P(IBD,U,7)
    178         S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D",20,IBD("LINE"))="##RAW DATA: "_IBD
    179         S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D1",IBD("LINE"),20)="##RAW DATA: "_IBD
    180         Q
    181         ;
    182 37(IBD) ; Process claim level adjustment data for Inpatient MEDICARE
    183         D 37^IBCE835A(.IBD)
    184         Q
    185         ;
    186 40(IBD) ; Process service line data
    187         D 40^IBCE835A(.IBD)
    188         Q
    189         ;
    190 45(IBD) ; Process service line adjustment data
    191         D 45^IBCE835A(.IBD)
    192         Q
    193         ;
    194 17(IBD) ; Process claim contact data segment
    195         D XX(.IBD,17)
    196         Q
    197         ;
    198 30(IBD) ; Process MEDICARE inpatient adjudication data (part 1)
    199         D XX(.IBD,30)
    200         Q
    201         ;
    202 35(IBD) ; Process MEDICARE inpatient adjudication data (part 2)
    203         D XX(.IBD,35)
    204         Q
    205         ;
    206 41(IBD) ; Process service line data (part 2)
    207         D XX(.IBD,41)
    208         Q
    209         ;
    210 42(IBD) ; Process service line data (part 3)
    211         D XX(.IBD,42)
    212         Q
    213         ;
    214 99(IBD) ; Process trailer record for non-MRA EOB
    215         D XX(.IBD,99)
    216         Q
    217         ;
    218 XX(IBD,IBID)    ; Store non-displayed data nodes in TMP array
    219         ;
    220         ; INPUT:
    221         ;   IBD must be passed by reference = entire message line
    222         ;   IBID = record id for generic store
    223         ;
    224         ; OUTPUT:
    225         ;   ^TMP("IBMSG",$J,"CLAIM",claim #,"D",IBID,msg seq #)=
    226         ;   ^TMP("IBMSG",$J,"CLAIM",claim #,"D1",msg seq #,IBID)=
    227         ;                                       claim status raw data
    228         ;    IBD("LINE") = The last line # populated in the message
    229         ;
    230         N IBCLM
    231         S IBCLM=$$GETCLM^IBCE277($P(IBD,U,2))
    232         ;
    233         S IBD("LINE")=$G(IBD("LINE"))+1
    234         S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D",IBID,IBD("LINE"))="##RAW DATA: "_IBD
    235         S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D1",IBD("LINE"),IBID)="##RAW DATA: "_IBD
    236         ;
    237         Q
    238         ;
     1IBCE835 ;ALB/TMP - 835 EDI EXPLANATION OF BENEFITS MSG PROCESSING ;19-JAN-99
     2 ;;2.0;INTEGRATED BILLING;**137,135,155**;21-MAR-94
     3 Q
     4 ;
     5 ; MESSAGE HEADER DATA STRING =
     6 ;   type of message^msg queue^msg #^bill #^^date/time
     7 ;
     8HDR(IBCLNO,IBD) ;Process header data
     9 ; INPUT:
     10 ;   IBCLNO = claim #
     11 ;
     12 ;   ^TMP("IBMSGH",$J,0) = header message text
     13 ;
     14 ; OUTPUT:
     15 ;   IBD array returned with processed data
     16 ;      "LINE"  = The last line # populated in the message
     17 ;      "DATE"  = Date/Time of EOB (Fileman format)
     18 ;      "MRA"   = 1 if MRA, 0 if not
     19 ;      "X12"   = 1 if X12, 0 if not
     20 ;
     21 ;   ^TMP("IBMSG",$J,"CLAIM",claim #,0)=MESSAGE HEADER DATA STRING
     22 ;                                  ,"D",0,1)=header record raw data
     23 ;                                  ,"D1",1,0)=header record raw data
     24 ;                                  ,line #)=EOB message lines
     25 ;
     26 N CT,IB399,IBD0,IBBILL,LINE,L,X,Y,Z,%DT
     27 S IBD0=$G(^TMP("IBMSGH",$J,0)),IBD("LINE")=0
     28 Q:IBD0=""
     29 S X=$P(IBD0,U,3),X=$E(X,5,8)_$E(X,1,4)_"@"_$P(IBD0,U,4)
     30 I X S %DT="XTS" D ^%DT
     31 S IBD("DATE")=$S(Y>0:Y,1:"")
     32 S IBD("MRA")=$P(IBD0,U,5)
     33 S IBD("X12")=($P(IBD0,U,2)="X")
     34 S CT=0
     35 ;
     36 I $P(IBD0,U,6)'="" S CT=CT+1 S LINE(CT)=$G(LINE(CT))_"Payer Name: "_$P(IBD0,U,6)
     37 ;
     38 I CT D
     39 . S (L,Z)=0
     40 . F  S Z=$O(LINE(Z)) Q:'Z  S L=L+1,^TMP("IBMSG",$J,"CLAIM",IBCLNO,L)=LINE(Z)
     41 . S IBD("LINE")=IBD("LINE")+CT
     42 ;
     43 S IB399=+$O(^DGCR(399,"B",$$GETCLM^IBCE277(IBCLNO),""),-1)
     44 ;
     45 S IBBILL=$$LAST364^IBCEF4(IB399)
     46 ;
     47 S ^TMP("IBMSG",$J,"CLAIM",IBCLNO,0)="835EOB"_U_$G(IBD("MSG#"))_U_$G(IBD("SUBJ"))_U_IBBILL_U_U_IBD("DATE")
     48 ;
     49 S ^TMP("IBMSG",$J,"CLAIM",IBCLNO,"D",0,1)="##RAW DATA: "_IBD0
     50 S ^TMP("IBMSG",$J,"CLAIM",IBCLNO,"D1",1,0)="##RAW DATA: "_IBD0
     51 Q
     52 ;
     535(IBD) ; Process claim patient ID data
     54 ; INPUT:
     55 ;   IBD must be passed by reference = entire message line
     56 ;
     57 ; OUTPUT:
     58 ;   IBD array
     59 ;      "LINE" = the last line # populated in the message
     60 ;
     61 ;   ^TMP("IBMSG",$J,"CLAIM",claim #,line#)=claim pt id message lines
     62 ;                                  ,"D",5,msg seq #)=
     63 ;                                  ,"D1",msg seq #,5)=
     64 ;                                       claim pt id message raw data
     65 ;
     66 N IBBILL
     67 S IBBILL=$$GETCLM^IBCE277($P(IBD,U,2))
     68 ;
     69 I '$D(^TMP("IBMSG",$J,"CLAIM",IBBILL)) D HDR(IBBILL,.IBD) ;Process header data if not already done for claim
     70 ;
     71 I $P(IBD,U,7)="Y"!($P(IBD,U,8)="Y") D  ;New patient name or id reported
     72 . ;
     73 . ; Alert to EDI mail group that name or ID has changed
     74 . N XQA,XQAMSG
     75 . S XQA("G.IB EDI")=""
     76 . S XQAMSG="EOB for bill # "_IBBILL_" indicates a new name or id exists for patient"
     77 . D SETUP^XQALERT
     78 . ;
     79 . S IBD("LINE")=$G(IBD("LINE"))+1
     80 . I $P(IBD,U,7)="Y" S ^TMP("IBMSG",$J,"CLAIM",IBBILL,IBD("LINE"))="New patient name: "_$P(IBD,U,3)_","_$P(IBD,U,4)_" "_$P(IBD,U,5)_"  "
     81 . I $P(IBD,U,8)="Y" S ^TMP("IBMSG",$J,"CLAIM",IBBILL,IBD("LINE"))=$G(^TMP("IBMSG",$J,"CLAIM",IBBILL,IBD("LINE")))_"New patient id: "_$P(IBD,U,6)
     82 ;
     83 I $P(IBD,U,9) D  ;Statement dates
     84 . S IBD("LINE")=$G(IBD("LINE"))+1
     85 . S ^TMP("IBMSG",$J,"CLAIM",IBBILL,IBD("LINE"))="Statement Dates: "_$$DATE^IBCE277($P(IBD,U,9))_" - "_$$DATE^IBCE277($P(IBD,U,10))
     86 ;
     87 S ^TMP("IBMSG",$J,"CLAIM",IBBILL,"D",5,1)="##RAW DATA: "_IBD
     88 S ^TMP("IBMSG",$J,"CLAIM",IBBILL,"D1",1,5)="##RAW DATA: "_IBD
     89 Q
     90 ;
     9110(IBD) ; Process claim status data
     92 ; INPUT:
     93 ;   IBD must be passed by reference = entire message line
     94 ;
     95 ; OUTPUT:
     96 ;   IBD array returned with processed data
     97 ;      "CLAIM" = The claim #
     98 ;      "LINE" = The last line # populated in the message
     99 ;
     100 ;   ^TMP("IBMSG",$J,"CLAIM",claim #,line#)=claim status message lines
     101 ;                                  ,"D",10,msg seq #)=
     102 ;                                  ,"D1",msg seq #,10)=
     103 ;                                       claim status raw data
     104 ;
     105 N IBCLM,CT,LINE,L,Z,Z0,IBDATA,IBSTAT
     106 S IBCLM=$$GETCLM^IBCE277($P(IBD,U,2))
     107 Q:IBCLM=""
     108 ;
     109 I '$D(^TMP("IBMSG",$J,"CLAIM",IBCLM)) D HDR(IBCLM,.IBD) ;Process header data if not already done for claim
     110 ;
     111 S CT=0
     112 F Z=3:1:6 I $P(IBD,U,Z)="Y" D  Q  ;Claim status
     113 . S IBSTAT=(Z-2)
     114 . S CT=CT+1,LINE(CT)="CLAIM STATUS: "_$P("PROCESSED^DENIED^PENDED^REVERSAL",U,IBSTAT)
     115 I '$G(IBSTAT) D
     116 . S CT=CT+1,LINE(CT)="CLAIM STATUS: "_$P(IBD,U,7)_" (OTHER)"
     117 ;
     118 I $P(IBD,U,8)'="" D  ;Crossed over info
     119 . S LINE(CT)=LINE(CT)_"  Crossed over to: "_$P(IBD,U,9)_"  "_$P(IBD,U,8)
     120 ;
     121 I CT D
     122 . S L=$G(IBD("LINE")),Z=0
     123 . F  S Z=$O(LINE(Z)) Q:'Z  S L=L+1,^TMP("IBMSG",$J,"CLAIM",IBCLM,L)=LINE(Z)
     124 . S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D",10,1)="##RAW DATA: "_IBD
     125 . S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D1",1,10)="##RAW DATA: "_IBD
     126 . S IBD("LINE")=$G(IBD("LINE"))+CT
     127 Q
     128 ;
     12915(IBD) ; Process claim status data
     130 ; INPUT:
     131 ;   IBD must be passed by reference = entire message line
     132 ;
     133 ; OUTPUT:
     134 ;   IBD array
     135 ;      "LINE" = The last line # populated in the message
     136 ;
     137 ;   ^TMP("IBMSG",$J,"CLAIM",claim #,"D",15,msg seq #)=
     138 ;   ^TMP("IBMSG",$J,"CLAIM",claim #,"D1",msg seq #,15)=
     139 ;                                       claim status raw data
     140 ;
     141 N IBCLM,Z,Z0,IBDATA
     142 S IBCLM=$$GETCLM^IBCE277($P(IBD,U,2))
     143 Q:IBCLM=""
     144 ;
     145 I '$D(^TMP("IBMSG",$J,"CLAIM",IBCLM)) D HDR(IBCLM,.IBD) ;Process header data if not already done for claim
     146 ;
     147 S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D",15,1)="##RAW DATA: "_IBD
     148 S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D1",1,15)="##RAW DATA: "_IBD
     149 Q
     150 ;
     15120(IBD) ; Process claim level adjustment data
     152 ; Claim must have been referenced by a previous '05' level
     153 ;
     154 ; INPUT:
     155 ;   IBD must be passed by reference = entire message line
     156 ;
     157 ; OUTPUT:
     158 ;    IBD("LINE") = The last line # populated in the message
     159 ;   ^TMP("IBMSG",$J,"CLAIM",claim #,line #)=claim level adjustment
     160 ;                                  ,"D",20,seq#)=
     161 ;                                  ,"D1",seq#,20)=
     162 ;                                          claim level adjust. raw data
     163 ;
     164 N IBCLM
     165 S IBCLM=$$GETCLM^IBCE277($P(IBD,U,2))
     166 Q:'$D(^TMP("IBMSG",$J,"CLAIM",IBCLM))
     167 S IBD("LINE")=$G(IBD("LINE"))+1
     168 S ^TMP("IBMSG",$J,"CLAIM",IBCLM,IBD("LINE"))="ADJUSTMENT GROUP: "_$P(IBD,U,3)_"  QTY: "_+$P(IBD,U,6)_", AMT: "_($P(IBD,U,5)/100)
     169 S IBD("LINE")=IBD("LINE")+1
     170 S ^TMP("IBMSG",$J,"CLAIM",IBCLM,IBD("LINE"))="   REASON: ("_$P(IBD,U,4)_")  "_$P(IBD,U,7)
     171 S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D",20,IBD("LINE"))="##RAW DATA: "_IBD
     172 S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D1",IBD("LINE"),20)="##RAW DATA: "_IBD
     173 Q
     174 ;
     17537(IBD) ; Process claim level adjustment data for Inpatient MEDICARE
     176 D 37^IBCE835A(.IBD)
     177 Q
     178 ;
     17940(IBD) ; Process service line data
     180 D 40^IBCE835A(.IBD)
     181 Q
     182 ;
     18345(IBD) ; Process service line adjustment data
     184 D 45^IBCE835A(.IBD)
     185 Q
     186 ;
     18717(IBD) ; Process claim contact data segment
     188 D XX(.IBD,17)
     189 Q
     190 ;
     19130(IBD) ; Process MEDICARE inpatient adjudication data (part 1)
     192 D XX(.IBD,30)
     193 Q
     194 ;
     19535(IBD) ; Process MEDICARE inpatient adjudication data (part 2)
     196 D XX(.IBD,35)
     197 Q
     198 ;
     19941(IBD) ; Process service line data (part 2)
     200 D XX(.IBD,41)
     201 Q
     202 ;
     20342(IBD) ; Process service line data (part 3)
     204 D XX(.IBD,42)
     205 Q
     206 ;
     20799(IBD) ; Process trailer record for non-MRA EOB
     208 D XX(.IBD,99)
     209 Q
     210 ;
     211XX(IBD,IBID) ; Store non-displayed data nodes in TMP array
     212 ;
     213 ; INPUT:
     214 ;   IBD must be passed by reference = entire message line
     215 ;   IBID = record id for generic store
     216 ;
     217 ; OUTPUT:
     218 ;   ^TMP("IBMSG",$J,"CLAIM",claim #,"D",IBID,msg seq #)=
     219 ;   ^TMP("IBMSG",$J,"CLAIM",claim #,"D1",msg seq #,IBID)=
     220 ;                                       claim status raw data
     221 ;    IBD("LINE") = The last line # populated in the message
     222 ;
     223 N IBCLM
     224 S IBCLM=$$GETCLM^IBCE277($P(IBD,U,2))
     225 ;
     226 S IBD("LINE")=$G(IBD("LINE"))+1
     227 S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D",IBID,IBD("LINE"))="##RAW DATA: "_IBD
     228 S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D1",IBD("LINE"),IBID)="##RAW DATA: "_IBD
     229 ;
     230 Q
     231 ;
Note: See TracChangeset for help on using the changeset viewer.