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

PRCNCMRP.m

Go to the documentation of this file.
  1. PRCNCMRP ;SSI/SEB,ALA-CMR Official Priority Handler ;[ 01/23/97 4:52 PM ]
  1. ;;1.0;Equipment/Turn-In Request;**2,5**;Sep 13, 1996
  1. Q
  1. EN ;Check on entered priority
  1. K:+X'=X!(X>999)!(X<1)!(X?.E1"."1N.N) X
  1. I $G(X)="" Q
  1. ; Check if priority X already exists for this service
  1. D:'$D(PSER) PRIMAX
  1. S PRCNX=$P($G(^PRCN(413,DA,2)),U,18)
  1. I PRCNX'="" K ^PRCN(413,"P",PSER,PRCNX,DA)
  1. K PRCNX
  1. Q:'$D(^PRCN(413,"P",PSER,X))
  1. Q:$D(^PRCN(413,"P",PSER,X,DA))
  1. NEW I
  1. I $D(^PRCN(413,"P",PSER,X)) S START=X D DOWN S DA=ORGDA
  1. K START,ORGDA
  1. Q
  1. DOWN ; Insert this transaction & shift others one priority #
  1. W !!,"Reprioritizing this CMR's requests... Hold on..."
  1. D PRIMAX S LPRI=LPRI+1 S ORGDA=DA NEW DA S DA=ORGDA
  1. S ^PRCN(413,"P",PSER,START,ORGDA)=""
  1. S NXPR=START D GETDA
  1. I OTHDA'="",OTHDA'=DA S NXPR=START D GETPR
  1. K OTHDA,DA,NXPR,START,OLDA
  1. Q
  1. XREF ; Special MUMPS cross-reference for priorities
  1. S PRCNX=$G(X)
  1. S X=$P($G(^PRCN(413,DA,2)),U,18)
  1. D:'$D(PSER) PRIMAX
  1. I X="",$G(PRCNX)'="" K ^PRCN(413,"P",PSER,PRCNX,DA),PRCNX Q
  1. XR S STAT=$P(^PRCN(413,DA,0),U,7),SK=0
  1. I STAT<5!(STAT>10) S SK=1
  1. I STAT=31!(STAT=45)!(STAT=3)!(STAT=27) S SK=0
  1. I SK=0 S ^PRCN(413,"P",PSER,X,DA)=""
  1. I SK=1 K ^PRCN(413,"P",PSER,X,DA)
  1. K PSER,SK,STAT
  1. Q
  1. PRIMAX ; Calculate lowest priority. Used in input template, etc.
  1. ; Returns OLDPRI, PSER, SERV, LPRI, and PRIMAX.
  1. S OLDPRI=$P($G(^PRCN(413,DA,2)),U,18),PSER=$P($G(^PRCN(413,DA,0)),U,3)
  1. S (II,PRIMAX)=0 S:PSER'="" SERV=$P(^DIC(49,PSER,0),U)
  1. I PSER'="" F S II=$O(^PRCN(413,"P",PSER,II)) Q:II="" S PRIMAX=PRIMAX+1,LPRI=II
  1. I +OLDPRI'=0 S PRIMAX=+OLDPRI Q
  1. I +OLDPRI=0,$G(LPRI)="" S (PRIMAX,LPRI)=0 Q
  1. I +OLDPRI=0,$G(LPRI)'="" S PRIMAX=LPRI
  1. K II
  1. Q
  1. DPRI ; Display priorities. Called as special help for priority fld.
  1. I $G(SERV)=""!($G(PSER)="") D PRIMAX
  1. W !!,"Priority list for ",SERV,":"
  1. S PRCNI=0 F S PRCNI=$O(^PRCN(413,"P",PSER,PRCNI)) Q:'+PRCNI D
  1. . S J=$O(^PRCN(413,"P",PSER,PRCNI,""))
  1. . I $G(^PRCN(413,J,0))="" K ^PRCN(413,"P",PSER,PRCNI,J) Q
  1. . W !,PRCNI,?8,$P(^PRCN(413,J,0),U),?25,$P(^(0),U,18)
  1. K PRCNI,J
  1. Q
  1. GETPR S NXPR=$O(^PRCN(413,"P",PSER,NXPR))
  1. I NXPR'=(START+1) S NXPR=START+1 D SETDA Q
  1. I NXPR=(START+1) D SETDA S START=NXPR,DA=OTHDA D GETDA G GETPR
  1. Q
  1. SETDA S $P(^PRCN(413,OTHDA,2),U,18)=NXPR,^PRCN(413,"P",PSER,NXPR,OTHDA)=""
  1. K ^PRCN(413,"P",PSER,START,OTHDA)
  1. Q
  1. GETDA S OLDA="" F S OLDA=$O(^PRCN(413,"P",PSER,NXPR,OLDA)) Q:OLDA="" S:OLDA'=DA OTHDA=OLDA
  1. Q