RMPFDT10 ;DDC/KAW-LINE ITEM EXTENDED INFORMATION [ 06/16/95   3:06 PM ]
 ;;2.0;REMOTE ORDER/ENTRY SYSTEM;;JUN 16, 1995
 ;; input: RMPFX
 ;;output: None
 S DFN=$P(^RMPF(791810,RMPFX,0),U,4) G END:'DFN D PAT^RMPFUTL K RMPFY
 D SEL G END:$D(RMPFOUT),END:'$D(RMPFY)
SHOW D HEAD,SET,DISP
 I IOST?1"C-".E D CONT G RMPFDT10:RMPFCT>1
 I IOST?1"P-".E W @IOF
 D:$D(IO("S")) ^%ZISC
END K DFN,RMPFNAM,RMPFSSN,RMPFDOB,RMPFDOD,X,Y,I,RMPFOUT,RMPFQUT,%XX,%YY
 K RMPFMD,RMPFO,RMPFTYP,RMPFHAT,ZTSK,XX,CX,RMPFY,CT,RR,RMPFCT
 Q
SET ;; input: RMPFX,RMPFY
 ;;output: None
 S SX=$G(^RMPF(791810,RMPFX,101,RMPFY,90))
 S AU=$P(SX,U,1) I AU,$D(^VA(200,AU,0)) S AU=$P(^(0),U,1)
 S AD=$P(SX,U,2) I AD S Y=AD D DD^%DT S AD=Y
 S AR=$P(SX,U,3),AM=$P(SX,U,4)
 S CR=$P(SX,U,5),DR=$P(SX,U,6) I DR S Y=DR D DD^%DT S DR=Y
 S UC=$P(SX,U,13) I UC,$D(^VA(200,UC,0)) S UC=$P(^(0),U,1)
 S SD=$P(SX,U,7) I SD S Y=SD D DD^%DT S SD=Y
 S CU=$P(SX,U,8) I CU,$D(^VA(200,CU,0)) S CU=$P(^(0),U,1)
 S CD=$P(SX,U,9) I CD S Y=CD D DD^%DT S CD=Y
 S RC=$P(SX,U,10) I RC,$D(^VA(200,RC,0)) S RC=$P(^(0),U,1)
 S RD=$P(SX,U,11) I RD S Y=RD D DD^%DT S RD=Y
 S IU=$P(SX,U,12) I IU,$D(^VA(200,IU,0)) S IU=$P(^(0),U,1)
 S OD=$P(SX,U,14) I OD,$D(^RMPF(791810.6,OD,0)) S OD=$P(^(0),U,1)
 I OD="OTHER",$P(SX,U,15)'="" S OD=$P(SX,U,15)
 S SX=$G(^RMPF(791810,RMPFX,101,RMPFY,2)),RR=$P(SX,U,7)
 K SX Q
DISP ;; input: AU,AD,AR,AM,CR,DR,SD,CU,CD,RC,RD,IU,UC,OD
 ;;output: None
 S XX=$Y G DI1:AU=""
 W !!,"User Making Last Adjustment: ",AU
 W !?4,"Date of Last Adjustment: ",AD
 W !?6,"Reason for Adjustment: ",AR
 W !?9,"Adjustment Message: ",AM
DI1 G DI2:UC=""&(CR="") W !!?16,"Canceled By: ",UC
 W:CR'="" !?14,"Cancel Reason: ",CR
DI2 W:DR'="" !?4,"Date Returned to Vendor: ",DR
 W:SD'="" !?18,"Ship Date: ",SD
 G DI3:CU=""
 W !!?15,"Certified By: ",CU
 W !?9,"Certification Date: ",CD
 W !?12,"Re-certified By: ",RC
 W !?6,"Re-certification Date: ",RD
DI3 W:IU'="" !?18,"Issued By: ",IU
 W:OD'="" !?11,"Reason for Delay: ",OD
 W:RR'="" !?4,"Reason for Registration: ",RR
 I $Y=XX W !!?9,"*** NO ADDITIONAL INFORMATION AVAILABLE FOR THIS LINE ITEM ***"
 K AU,AD,AR,AM,CR,DR,SD,CU,CD,IU,RD,RC,UC,XX,OD Q
SEL D ARRAY^RMPFDT2 S (RMPFCT,X)=0 F  S X=$O(RMPFO(X)) Q:'X  S RMPFY=X,RMPFCT=RMPFCT+1
 Q:RMPFCT=1
 S RMPFTYP=$P(^RMPF(791810,RMPFX,0),U,2),RMPFHAT=""
 I RMPFTYP,$D(^RMPF(791810.1,RMPFTYP,0)) S RMPFHAT=$P(^(0),U,2)
 W @IOF,!?33,"ITEMS ORDERED" D @("HEADP"_"^RMPFDT1")
 D ^RMPFDT2
S1 F  Q:$Y>21  W !
 W !,"Select number of a line item or <RETURN> to continue: " D READ
 Q:$D(RMPFOUT)
S2 I $D(RMPFQUT) W !!,"Select a number from the left of the display to choose a line item or",!,"<RETURN> to exit from the display." G S1
 Q:Y=""  I '$D(RMPFMD(Y)) S RMPFQUT="" G S2
 S RMPFY=RMPFMD(Y) Q
 Q
HEAD W:'$D(ZTSK) @IOF W !?22,"ROES LINE ITEM EXTENDED INFORMATION"
 I $D(RMPFNAM) W !,"Patient: ",$E(RMPFNAM,1,25),?35,"SSN: ",RMPFSSN,?68,RMPFDAT
 W ! F I=1:1:80 W "-"
 W ! Q
CONT F I=1:1 Q:$Y>20  W !
 W !,"Type <RETURN> to continue, <P>rint or <^> to exit: " D READ
 Q:$D(RMPFOUT)  G CONT:$D(RMPFQUT)
 D QUE:Y="P"
 Q
QUE W ! S %ZIS="NPQ" D ^%ZIS G END:POP
 I IO=IO(0),'$D(IO("S")) D SHOW^RMPFDT10 G QUEE
 I $D(IO("S")) S %ZIS="",IOP=ION D ^%ZIS G SHOW^RMPFDT10
 S ZTRTN="SHOW^RMPFDT10",ZTSAVE("RMPF*")="",ZTSAVE("DFN")=""
 S ZTIO=ION D ^%ZTLOAD
 D HOME^%ZIS S RMPFOUT=""
 W:$D(ZTSK) !!,"*** Request Queued ***" H 1
QUEE K %T,%ZIS,POP,ZTRTN,ZTSAVE,ZTIO,ZTSK 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
 K ZTSK Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRMPFDT10   3621     printed  Sep 23, 2025@20:12:13                                                                                                                                                                                                    Page 2
RMPFDT10  ;DDC/KAW-LINE ITEM EXTENDED INFORMATION [ 06/16/95   3:06 PM ]
 +1       ;;2.0;REMOTE ORDER/ENTRY SYSTEM;;JUN 16, 1995
 +2       ;; input: RMPFX
 +3       ;;output: None
 +4        SET DFN=$PIECE(^RMPF(791810,RMPFX,0),U,4)
           if 'DFN
               GOTO END
           DO PAT^RMPFUTL
           KILL RMPFY
 +5        DO SEL
           if $DATA(RMPFOUT)
               GOTO END
           if '$DATA(RMPFY)
               GOTO END
SHOW       DO HEAD
           DO SET
           DO DISP
 +1        IF IOST?1"C-".E
               DO CONT
               if RMPFCT>1
                   GOTO RMPFDT10
 +2        IF IOST?1"P-".E
               WRITE @IOF
 +3        if $DATA(IO("S"))
               DO ^%ZISC
END        KILL DFN,RMPFNAM,RMPFSSN,RMPFDOB,RMPFDOD,X,Y,I,RMPFOUT,RMPFQUT,%XX,%YY
 +1        KILL RMPFMD,RMPFO,RMPFTYP,RMPFHAT,ZTSK,XX,CX,RMPFY,CT,RR,RMPFCT
 +2        QUIT 
SET       ;; input: RMPFX,RMPFY
 +1       ;;output: None
 +2        SET SX=$GET(^RMPF(791810,RMPFX,101,RMPFY,90))
 +3        SET AU=$PIECE(SX,U,1)
           IF AU
               IF $DATA(^VA(200,AU,0))
                   SET AU=$PIECE(^(0),U,1)
 +4        SET AD=$PIECE(SX,U,2)
           IF AD
               SET Y=AD
               DO DD^%DT
               SET AD=Y
 +5        SET AR=$PIECE(SX,U,3)
           SET AM=$PIECE(SX,U,4)
 +6        SET CR=$PIECE(SX,U,5)
           SET DR=$PIECE(SX,U,6)
           IF DR
               SET Y=DR
               DO DD^%DT
               SET DR=Y
 +7        SET UC=$PIECE(SX,U,13)
           IF UC
               IF $DATA(^VA(200,UC,0))
                   SET UC=$PIECE(^(0),U,1)
 +8        SET SD=$PIECE(SX,U,7)
           IF SD
               SET Y=SD
               DO DD^%DT
               SET SD=Y
 +9        SET CU=$PIECE(SX,U,8)
           IF CU
               IF $DATA(^VA(200,CU,0))
                   SET CU=$PIECE(^(0),U,1)
 +10       SET CD=$PIECE(SX,U,9)
           IF CD
               SET Y=CD
               DO DD^%DT
               SET CD=Y
 +11       SET RC=$PIECE(SX,U,10)
           IF RC
               IF $DATA(^VA(200,RC,0))
                   SET RC=$PIECE(^(0),U,1)
 +12       SET RD=$PIECE(SX,U,11)
           IF RD
               SET Y=RD
               DO DD^%DT
               SET RD=Y
 +13       SET IU=$PIECE(SX,U,12)
           IF IU
               IF $DATA(^VA(200,IU,0))
                   SET IU=$PIECE(^(0),U,1)
 +14       SET OD=$PIECE(SX,U,14)
           IF OD
               IF $DATA(^RMPF(791810.6,OD,0))
                   SET OD=$PIECE(^(0),U,1)
 +15       IF OD="OTHER"
               IF $PIECE(SX,U,15)'=""
                   SET OD=$PIECE(SX,U,15)
 +16       SET SX=$GET(^RMPF(791810,RMPFX,101,RMPFY,2))
           SET RR=$PIECE(SX,U,7)
 +17       KILL SX
           QUIT 
DISP      ;; input: AU,AD,AR,AM,CR,DR,SD,CU,CD,RC,RD,IU,UC,OD
 +1       ;;output: None
 +2        SET XX=$Y
           if AU=""
               GOTO DI1
 +3        WRITE !!,"User Making Last Adjustment: ",AU
 +4        WRITE !?4,"Date of Last Adjustment: ",AD
 +5        WRITE !?6,"Reason for Adjustment: ",AR
 +6        WRITE !?9,"Adjustment Message: ",AM
DI1        if UC=""&(CR="")
               GOTO DI2
           WRITE !!?16,"Canceled By: ",UC
 +1        if CR'=""
               WRITE !?14,"Cancel Reason: ",CR
DI2        if DR'=""
               WRITE !?4,"Date Returned to Vendor: ",DR
 +1        if SD'=""
               WRITE !?18,"Ship Date: ",SD
 +2        if CU=""
               GOTO DI3
 +3        WRITE !!?15,"Certified By: ",CU
 +4        WRITE !?9,"Certification Date: ",CD
 +5        WRITE !?12,"Re-certified By: ",RC
 +6        WRITE !?6,"Re-certification Date: ",RD
DI3        if IU'=""
               WRITE !?18,"Issued By: ",IU
 +1        if OD'=""
               WRITE !?11,"Reason for Delay: ",OD
 +2        if RR'=""
               WRITE !?4,"Reason for Registration: ",RR
 +3        IF $Y=XX
               WRITE !!?9,"*** NO ADDITIONAL INFORMATION AVAILABLE FOR THIS LINE ITEM ***"
 +4        KILL AU,AD,AR,AM,CR,DR,SD,CU,CD,IU,RD,RC,UC,XX,OD
           QUIT 
SEL        DO ARRAY^RMPFDT2
           SET (RMPFCT,X)=0
           FOR 
               SET X=$ORDER(RMPFO(X))
               if 'X
                   QUIT 
               SET RMPFY=X
               SET RMPFCT=RMPFCT+1
 +1        if RMPFCT=1
               QUIT 
 +2        SET RMPFTYP=$PIECE(^RMPF(791810,RMPFX,0),U,2)
           SET RMPFHAT=""
 +3        IF RMPFTYP
               IF $DATA(^RMPF(791810.1,RMPFTYP,0))
                   SET RMPFHAT=$PIECE(^(0),U,2)
 +4        WRITE @IOF,!?33,"ITEMS ORDERED"
           DO @("HEADP"_"^RMPFDT1")
 +5        DO ^RMPFDT2
S1         FOR 
               if $Y>21
                   QUIT 
               WRITE !
 +1        WRITE !,"Select number of a line item or <RETURN> to continue: "
           DO READ
 +2        if $DATA(RMPFOUT)
               QUIT 
S2         IF $DATA(RMPFQUT)
               WRITE !!,"Select a number from the left of the display to choose a line item or",!,"<RETURN> to exit from the display."
               GOTO S1
 +1        if Y=""
               QUIT 
           IF '$DATA(RMPFMD(Y))
               SET RMPFQUT=""
               GOTO S2
 +2        SET RMPFY=RMPFMD(Y)
           QUIT 
 +3        QUIT 
HEAD       if '$DATA(ZTSK)
               WRITE @IOF
           WRITE !?22,"ROES LINE ITEM EXTENDED INFORMATION"
 +1        IF $DATA(RMPFNAM)
               WRITE !,"Patient: ",$EXTRACT(RMPFNAM,1,25),?35,"SSN: ",RMPFSSN,?68,RMPFDAT
 +2        WRITE !
           FOR I=1:1:80
               WRITE "-"
 +3        WRITE !
           QUIT 
CONT       FOR I=1:1
               if $Y>20
                   QUIT 
               WRITE !
 +1        WRITE !,"Type <RETURN> to continue, <P>rint or <^> to exit: "
           DO READ
 +2        if $DATA(RMPFOUT)
               QUIT 
           if $DATA(RMPFQUT)
               GOTO CONT
 +3        if Y="P"
               DO QUE
 +4        QUIT 
QUE        WRITE !
           SET %ZIS="NPQ"
           DO ^%ZIS
           if POP
               GOTO END
 +1        IF IO=IO(0)
               IF '$DATA(IO("S"))
                   DO SHOW^RMPFDT10
                   GOTO QUEE
 +2        IF $DATA(IO("S"))
               SET %ZIS=""
               SET IOP=ION
               DO ^%ZIS
               GOTO SHOW^RMPFDT10
 +3        SET ZTRTN="SHOW^RMPFDT10"
           SET ZTSAVE("RMPF*")=""
           SET ZTSAVE("DFN")=""
 +4        SET ZTIO=ION
           DO ^%ZTLOAD
 +5        DO HOME^%ZIS
           SET RMPFOUT=""
 +6        if $DATA(ZTSK)
               WRITE !!,"*** Request Queued ***"
           HANG 1
QUEE       KILL %T,%ZIS,POP,ZTRTN,ZTSAVE,ZTIO,ZTSK
           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 
 +5        KILL ZTSK
           QUIT