| [613] | 1 | IBCNSCD1 ;ALB/CPM - DELETE INSURANCE COMPANY (CON'T) ; 02-FEB-95 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**28,46,80**;21-MAR-94 | 
|---|
|  | 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | DQ ; Queued entry point for the final clean-up job. | 
|---|
|  | 6 | ; | 
|---|
|  | 7 | K ^TMP($J,"IBCNSCD") | 
|---|
|  | 8 | L +^IB("IBCNSCD"):5 E  G DDQ ;    another clean-up job got started | 
|---|
|  | 9 | S IBC=0 F  S IBC=$O(^DIC(36,"ADEL",IBC)) Q:'IBC  S ^TMP($J,"IBCNSCD",IBC)=$P($G(^DIC(36,IBC,5)),"^",2) | 
|---|
|  | 10 | I '$D(^TMP($J,"IBCNSCD")) G DDQ ; no companies to be deleted | 
|---|
|  | 11 | ; | 
|---|
|  | 12 | D NOW^%DTC S IBBDT=% | 
|---|
|  | 13 | ; | 
|---|
|  | 14 | ; - dispositions | 
|---|
|  | 15 | S DFN=0 F  S DFN=$O(^DPT(DFN)) Q:'DFN  S IBC=0 F  S IBC=$O(^DPT(DFN,"DIS",IBC)) Q:'IBC  S IBCO=$P($G(^(IBC,2)),"^",6) I IBCO,$D(^TMP($J,"IBCNSCD",IBCO)) D | 
|---|
|  | 16 | .S $P(^DPT(DFN,"DIS",IBC,2),"^",6)=$G(^TMP($J,"IBCNSCD",IBCO)) | 
|---|
|  | 17 | .S IBCT("DIS")=$G(IBCT("DIS"))+1 | 
|---|
|  | 18 | .I $G(^TMP($J,"IBCNSCD",IBCO))="" S IBCT("DIS",DFN,IBC)="" | 
|---|
|  | 19 | ; | 
|---|
|  | 20 | ; - insurance companies | 
|---|
|  | 21 | S IBC=0 F  S IBC=$O(^DIC(36,IBC)) Q:'IBC  D | 
|---|
|  | 22 | .S IB0=$G(^DIC(36,IBC,0)),IB12=$G(^(.12)),IB13=$G(^(.13)),IB14=$G(^(.14)),IB16=$G(^(.16)),IB18=$G(^(.18)) | 
|---|
|  | 23 | .K IBV | 
|---|
|  | 24 | .I $P(IB0,"^",16),$D(^TMP($J,"IBCNSCD",$P(IB0,"^",16))) S IBV(0)="16^"_^($P(IB0,"^",16)) | 
|---|
|  | 25 | .I $P(IB12,"^",7),$D(^TMP($J,"IBCNSCD",$P(IB12,"^",7))) S IBV(.12)="7^"_^($P(IB12,"^",7)) | 
|---|
|  | 26 | .I $P(IB13,"^",9),$D(^TMP($J,"IBCNSCD",$P(IB13,"^",9))) S IBV(.13)="9^"_^($P(IB13,"^",9)) | 
|---|
|  | 27 | .I $P(IB14,"^",7),$D(^TMP($J,"IBCNSCD",$P(IB14,"^",7))) S IBV(.14)="7^"_^($P(IB14,"^",7)) | 
|---|
|  | 28 | .I $P(IB16,"^",7),$D(^TMP($J,"IBCNSCD",$P(IB16,"^",7))) S IBV(.16)="7^"_^($P(IB16,"^",7)) | 
|---|
|  | 29 | .I $P(IB18,"^",7),$D(^TMP($J,"IBCNSCD",$P(IB18,"^",7))) S IBV(.18)="7^"_^($P(IB18,"^",7)) | 
|---|
|  | 30 | .Q:'$D(IBV) | 
|---|
|  | 31 | .; | 
|---|
|  | 32 | .; - delete or repoint | 
|---|
|  | 33 | .S IBX="" F  S IBX=$O(IBV(IBX)) Q:IBX=""  D | 
|---|
|  | 34 | ..S $P(^DIC(36,IBC,IBX),"^",+IBV(IBX))=$P(IBV(IBX),"^",2) | 
|---|
|  | 35 | ..S IBCT("INS",IBX)=$G(IBCT("INS",IBX))+1 | 
|---|
|  | 36 | ..I $P(IBV(IBX),"^",2)="" S IBCT("INS",IBX,IBC)="" | 
|---|
|  | 37 | ; | 
|---|
|  | 38 | ; - insurance reviews | 
|---|
|  | 39 | S IBC=0 F  S IBC=$O(^IBT(356.2,IBC)) Q:'IBC  S IBCO=$P($G(^(IBC,0)),"^",8) I IBCO,$D(^TMP($J,"IBCNSCD",IBCO)) S IBCD=$G(^IBT(356.2,IBC,0)) D | 
|---|
|  | 40 | .S IBVAL=$G(^TMP($J,"IBCNSCD",IBCO)) I 'IBVAL S IBVAL="@" | 
|---|
|  | 41 | .S DA=IBC,DR=".08////"_IBVAL,DIE="^IBT(356.2," D ^DIE K DA,DIE,DR | 
|---|
|  | 42 | .S IBCT("IR")=$G(IBCT("IR"))+1 | 
|---|
|  | 43 | .I IBVAL="@" S IBCT("IR",+$P(IBCD,"^",5),+IBCD)="" | 
|---|
|  | 44 | ; | 
|---|
|  | 45 | ; - bills | 
|---|
|  | 46 | S IBC=0 F  S IBC=$O(^DGCR(399,IBC)) Q:'IBC  S IBCNS=0 F  S IBCNS=$O(^DGCR(399,IBC,"AIC",IBCNS)) Q:'IBCNS  I $D(^TMP($J,"IBCNSCD",IBCNS)) S (IBREP,IBVAL)=$G(^(IBCNS)) D FIND | 
|---|
|  | 47 | ; | 
|---|
|  | 48 | ; - call AR to handle receivables | 
|---|
|  | 49 | S IBCTAR=0 D INS2^RCAMINS("^TMP($J,""IBCNSCD"")",.IBCTAR) | 
|---|
|  | 50 | ; | 
|---|
|  | 51 | D NOW^%DTC S IBEDT=% | 
|---|
|  | 52 | ; | 
|---|
|  | 53 | ; - mail results | 
|---|
|  | 54 | D MAIL^IBCNSCD2 | 
|---|
|  | 55 | ; | 
|---|
|  | 56 | ; - finally, delete the companies | 
|---|
|  | 57 | S IBC=0 F  S IBC=$O(^TMP($J,"IBCNSCD",IBC)) Q:'IBC  S DA=IBC,DIK="^DIC(36,",DIDEL=36 D ^DIK | 
|---|
|  | 58 | ; | 
|---|
|  | 59 | ; - delete task number from #350.9 | 
|---|
|  | 60 | S $P(^IBE(350.9,1,4),"^",8)="" | 
|---|
|  | 61 | ; | 
|---|
|  | 62 | DDQ K IBC,IBCT,^TMP($J,"IBCNSCD") | 
|---|
|  | 63 | L -^IB("IBCNSCD") | 
|---|
|  | 64 | S ZTREQ="@" | 
|---|
|  | 65 | Q | 
|---|
|  | 66 | ; | 
|---|
|  | 67 | ; | 
|---|
|  | 68 | FIND ; Find the carrier somewhere in the bill. | 
|---|
|  | 69 | ;   Required local variables are those described in CARR. | 
|---|
|  | 70 | S IB0=$G(^DGCR(399,IBC,0)),IBM=$G(^("M")) | 
|---|
|  | 71 | ; | 
|---|
|  | 72 | ; - look for the carrier | 
|---|
|  | 73 | I +IBM=IBCNS D CARR(1,"I1") ;            primary | 
|---|
|  | 74 | I $P(IBM,"^",2)=IBCNS D CARR(2,"I2") ;   secondary | 
|---|
|  | 75 | I $P(IBM,"^",3)=IBCNS D CARR(3,"I3") ;   tertiary | 
|---|
|  | 76 | ; | 
|---|
|  | 77 | ; - kill off the x-ref | 
|---|
|  | 78 | K ^DGCR(399,IBC,"AIC",IBCNS) | 
|---|
|  | 79 | Q | 
|---|
|  | 80 | ; | 
|---|
|  | 81 | CARR(IBP,IBSUB) ; Update each carrier. | 
|---|
|  | 82 | ;  Input:   IBP  --  carrier [1:primary  2:secondary  3:tertiary] | 
|---|
|  | 83 | ;         IBSUB  --  updated subscript ["I1":prim  "I2":sec  "I3":tert] | 
|---|
|  | 84 | ; | 
|---|
|  | 85 | ;  The following local variables are also required to be defined: | 
|---|
|  | 86 | ;      IBCNS, IB0, IBM, IBC, IBREP, IBVAL | 
|---|
|  | 87 | ; | 
|---|
|  | 88 | S IBCNS1=+IBREP | 
|---|
|  | 89 | S $P(^DGCR(399,IBC,"M"),"^",IBP)=IBVAL | 
|---|
|  | 90 | I $G(^DGCR(399,IBC,IBSUB))]"" S $P(^(IBSUB),"^",1)=IBVAL | 
|---|
|  | 91 | I IBVAL="" D | 
|---|
|  | 92 | .S IBS=0 | 
|---|
|  | 93 | .I $P(IB0,"^",2) S IBCNS1=+$G(^DPT($P(IB0,"^",2),.312,+$P(IBM,"^",IBP+11),0)) I IBCNS1 S IBS=1,$P(^DGCR(399,IBC,"M"),"^",IBP)=IBCNS1 S:$G(^(IBSUB))]"" $P(^(IBSUB),"^",1)=IBCNS1 | 
|---|
|  | 94 | .I 'IBS S IBCT("BL",IBP,IBC)="" | 
|---|
|  | 95 | ; | 
|---|
|  | 96 | I IBCNS1 S ^DGCR(399,IBC,"AIC",IBCNS1)="" | 
|---|
|  | 97 | ; | 
|---|
|  | 98 | I IBCNS=+$G(^DGCR(399,IBC,"MP")) D | 
|---|
|  | 99 | .I $P(IB0,"^",2),+IBCNS K ^DGCR(399,"AE",$P(IB0,"^",2),IBCNS,IBC) | 
|---|
|  | 100 | .S $P(^DGCR(399,IBC,"MP"),U,1)=IBCNS1 | 
|---|
|  | 101 | .I $P(IB0,"^",2),+IBCNS1 S ^DGCR(399,"AE",$P(IB0,"^",2),+IBCNS1,IBC)="" | 
|---|
|  | 102 | ; | 
|---|
|  | 103 | S IBCT("BL",IBP)=$G(IBCT("BL",IBP))+1 | 
|---|
|  | 104 | Q | 
|---|
|  | 105 | ; | 
|---|
|  | 106 | ; | 
|---|
|  | 107 | BILL(IBBILLN,IBCNS,IBREP) ; Callable Entry Point for Accounts Receivable | 
|---|
|  | 108 | ;  Input:     IBBILLN  --  Bill Number for bill to be repointed | 
|---|
|  | 109 | ;               IBCNS  --  Pointer to the insurance company in file #36 | 
|---|
|  | 110 | ;                          that is being merged | 
|---|
|  | 111 | ;               IBREP  --  Pointer to the insurance company in file #36 | 
|---|
|  | 112 | ;                          into which information is being merged | 
|---|
|  | 113 | ; | 
|---|
|  | 114 | N IBC,IBCT,IBVAL,IBCNS1,IB0,IBM | 
|---|
|  | 115 | I $G(IBBILLN)=""!'$G(IBCNS)!($G(IBREP)="") G BILLQ | 
|---|
|  | 116 | S IBC=$O(^DGCR(399,"B",IBBILLN,0)) I 'IBC G BILLQ | 
|---|
|  | 117 | S IBVAL=$S(IBREP:IBREP,1:"") | 
|---|
|  | 118 | D FIND | 
|---|
|  | 119 | BILLQ Q | 
|---|