- PSAUP ;BIR/JMB-Upload and Process Prime Vendor Invoice Data ;7/23/97
- ;;3.0; DRUG ACCOUNTABILITY/INVENTORY INTERFACE;**12**; 10/24/97
- ;This routine uploads the prime vendor data into ^TMP("PSAPV",$J).
- ;The X12 data is checked for proper format. If the X12 data is correct,
- ;it is loaded into ^XTMP("PSAX12").
- ;
- I '$D(^XUSEC("PSA ORDERS",DUZ)) W !,"You do not hold the key to enter the option." Q
- W @IOF,!,"****************************** I M P O R T A N T ******************************"
- W !!,"This option uploads the invoice data received from your prime vendor.",!,"In order to upload the data, you must be running ProComm Plus software",!,"on Pharmacy's prime vendor PC.",!!
- S PSASTLN="",$P(PSASTLN,"*",80)="" W PSASTLN,! K PSASTLN
- S DIR("A")="Are you ready to upload the prime vendor invoice data",DIR(0)="Y",DIR("B")="Yes",DIR("??")="^D YNUPLOAD^PSAUP1" D ^DIR K DIR
- I 'Y S PSAOUT=1 G KILL
- I $D(^DIZ(8980,"AOK",DUZ)) S XTKDIC="^TMP(""PSAX12"",$J,",DWLC=0,XTKMODE=2
- I '$D(^DIZ(8980,"AOK",DUZ)) D RFILE^XTKERM4
- S PSAOUT=0 K ^TMP("PSAX12",$J)
- W !!,"Press <ALT> 1 if your Prime Vendor script is installed as a Meta Key,",!,"otherwise press <ALT> F5 and enter ""PV""",!
- X ^%ZOSF("EOFF") R X:DTIME X ^%ZOSF("EON") D HASH^XUSHSHP I X'="$4_\y o\Xp>RN}ab*_%," S PSAOUT=1
- I '$G(PSAOUT) S XTKDIC="^TMP(""PSAX12"",$J,",DWLC=0,XTKMODE=2 D RECEIVE^XTKERMIT
- I $G(PSAOUT) S XTKERR="The invoice file cannot be uploaded. Contact your IRM staff for assistance." K ^TMP("PSAPV",$J) H 1
- I $G(XTKERR)'=0 W !!,"ERROR - "_XTKERR S PSAOUT=1 Q
- I DWLC=0 W !,"ERROR - NO LINES RECEIVED." S PSAOUT=1 Q
- W @IOF,!,"Done",!,"The data uploaded to a temporary file. "_DWLC," lines received.",!! H 2
- G:'$O(^TMP("PSAX12",$J,0)) KILL
- ;
- UNWRAP ;Changes the data element and segment delimiters to ^ & ~, places each
- ;segment on a node to itself, then removes leading spaces from each
- ;data element
- W !,"Unwrapping the invoice."
- ;
- ;Get delimiters
- S (PSABBC,PSAISA,PSALINE,PSASEGD,PSALND)=0
- F S PSALINE=$O(^TMP("PSAX12",$J,PSALINE)) Q:'PSALINE D Q:PSABBC&(PSAISA)
- .I $E($G(^TMP("PSAX12",$J,PSALINE,0)),1,3)="ISA" S DAVE=^TMP("PSAX12",$J,PSALINE,0) S PSASEGD=$E(^(0),4,4),PSALND=$E(^(0),106,106),PSAISA=1 W "." Q
- .I $P($G(^TMP("PSAX12",$J,PSALINE,0)),PSASEGD,2)="DS",$P($G(^(0)),PSASEGD,3)="BBC" S PSABBC=1
- ;If drug company is Bergen (BBC), changes data element to ^ and adds
- ;segment delimiters to ~.
- I PSABBC S (PSACNT,PSALINE)=0 F S PSALINE=$O(^TMP("PSAX12",$J,PSALINE)) Q:'PSALINE D
- .S PSADATA=^TMP("PSAX12",$J,PSALINE,0)_"~"
- .I PSASEGD'="^" S PSADATA=$TR(PSADATA,PSASEGD,"^")
- .I $E($G(^TMP("PSAX12",$J,PSALINE,0)),1,3)="ISA" W "."
- .S ^TMP("PSAX12",$J,PSALINE,0)=PSADATA
- G:PSABBC LINE
- ;
- I PSASEGD=""!(PSALND="") D G KILL
- .S PSASTAR="",$P(PSASTAR,"*",80)=""
- .W !,PSASTAR,!,"There is a major error in the invoice file.",!,"Contact your IRM Staff for assistance."
- .W !!,"Press the Esc key then enter YES at the 'EXIT SCRIPT (Y/N)' prompt.",!,"Press RETURN to exit the option.",!,PSASTAR D END^PSAPROC
- G:PSASEGD="~"&(PSALND="^") LINE
- ;
- ;Changes the data element and segment delimiters to ^ and ~.
- S (PSACNT,PSALINE)=0 F S PSALINE=$O(^TMP("PSAX12",$J,PSALINE)) Q:'PSALINE D Q:PSAOUT
- .S PSADATA=^TMP("PSAX12",$J,PSALINE,0)
- .I PSALND'="~" S PSADATA=$TR(PSADATA,PSALND,"~")
- .I PSASEGD'="^" S PSADATA=$TR(PSADATA,PSASEGD,"^")
- .S ^TMP("PSAX12",$J,PSALINE,0)=PSADATA
- .I $P(^TMP("PSAX12",$J,PSALINE,0),"^")="ISA" W "."
- ;
- LINE ;Places each segment on a node to itself.
- K ^TMP("PSAPV",$J)
- S PSAHOLD="",(PSACNT,PSALINE)=0
- F S PSALINE=$O(^TMP("PSAX12",$J,PSALINE)) Q:'PSALINE D
- .S PSADATA=^TMP("PSAX12",$J,PSALINE,0),PSADATA=PSAHOLD_PSADATA
- .I PSADATA'["~" S PSAHOLD=PSADATA Q
- .S PSASTOP=0 F S PSASEG=$P(PSADATA,"~") Q:PSASEG="" D Q:PSASTOP
- ..S PSACNT=PSACNT+1,^TMP("PSAPV",$J,PSACNT,0)=PSASEG
- ..I $P(PSASEG,"^")="ISA" W "."
- ..S PSADATA=$P(PSADATA,"~",2,99) I PSADATA'["~" S PSASTOP=1,PSAHOLD=PSADATA Q
- ..S PSAHOLD=""
- ;
- SPACES ;remove all leading spaces in all data elements
- K ^TMP("PSAX12",$J)
- S (PSACNT,PSALINE)=0 F S PSALINE=$O(^TMP("PSAPV",$J,PSALINE)) Q:'PSALINE D
- .S PSASEG=^TMP("PSAPV",$J,PSALINE,0)
- .I $E(PSASEG,1,3)="ISA" S ^TMP("PSAPVS",$J,PSALINE)=^TMP("PSAPV",$J,PSALINE,0) W "." Q
- .S PSACNT=0,PSASEGL=$L(PSASEG)
- .F PSAEX=1:1:PSASEGL S PSAX=$E(PSASEG,PSAEX,PSAEX) S:PSAX="^" PSACNT=PSACNT+1
- .F PSAPC=1:1:(PSACNT+1) S PSADE=$P(PSASEG,"^",PSAPC) D
- ..F Q:$E(PSADE,1,1)'=" " S PSADE=$E(PSADE,2,999)
- ..S $P(PSASEG,"^",PSAPC)=PSADE
- .S ^TMP("PSAPVS",$J,PSALINE)=PSASEG
- K ^TMP("PSAPV",$J)
- W !,"Finished unwrapping the invoice." H 2
- ;
- CHECK ;Looks for X12 errors. If no errors, loads data into ^TMP("PSAPV SET",$J)
- W !!,"Checking the invoice data."
- D ^PSAUP2
- K ^TMP("PSAPVS",$J)
- I PSAOUT K ^TMP("PSAPV SET",$J) G KILL
- W !,"Finished checking the invoice data." H 2
- ;
- LOADXTMP ;Loads data into ^XTMP("PSAPV").
- W !!,"Loading data into VISTA."
- D XTMP^PSAUP1
- K ^TMP("PSAPV SET",$J) G:PSAOUT KILL
- W !,"Finished loading data into VISTA."
- W !!,"** The upload was successful. **" H 4
- D END^PSAPROC
- ;
- STORE ;Get the line item data and store in ^XTMP("PSAPV")
- W @IOF S PSANEXT=$O(^XTMP("PSAPV",0))
- I PSANEXT="" W !,"There are no valid invoices to process." H 1 G KILL
- W !,"Searching for and storing the drug data for each line item."
- D ^PSAUP5
- W !,"Finished storing the drug data." H 1
- ;
- PRINT ;Ask if user wants to print invoices.
- S PSASTA="U"
- W ! S DIR(0)="Y",DIR("A")="Print all uploaded invoices",DIR("B")="Y",DIR("?",1)="Enter YES to print the invoices that were uploaded.",DIR("?")="Enter NO to bypass printing the invoices and continue.",DIR("??")="^D YNPRINT^PSAUP1"
- D ^DIR K DIR G:$G(DIRUT) KILL D:Y ^PSAUP4
- ;
- PROC ;Ask if user wants to process the invoice data now.
- W ! S DIR(0)="Y",DIR("A")="Do you want to process the invoices now",DIR("B")="Y",DIR("?",1)="Enter YES to process the invoices that were uploaded.",DIR("?")="Enter NO to exit the option.",DIR("??")="^D YNPROCES^PSAUP1"
- D ^DIR K DIR G:'Y!($G(DIRUT)) KILL
- D KILL
- ;
- PHARM ;Assign a pharmacy location or master vault to each Order.
- ;Then process the invoice data.
- S PSAOUT=0
- D ^PSAPROC G:$G(PSAOUT) EXIT^PSAPROC
- ;
- PRINT2 W !! S DIR(0)="Y",DIR("A")="Print all unprocessed and just processed invoices",DIR("B")="N"
- S DIR("?",1)="Enter YES to print all of the uploaded invoices that are",DIR("?")="unprocessed or just processed. Enter NO to exit the option."
- S DIR("??")="^D PRT2^PSAUP1"
- D ^DIR K DIR D:+Y ^PSAUP4 S PSAENTRY=0
- G EXIT^PSAPROC
- ;
- KILL ;Kills uploading variables
- K ^TMP("PSAPV",$J),^TMP("PSAPVS",$J),^TMP("PSAPV SET",$J),^TMP("PSAX12",$J)
- K %,DIR,DIRUT,DWLC,PSABBC,PSACNT,PSACTN1,PSACOMB,PSACS,PSACTRL,PSACTRL2,PSADATA,PSADE,PSADT,PSADUP,PSAENTRY,PSAERR,PSAEX,PSAEXPEC,PSAFND1,PSAGS,PSAHOLD,PSAIEN,PSAIN,PSAINV,PSAINVDT,PSAINVN,PSAISA,PSAISIT,PSAISITN,PSAITCNT,PSAITEM
- K PSALAST,PSALINE,PSALLCS,PSALLOK,PSALND,PSALOC,PSANDC,PSANEW,PSANEXT,PSANTYPE,PSAOK,PSAORD,PSAORDDT,PSAORDN,PSAOSIT,PSAOSITN,PSAOUT,PSAPC
- K PSAS,PSASEG,PSASEGL,PSASEGD,PSASS,PSAST,PSASTA,PSASTAR,PSASTCNT,PSASUB,PSASYN,PSAUOM,PSAUOM1,PSAUOMH,PSAUOMH1,PSAVSN,PSAX,X,X1,X2,XTKDIC,XTKERR,XTKMODE,Y
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSAUP 7259 printed Feb 18, 2025@23:17:08 Page 2
- PSAUP ;BIR/JMB-Upload and Process Prime Vendor Invoice Data ;7/23/97
- +1 ;;3.0; DRUG ACCOUNTABILITY/INVENTORY INTERFACE;**12**; 10/24/97
- +2 ;This routine uploads the prime vendor data into ^TMP("PSAPV",$J).
- +3 ;The X12 data is checked for proper format. If the X12 data is correct,
- +4 ;it is loaded into ^XTMP("PSAX12").
- +5 ;
- +6 IF '$DATA(^XUSEC("PSA ORDERS",DUZ))
- WRITE !,"You do not hold the key to enter the option."
- QUIT
- +7 WRITE @IOF,!,"****************************** I M P O R T A N T ******************************"
- +8 WRITE !!,"This option uploads the invoice data received from your prime vendor.",!,"In order to upload the data, you must be running ProComm Plus software",!,"on Pharmacy's prime vendor PC.",!!
- +9 SET PSASTLN=""
- SET $PIECE(PSASTLN,"*",80)=""
- WRITE PSASTLN,!
- KILL PSASTLN
- +10 SET DIR("A")="Are you ready to upload the prime vendor invoice data"
- SET DIR(0)="Y"
- SET DIR("B")="Yes"
- SET DIR("??")="^D YNUPLOAD^PSAUP1"
- DO ^DIR
- KILL DIR
- +11 IF 'Y
- SET PSAOUT=1
- GOTO KILL
- +12 IF $DATA(^DIZ(8980,"AOK",DUZ))
- SET XTKDIC="^TMP(""PSAX12"",$J,"
- SET DWLC=0
- SET XTKMODE=2
- +13 IF '$DATA(^DIZ(8980,"AOK",DUZ))
- DO RFILE^XTKERM4
- +14 SET PSAOUT=0
- KILL ^TMP("PSAX12",$JOB)
- +15 WRITE !!,"Press <ALT> 1 if your Prime Vendor script is installed as a Meta Key,",!,"otherwise press <ALT> F5 and enter ""PV""",!
- +16 XECUTE ^%ZOSF("EOFF")
- READ X:DTIME
- XECUTE ^%ZOSF("EON")
- DO HASH^XUSHSHP
- IF X'="$4_\y o\Xp>RN}ab*_%,"
- SET PSAOUT=1
- +17 IF '$GET(PSAOUT)
- SET XTKDIC="^TMP(""PSAX12"",$J,"
- SET DWLC=0
- SET XTKMODE=2
- DO RECEIVE^XTKERMIT
- +18 IF $GET(PSAOUT)
- SET XTKERR="The invoice file cannot be uploaded. Contact your IRM staff for assistance."
- KILL ^TMP("PSAPV",$JOB)
- HANG 1
- +19 IF $GET(XTKERR)'=0
- WRITE !!,"ERROR - "_XTKERR
- SET PSAOUT=1
- QUIT
- +20 IF DWLC=0
- WRITE !,"ERROR - NO LINES RECEIVED."
- SET PSAOUT=1
- QUIT
- +21 WRITE @IOF,!,"Done",!,"The data uploaded to a temporary file. "_DWLC," lines received.",!!
- HANG 2
- +22 if '$ORDER(^TMP("PSAX12",$JOB,0))
- GOTO KILL
- +23 ;
- UNWRAP ;Changes the data element and segment delimiters to ^ & ~, places each
- +1 ;segment on a node to itself, then removes leading spaces from each
- +2 ;data element
- +3 WRITE !,"Unwrapping the invoice."
- +4 ;
- +5 ;Get delimiters
- +6 SET (PSABBC,PSAISA,PSALINE,PSASEGD,PSALND)=0
- +7 FOR
- SET PSALINE=$ORDER(^TMP("PSAX12",$JOB,PSALINE))
- if 'PSALINE
- QUIT
- Begin DoDot:1
- +8 IF $EXTRACT($GET(^TMP("PSAX12",$JOB,PSALINE,0)),1,3)="ISA"
- SET DAVE=^TMP("PSAX12",$JOB,PSALINE,0)
- SET PSASEGD=$EXTRACT(^(0),4,4)
- SET PSALND=$EXTRACT(^(0),106,106)
- SET PSAISA=1
- WRITE "."
- QUIT
- +9 IF $PIECE($GET(^TMP("PSAX12",$JOB,PSALINE,0)),PSASEGD,2)="DS"
- IF $PIECE($GET(^(0)),PSASEGD,3)="BBC"
- SET PSABBC=1
- End DoDot:1
- if PSABBC&(PSAISA)
- QUIT
- +10 ;If drug company is Bergen (BBC), changes data element to ^ and adds
- +11 ;segment delimiters to ~.
- +12 IF PSABBC
- SET (PSACNT,PSALINE)=0
- FOR
- SET PSALINE=$ORDER(^TMP("PSAX12",$JOB,PSALINE))
- if 'PSALINE
- QUIT
- Begin DoDot:1
- +13 SET PSADATA=^TMP("PSAX12",$JOB,PSALINE,0)_"~"
- +14 IF PSASEGD'="^"
- SET PSADATA=$TRANSLATE(PSADATA,PSASEGD,"^")
- +15 IF $EXTRACT($GET(^TMP("PSAX12",$JOB,PSALINE,0)),1,3)="ISA"
- WRITE "."
- +16 SET ^TMP("PSAX12",$JOB,PSALINE,0)=PSADATA
- End DoDot:1
- +17 if PSABBC
- GOTO LINE
- +18 ;
- +19 IF PSASEGD=""!(PSALND="")
- Begin DoDot:1
- +20 SET PSASTAR=""
- SET $PIECE(PSASTAR,"*",80)=""
- +21 WRITE !,PSASTAR,!,"There is a major error in the invoice file.",!,"Contact your IRM Staff for assistance."
- +22 WRITE !!,"Press the Esc key then enter YES at the 'EXIT SCRIPT (Y/N)' prompt.",!,"Press RETURN to exit the option.",!,PSASTAR
- DO END^PSAPROC
- End DoDot:1
- GOTO KILL
- +23 if PSASEGD="~"&(PSALND="^")
- GOTO LINE
- +24 ;
- +25 ;Changes the data element and segment delimiters to ^ and ~.
- +26 SET (PSACNT,PSALINE)=0
- FOR
- SET PSALINE=$ORDER(^TMP("PSAX12",$JOB,PSALINE))
- if 'PSALINE
- QUIT
- Begin DoDot:1
- +27 SET PSADATA=^TMP("PSAX12",$JOB,PSALINE,0)
- +28 IF PSALND'="~"
- SET PSADATA=$TRANSLATE(PSADATA,PSALND,"~")
- +29 IF PSASEGD'="^"
- SET PSADATA=$TRANSLATE(PSADATA,PSASEGD,"^")
- +30 SET ^TMP("PSAX12",$JOB,PSALINE,0)=PSADATA
- +31 IF $PIECE(^TMP("PSAX12",$JOB,PSALINE,0),"^")="ISA"
- WRITE "."
- End DoDot:1
- if PSAOUT
- QUIT
- +32 ;
- LINE ;Places each segment on a node to itself.
- +1 KILL ^TMP("PSAPV",$JOB)
- +2 SET PSAHOLD=""
- SET (PSACNT,PSALINE)=0
- +3 FOR
- SET PSALINE=$ORDER(^TMP("PSAX12",$JOB,PSALINE))
- if 'PSALINE
- QUIT
- Begin DoDot:1
- +4 SET PSADATA=^TMP("PSAX12",$JOB,PSALINE,0)
- SET PSADATA=PSAHOLD_PSADATA
- +5 IF PSADATA'["~"
- SET PSAHOLD=PSADATA
- QUIT
- +6 SET PSASTOP=0
- FOR
- SET PSASEG=$PIECE(PSADATA,"~")
- if PSASEG=""
- QUIT
- Begin DoDot:2
- +7 SET PSACNT=PSACNT+1
- SET ^TMP("PSAPV",$JOB,PSACNT,0)=PSASEG
- +8 IF $PIECE(PSASEG,"^")="ISA"
- WRITE "."
- +9 SET PSADATA=$PIECE(PSADATA,"~",2,99)
- IF PSADATA'["~"
- SET PSASTOP=1
- SET PSAHOLD=PSADATA
- QUIT
- +10 SET PSAHOLD=""
- End DoDot:2
- if PSASTOP
- QUIT
- End DoDot:1
- +11 ;
- SPACES ;remove all leading spaces in all data elements
- +1 KILL ^TMP("PSAX12",$JOB)
- +2 SET (PSACNT,PSALINE)=0
- FOR
- SET PSALINE=$ORDER(^TMP("PSAPV",$JOB,PSALINE))
- if 'PSALINE
- QUIT
- Begin DoDot:1
- +3 SET PSASEG=^TMP("PSAPV",$JOB,PSALINE,0)
- +4 IF $EXTRACT(PSASEG,1,3)="ISA"
- SET ^TMP("PSAPVS",$JOB,PSALINE)=^TMP("PSAPV",$JOB,PSALINE,0)
- WRITE "."
- QUIT
- +5 SET PSACNT=0
- SET PSASEGL=$LENGTH(PSASEG)
- +6 FOR PSAEX=1:1:PSASEGL
- SET PSAX=$EXTRACT(PSASEG,PSAEX,PSAEX)
- if PSAX="^"
- SET PSACNT=PSACNT+1
- +7 FOR PSAPC=1:1:(PSACNT+1)
- SET PSADE=$PIECE(PSASEG,"^",PSAPC)
- Begin DoDot:2
- +8 FOR
- if $EXTRACT(PSADE,1,1)'=" "
- QUIT
- SET PSADE=$EXTRACT(PSADE,2,999)
- +9 SET $PIECE(PSASEG,"^",PSAPC)=PSADE
- End DoDot:2
- +10 SET ^TMP("PSAPVS",$JOB,PSALINE)=PSASEG
- End DoDot:1
- +11 KILL ^TMP("PSAPV",$JOB)
- +12 WRITE !,"Finished unwrapping the invoice."
- HANG 2
- +13 ;
- CHECK ;Looks for X12 errors. If no errors, loads data into ^TMP("PSAPV SET",$J)
- +1 WRITE !!,"Checking the invoice data."
- +2 DO ^PSAUP2
- +3 KILL ^TMP("PSAPVS",$JOB)
- +4 IF PSAOUT
- KILL ^TMP("PSAPV SET",$JOB)
- GOTO KILL
- +5 WRITE !,"Finished checking the invoice data."
- HANG 2
- +6 ;
- LOADXTMP ;Loads data into ^XTMP("PSAPV").
- +1 WRITE !!,"Loading data into VISTA."
- +2 DO XTMP^PSAUP1
- +3 KILL ^TMP("PSAPV SET",$JOB)
- if PSAOUT
- GOTO KILL
- +4 WRITE !,"Finished loading data into VISTA."
- +5 WRITE !!,"** The upload was successful. **"
- HANG 4
- +6 DO END^PSAPROC
- +7 ;
- STORE ;Get the line item data and store in ^XTMP("PSAPV")
- +1 WRITE @IOF
- SET PSANEXT=$ORDER(^XTMP("PSAPV",0))
- +2 IF PSANEXT=""
- WRITE !,"There are no valid invoices to process."
- HANG 1
- GOTO KILL
- +3 WRITE !,"Searching for and storing the drug data for each line item."
- +4 DO ^PSAUP5
- +5 WRITE !,"Finished storing the drug data."
- HANG 1
- +6 ;
- PRINT ;Ask if user wants to print invoices.
- +1 SET PSASTA="U"
- +2 WRITE !
- SET DIR(0)="Y"
- SET DIR("A")="Print all uploaded invoices"
- SET DIR("B")="Y"
- SET DIR("?",1)="Enter YES to print the invoices that were uploaded."
- SET DIR("?")="Enter NO to bypass printing the invoices and continue."
- SET DIR("??")="^D YNPRINT^PSAUP1"
- +3 DO ^DIR
- KILL DIR
- if $GET(DIRUT)
- GOTO KILL
- if Y
- DO ^PSAUP4
- +4 ;
- PROC ;Ask if user wants to process the invoice data now.
- +1 WRITE !
- SET DIR(0)="Y"
- SET DIR("A")="Do you want to process the invoices now"
- SET DIR("B")="Y"
- SET DIR("?",1)="Enter YES to process the invoices that were uploaded."
- SET DIR("?")="Enter NO to exit the option."
- SET DIR("??")="^D YNPROCES^PSAUP1"
- +2 DO ^DIR
- KILL DIR
- if 'Y!($GET(DIRUT))
- GOTO KILL
- +3 DO KILL
- +4 ;
- PHARM ;Assign a pharmacy location or master vault to each Order.
- +1 ;Then process the invoice data.
- +2 SET PSAOUT=0
- +3 DO ^PSAPROC
- if $GET(PSAOUT)
- GOTO EXIT^PSAPROC
- +4 ;
- PRINT2 WRITE !!
- SET DIR(0)="Y"
- SET DIR("A")="Print all unprocessed and just processed invoices"
- SET DIR("B")="N"
- +1 SET DIR("?",1)="Enter YES to print all of the uploaded invoices that are"
- SET DIR("?")="unprocessed or just processed. Enter NO to exit the option."
- +2 SET DIR("??")="^D PRT2^PSAUP1"
- +3 DO ^DIR
- KILL DIR
- if +Y
- DO ^PSAUP4
- SET PSAENTRY=0
- +4 GOTO EXIT^PSAPROC
- +5 ;
- KILL ;Kills uploading variables
- +1 KILL ^TMP("PSAPV",$JOB),^TMP("PSAPVS",$JOB),^TMP("PSAPV SET",$JOB),^TMP("PSAX12",$JOB)
- +2 KILL %,DIR,DIRUT,DWLC,PSABBC,PSACNT,PSACTN1,PSACOMB,PSACS,PSACTRL,PSACTRL2,PSADATA,PSADE,PSADT,PSADUP,PSAENTRY,PSAERR,PSAEX,PSAEXPEC,PSAFND1,PSAGS,PSAHOLD,PSAIEN,PSAIN,PSAINV,PSAINVDT,PSAINVN,PSAISA,PSAISIT,PSAISITN,PSAITCNT,PSAITEM
- +3 KILL PSALAST,PSALINE,PSALLCS,PSALLOK,PSALND,PSALOC,PSANDC,PSANEW,PSANEXT,PSANTYPE,PSAOK,PSAORD,PSAORDDT,PSAORDN,PSAOSIT,PSAOSITN,PSAOUT,PSAPC
- +4 KILL PSAS,PSASEG,PSASEGL,PSASEGD,PSASS,PSAST,PSASTA,PSASTAR,PSASTCNT,PSASUB,PSASYN,PSAUOM,PSAUOM1,PSAUOMH,PSAUOMH1,PSAVSN,PSAX,X,X1,X2,XTKDIC,XTKERR,XTKMODE,Y
- +5 QUIT