| 1 | IBCEPTC0 ;ALB/ESG - EDI PREVIOUSLY TRANSMITTED CLAIMS CONT ; 12/19/05
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**320,348**;21-MAR-94;Build 5
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  Q
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | LIST ; Queued report format entrypoint
 | 
|---|
| 7 |  ; variables pre-defined: IBREP,IBSORT,IBFORM,IBDT1,IBDT2,
 | 
|---|
| 8 |  ;                        IBCRIT,IBPTCCAN,IBRCBFPC
 | 
|---|
| 9 |  ;  ^TMP("IB_PREV_CLAIM_INS,$J) global
 | 
|---|
| 10 |  K ^TMP("IB_PREV_CLAIM",$J)
 | 
|---|
| 11 |  N IBBDA,IBBDA0,IBCURI,IBDA,IBDT,IBFT,IBIFN,IBS1,IBS2,IBDTX
 | 
|---|
| 12 |  N INCLUDE,EDI,PROF,INST,IB0,IBZ1,DATA,IB364,CURSEQ,IBZ,IBZDAT
 | 
|---|
| 13 |  I IBREP="R" N IBPAGE,IBSTOP,IBHDRDT S (IBPAGE,IBSTOP)=0
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 |  ; evaluate claim transmission data from files 364.1 and 364
 | 
|---|
| 16 |  S IBDT=IBDT1-.1
 | 
|---|
| 17 |  F  S IBDT=$O(^IBA(364.1,"ALT",IBDT)) Q:'IBDT!((IBDT\1)>IBDT2)  S IBBDA=0 F  S IBBDA=$O(^IBA(364.1,"ALT",IBDT,IBBDA)) Q:'IBBDA  D
 | 
|---|
| 18 |  . S IBDTX=IBDT\1
 | 
|---|
| 19 |  . S IBDA=0 F  S IBDA=$O(^IBA(364,"C",IBBDA,IBDA)) Q:'IBDA  D
 | 
|---|
| 20 |  .. D STORE(IBDA,IBBDA,IBDTX,$P($G(^IBA(364,IBDA,0)),U,7)+1)
 | 
|---|
| 21 |  .. Q
 | 
|---|
| 22 |  . Q
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  ; evaluate the test transmissions from file 361.4 (SRS 3.2.10.3)
 | 
|---|
| 25 |  S IBDT=IBDT1-.1
 | 
|---|
| 26 |  F  S IBDT=$O(^IBM(361.4,"ALT",IBDT)) Q:'IBDT!(IBDT>IBDT2)  S IBIFN=0 F  S IBIFN=$O(^IBM(361.4,"ALT",IBDT,IBIFN)) Q:'IBIFN  S IBZ1=0 F  S IBZ1=$O(^IBM(361.4,IBIFN,1,IBZ1)) Q:'IBZ1  D
 | 
|---|
| 27 |  . S DATA=$G(^IBM(361.4,IBIFN,1,IBZ1,0)) Q:DATA=""
 | 
|---|
| 28 |  . S IBDTX=$P(DATA,U,1)\1    ; transmit date
 | 
|---|
| 29 |  . Q:IBDTX<IBDT1             ;  too early
 | 
|---|
| 30 |  . Q:IBDTX>IBDT2             ;  too late
 | 
|---|
| 31 |  . S IBBDA=+$P(DATA,U,2)     ; batch ien
 | 
|---|
| 32 |  . Q:'IBBDA
 | 
|---|
| 33 |  . ;
 | 
|---|
| 34 |  . ; attempt to find the corresponding entry in file 364 for this one
 | 
|---|
| 35 |  . S IB364="",CURSEQ=$TR(+$P(DATA,U,4),"123","PST")
 | 
|---|
| 36 |  . S IBZ=" " F  S IBZ=$O(^IBA(364,"B",IBIFN,IBZ),-1) Q:'IBZ  D  Q:IB364
 | 
|---|
| 37 |  .. S IBZDAT=$G(^IBA(364,IBZ,0))
 | 
|---|
| 38 |  .. I $P(IBZDAT,U,8)'=CURSEQ Q      ; no match on payer sequence
 | 
|---|
| 39 |  .. I $F(".X.P.","."_$P(IBZDAT,U,3)_".") Q    ; transmission status must be farther than this
 | 
|---|
| 40 |  .. S IB364=IBZ Q
 | 
|---|
| 41 |  .. Q
 | 
|---|
| 42 |  . ;
 | 
|---|
| 43 |  . I 'IB364 Q      ; need to have an entry in file 364 to proceed
 | 
|---|
| 44 |  . ;
 | 
|---|
| 45 |  . D STORE(IB364,IBBDA,IBDTX,3)
 | 
|---|
| 46 |  . Q
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  I IBREP="R" D RPT^IBCEPTC1(IBSORT,IBDT1,IBDT2) G END  ; Output report
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 |  D EN^VALM("IBCE VIEW PREV TRANS"_IBSORT) ; List Manager
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 | END K ^TMP("IB_PREV_CLAIM",$J),^TMP("IB_PREV_CLAIM_INS",$J)
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 | STORE(IB364,IBBDA,IBDTX,IBTYP) ; Check and store transmission data
 | 
|---|
| 56 |  ; Parameters
 | 
|---|
| 57 |  ; IB364 - ien to file 364 (claim transmission ien)
 | 
|---|
| 58 |  ; IBBDA - ien to file 364.1 (batch ien)
 | 
|---|
| 59 |  ; IBDTX - fm transmit date (no time) (either from 364.1 or 361.41)
 | 
|---|
| 60 |  ; IBTYP - 1 = transmission data from file 364 (field .07 is live)
 | 
|---|
| 61 |  ;         2 = transmission data from file 364 (field .07 is test)
 | 
|---|
| 62 |  ;         3 = transmission data from file 361.41 (test always)
 | 
|---|
| 63 |  ; Note:
 | 
|---|
| 64 |  ; Variables IBFORM, IBCRIT, IBPTCCAN, IBRCBFPC, and IBSORT are
 | 
|---|
| 65 |  ;     assumed to exist here in this procedure.
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 |  NEW IBIFN,IB0,IBFT,IBCURI,INCLUDE,EDI,PROF,INST,IBBDA0,IBS1,IBS2
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 |  S IBIFN=+$G(^IBA(364,IB364,0))
 | 
|---|
| 70 |  S IB0=$G(^DGCR(399,IBIFN,0))
 | 
|---|
| 71 |  S IBFT=$$FT^IBCEF(IBIFN)   ; form type of claim
 | 
|---|
| 72 |  I IBFORM'="B",$S(IBFT=3:IBFORM="C",IBFT=2:IBFORM="U",1:1) G STOREX
 | 
|---|
| 73 |  S IBCURI=$$CURR^IBCEF2(IBIFN) I 'IBCURI G STOREX   ; current ins ien
 | 
|---|
| 74 |  S EDI=$$UP^XLFSTR($G(^DIC(36,IBCURI,3)))           ; 3 node EDI data
 | 
|---|
| 75 |  S PROF=$P(EDI,U,2),INST=$P(EDI,U,4)                ; payer IDs
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 |  ; screen for user selected insurance companies/payers
 | 
|---|
| 78 |  I +$G(^TMP("IB_PREV_CLAIM_INS",$J)) D  I 'INCLUDE G STOREX
 | 
|---|
| 79 |  . S INCLUDE=0
 | 
|---|
| 80 |  . I $D(^TMP("IB_PREV_CLAIM_INS",$J,1,IBCURI)) S INCLUDE=1 Q
 | 
|---|
| 81 |  . I '$D(^TMP("IB_PREV_CLAIM_INS",$J,2)) Q
 | 
|---|
| 82 |  . I PROF'="",$D(^TMP("IB_PREV_CLAIM_INS",$J,2,PROF)) S INCLUDE=1 Q
 | 
|---|
| 83 |  . I INST'="",$D(^TMP("IB_PREV_CLAIM_INS",$J,2,INST)) S INCLUDE=1 Q
 | 
|---|
| 84 |  . Q
 | 
|---|
| 85 |  ;
 | 
|---|
| 86 |  I IBCRIT=1,'$$MRASEC^IBCEF4(IBIFN) G STOREX
 | 
|---|
| 87 |  I IBCRIT=2,($$COBN^IBCEF(IBIFN)>1) G STOREX
 | 
|---|
| 88 |  I IBCRIT=3,($$COBN^IBCEF(IBIFN)=1) G STOREX
 | 
|---|
| 89 |  I IBCRIT=4,'$P($G(^DGCR(399,IBIFN,"TX")),U,7) G STOREX
 | 
|---|
| 90 |  ;
 | 
|---|
| 91 |  ; skip cancelled claims conditionally
 | 
|---|
| 92 |  I $P(IB0,U,13)=7,'IBPTCCAN G STOREX
 | 
|---|
| 93 |  ;
 | 
|---|
| 94 |  ; skip claims forced to print at clearinghouse (claim check)
 | 
|---|
| 95 |  I $P($G(^DGCR(399,IBIFN,"TX")),U,8)=2,'IBRCBFPC G STOREX
 | 
|---|
| 96 |  ;
 | 
|---|
| 97 |  ; skip claims forced to print at clearinghouse (payer check)
 | 
|---|
| 98 |  I IBFT=2,PROF["PRNT",'IBRCBFPC G STOREX    ; 1500, prof payer ID
 | 
|---|
| 99 |  I IBFT=3,INST["PRNT",'IBRCBFPC G STOREX    ;   ub, inst payer ID
 | 
|---|
| 100 |  ;
 | 
|---|
| 101 |  S IBBDA0=$G(^IBA(364.1,+IBBDA,0))             ; 0 node of batch
 | 
|---|
| 102 |  ;
 | 
|---|
| 103 |  S IBS1=$S(IBSORT=1:(99999999-IBDTX)_U_$P(IBBDA0,U)_U_$P(IBBDA0,U,14)_U_+$P(IBBDA0,U,5),1:$P($G(^DIC(36,+IBCURI,0)),U)_U_+IBCURI)
 | 
|---|
| 104 |  S IBS2=$S(IBSORT=1:$P(IB0,U,1),1:99999999-IBDTX)
 | 
|---|
| 105 |  ;
 | 
|---|
| 106 |  ; Meets all selection criteria - extract to sort global
 | 
|---|
| 107 |  S:IBS1="" IBS1=" " S:IBS2="" IBS2=" "
 | 
|---|
| 108 |  I '$D(^TMP("IB_PREV_CLAIM",$J,IBS1)) S ^TMP("IB_PREV_CLAIM",$J,IBS1)=$S(IBSORT=1:$$FMTE^XLFDT(IBDTX,"1"),1:IBIFN)
 | 
|---|
| 109 |  S ^TMP("IB_PREV_CLAIM",$J,IBS1,IBS2,IB364)=IBTYP
 | 
|---|
| 110 |  ;
 | 
|---|
| 111 | STOREX ;
 | 
|---|
| 112 |  Q
 | 
|---|
| 113 |  ;
 | 
|---|