- PSOSPMSP ;BIRM/MFR - State Prescription Monitoring Program - State Parameters ;09/04/12
- ;;7.0;OUTPATIENT PHARMACY;**408,451,625,630,696,724**;DEC 1997;Build 3
- ;
- EN ; - Menu option entry point
- N PSOASVER,PSOINCNV,PSOREPFQ,PSOVMSLD,PSOUNXLD,PSOPFIX,PSOEXT,PSOFTPIP,PSOTXRTS,Y
- N PSOFTPUS,PSOFTPPN,PSOFTPDR,PSOTXMOD,PSOQUIT,DIC,DIR,DIRUT,DTOUT,DUOUT,LST,DELDIR
- N PSOZRVER,Z,PSOSNDPR,PSOZRDIV
- ;
- D FULL^VALM1 W !
- ;
- W ! K DIC S DIC("A")="Select STATE: ",DIC="^DIC(5,",DIC(0)="QOEAM"
- I $O(^PS(58.41,0)) S DIC("B")=$O(^PS(58.41,0))
- K STATEIEN D ^DIC I X=""!(X="^")!$D(DUOUT)!$D(DTOUT) G END
- K DIC("A") G:Y<0 EN S STATEIEN=+Y
- ;
- D DISPLAY(STATEIEN)
- ;
- ; Checking the Security Key PSO SPMP ADMIN for Editing the Parameters
- I '$D(^XUSEC("PSO SPMP ADMIN",DUZ)) D G EN
- . W !,"The security key PSO SPMP ADMIN is required for editing the Parameters." W $C(7)
- ;
- D LOAD(STATEIEN) S PSOQUIT=0
- ;
- ASAPVER ; - ASAP Version
- S X=$$ASAPVER^PSOSPMU2("A","R",0,PSOASVER,1,1) I X="^" G EXIT ;Zero Report adding "R"
- I X["^"!(X="@") G @$$GOTO(X,"ASAPVER")
- S PSOASVER=X D CHANGED(STATEIEN,"ASAPVER",PSOASVER)
- ;
- TRXRTS ; - Auto Transmit Returns (ASAP 1995 only)
- I PSOASVER'="1995" S PSOTXRTS="" G ZEROVER ;Zero Report changed from 'G INCNVET' to 'G ZEROVER'
- K DIR,DIRUT,DTOUT
- S DIR(0)="58.41,12" S:$G(PSOTXRTS)'="" DIR("B")=$S(PSOTXRTS:"YES",1:"NO")
- D ^DIR I X'="",$D(DIRUT)!$D(DTOUT) G @$$GOTO(X,"TRXRTS")
- S PSOTXRTS=Y D CHANGED(STATEIEN,"TRXRTS",PSOTXRTS)
- ;
- ZEROVER ; - Zero Report ASAP Version
- S X=$$ASAPVER^PSOSPMU2("A","Z",0,PSOZRVER,0,1) I X="^" G EXIT
- I X["^"!(X="@") G @$$GOTO(X,"ZEROVER")
- S PSOZRVER=X D CHANGED(STATEIEN,"ZEROVER",PSOZRVER)
- ;
- INCNVET ; Include Non-Veteran Patients
- K DIR,DIRUT,DTOUT
- S DIR(0)="58.41,2" S DIR("B")=$S(+$G(PSOINCNV):"YES",1:"NO")
- D ^DIR I $D(DIRUT)!$D(DTOUT) G @$$GOTO(X,"INCNVET")
- S PSOINCNV=Y D CHANGED(STATEIEN,"INCNVET",PSOINCNV)
- ;
- REPFRQ ; Reporting Frequency
- K DIR,DIRUT,DTOUT
- S DIR(0)="58.41,3" S:$G(PSOREPFQ) DIR("B")=PSOREPFQ
- D ^DIR I $D(DIRUT)!$D(DTOUT) G @$$GOTO(X,"REPFRQ")
- I Y'?1.2N W !,"Invalid Frequency"
- S PSOREPFQ=Y D CHANGED(STATEIEN,"REPFRQ",PSOREPFQ)
- ;
- VMSLDIR ; - Open VMS Local Directory
- K DIR,DIRUT,DTOUT
- S DIR(0)="58.41,4" S:$G(PSOVMSLD)'="" DIR("B")=PSOVMSLD
- D ^DIR I X'="",$D(DIRUT)!$D(DTOUT) G @$$GOTO(X,"VMSLDIR")
- S PSOVMSLD=Y D CHANGED(STATEIEN,"VMSLDIR",PSOVMSLD)
- ;
- UNXLDIR ; - Unix/Linux Local Directory
- K DIR,DIRUT,DTOUT,NEWDIR,PSOVER
- I '$G(DELDIR),$G(PSOUNXLD)="" S PSOUNXLD=$$LINUXDIR^PSOSPMU1()
- S DIR(0)="58.41,15" S:$G(PSOUNXLD)'="" DIR("B")=PSOUNXLD
- S DELDIR=0 D ^DIR I X'="",$D(DIRUT)!$D(DTOUT) S:X="@" DELDIR=1 G @$$GOTO(X,"UNXLDIR")
- I $G(Y)'="",$E(Y,$L(X))'="/" S Y=Y_"/"
- S PSOUNXLD=Y D CHANGED(STATEIEN,"UNXLDIR",PSOUNXLD)
- ;
- S PSOVER=$$UP^XLFSTR($$VERSION^%ZOSV(1))
- I PSOUNXLD'="",$$OS^%ZOSV()="UNIX",(PSOVER["CACHE")!(PSOVER["IRIS") D ;PSO*7*630
- . I '$$DIREXIST^PSOSPMU1(PSOUNXLD) D
- . . W ! S DIR("A",1)="The directory above could not be found."
- . . S DIR("A",2)=""
- . . S DIR("A")="Would you like to create it now",DIR(0)="Y",DIR("B")="N"
- . . D ^DIR I $G(DTOUT)!$G(DUOUT)!'Y W ! Q
- . . D MAKEDIR^PSOSPMU1(PSOUNXLD) S NEWDIR=1 W !
- . I '$$DIREXIST^PSOSPMU1(PSOUNXLD) D
- . . W !!,"Warning: "_$S($G(NEWDIR):"The directory could not be created.",1:"The directory could not be found."),!,$C(7)
- ;
- FILEPFIX ; - File name Prefix
- K DIR,DIRUT,DTOUT
- S DIR(0)="58.41,5" K DIR("B") S:$G(PSOPFIX)'="" DIR("B")=PSOPFIX
- D ^DIR I X'="",$D(DIRUT)!$D(DTOUT) G @$$GOTO(X,"FILEPFIX")
- I Y[" " W ?40,"No spaces allowed.",$C(7) G FILEPFIX
- S PSOPFIX=Y D CHANGED(STATEIEN,"FILEPFIX",PSOPFIX)
- ;
- FILEEXT ; File Extension
- K DIR,DIRUT,DTOUT
- S DIR(0)="58.41,6" S:$G(PSOEXT)'="" DIR("B")=PSOEXT
- D ^DIR I $D(DIRUT)!$D(DTOUT) G @$$GOTO(X,"FILEEXT")
- S PSOEXT=Y D CHANGED(STATEIEN,"FILEEXT",PSOEXT)
- ;
- RENAME ; Rename File after upload?
- K DIR,DIRUT,DTOUT
- S DIR(0)="58.41,17" S:$G(PSORENAM)'="" DIR("B")=$S(PSORENAM:"YES",1:"NO")
- D ^DIR I $D(DIRUT)!$D(DTOUT) G @$$GOTO(X,"RENAME")
- S PSORENAM=Y D CHANGED(STATEIEN,"RENAME",PSORENAM)
- ;
- FTPIP ; - State Server FTP IP Address
- K DIR,DIRUT,DTOUT,PV
- S DIR(0)="58.41,7" S:$G(PSOFTPIP)'="" DIR("B")=PSOFTPIP
- D ^DIR I X'="",$D(DIRUT)!$D(DTOUT) G @$$GOTO(X,"FTPIP")
- S PSOFTPIP=Y D CHANGED(STATEIEN,"FTPIP",PSOFTPIP)
- ;
- FTPUSER ; - State Server FTP Username
- K DIR,DIRUT,DTOUT
- S DIR(0)="58.41,8" S:$G(PSOFTPUS)'="" DIR("B")=PSOFTPUS
- D ^DIR I X'="",$D(DIRUT)!$D(DTOUT) G @$$GOTO(X,"FTPUSER")
- S PSOFTPUS=Y D CHANGED(STATEIEN,"FTPUSER",PSOFTPUS)
- ;
- FTPPORT ; - State Server FTP Password
- K DIR,DIRUT,DTOUT
- S DIR(0)="58.41,9" S:$G(PSOFTPPN)'="" DIR("B")=PSOFTPPN
- D ^DIR I X'="",$D(DIRUT)!$D(DTOUT) G @$$GOTO(X,"FTPPORT")
- S PSOFTPPN=Y D CHANGED(STATEIEN,"FTPPORT",PSOFTPPN)
- ;
- FTPDIR ; - State Server FTP Remote Directory
- K DIR,DIRUT,DTOUT
- S DIR(0)="58.41,10" S:$G(PSOFTPDR)'="" DIR("B")=PSOFTPDR
- D ^DIR I X'="",$D(DIRUT)!$D(DTOUT) G @$$GOTO(X,"FTPDIR")
- S PSOFTPDR=Y D CHANGED(STATEIEN,"FTPDIR",PSOFTPDR)
- ;
- TRXMODE ; - Transmission Mode (A - Automatic / M - Manual)
- K DIR,DIRUT,DTOUT
- S DIR(0)="58.41,13",DIR("B")=PSOTXMOD
- D ^DIR I X'="",$D(DIRUT)!$D(DTOUT) G @$$GOTO(X,"TRXMODE")
- S PSOTXMOD=Y D CHANGED(STATEIEN,"TRXMODE",PSOTXMOD)
- ;
- SNDPRMT ; - Send Export State Parameter
- K DIR,DIRUT,DTOUT
- S DIR(0)="58.41,21",DIR("B")=PSOSNDPR
- D ^DIR I X'="",$D(DIRUT)!$D(DTOUT) G @$$GOTO(X,"SNDPRMT")
- S PSOSNDPR=Y D CHANGED(STATEIEN,"SNDPRMT",PSOSNDPR)
- I PSOSNDPR>0 D
- . W !,"NOTE: You have selected a parameter that includes sending to state of patient"
- . W !,"delivery. Only states that have been setup in your SPMP state parameters"
- . W !,"will receive data. Enter a help desk ticket if you have questions"
- . W !,"or need assistance.",!
- . K DIR S DIR("A")="Enter <RETURN> to continue.",DIR(0)="FO",DIR("T")=DTIME D ^DIR
- ;
- ZERODIV ; - Zero Report MbM default division P696
- ;Display this parameter only if Send Export State Parameter = 2
- I $$GET1^DIQ(58.41,STATEIEN,21,"I")'=2 G EXIT
- K DIR,DIRUT,DTOUT
- S DIR(0)="58.41,22" S:$G(PSOZRDIV)'="" DIR("B")=PSOZRDIV ;P724
- D ^DIR I X'="",$D(DIRUT)!$D(DTOUT) G @$$GOTO(X,"ZERODIV")
- S PSOZRDIV=Y D CHANGED(STATEIEN,"ZERODIV",PSOZRDIV)
- ;
- EXIT ; Exit
- ;
- END S VALMBCK="R" Q
- ;
- DISPLAY(STATE) ; - Displays the current Parameters
- N ZNODE,FNODE,F1NODE,X
- N ONENODE ;Zero Report node
- S ZNODE=$G(^PS(58.41,STATE,0)),FNODE=$G(^PS(58.41,STATE,"FILE")),F1NODE=$G(^PS(58.41,STATE,"FILE1"))
- S ONENODE=$G(^PS(58.41,STATE,1))
- W ! I ZNODE="" Q
- W !?5,"ASAP VERSION : ",$P(ZNODE,"^",2)
- I $P(ZNODE,"^",2)="1995" D
- . W !?5,"TRANSMIT RETURN TO STOCK : ",$S($P(ZNODE,"^",5):"YES",1:"NO")
- W !?5,"ZERO REPORT ASAP VERSION : ",$P(ONENODE,"^",1)
- W !?5,"INCLUDE NON-VETERAN PATIENTS: ",$S($P(ZNODE,"^",3):"YES",1:"NO")
- W !?5,"REPORTING FREQUENCY IN DAYS : ",$P(ZNODE,"^",4)
- W !?5,"OPEN VMS LOCAL DIRECTORY : ",$P(FNODE,"^",1)
- W !?5,"UNIX/LINUX LOCAL DIRECTORY : ",$P(F1NODE,"^",1)
- W !?5,"FILE NAME PREFIX : ",$P(FNODE,"^",2)
- W !?5,"FILE EXTENSION : ",$P(FNODE,"^",3)
- W !?5,"RENAME FILE AFTER UPLOAD : ",$S($P(ZNODE,"^",7):"YES",1:"NO")
- W !?5,"STATE SFTP SERVER IP ADDRESS: ",$P(FNODE,"^",4)
- W !?5,"STATE SFTP SERVER USERNAME : ",$P(FNODE,"^",5)
- W !?5,"STATE SFTP SERVER PORT # : ",$P(FNODE,"^",6)
- W !?5,"STATE SFTP SERVER DIRECTORY : ",$P(FNODE,"^",7)
- W !?5,"SFTP TRANSMISSION MODE : ",$$GET1^DIQ(58.41,STATE,13)
- W !?5,"SEND EXPORT STATE PARAMETER : ",$$GET1^DIQ(58.41,STATE,21)
- I $$GET1^DIQ(58.41,STATE,21,"I")=2 W !?5,"ZERO REPORT DEFAULT DIVISION: ",$$GET1^DIQ(59,$P(ONENODE,"^",2),.06)
- W !
- Q
- ;
- GOTO(INPUT,HOME) ; - Directed up-arrow
- ; Input: INPUT - User input (e.g., "@", "^STATE", etc...)
- ; HOME - Prompt where the user typed the input
- ;Output: $$GOTO - GoTo Prompt
- N GOTO,I,TAG,TRGT,OK2DEL
- I INPUT="@",HOME="ASAPVER",$D(^PS(58.41,STATEIEN)) D Q GOTO
- . W ! S DIR(0)="Y",DIR("B")="NO",DIR("A")="DELETE SPMP STATE PARAMETERS FOR "_$$GET1^DIQ(5,STATEIEN,.01)
- . D ^DIR I $D(DIRUT)!$D(DTOUT)!(Y=0) S GOTO=HOME W ! Q
- . N DIK,DA S DIK="^PS(58.41,",DA=STATEIEN D ^DIK S GOTO="EN"
- ;
- S OK2DEL="TRXRTS^FTPDIR^FILEPFIX^VMSLDIR^UNXLDIR^WINLDIR^FTPPORT^ZEROVER^ZERODIV"
- I INPUT="@",OK2DEL'[HOME D Q HOME
- . W " Cannot delete field",$C(7)
- I INPUT="@" D Q HOME
- . S:HOME="FTPDIR" PSOFTPDR="" S:HOME="FILEPFIX" PSOPFIX=""
- . S:HOME="VMSLDIR" PSOVMSLD="" S:HOME="UNXLDIR" PSOUNXLD=""
- . S:HOME="FTPPORT" PSOFTPPN="" S:HOME="ZEROVER" PSOZRVER=""
- . S:HOME="ZERODIV" PSOZRDIV=""
- . D SAVE(STATEIEN,HOME,"")
- ;
- I $P(INPUT,"^",2)="" S PSOQUIT=1 Q "EXIT"
- ;
- S TRGT=$$UP^XLFSTR($P(INPUT,"^",2))
- S TAG(1)="ASAP VERSION^ASAPVER"
- S:PSOASVER="1995" TAG(2)="TRANSMIT RETURN TO STOCK^TRXRTS"
- S TAG(3)="ZERO REPORT ASAP VERSION^ZEROVER" ;adding Zero Report Version and renumber
- S TAG(4)="INCLUDE NON-VETERAN PATIENTS^INCNVET"
- S TAG(5)="REPORTING FREQUENCY IN DAYS^REPFRQ"
- S TAG(6)="OPEN VMS LOCAL DIRECTORY^VMSLDIR"
- S TAG(7)="UNIX/LINUX LOCAL DIRECTORY^UNXLDIR"
- S TAG(8)="FILE NAME PREFIX^FILEPFIX"
- S TAG(9)="FILE EXTENSION^FILEEXT"
- S TAG(10)="RENAME FILE AFTER UPLOAD^RENAME"
- S TAG(11)="STATE SFTP SERVER IP ADDRESS^FTPIP"
- S TAG(12)="STATE SFTP SERVER USERNAME^FTPUSER"
- S TAG(13)="STATE SFTP SERVER PORT #^FTPPORT"
- S TAG(14)="STATE SFTP SERVER DIRECTORY^FTPDIR"
- S TAG(15)="SFTP TRANSMISSION MODE^TRXMODE"
- S TAG(16)="SEND EXPORT STATE PARAMETER^SNDPRMT"
- S:$$GET1^DIQ(58.41,STATE,21,"I")=2 TAG(17)="ZERO REPORT DEFAULT DIVISION^"_$$GET1^DIQ(59,ZERODIV,.06)
- ;
- S GOTO=HOME,I=""
- F S I=$O(TAG(I)) Q:'I S TAG=TAG(I) I $E($P(TAG,"^"),1,$L(TRGT))=TRGT S GOTO=$P(TAG,"^",2) Q
- ;
- Q GOTO
- ;
- LOAD(STATE) ; Loading Factory/Division/User preferences
- ;Input : STATE - Pointer to STATE file (#5)
- ;Output: PSOASVER - ASAP Version
- ; PSOTXRTS - Transmit Return To Stock fills
- ; PSOINCNV - Exclude Non-Veteran Patients
- ; PSOREPFQ - Reporting Frequency
- ; PSOVMSLD - Open VMS Local Directory
- ; PSOUNXLD - Unix/Linux Local Directory
- ; PSOPFIX - File Name Prefix
- ; PSOEXT - File Extension (.TXT or .DAT)
- ; PSORENAM - Rename File After Upload
- ; PSOZRVER - Send Zero Report
- ; PSOFTPIP - State Server FTP IP Address
- ; PSOFTPUS - State Server FTP Username
- ; PSOFTPPN - State Server FTP Password
- ; PSOFTPDR - State Server FTP Directory
- ; PSOTXMOD - Transmission Mode ('A' or 'M')
- ; PSOSNDPR - Send Export State Parameter
- ; PSOZRDIV - Zero Reporting Meds by Mail Division
- K PSOASVER,PSOINCNV,PSOREPFQ,PSOVMSLD,PSOUNXLD,PSOWINLD,PSOPFIX,PSOEXT,PSORENAM,PSOFTPIP,PSOFTPUS
- K PSOFTPPN,PSOFTPDR
- K PSOZRVER,PSOZRDIV
- ;
- N X,ZNODE,FNODE,F1NODE,LINE,ONENODE
- ;
- ; - Defaults
- S PSOASVER="4.2"
- S PSOTXRTS="0"
- S PSOINCNV=0
- S PSOREPFQ="1"
- S PSOVMSLD=""
- S PSOUNXLD=""
- S PSOPFIX=""
- S PSOEXT=".DAT"
- S PSORENAM="YES"
- S PSOZRVER=""
- S PSOZRDIV=""
- S PSOFTPIP=""
- S PSOFTPUS=""
- S PSOFTPPN=""
- S PSOFTPDR=""
- S PSOTXMOD="A"
- S PSOSNDPR="0"
- ;
- ; - State's parameters
- I $D(^PS(58.41,STATE,0)) D
- . S ZNODE=$G(^PS(58.41,STATE,0)) I $P(ZNODE,"^",1)'=STATE Q
- . S FNODE=$G(^PS(58.41,STATE,"FILE")),F1NODE=$G(^PS(58.41,STATE,"FILE1"))
- . S ONENODE=$G(^PS(58.41,STATE,1)) ;Zero Report node
- . S:$P(ZNODE,"^",2)'="" PSOASVER=$P(ZNODE,"^",2)
- . S:$P(ZNODE,"^",3)'="" PSOINCNV=$P(ZNODE,"^",3)
- . S:$P(ONENODE,"^",1)'="" PSOZRVER=$P(ONENODE,"^",1)
- . S:$P(ONENODE,"^",2)'="" PSOZRDIV=$$GET1^DIQ(59,$P(ONENODE,"^",2),.06)
- . S:$P(ZNODE,"^",4)'="" PSOREPFQ=$P(ZNODE,"^",4)
- . S:$P(ZNODE,"^",5)'="" PSOTXRTS=$P(ZNODE,"^",5)
- . S:$P(ZNODE,"^",6)'="" PSOTXMOD=$P(ZNODE,"^",6)
- . S:$P(ZNODE,"^",7)'="" PSORENAM=$P(ZNODE,"^",7)
- . S:$P(ZNODE,"^",8)'="" PSOSNDPR=$P(ZNODE,"^",8)
- . S:$P(FNODE,"^",1)'="" PSOVMSLD=$P(FNODE,"^",1)
- . S:$P(FNODE,"^",2)'="" PSOPFIX=$P(FNODE,"^",2)
- . S:$P(FNODE,"^",3)'="" PSOEXT=$P(FNODE,"^",3)
- . S:$P(FNODE,"^",4)'="" PSOFTPIP=$P(FNODE,"^",4)
- . S:$P(FNODE,"^",5)'="" PSOFTPUS=$P(FNODE,"^",5)
- . S:$P(FNODE,"^",6)'="" PSOFTPPN=$P(FNODE,"^",6)
- . S:$P(FNODE,"^",7)'="" PSOFTPDR=$P(FNODE,"^",7)
- . S:$P(F1NODE,"^",1)'="" PSOUNXLD=$P(F1NODE,"^",1)
- Q
- ;
- CHANGED(STATE,FIELD,VALUE) ; - If field was change Automatically Invokes SAVE
- ;Input : STATE - Pointer to STATE file (#5)
- ; FIELD - Field ID (Internal)
- ; VALUE - Field Value
- N CHANGED,ZNODE,FNODE,F1NODE,LINE
- ;
- S CHANGED=0
- ; - Saved Division's parameters
- S ZNODE=$G(^PS(58.41,STATE,0)),FNODE=$G(^PS(58.41,STATE,"FILE")),F1NODE=$G(^PS(58.41,STATE,"FILE1"))
- S ONENODE=$G(^PS(58.41,STATE,1)) ;Zero Report node
- ;
- I FIELD="ASAPVER",VALUE'=$P(ZNODE,"^",2) S CHANGED=1
- I FIELD="TRXRTS",VALUE'=$P(ZNODE,"^",5) S CHANGED=1
- I FIELD="ZEROVER",VALUE'=$P(ONENODE,"^",1) S CHANGED=1
- I FIELD="ZERODIV",VALUE'=$P(ONENODE,"^",2) S CHANGED=1
- I FIELD="INCNVET",VALUE'=$P(ZNODE,"^",3) S CHANGED=1
- I FIELD="VMSLDIR",VALUE'=$P(FNODE,"^",1) S CHANGED=1
- I FIELD="UNXLDIR",VALUE'=$P(F1NODE,"^",1) S CHANGED=1
- I FIELD="WINLDIR",VALUE'=$P(F1NODE,"^",2) S CHANGED=1
- I FIELD="REPFRQ",VALUE'=$P(ZNODE,"^",4) S CHANGED=1
- I FIELD="FILEPFIX",VALUE'=$P(FNODE,"^",2) S CHANGED=1
- I FIELD="FILEEXT",VALUE'=$P(FNODE,"^",3) S CHANGED=1
- I FIELD="RENAME",VALUE'=$P(ZNODE,"^",7) S CHANGED=1
- I FIELD="FTPIP",VALUE'=$P(FNODE,"^",4) S CHANGED=1
- I FIELD="FTPUSER",VALUE'=$P(FNODE,"^",5) S CHANGED=1
- I FIELD="FTPPORT",VALUE'=$P(FNODE,"^",6) S CHANGED=1
- I FIELD="FTPDIR",VALUE'=$P(FNODE,"^",7) S CHANGED=1
- I FIELD="TRXMODE",VALUE'=$P(ZNODE,"^",6) S CHANGED=1
- I FIELD="SNDPRMT",VALUE'=$P(ZNODE,"^",8) S CHANGED=1
- ;
- I CHANGED D SAVE(STATE,FIELD,$G(VALUE))
- Q
- ;
- SAVE(STATE,FIELD,VALUE) ; - Saves preferences by State
- ;Input : STATE - Pointer to STATE file (#5)
- ; FIELD - Field ID (Internal)
- ; VALUE - Field Value
- N DIE,DR,DA,LINE
- ;
- I '$D(^PS(58.41,STATE)) D
- . N %,DIC,DR,DA,X,DINUM,DLAYGO,DD,DO
- . S DIC="^PS(58.41,",(DINUM,X)=STATE,DIC(0)=""
- . K DD,DO D FILE^DICN K DD,DO
- ;
- I FIELD="ASAPVER" S DR="1///"_PSOASVER
- I FIELD="TRXRTS" S DR="12////"_PSOTXRTS
- I FIELD="ZEROVER" S DR="20///"_$S(PSOZRVER="":"@",1:PSOZRVER)
- I FIELD="ZERODIV" S DR="22////"_$S(PSOZRDIV="":"@",1:PSOZRDIV)
- I FIELD="INCNVET" S DR="2///"_PSOINCNV
- I FIELD="VMSLDIR" S DR="4////"_$S(PSOVMSLD="":"@",1:PSOVMSLD)
- I FIELD="UNXLDIR" S DR="15////"_$S(PSOUNXLD="":"@",1:PSOUNXLD)
- I FIELD="REPFRQ" S DR="3///"_PSOREPFQ
- I FIELD="FILEPFIX" S DR="5////"_$S(PSOPFIX="":"@",1:PSOPFIX)
- I FIELD="FILEEXT" S DR="6///"_PSOEXT
- I FIELD="RENAME" S DR="17///"_PSORENAM
- I FIELD="FTPIP" S DR="7///"_PSOFTPIP
- I FIELD="FTPUSER" S DR="8///"_PSOFTPUS
- I FIELD="FTPPORT" S DR="9////"_$S(PSOFTPPN="":"@",1:PSOFTPPN)
- I FIELD="FTPDIR" S DR="10////"_$S(PSOFTPDR="":"@",1:PSOFTPDR)
- I FIELD="TRXMODE" S DR="13////"_PSOTXMOD
- I FIELD="SNDPRMT" S DR="21////"_PSOSNDPR
- S DIE="^PS(58.41,",DA=STATE D ^DIE
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSOSPMSP 15126 printed Mar 13, 2025@21:40:04 Page 2
- PSOSPMSP ;BIRM/MFR - State Prescription Monitoring Program - State Parameters ;09/04/12
- +1 ;;7.0;OUTPATIENT PHARMACY;**408,451,625,630,696,724**;DEC 1997;Build 3
- +2 ;
- EN ; - Menu option entry point
- +1 NEW PSOASVER,PSOINCNV,PSOREPFQ,PSOVMSLD,PSOUNXLD,PSOPFIX,PSOEXT,PSOFTPIP,PSOTXRTS,Y
- +2 NEW PSOFTPUS,PSOFTPPN,PSOFTPDR,PSOTXMOD,PSOQUIT,DIC,DIR,DIRUT,DTOUT,DUOUT,LST,DELDIR
- +3 NEW PSOZRVER,Z,PSOSNDPR,PSOZRDIV
- +4 ;
- +5 DO FULL^VALM1
- WRITE !
- +6 ;
- +7 WRITE !
- KILL DIC
- SET DIC("A")="Select STATE: "
- SET DIC="^DIC(5,"
- SET DIC(0)="QOEAM"
- +8 IF $ORDER(^PS(58.41,0))
- SET DIC("B")=$ORDER(^PS(58.41,0))
- +9 KILL STATEIEN
- DO ^DIC
- IF X=""!(X="^")!$DATA(DUOUT)!$DATA(DTOUT)
- GOTO END
- +10 KILL DIC("A")
- if Y<0
- GOTO EN
- SET STATEIEN=+Y
- +11 ;
- +12 DO DISPLAY(STATEIEN)
- +13 ;
- +14 ; Checking the Security Key PSO SPMP ADMIN for Editing the Parameters
- +15 IF '$DATA(^XUSEC("PSO SPMP ADMIN",DUZ))
- Begin DoDot:1
- +16 WRITE !,"The security key PSO SPMP ADMIN is required for editing the Parameters."
- WRITE $CHAR(7)
- End DoDot:1
- GOTO EN
- +17 ;
- +18 DO LOAD(STATEIEN)
- SET PSOQUIT=0
- +19 ;
- ASAPVER ; - ASAP Version
- +1 ;Zero Report adding "R"
- SET X=$$ASAPVER^PSOSPMU2("A","R",0,PSOASVER,1,1)
- IF X="^"
- GOTO EXIT
- +2 IF X["^"!(X="@")
- GOTO @$$GOTO(X,"ASAPVER")
- +3 SET PSOASVER=X
- DO CHANGED(STATEIEN,"ASAPVER",PSOASVER)
- +4 ;
- TRXRTS ; - Auto Transmit Returns (ASAP 1995 only)
- +1 ;Zero Report changed from 'G INCNVET' to 'G ZEROVER'
- IF PSOASVER'="1995"
- SET PSOTXRTS=""
- GOTO ZEROVER
- +2 KILL DIR,DIRUT,DTOUT
- +3 SET DIR(0)="58.41,12"
- if $GET(PSOTXRTS)'=""
- SET DIR("B")=$SELECT(PSOTXRTS:"YES",1:"NO")
- +4 DO ^DIR
- IF X'=""
- IF $DATA(DIRUT)!$DATA(DTOUT)
- GOTO @$$GOTO(X,"TRXRTS")
- +5 SET PSOTXRTS=Y
- DO CHANGED(STATEIEN,"TRXRTS",PSOTXRTS)
- +6 ;
- ZEROVER ; - Zero Report ASAP Version
- +1 SET X=$$ASAPVER^PSOSPMU2("A","Z",0,PSOZRVER,0,1)
- IF X="^"
- GOTO EXIT
- +2 IF X["^"!(X="@")
- GOTO @$$GOTO(X,"ZEROVER")
- +3 SET PSOZRVER=X
- DO CHANGED(STATEIEN,"ZEROVER",PSOZRVER)
- +4 ;
- INCNVET ; Include Non-Veteran Patients
- +1 KILL DIR,DIRUT,DTOUT
- +2 SET DIR(0)="58.41,2"
- SET DIR("B")=$SELECT(+$GET(PSOINCNV):"YES",1:"NO")
- +3 DO ^DIR
- IF $DATA(DIRUT)!$DATA(DTOUT)
- GOTO @$$GOTO(X,"INCNVET")
- +4 SET PSOINCNV=Y
- DO CHANGED(STATEIEN,"INCNVET",PSOINCNV)
- +5 ;
- REPFRQ ; Reporting Frequency
- +1 KILL DIR,DIRUT,DTOUT
- +2 SET DIR(0)="58.41,3"
- if $GET(PSOREPFQ)
- SET DIR("B")=PSOREPFQ
- +3 DO ^DIR
- IF $DATA(DIRUT)!$DATA(DTOUT)
- GOTO @$$GOTO(X,"REPFRQ")
- +4 IF Y'?1.2N
- WRITE !,"Invalid Frequency"
- +5 SET PSOREPFQ=Y
- DO CHANGED(STATEIEN,"REPFRQ",PSOREPFQ)
- +6 ;
- VMSLDIR ; - Open VMS Local Directory
- +1 KILL DIR,DIRUT,DTOUT
- +2 SET DIR(0)="58.41,4"
- if $GET(PSOVMSLD)'=""
- SET DIR("B")=PSOVMSLD
- +3 DO ^DIR
- IF X'=""
- IF $DATA(DIRUT)!$DATA(DTOUT)
- GOTO @$$GOTO(X,"VMSLDIR")
- +4 SET PSOVMSLD=Y
- DO CHANGED(STATEIEN,"VMSLDIR",PSOVMSLD)
- +5 ;
- UNXLDIR ; - Unix/Linux Local Directory
- +1 KILL DIR,DIRUT,DTOUT,NEWDIR,PSOVER
- +2 IF '$GET(DELDIR)
- IF $GET(PSOUNXLD)=""
- SET PSOUNXLD=$$LINUXDIR^PSOSPMU1()
- +3 SET DIR(0)="58.41,15"
- if $GET(PSOUNXLD)'=""
- SET DIR("B")=PSOUNXLD
- +4 SET DELDIR=0
- DO ^DIR
- IF X'=""
- IF $DATA(DIRUT)!$DATA(DTOUT)
- if X="@"
- SET DELDIR=1
- GOTO @$$GOTO(X,"UNXLDIR")
- +5 IF $GET(Y)'=""
- IF $EXTRACT(Y,$LENGTH(X))'="/"
- SET Y=Y_"/"
- +6 SET PSOUNXLD=Y
- DO CHANGED(STATEIEN,"UNXLDIR",PSOUNXLD)
- +7 ;
- +8 SET PSOVER=$$UP^XLFSTR($$VERSION^%ZOSV(1))
- +9 ;PSO*7*630
- IF PSOUNXLD'=""
- IF $$OS^%ZOSV()="UNIX"
- IF (PSOVER["CACHE")!(PSOVER["IRIS")
- Begin DoDot:1
- +10 IF '$$DIREXIST^PSOSPMU1(PSOUNXLD)
- Begin DoDot:2
- +11 WRITE !
- SET DIR("A",1)="The directory above could not be found."
- +12 SET DIR("A",2)=""
- +13 SET DIR("A")="Would you like to create it now"
- SET DIR(0)="Y"
- SET DIR("B")="N"
- +14 DO ^DIR
- IF $GET(DTOUT)!$GET(DUOUT)!'Y
- WRITE !
- QUIT
- +15 DO MAKEDIR^PSOSPMU1(PSOUNXLD)
- SET NEWDIR=1
- WRITE !
- End DoDot:2
- +16 IF '$$DIREXIST^PSOSPMU1(PSOUNXLD)
- Begin DoDot:2
- +17 WRITE !!,"Warning: "_$SELECT($GET(NEWDIR):"The directory could not be created.",1:"The directory could not be found."),!,$CHAR(7)
- End DoDot:2
- End DoDot:1
- +18 ;
- FILEPFIX ; - File name Prefix
- +1 KILL DIR,DIRUT,DTOUT
- +2 SET DIR(0)="58.41,5"
- KILL DIR("B")
- if $GET(PSOPFIX)'=""
- SET DIR("B")=PSOPFIX
- +3 DO ^DIR
- IF X'=""
- IF $DATA(DIRUT)!$DATA(DTOUT)
- GOTO @$$GOTO(X,"FILEPFIX")
- +4 IF Y[" "
- WRITE ?40,"No spaces allowed.",$CHAR(7)
- GOTO FILEPFIX
- +5 SET PSOPFIX=Y
- DO CHANGED(STATEIEN,"FILEPFIX",PSOPFIX)
- +6 ;
- FILEEXT ; File Extension
- +1 KILL DIR,DIRUT,DTOUT
- +2 SET DIR(0)="58.41,6"
- if $GET(PSOEXT)'=""
- SET DIR("B")=PSOEXT
- +3 DO ^DIR
- IF $DATA(DIRUT)!$DATA(DTOUT)
- GOTO @$$GOTO(X,"FILEEXT")
- +4 SET PSOEXT=Y
- DO CHANGED(STATEIEN,"FILEEXT",PSOEXT)
- +5 ;
- RENAME ; Rename File after upload?
- +1 KILL DIR,DIRUT,DTOUT
- +2 SET DIR(0)="58.41,17"
- if $GET(PSORENAM)'=""
- SET DIR("B")=$SELECT(PSORENAM:"YES",1:"NO")
- +3 DO ^DIR
- IF $DATA(DIRUT)!$DATA(DTOUT)
- GOTO @$$GOTO(X,"RENAME")
- +4 SET PSORENAM=Y
- DO CHANGED(STATEIEN,"RENAME",PSORENAM)
- +5 ;
- FTPIP ; - State Server FTP IP Address
- +1 KILL DIR,DIRUT,DTOUT,PV
- +2 SET DIR(0)="58.41,7"
- if $GET(PSOFTPIP)'=""
- SET DIR("B")=PSOFTPIP
- +3 DO ^DIR
- IF X'=""
- IF $DATA(DIRUT)!$DATA(DTOUT)
- GOTO @$$GOTO(X,"FTPIP")
- +4 SET PSOFTPIP=Y
- DO CHANGED(STATEIEN,"FTPIP",PSOFTPIP)
- +5 ;
- FTPUSER ; - State Server FTP Username
- +1 KILL DIR,DIRUT,DTOUT
- +2 SET DIR(0)="58.41,8"
- if $GET(PSOFTPUS)'=""
- SET DIR("B")=PSOFTPUS
- +3 DO ^DIR
- IF X'=""
- IF $DATA(DIRUT)!$DATA(DTOUT)
- GOTO @$$GOTO(X,"FTPUSER")
- +4 SET PSOFTPUS=Y
- DO CHANGED(STATEIEN,"FTPUSER",PSOFTPUS)
- +5 ;
- FTPPORT ; - State Server FTP Password
- +1 KILL DIR,DIRUT,DTOUT
- +2 SET DIR(0)="58.41,9"
- if $GET(PSOFTPPN)'=""
- SET DIR("B")=PSOFTPPN
- +3 DO ^DIR
- IF X'=""
- IF $DATA(DIRUT)!$DATA(DTOUT)
- GOTO @$$GOTO(X,"FTPPORT")
- +4 SET PSOFTPPN=Y
- DO CHANGED(STATEIEN,"FTPPORT",PSOFTPPN)
- +5 ;
- FTPDIR ; - State Server FTP Remote Directory
- +1 KILL DIR,DIRUT,DTOUT
- +2 SET DIR(0)="58.41,10"
- if $GET(PSOFTPDR)'=""
- SET DIR("B")=PSOFTPDR
- +3 DO ^DIR
- IF X'=""
- IF $DATA(DIRUT)!$DATA(DTOUT)
- GOTO @$$GOTO(X,"FTPDIR")
- +4 SET PSOFTPDR=Y
- DO CHANGED(STATEIEN,"FTPDIR",PSOFTPDR)
- +5 ;
- TRXMODE ; - Transmission Mode (A - Automatic / M - Manual)
- +1 KILL DIR,DIRUT,DTOUT
- +2 SET DIR(0)="58.41,13"
- SET DIR("B")=PSOTXMOD
- +3 DO ^DIR
- IF X'=""
- IF $DATA(DIRUT)!$DATA(DTOUT)
- GOTO @$$GOTO(X,"TRXMODE")
- +4 SET PSOTXMOD=Y
- DO CHANGED(STATEIEN,"TRXMODE",PSOTXMOD)
- +5 ;
- SNDPRMT ; - Send Export State Parameter
- +1 KILL DIR,DIRUT,DTOUT
- +2 SET DIR(0)="58.41,21"
- SET DIR("B")=PSOSNDPR
- +3 DO ^DIR
- IF X'=""
- IF $DATA(DIRUT)!$DATA(DTOUT)
- GOTO @$$GOTO(X,"SNDPRMT")
- +4 SET PSOSNDPR=Y
- DO CHANGED(STATEIEN,"SNDPRMT",PSOSNDPR)
- +5 IF PSOSNDPR>0
- Begin DoDot:1
- +6 WRITE !,"NOTE: You have selected a parameter that includes sending to state of patient"
- +7 WRITE !,"delivery. Only states that have been setup in your SPMP state parameters"
- +8 WRITE !,"will receive data. Enter a help desk ticket if you have questions"
- +9 WRITE !,"or need assistance.",!
- +10 KILL DIR
- SET DIR("A")="Enter <RETURN> to continue."
- SET DIR(0)="FO"
- SET DIR("T")=DTIME
- DO ^DIR
- End DoDot:1
- +11 ;
- ZERODIV ; - Zero Report MbM default division P696
- +1 ;Display this parameter only if Send Export State Parameter = 2
- +2 IF $$GET1^DIQ(58.41,STATEIEN,21,"I")'=2
- GOTO EXIT
- +3 KILL DIR,DIRUT,DTOUT
- +4 ;P724
- SET DIR(0)="58.41,22"
- if $GET(PSOZRDIV)'=""
- SET DIR("B")=PSOZRDIV
- +5 DO ^DIR
- IF X'=""
- IF $DATA(DIRUT)!$DATA(DTOUT)
- GOTO @$$GOTO(X,"ZERODIV")
- +6 SET PSOZRDIV=Y
- DO CHANGED(STATEIEN,"ZERODIV",PSOZRDIV)
- +7 ;
- EXIT ; Exit
- +1 ;
- END SET VALMBCK="R"
- QUIT
- +1 ;
- DISPLAY(STATE) ; - Displays the current Parameters
- +1 NEW ZNODE,FNODE,F1NODE,X
- +2 ;Zero Report node
- NEW ONENODE
- +3 SET ZNODE=$GET(^PS(58.41,STATE,0))
- SET FNODE=$GET(^PS(58.41,STATE,"FILE"))
- SET F1NODE=$GET(^PS(58.41,STATE,"FILE1"))
- +4 SET ONENODE=$GET(^PS(58.41,STATE,1))
- +5 WRITE !
- IF ZNODE=""
- QUIT
- +6 WRITE !?5,"ASAP VERSION : ",$PIECE(ZNODE,"^",2)
- +7 IF $PIECE(ZNODE,"^",2)="1995"
- Begin DoDot:1
- +8 WRITE !?5,"TRANSMIT RETURN TO STOCK : ",$SELECT($PIECE(ZNODE,"^",5):"YES",1:"NO")
- End DoDot:1
- +9 WRITE !?5,"ZERO REPORT ASAP VERSION : ",$PIECE(ONENODE,"^",1)
- +10 WRITE !?5,"INCLUDE NON-VETERAN PATIENTS: ",$SELECT($PIECE(ZNODE,"^",3):"YES",1:"NO")
- +11 WRITE !?5,"REPORTING FREQUENCY IN DAYS : ",$PIECE(ZNODE,"^",4)
- +12 WRITE !?5,"OPEN VMS LOCAL DIRECTORY : ",$PIECE(FNODE,"^",1)
- +13 WRITE !?5,"UNIX/LINUX LOCAL DIRECTORY : ",$PIECE(F1NODE,"^",1)
- +14 WRITE !?5,"FILE NAME PREFIX : ",$PIECE(FNODE,"^",2)
- +15 WRITE !?5,"FILE EXTENSION : ",$PIECE(FNODE,"^",3)
- +16 WRITE !?5,"RENAME FILE AFTER UPLOAD : ",$SELECT($PIECE(ZNODE,"^",7):"YES",1:"NO")
- +17 WRITE !?5,"STATE SFTP SERVER IP ADDRESS: ",$PIECE(FNODE,"^",4)
- +18 WRITE !?5,"STATE SFTP SERVER USERNAME : ",$PIECE(FNODE,"^",5)
- +19 WRITE !?5,"STATE SFTP SERVER PORT # : ",$PIECE(FNODE,"^",6)
- +20 WRITE !?5,"STATE SFTP SERVER DIRECTORY : ",$PIECE(FNODE,"^",7)
- +21 WRITE !?5,"SFTP TRANSMISSION MODE : ",$$GET1^DIQ(58.41,STATE,13)
- +22 WRITE !?5,"SEND EXPORT STATE PARAMETER : ",$$GET1^DIQ(58.41,STATE,21)
- +23 IF $$GET1^DIQ(58.41,STATE,21,"I")=2
- WRITE !?5,"ZERO REPORT DEFAULT DIVISION: ",$$GET1^DIQ(59,$PIECE(ONENODE,"^",2),.06)
- +24 WRITE !
- +25 QUIT
- +26 ;
- GOTO(INPUT,HOME) ; - Directed up-arrow
- +1 ; Input: INPUT - User input (e.g., "@", "^STATE", etc...)
- +2 ; HOME - Prompt where the user typed the input
- +3 ;Output: $$GOTO - GoTo Prompt
- +4 NEW GOTO,I,TAG,TRGT,OK2DEL
- +5 IF INPUT="@"
- IF HOME="ASAPVER"
- IF $DATA(^PS(58.41,STATEIEN))
- Begin DoDot:1
- +6 WRITE !
- SET DIR(0)="Y"
- SET DIR("B")="NO"
- SET DIR("A")="DELETE SPMP STATE PARAMETERS FOR "_$$GET1^DIQ(5,STATEIEN,.01)
- +7 DO ^DIR
- IF $DATA(DIRUT)!$DATA(DTOUT)!(Y=0)
- SET GOTO=HOME
- WRITE !
- QUIT
- +8 NEW DIK,DA
- SET DIK="^PS(58.41,"
- SET DA=STATEIEN
- DO ^DIK
- SET GOTO="EN"
- End DoDot:1
- QUIT GOTO
- +9 ;
- +10 SET OK2DEL="TRXRTS^FTPDIR^FILEPFIX^VMSLDIR^UNXLDIR^WINLDIR^FTPPORT^ZEROVER^ZERODIV"
- +11 IF INPUT="@"
- IF OK2DEL'[HOME
- Begin DoDot:1
- +12 WRITE " Cannot delete field",$CHAR(7)
- End DoDot:1
- QUIT HOME
- +13 IF INPUT="@"
- Begin DoDot:1
- +14 if HOME="FTPDIR"
- SET PSOFTPDR=""
- if HOME="FILEPFIX"
- SET PSOPFIX=""
- +15 if HOME="VMSLDIR"
- SET PSOVMSLD=""
- if HOME="UNXLDIR"
- SET PSOUNXLD=""
- +16 if HOME="FTPPORT"
- SET PSOFTPPN=""
- if HOME="ZEROVER"
- SET PSOZRVER=""
- +17 if HOME="ZERODIV"
- SET PSOZRDIV=""
- +18 DO SAVE(STATEIEN,HOME,"")
- End DoDot:1
- QUIT HOME
- +19 ;
- +20 IF $PIECE(INPUT,"^",2)=""
- SET PSOQUIT=1
- QUIT "EXIT"
- +21 ;
- +22 SET TRGT=$$UP^XLFSTR($PIECE(INPUT,"^",2))
- +23 SET TAG(1)="ASAP VERSION^ASAPVER"
- +24 if PSOASVER="1995"
- SET TAG(2)="TRANSMIT RETURN TO STOCK^TRXRTS"
- +25 ;adding Zero Report Version and renumber
- SET TAG(3)="ZERO REPORT ASAP VERSION^ZEROVER"
- +26 SET TAG(4)="INCLUDE NON-VETERAN PATIENTS^INCNVET"
- +27 SET TAG(5)="REPORTING FREQUENCY IN DAYS^REPFRQ"
- +28 SET TAG(6)="OPEN VMS LOCAL DIRECTORY^VMSLDIR"
- +29 SET TAG(7)="UNIX/LINUX LOCAL DIRECTORY^UNXLDIR"
- +30 SET TAG(8)="FILE NAME PREFIX^FILEPFIX"
- +31 SET TAG(9)="FILE EXTENSION^FILEEXT"
- +32 SET TAG(10)="RENAME FILE AFTER UPLOAD^RENAME"
- +33 SET TAG(11)="STATE SFTP SERVER IP ADDRESS^FTPIP"
- +34 SET TAG(12)="STATE SFTP SERVER USERNAME^FTPUSER"
- +35 SET TAG(13)="STATE SFTP SERVER PORT #^FTPPORT"
- +36 SET TAG(14)="STATE SFTP SERVER DIRECTORY^FTPDIR"
- +37 SET TAG(15)="SFTP TRANSMISSION MODE^TRXMODE"
- +38 SET TAG(16)="SEND EXPORT STATE PARAMETER^SNDPRMT"
- +39 if $$GET1^DIQ(58.41,STATE,21,"I")=2
- SET TAG(17)="ZERO REPORT DEFAULT DIVISION^"_$$GET1^DIQ(59,ZERODIV,.06)
- +40 ;
- +41 SET GOTO=HOME
- SET I=""
- +42 FOR
- SET I=$ORDER(TAG(I))
- if 'I
- QUIT
- SET TAG=TAG(I)
- IF $EXTRACT($PIECE(TAG,"^"),1,$LENGTH(TRGT))=TRGT
- SET GOTO=$PIECE(TAG,"^",2)
- QUIT
- +43 ;
- +44 QUIT GOTO
- +45 ;
- LOAD(STATE) ; Loading Factory/Division/User preferences
- +1 ;Input : STATE - Pointer to STATE file (#5)
- +2 ;Output: PSOASVER - ASAP Version
- +3 ; PSOTXRTS - Transmit Return To Stock fills
- +4 ; PSOINCNV - Exclude Non-Veteran Patients
- +5 ; PSOREPFQ - Reporting Frequency
- +6 ; PSOVMSLD - Open VMS Local Directory
- +7 ; PSOUNXLD - Unix/Linux Local Directory
- +8 ; PSOPFIX - File Name Prefix
- +9 ; PSOEXT - File Extension (.TXT or .DAT)
- +10 ; PSORENAM - Rename File After Upload
- +11 ; PSOZRVER - Send Zero Report
- +12 ; PSOFTPIP - State Server FTP IP Address
- +13 ; PSOFTPUS - State Server FTP Username
- +14 ; PSOFTPPN - State Server FTP Password
- +15 ; PSOFTPDR - State Server FTP Directory
- +16 ; PSOTXMOD - Transmission Mode ('A' or 'M')
- +17 ; PSOSNDPR - Send Export State Parameter
- +18 ; PSOZRDIV - Zero Reporting Meds by Mail Division
- +19 KILL PSOASVER,PSOINCNV,PSOREPFQ,PSOVMSLD,PSOUNXLD,PSOWINLD,PSOPFIX,PSOEXT,PSORENAM,PSOFTPIP,PSOFTPUS
- +20 KILL PSOFTPPN,PSOFTPDR
- +21 KILL PSOZRVER,PSOZRDIV
- +22 ;
- +23 NEW X,ZNODE,FNODE,F1NODE,LINE,ONENODE
- +24 ;
- +25 ; - Defaults
- +26 SET PSOASVER="4.2"
- +27 SET PSOTXRTS="0"
- +28 SET PSOINCNV=0
- +29 SET PSOREPFQ="1"
- +30 SET PSOVMSLD=""
- +31 SET PSOUNXLD=""
- +32 SET PSOPFIX=""
- +33 SET PSOEXT=".DAT"
- +34 SET PSORENAM="YES"
- +35 SET PSOZRVER=""
- +36 SET PSOZRDIV=""
- +37 SET PSOFTPIP=""
- +38 SET PSOFTPUS=""
- +39 SET PSOFTPPN=""
- +40 SET PSOFTPDR=""
- +41 SET PSOTXMOD="A"
- +42 SET PSOSNDPR="0"
- +43 ;
- +44 ; - State's parameters
- +45 IF $DATA(^PS(58.41,STATE,0))
- Begin DoDot:1
- +46 SET ZNODE=$GET(^PS(58.41,STATE,0))
- IF $PIECE(ZNODE,"^",1)'=STATE
- QUIT
- +47 SET FNODE=$GET(^PS(58.41,STATE,"FILE"))
- SET F1NODE=$GET(^PS(58.41,STATE,"FILE1"))
- +48 ;Zero Report node
- SET ONENODE=$GET(^PS(58.41,STATE,1))
- +49 if $PIECE(ZNODE,"^",2)'=""
- SET PSOASVER=$PIECE(ZNODE,"^",2)
- +50 if $PIECE(ZNODE,"^",3)'=""
- SET PSOINCNV=$PIECE(ZNODE,"^",3)
- +51 if $PIECE(ONENODE,"^",1)'=""
- SET PSOZRVER=$PIECE(ONENODE,"^",1)
- +52 if $PIECE(ONENODE,"^",2)'=""
- SET PSOZRDIV=$$GET1^DIQ(59,$PIECE(ONENODE,"^",2),.06)
- +53 if $PIECE(ZNODE,"^",4)'=""
- SET PSOREPFQ=$PIECE(ZNODE,"^",4)
- +54 if $PIECE(ZNODE,"^",5)'=""
- SET PSOTXRTS=$PIECE(ZNODE,"^",5)
- +55 if $PIECE(ZNODE,"^",6)'=""
- SET PSOTXMOD=$PIECE(ZNODE,"^",6)
- +56 if $PIECE(ZNODE,"^",7)'=""
- SET PSORENAM=$PIECE(ZNODE,"^",7)
- +57 if $PIECE(ZNODE,"^",8)'=""
- SET PSOSNDPR=$PIECE(ZNODE,"^",8)
- +58 if $PIECE(FNODE,"^",1)'=""
- SET PSOVMSLD=$PIECE(FNODE,"^",1)
- +59 if $PIECE(FNODE,"^",2)'=""
- SET PSOPFIX=$PIECE(FNODE,"^",2)
- +60 if $PIECE(FNODE,"^",3)'=""
- SET PSOEXT=$PIECE(FNODE,"^",3)
- +61 if $PIECE(FNODE,"^",4)'=""
- SET PSOFTPIP=$PIECE(FNODE,"^",4)
- +62 if $PIECE(FNODE,"^",5)'=""
- SET PSOFTPUS=$PIECE(FNODE,"^",5)
- +63 if $PIECE(FNODE,"^",6)'=""
- SET PSOFTPPN=$PIECE(FNODE,"^",6)
- +64 if $PIECE(FNODE,"^",7)'=""
- SET PSOFTPDR=$PIECE(FNODE,"^",7)
- +65 if $PIECE(F1NODE,"^",1)'=""
- SET PSOUNXLD=$PIECE(F1NODE,"^",1)
- End DoDot:1
- +66 QUIT
- +67 ;
- CHANGED(STATE,FIELD,VALUE) ; - If field was change Automatically Invokes SAVE
- +1 ;Input : STATE - Pointer to STATE file (#5)
- +2 ; FIELD - Field ID (Internal)
- +3 ; VALUE - Field Value
- +4 NEW CHANGED,ZNODE,FNODE,F1NODE,LINE
- +5 ;
- +6 SET CHANGED=0
- +7 ; - Saved Division's parameters
- +8 SET ZNODE=$GET(^PS(58.41,STATE,0))
- SET FNODE=$GET(^PS(58.41,STATE,"FILE"))
- SET F1NODE=$GET(^PS(58.41,STATE,"FILE1"))
- +9 ;Zero Report node
- SET ONENODE=$GET(^PS(58.41,STATE,1))
- +10 ;
- +11 IF FIELD="ASAPVER"
- IF VALUE'=$PIECE(ZNODE,"^",2)
- SET CHANGED=1
- +12 IF FIELD="TRXRTS"
- IF VALUE'=$PIECE(ZNODE,"^",5)
- SET CHANGED=1
- +13 IF FIELD="ZEROVER"
- IF VALUE'=$PIECE(ONENODE,"^",1)
- SET CHANGED=1
- +14 IF FIELD="ZERODIV"
- IF VALUE'=$PIECE(ONENODE,"^",2)
- SET CHANGED=1
- +15 IF FIELD="INCNVET"
- IF VALUE'=$PIECE(ZNODE,"^",3)
- SET CHANGED=1
- +16 IF FIELD="VMSLDIR"
- IF VALUE'=$PIECE(FNODE,"^",1)
- SET CHANGED=1
- +17 IF FIELD="UNXLDIR"
- IF VALUE'=$PIECE(F1NODE,"^",1)
- SET CHANGED=1
- +18 IF FIELD="WINLDIR"
- IF VALUE'=$PIECE(F1NODE,"^",2)
- SET CHANGED=1
- +19 IF FIELD="REPFRQ"
- IF VALUE'=$PIECE(ZNODE,"^",4)
- SET CHANGED=1
- +20 IF FIELD="FILEPFIX"
- IF VALUE'=$PIECE(FNODE,"^",2)
- SET CHANGED=1
- +21 IF FIELD="FILEEXT"
- IF VALUE'=$PIECE(FNODE,"^",3)
- SET CHANGED=1
- +22 IF FIELD="RENAME"
- IF VALUE'=$PIECE(ZNODE,"^",7)
- SET CHANGED=1
- +23 IF FIELD="FTPIP"
- IF VALUE'=$PIECE(FNODE,"^",4)
- SET CHANGED=1
- +24 IF FIELD="FTPUSER"
- IF VALUE'=$PIECE(FNODE,"^",5)
- SET CHANGED=1
- +25 IF FIELD="FTPPORT"
- IF VALUE'=$PIECE(FNODE,"^",6)
- SET CHANGED=1
- +26 IF FIELD="FTPDIR"
- IF VALUE'=$PIECE(FNODE,"^",7)
- SET CHANGED=1
- +27 IF FIELD="TRXMODE"
- IF VALUE'=$PIECE(ZNODE,"^",6)
- SET CHANGED=1
- +28 IF FIELD="SNDPRMT"
- IF VALUE'=$PIECE(ZNODE,"^",8)
- SET CHANGED=1
- +29 ;
- +30 IF CHANGED
- DO SAVE(STATE,FIELD,$GET(VALUE))
- +31 QUIT
- +32 ;
- SAVE(STATE,FIELD,VALUE) ; - Saves preferences by State
- +1 ;Input : STATE - Pointer to STATE file (#5)
- +2 ; FIELD - Field ID (Internal)
- +3 ; VALUE - Field Value
- +4 NEW DIE,DR,DA,LINE
- +5 ;
- +6 IF '$DATA(^PS(58.41,STATE))
- Begin DoDot:1
- +7 NEW %,DIC,DR,DA,X,DINUM,DLAYGO,DD,DO
- +8 SET DIC="^PS(58.41,"
- SET (DINUM,X)=STATE
- SET DIC(0)=""
- +9 KILL DD,DO
- DO FILE^DICN
- KILL DD,DO
- End DoDot:1
- +10 ;
- +11 IF FIELD="ASAPVER"
- SET DR="1///"_PSOASVER
- +12 IF FIELD="TRXRTS"
- SET DR="12////"_PSOTXRTS
- +13 IF FIELD="ZEROVER"
- SET DR="20///"_$SELECT(PSOZRVER="":"@",1:PSOZRVER)
- +14 IF FIELD="ZERODIV"
- SET DR="22////"_$SELECT(PSOZRDIV="":"@",1:PSOZRDIV)
- +15 IF FIELD="INCNVET"
- SET DR="2///"_PSOINCNV
- +16 IF FIELD="VMSLDIR"
- SET DR="4////"_$SELECT(PSOVMSLD="":"@",1:PSOVMSLD)
- +17 IF FIELD="UNXLDIR"
- SET DR="15////"_$SELECT(PSOUNXLD="":"@",1:PSOUNXLD)
- +18 IF FIELD="REPFRQ"
- SET DR="3///"_PSOREPFQ
- +19 IF FIELD="FILEPFIX"
- SET DR="5////"_$SELECT(PSOPFIX="":"@",1:PSOPFIX)
- +20 IF FIELD="FILEEXT"
- SET DR="6///"_PSOEXT
- +21 IF FIELD="RENAME"
- SET DR="17///"_PSORENAM
- +22 IF FIELD="FTPIP"
- SET DR="7///"_PSOFTPIP
- +23 IF FIELD="FTPUSER"
- SET DR="8///"_PSOFTPUS
- +24 IF FIELD="FTPPORT"
- SET DR="9////"_$SELECT(PSOFTPPN="":"@",1:PSOFTPPN)
- +25 IF FIELD="FTPDIR"
SET DR="10////"_$SELECT(PSOFTPDR="":"@",1:PSOFTPDR)
+26 IF FIELD="TRXMODE"
SET DR="13////"_PSOTXMOD
+27 IF FIELD="SNDPRMT"
SET DR="21////"_PSOSNDPR
+28 SET DIE="^PS(58.41,"
SET DA=STATE
DO ^DIE
+29 QUIT