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

ORPARMG1.m

Go to the documentation of this file.
  1. ORPARMG1 ; SPFO/AJB - ListManager Parameter Display for Notifications ;Dec 18, 2019@08:15:15
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**500,518**;Dec 17, 1997;Build 11
  1. ;
  1. ; Global References
  1. ; ^VA(200, ICR 10060
  1. ; External References
  1. ; ^DIC ICR 10006 $$GET1^DIQ ICR 2056 ^DIR ICR 10026
  1. ; EN^VALM ICR 10118 $$SETFLD^VALM1 ICR 10116 $$SETSTR^VALM1 ICR 10116
  1. ; FULL^VALM1 ICR 10116 SET^VALM10 ICR 10117 RE^VALM4 ICR 10120
  1. ; GETLST^XPAR ICR 2263 DISP^XQORM1 ICR 10102 EN^XUTMDEVQ ICR 1519
  1. ; DIV4^XUSER ICR 2343 $$RJ^XLFSTR ICR 10104 $$CJ^XLFSTR ICR 10104
  1. ; $$KSP^XUPARAM ICR 2541
  1. Q
  1. STATUS(VAL) ; evaluates the levels of a notification and returns the status
  1. N ORQ,PKG,SYS,DIV,SRV,TEA,USR,X,Y S ORQ=0
  1. S Y=0 F X="PKG","SYS","DIV","SRV","TEA","USR" D ; set values for each level
  1. . S Y=Y+1,@X=$S($P(VAL,U,Y)="":"N",1:$P(VAL,U,Y))
  1. S VAL="0^OFF no settings found."
  1. I USR="E"!(USR="M") Q "ON User value is "_$S(USR="E":"ENABLED.",1:"MANDATORY.") ; evaluate USER level
  1. I USR="D" S VAL="0^OFF User value is DISABLED"
  1. F X=1:1:$L(TEA,"|") S Y=$P($P(TEA,"|",X),";") D Q:+ORQ ; evaluate TEAM level
  1. . I Y="M" S VAL="1^ON "_$P($P(TEA,"|",X),";",2)_" is MANDATORY." S ORQ=1 Q
  1. . I Y="E",USR'="D" S VAL="1^ON "_$P($P(TEA,"|",X),";",2)_" is ENABLED." S ORQ=1 Q
  1. . I Y="D",USR'="D" S VAL="1^OFF "_$P($P(TEA,"|",X),";",2)_" is DISABLED." Q
  1. Q:+VAL $P(VAL,U,2)
  1. I SRV="M" Q "ON "_$$GET1^DIQ(200,IEN,29,"E")_" service is MANDATORY."
  1. I SRV="E",USR'="D" Q "ON "_$$GET1^DIQ(200,IEN,29,"E")_" service is ENABLED."
  1. I SRV="D",USR'="D" S VAL="0^OFF "_$$GET1^DIQ(200,IEN,29,"E")_" service is DISABLED."
  1. Q:+VAL $P(VAL,U,2) S ORQ=0
  1. F X=1:1:$L(DIV,"|") S Y=$P($P(DIV,"|",X),";") D Q:+ORQ ; evaluate DIVISION level
  1. . I Y="M" S VAL="1^ON "_$P($P(DIV,"|",X),";",2)_" is MANDATORY." S ORQ=1 Q
  1. . I Y="E",USR'="D" S VAL="1^ON "_$P($P(DIV,"|",X),";",2)_" is ENABLED." S ORQ=1 Q
  1. . I Y="D",USR'="D" S VAL="1^OFF "_$P($P(DIV,"|",X),";",2)_" is DISABLED." Q
  1. Q:+VAL $P(VAL,U,2)
  1. I SYS="M" Q "ON System value is MANDATORY."
  1. I SYS="E",USR'="D" Q "ON System value is ENABLED."
  1. I SYS="D",USR'="D" Q "OFF System value is DISABLED."
  1. I PKG="M" Q "ON Package value is MANDATORY."
  1. I PKG="E",USR'="D" Q "ON Packagae value is ENABLED."
  1. I PKG="D",USR'="D" Q "OFF Package value is DISABLED."
  1. Q "OFF no values found."
  1. OUTPUT ; display output for detailed view
  1. N DIV,END,LN,NOT,NOTIFS,NUM,SVS,TM,X,Y
  1. S (TM,X)=0 F S TM=$O(^OR(100.21,"C",IEN,TM)) Q:'+TM S X=X+1,TM(X)=TM_";"_$$GET1^DIQ(100.21,TM,.01) ; get user team(s)
  1. S TM=X ; number of teams for user
  1. S SVS=$$GET1^DIQ(200,IEN,29,"I") ; get user service
  1. S DIV=$$DIV4^XUSER(.DIV,IEN) ; get user division(s)
  1. S (DIV,X)=0 F S DIV=$O(DIV(DIV)) Q:'+DIV S X=X+1,DIV(X)=DIV_";"_$$GET1^DIQ(4,DIV,.01) K DIV(DIV)
  1. S DIV=X ; number of divisions for user
  1. S LN=0 S LN=LN+1,LN(LN)="Notification List for "_$$GET1^DIQ(200,IEN,.01),LN(LN)=$$CJ^XLFSTR(LN(LN),80),LN=LN+1,LN(LN)=""
  1. I SHOW="C" D
  1. . S LN=LN+1,LN(LN)=$S($E(IOST,1,2)="C-":ORUON,1:"")_"Notification Status Why "_$S($E(IOST,1,2)="C-":ORUOFF,1:"")
  1. . I $E(IOST,1,2)'="C-" S LN=LN+1,LN(LN)="",$P(LN(LN),"-",80)="-"
  1. S NOT="" F S NOT=$O(^ORD(100.9,"B",NOT)) Q:NOT="" S NUM=0 F S NUM=$O(^ORD(100.9,"B",NOT,NUM)) Q:'+NUM D
  1. . I SHOW'="C" D
  1. . . S LN=LN+1,LN(LN)=$S($E(IOST,1,2)="C-":ORUON,1:"")_"Notification"_$$SETSTR^VALM1("USR/TEAM/SRV/DIV/SYS/PKG","",45,24)_$S($E(IOST,1,2)="C-":ORUOFF,1:"")
  1. . . I $E(IOST,1,2)'="C-" S LN=LN+1,LN(LN)="",$P(LN(LN),"-",80)="-" ; add 'underline' for non-display output
  1. . N VAL S VAL=$$GET^XPAR(IEN_";VA(200,","ORB PROCESSING FLAG",NUM,"I") ; user level value
  1. . S $P(NOTIFS,U,6)=VAL ; set user level value
  1. . S LN=LN+1,LN(LN)=NOT S:SHOW'="C" LN(LN)=$$SETSTR^VALM1(VAL,LN(LN),58,$L(VAL))
  1. . S VAL=$$GET^XPAR(SVS_";DIC(49,","ORB PROCESSING FLAG",NUM,"I") ; service level value
  1. . S $P(NOTIFS,U,4)=VAL ; set service level value
  1. . S:SHOW'="C" LN(LN)=$$SETSTR^VALM1(VAL,LN(LN),67,$L(VAL))
  1. . S VAL=$$GET^XPAR("SYS","ORB PROCESSING FLAG",NUM,"I") ; system level value
  1. . S $P(NOTIFS,U,2)=VAL ; set system level value
  1. . S:SHOW'="C" LN(LN)=$$SETSTR^VALM1(VAL,LN(LN),75,$L(VAL))
  1. . S VAL=$$GET^XPAR("PKG","ORB PROCESSING FLAG",NUM,"I") ; package level value
  1. . S $P(NOTIFS,U,1)=VAL ; set package level value
  1. . S:SHOW'="C" LN(LN)=$$SETSTR^VALM1(VAL,LN(LN),79,$L(VAL))
  1. . N CNT I +TM S (CNT,X)=0,Y="" F S X=$O(TM(X)) Q:'+X D S $P(NOTIFS,U,5)=Y
  1. . . S VAL=$$GET^XPAR(+TM(X)_";OR(100.21,","ORB PROCESSING FLAG",NUM,"I") Q:VAL=""&'+SHOW S CNT=CNT+1,$P(Y,"|",X)=VAL_";"_$P(TM(X),";",2)
  1. . . S LN(LN+CNT)=$S(CNT=1:" Team: "_$P(TM(X),";",2),1:" "_$P(TM(X),";",2))
  1. . . S LN(LN+CNT)=$$SETSTR^VALM1(VAL,LN(LN+CNT),63,$L(VAL))
  1. . I +DIV S (CNT(1),X)=0,Y="" F S X=$O(DIV(X)) Q:'+X D S $P(NOTIFS,U,3)=Y
  1. . . S VAL=$$GET^XPAR(+DIV(X)_";DIC(4,","ORB PROCESSING FLAG",NUM,"I") Q:VAL=""&'+SHOW S CNT(1)=CNT(1)+1,$P(Y,"|",X)=VAL_";"_$P(DIV(X),";",2)
  1. . . S LN(LN+CNT(1)+$G(CNT))=$S(CNT(1)=1:" Division: "_$P(DIV(X),";",2),1:" "_$P(DIV(X),";",2))
  1. . . S LN(LN+CNT(1)+$G(CNT))=$$SETSTR^VALM1(VAL,LN(LN+CNT(1)+$G(CNT)),71,$L(VAL))
  1. . I SHOW'="C" S LN="",LN=$O(LN(LN),-1),LN=LN+1,LN(LN)=""
  1. . I SHOW="C" D Q
  1. . . S X=$$STATUS(NOTIFS),Y=$P(X," ",2,99),X=$P(X," ") S X=X_$S(X="ON":" ",1:" ")_Y,X=$TR(X,".","")
  1. . . S LN(LN)=$$SETSTR^VALM1(X,LN(LN),35,$L(X))
  1. . S LN=LN+1,LN(LN)=$$STATUS(NOTIFS),LN(LN+1)="",$P(LN(LN+1),"=",$L(LN(LN)))="="
  1. . S LN(LN)=$$RJ^XLFSTR(LN(LN),80),LN(LN+1)=$$RJ^XLFSTR(LN(LN+1),80),LN=LN+1
  1. . S LN=LN+1,LN(LN)=""
  1. S (END,Y)=0
  1. D:$E(IOST,1,2)="C-" HDR2
  1. F S Y=$O(LN(Y)) Q:'+Y!(+END) D
  1. . D HDR1:$Y+3>IOSL Q:+END W LN(Y),!
  1. Q:+END R:$E(IOST,1,2)="C-" !,"Press <Enter> to continue ",X:DTIME
  1. Q
  1. ADD ;
  1. D FULL^VALM1 W @IOF
  1. N USRLST I +ENT(0)=200 D Q:USRLST'="N"
  1. . S USRLST=$P($$READ("SA^A:All Active CPRS Users;D:DIVISION;S:SERVICE;T:TEAM;N:Nope","Add USERS to the ENTITY List by Team, Service, Division, or ALL? ","NO"),U)
  1. . Q:USRLST="N"
  1. . I USRLST="A" D Q
  1. . . W !,"Adding All Active CPRS Users to the list..."
  1. . . N NAME,IEN S NAME="" F S NAME=$O(^VA(200,"AUSER",NAME)) Q:NAME="" S IEN=0 F S IEN=$O(^VA(200,"AUSER",NAME,IEN)) Q:'+IEN D
  1. . . . I +$$SCREEN(IEN) S ENTRIES(NAME,IEN)=""
  1. . . D INIT,RE^VALM4
  1. . I USRLST="D"!(USRLST="S") D Q
  1. . . N DIC,VAL S DIC=$S(USRLST="D":"^DIC(4,",1:"^DIC(49,"),DIC(0)="AEMQ"
  1. . . W ! S VAL=$$DIC(.DIC) Q:'+VAL
  1. . . D FIND($S(USRLST="D":"^VA(200,""AH"")",1:"^VA(200,""E"")"),+VAL)
  1. . . D INIT,RE^VALM4
  1. . I USRLST="T" D Q
  1. . . N DIC,VAL S DIC="^OR(100.21,",DIC(0)="AEMQ"
  1. . . W ! S VAL=$$DIC(.DIC) Q:'+VAL
  1. . . D FIND("^OR(100.21,"_+VAL_")",1)
  1. . . D INIT,RE^VALM4
  1. N DIC,POP,X,Y S DIC=ENT(1),DIC(0)="AEMQ" F W ! S Y=$$DIC(.DIC) Q:Y=-1 S ENTRIES($P(Y,U,2),+Y)=""
  1. D INIT,RE^VALM4
  1. Q
  1. DIC(DIC) ;
  1. N POP,X,Y
  1. D ^DIC
  1. Q Y
  1. FIND(GBL,IEN) ; File #200 Only
  1. N X,Y S X=0 F S X=$O(@GBL@(IEN,X)) Q:'+X S ENTRIES($$GET1^DIQ(200,X,.01),X)=""
  1. Q
  1. DETV ; detailed view of notifications a user can receive
  1. W @IOF
  1. N DIC,IEN,ORUON,ORUOFF,POP,SHOW,X,Y,ZTSAVE
  1. S DIC="^VA(200,",DIC(0)="AEMQ",DIC("A")="Enter NEW PERSON: ",DIC("B")=DUZ D ^DIC Q:Y=-1 S IEN=+Y ; get user to evaluate
  1. W ! S SHOW=$P($$READ("SA^C:Condensed;D:Detailed;B:Basic","Condensed, Detailed, or Basic Report? ","B"),U) S:SHOW="D" SHOW=1
  1. D PREP^XGF S ORUON=IOUON,ORUOFF=IOUOFF S ZTSAVE("ORUON")="",ZTSAVE("ORUFF")="" D CLEAN^XGF
  1. S ZTSAVE("IEN")="",ZTSAVE("SHOW")=""
  1. D EN^XUTMDEVQ("OUTPUT^ORPARMG1","",.ZTSAVE)
  1. Q
  1. HDR1 ;
  1. I $E(IOST,1,2)="C-" D
  1. . R !,"Press <ENTER> to continue or '^' to exit ",X:DTIME S END='$T!(X=U)
  1. Q:+END
  1. HDR2 W:$E(IOST,1,2)="C-" @IOF Q
  1. REMOVE ;
  1. D FULL^VALM1
  1. N IEN,X
  1. N LVL S LVL="" F S LVL=$O(SEL(LVL)) Q:LVL="" D
  1. . N ERR,IEN,LEN S LEN=$L(SEL(LVL),",")-1
  1. . N J F J=1:1:LEN D
  1. . . S IEN=$O(@VALMAR@("IDX",$P(SEL(LVL),",",J),"")) Q:'+IEN ; error here if no IEN
  1. . . K @VALMAR@("IDX",$P(SEL(LVL),",",J),IEN),ENTRIES($$GET1^DIQ(+ENT(0),IEN,.01),IEN)
  1. S VALMBG=1 D INIT,RE^VALM4
  1. Q
  1. VIEW ;
  1. D FULL^VALM1
  1. N IEN,ORQ,X,Y S ORQ=1
  1. F X=1:1:($L(SEL,",")-1) Q:'+ORQ D
  1. . W @IOF
  1. . S IEN=$O(@VALMAR@("IDX",$P(SEL,",",X),""))
  1. . N LIST D GETLST^XPAR(.LIST,IEN_ENT,+PAR,"E")
  1. . I +ENT(0)=200 N SYSLST D GETLST^XPAR(.SYSLST,SYSTEM,+PAR,"E") D
  1. . . S Y=0 F S Y=$O(SYSLST(Y)) Q:'+Y S SYSLST($P(SYSLST(Y),U))=$P(SYSLST(Y),U,2) K SYSLST(Y)
  1. . W "Detailed settings for: ",$$GET1^DIQ(+ENT(0),IEN,.01)
  1. . W:+ENT(0)=200 !!,IOUON,"Instance",?57,"User [System] ",IOUOFF
  1. . W:+ENT(0)'=200 !!,IOUON,"Instance",?75,"Value",IOUOFF
  1. . ;S Y=0 F S Y=$O(LIST(Y)) Q:'+Y D
  1. . I LIST'<1 F Y=1:1:LIST D
  1. . . S LIST($P(LIST(Y),U))=LIST(Y) K LIST(Y) ; reorder list
  1. . S Y=0 F S Y=$O(LIST(Y)) Q:Y=""!('+ORQ) D
  1. . . N STAT S STAT=$P(LIST(Y),U,2)
  1. . . W !,$P(LIST(Y),U),?$S(+$D(SYSLST):57,1:(IOM-$L($P(LIST(Y),U,2)))),$P(LIST(Y),U,2) W:$D(SYSLST($P(LIST(Y),U))) ?69,"["_SYSLST($P(LIST(Y),U))_"]"
  1. . . I $Y>(IOSL-4) W !,IOCUOFF S ORQ=+$$READ("EA",IORVON_"Press <ENTER> to continue or '^' to exit."_IORVOFF) Q:'+ORQ W @IOF
  1. . I '+ORQ W IOCUON Q
  1. . F Q:$Y>(IOSL-3) W !
  1. . W IOCUOFF S ORQ=+$$READ("EA",IORVON_"Press <ENTER> to continue or '^' to exit."_IORVOFF) W IOCUON
  1. Q
  1. TEXT(X,Y,Z) ;
  1. S Z=$S($G(Z)="":"",1:Z)
  1. S Y=$S($G(Y)="C":((IOM-$L(X))/2),$G(Y)="R":(IOM-$L(X)),+$G(Y)>0:Y,1:0)
  1. Q $$SETSTR^VALM1(X,Z,Y,$L(X))
  1. ; S DIC="^VA(200,",DIC(0)="AEMQ",DIC("A")="Enter NEW PERSON NAME: ",DIC("S")="I +$$SCREEN^ORNOTN(Y)"
  1. SCREEN(USER) ;
  1. N ORTAB,ORX
  1. S ORX=0,ORX=+$O(^VA(200,USER,"ORD","B",1,ORX)) ; IA# 10060
  1. I ORX=0 Q 0 ; No CPRS Tabs assigned
  1. S ORTAB=$G(^VA(200,USER,"ORD",ORX,0))
  1. I +ORTAB'=1 Q 0 ; check for core tab
  1. I DT<$P(ORTAB,U,2) Q 0 ; check effective date
  1. I +$P(ORTAB,U,3)=0 Q 1 ; check expiration date (not set)
  1. I DT'<$P(ORTAB,U,3) Q 0 ; check expiration date
  1. Q 1
  1. REMALL ;
  1. K @VALMAR,ENTRIES
  1. D INIT,RE^VALM4
  1. Q
  1. ASK ;
  1. N ACT S ACT=$P($$READ("S^REMOVE:Remove Entry;VIEW:View Entry","Select Action",$S($L(SEL,",")>2:"Remove",1:"View")),U)
  1. D:ACT'="" @ACT
  1. Q
  1. HDR ;
  1. S VALMHDR(1)=$P(ENT(0),U,2)_" ["_$P(ENT(0),U,6)_"] List"
  1. S VALMHDR(1)=$$SETSTR^VALM1(VALMHDR(1),"",IOM-$L(VALMHDR(1))/2,$L(VALMHDR(1)))
  1. D XQORM
  1. Q
  1. INIT ;
  1. N IEN,NAME S VALMCNT=0
  1. K @VALMAR
  1. I +$D(ENTRIES) S ENTRIES=0 D
  1. . S NAME="" F S NAME=$O(ENTRIES(NAME)) Q:NAME="" S IEN=0 F S IEN=$O(ENTRIES(NAME,IEN)) Q:'+IEN D
  1. . . N X S ENTRIES=ENTRIES+1,VALMCNT=VALMCNT+1,X=""
  1. . . S X=$$SETFLD^VALM1(VALMCNT,X,"NUMBER")
  1. . . S X=$$SETFLD^VALM1($$GET1^DIQ(+ENT(0),IEN,.01),X,"ENTITY")
  1. . . D SET^VALM10(VALMCNT,X,IEN)
  1. I VALMCNT=0 S VALMCNT=1 D
  1. . D SET^VALM10(1," ",0)
  1. . S X="<NONE>"
  1. . S X=$$SETSTR^VALM1(X,"",(IOM-$L(X))/2,$L(X))
  1. . D SET^VALM10(2,X,0)
  1. . S VALMCNT=0
  1. Q
  1. HELP ;
  1. S X="?" D DISP^XQORM1 W !!
  1. Q
  1. EXIT ;
  1. D XQORM
  1. Q
  1. EXPND ;
  1. Q
  1. XQORM ;
  1. S XQORM("#")=$O(^ORD(101,"B","ORNOT DEFAULT ENTITY SELECTIONS",0))_U_"1:"_VALMCNT
  1. Q
  1. EN ;
  1. D EN^VALM("OR PARAMETER SELECT")
  1. Q
  1. SELECT(ACT) ;
  1. I ACT="REMALL" D @ACT Q
  1. I VALMCNT=0 Q
  1. D FULL^VALM1
  1. N SEL,X,Y
  1. S SEL(0)=$S(VALMCNT=1:"1,",1:$P(XQORNOD(0),"=",2)),SEL=SEL(0) ; if only 1 item in list, make it default SEL
  1. I SEL="" S SEL=$$LOR^ORPARMGR(.SEL) Q:'+SEL
  1. D @ACT
  1. Q
  1. READ(TYPE,PROMPT,DEFAULT,HELP,SCREEN) ;
  1. N DIR,X,Y
  1. S DIR(0)=TYPE
  1. I $D(SCREEN) S DIR("S")=SCREEN
  1. I $G(PROMPT)]"" S DIR("A")=PROMPT
  1. I $G(DEFAULT)]"" S DIR("B")=DEFAULT
  1. I $D(HELP) S DIR("?")=HELP
  1. D ^DIR
  1. I $G(X)="@" S Y="@" Q Y
  1. I Y]"",($L($G(Y),U)'=2) S Y=Y_U_$G(Y(0),Y)
  1. Q Y