| [613] | 1 | IBNCPBB ;DALOI/AAT - ECME BACKBILLING ;24-JUN-2003 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**276,347**;21-MAR-94;Build 24 | 
|---|
|  | 3 | ;;Per VHA Directive 2004-038, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | ; | 
|---|
|  | 6 | Q | 
|---|
|  | 7 | EN ;[IB GENERATE ECME RX BILLS] entry | 
|---|
|  | 8 | N IBMOD1,IBMOD3,IBPAT,IBRX,IBBDT,IBEDT,IBSEL,IBREF,IBPAUSE | 
|---|
|  | 9 | S IBREF=$NA(^TMP($J,"IBNCPBB")) | 
|---|
|  | 10 | S IBPAUSE=1 | 
|---|
|  | 11 | K @IBREF D | 
|---|
|  | 12 | . N IBEXIT | 
|---|
|  | 13 | . S IBEXIT=0 | 
|---|
|  | 14 | . D MODE I IBEXIT Q | 
|---|
|  | 15 | . I IBMOD1="P" D SELECT I IBEXIT Q | 
|---|
|  | 16 | . I IBMOD1="R" D SELECT2 I IBEXIT Q | 
|---|
|  | 17 | . D CONFIRM I IBEXIT Q | 
|---|
|  | 18 | . D PROCESS I IBEXIT Q | 
|---|
|  | 19 | I IBPAUSE W ! D PAUSE() | 
|---|
|  | 20 | K @IBREF | 
|---|
|  | 21 | Q | 
|---|
|  | 22 | ; | 
|---|
|  | 23 | CT(IBTRN) ;CT ENTRY | 
|---|
|  | 24 | N IBZ,IBRX,IBRXN,IBFL,IBEXIT,IBPAT,IBRDT,IBFDT,IBRES,IBBIL,IBBN,IBQ,IBSCRES | 
|---|
|  | 25 | S IBQ=0 | 
|---|
|  | 26 | D FULL^VALM1 | 
|---|
|  | 27 | W !!,"This option sends electronic Pharmacy Claims to the Payer" | 
|---|
|  | 28 | S VALMBCK="R" | 
|---|
|  | 29 | S IBZ=$G(^IBT(356,IBTRN,0)) Q:IBZ="" | 
|---|
|  | 30 | S IBRX=$P(IBZ,U,8),IBFL=$P(IBZ,U,10) | 
|---|
|  | 31 | I 'IBRX D  Q | 
|---|
|  | 32 | . W !!,"This is not a Pharmacy Claims Tracking record",*7,! | 
|---|
|  | 33 | . D PAUSE("Cannot submit to ECME") | 
|---|
|  | 34 | ; | 
|---|
|  | 35 | ;Release date: | 
|---|
|  | 36 | I IBFL=0 S IBRDT=$$FILE^IBRXUTL(IBRX,31) | 
|---|
|  | 37 | E  S IBRDT=$$SUBFILE^IBRXUTL(IBRX,IBFL,52,17) | 
|---|
|  | 38 | I 'IBRDT D  Q | 
|---|
|  | 39 | . W !!,"The Prescription is not released.",! | 
|---|
|  | 40 | . D PAUSE("Cannot submit to ECME") | 
|---|
|  | 41 | ; | 
|---|
|  | 42 | S IBPAT=$P(IBZ,U,2) | 
|---|
|  | 43 | I $$SC($P(IBZ,U,19)) D  Q:IBQ | 
|---|
|  | 44 | . N DIR,DIE,DA,DR,Y | 
|---|
|  | 45 | . W !!,"The Rx is marked 'non-billable' in CT: ",$P($G(^IBE(356.8,+$P(IBZ,U,19),0)),U) | 
|---|
|  | 46 | . W !,"If you continue, the NON-BILLABLE REASON will be deleted.",! | 
|---|
|  | 47 | . S DIR(0)="Y",DIR("A")="Are you sure you want to bill this episode" | 
|---|
|  | 48 | . S DIR("B")="NO" | 
|---|
|  | 49 | . S DIR("?")="If you want to bill this Rx, enter 'Yes' - otherwise, enter 'No'" | 
|---|
|  | 50 | . W ! D ^DIR K DIR | 
|---|
|  | 51 | . I 'Y S IBQ=1 Q | 
|---|
|  | 52 | . S DIE="^IBT(356,",DA=IBTRN,DR=".19///@" D ^DIE ;clean NB reason | 
|---|
|  | 53 | . S IBSCRES(IBRX,IBFL)=1 ; sc resolved flag | 
|---|
|  | 54 | ; | 
|---|
|  | 55 | S IBZ=$G(^IBT(356,IBTRN,0)) ; refresh | 
|---|
|  | 56 | I $P(IBZ,U,19) D  Q | 
|---|
|  | 57 | . W !!,"The Prescription is marked 'non-billable' in Claims Tracking",*7 | 
|---|
|  | 58 | . W !,"Reason non-billable: ",$P($G(^IBE(356.8,+$P(IBZ,U,19),0),"Unknown"),U),! | 
|---|
|  | 59 | . D PAUSE("Cannot submit to ECME") | 
|---|
|  | 60 | ; Fill/Refill Date: | 
|---|
|  | 61 | S IBFDT=$S('IBFL:$$FILE^IBRXUTL(IBRX,22),1:$$SUBFILE^IBRXUTL(IBRX,IBFL,52,.01)) | 
|---|
|  | 62 | ; Is the patient billable at the released date? | 
|---|
|  | 63 | S IBRES=$$ECMEBIL^IBNCPDPU(IBPAT,IBFDT) | 
|---|
|  | 64 | I 'IBRES D  Q | 
|---|
|  | 65 | . W !!,"The patient is not ECME Billable at the ",$S(IBFL:"re",1:""),"fill date." | 
|---|
|  | 66 | . W !,"Reason: ",$P(IBRES,U,2,255),! | 
|---|
|  | 67 | . D PAUSE("Cannot submit to ECME") | 
|---|
|  | 68 | ; | 
|---|
|  | 69 | S IBRXN=$$FILE^IBRXUTL(IBRX,.01) | 
|---|
|  | 70 | S IBBIL=$$BILL(IBRXN,IBRDT) | 
|---|
|  | 71 | I IBBIL,'$P($G(^DGCR(399,IBBIL,"S")),U,16) D  Q | 
|---|
|  | 72 | . W !!,"Rx# ",IBRXN," was previously billed." | 
|---|
|  | 73 | . W !,"Please manually cancel the bill# ",$P($G(^DGCR(399,IBBIL,0)),U)," before submitting claim to ECME.",! | 
|---|
|  | 74 | . D PAUSE("Cannot submit to ECME") | 
|---|
|  | 75 | I IBBIL W !,"The bill# ",$P($G(^DGCR(399,IBBIL,0)),U)," has been cancelled.",! | 
|---|
|  | 76 | ; | 
|---|
|  | 77 | D CONFRX(IBRXN) Q:$G(IBEXIT) | 
|---|
|  | 78 | ; | 
|---|
|  | 79 | W !!,"Submitting Rx# ",IBRXN W:IBFL ", Refill# ",IBFL W " ..." | 
|---|
|  | 80 | S IBRES=$$SUBMIT^IBNCPDPU(IBRX,IBFL) W !,"  ",$S(+IBRES=0:"S",1:"Not s")_"ent through ECME." | 
|---|
|  | 81 | I +IBRES'=0 W !,"  *** ECME returned status: ",$$STAT(IBRES),! | 
|---|
|  | 82 | I +IBRES=0 W !!,"The Rx have been submitted to ECME for electronic billing",! | 
|---|
|  | 83 | D PAUSE() | 
|---|
|  | 84 | Q | 
|---|
|  | 85 | ; | 
|---|
|  | 86 | MODE ; | 
|---|
|  | 87 | ; IBMOD1: "P"-Single Patient, "R"-Single Rx | 
|---|
|  | 88 | ; IBMOD3 (if IBMOD1="P"): "U"-Unbilled, "A"-All Rx | 
|---|
|  | 89 | ; IBPAT (if IBMOD1="P"): Patient's DFN | 
|---|
|  | 90 | ; IBBDT,IBEDT (if IBMOD1="P"): From/To dates inclusive | 
|---|
|  | 91 | N DIR,DIC,DIRUT,DUOUT,Y,PSOFILE | 
|---|
|  | 92 | S (IBMOD1,IBMOD3)="" | 
|---|
|  | 93 | S DIR(0)="S^P:SINGLE (P)ATIENT;R:SINGLE (R)X" | 
|---|
|  | 94 | S DIR("A")="SINGLE (P)ATIENT, SINGLE (R)X" | 
|---|
|  | 95 | S DIR("B")="P" | 
|---|
|  | 96 | D ^DIR K DIR I $D(DIRUT) S IBEXIT=1,IBPAUSE=0 Q | 
|---|
|  | 97 | S IBMOD1=Y | 
|---|
|  | 98 | ; Enter Rx | 
|---|
|  | 99 | I IBMOD1="R" W ! S PSOFILE=52,DIC="^PSRX(",DIC(0)="AEQMN" D DIC^PSODI(PSOFILE,.DIC) S:$D(DUOUT) IBEXIT=1 S IBRX=$S(Y>0:+Y,1:0) S:'IBRX IBEXIT=1,IBPAUSE=0 | 
|---|
|  | 100 | K PSODIY | 
|---|
|  | 101 | I IBMOD1="R" Q | 
|---|
|  | 102 | ; | 
|---|
|  | 103 | I IBMOD1'="P" W !,"???" S IBEXIT=1 Q  ; Invalid mode | 
|---|
|  | 104 | ;Enter Patient | 
|---|
|  | 105 | S DIC="^DPT(",DIC(0)="AEQMN" D ^DIC S:$D(DUOUT) IBEXIT=1 S IBPAT=$S(Y>0:+Y,1:0) S:'IBPAT IBEXIT=1,IBPAUSE=0 | 
|---|
|  | 106 | Q:IBEXIT | 
|---|
|  | 107 | I '$$ECMEBIL^IBNCPDPU(IBPAT,DT) W *7,!!,"Warning! The patient is currently not ECME billable!" | 
|---|
|  | 108 | ; | 
|---|
|  | 109 | D DATE I IBEXIT S IBPAUSE=0 Q | 
|---|
|  | 110 | ; | 
|---|
|  | 111 | S DIR(0)="S^U:UNBILLED;A:ALL RX" | 
|---|
|  | 112 | S DIR("A")="(U)NBILLED, (A)LL RX" | 
|---|
|  | 113 | S DIR("B")="U" | 
|---|
|  | 114 | D ^DIR K DIR I $D(DIRUT) S IBEXIT=1,IBPAUSE=0 Q | 
|---|
|  | 115 | S IBMOD3=Y | 
|---|
|  | 116 | Q | 
|---|
|  | 117 | ; | 
|---|
|  | 118 | ;begin/end date | 
|---|
|  | 119 | DATE ; | 
|---|
|  | 120 | N Y,%DT | 
|---|
|  | 121 | S (IBBDT,IBEDT)=DT | 
|---|
|  | 122 | W ! | 
|---|
|  | 123 | S %DT="AEX" | 
|---|
|  | 124 | S %DT("A")="START WITH DATE: ",%DT("B")="TODAY" | 
|---|
|  | 125 | D ^%DT K %DT | 
|---|
|  | 126 | I Y'>0 S IBEXIT=1 Q | 
|---|
|  | 127 | S IBBDT=+Y | 
|---|
|  | 128 | S %DT="AEX" | 
|---|
|  | 129 | S %DT("A")="GO TO DATE: ",%DT("B")="TODAY" ;$$DAT2^IBOUTL(IBBDT) | 
|---|
|  | 130 | D ^%DT K %DT | 
|---|
|  | 131 | I Y'>0 S IBEXIT=1 Q | 
|---|
|  | 132 | S IBEDT=+Y | 
|---|
|  | 133 | Q | 
|---|
|  | 134 | ; | 
|---|
|  | 135 | SELECT ;Select from patient's list | 
|---|
|  | 136 | ; (IBPAT,IBBDT,IBEDT,IBMOD3) | 
|---|
|  | 137 | N IBD,IBRX,IBZ,IBDATA,IBCNT,Y,PDFN,LIST,LIST2,NODE,RXNUMEXT,LIST,IBDATE,CNT1,CNT2,RFNUM | 
|---|
|  | 138 | S CNT1=0,CNT2=0,IBCNT=0 | 
|---|
|  | 139 | S LIST="IBRXSELARR" | 
|---|
|  | 140 | S NODE=2 | 
|---|
|  | 141 | D RX^PSO52API(IBPAT,LIST,,,NODE,,) | 
|---|
|  | 142 | S RXNUMEXT=0 F  S RXNUMEXT=$O(^TMP($J,LIST,"B",RXNUMEXT)) Q:'RXNUMEXT  D | 
|---|
|  | 143 | . S IBRX=0 F  S IBRX=$O(^TMP($J,LIST,"B",RXNUMEXT,IBRX)) Q:'IBRX  D | 
|---|
|  | 144 | .. S IBDATE=$P(^TMP($J,LIST,IBPAT,IBRX,31),"^",1) | 
|---|
|  | 145 | .. I (IBDATE>IBBDT)&(IBDATE<IBEDT) D | 
|---|
|  | 146 | ... S IBZ=$$RXZERO^IBRXUTL(IBPAT,IBRX) Q:IBZ="" | 
|---|
|  | 147 | ... I $P(IBZ,U,2)'=IBPAT Q | 
|---|
|  | 148 | ... I '$$FILE^IBRXUTL(IBRX,31) Q  ; not released | 
|---|
|  | 149 | ... S IBDATA=$$RXDATA(IBRX,0) | 
|---|
|  | 150 | ... I ('$P(IBDATA,U,6))!(IBMOD3="A") S IBCNT=IBCNT+1,@IBREF@(IBCNT)=IBDATA | 
|---|
|  | 151 | ... S LIST2="IBCPBBRF" | 
|---|
|  | 152 | ... S NODE="R" | 
|---|
|  | 153 | ... D RX^PSO52API(IBPAT,LIST2,IBRX,,NODE,,) | 
|---|
|  | 154 | ... S RFNUM=0 F  S RFNUM=$O(^TMP($J,LIST2,IBPAT,IBRX,"RF",RFNUM)) Q:RFNUM'>0  D:$$SUBFILE^IBRXUTL(IBRX,RFNUM,52,17) | 
|---|
|  | 155 | .... S IBDATA=$$RXDATA(IBRX,RFNUM) | 
|---|
|  | 156 | .... I $P(IBDATA,U,6),IBMOD3'="A" Q  ; unbilled only | 
|---|
|  | 157 | .... S IBCNT=IBCNT+1,@IBREF@(IBCNT)=IBDATA | 
|---|
|  | 158 | ... K ^TMP($J,LIST2) | 
|---|
|  | 159 | K ^TMP($J,LIST) | 
|---|
|  | 160 | D MKCHOICE | 
|---|
|  | 161 | Q | 
|---|
|  | 162 | SELECT2 ;Select from Rx list | 
|---|
|  | 163 | ; (IBRX) | 
|---|
|  | 164 | N IBCNT,Y,PDFN,RIFN,LST | 
|---|
|  | 165 | S RIFN=0 | 
|---|
|  | 166 | W ! S IBPAUSE=1 | 
|---|
|  | 167 | S PDFN=$$FILE^IBRXUTL(IBRX,2) | 
|---|
|  | 168 | S LST="SEL2LST" | 
|---|
|  | 169 | I $$RXZERO^IBRXUTL(PDFN,IBRX)="" W !,"The Rx does not exist. Please try again." S IBEXIT=1 Q | 
|---|
|  | 170 | I $$FILE^IBRXUTL(IBRX,31)="" W !,"The Rx has not been released. Please try again." S IBEXIT=1 Q | 
|---|
|  | 171 | S IBCNT=1,@IBREF@(IBCNT)=$$RXDATA(IBRX,0) | 
|---|
|  | 172 | D RX^PSO52API(PDFN,LST,IBRX,,"R",,) | 
|---|
|  | 173 | S RIFN=0 F  S RIFN=$O(^TMP($J,LST,PDFN,IBRX,"RF",RIFN)) Q:RIFN'>0  D:$$SUBFILE^IBRXUTL(IBRX,RIFN,52,17) | 
|---|
|  | 174 | .S IBCNT=IBCNT+1,@IBREF@(IBCNT)=$$RXDATA(IBRX,RIFN) | 
|---|
|  | 175 | K ^TMP($J,LST) | 
|---|
|  | 176 | D MKCHOICE | 
|---|
|  | 177 | Q | 
|---|
|  | 178 | ; | 
|---|
|  | 179 | MKCHOICE ; | 
|---|
|  | 180 | N Y | 
|---|
|  | 181 | W ! | 
|---|
|  | 182 | S Y=0 F  S Y=$O(@IBREF@(Y)) Q:'Y  D DISP(Y) | 
|---|
|  | 183 | ; | 
|---|
|  | 184 | I $O(@IBREF@(0))="" S IBEXIT=1 W !!," No Rxs meet the entered criteria. Please try again." Q | 
|---|
|  | 185 | I $O(@IBREF@(""),-1)=1 S IBSEL(1)="" Q  ; one item only | 
|---|
|  | 186 | F  W !!,"Enter Line Item(s) to submit to ECME or (A)LL :" R IBSEL:DTIME S:'$T IBEXIT=1 Q:IBEXIT  Q:IBSEL'["?"  D | 
|---|
|  | 187 | . W !?10,"Enter number(s) or item range(s) separated by comma." | 
|---|
|  | 188 | . W !?10,"Example: 1,3,7-11" | 
|---|
|  | 189 | Q:IBEXIT | 
|---|
|  | 190 | I IBSEL'="",$TR(IBSEL,"al","AL")=$E("ALL",1,$L(IBSEL)),$L(IBSEL)<3 W $E("ALL",$L(IBSEL)+1,3) S IBSEL="ALL" | 
|---|
|  | 191 | I IBSEL="" S IBEXIT=1 W " Nothing selected" Q | 
|---|
|  | 192 | I IBSEL="^" S IBEXIT=1 W " Cancelled" Q | 
|---|
|  | 193 | ;Collect the required into the IBSEL(i) local array | 
|---|
|  | 194 | D PARSE(.IBSEL) | 
|---|
|  | 195 | I $O(IBSEL(0))="" S IBEXIT=1 W !!,"No item(s) match the selection." Q | 
|---|
|  | 196 | Q | 
|---|
|  | 197 | ; | 
|---|
|  | 198 | CONFIRM ; | 
|---|
|  | 199 | N DIR,Y | 
|---|
|  | 200 | W ! | 
|---|
|  | 201 | S DIR(0)="Y",DIR("B")="NO",DIR("A")="Submit the selected RX(s) to ECME for electronic billing" | 
|---|
|  | 202 | D ^DIR I Y'=1 S IBEXIT=1 | 
|---|
|  | 203 | Q | 
|---|
|  | 204 | ; | 
|---|
|  | 205 | CONFRX(IBRX) ; | 
|---|
|  | 206 | N DIR,Y | 
|---|
|  | 207 | W ! | 
|---|
|  | 208 | S DIR(0)="Y",DIR("B")="NO",DIR("A")="Submit the Rx# "_IBRX_" to ECME for electronic billing" | 
|---|
|  | 209 | D ^DIR I Y'=1 S IBEXIT=1 | 
|---|
|  | 210 | Q | 
|---|
|  | 211 | ; | 
|---|
|  | 212 | STAT(X) ; | 
|---|
|  | 213 | I +X<6 Q $P(X,"^",2) | 
|---|
|  | 214 | Q "Unknown Status" | 
|---|
|  | 215 | ; | 
|---|
|  | 216 | PROCESS ; | 
|---|
|  | 217 | N RES,IBY,IBD,IBRX,IBFIL,IBERR,IBBIL | 
|---|
|  | 218 | S IBERR=0 | 
|---|
|  | 219 | S IBY=0 F  S IBY=$O(IBSEL(IBY)) Q:'IBY  D | 
|---|
|  | 220 | . S IBD=$G(@IBREF@(IBY)) Q:IBD="" | 
|---|
|  | 221 | . S IBRX=$P(IBD,U),IBFIL=+$P(IBD,U,3),IBBIL=$P(IBD,U,6) | 
|---|
|  | 222 | . W !,"Submitting Rx# ",$P(IBD,U,2) W:IBFIL "Refill# ",IBFIL W:'IBFIL " (original fill)" W " ..." | 
|---|
|  | 223 | . I IBBIL,'$P($G(^DGCR(399,IBBIL,"S")),U,16) D  S IBERR=IBERR+1 Q | 
|---|
|  | 224 | .. W !," *** Rx# ",$P(IBD,U,2)," was previously billed." | 
|---|
|  | 225 | .. W !," Please cancel the Bill No ",$P($G(^DGCR(399,IBBIL,0)),U)," before submitting the claim" | 
|---|
|  | 226 | . S RES=$$SUBMIT^IBNCPDPU(IBRX,IBFIL) W "  ",$S(+RES=0:"Sent through ECME",1:"Not sent") | 
|---|
|  | 227 | . I +RES'=0 W !?5,"*** ECME returned status: ",$$STAT(RES) S IBERR=IBERR+1 | 
|---|
|  | 228 | I 'IBERR W !!,"The selected Rx(s) have been submitted to ECME",!,"for electronic billing" | 
|---|
|  | 229 | Q | 
|---|
|  | 230 | ; | 
|---|
|  | 231 | BILL(IBRXN,IBDT) ;Bill IEN (if any) or null | 
|---|
|  | 232 | N RES,X,IBZ | 
|---|
|  | 233 | S IBDT=$P(IBDT,".") | 
|---|
|  | 234 | S RES="" | 
|---|
|  | 235 | S X="" F  S X=$O(^IBA(362.4,"B",IBRXN,X),-1) Q:X=""  D:X  Q:RES | 
|---|
|  | 236 | . S IBZ=$G(^IBA(362.4,X,0)) | 
|---|
|  | 237 | . I $P($P(IBZ,U,3),".")=IBDT,$P(IBZ,U,2) S RES=+$P(IBZ,U,2) | 
|---|
|  | 238 | Q RES | 
|---|
|  | 239 | ; | 
|---|
|  | 240 | ; | 
|---|
|  | 241 | RXDATA(IBRX,IBFIL) ; | 
|---|
|  | 242 | ;RxIEN^Rx#^Fill#^RelDate^DrugIEN^BillIEN | 
|---|
|  | 243 | N IBRXN,IBDT,IBDRUG,IBBIL,DATRET | 
|---|
|  | 244 | S IBRXN=$$FILE^IBRXUTL(IBRX,.01) | 
|---|
|  | 245 | I IBFIL=0 S IBDT=$$FILE^IBRXUTL(IBRX,22) | 
|---|
|  | 246 | E  S IBDT=$$SUBFILE^IBRXUTL(IBRX,IBFIL,52,.01) | 
|---|
|  | 247 | S IBDT=$P(IBDT,".") | 
|---|
|  | 248 | S IBDRUG=$$FILE^IBRXUTL(IBRX,6) | 
|---|
|  | 249 | S IBBIL=$$BILL(IBRXN,IBDT) | 
|---|
|  | 250 | S DATRET=IBRX_"^"_IBRXN_"^"_IBFIL_"^"_IBDT_"^"_IBDRUG_"^"_IBBIL | 
|---|
|  | 251 | Q DATRET | 
|---|
|  | 252 | ; | 
|---|
|  | 253 | DISP(IBITEM) ; | 
|---|
|  | 254 | N IBD,IBBILN,IBDRUG,IBBIL | 
|---|
|  | 255 | S IBD=$G(@IBREF@(IBITEM)) Q:IBD="" | 
|---|
|  | 256 | W !,IBITEM," ",?4,$P(IBD,U,2)," ",?15,$P(IBD,U,3)," ",?20,$$DAT2^IBOUTL($P(IBD,U,4))," " | 
|---|
|  | 257 | W ?32,$E($$DRUG^IBRXUTL1(+$P(IBD,U,5)),1,30) | 
|---|
|  | 258 | S IBBIL=$P(IBD,U,6) | 
|---|
|  | 259 | I IBBIL W ?64,$P($G(^DGCR(399,+IBBIL,0)),U) I $P($G(^DGCR(399,IBBIL,"S")),U,16) W "(canc)" | 
|---|
|  | 260 | Q | 
|---|
|  | 261 | ; | 
|---|
|  | 262 | PARSE(X) ; | 
|---|
|  | 263 | N I,J,N | 
|---|
|  | 264 | S X=$TR(X," ") | 
|---|
|  | 265 | S X=$TR(X,";",",") | 
|---|
|  | 266 | I $TR(IBSEL,"al","AL")="ALL" D  Q | 
|---|
|  | 267 | . F I=1:1 Q:'$D(@IBREF@(I))  S IBSEL(I)="" | 
|---|
|  | 268 | F I=1:1:$L(X,",") S N=$P(X,",",I) D:N'="" | 
|---|
|  | 269 | . I N'["-" D:N  Q | 
|---|
|  | 270 | . . I $D(@IBREF@(N)) S X(N)="" | 
|---|
|  | 271 | . ; Processing range | 
|---|
|  | 272 | . N N1,N2 | 
|---|
|  | 273 | . S N1=+$P(N,"-",1),N2=+$P(N,"-",2) | 
|---|
|  | 274 | . F J=N1:$S(N2<N1:-1,1:1):N2 I $D(@IBREF@(J)) S X(J)="" | 
|---|
|  | 275 | Q | 
|---|
|  | 276 | ; | 
|---|
|  | 277 | PAUSE(MESSAGE) ; | 
|---|
|  | 278 | W ! | 
|---|
|  | 279 | I $G(MESSAGE)'="" W MESSAGE,". " | 
|---|
|  | 280 | W "Press RETURN to continue: " | 
|---|
|  | 281 | R %:DTIME | 
|---|
|  | 282 | Q | 
|---|
|  | 283 | ; | 
|---|
|  | 284 | SC(IEN) ;Service connected | 
|---|
|  | 285 | N IBT | 
|---|
|  | 286 | I 'IEN Q 0 | 
|---|
|  | 287 | S IBT=$P($G(^IBE(356.8,IEN,0)),U) | 
|---|
|  | 288 | I IBT="NEEDS SC DETERMINATION" Q 1 | 
|---|
|  | 289 | I IBT="OTHER" Q 1 | 
|---|
|  | 290 | ; | 
|---|
|  | 291 | Q 0 | 
|---|