| [613] | 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 | ; | 
|---|