RMPFQT ;DDC/KAW-QUEUE A BATCH FOR TRANSMISSION [ 09/03/97 3:16 PM ]
;;2.0;REMOTE ORDER/ENTRY SYSTEM;**16**;JUN 16, 1995
;;Reference to ^VA(200) supported by DBIA #10060
;;Reference to ^DIC(4.2) supported by DBIA #248
RMPFSET I '$D(RMPFMENU) D MENU^RMPFUTL I '$D(RMPFMENU) W !!,$C(7),"*** A MENU SELECTION MUST BE MADE ***" Q ;;RMPFMENU must be defined
I '$D(RMPFSTAN)!'$D(RMPFDAT)!'$D(RMPFSYS) D ^RMPFUTL Q:'$D(RMPFSTAN)!'$D(RMPFDAT)!'$D(RMPFSYS)
W @IOF,!!,"QUEUE A BATCH FOR TRANSMISSION"
W !!,"This option will allow you to queue the transmission of a batch"
W !,"to the VA Denver Distribution Center. Only batches with the status"
W !,"CLOSED, QUEUED FOR TRANSMISSION or TRANSMITTED may be chosen."
S XMINST=$O(^DIC(4.2,"B","DDC.DOMAIN.EXT",0)) I XMINST,$D(^DIC(4.2,XMINST,0))
E W !!,"*** 'DDC.DOMAIN.EXT' DOMAIN NOT SET UP FOR TRANSMISSION ***" H 2 G END
F I=1:1 Q:$Y>21 W !
W !!,"Enter <RETURN> to continue. " D READ G END:$D(RMPFOUT)
DISP K RMPFS S (RMPFS(4),RMPFS(2),RMPFS(3))="" D DISP^RMPFDB G SHOW:$D(RMPFBT)
I '$D(RMPFB) W !!,"*** NO BATCHES AVAILABLE ***" G END
D SEL^RMPFDB G END:$D(RMPFOUT)!'$D(RMPFBT)
SHOW W !!,"Display batch entries? YES// " D READ
G END:$D(RMPFOUT)
SHOW1 I $D(RMPFQUT) W !!,"Enter <Y> or <RETURN> to display entries in the batch or <N> to continue." G SHOW
S:Y="" Y="Y" I "YyNn"'[Y S RMPFQUT="" G SHOW1
G CONT:"Nn"[Y D ^RMPFDB1
CONT W !!,"Do you wish to continue with the transmission? NO// "
D READ G END:$D(RMPFOUT)
CONT1 I $D(RMPFQUT) W !!,"Enter a <Y> to transmit the batch, <N> or <RETURN> to avoid transmission." G CONT
S:Y="" Y="N" S Y=$E(Y,1) I "NnYy"'[Y S RMPFQUT="" G CONT1
G END:"Yy"'[Y D STAT,AUTOQ
W !!,"*** Queued for Transmission ***",! G END
AUTOQ ;;Automatic queueing of transmission batch
;; input: RMPFBT
;;output: None
S XMINST=$O(^DIC(4.2,"B","DDC.DOMAIN.EXT",0)) I XMINST,$D(^DIC(4.2,XMINST,0))
E G END
S RMPFP3=$P(RMPFSYS,U,3)
S ZTRTN="TRANS^RMPFQT",ZTIO="",ZTDESC="DDC ORDER"
I RMPFP3="I"!(RMPFP3="")!(RMPFP3="A") S ZTDTH=$H
I RMPFP3="S" S ZTDTH=$S($P(RMPFSYS,U,4)?1"."1N.4N:DT_$P(RMPFSYS,U,4),1:$H)
S ZTSAVE("RMPFBT")=RMPFBT,ZTSAVE("RMPFSTAP")=RMPFSTAP,ZTSAVE("XMINST")=XMINST,ZTSAVE("RMPFSYS")="",ZTSAVE("RMPFMENU")=""
D ^%ZTLOAD
S DIE="^RMPF(791812,",DA=RMPFBT,DR=".02////4" D ^DIE
S X="NOW",%DT="T" D ^%DT
S DIE="^RMPF(791810,",DR=".03////9;.06////"_Y,II=0
F I=1:1 S II=$O(^RMPF(791812,RMPFBT,101,II)) Q:'II I $D(^RMPF(791812,RMPFBT,101,II,0)),'$P(^(0),U,2) S DA=$P(^(0),U,1) D ^DIE:DA
END K RMPFP3,RMPFSIG,RMPFS,RMPFB,RMPFBT,ZTRTN,ZTIO,ZTDESC,ZTSAVE,ZTDTH
K RMPFOUT,RMPFQUT,ZTSK,%,%T,D,D0,DA,DI,DIC,DIE,DQ,DR,I,II
K XMINST,TD,X,Y,%H Q
READ K RMPFOUT,RMPFQUT
R Y:DTIME I '$T W $C(7) R Y:5 G READ:Y="." S:'$T Y=U
I Y?1"^".E S (RMPFOUT,Y)="" Q
S:Y?1"?".E (RMPFQUT,Y)=""
Q
TRANS ;;Build and send message with ROES orders
;; input: RMPFBT
;;output: None
Q:'$D(^RMPF(791812,RMPFBT,0))
S XMDUZ=DUZ,XMDUN=$P(^VA(200,DUZ,0),U,1)
S XMSUB="VADDC TRANS-"_RMPFSTAP_"-"_$P(^RMPF(791812,RMPFBT,0),U,1)
D XMZ^XMA2 Q:XMZ=-1 S X="NOW",%DT="T" D ^%DT
S DIE="^RMPF(791812,",DA=RMPFBT,DR=".06////"_XMZ_";.07////"_Y_";.02////3" D ^DIE
D ^RMPFQT1
S XMY("S.RMPFAUTO-READ@DDC.DOMAIN.EXT")=XMINST D ENT1^XMD
TRANSE K XMDUZ,XMSUB,XMTEXT,XMY,XMZ,DIE,DR,D0,DI,DQ,DR,DA,D,X,Y Q
STAT ;;change status of lines to be sent to APROVED if batch status=transmitted
Q:$P(^RMPF(791812,RMPFBT,0),U,2)'=3
S APP=$O(^RMPF(791810.2,"B","APPROVED",0)) Q:'APP
S J=0 F S J=$O(^RMPF(791812,RMPFBT,101,J)) Q:'J D
.Q:'$D(^(J,0)) S RMPFX=$P(^(0),U,1) Q:'RMPFX Q:'$D(^RMPF(791810,RMPFX,0)) D
..S RMPFY=0 F S RMPFY=$O(^RMPF(791810,RMPFX,101,RMPFY)) Q:'RMPFY D
...S ST=$P($G(^(RMPFY,0)),U,18) Q:'ST S STP=$P($G(^RMPF(791810.2,ST,0)),U,1)
...I $P(STP,"-",2)="TRANS" S $P(^RMPF(791810,RMPFX,101,RMPFY,0),U,18)=APP
STATE K RMPFX,RMPFY,J,ST,STP Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRMPFQT 3897 printed Nov 22, 2024@17:46:55 Page 2
RMPFQT ;DDC/KAW-QUEUE A BATCH FOR TRANSMISSION [ 09/03/97 3:16 PM ]
+1 ;;2.0;REMOTE ORDER/ENTRY SYSTEM;**16**;JUN 16, 1995
+2 ;;Reference to ^VA(200) supported by DBIA #10060
+3 ;;Reference to ^DIC(4.2) supported by DBIA #248
RMPFSET ;;RMPFMENU must be defined
IF '$DATA(RMPFMENU)
DO MENU^RMPFUTL
IF '$DATA(RMPFMENU)
WRITE !!,$CHAR(7),"*** A MENU SELECTION MUST BE MADE ***"
QUIT
+1 IF '$DATA(RMPFSTAN)!'$DATA(RMPFDAT)!'$DATA(RMPFSYS)
DO ^RMPFUTL
if '$DATA(RMPFSTAN)!'$DATA(RMPFDAT)!'$DATA(RMPFSYS)
QUIT
+2 WRITE @IOF,!!,"QUEUE A BATCH FOR TRANSMISSION"
+3 WRITE !!,"This option will allow you to queue the transmission of a batch"
+4 WRITE !,"to the VA Denver Distribution Center. Only batches with the status"
+5 WRITE !,"CLOSED, QUEUED FOR TRANSMISSION or TRANSMITTED may be chosen."
+6 SET XMINST=$ORDER(^DIC(4.2,"B","DDC.DOMAIN.EXT",0))
IF XMINST
IF $DATA(^DIC(4.2,XMINST,0))
+7 IF '$TEST
WRITE !!,"*** 'DDC.DOMAIN.EXT' DOMAIN NOT SET UP FOR TRANSMISSION ***"
HANG 2
GOTO END
+8 FOR I=1:1
if $Y>21
QUIT
WRITE !
+9 WRITE !!,"Enter <RETURN> to continue. "
DO READ
if $DATA(RMPFOUT)
GOTO END
DISP KILL RMPFS
SET (RMPFS(4),RMPFS(2),RMPFS(3))=""
DO DISP^RMPFDB
if $DATA(RMPFBT)
GOTO SHOW
+1 IF '$DATA(RMPFB)
WRITE !!,"*** NO BATCHES AVAILABLE ***"
GOTO END
+2 DO SEL^RMPFDB
if $DATA(RMPFOUT)!'$DATA(RMPFBT)
GOTO END
SHOW WRITE !!,"Display batch entries? YES// "
DO READ
+1 if $DATA(RMPFOUT)
GOTO END
SHOW1 IF $DATA(RMPFQUT)
WRITE !!,"Enter <Y> or <RETURN> to display entries in the batch or <N> to continue."
GOTO SHOW
+1 if Y=""
SET Y="Y"
IF "YyNn"'[Y
SET RMPFQUT=""
GOTO SHOW1
+2 if "Nn"[Y
GOTO CONT
DO ^RMPFDB1
CONT WRITE !!,"Do you wish to continue with the transmission? NO// "
+1 DO READ
if $DATA(RMPFOUT)
GOTO END
CONT1 IF $DATA(RMPFQUT)
WRITE !!,"Enter a <Y> to transmit the batch, <N> or <RETURN> to avoid transmission."
GOTO CONT
+1 if Y=""
SET Y="N"
SET Y=$EXTRACT(Y,1)
IF "NnYy"'[Y
SET RMPFQUT=""
GOTO CONT1
+2 if "Yy"'[Y
GOTO END
DO STAT
DO AUTOQ
+3 WRITE !!,"*** Queued for Transmission ***",!
GOTO END
AUTOQ ;;Automatic queueing of transmission batch
+1 ;; input: RMPFBT
+2 ;;output: None
+3 SET XMINST=$ORDER(^DIC(4.2,"B","DDC.DOMAIN.EXT",0))
IF XMINST
IF $DATA(^DIC(4.2,XMINST,0))
+4 IF '$TEST
GOTO END
+5 SET RMPFP3=$PIECE(RMPFSYS,U,3)
+6 SET ZTRTN="TRANS^RMPFQT"
SET ZTIO=""
SET ZTDESC="DDC ORDER"
+7 IF RMPFP3="I"!(RMPFP3="")!(RMPFP3="A")
SET ZTDTH=$HOROLOG
+8 IF RMPFP3="S"
SET ZTDTH=$SELECT($PIECE(RMPFSYS,U,4)?1"."1N.4N:DT_$PIECE(RMPFSYS,U,4),1:$HOROLOG)
+9 SET ZTSAVE("RMPFBT")=RMPFBT
SET ZTSAVE("RMPFSTAP")=RMPFSTAP
SET ZTSAVE("XMINST")=XMINST
SET ZTSAVE("RMPFSYS")=""
SET ZTSAVE("RMPFMENU")=""
+10 DO ^%ZTLOAD
+11 SET DIE="^RMPF(791812,"
SET DA=RMPFBT
SET DR=".02////4"
DO ^DIE
+12 SET X="NOW"
SET %DT="T"
DO ^%DT
+13 SET DIE="^RMPF(791810,"
SET DR=".03////9;.06////"_Y
SET II=0
+14 FOR I=1:1
SET II=$ORDER(^RMPF(791812,RMPFBT,101,II))
if 'II
QUIT
IF $DATA(^RMPF(791812,RMPFBT,101,II,0))
IF '$PIECE(^(0),U,2)
SET DA=$PIECE(^(0),U,1)
if DA
DO ^DIE
END KILL RMPFP3,RMPFSIG,RMPFS,RMPFB,RMPFBT,ZTRTN,ZTIO,ZTDESC,ZTSAVE,ZTDTH
+1 KILL RMPFOUT,RMPFQUT,ZTSK,%,%T,D,D0,DA,DI,DIC,DIE,DQ,DR,I,II
+2 KILL XMINST,TD,X,Y,%H
QUIT
READ KILL RMPFOUT,RMPFQUT
+1 READ Y:DTIME
IF '$TEST
WRITE $CHAR(7)
READ Y:5
if Y="."
GOTO READ
if '$TEST
SET Y=U
+2 IF Y?1"^".E
SET (RMPFOUT,Y)=""
QUIT
+3 if Y?1"?".E
SET (RMPFQUT,Y)=""
+4 QUIT
TRANS ;;Build and send message with ROES orders
+1 ;; input: RMPFBT
+2 ;;output: None
+3 if '$DATA(^RMPF(791812,RMPFBT,0))
QUIT
+4 SET XMDUZ=DUZ
SET XMDUN=$PIECE(^VA(200,DUZ,0),U,1)
+5 SET XMSUB="VADDC TRANS-"_RMPFSTAP_"-"_$PIECE(^RMPF(791812,RMPFBT,0),U,1)
+6 DO XMZ^XMA2
if XMZ=-1
QUIT
SET X="NOW"
SET %DT="T"
DO ^%DT
+7 SET DIE="^RMPF(791812,"
SET DA=RMPFBT
SET DR=".06////"_XMZ_";.07////"_Y_";.02////3"
DO ^DIE
+8 DO ^RMPFQT1
+9 SET XMY("S.RMPFAUTO-READ@DDC.DOMAIN.EXT")=XMINST
DO ENT1^XMD
TRANSE KILL XMDUZ,XMSUB,XMTEXT,XMY,XMZ,DIE,DR,D0,DI,DQ,DR,DA,D,X,Y
QUIT
STAT ;;change status of lines to be sent to APROVED if batch status=transmitted
+1 if $PIECE(^RMPF(791812,RMPFBT,0),U,2)'=3
QUIT
+2 SET APP=$ORDER(^RMPF(791810.2,"B","APPROVED",0))
if 'APP
QUIT
+3 SET J=0
FOR
SET J=$ORDER(^RMPF(791812,RMPFBT,101,J))
if 'J
QUIT
Begin DoDot:1
+4 if '$DATA(^(J,0))
QUIT
SET RMPFX=$PIECE(^(0),U,1)
if 'RMPFX
QUIT
if '$DATA(^RMPF(791810,RMPFX,0))
QUIT
Begin DoDot:2
+5 SET RMPFY=0
FOR
SET RMPFY=$ORDER(^RMPF(791810,RMPFX,101,RMPFY))
if 'RMPFY
QUIT
Begin DoDot:3
+6 SET ST=$PIECE($GET(^(RMPFY,0)),U,18)
if 'ST
QUIT
SET STP=$PIECE($GET(^RMPF(791810.2,ST,0)),U,1)
+7 IF $PIECE(STP,"-",2)="TRANS"
SET $PIECE(^RMPF(791810,RMPFX,101,RMPFY,0),U,18)=APP
End DoDot:3
End DoDot:2
End DoDot:1
STATE KILL RMPFX,RMPFY,J,ST,STP
QUIT