| [613] | 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
 | 
|---|