Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PSOERPR2

PSOERPR2.m

Go to the documentation of this file.
  1. PSOERPR2 ;BIRM/MFR - eRx Holding Queue Preferences - Single Patient Queue ;08/29/22
  1. ;;7.0;OUTPATIENT PHARMACY;**700,746**;DEC 1997;Build 106
  1. ;
  1. EN ; - Entry Point
  1. N DIR,DIRUT,DIROUT,PSOPRIEN,DA,X,Y
  1. S PSOPRIEN=+$O(^PS(52.35,"B","ERX HOLDING QUEUE PREFERENCES",0)) I 'PSOPRIEN Q
  1. ;
  1. S (PSOCHNG,PSOQUIT)=0 D FULL^VALM1 W !
  1. ;
  1. ; - Reset user/division preferences
  1. I $D(^PS(52.35,PSOPRIEN,"SPV",DUZ)) D
  1. . D DISPLAY
  1. . S DIR("A")=" Delete this saved default view? "
  1. . S DIR(0)="YA",DIR("B")="NO" D ^DIR I $D(DIRUT)!$D(DIROUT) S PSOQUIT=1 Q
  1. . I Y=1 D DELETE,LOAD
  1. . W !
  1. I PSOQUIT Q
  1. ;
  1. LKBKD ; - Look Back Days
  1. K DIR,DIRUT,DIROUT,SAVEX,X,Y
  1. S DIR(0)="52.352,1",DIR("B")=PSOLKBKD
  1. D ^DIR I $D(DIRUT)!$D(DIROUT) G @$$GOTO(X,"LKBKD")
  1. W $S(X>0:" DAYS",1:" (TODAY'S)") S PSOLKBKD=X
  1. D CHANGED("LKBKD",PSOLKBKD)
  1. ;
  1. SRTBY ; - Sort By
  1. K DIR,DIRUT,DIROUT,X,Y
  1. S DIR(0)="52.352,2",DIR("B")=PSOSRTBY
  1. D ^DIR I $D(DIRUT)!$D(DIROUT) G @$$GOTO(X,"SRTBY")
  1. S PSOSRTBY=Y D CHANGED("SRTBY",PSOSRTBY)
  1. ;
  1. ORDER ; - Sort Order
  1. K DIR,DIRUT,DIROUT,X,Y
  1. S DIR(0)="52.352,3",DIR("B")=PSORDER
  1. D ^DIR I $D(DIRUT)!$D(DIROUT) G @$$GOTO(X,"ORDER")
  1. S PSORDER=Y D CHANGED("ORDER",PSORDER)
  1. ;
  1. DETDP ; - Display Details
  1. K DIR,DIRUT,DIROUT,X,Y
  1. S DIR(0)="52.352,4",DIR("B")=$S(PSODETDP:"YES",1:"NO")
  1. D ^DIR I $D(DIRUT)!$D(DIROUT) G @$$GOTO(X,"DETDP")
  1. S PSODETDP=Y D CHANGED("DETDP",PSODETDP)
  1. ;
  1. GRPCS ; - Group By CS/Non-CS
  1. K DIR,DIRUT,DIROUT,X,Y
  1. S DIR(0)="52.352,5",DIR("B")=$S(PSOCSGRP:"YES",1:"NO")
  1. D ^DIR I $D(DIRUT)!$D(DIROUT) G @$$GOTO(X,"GRPCS")
  1. S PSOCSGRP=Y D CHANGED("GRPCS",PSOCSGRP)
  1. ;
  1. ALLST ; - Display All Statuses
  1. K DIR,DIRUT,DIROUT,X,Y
  1. S DIR(0)="52.352,6",DIR("B")=$S(PSOALLST:"YES",1:"NO")
  1. D ^DIR I $D(DIRUT)!$D(DIROUT) G @$$GOTO(X,"ALLST")
  1. S PSOALLST=Y D CHANGED("ALLST",PSOALLST)
  1. ;
  1. EXIT ; Exit
  1. ; - Save view?
  1. I $G(PSOCHNG) D
  1. . W ! S DIR(0)="YA",DIR("B")="NO",DIR("A")="Save as your default view? "
  1. . D ^DIR I $D(DIRUT)!$D(DIROUT)!(Y=0) Q
  1. . D SAVE
  1. ;
  1. S VALMBCK="R"
  1. ;
  1. END Q
  1. ;
  1. DISPLAY ; - Displays the current view
  1. N LN,PSOPRIEN,PRFDAT,PREFS
  1. S PSOPRIEN=+$O(^PS(52.35,"B","ERX HOLDING QUEUE PREFERENCES",0)) I 'PSOPRIEN Q
  1. ;
  1. I $D(^PS(52.35,PSOPRIEN,"SPV",DUZ)) D
  1. . D GETS^DIQ(52.352,DUZ_","_PSOPRIEN_",","1;2;3;4;5;6","IE","PRFDAT")
  1. . M PREFS=PRFDAT(52.352,DUZ_","_PSOPRIEN_",")
  1. . W !?5,"Your saved default view:"
  1. . S $P(LN,"-",24)="" W !?5,LN
  1. . W !?5,"LOOK BACK DAYS : ",$G(PREFS(1,"E"))," DAYS"
  1. . W !?5,"SORT BY : ",$G(PREFS(2,"E"))
  1. . W !?5,"SORT ORDER : ",$G(PREFS(3,"E"))
  1. . W !?5,"DISPLAY DETAILS : ",$G(PREFS(4,"E"))
  1. . W !?5,"GROUP BY CS/NON-CS : ",$G(PREFS(5,"E"))
  1. . W !?5,"INCLUDE ALL STATUSES: ",$G(PREFS(6,"E"))
  1. . W !
  1. Q
  1. ;
  1. GOTO(INPUT,HOME) ; - Directed up-arrow
  1. N GOTO,TAG,TRGT
  1. I $P(INPUT,"^",2)="" S PSOQUIT=1 Q "EXIT"
  1. ;
  1. S TRGT=$P(INPUT,"^",2)
  1. S TAG("LOOK BACK DAYS")="LKBKD"
  1. S TAG("SORT BY")="SRTBY"
  1. S TAG("SORT ORDER")="ORDER"
  1. S TAG("DISPLAY DETAILS")="DETDP"
  1. S TAG("GROUP BY STATUS")="GRPCS"
  1. S TAG("INCLUDE ALL STATUSES")="ALLST"
  1. ;
  1. S GOTO=HOME
  1. S TAG="" F S TAG=$O(TAG(TAG)) Q:TAG="" I $E(TAG,1,$L(TRGT))=TRGT S GOTO=TAG(TAG) Q
  1. I GOTO=HOME W " ??",$C(7)
  1. ;
  1. Q GOTO
  1. ;
  1. LOAD ; Loading Factory/Division/User preferences for Single Patient View
  1. ;Output: PSOLKBKD - Look Back Days
  1. ; PSOSRTBY - Sort By
  1. ; PSORDER - Sort Order ("A":Asc,"D":Desc)
  1. ; PSODETDP - Display Details (1:ON/0:OFF)
  1. ; PSOCSGRP - Group by Status (1:ON/0:OFF)
  1. ; PSOALLST - Include All Statuses (1:ON/0:OFF)
  1. ; - 'Factory' Defaults
  1. I $G(RESETLBD)!'$G(PSOLKBKD)!($G(PSOSTFLT)="WP") D
  1. . S PSOLKBKD=365
  1. . I $$GET1^DIQ(59,PSOSITE,10.2) S PSOLKBKD=$$GET1^DIQ(59,PSOSITE,10.2)
  1. S PSOSRTBY="RE",PSORDER="A",PSOALLST=0,(PSOCSGRP,PSODETDP)=0
  1. ;
  1. N PSOPRIEN
  1. S PSOPRIEN=+$O(^PS(52.35,"B","ERX HOLDING QUEUE PREFERENCES",0)) I 'PSOPRIEN Q
  1. ;
  1. ; - User's preferences
  1. I $D(^PS(52.35,PSOPRIEN,"SPV",DUZ,0)) D SET Q
  1. ;
  1. Q
  1. ;
  1. CHANGED(FIELD,VALUE) ; - Sets PSOCHNG so the list can be refreshed
  1. ; FIELD - Field to be checked if was changed/edited
  1. ; VALUE - New Value for the field
  1. I $G(PSOCHNG) Q
  1. ;
  1. N PSOPRIEN,PRFDAT,PREFS
  1. S PSOPRIEN=+$O(^PS(52.35,"B","ERX HOLDING QUEUE PREFERENCES",0)) I 'PSOPRIEN Q
  1. ; - Saved User's preferences
  1. D GETS^DIQ(52.352,DUZ_","_PSOPRIEN_",","1;2;3;4;5;6","IE","PRFDAT")
  1. M PREFS=PRFDAT(52.352,DUZ_","_PSOPRIEN_",")
  1. ;
  1. I FIELD="LKBKD",VALUE'=$G(PREFS(1,"I")) S PSOCHNG=1 Q
  1. I FIELD="SRTBY",VALUE'=$G(PREFS(2,"I")) S PSOCHNG=1 Q
  1. I FIELD="ORDER",VALUE'=$G(PREFS(3,"I")) S PSOCHNG=1 Q
  1. I FIELD="DETDP",VALUE'=$G(PREFS(4,"I")) S PSOCHNG=1 Q
  1. I FIELD="GRPCS",VALUE'=$G(PREFS(5,"I")) S PSOCHNG=1 Q
  1. I FIELD="ALLST",VALUE'=$G(PREFS(6,"I")) S PSOCHNG=1 Q
  1. ;
  1. Q
  1. ;
  1. SET ; Sets Preferences Variables
  1. N PSOPRIEN,PRFDAT,PREFS
  1. S PSOPRIEN=+$O(^PS(52.35,"B","ERX HOLDING QUEUE PREFERENCES",0)) I 'PSOPRIEN Q
  1. D GETS^DIQ(52.352,DUZ_","_PSOPRIEN_",","1;2;3;4;5;6","I","PRFDAT")
  1. M PREFS=PRFDAT(52.352,DUZ_","_PSOPRIEN_",")
  1. I $G(PSOSTFLT)'="WP",$G(RESETLBD) S X=$G(PREFS(1,"I")) I X'="" S PSOLKBKD=X
  1. S X=$G(PREFS(2,"I")) I X'="" S PSOSRTBY=X
  1. S X=$G(PREFS(3,"I")) I X'="" S PSORDER=X
  1. S X=$G(PREFS(4,"I")) I X'="" S PSODETDP=X
  1. S X=$G(PREFS(5,"I")) I X'="" S PSOCSGRP=X
  1. S X=$G(PREFS(6,"I")) I X'="" S PSOALLST=X
  1. Q
  1. ;
  1. SAVE ; - Saves User's Preferences
  1. N DIE,DR,DA,PSOPRIEN
  1. ;
  1. S PSOPRIEN=+$O(^PS(52.35,"B","ERX HOLDING QUEUE PREFERENCES",0)) I 'PSOPRIEN Q
  1. ;
  1. W !!,"Saving..."
  1. ;
  1. I '$D(^PS(52.35,PSOPRIEN,"SPV",DUZ,0)) D
  1. . N %,DIC,DR,DA,X,DINUM,DLAYGO,DD,DO
  1. . S DIC="^PS(52.35,"_PSOPRIEN_",""SPV"","
  1. . S DA(1)=PSOPRIEN,(DINUM,X)=DUZ,DIC(0)=""
  1. . K DD,DO D FILE^DICN K DD,DO
  1. ;
  1. S DR="1///"_PSOLKBKD_";2///"_PSOSRTBY_";3///"_PSORDER
  1. S DR=DR_";4///"_PSODETDP_";5///"_PSOCSGRP_";6///"_PSOALLST
  1. ;
  1. S DIE="^PS(52.35,"_PSOPRIEN_",""SPV"",",DA(1)=PSOPRIEN,DA=DUZ
  1. D ^DIE H 1 W "OK!" H .5
  1. Q
  1. ;
  1. DELETE ; - Deletes user/division preferences
  1. N DIK,DA,DIE,DR
  1. ;
  1. W !!,"Deleting..."
  1. ;
  1. S DIK="^PS(52.35,"_PSOPRIEN_",""SPV"",",DA(1)=PSOPRIEN,DA=DUZ
  1. D ^DIK H 1 W "OK!"
  1. Q