| 1 | IBCNSMR7 ;ALB/TJK - MRA EXTRACT ;2/20/01  9:55 AM ;2/14/01  10:25 AM
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**146**;21-MAR-94
 | 
|---|
| 3 |  ;Compiles MRA Extract data
 | 
|---|
| 4 | DQ ; -- entry point from task manager
 | 
|---|
| 5 |  N IBINSCO,DFN,DATACNT,SSN,PATNM,DOB,DIQ,DA,DIC,DR,ININSCON,INS,IBTR
 | 
|---|
| 6 |  N IBINSCON,Y2 K ^TMP("IBCNSMR7",$J)
 | 
|---|
| 7 |  ;Loop through list of insurance companies involved
 | 
|---|
| 8 |  S IBINSCO=0
 | 
|---|
| 9 |  F  S IBINSCO=$O(^IBE(350.9,1,99,"B",IBINSCO)) Q:'IBINSCO  D
 | 
|---|
| 10 |     .S DIC=36,DA=IBINSCO,DR=.01,DIQ="INS(" D EN^DIQ1
 | 
|---|
| 11 |     .S IBINSCON=INS(36,IBINSCO,.01) K INS
 | 
|---|
| 12 |     .;Get subscribers for insurance company
 | 
|---|
| 13 |     .S DFN=0 F  S DFN=$O(^DPT("AB",IBINSCO,DFN)) Q:'DFN  D
 | 
|---|
| 14 |        ..; Gather patient infor
 | 
|---|
| 15 |        ..D ^VADPT S PATNM=VADM(1),SSN=+VADM(2),DOB=$P(VADM(3),"^")
 | 
|---|
| 16 |        ..K VADM
 | 
|---|
| 17 |        ..N IBN,IBX,IBCNT,IBFLG,Y,Y1,CHG,TCHG,ARBILL,EVDATE,PAREVENT,NEV
 | 
|---|
| 18 |        ..N IBCHDT
 | 
|---|
| 19 |        ..S NEV="" F  S NEV=$O(^IB("AFDT",DFN,NEV)) Q:'NEV  I -NEV'>IBAEND S PAREVENT=0 F  S PAREVENT=$O(^IB("AFDT",DFN,NEV,PAREVENT)) Q:'PAREVENT  D
 | 
|---|
| 20 |          ...S (TCHG,IBN,IBFLG,IBCNT,ARBILL)=0,EVDATE=-NEV
 | 
|---|
| 21 |          ...S IBN=0 F  S IBN=$O(^IB("AF",PAREVENT,IBN)) Q:'IBN  D
 | 
|---|
| 22 |             ....Q:'$D(^IB(IBN,0))  S IBX=^(0)
 | 
|---|
| 23 |             ....Q:$P(IBX,"^",8)["ADMISSION"
 | 
|---|
| 24 |             ....Q:$P(IBX,"^",10)
 | 
|---|
| 25 |             ....Q:$P(IBX,"^",11)=""
 | 
|---|
| 26 |             ....Q:$P(IBX,"^",17)<IBABEG
 | 
|---|
| 27 |             ....N DIC,Y
 | 
|---|
| 28 |             ....S DIC=430,X=$P(IBX,"^",11),DIC(0)="MZ" D ^DIC Q:'Y
 | 
|---|
| 29 |             ....I ($P(Y(0),U,8)=39)!($P(Y(0),U,8)=26) Q
 | 
|---|
| 30 |             ....S ARBILL=+Y
 | 
|---|
| 31 |             ....Q:$D(^TMP("IBCNSMR7",$J,"BILL",ARBILL))
 | 
|---|
| 32 |             ....S (Y,Y2)=0
 | 
|---|
| 33 |             ....;check for valid insurance
 | 
|---|
| 34 |              ....F  S Y=$O(^DPT(DFN,.312,"B",IBINSCO,Y)) Q:'Y  S Y1=$G(^DPT(DFN,.312,Y,0)),Y2=$$CHK^IBCNS1(Y1,EVDATE,2) Q:Y2
 | 
|---|
| 35 |             ....Q:'Y2
 | 
|---|
| 36 |             ....D TRANS
 | 
|---|
| 37 |             ....Q
 | 
|---|
| 38 |         ...Q
 | 
|---|
| 39 |        ..Q
 | 
|---|
| 40 |     .Q
 | 
|---|
| 41 |  ;calls IBCSNMR8 to make .dat file and send completion message to user
 | 
|---|
| 42 |  K ^TMP("IBCNSMR7",$J,"BILL") D ^IBCNSMR8
 | 
|---|
| 43 | END K ^TMP("IBCNSMR7",$J)
 | 
|---|
| 44 |  Q
 | 
|---|
| 45 | TRANS ;
 | 
|---|
| 46 |  N T1,T0,TRAN,TDATA,TTYPE,TAMT,TCNT,IBCHDT,PAYM,DATA,EVNO,TOTP,PDATE
 | 
|---|
| 47 |  S (TRAN,TOTP)=0
 | 
|---|
| 48 |  F  S TRAN=$O(^PRCA(433,"C",ARBILL,TRAN)) Q:'TRAN  D
 | 
|---|
| 49 |     .S (IBCHDT,PDATE)=0
 | 
|---|
| 50 |     .S T0=$G(^PRCA(433,TRAN,0)),T1=$G(^(1))
 | 
|---|
| 51 |     .Q:$P(T0,"^",4)'=2
 | 
|---|
| 52 |     .S TTYPE=$P(T1,"^",2)
 | 
|---|
| 53 |     .S TAMT=$P(T1,"^",5)
 | 
|---|
| 54 |     .I (TTYPE=2)!(TTYPE=34) S TOTP=TOTP+TAMT,PDATE=+T1
 | 
|---|
| 55 |     .S EVNO=$O(^IB("AT",TRAN,0)) S:'EVNO IBX=""
 | 
|---|
| 56 |     .I EVNO D
 | 
|---|
| 57 |        ..S IBX=$G(^IB(EVNO,0))
 | 
|---|
| 58 |        ..S IBCHDT=$P(IBX,"^",17),IBX=$P(IBX,"^")
 | 
|---|
| 59 |        ..Q
 | 
|---|
| 60 |     .I 'IBCHDT S IBCHDT=+T1
 | 
|---|
| 61 |     .;sets data in global ^TMP("IBCNSMR7",$J,"DATA")
 | 
|---|
| 62 |     .S DATACNT=$G(DATACNT)+1
 | 
|---|
| 63 |     .S DATA=SITE_TRAN_"^"_PATNM_"^"_SSN_"^"_IBINSCON_"^"_$$DTCONV(IBCHDT)
 | 
|---|
| 64 |     .S DATA=DATA_"^"_$J(TAMT,0,2)_"^"_$S(PDATE:$$DTCONV(PDATE),1:"")
 | 
|---|
| 65 |     .S DATA=DATA_"^"_$S(PDATE:$J(TAMT,0,2),1:"")_"^"_$$DTCONV(DOB)_"^"_SITE
 | 
|---|
| 66 |     .S DATA=DATA_"^"_$P(^PRCA(430,ARBILL,0),"^")_"^"_IBX
 | 
|---|
| 67 |     .S DATA=DATA_"^"_$P(^PRCA(430.3,TTYPE,0),"^")_"^"
 | 
|---|
| 68 |     .I '$O(^PRCA(433,"C",ARBILL,TRAN)) S DATA=DATA_$J(TOTP,0,2)
 | 
|---|
| 69 |     .S ^TMP("IBCNSMR7",$J,"DATA",DATACNT)=DATA
 | 
|---|
| 70 |     .Q
 | 
|---|
| 71 |  S ^TMP("IBCNSMR7",$J,"BILL",ARBILL)=""
 | 
|---|
| 72 |  Q
 | 
|---|
| 73 | DTCONV(DATE)    ;Converts dates from Fileman to Oracle format
 | 
|---|
| 74 |  N MON
 | 
|---|
| 75 |  S MON=+$E(DATE,4,5),MON=$S(MON=1:"JAN",MON=2:"FEB",MON=3:"MAR",MON=4:"APR",MON=5:"MAY",MON=6:"JUN",MON=7:"JUL",MON=8:"AUG",MON=9:"SEP",MON=10:"OCT",MON=11:"NOV",1:"DEC")
 | 
|---|
| 76 |  S DATE=$E(DATE,6,7)_"-"_MON_"-"_($E(DATE,1,3)+1700)
 | 
|---|
| 77 |  Q DATE
 | 
|---|