| 1 | IBCEM1 ;ALB/TMP - 837 EDI RETURN MESSAGE MAIN LIST TEMPLATE ;02-MAY-96
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**137,155**;21-MAR-94
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | EN ; Main entry point
 | 
|---|
| 5 |  D DT^DICRW
 | 
|---|
| 6 |  K XQORS,VALMEVL,IBFASTXT,IBDA
 | 
|---|
| 7 |  D EN^VALM("IBCEM 837 MESSAGE LIST")
 | 
|---|
| 8 |  K IBFASTXT,IBDA
 | 
|---|
| 9 |  Q
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 | INIT ; -- set up inital variables
 | 
|---|
| 12 |  S U="^",VALMCNT=0,VALMBG=1
 | 
|---|
| 13 |  D BLD
 | 
|---|
| 14 |  Q
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 | REBLD ; Set up formatted global
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 | BLD ; -- build list of messages
 | 
|---|
| 19 |  N IBCNT,IBEOB,IBMSGT,IBMSG,X,IB0
 | 
|---|
| 20 |  K ^TMP("IBCEM-837",$J),^TMP("IBCEM-837DX",$J)
 | 
|---|
| 21 |  S (IBCNT,IBMSG,VALMCNT)=0,IBEOB=+$O(^IBE(364.3,"B","835EOB",0))
 | 
|---|
| 22 |  F  S IBMSG=$O(^IBA(364.2,IBMSG)) Q:'IBMSG  S IB0=$G(^(IBMSG,0)) D
 | 
|---|
| 23 |  . N IBSTOP
 | 
|---|
| 24 |  . S IBSTOP=0
 | 
|---|
| 25 |  . S IBMSGT=$P(IB0,U,2)
 | 
|---|
| 26 |  . I IBMSGT,IBEOB,IBMSGT=IBEOB D  Q:IBSTOP
 | 
|---|
| 27 |  .. N Z,Z0 ; Only allow MRA EOB's to be viewed
 | 
|---|
| 28 |  .. S Z=0 F  S Z=$O(^IBA(364.2,IBMSG,2,Z)) Q:'Z!(IBSTOP)  S Z0=$G(^(Z,0)) I $E(Z0,1,12)="##RAW DATA: ",$E(Z0,13,18)="835EOB",$P(Z0,U,5)'="Y" S IBSTOP=1 Q
 | 
|---|
| 29 |  . ; -- add to list
 | 
|---|
| 30 |  . S IBCNT=IBCNT+1,X=""
 | 
|---|
| 31 |  . S X=$$SETFLD^VALM1(IBCNT,X,"NUMBER")
 | 
|---|
| 32 |  . S X=$$SETFLD^VALM1($$FMTE^XLFDT($P(IB0,U,3),2),X,"DATEREC")
 | 
|---|
| 33 |  . I IB0'="" S X=$$SETFLD^VALM1($$FMTE^XLFDT($P(IB0,U,10),2),X,"DATEMSG")
 | 
|---|
| 34 |  . S X=$$SETFLD^VALM1(+IB0,X,"MENTRY")
 | 
|---|
| 35 |  . S Z=$P($G(^IBE(364.3,+$P(IB0,U,2),0)),U,6) S:Z="EOB" Z="MRA"
 | 
|---|
| 36 |  . S X=$$SETFLD^VALM1($E(Z_$J("",6),1,6),X,"TYPE")
 | 
|---|
| 37 |  . S X=$$SETFLD^VALM1($P($G(^IBA(364.1,+$P(IB0,U,4),0)),U),X,"BATCH")
 | 
|---|
| 38 |  . S X=$$SETFLD^VALM1($$BILLNO($P(IB0,U,5)),X,"BILL")
 | 
|---|
| 39 |  . S X=$$SETFLD^VALM1($$EXPAND^IBTRE(364.2,.06,$P(IB0,U,6)),X,"STATUS")
 | 
|---|
| 40 |  . D SET(X)
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 |  I '$D(^TMP("IBCEM-837",$J)) S VALMCNT=2,IBCNT=2,^TMP("IBCEM-837",$J,1,0)=" ",^TMP("IBCEM-837",$J,2,0)="   All Incoming EDI Messages For Billing Have Filed - No Action Needed"
 | 
|---|
| 43 |  Q
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 | FNL ; -- Clean up list
 | 
|---|
| 46 |  K ^TMP("IBCEM-837DX",$J)
 | 
|---|
| 47 |  D CLEAN^VALM10
 | 
|---|
| 48 |  K IBFASTXT
 | 
|---|
| 49 |  Q
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 | SET(X) ; -- set arrays for 837 return messages
 | 
|---|
| 52 |  S VALMCNT=VALMCNT+1,^TMP("IBCEM-837",$J,VALMCNT,0)=X
 | 
|---|
| 53 |  S ^TMP("IBCEM-837",$J,"IDX",VALMCNT,IBCNT)=""
 | 
|---|
| 54 |  S ^TMP("IBCEM-837DX",$J,IBCNT)=VALMCNT_U_IBMSG
 | 
|---|
| 55 |  Q
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 | BILLNO(DA) ; Return bill # from entry in file 364
 | 
|---|
| 58 |  N Z
 | 
|---|
| 59 |  S Z=$P($G(^DGCR(399,+$P($G(^IBA(364,+DA,0)),U),0)),U)
 | 
|---|
| 60 |  Q $S($L(Z):Z,1:DA)
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 | BATNO(DA) ; Return batch # from entry in file 364
 | 
|---|
| 63 |  Q $P($G(^IBA(364.1,+$P($G(^IBA(364,+DA,0)),U,2),0)),U)
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 | HDR ;
 | 
|---|
| 66 |  S VALMHDR(1)=$J("",17)_"RETURN MESSAGES NEEDING TO BE FILED"
 | 
|---|
| 67 |  S VALMHDR(2)=" "
 | 
|---|
| 68 |  Q
 | 
|---|
| 69 |  ;
 | 
|---|