| 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
 | 
|---|