| 1 | ORX2 ; slc/dcm - OE/RR Patient lock entry points ;4/21/04  09:46
 | 
|---|
| 2 |  ;;3.0;ORDER ENTRY/RESULTS REPORTING;**16,48,158,168,183,190,195**;Dec 17, 1997
 | 
|---|
| 3 | PT1 ;;Entry point to unlock patient when done adding orders - NO LONGER USED
 | 
|---|
| 4 |  ;;Required variable ORVP.
 | 
|---|
| 5 |  Q:'$D(ORVP)  Q:'$L(ORVP)  Q:ORVP'["DPT("
 | 
|---|
| 6 |  D UNLOCK(+ORVP) K ORPTLK,ORELK
 | 
|---|
| 7 |  Q
 | 
|---|
| 8 | LK ;;Entry point for locking patient when updating orders
 | 
|---|
| 9 |  ;;Entry: X=VP to Patient "DFN;DPT("  Exit: Y=1 if lock succeeds
 | 
|---|
| 10 |  Q:'$D(X)  Q:'$L(X)  Q:X'["DPT("  Q:'$D(@("^"_$P(X,";",2)_+X_",0)"))
 | 
|---|
| 11 |  S Y=$$LOCK(+X) Q:Y
 | 
|---|
| 12 |  W !!,$C(7),$P(Y,U,2) D READ
 | 
|---|
| 13 |  S Y=0 K X
 | 
|---|
| 14 |  Q
 | 
|---|
| 15 | ULK ;;Entry point to unlock patient
 | 
|---|
| 16 |  ;;Required variable X=VP to patient.
 | 
|---|
| 17 |  Q:'$D(X)  Q:'$L(X)  Q:X'["DPT("  Q:'$D(@("^"_$P(X,";",2)_+X_",0)"))
 | 
|---|
| 18 |  D UNLOCK(+X)
 | 
|---|
| 19 |  Q
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 | LOCK(DFN) ; -- Lock patient chart (silent)
 | 
|---|
| 22 |  ; Returns 1 if successful, or 0^Message if could not get lock
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  Q:'$G(DFN) "0^Invalid patient" N Y,ORLK,NOW,NOW1
 | 
|---|
| 25 |  S ORLK=$G(^XTMP("ORPTLK-"_DFN,1)) Q:ORLK=(DUZ_U_$J) 1 ;locked
 | 
|---|
| 26 |  L +^XTMP("ORPTLK-"_DFN):1 I '$T S Y="0^"_$S(+ORLK:$P($G(^VA(200,+ORLK,0)),U),1:"Another person")_" is editing orders for this patient." Q Y
 | 
|---|
| 27 |  S NOW=$$NOW^XLFDT,NOW1=$$FMADD^XLFDT(NOW,1)
 | 
|---|
| 28 |  S ^XTMP("ORPTLK-"_DFN,0)=NOW1_U_NOW_"^CPRS Chart Lock",^(1)=DUZ_U_$J
 | 
|---|
| 29 |  Q 1
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 | UNLOCK(DFN) ; -- Unlock patient chart (silent)
 | 
|---|
| 32 |  L -^XTMP("ORPTLK-"_DFN)
 | 
|---|
| 33 |  I $G(^XTMP("ORPTLK-"_DFN,1))=(DUZ_U_$J) K ^XTMP("ORPTLK-"_DFN)
 | 
|---|
| 34 |  Q
 | 
|---|
| 35 |  ;
 | 
|---|
| 36 | INC(IFN) ;Increment zero node on file 100.2
 | 
|---|
| 37 |  N X,X3,X4
 | 
|---|
| 38 |  Q:'$G(IFN) 1 Q:$D(^OR(100.2,IFN)) 1
 | 
|---|
| 39 |  L +^OR(100.2,0):5 I '$T Q 0
 | 
|---|
| 40 |  S:'$D(^OR(100.2,0)) ^(0)="OE/RR PATIENT^100.2P" S X=^(0)
 | 
|---|
| 41 |  S X4=+$P(X,U,4)+1,X3=$S(IFN>$P(X,U,3):IFN,1:$P(X,U,3))
 | 
|---|
| 42 |  S $P(^OR(100.2,0),U,3,4)=X3_U_X4
 | 
|---|
| 43 |  L -^OR(100.2,0)
 | 
|---|
| 44 |  Q 1
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 | LOCK1(ORDER) ; -- Lock ORDER in file #100
 | 
|---|
| 47 |  ; Returns 1 if successful or 0^Message if could not get lock
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 |  N X,Y,NOW,NOW1 I '$G(ORDER) Q "0^Invalid order number"
 | 
|---|
| 50 |  ;DBIA #4001 Private DBIA w CMOP
 | 
|---|
| 51 |  I $D(^XTMP("ORLK-"_ORDER,0)),(^(0)["CPRS/CMOP") Q "0^CMOP Transmission"
 | 
|---|
| 52 |  L +^OR(100,+ORDER):1 I '$T S X=+$G(^XTMP("ORLK-"_+ORDER,1)),Y="0^"_$S(X:$P($G(^VA(200,X,0)),U),1:"Another person")_" is working on this order." Q Y
 | 
|---|
| 53 |  I $P($G(^OR(100,+ORDER,0)),U,12)="I" S Y=+$P($G(^(3)),U,6) I Y,$P($G(^OR(100,Y,3)),U,3)=11 D  Q Y
 | 
|---|
| 54 |  . S X=$S($P(^OR(100,Y,3),U,11)=2:"renewal",1:"edit")
 | 
|---|
| 55 |  . S Y="0^An unreleased "_X_" exists for this order." L -^OR(100,+ORDER)
 | 
|---|
| 56 |  S NOW=$$NOW^XLFDT,NOW1=$$FMADD^XLFDT(NOW,1)
 | 
|---|
| 57 |  S ^XTMP("ORLK-"_+ORDER,0)=NOW1_U_NOW_"^CPRS Order Lock",^(1)=DUZ_U_$J
 | 
|---|
| 58 |  Q 1
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 | UNLK1(ORDER) ; -- Unlock ORDER in file #100
 | 
|---|
| 61 |  ;DBIA #4001 CMOP
 | 
|---|
| 62 |  S ORDER=+ORDER Q:'ORDER
 | 
|---|
| 63 |  I $D(^XTMP("ORLK-"_ORDER,0)),(^(0)["CPRS/CMOP") D  Q
 | 
|---|
| 64 |  . I $J'=$P($G(^XTMP("ORLK-"_ORDER,1)),U,2) Q
 | 
|---|
| 65 |  . L -^OR(100,ORDER) K ^XTMP("ORLK-"_ORDER)
 | 
|---|
| 66 |  L +^OR(100,ORDER):1
 | 
|---|
| 67 |  I '$T Q
 | 
|---|
| 68 |  E  L -^OR(100,ORDER)
 | 
|---|
| 69 |  L -^OR(100,ORDER) K ^XTMP("ORLK-"_ORDER)
 | 
|---|
| 70 |  Q
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 | READ ; -- instead of READ^ORUTL
 | 
|---|
| 73 |  N X,Y,DIR
 | 
|---|
| 74 |  S DIR(0)="EA",DIR("A")="     Press return to continue  "
 | 
|---|
| 75 |  D ^DIR
 | 
|---|
| 76 |  Q
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 | LCKEVT(EVT) ;Function atttempts to lock event, added w/patch 194
 | 
|---|
| 79 |  N J
 | 
|---|
| 80 |  F J=1:1:5 L +^ORE(100.2,EVT,0):1 Q:$T  H 1
 | 
|---|
| 81 |  Q $T
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 | UNLEVT(EVT) ;Unlocks global, added w/patch 195
 | 
|---|
| 84 |  L -^ORE(100.2,EVT,0)
 | 
|---|
| 85 |  Q
 | 
|---|