| 1 | IBNCPDPE ;DALOI/AAT - NCPDP BILLING EVENTS REPORT ;10-JUN-2003
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**276,342,347,363**;21-MAR-94;Build 35
 | 
|---|
| 3 |  ;;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | DATE ;
 | 
|---|
| 6 |  S (IBBDT,IBEDT)=DT
 | 
|---|
| 7 |  S %DT="AEX"
 | 
|---|
| 8 |  S %DT("A")="START WITH DATE: ",%DT("B")="TODAY"
 | 
|---|
| 9 |  D ^%DT K %DT
 | 
|---|
| 10 |  I Y<0 S IBQ=1 Q
 | 
|---|
| 11 |  S IBBDT=+Y
 | 
|---|
| 12 |  S %DT="AEX"
 | 
|---|
| 13 |  S %DT("A")="GO TO DATE: ",%DT("B")="TODAY"
 | 
|---|
| 14 |  D ^%DT K %DT
 | 
|---|
| 15 |  I Y<0 S IBQ=1 Q
 | 
|---|
| 16 |  S IBEDT=+Y
 | 
|---|
| 17 |  Q
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 | MODE ;
 | 
|---|
| 20 |  N DIR,DIC,DIRUT,DUOUT,PSOFILE
 | 
|---|
| 21 |  S (IBM1,IBM2,IBM3)="A"
 | 
|---|
| 22 |  S DIR(0)="S^P:SINGLE PATIENT;R:SINGLE RX;E:SINGLE ECME #;A:ALL ACTIVITY"
 | 
|---|
| 23 |  S DIR("A")="SINGLE (P)ATIENT, SINGLE (R)X, SINGLE (E)CME #, (A)LL ACTIVITY"
 | 
|---|
| 24 |  S DIR("B")="ALL"
 | 
|---|
| 25 |  D ^DIR K DIR I $D(DIRUT) S IBQ=1 Q
 | 
|---|
| 26 |  S IBM1=Y
 | 
|---|
| 27 |  I IBM1="P" S DIC="^DPT(",DIC(0)="AEQMN" D ^DIC Q:$D(DUOUT)  S IBPAT=$S(Y>0:+Y,1:0) I 'IBPAT W "   ALL" S IBM1="A"
 | 
|---|
| 28 |  I IBM1="R" S PSOFILE=52,DIC="^PSRX(",DIC(0)="AEQMN" D DIC^PSODI(PSOFILE,.DIC) Q:$D(DUOUT)  S IBRX=$S(Y>0:+Y,1:0) I 'IBRX W "   ALL" S IBM1="A"
 | 
|---|
| 29 |  K PSODIY
 | 
|---|
| 30 |  I IBM1="E" S DIR(0)="FO^7:7^I X'?1.7N W !!,""Cannot contain alpha characters"" K X",DIR("A")="Enter ECME #" D ^DIR Q:$D(DUOUT)  S IBECME=$S(+Y>0:Y,1:0) I 'IBECME W "   ALL" S IBM1="A"
 | 
|---|
| 31 |  S IBM2="B"
 | 
|---|
| 32 |  ; if "All"
 | 
|---|
| 33 |  I IBM1="A" D  Q:$G(IBQ)
 | 
|---|
| 34 |  .S DIR(0)="S^E:ECME BILLABLE;N:NON ECME BILLABLE;B:BOTH"
 | 
|---|
| 35 |  .S DIR("A")="(E)CME BILLABLE;(N)ON ECME BILLABLE;(B)OTH"
 | 
|---|
| 36 |  .S DIR("B")="BOTH"
 | 
|---|
| 37 |  .D ^DIR K DIR I $D(DIRUT) S IBQ=1 Q
 | 
|---|
| 38 |  .S IBM2=Y
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 |  ;Mail/Window/CMOP?
 | 
|---|
| 41 |  S DIR(0)="S^M:MAIL;W:WINDOW;C:CMOP;A:ALL"
 | 
|---|
| 42 |  S DIR("A")="(M)AIL, (W)INDOW, (C)CMOP, (A)LL"
 | 
|---|
| 43 |  S DIR("B")="ALL"
 | 
|---|
| 44 |  D ^DIR K DIR I $D(DIRUT) S IBQ=1 Q
 | 
|---|
| 45 |  S IBM3=Y
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 |  S DIR(0)="S^S:SUMMARY REPORT;D:DETAILED REPORT"
 | 
|---|
| 48 |  S DIR("A")="(S)UMMARY REPORT, (D)ETAILED REPORT"
 | 
|---|
| 49 |  S DIR("B")="SUMMARY REPORT"
 | 
|---|
| 50 |  D ^DIR K DIR I $D(DIRUT) S IBQ=1 Q
 | 
|---|
| 51 |  S IBDTL=($E(Y)="D")
 | 
|---|
| 52 |  Q
 | 
|---|
| 53 |  ;
 | 
|---|
| 54 | TESTDATA() ;
 | 
|---|
| 55 |  N Y
 | 
|---|
| 56 |  S Y=$$HAVEDATA()
 | 
|---|
| 57 |  I 'Y W !!,"No data found in the specified period.",!
 | 
|---|
| 58 |  Q Y
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 | HAVEDATA() ;
 | 
|---|
| 61 |  N Z
 | 
|---|
| 62 |  I $D(^IBCNR(366.14,"B",IBBDT)) Q 1
 | 
|---|
| 63 |  S Z=+$O(^IBCNR(366.14,"B",IBBDT))
 | 
|---|
| 64 |  I Z=0 Q 0
 | 
|---|
| 65 |  I Z>IBEDT Q 0
 | 
|---|
| 66 |  Q 1
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 | DEVICE ;
 | 
|---|
| 69 |  N DIR,DIRUT,POP,ZTRTN,ZTIO,ZTSAVE,ZTDESC,%ZIS,ZTSK
 | 
|---|
| 70 |  S %ZIS="QM"
 | 
|---|
| 71 |  W ! D ^%ZIS
 | 
|---|
| 72 |  I POP S IBQ=1 Q
 | 
|---|
| 73 |  S IBSCR=$S($E($G(IOST),1,2)="C-":1,1:0)
 | 
|---|
| 74 |  ;
 | 
|---|
| 75 |  I $D(IO("Q")) D  S IBQ=1
 | 
|---|
| 76 |  . S ZTRTN="START^IBNCPEV"
 | 
|---|
| 77 |  . S ZTIO=ION
 | 
|---|
| 78 |  . S ZTSAVE("IB*")=""
 | 
|---|
| 79 |  . S ZTDESC="IB ECME BILLING EVENTS REPORT"
 | 
|---|
| 80 |  . D ^%ZTLOAD
 | 
|---|
| 81 |  . W !,$S($D(ZTSK):"REQUEST QUEUED TASK="_ZTSK,1:"REQUEST CANCELLED")
 | 
|---|
| 82 |  . D HOME^%ZIS
 | 
|---|
| 83 |  U IO
 | 
|---|
| 84 |  Q
 | 
|---|
| 85 |  ;------ added for the User screen --------
 | 
|---|
| 86 |  ;User Screen Entry point (to call from ECME User Screen)
 | 
|---|
| 87 |  ;IBMODE:
 | 
|---|
| 88 |  ; P-patient
 | 
|---|
| 89 |  ; R-Rx
 | 
|---|
| 90 |  ;IBVAL - patient DFN or RX ien (#52)
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 | USRSCREN(IBMODE,IBVAL) ;
 | 
|---|
| 93 |  Q:$$PFSSON^IBNCPDPI()  ;quit if PFSS is ON
 | 
|---|
| 94 |  N IBPAT,IBRX,IBBDT,IBEDT,Y,IBM1,IBM2,IBM3,IBQ,IBSCR,IBPAGE,IBDTL,IBDIVS
 | 
|---|
| 95 |  S (IBPAT,IBRX,IBQ,IBSCR,IBPAGE,IBDTL,IBDIVS)=0
 | 
|---|
| 96 |  S IBM1=IBMODE
 | 
|---|
| 97 |  I IBM1="P" S IBPAT=+IBVAL
 | 
|---|
| 98 |  I IBM1="R" S IBRX=+IBVAL
 | 
|---|
| 99 |  ;date
 | 
|---|
| 100 |  F  D DATE Q:IBQ  Q:$$TESTDATA
 | 
|---|
| 101 |  Q:IBQ
 | 
|---|
| 102 |  N IBMLTDV S IBMLTDV=$$MULTPHRM^BPSUTIL()
 | 
|---|
| 103 |  I +IBMLTDV=1 S IBDIVS=+$$MULTIDIV^IBNCPEV1(.IBDIVS) S:IBDIVS=0 IBDIVS(0)="0^ALL" I IBDIVS=-1 S IBQ=1 Q
 | 
|---|
| 104 |  I +IBMLTDV=0 S IBDIVS=0,IBDIVS(0)="0^"_$P(IBMLTDV,U,2)
 | 
|---|
| 105 |  D MODE2 Q:IBQ
 | 
|---|
| 106 |  D DEVICE Q:IBQ
 | 
|---|
| 107 |  D START^IBNCPEV
 | 
|---|
| 108 |  D ^%ZISC
 | 
|---|
| 109 |  I IBQ W !,"Cancelled"
 | 
|---|
| 110 |  Q
 | 
|---|
| 111 |  ;
 | 
|---|
| 112 | MODE2 ;
 | 
|---|
| 113 |  N DIR,DIC,DIRUT,DUOUT
 | 
|---|
| 114 |  S (IBM1,IBM2,IBM3)="A"
 | 
|---|
| 115 |  S IBM2="B"
 | 
|---|
| 116 |  ;
 | 
|---|
| 117 |  ;Mail/Window/CMOP?
 | 
|---|
| 118 |  S DIR(0)="S^M:MAIL;W:WINDOW;C:CMOP;A:ALL"
 | 
|---|
| 119 |  S DIR("A")="(M)AIL, (W)INDOW, (C)CMOP, (A)LL"
 | 
|---|
| 120 |  S DIR("B")="ALL"
 | 
|---|
| 121 |  D ^DIR K DIR I $D(DIRUT) S IBQ=1 Q
 | 
|---|
| 122 |  S IBM3=Y
 | 
|---|
| 123 |  ;
 | 
|---|
| 124 |  S DIR(0)="S^S:SUMMARY REPORT;D:DETAILED REPORT"
 | 
|---|
| 125 |  S DIR("A")="(S)UMMARY REPORT, (D)ETAILED REPORT"
 | 
|---|
| 126 |  S DIR("B")="SUMMARY REPORT"
 | 
|---|
| 127 |  D ^DIR K DIR I $D(DIRUT) S IBQ=1 Q
 | 
|---|
| 128 |  S IBDTL=($E(Y)="D")
 | 
|---|
| 129 |  Q
 | 
|---|
| 130 |  ;IBNCPDPE
 | 
|---|