Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: RMPR37

RMPR37.m

Go to the documentation of this file.
  1. RMPR37 ;PHX/HNC,JLT-POST AN ECMS 2237 TO 10-2319 ;8/29/1994
  1. ;;3.0;PROSTHETICS;**6,34,35,41,62,130,185**;Feb 09, 1996;Build 19
  1. ;Per VHA Directive 10-93-142, this routine should not be modified.
  1. ;
  1. ;RVD patch #62 - PCE interface
  1. ; patch #130 - Routine temporarily removed from Prosthetics
  1. ;DDA patch #185 - Reinstated for eCMS/IFCAP purchase requests
  1. ;
  1. K ^TMP($J,"RMPRPCE")
  1. D DIV4^RMPRSIT G:$D(X) EXIT
  1. OBL ;get obligation number
  1. S DIC("S")="I $P(^(0),U,4)>1&($P(^(0),U,4)<5)"
  1. S DIC(0)="EQZ",DIC="^PRCS(410,"
  1. S DIC("A")="Select OBLIGATION NUMBER: "
  1. K R410
  1. D ^PRCSDIC G:Y'>0 EXIT
  1. I $P(Y(0),U,2)="CA" W !!,$C(7),?5,"OBILIGATION TRANSACTION CANCELED",! G OBL
  1. S RMPR2237=$P(Y,"^",2)
  1. S %X=DIC_+Y_",",%Y="R410(" D %XY^%RCR K %X,%Y,DIC
  1. ; CHECK FOR eCMS ACTIONID
  1. S RMPREAID=$P(R410(1),U,8)
  1. S RMPRPO=$P(R410(4),U,5)
  1. I RMPRPO="" W !!,$C(7),?5,"**WARNING -- THIS 2237 DOES NOT HAVE AN IFCAP PURCHASE ORDER **",!
  1. DSP ;display obligation line items
  1. K RIT,RIB D HOME^%ZIS W @IOF K RIT,FL,RD
  1. DSP0 ;DISPLAY BUT WITHOUT CLEARING THE SCREEN.
  1. S (CTT,ITN,LCT,PCT)=0 F S ITN=$O(R410("IT",ITN)) Q:ITN'>0 S LCT=LCT+1 D A^RMPR37A
  1. I LCT=PCT W !,"All lines of this 2237 have been posted.",! H 5 G OBL
  1. ASK ;ask item to post
  1. S X=CTT D COMMA^%DTC
  1. W !?34,"TOTAL EST. COST: ",X
  1. S X=$P(R410(4),U,3) D COMMA^%DTC
  1. W !?34,"OBLIGATED AMOUNT: ",X S D1=0 W !,"REMARKS:",!
  1. F S D1=$O(R410("RM",D1)) Q:D1'>0 W !,R410("RM",D1,0)
  1. W !!,"VENDOR: ",$P(R410(2),U,1)
  1. K DIR
  1. S DIR("?")="Enter the Line Item # you wish to post."
  1. W ! S DIR(0)="N^1:"_LCT
  1. S DIR("A")="Please enter Line Item #"
  1. D ^DIR
  1. I '$D(DTOUT),'$D(DIRUT),$D(X) S (RMPRY,RZ)=X
  1. I $D(DTOUT)!($D(DIRUT))!(Y=-1) W !,"Please Try Later!" G OBL
  1. S RMPRIT=+Y,RMPREIID="" K X,Y,DA
  1. I $D(R410("IT",RMPRIT,4)) S RMPREIID=$P(R410("IT",RMPRIT,4),U,3)
  1. I RMPREIID="" S RMPREIID=RMPR2237_"-"_RMPRIT
  1. I $D(^RMPR(660,"EIID",RMPREIID)) W !!,"** LINE ITEM UNIQUE ID "_RMPREIID_" has already been posted! **",!! G DSP0
  1. PAT ;get patient
  1. D GETPAT^RMPRUTIL G:'$D(RMPRDFN) KILL
  1. K DIR,DA S DIR(0)="660,2",DIR("B")="INITIAL ISSUE" D ^DIR G:$D(DIRUT) KILL S (RMTYPE,RMPRTYP)=Y K X,Y
  1. K DIR,DA S DIR(0)="660,62" D ^DIR G:$D(DIRUT) KILL S RMPRCAT=Y,RMPRSC="" K X,Y
  1. I RMPRCAT=4 K DIR,DA S DIR(0)="660,63" D ^DIR G:$D(DIRUT) KILL S RMPRSC=Y K X,Y
  1. S RMPR661="" I $P(R410("IT",RMPRIT,0),U,5)'="" S RMPR661=$O(^RMPR(661,"B",$P(R410("IT",RMPRIT,0),U,5),""))
  1. I RMPR661'="" S C=$P(^DD(660,4,0),U,2),Y=RMPR661 D Y^DIQ S RMPR661T=Y K C,Y
  1. I RMPR661'="" K DIR,DA S DIR(0)="660,4",DIR("A")="ITEM",DIR("B")=RMPR661T D ^DIR G:$D(DIRUT) KILL S RMPR661=+Y K X,Y
  1. I RMPR661="" K DIR,DA S DIR(0)="660,4",DIR("A")="ITEM" D ^DIR G:$D(DIRUT) KILL S RMPR661=+Y K X,Y
  1. K DIR,DA S DIR(0)="660,4.5" D ^DIR G:$D(DIRUT) KILL S RMPRHC=+Y K X,Y
  1. S RDA=RMPRHC_"^"_RMTYPE_"^C^"_660
  1. D CPT^RMPRCPTU(RDA)
  1. S RMPRV=$P(R410(2),U)
  1. S RMPRQTY=$S($D(R410("IT",RMPRIT,0)):$P(R410("IT",RMPRIT,0),U,2),1:1)
  1. K DIR,Y,X S DIR(0)="660,9^O" D ^DIR G:$D(DTOUT)!($D(DUOUT)) KILL S RMPRSN=Y K X,Y
  1. K DIR,Y,X S DIR(0)="660,21" D ^DIR G:$D(DTOUT)!($D(DUOUT)) KILL S RMPRLT=Y K X,Y
  1. AB S %=1 R !,"Would you like to POST this request now" D YN^DICN
  1. G:%<0 KILL G:%=0 H G:%=1 POST G:%=2 KILL
  1. POST W !," Posting Now ..."
  1. S DIC="^RMPR(660,",DIC(0)="AEQLM",DLAYGO=660,X=DT
  1. S DIC("DR")=".02////^S X=RMPRDFN"
  1. K DINUM,DD,DO D FILE^DICN K DLAYGO
  1. I Y=-1 W !!,"*** Request failed to post. Please contact support. ***" H 10 G EXIT
  1. S ^RMPR(660,+Y,0)=DT_U_RMPRDFN_U_$P(R410(1),U)_U_RMPRTYP_"^^"_RMPR661_U_RMPRQTY_U_$P(R410("IT",RMPRIT,0),U,3)_U_$P($G(R410(3)),U,4)_U_RMPR("STA")_U_RMPRSN_U_DT_"^3^C^^"_($P(R410("IT",RMPRIT,0),U,7)*RMPRQTY)_"^^^^^^^^"_RMPRLT,RMPRA=+Y
  1. S ^RMPR(660,+Y,1)=$P(R410(0),U,1)_"^^^"_$G(RMPRHC)_"^^"_RMCPT
  1. S $P(^RMPR(660,+Y,0),U,27)=DUZ
  1. ; S two new eCMS ID fields
  1. S ^RMPR(660,+Y,5)="^"_RMPREAID_"^"_RMPREIID
  1. S ^RMPR(660,+Y,"AM")="^^"_RMPRCAT_U_RMPRSC
  1. K RMPRG L +^RMPR(669.9,RMPRSITE,0):999 I $T=0 S RMPRG=DT-99
  1. I '$D(RMPRG) S RMPRG=$P(^RMPR(669.9,RMPRSITE,0),U,7),RMPRG=RMPRG-1,$P(^RMPR(669.9,RMPRSITE,0),U,7)=RMPRG L -^RMPR(669.9,RMPRSITE,0)
  1. S ^RMPR(660,+Y,"AMS")=RMPRG
  1. Q:'$D(R410("IT")) S D1=0 F S D1=$O(R410("IT",RMPRIT,1,D1)) Q:D1'>0 S RZI(RMPRIT_D1)=R410("IT",RMPRIT,1,D1,0)
  1. S D1=0 F I=1:1 S D1=$O(RZI(D1)) Q:D1'>0 S ^RMPR(660,+Y,"DES",I,0)=RZI(D1)
  1. S:RMPREAID'="" ^RMPR(660,+Y,"DES",I,0)=" eCMS ACTIONUID is "_RMPREAID_"/ eCMS ITEMUID is "_RMPREIID
  1. S ^RMPR(660,+Y,"DES",0)="^660.028^"_I_U_I,DIK=DIC,(RMPR660,DA)=+Y
  1. D IX1^DIK
  1. W !?5,"Updated 10-2319 Record"
  1. ;added in patch #62
  1. S ^TMP($J,"RMPRPCE",660,RMPR660)=RMPRG_"^"_$G(RMPRDFN)
  1. D LINK^RMPRS
  1. G DSP
  1. H W !,"Enter `Y` for YES if you want to post this request to the Patient's 10-2319 Record." G AB
  1. ;KILL VARS BUT RETURN TO DSP0, LINE SELECTION PROMPT
  1. KILL W !,$C(7),"** Did Not POST 2237 to Veterans 2319 Record! **" K RMPRIT,RMPREIID,RMTYPE,RMPRTYP,RMPRCAT,RMPRSC,RMPRHC,RMPRV,RMPRQTY,RMPRSN G DSP0
  1. ;KILL VARS AND EXIT
  1. EXIT K ITN,RZZZ,RG,D1,DIK,DIR,DIRUT,DTOUT,DUOUT,I,RMPRCNT,RMPRSEL,DA,RMPRA,RMPRDFN,UN,X,X2,R410,CTT,RTN,RMPRV,RMPRQTY,DIC,Y,RMPRTYP,PRC,RMPRIT,RMPRCAT,RMPRSC,RD,RC,RIT,RIN,RZ,RT,RF,RE,RNI,CI,AZL,RIB,RMPRSN
  1. K RMPR660,RMPR661,RMCHK,RMPREAID,LCT,PCT,RMPR2237,RMPRPO
  1. K ^TMP($J,"RMPRPCE")
  1. K PRCSIP,RAT,RZI,KI,C1,GI,KK,RB,RI,RJ,RXX,RMPRHC,RMPRY,RMPRDOB,RMPRNAM,RMPRSSN,RMPRG,N,RMCPT,RMTYPE,RDA,RMPRCNUM,RMPRSSNE,RRX,PRCFLAG,TYPE Q