RMPR29A ;PHX/JLT,RVD-RMPR29 CONTINUED [ 09/29/94 11:22 AM ]
;;3.0;PROSTHETICS;**12,13,28,41,142**;Feb 09, 1996;Build 2
POST ;POST 2529-3 TO APPLIANCE/REPAIR FILE #660
I '$D(RMPRDA)!('$D(^RMPR(664.1,RMPRDA,2,0))) Q
S NOAC=$P(^RMPR(664.1,RMPRDA,0),U,23),NOLC=$P(^(0),U,20),RMPR("REF")=$P(^(0),U,4),RMPRG=$P(^(0),U,14)
I RMPRG G GGC
L +^RMPR(669.9,RMPRSITE,0):999 I $T=0 S RMPRG=DT_99 G GGC
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)
GGC I 'NOAC W !!,?5,"Updating Patient's 10-2319"
S RMPRDT=$P(^RMPR(664.1,RMPRDA,0),U,1),RMPRDFN=$P(^(0),U,2),SRC=$P(^(0),U,11),TO=$P(^(0),U,15) K RNEW
F RA=0:0 S RA=$O(^RMPR(664.1,RMPRDA,2,RA)) Q:RA'>0 I $D(^(RA,0)) S IT=$P(^(0),U,1),QTY=$P(^(0),U,2),UN=$P(^(0),U,3),RDA=$P(^(0),U,5),TYP=$P(^(0),U,7),ELS=$P(^(0),U,8),SCAT=$P(^(0),U,9),SER=$P(^(0),U,12) D
.S HCPCS=$P($G(^RMPR(664.1,RMPRDA,2,RA,2)),U,1),RMCPT=$P($G(^(2)),U,2)
.I RDA,'$D(^RMPR(660,RDA,0)) S RDA=""
.I 'RDA S DIC="^RMPR(660,",DLAYGO=660,DIC(0)="LZ",X=RMPRDT D FILE^DICN K DLAYGO Q:+Y'>0 S RDA=+Y,RNEW=$P(Y,U,3) S $P(^RMPR(660,RDA,0),U,1)=RMPRDT,$P(^(0),U,2)=RMPRDFN,$P(^(0),U,3)=RMPRDT
DR .K DR S DR="2///^S X=TYP;4.5////^S X=$G(HCPCS);5///^S X=QTY;9///^S X=SER;78///^S X=UN;8////^S X=RMPR(""STA"");11///^S X=4;62///^S X=ELS;63///^S X=SCAT;68///^S X=RMPRG;4.1////^S X=$P(^RMPR(661.1,HCPCS,0),U,4);4.7////^S X=RMCPT"
.S DIE="^RMPR(660,",DA=RDA D ^DIE S RIT=$P(^RMPR(660,RDA,0),U,6) K ^RMPR(660,"AD",+RIT,RDA)
.S $P(^RMPR(660,RDA,0),U,6)=IT,$P(^(0),U,27)=DUZ,$P(^RMPR(660,RDA,"LB"),U,1)=RMPR("REF"),$P(^("LB"),U,3)=SRC,$P(^("LB"),U,4)=TO,$P(^("LB"),U,14)=NOLC,$P(^RMPR(660,RDA,"AM"),U,2)=NOAC
.I $D(^RMPR(664.1,RMPRDA,2,RA,1)),$O(^RMPR(664.1,RMPRDA,2,RA,1,0)) D
..K ^RMPR(660,RDA,"DES") F RW=0:0 S RW=$O(^RMPR(664.1,RMPRDA,2,RA,1,RW)) Q:RW'>0 S RN=RW S ^RMPR(660,RDA,"DES",RW,0)=^RMPR(664.1,RMPRDA,2,RA,1,RW,0)
.I $D(RN) S ^RMPR(660,RDA,"DES",0)="^660.028^"_RN_U_RN_U_DT_"^^"
.S DIK="^RMPR(660,",DA=RDA D:'$D(RNEW) IX^DIK D:$D(RNEW) IX1^DIK K RNEW
.S $P(^RMPR(664.1,RMPRDA,2,RA,0),U,5)=RDA S $P(^RMPR(660,DA,"LB"),U,10)=RMPRDA,$P(^RMPR(660,DA,0),U,14)="V" S $P(^RMPR(664.1,RMPRDA,0),U,14)=RMPRG
S DA=RMPRDA,DIK="^RMPR(664.1," D IX^DIK I $P(^RMPR(664.1,RMPRDA,0),U,15)=RMPR("STA") D EN4^RMPR29U(RMPRDA)
Q
END L:+$G(RMPRDA) -^RMPR(664.1,+RMPRDA,0) K ^UTILITY("DIQ1",$J)
W !! S DIR(0)="Y",DIR("B")="YES",DIR("A")="Would you like to Process another 2529-3" D ^DIR G:+Y=1 PRC^RMPR29S
N RMPR,RMPRSITE D KILL^XUSCLEAN Q
ITM ;EDIT 2529-3 ITEM
W ! K DIC,Y,RDA S DA=RMPRDA,DIC="^RMPR(664.1,"_RMPRDA_",2,",DIC("P")="664.16PA",DA(1)=RMPRDA,DIC(0)="AEQML",DIC("W")="S RA=$P(^(0),U,1) W ?16,$$ITM^RMPR31U(RA)" D ^DIC G:+Y'>0 PT
S (IEN,DA)=+Y,RNEW=$P(Y,U,3) S RY=$P(Y,U,2) D ITA^RMPR29U(RY)
S RDA(+Y)=^RMPR(664.1,RMPRDA,2,+Y,0) K RMPRPU I $P(RDA(IEN),U,5),$D(^RMPR(664.2,"AF",$P(RDA(IEN),U,5))) W $C(7),!!,?5,"A 2421 HAS BEEN INITIATED FOR THIS ITEM" S RMPRPU=1
I $P(RDA(IEN),U,5),$D(^RMPR(664.2,"AR4",$P(RDA(IEN),U,5))) W $C(7),!!,?5,"A 2529-3 HAS BEEN INITIATED FOR THIS ITEM" S RMPRPU=1
S DIE=DIC,DR=$S($D(RMPRPU):"",1:".01R")
;S DR=DR_";13;2R;3R;8R;9R;I $P(^RMPR(664.1,DA(1),2,DA,0),U,10)'=4 S Y=""@1"";10///@;10R;@1;7;12"
S DR=DR_";8R;S RMTYPE=$P(^RMPR(664.1,RMPRDA,2,DA,0),U,7);9R;13;2R;3R;7;12"
D ^DIE I $D(DA),'$D(Y(0)) S RY=$P(^RMPR(664.1,DA(1),2,DA,0),U) D ITA^RMPR29U(RY)
I $D(DA),^RMPR(664.1,DA(1),2,DA,0)'=RDA(DA) S REDIT=1,RDATA=RMTYPE_"^"_RMPRDA_"^"_DA D CHKCPT^RMPR29U(RDATA) K RDATA,RMTYPE,RMCPT
I $D(DA) I $P(^RMPR(664.1,DA(1),2,DA,0),U)=""!($P(^(0),U,2)="")!($P(^(0),U,3)="")!($P(^(0),U,7)="")!($P(^(0),U,8)="") S DIK=DIE D ^DIK D
.K DA W !!,?5,$C(7),"ITEM INFORMATION IS MISSING",!!,?5,"Deleted..."
I '$D(DA) S DA=$P(RDA(IEN),U,5),DIK="^RMPR(660," I +DA D ^DIK S DA=$O(^RMPR(664.2,"C",+$P(RDA(IEN),U,5),0)) I +DA S DIK="^RMPR(664.2," D ^DIK D
.F DA=0:0 S DA=$O(^RMPR(664.3,"C",$P(RDA(IEN),U,5),DA)) Q:DA'>0 S DIK="^RMPR(664.3," D ^DIK
K FLGG,DR,Y I $P($G(^RMPR(664.1,RMPRDA,2,0)),U,3)=""!($P($G(^(0)),U,4)="") D
.W !!,$C(7),?5,"2529-3 HAS BEEN RETURNED CANCELLED" S DIE="^RMPR(664.1,",DA=RMPRDA,DR="19///@;.09///@;15///@;16///^S X=""CA""" D ^DIE S $P(^RMPR(664.1,DA,0),U,20)="",FLGG=1
K DR S RDC=$G(^RMPR(664.1,RMPRDA,2,IEN,0)) I (+RDC'=+RDA(IEN)),'RNEW D I $D(FLGG) G END
.D NOW^%DTC S (NX,X)=% K %
.S DIC("P")="664.129DA",DA(1)=RMPRDA
.S DIC="^RMPR(664.1,"_RMPRDA_",8,",DIC(0)="LZ"
.S DLAYGO=664.1 D FILE^DICN K DLAYGO
.I +Y S DIE="^RMPR(664.1,"_RMPRDA_",8,",DA(1)=RMPRDA,DA=+Y,DR=".01///^S X=NX;1///^S X=$$ITM^RMPR31U(+RDA(IEN));2///^S X=$$ITM^RMPR31U(+RDC);3////^S X=DUZ;W $C(7),!!,?5,""ITEM/JOB HAS BEEN CHANGED OR DELETED"";4~AUDIT REMARKS" D ^DIE
G ITM
PT D:$D(REDIT) POST K DA,DR,REDIT G DISP^RMPR29D
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRMPR29A 4786 printed Oct 16, 2024@18:32:41 Page 2
RMPR29A ;PHX/JLT,RVD-RMPR29 CONTINUED [ 09/29/94 11:22 AM ]
+1 ;;3.0;PROSTHETICS;**12,13,28,41,142**;Feb 09, 1996;Build 2
POST ;POST 2529-3 TO APPLIANCE/REPAIR FILE #660
+1 IF '$DATA(RMPRDA)!('$DATA(^RMPR(664.1,RMPRDA,2,0)))
QUIT
+2 SET NOAC=$PIECE(^RMPR(664.1,RMPRDA,0),U,23)
SET NOLC=$PIECE(^(0),U,20)
SET RMPR("REF")=$PIECE(^(0),U,4)
SET RMPRG=$PIECE(^(0),U,14)
+3 IF RMPRG
GOTO GGC
+4 LOCK +^RMPR(669.9,RMPRSITE,0):999
IF $TEST=0
SET RMPRG=DT_99
GOTO GGC
+5 SET RMPRG=$PIECE(^RMPR(669.9,RMPRSITE,0),U,7)
SET RMPRG=RMPRG-1
SET $PIECE(^RMPR(669.9,RMPRSITE,0),U,7)=RMPRG
LOCK -^RMPR(669.9,RMPRSITE,0)
GGC IF 'NOAC
WRITE !!,?5,"Updating Patient's 10-2319"
+1 SET RMPRDT=$PIECE(^RMPR(664.1,RMPRDA,0),U,1)
SET RMPRDFN=$PIECE(^(0),U,2)
SET SRC=$PIECE(^(0),U,11)
SET TO=$PIECE(^(0),U,15)
KILL RNEW
+2 FOR RA=0:0
SET RA=$ORDER(^RMPR(664.1,RMPRDA,2,RA))
if RA'>0
QUIT
IF $DATA(^(RA,0))
SET IT=$PIECE(^(0),U,1)
SET QTY=$PIECE(^(0),U,2)
SET UN=$PIECE(^(0),U,3)
SET RDA=$PIECE(^(0),U,5)
SET TYP=$PIECE(^(0),U,7)
SET ELS=$PIECE(^(0),U,8)
SET SCAT=$PIECE(^(0),U,9)
SET SER=$PIECE(^(0),U,12)
Begin DoDot:1
+3 SET HCPCS=$PIECE($GET(^RMPR(664.1,RMPRDA,2,RA,2)),U,1)
SET RMCPT=$PIECE($GET(^(2)),U,2)
+4 IF RDA
IF '$DATA(^RMPR(660,RDA,0))
SET RDA=""
+5 IF 'RDA
SET DIC="^RMPR(660,"
SET DLAYGO=660
SET DIC(0)="LZ"
SET X=RMPRDT
DO FILE^DICN
KILL DLAYGO
if +Y'>0
QUIT
SET RDA=+Y
SET RNEW=$PIECE(Y,U,3)
SET $PIECE(^RMPR(660,RDA,0),U,1)=RMPRDT
SET $PIECE(^(0),U,2)=RMPRDFN
SET $PIECE(^(0),U,3)=RMPRDT
DR KILL DR
SET DR="2///^S X=TYP;4.5////^S X=$G(HCPCS);5///^S X=QTY;9///^S X=SER;78///^S X=UN;8////^S X=RMPR(""STA"");11///^S X=4;62///^S X=ELS;63///^S X=SCAT;68///^S X=RMPRG;4.1////^S X=$P(^RMPR(661.1,HCPCS,0),U,4);4.7////^S X=RMCPT"
+1 SET DIE="^RMPR(660,"
SET DA=RDA
DO ^DIE
SET RIT=$PIECE(^RMPR(660,RDA,0),U,6)
KILL ^RMPR(660,"AD",+RIT,RDA)
+2 SET $PIECE(^RMPR(660,RDA,0),U,6)=IT
SET $PIECE(^(0),U,27)=DUZ
SET $PIECE(^RMPR(660,RDA,"LB"),U,1)=RMPR("REF")
SET $PIECE(^("LB"),U,3)=SRC
SET $PIECE(^("LB"),U,4)=TO
SET $PIECE(^("LB"),U,14)=NOLC
SET $PIECE(^RMPR(660,RDA,"AM"),U,2)=NOAC
+3 IF $DATA(^RMPR(664.1,RMPRDA,2,RA,1))
IF $ORDER(^RMPR(664.1,RMPRDA,2,RA,1,0))
Begin DoDot:2
+4 KILL ^RMPR(660,RDA,"DES")
FOR RW=0:0
SET RW=$ORDER(^RMPR(664.1,RMPRDA,2,RA,1,RW))
if RW'>0
QUIT
SET RN=RW
SET ^RMPR(660,RDA,"DES",RW,0)=^RMPR(664.1,RMPRDA,2,RA,1,RW,0)
End DoDot:2
+5 IF $DATA(RN)
SET ^RMPR(660,RDA,"DES",0)="^660.028^"_RN_U_RN_U_DT_"^^"
+6 SET DIK="^RMPR(660,"
SET DA=RDA
if '$DATA(RNEW)
DO IX^DIK
if $DATA(RNEW)
DO IX1^DIK
KILL RNEW
+7 SET $PIECE(^RMPR(664.1,RMPRDA,2,RA,0),U,5)=RDA
SET $PIECE(^RMPR(660,DA,"LB"),U,10)=RMPRDA
SET $PIECE(^RMPR(660,DA,0),U,14)="V"
SET $PIECE(^RMPR(664.1,RMPRDA,0),U,14)=RMPRG
End DoDot:1
+8 SET DA=RMPRDA
SET DIK="^RMPR(664.1,"
DO IX^DIK
IF $PIECE(^RMPR(664.1,RMPRDA,0),U,15)=RMPR("STA")
DO EN4^RMPR29U(RMPRDA)
+9 QUIT
END if +$GET(RMPRDA)
LOCK -^RMPR(664.1,+RMPRDA,0)
KILL ^UTILITY("DIQ1",$JOB)
+1 WRITE !!
SET DIR(0)="Y"
SET DIR("B")="YES"
SET DIR("A")="Would you like to Process another 2529-3"
DO ^DIR
if +Y=1
GOTO PRC^RMPR29S
+2 NEW RMPR,RMPRSITE
DO KILL^XUSCLEAN
QUIT
ITM ;EDIT 2529-3 ITEM
+1 WRITE !
KILL DIC,Y,RDA
SET DA=RMPRDA
SET DIC="^RMPR(664.1,"_RMPRDA_",2,"
SET DIC("P")="664.16PA"
SET DA(1)=RMPRDA
SET DIC(0)="AEQML"
SET DIC("W")="S RA=$P(^(0),U,1) W ?16,$$ITM^RMPR31U(RA)"
DO ^DIC
if +Y'>0
GOTO PT
+2 SET (IEN,DA)=+Y
SET RNEW=$PIECE(Y,U,3)
SET RY=$PIECE(Y,U,2)
DO ITA^RMPR29U(RY)
+3 SET RDA(+Y)=^RMPR(664.1,RMPRDA,2,+Y,0)
KILL RMPRPU
IF $PIECE(RDA(IEN),U,5)
IF $DATA(^RMPR(664.2,"AF",$PIECE(RDA(IEN),U,5)))
WRITE $CHAR(7),!!,?5,"A 2421 HAS BEEN INITIATED FOR THIS ITEM"
SET RMPRPU=1
+4 IF $PIECE(RDA(IEN),U,5)
IF $DATA(^RMPR(664.2,"AR4",$PIECE(RDA(IEN),U,5)))
WRITE $CHAR(7),!!,?5,"A 2529-3 HAS BEEN INITIATED FOR THIS ITEM"
SET RMPRPU=1
+5 SET DIE=DIC
SET DR=$SELECT($DATA(RMPRPU):"",1:".01R")
+6 ;S DR=DR_";13;2R;3R;8R;9R;I $P(^RMPR(664.1,DA(1),2,DA,0),U,10)'=4 S Y=""@1"";10///@;10R;@1;7;12"
+7 SET DR=DR_";8R;S RMTYPE=$P(^RMPR(664.1,RMPRDA,2,DA,0),U,7);9R;13;2R;3R;7;12"
+8 DO ^DIE
IF $DATA(DA)
IF '$DATA(Y(0))
SET RY=$PIECE(^RMPR(664.1,DA(1),2,DA,0),U)
DO ITA^RMPR29U(RY)
+9 IF $DATA(DA)
IF ^RMPR(664.1,DA(1),2,DA,0)'=RDA(DA)
SET REDIT=1
SET RDATA=RMTYPE_"^"_RMPRDA_"^"_DA
DO CHKCPT^RMPR29U(RDATA)
KILL RDATA,RMTYPE,RMCPT
+10 IF $DATA(DA)
IF $PIECE(^RMPR(664.1,DA(1),2,DA,0),U)=""!($PIECE(^(0),U,2)="")!($PIECE(^(0),U,3)="")!($PIECE(^(0),U,7)="")!($PIECE(^(0),U,8)="")
SET DIK=DIE
DO ^DIK
Begin DoDot:1
+11 KILL DA
WRITE !!,?5,$CHAR(7),"ITEM INFORMATION IS MISSING",!!,?5,"Deleted..."
End DoDot:1
+12 IF '$DATA(DA)
SET DA=$PIECE(RDA(IEN),U,5)
SET DIK="^RMPR(660,"
IF +DA
DO ^DIK
SET DA=$ORDER(^RMPR(664.2,"C",+$PIECE(RDA(IEN),U,5),0))
IF +DA
SET DIK="^RMPR(664.2,"
DO ^DIK
Begin DoDot:1
+13 FOR DA=0:0
SET DA=$ORDER(^RMPR(664.3,"C",$PIECE(RDA(IEN),U,5),DA))
if DA'>0
QUIT
SET DIK="^RMPR(664.3,"
DO ^DIK
End DoDot:1
+14 KILL FLGG,DR,Y
IF $PIECE($GET(^RMPR(664.1,RMPRDA,2,0)),U,3)=""!($PIECE($GET(^(0)),U,4)="")
Begin DoDot:1
+15 WRITE !!,$CHAR(7),?5,"2529-3 HAS BEEN RETURNED CANCELLED"
SET DIE="^RMPR(664.1,"
SET DA=RMPRDA
SET DR="19///@;.09///@;15///@;16///^S X=""CA"""
DO ^DIE
SET $PIECE(^RMPR(664.1,DA,0),U,20)=""
SET FLGG=1
End DoDot:1
+16 KILL DR
SET RDC=$GET(^RMPR(664.1,RMPRDA,2,IEN,0))
IF (+RDC'=+RDA(IEN))
IF 'RNEW
Begin DoDot:1
+17 DO NOW^%DTC
SET (NX,X)=%
KILL %
+18 SET DIC("P")="664.129DA"
SET DA(1)=RMPRDA
+19 SET DIC="^RMPR(664.1,"_RMPRDA_",8,"
SET DIC(0)="LZ"
+20 SET DLAYGO=664.1
DO FILE^DICN
KILL DLAYGO
+21 IF +Y
SET DIE="^RMPR(664.1,"_RMPRDA_",8,"
SET DA(1)=RMPRDA
SET DA=+Y
SET DR=".01///^S X=NX;1///^S X=$$ITM^RMPR31U(+RDA(IEN));2///^S X=$$ITM^RMPR31U(+RDC);3////^S X=DUZ;W $C(7),!!,?5,""ITEM/JOB HAS BEEN CHANGED OR DELETED"";4~AUDIT REMARKS"
DO ^DIE
End DoDot:1
IF $DATA(FLGG)
GOTO END
+22 GOTO ITM
PT if $DATA(REDIT)
DO POST
KILL DA,DR,REDIT
GOTO DISP^RMPR29D