| 1 | RMPRSTI ;HINCIO/RVD-ISSUE FROM STOCK ;11/6/00
 | 
|---|
| 2 |  ;;3.0;PROSTHETICS;**53,62**;Feb 09, 1996
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;RVD patch #62 - modified for PCE interface
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  S (RMPRG,RMPRF,RMENTSUS)="" D HOME^%ZIS W @IOF
 | 
|---|
| 7 |  I '$D(RMPR) D DIV4^RMPRSIT G:$D(X) EXIT^RMPRSTE
 | 
|---|
| 8 |  I $D(RMPRDFN),$D(^TMP($J,"RMPRPCE")) D LINK^RMPRS
 | 
|---|
| 9 |  K ^TMP($J,"RMPRPCE")
 | 
|---|
| 10 |  W ! D GETPAT^RMPRUTIL G:'$D(RMPRDFN) EXIT^RMPRSTE
 | 
|---|
| 11 | VIEW ;
 | 
|---|
| 12 |  N RMPRBAC1,RMDES
 | 
|---|
| 13 |  S RMPRBAC1=1 D ^RMPRPAT K RMPRBAC1
 | 
|---|
| 14 |  I $D(RMPRKILL)!($D(DTOUT)) W $C(7),!,"Deleted..." G EXIT^RMPRSTE
 | 
|---|
| 15 |  S CK="W:$D(DUOUT) @IOF,!!!?28,$C(7),""Deleted..."" G EXIT^RMPRSTE"
 | 
|---|
| 16 |  S CK2="W @IOF,!!!?28,$C(7),""Deleted..."" H 2"
 | 
|---|
| 17 |  S CK1="W $C(7),!,""Timed-Out, Deleted..."" G EXIT^RMPRSTE"
 | 
|---|
| 18 |  S R3("D")=""
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 | RES ;ENTRY POINT TO ADD ADDITIONAL ITEMS FOR ISSUE FROM STOCK
 | 
|---|
| 21 |  Q:$G(RMPRDFN)<1
 | 
|---|
| 22 |  K DA,DD,DIC,PRC,X,Y,RMSO,RMQTY,RMDAHC,RMLACO,RMITDA,RMHCOLD
 | 
|---|
| 23 |  S (R1(1),R1(0),R3("D"),R4("D"),R1("AM"),RMPRI("AMS"),R1("D"),RMLOC)=""
 | 
|---|
| 24 |  S RMLODES=""
 | 
|---|
| 25 |  S (RMLOCOLD,RMIT,RMHCNEW,RMHCOLD,RMITDESC,RMITIEN,R1(2))="",REDIT=0
 | 
|---|
| 26 |  S R1(0)=DT_U_RMPRDFN_U_DT,$P(R1(0),U,10)=RMPR("STA"),$P(R1(0),U,27)=DUZ
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 | 1 ;ENTRY POINT TO EDIT ITEM ON ISSUE FROM STOCK
 | 
|---|
| 29 |  S (RMHCNEW,RMHCOLD)=$P(R1(1),U,4),RMLOCOLD=RMLOC,RMITOLD=RMIT
 | 
|---|
| 30 |  K RQUIT S RMHCFLG=0
 | 
|---|
| 31 |  W @IOF,!?30,RMPRNAM,!
 | 
|---|
| 32 |  W:$G(REDIT) !!,"Editing a Stock Item!!!"
 | 
|---|
| 33 |  W:'$G(REDIT) !!,"Entering a Stock Item!!!"
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 | TRAN ;TYPE OF TRANSACTION
 | 
|---|
| 36 |  W !
 | 
|---|
| 37 |  ;S DIR(0)="660,2"
 | 
|---|
| 38 |  K DIR
 | 
|---|
| 39 |  S:$P(R1(0),U,4)?.E&($P(R3("D"),U,4)'="") DIR("B")=$P(R3("D"),U,4)
 | 
|---|
| 40 |  S DIR(0)="SO^I:INITIAL ISSUE;X:REPAIR;R:REPLACE;S:SPARE"
 | 
|---|
| 41 |  S DIR("A")="TYPE OF TRANSACTION"
 | 
|---|
| 42 |  D ^DIR
 | 
|---|
| 43 |  I (Y=""),($P(R3("D"),U,4)="") G ^RMPRSTI
 | 
|---|
| 44 |  I $P(R3("D"),U,4)'=""&($D(DUOUT)) G LIST^RMPRSTE
 | 
|---|
| 45 |  I $D(DTOUT) X CK1 Q
 | 
|---|
| 46 |  I $D(DUOUT) G ^RMPRSTI
 | 
|---|
| 47 |  S $P(R1(0),U,4)=Y K DIR
 | 
|---|
| 48 |  S $P(R3("D"),U,4)=$S(Y="I":"INITIAL ISSUE",Y="X":"REPAIR",Y="R":"REPLACE",Y="S":"SPARE",1:"")
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 | PCAT ;
 | 
|---|
| 51 |  S DIR(0)="660,62" S:$P(R1("AM"),U,3)?1N.N DIR("B")=$P(R4("D"),U,3)
 | 
|---|
| 52 |  D ^DIR I $P(R1("AM"),U,3)'=""&($D(DUOUT)) G LIST^RMPRSTE
 | 
|---|
| 53 |  I $D(DTOUT) X CK1 Q
 | 
|---|
| 54 |  I $D(DUOUT) X CK2 G ^RMPRSTI
 | 
|---|
| 55 |  S $P(R1("AM"),U,3)=Y,$P(R4("D"),U,3)=$S(Y=1:"SC/OP",Y=2:"SC/IP",Y=3:"NSC/IP",Y=4:"NSC/OP",1:"") K DIR
 | 
|---|
| 56 |  I Y<4 S $P(R1("AM"),U,4)="",$P(R4("D"),U,4)="" G 2
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 | SPE I Y=4 S DIR(0)="660,63" S:$P(R1("AM"),U,4)?1N.N DIR("B")=$P(R4("D"),U,4) D ^DIR I $D(DTOUT) X CK1 Q
 | 
|---|
| 59 |  I $G(REDIT)&($D(DUOUT)) G LIST^RMPRSTE
 | 
|---|
| 60 |  I $D(DUOUT) X CK2 G ^RMPRSTI
 | 
|---|
| 61 |  I $P(R1("AM"),U,3)=4 S $P(R1("AM"),U,4)=Y,$P(R4("D"),U,4)=$S(Y=1:"SPECIAL LEGISLATION",Y=2:"A&A",Y=3:"PHC",Y=4:"ELIGIBILITY REFORM",1:"")
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 | 2 S DIC(0)="AEQM",DIC=661 S:$P(R1(0),U,6) DIC("B")=$P(^RMPR(661,$P(R1(0),U,6),0),U) S DIC("A")="ITEM: "
 | 
|---|
| 64 |  K DIC("S") D ^DIC
 | 
|---|
| 65 |  I $P(R3("D"),U,6)&$D(DUOUT) G LIST^RMPRSTE
 | 
|---|
| 66 |  I $D(DUOUT) X CK2 G ^RMPRSTI
 | 
|---|
| 67 |  I $D(DTOUT) X CK1 Q
 | 
|---|
| 68 |  I +Y'>0 W !!,?5,$C(7),"This is a required response.  Enter '^' to exit",! G 2
 | 
|---|
| 69 |  S $P(R1(0),U,6)=+Y,$P(R3("D"),U,6)=$P(Y,U,2)
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 | LOC ;ask for location
 | 
|---|
| 72 |  S (RMITFLG,RMHCFLG,RMHCDA,RMITDA,RMAV,RMAVA,RMCO,RMBAL)=0
 | 
|---|
| 73 |  K DIC,Y,X,RQUIT,DTOUT,DUOUT
 | 
|---|
| 74 |  S DZ="??",D="B",DIC("S")="I $P(^RMPR(661.3,+Y,0),U,3)=RMPR(""STA"")"
 | 
|---|
| 75 |  S:RMLOCOLD'="" DIC("B")=RMLOCOLD
 | 
|---|
| 76 |  S DIC="^RMPR(661.3,",DIC(0)="AEQM"
 | 
|---|
| 77 |  S DIC("A")="Enter Pros Location: " D MIX^DIC1
 | 
|---|
| 78 |  I $G(REDIT)&$D(DUOUT) G LIST^RMPRSTE
 | 
|---|
| 79 |  I $D(DUOUT) X CK2 G ^RMPRSTI
 | 
|---|
| 80 |  I $D(DTOUT) X CK1 Q
 | 
|---|
| 81 |  I X="" W !,"This is a mandatory field!!!",! G LOC
 | 
|---|
| 82 |  S RMLOC=+Y
 | 
|---|
| 83 |  G:'$D(^RMPR(661.3,RMLOC,0)) LOC
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 | HCPCS ;HCPCS code
 | 
|---|
| 86 |  K DIC,RMR,RMX,RQUIT S DIC("A")="PSAS HCPCS: ",DA(1)=RMLOC,RMF=1
 | 
|---|
| 87 |  I $P(R1(1),U,4)&(RMLOCOLD=RMLOC) S DIC("B")=$P(R1(1),U,4)
 | 
|---|
| 88 |  S DIC="^RMPR(661.3,"_DA(1)_",1,",DIC(0)="AEMNZ"
 | 
|---|
| 89 |  S DIC("W")="S RZ=$P(^RMPR(661.3,RMLOC,1,+Y,0),U,1) I RZ W ?30,$P(^RMPR(661.1,RZ,0),U,2)"
 | 
|---|
| 90 |  D ^DIC
 | 
|---|
| 91 |  I $D(DUOUT) G LOC
 | 
|---|
| 92 |  I $D(DTOUT) X CK1 Q
 | 
|---|
| 93 |  I X="" W !,"This is a mandatory field!!!",! G HCPCS
 | 
|---|
| 94 |  S (RMHCNEW,RMDAHC)=$P($G(^RMPR(661.3,RMLOC,1,+Y,0)),U,1)
 | 
|---|
| 95 |  I $G(RMDAHC),$P(^RMPR(661.1,RMDAHC,0),U,5)'=1 D INACT G HCPCS
 | 
|---|
| 96 |  S RMHCPC=$P(^RMPR(661.1,RMDAHC,0),U,1),RMHCDA=+Y
 | 
|---|
| 97 |  S RDESC=$P(^RMPR(661.1,RMDAHC,0),U,2)
 | 
|---|
| 98 |  ;
 | 
|---|
| 99 | CPT ;ask for CPT Modifier
 | 
|---|
| 100 |  K DIC,Y,RQUIT
 | 
|---|
| 101 |  S RDA=RMDAHC_"^"_$P(R1(0),U,4)_"^"_$P(R1(0),U,14)_"^"_660
 | 
|---|
| 102 |  D:$D(RMCPT) CHK^RMPRED5
 | 
|---|
| 103 |  W:$G(REDIT) !,"OLD CPT MODIFIER: ",$P(R1(1),U,6)
 | 
|---|
| 104 |  I RMHCOLD'=RMDAHC D CPT^RMPRCPTU(RDA) G:$D(DUOUT)!$D(DTOUT) LIST^RMPRSTE S $P(R1(1),U,6)=$G(RMCPT) W:$G(REDIT) !,"NEW CPT MODIFIER: ",$G(RMCPT)
 | 
|---|
| 105 |  I RMHCOLD'="",(RMHCOLD=RMDAHC),$G(REDIT) D
 | 
|---|
| 106 |  .S DIR(0)="Y",DIR("A")="Would you like to Edit CPT MODIFIER Entry  ",DIR("B")="N" D ^DIR Q:$D(DTOUT)!$D(DUOUT)
 | 
|---|
| 107 |  .I $G(Y) D CPT^RMPRCPTU(RDA) Q:$D(DUOUT)!$D(DUOUT)  S $P(R1(1),U,6)=$G(RMCPT) W !,"NEW CPT MODIFIER: ",$G(RMCPT)
 | 
|---|
| 108 |  K DIR
 | 
|---|
| 109 |  ;
 | 
|---|
| 110 |  ;D ITEM^RMPR5NU1(REDIT,RMLOC,RMLOCOLD,RMDAHC,RMHCOLD,RMHCDA,RMIT)
 | 
|---|
| 111 |  ;
 | 
|---|
| 112 | ITEM ;ask for PSAS Item to edit.
 | 
|---|
| 113 |  S DA(2)=RMLOC,DA(1)=RMHCDA K DIC,RMU3,RMUBA,RQUIT
 | 
|---|
| 114 |  S DIC("A")="Enter PSAS Item: ",DIC(0)="AEMNQ"
 | 
|---|
| 115 |  I RMDAHC=RMHCOLD S DIC("B")=$G(RMIT)
 | 
|---|
| 116 |  S DIC="^RMPR(661.3,"_DA(2)_",1,"_DA(1)_",1,"
 | 
|---|
| 117 |  D ^DIC
 | 
|---|
| 118 |  I $D(DUOUT) G LOC
 | 
|---|
| 119 |  I $D(DTOUT) X CK1 Q
 | 
|---|
| 120 |  I X="" W !,"This is a mandatory field!!!",! G ITEM
 | 
|---|
| 121 |  S RMITDA=+Y
 | 
|---|
| 122 |  S RMU3=$G(^RMPR(661.3,RMLOC,1,RMHCDA,1,RMITDA,0))
 | 
|---|
| 123 |  S RMUBA=$P(RMU3,U,2)
 | 
|---|
| 124 |  S (RMITDES,RMIT)=$P(RMU3,U,1)
 | 
|---|
| 125 |  S RMDES=RMIT K DIC("B"),DIC("S")
 | 
|---|
| 126 |  I RMUBA<1 D LOWBA G LOC
 | 
|---|
| 127 |  ;
 | 
|---|
| 128 |  I $D(RMLOC),$D(RMHCDA),$D(RMITDA) S RMSO=$$SOURCE^RMPR5NU1
 | 
|---|
| 129 |  I $D(RMSO),RMSO="" D MESSO G LOC
 | 
|---|
| 130 |  S:$D(RMSO) $P(R1(0),U,14)=RMSO
 | 
|---|
| 131 |  S $P(R3("D"),U,14)=$S(RMSO="C":"COMMERCIAL",RMSO="V":"VA",1:"")
 | 
|---|
| 132 |  I $P(R1(1),U,4)'="",$D(DUOUT) G LIST^RMPRSTE
 | 
|---|
| 133 |  I $G(RMLOC),'($G(RMHCDA)&$G(RMITDA)) W !,"PSAS Item was not selected!!" G LOC
 | 
|---|
| 134 |  I $G(RMLOC),$G(RMHCDA),$G(RMITDA) S RMPRUCST=$$COST^RMPR5NU1
 | 
|---|
| 135 |  I '$G(RMPRUCST) D MESSI G LOC
 | 
|---|
| 136 |  S:$G(REDIT) $P(R1(0),U,16)=RMPRUCST*$P(R1(0),U,7),$P(R3("D"),U,16)=RMPRUCST*$P(R1(0),U,7)
 | 
|---|
| 137 |  K DIC
 | 
|---|
| 138 |  ;
 | 
|---|
| 139 | VEN ;vendor
 | 
|---|
| 140 |  S $P(R1(1),U,4)=RMDAHC,$P(R1(0),U,22)=$P(^RMPR(661.1,RMDAHC,0),U,4)
 | 
|---|
| 141 |  S RMITNEW=RMIT D NODE2
 | 
|---|
| 142 |  I $D(RMLOC),$D(RMHCDA),$D(RMITDA) S DIC("B")=$$VEND^RMPR5NU1
 | 
|---|
| 143 |  S $P(R1(0),U,9)=DIC("B")
 | 
|---|
| 144 |  S DIC(0)="AEQM",DIC=440,DIC("A")="VENDOR: "
 | 
|---|
| 145 |  D ^DIC I $P(R3("D"),U,9)'=""&$D(DUOUT) G LIST^RMPRSTE
 | 
|---|
| 146 |  I $D(DTOUT) X CK1 Q
 | 
|---|
| 147 |  I $D(DUOUT)  G LOC
 | 
|---|
| 148 |  I +Y'>0 W !!,?5,$C(7),"This is a required response.  Enter '^' to exit",! G VEN
 | 
|---|
| 149 |  S $P(R1(0),U,9)=+Y,$P(R3("D"),U,9)=$P(Y,U,2) K DIC,Y,X
 | 
|---|
| 150 |  G ^RMPRSTE
 | 
|---|
| 151 |  ;
 | 
|---|
| 152 | NODE2 ;set node2 of file #660
 | 
|---|
| 153 |  N RMDAHC,RMITDESC
 | 
|---|
| 154 |  S RMDAHC=$P(R1(1),U,4)
 | 
|---|
| 155 |  Q:'$G(RMDAHC)
 | 
|---|
| 156 |  S:$D(RMIT) RMITIEN=$P(RMIT,"-",2)
 | 
|---|
| 157 |  I $G(RMITIEN),$G(RMDAHC) S:$D(^RMPR(661.1,RMDAHC,3,RMITIEN,0)) RMITDESC=$P(^(0),U,1)
 | 
|---|
| 158 |  S:$D(RMIT) $P(R1(2),U,1)=RMIT S:$D(RMITDESC) $P(R1(2),U,2)=RMITDESC
 | 
|---|
| 159 |  Q
 | 
|---|
| 160 |  ;
 | 
|---|
| 161 | MESSI ;print message if COST is not defined in the inventory (661.3)
 | 
|---|
| 162 |  S:'$D(RMIT) RMIT=""
 | 
|---|
| 163 |  W !!,"***ITEM COST is not defined @:"
 | 
|---|
| 164 |  W !,"    PSAS Item = ",RMIT
 | 
|---|
| 165 |  W !,"    Location  = ",$P($G(^RMPR(661.3,RMLOC,0)),U,1)
 | 
|---|
| 166 |  W !,"***Fix your inventory or use a different PSAS ITEM!!",!!
 | 
|---|
| 167 |  Q
 | 
|---|
| 168 |  ;
 | 
|---|
| 169 | MESSO ;print message if SOURCE is not defined in the inventory (661.3)
 | 
|---|
| 170 |  W !!,"***PSAS ITEM has no SOURCE at this location..."
 | 
|---|
| 171 |  W !,"***Fix your inventory or use a different PSAS ITEM!!",!!
 | 
|---|
| 172 |  Q
 | 
|---|
| 173 |  ;
 | 
|---|
| 174 | INACT ;print message if HCPCS is inactive.
 | 
|---|
| 175 |  W !!,"*** You have selected an INACTIVE HCPCS..."
 | 
|---|
| 176 |  W !,"*** Please REMOVE this HCPCS from inventory..."
 | 
|---|
| 177 |  W !,"*** And use a different HCPCS!!!",!
 | 
|---|
| 178 |  Q
 | 
|---|
| 179 |  ;
 | 
|---|
| 180 | LOWBA ;print message if inventory balance is low.
 | 
|---|
| 181 |  S:'$D(RMUBA) RMUBA="" S:'$D(RMIT) RMIT=""
 | 
|---|
| 182 |  W !!,"*** PSAS Item ",RMIT," balance is = ",RMUBA
 | 
|---|
| 183 |  W !,"*** You are unable to use this PSAS ITEM..."
 | 
|---|
| 184 |  W !,"*** Please use a different Location, HCPCS or PSAS Item !!!!",!
 | 
|---|
| 185 |  Q
 | 
|---|
| 186 |  ;
 | 
|---|
| 187 | LKP ;print a message if PSAS HCPCS not in PIP or invalid HCPCS.
 | 
|---|
| 188 |  Q:'$G(RMF)!(X=" ")
 | 
|---|
| 189 |  S X=$TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
 | 
|---|
| 190 |  K RX
 | 
|---|
| 191 |  I $D(^RMPR(661.3,"D1",X,RMLOC)) S RX=1
 | 
|---|
| 192 |  I '$G(RX),$D(^RMPR(661.1,"B",X)) D EN^DDIOL("*** Only PSAS HCPCS in PIP can be issued.  Please verify your Location and PSAS HCPCS!!","","!!")
 | 
|---|
| 193 |  K RX
 | 
|---|
| 194 |  Q
 | 
|---|