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

ORWU.m

Go to the documentation of this file.
  1. ORWU ;SLC/KCM - GENERAL UTILITIES FOR WINDOWS CALLS ;Dec 4, 2023@14:09
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**10,85,132,148,149,187,195,215,243,350,424,377,519,539,405,596,588,608**;Dec 17, 1997;Build 15
  1. ;
  1. ; Reference to ^%ZIS(1 supported by IA #2963
  1. ; Reference to ^%ZIS(2 supported by IA #2964
  1. ; Reference to ^DIC(3.1 supported by IA #1234
  1. ; Reference to ^SC supported by IA #10040
  1. ; Reference to ^VA(200 supported by IA #10060
  1. ; Reference to ^XUSEC( supported by IA #10076
  1. ; Reference to ^%DT supported by IA #10003
  1. ; Reference to WIN^DGPMDDCF supported by IA #1246
  1. ; Reference to FIND^DIC supported by IA #2051
  1. ; Reference to ^DID IN ICR #2052
  1. ; Reference to ^DILFD supported by IA #2055
  1. ; Reference to $$SITE^VASITE supported by IA #10112
  1. ; Reference to ^XLFJSON supported by IA #6682
  1. ; Reference to ^XLFSTR supported by IA #10104
  1. ; Reference to ^XPAR supported by IA #2263
  1. ; Reference to ^XPDUTL supported by IA #10141
  1. ; Reference to ^XQCHK supported by IA #10078
  1. ; Reference to $$KSP^XUPARAM supported by IA #2541
  1. ; Reference to $$PROD^XUPROD supported by IA #4440
  1. ; Reference to ^XUSHSHP supported by IA #10045
  1. ; Reference to $$DECRYP^XUSRB supported by IA #12241
  1. ;
  1. Q
  1. DT(Y,X,%DT) ; Internal Fileman Date/Time
  1. ; change the '00:00' that could be passed so Fileman doesn't reject
  1. I $L($P(X,"@",2)),("00000000"[$TR($P(X,"@",2),":","")) S $P(X,"@",2)="00:00:01"
  1. S %DT=$G(%DT,"TS") D ^%DT K %DT
  1. Q
  1. VALDT(Y,X,%DT) ; Validate date/time
  1. S:'$D(%DT) %DT="TX" D ^%DT
  1. Q
  1. USERINFO(REC) ; Relevant info for current user
  1. ; return DUZ^NAME^USRCLS^CANSIGN^ISPROVIDER^ORDERROLE^NOORDER^DTIME^
  1. ; COUNTDOWN^ENABLEVERIFY^NOTIFYAPPS^MSGHANG^DOMAIN^SERVICE^
  1. ; AUTOSAVE^INITTAB^LASTTAB^WEBACCESS^ALLOWHOLD^ISRPL^RPLLIST^
  1. ; CORTABS^RPTTAB^STANUM^GECSTATUS^PRODACCT^^JOB NUMBER^EVALREMONDIALOG
  1. N X,ORRPL,ORRPL1,ORRPL2,ORTAB,CORTABS,RPTTAB,ORDT,OREFF,OREXP,ORDATEOK
  1. S REC=DUZ_U_$P(^VA(200,DUZ,0),U)
  1. S $P(REC,U,3)=$S($D(^XUSEC("ORES",DUZ)):3,$D(^XUSEC("ORELSE",DUZ)):2,$D(^XUSEC("OREMAS",DUZ)):1,1:0)
  1. S $P(REC,U,4)=$D(^XUSEC("ORES",DUZ))&$D(^XUSEC("PROVIDER",DUZ))
  1. S $P(REC,U,5)=$D(^XUSEC("PROVIDER",DUZ))
  1. S $P(REC,U,6)=$$ORDROLE
  1. S $P(REC,U,7)=$$GET^XPAR("USR^SYS^PKG","ORWOR DISABLE ORDERING",1,"I")
  1. S $P(REC,U,8)=$$GET^XPAR("USR^SYS","ORWOR TIMEOUT CHART",1,"I")
  1. I '$P(REC,U,8),$G(DTIME) S $P(REC,U,8)=DTIME
  1. S $P(REC,U,9)=$$GET^XPAR("USR^SYS^PKG","ORWOR TIMEOUT COUNTDOWN",1,"I")
  1. S X=$$GET^XPAR("USR^SYS^PKG","ORWOR ENABLE VERIFY",1,"I")
  1. S $P(REC,U,10)=$S(X=1:1,X=2:0,1:'$P(REC,U,7))
  1. S $P(REC,U,11)=$$GET^XPAR("USR^SYS^PKG","ORWOR BROADCAST MESSAGES",1,"I")
  1. S $P(REC,U,12)=$$GET^XPAR("USR^SYS^PKG","ORWOR AUTO CLOSE PT MSG",1,"I")
  1. S $P(REC,U,13)=$$KSP^XUPARAM("WHERE") ; domain
  1. S $P(REC,U,14)=+$G(^VA(200,DUZ,5)) ; service/section
  1. S $P(REC,U,15)=$$GET^XPAR("USR^SYS^PKG","ORWOR AUTOSAVE NOTE",1,"I")
  1. S $P(REC,U,16)=$$GET^XPAR("USR^DIV^SYS^PKG","ORCH INITIAL TAB",1,"I")
  1. S $P(REC,U,17)=$$GET^XPAR("USR^DIV^SYS^PKG","ORCH USE LAST TAB",1,"I")
  1. S $P(REC,U,18)=$$GET^XPAR("USR^DIV^SYS^PKG","ORWOR DISABLE WEB ACCESS",1,"I")
  1. S $P(REC,U,19)=$$GET^XPAR("SYS^PKG","ORWOR DISABLE HOLD ORDERS",1,"I")
  1. ; 2 pieces added by PKS on 11/5/2001 for "Reports Only:"
  1. ; IA# 10060 allows read access to ^VA(200 file.
  1. S ORRPL=$G(^VA(200,DUZ,101)) ; RPL node.
  1. S ORRPL1=$P(ORRPL,U)
  1. S $P(REC,U,20)=ORRPL1 ; ISRPL piece.
  1. S ORRPL2=$P(ORRPL,U,2)
  1. S $P(REC,U,21)=ORRPL2 ; RPLLIST piece.
  1. ;
  1. ; Additional pieces for CPRS tabs access:
  1. ; IA# 10060 allows read access to ^VA(200.01013 multiple.
  1. S ORDT=DT ; Today.
  1. S (CORTABS,RPTTAB)=0
  1. S ORRPL=0
  1. F S ORRPL=$O(^VA(200,DUZ,"ORD",ORRPL)) Q:ORRPL<1 D
  1. .S ORTAB=$G(^VA(200,DUZ,"ORD",ORRPL,0))
  1. .I ORTAB="" Q
  1. .S OREFF=$P(ORTAB,U,2)
  1. .S OREXP=$P(ORTAB,U,3)
  1. .S ORTAB=$P(ORTAB,U)
  1. .I ORTAB="" Q
  1. .S ORTAB=$G(^ORD(101.13,ORTAB,0))
  1. .I ORTAB="" Q
  1. .S ORTAB=$P(ORTAB,U)
  1. .I ORTAB="" Q
  1. .S ORTAB=$$UP^XLFSTR(ORTAB)
  1. .S ORDATEOK=1 ; Default.
  1. .I ((OREFF="")!(OREFF>ORDT)) S ORDATEOK=0 ; Eff. date NG.
  1. .I ORDATEOK D
  1. ..I OREXP="" Q ; No exp. date.
  1. ..I (OREXP<ORDT) S ORDATEOK=0 ; Exp. date NG.
  1. ..I (OREXP=ORDT) S ORDATEOK=0 ; Exp. date NG.
  1. .;
  1. .; Set TRUE if OK:
  1. .I ((ORTAB="COR")&(ORDATEOK)) S CORTABS=1
  1. .I ((ORTAB="RPT")&(ORDATEOK)) S RPTTAB=1
  1. ;
  1. ; When done, set all valid tabs for access:
  1. S $P(REC,U,22)=CORTABS ; "Core" tabs.
  1. S $P(REC,U,23)=RPTTAB ; "Reports" tab.
  1. ;
  1. S $P(REC,U,24)=$P($$SITE^VASITE,U,3)
  1. S $P(REC,U,25)=$$GET^XPAR("USR^TEA","PXRM GEC STATUS CHECK",1,"I")
  1. S $P(REC,U,26)=$$PROD^XUPROD
  1. S $P(REC,U,27)=$$GET^XPAR("ALL","OR ONE STEP CLINIC ADMIN OFF",1,"I")
  1. S $P(REC,U,28)=$J
  1. S $P(REC,U,29)=+$$GET^XPAR("USR^SYS","PXRM DIALOG EVAL DEFINITION",1,"I")
  1. Q
  1. ;
  1. HASKEY(VAL,KEY) ; returns TRUE if the user possesses the security key
  1. S VAL=''$D(^XUSEC(KEY,DUZ))
  1. Q
  1. HASOPTN(VAL,OPTION) ; returns TRUE if the user has access to a menu option
  1. S VAL=+$$ACCESS^XQCHK(DUZ,OPTION)
  1. I VAL'>0 S VAL=0
  1. E S VAL=1
  1. Q
  1. NPHASKEY(VAL,NP,KEY) ; returns TRUE if the person has the security key
  1. S VAL=''$D(^XUSEC(KEY,NP))
  1. Q
  1. ORDROLE() ; returns the role a person takes in ordering
  1. ; VAL: 0=nokey, 1=clerk, 2=nurse, 3=physician, 4=student, 5=bad keys
  1. ;I '$G(ORWCLVER) Q 0 ; version of client is too old for ordering
  1. I ($D(^XUSEC("OREMAS",DUZ))+$D(^XUSEC("ORELSE",DUZ))+$D(^XUSEC("ORES",DUZ)))>1 Q 5
  1. I $D(^XUSEC("OREMAS",DUZ)) Q 1 ; clerk
  1. I $D(^XUSEC("ORELSE",DUZ)) Q 2 ; nurse
  1. I $D(^XUSEC("ORES",DUZ)),$D(^XUSEC("PROVIDER",DUZ)) Q 3 ; doctor
  1. I $D(^XUSEC("PROVIDER",DUZ)) Q 4 ; student
  1. Q 0
  1. VALIDSIG(ESOK,X) ; returns TRUE if valid electronic signature
  1. S X=$$DECRYP^XUSRB1(X),ESOK=0 ; network encrypted
  1. D HASH^XUSHSHP
  1. I X=$P($G(^VA(200,+DUZ,20)),U,4) S ESOK=1
  1. Q
  1. TOOLMENU(ORLST) ; returns a list of items for the Tools menu
  1. N ANENT,ORTLST,ORT,ORCNT
  1. S ANENT="PKG"
  1. D GETLST^XPAR(.ORLST,ANENT,"ORWT TOOLS MENU","N")
  1. S ANENT="ALL^"_$S($G(^VA(200,DUZ,5)):"^SRV.`"_+$G(^(5)),1:"")
  1. S ORCNT=$O(ORLST(""),-1)
  1. D GETLST^XPAR(.ORTLST,ANENT,"ORWT TOOLS MENU","N")
  1. S ORT=0 F S ORT=$O(ORTLST(ORT)) Q:'ORT D
  1. . S ORCNT=ORCNT+1
  1. . S ORLST(ORCNT)=ORTLST(ORT)
  1. Q
  1. ACTLOC(LOC) ; Function: returns TRUE if active hospital location
  1. ; IA# 10040.
  1. N D0,X I +$G(^SC(LOC,"OOS")) Q 0 ; screen out OOS entry
  1. S D0=+$G(^SC(LOC,42)) I D0 D WIN^DGPMDDCF Q 'X ; chk out of svc wards
  1. S X=$G(^SC(LOC,"I")) I +X=0 Q 1 ; no inactivate date
  1. I DT>$P(X,U)&($P(X,U,2)=""!(DT<$P(X,U,2))) Q 0 ; chk reactivate date
  1. Q 1 ; must still be active
  1. ;
  1. CLINLOC(Y,FROM,DIR) ; Return a set of clinics from HOSPITAL LOCATION
  1. ; .Y=returned list, FROM=text to $O from, DIR=$O direction,
  1. N I,IEN,CNT S I=0,CNT=44
  1. F Q:I'<CNT S FROM=$O(^SC("B",FROM),DIR) Q:FROM="" D ; IA# 10040.
  1. . S IEN="" F S IEN=$O(^SC("B",FROM,IEN),DIR) Q:'IEN D
  1. . . I ($P($G(^SC(IEN,0)),U,3)'="C")!('$$ACTLOC(IEN)) Q
  1. . . S I=I+1,Y(I)=IEN_"^"_FROM
  1. Q
  1. INPLOC(Y,FROM,DIR) ;Return a set of wards from HOSPITAL LOCATION
  1. ; .Y=returned list, FROM=text to $O from, DIR=$O direction,
  1. N I,IEN,CNT S I=0,CNT=44
  1. F Q:I'<CNT S FROM=$O(^SC("B",FROM),DIR) Q:FROM="" D ; IA# 10040.
  1. . S IEN="" F S IEN=$O(^SC("B",FROM,IEN),DIR) Q:'IEN D
  1. . . I ($P($G(^SC(IEN,0)),U,3)'="W") Q
  1. . . I '$$ACTLOC(IEN) Q
  1. . . S I=I+1,Y(I)=IEN_"^"_FROM
  1. Q
  1. HOSPLOC(Y,FROM,DIR) ; Return a set of locations from HOSPITAL LOCATION
  1. ; .Y=returned list, FROM=text to $O from, DIR=$O direction,
  1. N I,IEN,CNT S I=0,CNT=44
  1. F Q:I'<CNT S FROM=$O(^SC("B",FROM),DIR) Q:FROM="" D ; IA# 10040.
  1. . S IEN="" F S IEN=$O(^SC("B",FROM,IEN),DIR) Q:'IEN D
  1. . . Q:("CW"'[$P($G(^SC(IEN,0)),U,3)!('$$ACTLOC(IEN)))
  1. . . S I=I+1,Y(I)=IEN_"^"_FROM
  1. Q
  1. NEWPERS(ORY,ORFROM,ORDIR,ORKEY,ORDATE,ORVIZ,ORALL,ORPDMP,ORSIM,OREXCLDE,ORNVA) ; Return a set of names from the NEW PERSON file.
  1. S OREXCLDE=$G(OREXCLDE,0) ; DEFAULT value is OFF - exclude users in the user class set in OR CPRS USER CLASS EXCLUDE (additional signers only)
  1. S ORNVA=$G(ORNVA,1) ; DEFAULT is ON - include Non-VA providers
  1. ; * ajb
  1. I $$GET^XPAR("SYS","ORNEWPERS ACTIVE") D Q ; use new entry point^routine only if value is YES (default is YES)
  1. . N I,PARAMS,PRM S PARAMS("HELP")=0,PRM(0)="FROM^DIR^KEY^DATE^RDV^ALL^PDMP^SPN^EXC^NVAP"
  1. . S PRM=$P($P($P($T(NEWPERS),"(",2),")"),",",2,$L($P($P($T(NEWPERS),"(",2),")"))) ; set string of parameters from NEWPERS
  1. . F I=1:1:$L(PRM,",") S PARAMS($P(PRM(0),U,I))=$G(@($P(PRM,",",I))) ; set variables to pass by reference
  1. . D NEWPERSON^ORNEWPERS(.ORY,.PARAMS)
  1. ; * ajb
  1. ; SLC/PKS: Code moved to ORWU1 on 12/3/2002.
  1. ; ORPDMP - filter users that are authorized to make a PDMP query (p519)
  1. D NP1^ORWU1
  1. Q
  1. GBLREF(VAL,FN) ; return global reference for file number
  1. S VAL="" Q:'FN
  1. S VAL=$$ROOT^DILFD(+FN)
  1. ; I $E($RE(VAL))="," S VAL=$E(VAL,1,$L(VAL)-1)_")"
  1. ; I $E($RE(VAL))="(" S VAL=$P(VAL,"(",1)
  1. Q
  1. GENERIC(Y,FROM,DIR,REF) ; Return a set of entries from xref in REF
  1. ; .Y=returned list, FROM=text to $O from, DIR=$O direction,
  1. N I,IEN,CNT S I=0,CNT=44
  1. F Q:I'<CNT S FROM=$O(@REF@(FROM),DIR) Q:FROM="" D
  1. . S IEN="" F S IEN=$O(@REF@(FROM,IEN),DIR) Q:'IEN D
  1. . . S I=I+1,Y(I)=IEN_"^"_FROM
  1. Q
  1. EXTNAME(VAL,IEN,FN) ; return external form of pointer
  1. ; IEN=internal number, FN=file number
  1. N REF S REF=$G(^DIC(FN,0,"GL")),VAL=""
  1. I $L(REF),+IEN S VAL=$P($G(@(REF_IEN_",0)")),U)
  1. Q
  1. PARAM(VAL,APARAM) ; return a parameter value for a user
  1. ; call assumes current user, default entities, single instance
  1. S VAL=$$GET^XPAR("ALL",APARAM,1,"I")
  1. Q
  1. PARAMS(ORLIST,APARAM) ; return a list of parameter values
  1. ; call assumes current user, default entities, multiple instances
  1. D GETLST^XPAR(.ORLIST,"ALL",APARAM,"Q")
  1. Q
  1. DEVICE(Y,FROM,DIR) ; Return a subset of entries from the Device file
  1. ; .LST(n)=IEN;Name^DisplayName^Location^RMar^PLen
  1. ; FROM=text to $O from, DIR=$O direction
  1. N I,IEN,CNT,SHOW,X S I=0,CNT=20
  1. I FROM["<" S FROM=$RE($P($RE(FROM),"< ",2))
  1. F Q:I'<CNT S FROM=$O(^%ZIS(1,"B",FROM),DIR) Q:FROM="" D
  1. . S IEN=0 F S IEN=$O(^%ZIS(1,"B",FROM,IEN)) Q:'IEN D
  1. .. N X0,X1,X90,X91,X95,XTYPE,XSTYPE,XTIME,ORA,ORPX,POP,ORPCNT
  1. .. Q:'$D(^%ZIS(1,IEN,0)) S X0=^(0),X1=$G(^(1)),X90=$G(^(90)),X91=$G(^(91)),X95=$G(^(95)),XSTYPE=$G(^("SUBTYPE")),XTIME=$G(^("TIME")),XTYPE=$G(^("TYPE"))
  1. .. I $E($G(^%ZIS(2,+XSTYPE,0)))'="P" Q ;Printers only
  1. .. S X=$P(XTYPE,"^") I X'="TRM",X'="HG",X'="HFS",X'="CHAN" Q ;Device Types
  1. .. S X=X0 I ($P(X,U,2)="0")!($P(X,U,12)=2) Q ;Queuing allowed
  1. .. S X=+X90 I X,(X'>DT) Q ;Out of Service
  1. .. I XTIME]"" S ORA=$P(XTIME,"^"),ORPX=$P($H,",",2),ORPCNT=ORPX\60#60+(ORPX\3600*100),ORPX=$P(ORA,"-",2) I ORPX'<ORA&(ORPCNT'>ORPX&(ORPCNT'<ORA))!(ORPX<ORA&(ORPCNT'<ORA!(ORPCNT'>ORPX))) Q ;Prohibited Times
  1. .. S POP=0
  1. .. I X95]"" S ORPX=$G(DUZ(0)) I ORPX'="@" S POP=1 F ORA=1:1:$L(ORPX) I X95[$E(ORPX,ORA) S POP=0 Q
  1. .. Q:POP ;Security check
  1. .. S SHOW=$P(X0,U) I SHOW'=FROM S SHOW=FROM_" <"_SHOW_">"
  1. .. S I=I+1,Y(I)=IEN_";"_$P(X0,U)_U_SHOW_U_$P(X1,U)_U_$P(X91,U)_U_$P(X91,U,3)
  1. Q
  1. URGENCY(Y) ; -- retrieve set values from dd for discharge summary urgency
  1. N ORDD,I,X
  1. D FIELD^DID(8925,.09,"","POINTER","ORDD")
  1. F I=1:1 S X=$P(ORDD("POINTER"),";",I) Q:X="" S Y(I)=$TR(X,":","^")
  1. Q
  1. PATCH(VAL,X) ; Return 1 if patch X is installed
  1. S VAL=$$PATCH^XPDUTL(X)
  1. Q
  1. VERSION(VAL,X) ;Return version of package or namespace
  1. S VAL=$$VERSION^XPDUTL(X)
  1. Q
  1. VERSRV(VAL,X,CLVER) ; Return server version of option name
  1. S ORWCLVER=$G(CLVER) ; leave in partition for session
  1. N BADVAL,ORLST
  1. D FIND^DIC(19,"",1,"X",X,1,,,,"ORLST")
  1. I 'ORLST("DILIST",0) S VAL="0.0.0.0" Q
  1. S VAL=ORLST("DILIST","ID",1,1)
  1. S VAL=$P(VAL,"version ",2)
  1. S BADVAL=0
  1. I $P(VAL,".",1)="" S BADVAL=1
  1. I $P(VAL,".",2)="" S BADVAL=1
  1. I $P(VAL,".",3)="" S BADVAL=1
  1. I $P(VAL,".",4)="" S BADVAL=1
  1. I ((BADVAL)!('VAL)!(VAL="")) S VAL="0.0.0.0"
  1. Q
  1. OVERDL(VAL) ;Return parameter value of ORPARAM OVER DATELINE
  1. S VAL=$$GET^XPAR("ALL","ORPARAM OVER DATELINE")
  1. Q
  1. MOBAPP(VAL,ORAPP) ;set ^TMP($J,"OR MOB APP")
  1. S ^TMP($J,"OR MOB APP")=ORAPP
  1. S VAL=1
  1. Q
  1. ;
  1. JSYSPARM(RESULTS,USER) ;
  1. N TEMP
  1. S RESULTS=$NA(^TMP($J,"ORWU SYSPARAM"))
  1. S TEMP("reEvaluateReminders")=+$$GET^XPAR("USR^SYS","PXRM DIALOG EVAL DEFINITION",1,"I")
  1. D ;Copy/Paste Words to Count as a Copy
  1. . N X
  1. . D WRDCOPY^ORWTIU(.X,DUZ(2))
  1. . S TEMP("cpWordCopy")=X
  1. D ;Copy/Paste Percent to Identify a Paste Source
  1. . N X
  1. . D PCTCOPY^ORWTIU(.X,DUZ(2))
  1. . S TEMP("cpPercentCopy")=X
  1. D ;Copy/Paste Allowed to View Paste Information
  1. . N X
  1. . D VIEWCOPY^ORWTIU(.X,DUZ,0,DUZ(2))
  1. . S TEMP("cpViewCopy")=X
  1. D ;Copy/Paste Paste Identifiers
  1. . N X
  1. . D LDCPIDNT^ORWTIU(.X)
  1. . S TEMP("cpIdentifiers")=X
  1. D ;Copy/Paste Apps to Exclude
  1. . N CNT2,ORLIST
  1. . D GETLST^XPAR(.ORLIST,"ALL","ORQQTIU COPY/PASTE EXCLUDE APP","Q")
  1. . S CNT2=""
  1. . F S CNT2=$O(ORLIST(CNT2)) Q:CNT2="" D
  1. . . S TEMP("cpExcludeApps",CNT2,"Name")=$P($G(ORLIST(CNT2)),U,1)
  1. D ;Copy/Paste Notes to Exclude
  1. . N CNT2,ORLIST
  1. . D EXCPLST^ORWTIU(.ORLIST)
  1. . S CNT2=""
  1. . F S CNT2=$O(ORLIST(CNT2)) Q:CNT2="" D
  1. . . S TEMP("cpExcludeNotes",CNT2,"Note")=$P($G(ORLIST(CNT2)),U,1)
  1. S TEMP("cpCopyBufferDisable")=+$$GET^XPAR("PKG","ORQQTIU COPY BUFFER DISABLE",1,"I")
  1. S TEMP("orCPRSExceptionLog","daysToPurge")=+$$GET^XPAR("ALL","OR CPRS EXCEPTION PURGE",1,"I")
  1. S TEMP("orCPRSExceptionLog","enabled")=+$$GET^XPAR("ALL","OR CPRS EXCEPTION LOGGER",1,"I")
  1. S TEMP("orCPRSExceptionLog","activityLogSize")=+$$GET^XPAR("ALL","OR CPRS ACTIVITY LOG SIZE",1,"I")
  1. S TEMP("orCPRSExceptionLog","winMessageLogSize")=+$$GET^XPAR("ALL","OR CPRS WIN MESSAGE LOG SIZE",1,"I")
  1. S TEMP("orCPRSExceptionLog","RPCLogSize")=+$$GET^XPAR("ALL","OR CPRS RPC EXCEPTION LOG SIZE",1,"I")
  1. S TEMP("orCPRSExceptionLog","includeModuleInfo")=+$$GET^XPAR("ALL","OR CPRS EXCEPTION MODULE INFO",1,"I")
  1. D ;CPRS Exception Email
  1. . N CNT2,ORLIST
  1. . D GETLST^XPAR(.ORLIST,"ALL","OR CPRS EXCEPTION EMAIL","Q")
  1. . S CNT2=""
  1. . F S CNT2=$O(ORLIST(CNT2)) Q:CNT2="" D
  1. . . S TEMP("orCPRSExceptionLog","email",CNT2,"Email")=$P($G(ORLIST(CNT2)),U,2)
  1. S TEMP("psoParkOn")=$S($$GET^XPAR("DIV^SYS^PKG","PSO PARK ON",,"E")="YES":"YES",1:"NO") ;Park-a-Prescription Enabled
  1. D SHWOTHER^ORWOTHER(.TEMP,USER)
  1. D GETPAR^ORPDMP(.TEMP,USER)
  1. D GETPAR^ORGMRC(.TEMP,USER)
  1. D GETPAR^ORCDRA(.TEMP,USER)
  1. ;Template Required Fields Identification Disabled
  1. S TEMP("tmRequiredFldsOff")=+$$GET^XPAR("ALL","TIU REQUIRED FIELDS DISABLE",1,"I")
  1. S TEMP("ResponsiveGUI")=$$GET^XPAR("ALL","ORWCH PAUSE INPUT")
  1. D GETSERIES^ORFEDT(.TEMP)
  1. D ACCESS^ORACCESS(.TEMP,USER)
  1. D SIGI^ORWPAR1(.TEMP)
  1. ;D ENCODE^VPRJSON("TEMP","RESULTS","ERROR")
  1. S TEMP("vitals","gmvMetricFirst")=+$$GET^XPAR("ALL","ORQQVI METRIC FIRST",1,"I")
  1. D ENCODE^XLFJSON("TEMP",$NA(^TMP($J,"ORWU SYSPARAM")),"ERROR")
  1. Q
  1. ;
  1. FLDINFO(ORY,FILE,FIELD,FLAGS,ATTRIBS) ; Get field attributes
  1. N IDX,OUT,LINE
  1. D FIELD^DID(FILE,FIELD,FLAGS,ATTRIBS,"OUT","OUT")
  1. S LINE=0,IDX="" F S IDX=$O(OUT(IDX)) Q:IDX="" D
  1. . S LINE=LINE+1,ORY(LINE)=IDX_U_OUT(IDX)
  1. Q