| 1 | ORDD100 ; slc/dcm - DD entries for file 100 ;06/18/2004  10:00
 | 
|---|
| 2 |  ;;3.0;ORDER ENTRY/RESULTS REPORTING;**27,157,255**;Dec 17, 1997
 | 
|---|
| 3 | SETALL(ORIFN) ; -- set "AC" xref for all actions
 | 
|---|
| 4 |  N ORYD,ORVP,ORSTOP,OR3,ORSTS,ORLOG,ORACT,ORACT0,ORCACT D ORYD
 | 
|---|
| 5 |  S ORVP=$P($G(^OR(100,ORIFN,0)),U,2),ORSTOP=$P($G(^(0)),U,9) Q:'ORVP
 | 
|---|
| 6 |  S OR3=$G(^OR(100,ORIFN,3)),ORSTS=$P(OR3,U,3),ORCACT=$P(OR3,U,7)
 | 
|---|
| 7 |  S ORACT=0 F  S ORACT=$O(^OR(100,ORIFN,8,ORACT)) Q:ORACT'>0  D SET1
 | 
|---|
| 8 |  Q
 | 
|---|
| 9 | SET(ORIFN,ORACT) ; -- set "AC" xref by action
 | 
|---|
| 10 |  N ORYD,ORVP,ORSTOP,OR3,ORSTS,ORLOG,ORACT0,ORCACT D ORYD
 | 
|---|
| 11 |  S ORVP=$P($G(^OR(100,ORIFN,0)),U,2),ORSTOP=$P($G(^(0)),U,9) Q:'ORVP
 | 
|---|
| 12 |  S OR3=$G(^OR(100,ORIFN,3)),ORSTS=$P(OR3,U,3),ORCACT=$P(OR3,U,7)
 | 
|---|
| 13 | SET1 S ORACT0=$G(^OR(100,ORIFN,8,ORACT,0)),ORLOG=$P(ORACT0,U)
 | 
|---|
| 14 |  K ^OR(100,"AC",ORVP,9999999-ORLOG,ORIFN,ORACT) ; reset
 | 
|---|
| 15 |  I ORACT'=ORCACT D  Q  ; not Current action
 | 
|---|
| 16 |  . I $P(ORACT0,U,15)=11 S ^OR(100,"AC",ORVP,9999999-ORLOG,ORIFN,ORACT)="" Q
 | 
|---|
| 17 |  . I ORYD,$P(ORACT0,U,15)=13,ORLOG'<ORYD S ^OR(100,"AC",ORVP,9999999-ORLOG,ORIFN,ORACT)=""
 | 
|---|
| 18 |  . I $P(ORACT0,U,15)="",ORACT=1,$P($G(^OR(100,ORIFN,8,ORCACT,0)),U,2)="RL",$S('ORYD:1,$P($G(^(0)),U,16)<ORYD:1,1:0) S $P(^OR(100,ORIFN,3),U,7)=1,^OR(100,"AC",ORVP,9999999-ORLOG,ORIFN,1)="" ;Replace RL w/NW
 | 
|---|
| 19 |  I ORSTS,ORSTS'=1,ORSTS'=2,ORSTS'=7,ORSTS'=10,ORSTS'=12,ORSTS'=13,ORSTS'=14,ORSTS'=99 S ^OR(100,"AC",ORVP,9999999-ORLOG,ORIFN,ORACT)=""
 | 
|---|
| 20 |  I ORYD,(ORSTS=1!(ORSTS=2)!(ORSTS=7)!(ORSTS=13)),ORSTOP'<ORYD S ^OR(100,"AC",ORVP,9999999-ORLOG,ORIFN,ORACT)=""
 | 
|---|
| 21 |  Q
 | 
|---|
| 22 | KILALL(ORIFN) ; -- kill "AC" xref for all actions
 | 
|---|
| 23 |  N ORVP,ORACT,ORLOG
 | 
|---|
| 24 |  S ORVP=$P($G(^OR(100,ORIFN,0)),U,2),ORACT=0 Q:'ORVP
 | 
|---|
| 25 |  F  S ORACT=$O(^OR(100,ORIFN,8,ORACT)) Q:ORACT'>0  S ORLOG=$P(^(ORACT,0),U) K:ORLOG ^OR(100,"AC",ORVP,9999999-ORLOG,ORIFN,ORACT)
 | 
|---|
| 26 |  Q
 | 
|---|
| 27 | KIL(ORIFN,ORACT) ; -- kill "AC" xref
 | 
|---|
| 28 |  N ORVP,ORLOG
 | 
|---|
| 29 |  S ORVP=$P($G(^OR(100,ORIFN,0)),U,2),ORLOG=$P($G(^(8,ORACT,0)),U) Q:'ORVP
 | 
|---|
| 30 |  K:ORLOG ^OR(100,"AC",ORVP,9999999-ORLOG,ORIFN,ORACT)
 | 
|---|
| 31 |  Q
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 | ORYD ; -- Return Current Orders context hours in ORYD
 | 
|---|
| 34 |  N X,X1,X2,X3,%,%H
 | 
|---|
| 35 |  S ORYD=$$GET^XPAR("SYS","ORPF ACTIVE ORDERS CONTEXT HRS",1,"I")
 | 
|---|
| 36 | YD1 I ORYD S X=$H,X=+X*24+($P(X,",",2)/3600),X2=ORYD,X1=X-X2,X3=X1#24,X1=X1\24,X2=$J(X3*3600,0,0),%H=X1_","_X2 D YMD^%DTC S ORYD=+(X_%)
 | 
|---|
| 37 |  Q
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 | SS ; -- set "AD" xref
 | 
|---|
| 40 |  N ORSTRT S ORSTRT=$P($G(^OR(100,DA,0)),U,8)
 | 
|---|
| 41 |  I ORSTRT,ORSTRT>$$NOW^XLFDT S ^OR(100,"AD",ORSTRT,DA)=""
 | 
|---|
| 42 |  Q
 | 
|---|
| 43 | SK ; -- kill "AD" xref
 | 
|---|
| 44 |  N ORSTRT S ORSTRT=$P($G(^OR(100,DA,0)),U,8)
 | 
|---|
| 45 |  I ORSTRT K ^OR(100,"AD",ORSTRT,DA)
 | 
|---|
| 46 |  Q
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 | WS ; -- set "AW" xref
 | 
|---|
| 49 |  N ORVP,ORDG,ORSTRT,X,X0
 | 
|---|
| 50 |  S X0=$G(^OR(100,DA,0)),ORVP=$P(X0,U,2),ORDG=$P(X0,U,11)
 | 
|---|
| 51 |  S ORSTRT=$P(X0,U,8),X=$S(ORSTRT:ORSTRT,1:9999999)
 | 
|---|
| 52 |  I ORVP,ORDG S ^OR(100,"AW",ORVP,ORDG,X,DA)=""
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 | WK ; -- kill "AW" xref
 | 
|---|
| 55 |  N ORVP,ORDG,ORSTRT,X,X0
 | 
|---|
| 56 |  S X0=$G(^OR(100,DA,0)),ORVP=$P(X0,U,2),ORDG=$P(X0,U,11)
 | 
|---|
| 57 |  S ORSTRT=$P(X0,U,8),X=$S(ORSTRT:ORSTRT,1:9999999)
 | 
|---|
| 58 |  I ORVP,ORDG K ^OR(100,"AW",ORVP,ORDG,X,DA)
 | 
|---|
| 59 |  Q
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 | S1(ORIFN,ORACT,ORVP,ORLOG) ; -- set "AS" xref
 | 
|---|
| 62 |  N OR0 S OR0=$G(^OR(100,ORIFN,8,ORACT,0)) Q:$P(OR0,U,4)'=2  ;unsigned
 | 
|---|
| 63 |  S:'$G(ORLOG) ORLOG=$P(OR0,U) S:'$G(ORVP) ORVP=$P(^OR(100,ORIFN,0),U,2)
 | 
|---|
| 64 |  I ORVP,ORLOG S ^OR(100,"AS",ORVP,9999999-ORLOG,ORIFN,ORACT)=""
 | 
|---|
| 65 |  Q
 | 
|---|
| 66 | S2(ORIFN,ORACT,ORVP,ORLOG) ; -- kill "AS" xref
 | 
|---|
| 67 |  N OR0 S:'$G(ORVP) ORVP=$P(^OR(100,ORIFN,0),U,2)
 | 
|---|
| 68 |  S:'$G(ORLOG) ORLOG=$P($G(^OR(100,ORIFN,8,ORACT,0)),U)
 | 
|---|
| 69 |  I ORLOG,ORVP K ^OR(100,"AS",ORVP,9999999-ORLOG,ORIFN,ORACT)
 | 
|---|
| 70 |  Q
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 | RS(ORIFN,ORACT,ORVP,ORRDT) ; -- set "AR" xref
 | 
|---|
| 73 |  N OR80
 | 
|---|
| 74 |  Q:'$G(ORIFN)  Q:'$G(ORACT)
 | 
|---|
| 75 |  S:'$G(ORVP) ORVP=$P($G(^OR(100,ORIFN,0)),U,2)
 | 
|---|
| 76 |  S OR80=$G(^OR(100,ORIFN,8,ORACT,0))
 | 
|---|
| 77 |  S:'$G(ORRDT) ORRDT=$P(OR80,U,16)
 | 
|---|
| 78 |  I ORVP,ORRDT S ^OR(100,"AR",ORVP,(9999999-ORRDT),ORIFN,ORACT)=""
 | 
|---|
| 79 |  I ORVP'["DPT"!ORRDT="" Q
 | 
|---|
| 80 |  I $P(OR80,U,2)="NW" D PXRMADD(ORIFN,ORVP,ORRDT)
 | 
|---|
| 81 |  Q
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 | PXRMADD(ORIFN,ORVP,ORRDT)   ; -- set "PXRM" xref
 | 
|---|
| 84 |  N DAES,OI,OR0,START,X
 | 
|---|
| 85 |  S DAES(1)=ORIFN
 | 
|---|
| 86 |  S X(1)=ORVP
 | 
|---|
| 87 |  S OR0=^OR(100,ORIFN,0)
 | 
|---|
| 88 |  S START=$P(OR0,U,8)
 | 
|---|
| 89 |  S X(3)=$S(START="":ORRDT,1:START)
 | 
|---|
| 90 |  S X(4)=$P(OR0,U,9)
 | 
|---|
| 91 |  S OI=0 F  S OI=$O(^OR(100,ORIFN,.1,OI)) Q:OI'>0  D
 | 
|---|
| 92 |  . S X(2)=+$G(^(OI,0)),DAES=OI
 | 
|---|
| 93 |  . D SOR^ORPXRM(.X,.DAES)
 | 
|---|
| 94 |  Q
 | 
|---|
| 95 |  ;
 | 
|---|
| 96 | RK(ORIFN,ORACT,ORVP,ORRDT) ; -- kill "AR" xref
 | 
|---|
| 97 |  N OR80
 | 
|---|
| 98 |  Q:'$G(ORIFN)  Q:'$G(ORACT)
 | 
|---|
| 99 |  S:'$G(ORVP) ORVP=$P($G(^OR(100,ORIFN,0)),U,2)
 | 
|---|
| 100 |  S OR80=$G(^OR(100,ORIFN,8,ORACT,0))
 | 
|---|
| 101 |  S:'$G(ORRDT) ORRDT=$P(OR80,U,16)
 | 
|---|
| 102 |  I ORVP,ORRDT K ^OR(100,"AR",ORVP,(9999999-ORRDT),ORIFN,ORACT)
 | 
|---|
| 103 |  I ORVP'["DPT"!ORRDT="" Q
 | 
|---|
| 104 |  I $P(OR80,U,2)="NW" D PXRMKILL(ORIFN,ORVP,ORRDT)
 | 
|---|
| 105 |  Q
 | 
|---|
| 106 |  ;
 | 
|---|
| 107 | PXRMKILL(ORIFN,ORVP,ORRDT)  ; -- kill "PXRM" xref
 | 
|---|
| 108 |  N DAES,OI,OR0,START,X
 | 
|---|
| 109 |  S DAES(1)=ORIFN
 | 
|---|
| 110 |  S X(1)=ORVP
 | 
|---|
| 111 |  S OR0=^OR(100,ORIFN,0)
 | 
|---|
| 112 |  S START=$P(OR0,U,8)
 | 
|---|
| 113 |  S X(3)=$S(START="":ORRDT,1:START)
 | 
|---|
| 114 |  S X(4)=$P(OR0,U,9)
 | 
|---|
| 115 |  S OI=0 F  S OI=$O(^OR(100,ORIFN,.1,OI)) Q:OI'>0  D
 | 
|---|
| 116 |  . S X(2)=+$G(^(OI,0)),DAES=OI
 | 
|---|
| 117 |  . D KOR^ORPXRM(.X,.DAES)
 | 
|---|
| 118 |  Q
 | 
|---|
| 119 |  ;
 | 
|---|
| 120 | VS ; -- set "AEVNT" xref
 | 
|---|
| 121 |  N ORVP,OREVNT
 | 
|---|
| 122 |  S ORVP=$P($G(^OR(100,DA,0)),U,2),OREVNT=$P($G(^(0)),U,17)
 | 
|---|
| 123 |  I ORVP,$L(OREVNT) S ^OR(100,"AEVNT",ORVP,OREVNT,DA)=""
 | 
|---|
| 124 |  Q
 | 
|---|
| 125 |  ;
 | 
|---|
| 126 | VK ; -- kill "AEVNT" xref
 | 
|---|
| 127 |  N ORVP,OREVNT
 | 
|---|
| 128 |  S ORVP=$P($G(^OR(100,DA,0)),U,2),OREVNT=$P($G(^(0)),U,17)
 | 
|---|
| 129 |  I ORVP,$L(OREVNT) K ^OR(100,"AEVNT",ORVP,OREVNT,DA)
 | 
|---|
| 130 |  Q
 | 
|---|
| 131 |  ;
 | 
|---|
| 132 | UP(X) ; -- Convert X to upper case
 | 
|---|
| 133 |  Q $TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
 | 
|---|