| [613] | 1 | IBCNBLP ;ALB/ARH-Ins Buffer: LM buffer process screen ;1 Jun 97 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**82**;21-MAR-94 | 
|---|
|  | 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | EN ; - main entry point for screen | 
|---|
|  | 6 | D EN^VALM("IBCNB INSURANCE BUFFER PROCESS") | 
|---|
|  | 7 | Q | 
|---|
|  | 8 | ; | 
|---|
|  | 9 | HDR ;  header code for list manager display | 
|---|
|  | 10 | N IBX,IB0,IBY,VADM,VA,VAERR S IBX="" | 
|---|
|  | 11 | I +DFN D DEM^VADPT S IBX=$E(VADM(1),1,28),IBX=IBX_$J("",35-$L(IBX))_$P(VADM(2),U,2)_"    DOB: "_$P(VADM(3),U,2)_"    AGE: "_VADM(4) | 
|---|
|  | 12 | S VALMHDR(1)=IBX | 
|---|
|  | 13 | S VALMHDR(2)=" " | 
|---|
|  | 14 | S IB0=$G(^IBA(355.33,IBBUFDA,21)) | 
|---|
|  | 15 | S IBY=$E($P(IB0,U,4),1,13),IBX=$P($G(^DIC(5,+$P(IB0,U,5),0)),U,2),IBY=IBY_$S(IBY'=""&(IBX'=""):", ",1:"")_IBX | 
|---|
|  | 16 | S IBY=$E($P(IB0,U,1),1,20)_$S(IBY'="":", ",1:"")_IBY,IBY=$S(IBY'="":"   ("_IBY_")",1:"") | 
|---|
|  | 17 | S IBX=$E($P($G(^IBA(355.33,IBBUFDA,20)),U,1),1,18)_IBY,IBX=$J("",40-($L(IBX)\2))_IBX | 
|---|
|  | 18 | S VALMHDR(3)=IBX | 
|---|
|  | 19 | I +$G(IBCNSCRN) D GRPHDR(IBBUFDA) Q | 
|---|
|  | 20 | D PATHDR(IBBUFDA) | 
|---|
|  | 21 | Q | 
|---|
|  | 22 | ; | 
|---|
|  | 23 | INIT ;  initialization for list manager list, ifn of record to display required IBBUFDA | 
|---|
|  | 24 | K ^TMP("IBCNBLP",$J),^TMP("IBCNBLPX",$J) N IBINSDA | 
|---|
|  | 25 | I '$G(IBBUFDA) S VALMQUIT="" Q | 
|---|
|  | 26 | S IBINSDA=+$G(IBCNSCRN) | 
|---|
|  | 27 | S DFN=+$G(^IBA(355.33,IBBUFDA,60)) | 
|---|
|  | 28 | D BLD | 
|---|
|  | 29 | Q | 
|---|
|  | 30 | ; | 
|---|
|  | 31 | HELP ;  list manager help | 
|---|
|  | 32 | D FULL^VALM1 | 
|---|
|  | 33 | W !!,"This screen displays a summary of the chosen Buffer entry in the header." | 
|---|
|  | 34 | W !!,"The list portion of the screen may display either:" | 
|---|
|  | 35 | W !,?5,"1) a list of all of the patient's current and past insurance policies," | 
|---|
|  | 36 | W !,?8,"followed by a list of any Group/Plan that has a Group Name or ",!,?8,"Group Number that may match the Buffer entry's." | 
|---|
|  | 37 | W !,?5,"2) a list of all of the Group/Plans for a user specified insurance company." | 
|---|
|  | 38 | W !!,"Use the 'Insurance Co/Patient' action to toggle between these two screens." | 
|---|
|  | 39 | W !!,"Flags:  '~'  company/group is inactive     '-'  individual patient policy" | 
|---|
|  | 40 | W !!,"Bold Data:  If one of the following Buffer File entry data elements matches all",!,"or the first part of the " | 
|---|
|  | 41 | W "corresponding data element of the policy or group/plan",!,"being displayed then the matching part of the data element will be displayed in",!,"bold characters:" | 
|---|
|  | 42 | W !," Subscriber Id, Insurance Company Name, Group Number, Group Name, Type of Plan" | 
|---|
|  | 43 | W !!,"Bold Number:  On the Group/Plan lists, the number preceding the group/plan being",!,"displayed will be in bold if the patient is already a member of that plan." | 
|---|
|  | 44 | W !!,"The IB INSURANCE SUPERVISOR key is required to either Accept or Reject an entry." | 
|---|
|  | 45 | D PAUSE^VALM1 S VALMBCK="R" | 
|---|
|  | 46 | Q | 
|---|
|  | 47 | ; | 
|---|
|  | 48 | EXIT ;  exit list manager option and clean up | 
|---|
|  | 49 | K ^TMP("IBCNBLP",$J),^TMP("IBCNBLPX",$J),DFN,IBCNSCRN | 
|---|
|  | 50 | D CLEAR^VALM1 | 
|---|
|  | 51 | Q | 
|---|
|  | 52 | ; | 
|---|
|  | 53 | BLD ;  build screen display | 
|---|
|  | 54 | ; | 
|---|
|  | 55 | N PATCMP,GRPCMP,CNT S VALMCNT=0,CNT=0 | 
|---|
|  | 56 | ; | 
|---|
|  | 57 | S PATCMP=$$PATDATA(IBBUFDA),GRPCMP=$$GRPDATA(IBBUFDA) | 
|---|
|  | 58 | ; | 
|---|
|  | 59 | I +$G(IBCNSCRN) D GRPLST^IBCNBLP1(.CNT,IBINSDA,DFN,GRPCMP) Q | 
|---|
|  | 60 | ; | 
|---|
|  | 61 | D PATLST^IBCNBLP1(.CNT,DFN,PATCMP) | 
|---|
|  | 62 | D SRCHLST^IBCNBLP1(.CNT,DFN,$P(PATCMP,U,1),$P(GRPCMP,U,1),$P(GRPCMP,U,2)) | 
|---|
|  | 63 | Q | 
|---|
|  | 64 | ; | 
|---|
|  | 65 | DATE(X) ; | 
|---|
|  | 66 | N Y S Y="" I X?7N.E S Y=$E(X,4,5)_"/"_$E(X,6,7)_"/"_$E(X,2,3) | 
|---|
|  | 67 | Q Y | 
|---|
|  | 68 | ; | 
|---|
|  | 69 | ; | 
|---|
|  | 70 | PATHDR(IBBUFDA) ; additional header lines:  display buffer entry for display of existing patient's insurance screen | 
|---|
|  | 71 | Q:'IBBUFDA  N IBX,IBY,IB20,IB40,IB60 S IBX="" | 
|---|
|  | 72 | S IB20=$G(^IBA(355.33,IBBUFDA,20)),IB40=$G(^IBA(355.33,IBBUFDA,40)),IB60=$G(^IBA(355.33,IBBUFDA,60)) | 
|---|
|  | 73 | ; | 
|---|
|  | 74 | S IBX="" I 'IB40 S IBY="-" S IBX=$$SETSTR^VALM1(IBY,IBX,4,1) | 
|---|
|  | 75 | S IBY=$P(IB20,U,1) S IBX=$$SETSTR^VALM1(IBY,IBX,5,18) | 
|---|
|  | 76 | S IBY=$P(IB40,U,3) S IBX=$$SETSTR^VALM1(IBY,IBX,25,13) | 
|---|
|  | 77 | S IBY=$P(IB60,U,4) S IBX=$$SETSTR^VALM1(IBY,IBX,40,13) | 
|---|
|  | 78 | S IBY=$P(IB60,U,6),IBY=$$EXPAND^IBTRE(355.33,60.06,IBY) S IBX=$$SETSTR^VALM1(IBY,IBX,55,6) | 
|---|
|  | 79 | S IBY=$$DATE($P(IB60,U,2)) S IBX=$$SETSTR^VALM1(IBY,IBX,63,8) | 
|---|
|  | 80 | S IBY=$$DATE($P(IB60,U,3)) S IBX=$$SETSTR^VALM1(IBY,IBX,73,8) | 
|---|
|  | 81 | S VALMHDR(4)=IBX | 
|---|
|  | 82 | Q | 
|---|
|  | 83 | ; | 
|---|
|  | 84 | GRPHDR(IBBUFDA) ; additional header lines:  display buffer entry for display of other insurance group plans screen | 
|---|
|  | 85 | Q:'IBBUFDA  N IBX,IBY,IB40 S IBX="" | 
|---|
|  | 86 | S IB40=$G(^IBA(355.33,IBBUFDA,40)) | 
|---|
|  | 87 | ; | 
|---|
|  | 88 | S IBX="" I 'IB40 S IBY="-" S IBX=$$SETSTR^VALM1(IBY,IBX,5,1) | 
|---|
|  | 89 | S IBY=$P(IB40,U,2) S IBX=$$SETSTR^VALM1(IBY,IBX,6,20) | 
|---|
|  | 90 | S IBY=$P(IB40,U,3) S IBX=$$SETSTR^VALM1(IBY,IBX,30,17) | 
|---|
|  | 91 | S IBY=$P(IB40,U,9) I +IBY S IBY=$P($G(^IBE(355.1,+IBY,0)),U,1) S IBX=$$SETSTR^VALM1(IBY,IBX,50,30) | 
|---|
|  | 92 | S VALMHDR(4)=IBX | 
|---|
|  | 93 | Q | 
|---|
|  | 94 | ; | 
|---|
|  | 95 | PATDATA(IBBUFDA) ; create string of data from buffer entry to compare with data in existing insurance entries | 
|---|
|  | 96 | ; for the patient insurance list compare:  INS COMPANY NAME ^ GROUP NUMBER ^ SUBSCRIBER ID | 
|---|
|  | 97 | N IBX S IBX=$P($G(^IBA(355.33,IBBUFDA,20)),U,1)_U_$P($G(^IBA(355.33,IBBUFDA,40)),U,3)_U_$P($G(^IBA(355.33,IBBUFDA,60)),U,4) | 
|---|
|  | 98 | Q IBX | 
|---|
|  | 99 | ; | 
|---|
|  | 100 | GRPDATA(IBBUFDA) ; create string of data from buffer entry to compare with data in existing insurance entries | 
|---|
|  | 101 | ; for the group plan list compare:  GROUP NAME ^ GROUP NUMBER ^ TYPE OF PLAN | 
|---|
|  | 102 | N IBX,IBY S IBY=$G(^IBA(355.33,IBBUFDA,40)) S IBX=$P(IBY,U,2)_U_$P(IBY,U,3)_U_$P($G(^IBE(355.1,+$P(IBY,U,9),0)),U,1) | 
|---|
|  | 103 | Q IBX | 
|---|