[613] | 1 | PRCNCMRP ;SSI/SEB,ALA-CMR Official Priority Handler ;[ 01/23/97 4:52 PM ]
|
---|
| 2 | ;;1.0;Equipment/Turn-In Request;**2,5**;Sep 13, 1996
|
---|
| 3 | Q
|
---|
| 4 | EN ;Check on entered priority
|
---|
| 5 | K:+X'=X!(X>999)!(X<1)!(X?.E1"."1N.N) X
|
---|
| 6 | I $G(X)="" Q
|
---|
| 7 | ; Check if priority X already exists for this service
|
---|
| 8 | D:'$D(PSER) PRIMAX
|
---|
| 9 | S PRCNX=$P($G(^PRCN(413,DA,2)),U,18)
|
---|
| 10 | I PRCNX'="" K ^PRCN(413,"P",PSER,PRCNX,DA)
|
---|
| 11 | K PRCNX
|
---|
| 12 | Q:'$D(^PRCN(413,"P",PSER,X))
|
---|
| 13 | Q:$D(^PRCN(413,"P",PSER,X,DA))
|
---|
| 14 | NEW I
|
---|
| 15 | I $D(^PRCN(413,"P",PSER,X)) S START=X D DOWN S DA=ORGDA
|
---|
| 16 | K START,ORGDA
|
---|
| 17 | Q
|
---|
| 18 | DOWN ; Insert this transaction & shift others one priority #
|
---|
| 19 | W !!,"Reprioritizing this CMR's requests... Hold on..."
|
---|
| 20 | D PRIMAX S LPRI=LPRI+1 S ORGDA=DA NEW DA S DA=ORGDA
|
---|
| 21 | S ^PRCN(413,"P",PSER,START,ORGDA)=""
|
---|
| 22 | S NXPR=START D GETDA
|
---|
| 23 | I OTHDA'="",OTHDA'=DA S NXPR=START D GETPR
|
---|
| 24 | K OTHDA,DA,NXPR,START,OLDA
|
---|
| 25 | Q
|
---|
| 26 | XREF ; Special MUMPS cross-reference for priorities
|
---|
| 27 | S PRCNX=$G(X)
|
---|
| 28 | S X=$P($G(^PRCN(413,DA,2)),U,18)
|
---|
| 29 | D:'$D(PSER) PRIMAX
|
---|
| 30 | I X="",$G(PRCNX)'="" K ^PRCN(413,"P",PSER,PRCNX,DA),PRCNX Q
|
---|
| 31 | XR S STAT=$P(^PRCN(413,DA,0),U,7),SK=0
|
---|
| 32 | I STAT<5!(STAT>10) S SK=1
|
---|
| 33 | I STAT=31!(STAT=45)!(STAT=3)!(STAT=27) S SK=0
|
---|
| 34 | I SK=0 S ^PRCN(413,"P",PSER,X,DA)=""
|
---|
| 35 | I SK=1 K ^PRCN(413,"P",PSER,X,DA)
|
---|
| 36 | K PSER,SK,STAT
|
---|
| 37 | Q
|
---|
| 38 | PRIMAX ; Calculate lowest priority. Used in input template, etc.
|
---|
| 39 | ; Returns OLDPRI, PSER, SERV, LPRI, and PRIMAX.
|
---|
| 40 | S OLDPRI=$P($G(^PRCN(413,DA,2)),U,18),PSER=$P($G(^PRCN(413,DA,0)),U,3)
|
---|
| 41 | S (II,PRIMAX)=0 S:PSER'="" SERV=$P(^DIC(49,PSER,0),U)
|
---|
| 42 | I PSER'="" F S II=$O(^PRCN(413,"P",PSER,II)) Q:II="" S PRIMAX=PRIMAX+1,LPRI=II
|
---|
| 43 | I +OLDPRI'=0 S PRIMAX=+OLDPRI Q
|
---|
| 44 | I +OLDPRI=0,$G(LPRI)="" S (PRIMAX,LPRI)=0 Q
|
---|
| 45 | I +OLDPRI=0,$G(LPRI)'="" S PRIMAX=LPRI
|
---|
| 46 | K II
|
---|
| 47 | Q
|
---|
| 48 | DPRI ; Display priorities. Called as special help for priority fld.
|
---|
| 49 | I $G(SERV)=""!($G(PSER)="") D PRIMAX
|
---|
| 50 | W !!,"Priority list for ",SERV,":"
|
---|
| 51 | S PRCNI=0 F S PRCNI=$O(^PRCN(413,"P",PSER,PRCNI)) Q:'+PRCNI D
|
---|
| 52 | . S J=$O(^PRCN(413,"P",PSER,PRCNI,""))
|
---|
| 53 | . I $G(^PRCN(413,J,0))="" K ^PRCN(413,"P",PSER,PRCNI,J) Q
|
---|
| 54 | . W !,PRCNI,?8,$P(^PRCN(413,J,0),U),?25,$P(^(0),U,18)
|
---|
| 55 | K PRCNI,J
|
---|
| 56 | Q
|
---|
| 57 | GETPR S NXPR=$O(^PRCN(413,"P",PSER,NXPR))
|
---|
| 58 | I NXPR'=(START+1) S NXPR=START+1 D SETDA Q
|
---|
| 59 | I NXPR=(START+1) D SETDA S START=NXPR,DA=OTHDA D GETDA G GETPR
|
---|
| 60 | Q
|
---|
| 61 | SETDA S $P(^PRCN(413,OTHDA,2),U,18)=NXPR,^PRCN(413,"P",PSER,NXPR,OTHDA)=""
|
---|
| 62 | K ^PRCN(413,"P",PSER,START,OTHDA)
|
---|
| 63 | Q
|
---|
| 64 | GETDA S OLDA="" F S OLDA=$O(^PRCN(413,"P",PSER,NXPR,OLDA)) Q:OLDA="" S:OLDA'=DA OTHDA=OLDA
|
---|
| 65 | Q
|
---|