SROUTL ;BIR/ADM - UTILITY ROUTINE ;02/14/07
;;3.0;Surgery;**58,62,69,77,50,88,94,100,129,134,141,142,160,182**;24 Jun 93;Build 49
;
; Reference to $P(^SC(SRLOC,0),"^",17) supported by DBIA #964
;
Q
HDR ; display menu header
Q:'$D(SRSITE)
N DFN,SRCNT,SRNUM,SRSDATE,SRX,Y S (SRCNT,SRX)=0 F S SRX=$O(^SRO(133,SRX)) Q:'SRX I '$P($G(^SRO(133,SRX,0)),"^",21) S SRCNT=SRCNT+1
I SRCNT>1 S SRNUM=$$GET1^DIQ(4,SRSITE("DIV"),99) S Y="Division: "_SRSITE("SITE")_" ("_SRNUM_")" W @IOF,!,?(80-$L(Y)\2),Y
I $G(SRTN) D
.S DFN=$P(^SRF(SRTN,0),"^") D DEM^VADPT S Y=$E($P(^SRF(SRTN,0),"^",9),1,7) X ^DD("DD") S SRSDATE=Y
.W:SRCNT'>1 @IOF W:SRCNT>1 !! W " "_VADM(1)_" ("_VA("PID")_") Case #"_SRTN_" - "_SRSDATE
Q
CLINIC(SRLOC,SRCASE) ; active count clinic screen for cases
N SRCLIN,SRX,SRY,SRZ S SRZ=$S(SRCASE:$P(^SRF(SRCASE,0),U,9),1:DT) D SC I 'SRCLIN Q 0
Q 1
ACTCLIN(SRLOC) ; active count clinic screen
N SRCLIN,SRX,SRY,SRZ S SRZ=DT D SC I 'SRCLIN Q 0
Q 1
SC N SRKL S SRCLIN=1 S SRKL=$$GET1^DIQ(44,SRLOC,2.1) I SRKL'="CLINIC"!($P(^SC(SRLOC,0),"^",17)="Y") S SRCLIN=0 Q
S SRX=$P($G(^SC(SRLOC,"I")),"^") I 'SRX Q
S SRY=$P($G(^SC(SRLOC,"I")),U,2) I SRZ'<SRX,((SRY="")!(SRZ<SRY)) S SRCLIN=0
Q
INOUT ; select in/out-patient status choice for report
K DIR S DIR("A",1)="Print "_$S($D(SRRPT):SRRPT,1:"report")_" for",DIR("A",2)="",DIR("A",5)=" I - Inpatient cases only",DIR("A",4)=" O - Outpatient cases only",DIR("A",3)=" A - All cases"
S DIR("A",6)="",DIR("A")="Select Letter (I, O or A): ",DIR("B")=$S($D(SRB):SRB,1:"A")
S DIR(0)="SAM^A:All Cases;O:Outpatient Cases Only;I:Inpatient Cases Only" D ^DIR K DIR I $D(DTOUT)!$D(DUOUT) S SRSOUT=1 Q
S SRIO=Y
Q
DATE(SRSD,SRED,SRQ) ; starting and ending date utility (pass by reference)
; The following variables are returned
; SRSD - starting date
; SRED - ending date
; SRQ - user interrupt
S (SRSD,SRED,SRQ)=0 W ! F D Q:SRED'<SRSD!SRQ
.K %DT S %DT="AEPX",%DT("A")="Start with Date: " D ^%DT I Y<1 S SRQ=1 Q
.S SRSD=Y
.K %DT S %DT="AEPX",%DT("A")="End with Date: " D ^%DT I Y<1 S SRQ=1 Q
.I Y<SRSD W !!,"The ending date must be later than the starting date.",!
.S SRED=Y
Q
SPEC ; select surgical specialty
W @IOF,! S DIR("?",1)="Enter YES if you would like the report printed for all Surgical Specialties",DIR("?")="or enter NO to select a specific specialty."
S DIR("A")="Do you want the report for all Surgical Specialties ? ",DIR("B")="YES",DIR(0)="YA" D ^DIR K DIR I $D(DTOUT)!$D(DUOUT) S SRSOUT=1 Q
I 'Y W ! K DIC S DIC=137.45,DIC(0)="QEAMZ",DIC("A")="Select Surgical Specialty: ",DIC("S")="I '$P(^(0),""^"",3)" D ^DIC K DIC S:Y<0 SRSOUT=1 Q:Y<0 S SRSPEC=+Y,SRSPECN=$P(Y(0),"^")
Q
PROC ; put procedures and CPT code in array for display
N SRDA,X,Y K SRPROC S K=1,Y=$P(^SRF(SRTN,"OP"),"^",2),Y=$S(Y:$P($$CPT^ICPTCOD(Y),"^",2),1:"???") I Y'="???" D SSPRIN^SROCPT
S X=$P(^SRF(SRTN,"OP"),"^")_$S($G(SRSUPCPT)=1:"",1:" (CPT Code: "_Y_")") I $L(X)<(SRL+1) S SRPROC(K)=X,K=K+1 G OTH
D FORMAT
OTH S SRDA=0 F S SRDA=$O(^SRF(SRTN,13,SRDA)) Q:'SRDA D
.S Y=$P($G(^SRF(SRTN,13,SRDA,2)),"^"),Y=$S(Y:$P($$CPT^ICPTCOD(Y),"^",2),1:"???")
.I Y'="???" D SSOTH^SROCPT
.S X=$P(^SRF(SRTN,13,SRDA,0),"^")_$S($G(SRSUPCPT)=1:"",1:" (CPT Code: "_Y_")")
.I $L(X)<(SRL+1) S SRPROC(K)=X,K=K+1 Q
.D FORMAT
Q
FORMAT I $L(X)>SRL F D I $L(X)<(SRL+1) S SRPROC(K)=X,K=K+1 Q
.F I=0:1:(SRL-1) S J=SRL-I,Y=$E(X,J) I Y=" " S SRPROC(K)=$E(X,1,J-1),X=$E(X,J+1,$L(X)) S K=K+1 Q
Q
DIAG ; check diagnosis input for required space in every 31 characters
Q:$L(X)<31 N SRC,SRBL,SRDIAG,SRFLG
S SRDIAG=X,SRFLG=0 F D Q:SRFLG!($L(SRDIAG)'>30)
.S SRBL=$F(SRDIAG," ") I SRBL>32!('SRBL) S SRFLG=1 K X Q
.S SRDIAG=$E(SRDIAG,SRBL,$L(SRDIAG))
I '$D(X) D
.S SRC(1)="Answer must contain at least one space in every 31 characters of length.",SRC(1,"F")="!!?5",SRC(2)="If you are using a comma (,) to separate information, leave a space after",SRC(2,"F")="!?5"
.S SRC(3)="it. Please re-enter the diagnosis.",SRC(3,"F")="!?5" D EN^DDIOL(.SRC)
Q
LOCK(SRCASE) ;
N D0,SRCONCC,SRLCK,SRNOW,SRNOW1,SRTAG,SRUSER,SRX
S SRNOW=$$NOW^XLFDT,SRNOW1=$$FMADD^XLFDT(SRNOW,,2)
S SRLCK=1,SRTAG="",SRCONCC=$P($G(^SRF(SRCASE,"CON")),"^")
I $$SIGNED^SROESUTL(SRCASE)!$G(SRESIG) D SINED Q SRLCK
L +^XTMP("SRLOCK-"_SRCASE,DUZ,$J):$S($G(DILOCKTM)>0:DILOCKTM,1:3)
E D E1 S SRLCK=0 Q SRLCK
I SRCONCC D
.L +^XTMP("SRLOCK-"_SRCONCC,DUZ,$J):$S($G(DILOCKTM)>0:DILOCKTM,1:3)
.E D S SRLCK=0
..D E2 L -^XTMP("SRLOCK-"_SRCASE,DUZ,$J)
D:SRLCK XTMP
Q SRLCK
E1 S SRUSER="Another person",SRX=$O(^XTMP("SRLOCK-"_SRCASE,0))
I SRX S SRUSER=$P($G(^VA(200,SRX,0)),"^")
D EN^DDIOL(SRUSER_" is editing this case. Please try later.","","!,$C(7)") H 2
Q
E2 S SRUSER="Another person",SRX=$O(^XTMP("SRLOCK-"_SRCONCC,0))
I SRX S SRUSER=$P($G(^VA(200,SRX,0)),"^")
D EN^DDIOL(SRUSER_" is editing the concurrent case. Please try later.","","!,$C(7)") H 2
Q
SINED L +^XTMP("SRLOCK-"_SRCASE):$S($G(DILOCKTM)>0:DILOCKTM,1:3)
E D E1 S SRLCK=0 Q
I SRCONCC D Q:'SRLCK
.L +^XTMP("SRLOCK-"_SRCONCC):$S($G(DILOCKTM)>0:DILOCKTM,1:3)
.E D S SRLCK=0
..D E2 L -^XTMP("SRLOCK-"_SRCASE)
S SRTAG="-Master"
XTMP S ^XTMP("SRLOCK-"_SRCASE,0)=SRNOW1_"^"_SRNOW_"^Surgery Case Lock"_SRTAG_"^"_$J,^XTMP("SRLOCK-"_SRCASE,DUZ,$J)=""
I SRCONCC S ^XTMP("SRLOCK-"_SRCONCC,0)=SRNOW1_"^"_SRNOW_"^Surgery Case Lock"_SRTAG_"^"_$J,^XTMP("SRLOCK-"_SRCONCC,DUZ,$J)=""
Q
UNLOCK(SRCASE) ; apply decremental lock
N SRCC,SRCONCC S SRCONCC=$P($G(^SRF(SRCASE,"CON")),"^")
L -^XTMP("SRLOCK-"_SRCASE),-^XTMP("SRLOCK-"_SRCASE,DUZ,$J) K ^XTMP("SRLOCK-"_SRCASE,DUZ,$J)
I '$O(^XTMP("SRLOCK-"_SRCASE,0))!(($G(^XTMP("SRLOCK-"_SRCASE,0))["-Master")&($P($G(^XTMP("SRLOCK-"_SRCASE,0)),"^",4)=$J)) K ^XTMP("SRLOCK-"_SRCASE)
I SRCONCC D
.L -^XTMP("SRLOCK-"_SRCONCC),-^XTMP("SRLOCK-"_SRCONCC,DUZ,$J) K ^XTMP("SRLOCK-"_SRCONCC,DUZ,$J)
.I '$O(^XTMP("SRLOCK-"_SRCONCC,0))!(($G(^XTMP("SRLOCK-"_SRCONCC,0))["-Master")&($P($G(^XTMP("SRLOCK-"_SRCONCC,0)),"^",4)=$J)) K ^XTMP("SRLOCK-"_SRCONCC)
Q
NOCNT(SRDA) ; screen for active, non-count clinic for this division
N SRDIV,SRKL,SRLOC,SRX,SRY,SRZ
S SRDIV=$P($G(^SRO(133,SRDA,0)),"^"),SRLOC=Y,SRZ=DT
I SRDIV'=$P($G(^SC(SRLOC,0)),"^",4) Q 0
S SRKL=$$GET1^DIQ(44,SRLOC,2.1) I SRKL'="CLINIC" Q 0
I $P(^SC(SRLOC,0),"^",17)'="Y" Q 0
S SRX=$P($G(^SC(SRLOC,"I")),"^") I 'SRX Q 1
S SRY=$P($G(^SC(SRLOC,"I")),U,2) I SRZ'<SRX,((SRY="")!(SRZ<SRY)) Q 0
Q 1
DESC ; output attending code description when doing lookup
N SRX,SRY,SRZ
S SRX=0,SRY=Y F S SRX=$O(^SRO(132.9,SRY,1,SRX)) Q:'SRX S SRZ(SRX)=^SRO(132.9,SRY,1,SRX,0),SRZ(SRX,"F")="!?2"
I $O(SRZ(0)) D EN^DDIOL(.SRZ)
D EN^DDIOL(" ","","!")
Q
TIME ; transform time to date and time
S X=$S(X?1.4N.A!(X?1.2N1":"2N.A):"T@"_X,1:X) S %DT="EXR" D ^%DT S X=Y
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSROUTL 6869 printed Dec 13, 2024@02:46:27 Page 2
SROUTL ;BIR/ADM - UTILITY ROUTINE ;02/14/07
+1 ;;3.0;Surgery;**58,62,69,77,50,88,94,100,129,134,141,142,160,182**;24 Jun 93;Build 49
+2 ;
+3 ; Reference to $P(^SC(SRLOC,0),"^",17) supported by DBIA #964
+4 ;
+5 QUIT
HDR ; display menu header
+1 if '$DATA(SRSITE)
QUIT
+2 NEW DFN,SRCNT,SRNUM,SRSDATE,SRX,Y
SET (SRCNT,SRX)=0
FOR
SET SRX=$ORDER(^SRO(133,SRX))
if 'SRX
QUIT
IF '$PIECE($GET(^SRO(133,SRX,0)),"^",21)
SET SRCNT=SRCNT+1
+3 IF SRCNT>1
SET SRNUM=$$GET1^DIQ(4,SRSITE("DIV"),99)
SET Y="Division: "_SRSITE("SITE")_" ("_SRNUM_")"
WRITE @IOF,!,?(80-$LENGTH(Y)\2),Y
+4 IF $GET(SRTN)
Begin DoDot:1
+5 SET DFN=$PIECE(^SRF(SRTN,0),"^")
DO DEM^VADPT
SET Y=$EXTRACT($PIECE(^SRF(SRTN,0),"^",9),1,7)
XECUTE ^DD("DD")
SET SRSDATE=Y
+6 if SRCNT'>1
WRITE @IOF
if SRCNT>1
WRITE !!
WRITE " "_VADM(1)_" ("_VA("PID")_") Case #"_SRTN_" - "_SRSDATE
End DoDot:1
+7 QUIT
CLINIC(SRLOC,SRCASE) ; active count clinic screen for cases
+1 NEW SRCLIN,SRX,SRY,SRZ
SET SRZ=$SELECT(SRCASE:$PIECE(^SRF(SRCASE,0),U,9),1:DT)
DO SC
IF 'SRCLIN
QUIT 0
+2 QUIT 1
ACTCLIN(SRLOC) ; active count clinic screen
+1 NEW SRCLIN,SRX,SRY,SRZ
SET SRZ=DT
DO SC
IF 'SRCLIN
QUIT 0
+2 QUIT 1
SC NEW SRKL
SET SRCLIN=1
SET SRKL=$$GET1^DIQ(44,SRLOC,2.1)
IF SRKL'="CLINIC"!($PIECE(^SC(SRLOC,0),"^",17)="Y")
SET SRCLIN=0
QUIT
+1 SET SRX=$PIECE($GET(^SC(SRLOC,"I")),"^")
IF 'SRX
QUIT
+2 SET SRY=$PIECE($GET(^SC(SRLOC,"I")),U,2)
IF SRZ'<SRX
IF ((SRY="")!(SRZ<SRY))
SET SRCLIN=0
+3 QUIT
INOUT ; select in/out-patient status choice for report
+1 KILL DIR
SET DIR("A",1)="Print "_$SELECT($DATA(SRRPT):SRRPT,1:"report")_" for"
SET DIR("A",2)=""
SET DIR("A",5)=" I - Inpatient cases only"
SET DIR("A",4)=" O - Outpatient cases only"
SET DIR("A",3)=" A - All cases"
+2 SET DIR("A",6)=""
SET DIR("A")="Select Letter (I, O or A): "
SET DIR("B")=$SELECT($DATA(SRB):SRB,1:"A")
+3 SET DIR(0)="SAM^A:All Cases;O:Outpatient Cases Only;I:Inpatient Cases Only"
DO ^DIR
KILL DIR
IF $DATA(DTOUT)!$DATA(DUOUT)
SET SRSOUT=1
QUIT
+4 SET SRIO=Y
+5 QUIT
DATE(SRSD,SRED,SRQ) ; starting and ending date utility (pass by reference)
+1 ; The following variables are returned
+2 ; SRSD - starting date
+3 ; SRED - ending date
+4 ; SRQ - user interrupt
+5 SET (SRSD,SRED,SRQ)=0
WRITE !
FOR
Begin DoDot:1
+6 KILL %DT
SET %DT="AEPX"
SET %DT("A")="Start with Date: "
DO ^%DT
IF Y<1
SET SRQ=1
QUIT
+7 SET SRSD=Y
+8 KILL %DT
SET %DT="AEPX"
SET %DT("A")="End with Date: "
DO ^%DT
IF Y<1
SET SRQ=1
QUIT
+9 IF Y<SRSD
WRITE !!,"The ending date must be later than the starting date.",!
+10 SET SRED=Y
End DoDot:1
if SRED'<SRSD!SRQ
QUIT
+11 QUIT
SPEC ; select surgical specialty
+1 WRITE @IOF,!
SET DIR("?",1)="Enter YES if you would like the report printed for all Surgical Specialties"
SET DIR("?")="or enter NO to select a specific specialty."
+2 SET DIR("A")="Do you want the report for all Surgical Specialties ? "
SET DIR("B")="YES"
SET DIR(0)="YA"
DO ^DIR
KILL DIR
IF $DATA(DTOUT)!$DATA(DUOUT)
SET SRSOUT=1
QUIT
+3 IF 'Y
WRITE !
KILL DIC
SET DIC=137.45
SET DIC(0)="QEAMZ"
SET DIC("A")="Select Surgical Specialty: "
SET DIC("S")="I '$P(^(0),""^"",3)"
DO ^DIC
KILL DIC
if Y<0
SET SRSOUT=1
if Y<0
QUIT
SET SRSPEC=+Y
SET SRSPECN=$PIECE(Y(0),"^")
+4 QUIT
PROC ; put procedures and CPT code in array for display
+1 NEW SRDA,X,Y
KILL SRPROC
SET K=1
SET Y=$PIECE(^SRF(SRTN,"OP"),"^",2)
SET Y=$SELECT(Y:$PIECE($$CPT^ICPTCOD(Y),"^",2),1:"???")
IF Y'="???"
DO SSPRIN^SROCPT
+2 SET X=$PIECE(^SRF(SRTN,"OP"),"^")_$SELECT($GET(SRSUPCPT)=1:"",1:" (CPT Code: "_Y_")")
IF $LENGTH(X)<(SRL+1)
SET SRPROC(K)=X
SET K=K+1
GOTO OTH
+3 DO FORMAT
OTH SET SRDA=0
FOR
SET SRDA=$ORDER(^SRF(SRTN,13,SRDA))
if 'SRDA
QUIT
Begin DoDot:1
+1 SET Y=$PIECE($GET(^SRF(SRTN,13,SRDA,2)),"^")
SET Y=$SELECT(Y:$PIECE($$CPT^ICPTCOD(Y),"^",2),1:"???")
+2 IF Y'="???"
DO SSOTH^SROCPT
+3 SET X=$PIECE(^SRF(SRTN,13,SRDA,0),"^")_$SELECT($GET(SRSUPCPT)=1:"",1:" (CPT Code: "_Y_")")
+4 IF $LENGTH(X)<(SRL+1)
SET SRPROC(K)=X
SET K=K+1
QUIT
+5 DO FORMAT
End DoDot:1
+6 QUIT
FORMAT IF $LENGTH(X)>SRL
FOR
Begin DoDot:1
+1 FOR I=0:1:(SRL-1)
SET J=SRL-I
SET Y=$EXTRACT(X,J)
IF Y=" "
SET SRPROC(K)=$EXTRACT(X,1,J-1)
SET X=$EXTRACT(X,J+1,$LENGTH(X))
SET K=K+1
QUIT
End DoDot:1
IF $LENGTH(X)<(SRL+1)
SET SRPROC(K)=X
SET K=K+1
QUIT
+2 QUIT
DIAG ; check diagnosis input for required space in every 31 characters
+1 if $LENGTH(X)<31
QUIT
NEW SRC,SRBL,SRDIAG,SRFLG
+2 SET SRDIAG=X
SET SRFLG=0
FOR
Begin DoDot:1
+3 SET SRBL=$FIND(SRDIAG," ")
IF SRBL>32!('SRBL)
SET SRFLG=1
KILL X
QUIT
+4 SET SRDIAG=$EXTRACT(SRDIAG,SRBL,$LENGTH(SRDIAG))
End DoDot:1
if SRFLG!($LENGTH(SRDIAG)'>30)
QUIT
+5 IF '$DATA(X)
Begin DoDot:1
+6 SET SRC(1)="Answer must contain at least one space in every 31 characters of length."
SET SRC(1,"F")="!!?5"
SET SRC(2)="If you are using a comma (,) to separate information, leave a space after"
SET SRC(2,"F")="!?5"
+7 SET SRC(3)="it. Please re-enter the diagnosis."
SET SRC(3,"F")="!?5"
DO EN^DDIOL(.SRC)
End DoDot:1
+8 QUIT
LOCK(SRCASE) ;
+1 NEW D0,SRCONCC,SRLCK,SRNOW,SRNOW1,SRTAG,SRUSER,SRX
+2 SET SRNOW=$$NOW^XLFDT
SET SRNOW1=$$FMADD^XLFDT(SRNOW,,2)
+3 SET SRLCK=1
SET SRTAG=""
SET SRCONCC=$PIECE($GET(^SRF(SRCASE,"CON")),"^")
+4 IF $$SIGNED^SROESUTL(SRCASE)!$GET(SRESIG)
DO SINED
QUIT SRLCK
+5 LOCK +^XTMP("SRLOCK-"_SRCASE,DUZ,$JOB):$SELECT($GET(DILOCKTM)>0:DILOCKTM,1:3)
+6 IF '$TEST
DO E1
SET SRLCK=0
QUIT SRLCK
+7 IF SRCONCC
Begin DoDot:1
+8 LOCK +^XTMP("SRLOCK-"_SRCONCC,DUZ,$JOB):$SELECT($GET(DILOCKTM)>0:DILOCKTM,1:3)
+9 IF '$TEST
Begin DoDot:2
+10 DO E2
LOCK -^XTMP("SRLOCK-"_SRCASE,DUZ,$JOB)
End DoDot:2
SET SRLCK=0
End DoDot:1
+11 if SRLCK
DO XTMP
+12 QUIT SRLCK
E1 SET SRUSER="Another person"
SET SRX=$ORDER(^XTMP("SRLOCK-"_SRCASE,0))
+1 IF SRX
SET SRUSER=$PIECE($GET(^VA(200,SRX,0)),"^")
+2 DO EN^DDIOL(SRUSER_" is editing this case. Please try later.","","!,$C(7)")
HANG 2
+3 QUIT
E2 SET SRUSER="Another person"
SET SRX=$ORDER(^XTMP("SRLOCK-"_SRCONCC,0))
+1 IF SRX
SET SRUSER=$PIECE($GET(^VA(200,SRX,0)),"^")
+2 DO EN^DDIOL(SRUSER_" is editing the concurrent case. Please try later.","","!,$C(7)")
HANG 2
+3 QUIT
SINED LOCK +^XTMP("SRLOCK-"_SRCASE):$SELECT($GET(DILOCKTM)>0:DILOCKTM,1:3)
+1 IF '$TEST
DO E1
SET SRLCK=0
QUIT
+2 IF SRCONCC
Begin DoDot:1
+3 LOCK +^XTMP("SRLOCK-"_SRCONCC):$SELECT($GET(DILOCKTM)>0:DILOCKTM,1:3)
+4 IF '$TEST
Begin DoDot:2
+5 DO E2
LOCK -^XTMP("SRLOCK-"_SRCASE)
End DoDot:2
SET SRLCK=0
End DoDot:1
if 'SRLCK
QUIT
+6 SET SRTAG="-Master"
XTMP SET ^XTMP("SRLOCK-"_SRCASE,0)=SRNOW1_"^"_SRNOW_"^Surgery Case Lock"_SRTAG_"^"_$JOB
SET ^XTMP("SRLOCK-"_SRCASE,DUZ,$JOB)=""
+1 IF SRCONCC
SET ^XTMP("SRLOCK-"_SRCONCC,0)=SRNOW1_"^"_SRNOW_"^Surgery Case Lock"_SRTAG_"^"_$JOB
SET ^XTMP("SRLOCK-"_SRCONCC,DUZ,$JOB)=""
+2 QUIT
UNLOCK(SRCASE) ; apply decremental lock
+1 NEW SRCC,SRCONCC
SET SRCONCC=$PIECE($GET(^SRF(SRCASE,"CON")),"^")
+2 LOCK -^XTMP("SRLOCK-"_SRCASE),-^XTMP("SRLOCK-"_SRCASE,DUZ,$JOB)
KILL ^XTMP("SRLOCK-"_SRCASE,DUZ,$JOB)
+3 IF '$ORDER(^XTMP("SRLOCK-"_SRCASE,0))!(($GET(^XTMP("SRLOCK-"_SRCASE,0))["-Master")&($PIECE($GET(^XTMP("SRLOCK-"_SRCASE,0)),"^",4)=$JOB))
KILL ^XTMP("SRLOCK-"_SRCASE)
+4 IF SRCONCC
Begin DoDot:1
+5 LOCK -^XTMP("SRLOCK-"_SRCONCC),-^XTMP("SRLOCK-"_SRCONCC,DUZ,$JOB)
KILL ^XTMP("SRLOCK-"_SRCONCC,DUZ,$JOB)
+6 IF '$ORDER(^XTMP("SRLOCK-"_SRCONCC,0))!(($GET(^XTMP("SRLOCK-"_SRCONCC,0))["-Master")&($PIECE($GET(^XTMP("SRLOCK-"_SRCONCC,0)),"^",4)=$JOB))
KILL ^XTMP("SRLOCK-"_SRCONCC)
End DoDot:1
+7 QUIT
NOCNT(SRDA) ; screen for active, non-count clinic for this division
+1 NEW SRDIV,SRKL,SRLOC,SRX,SRY,SRZ
+2 SET SRDIV=$PIECE($GET(^SRO(133,SRDA,0)),"^")
SET SRLOC=Y
SET SRZ=DT
+3 IF SRDIV'=$PIECE($GET(^SC(SRLOC,0)),"^",4)
QUIT 0
+4 SET SRKL=$$GET1^DIQ(44,SRLOC,2.1)
IF SRKL'="CLINIC"
QUIT 0
+5 IF $PIECE(^SC(SRLOC,0),"^",17)'="Y"
QUIT 0
+6 SET SRX=$PIECE($GET(^SC(SRLOC,"I")),"^")
IF 'SRX
QUIT 1
+7 SET SRY=$PIECE($GET(^SC(SRLOC,"I")),U,2)
IF SRZ'<SRX
IF ((SRY="")!(SRZ<SRY))
QUIT 0
+8 QUIT 1
DESC ; output attending code description when doing lookup
+1 NEW SRX,SRY,SRZ
+2 SET SRX=0
SET SRY=Y
FOR
SET SRX=$ORDER(^SRO(132.9,SRY,1,SRX))
if 'SRX
QUIT
SET SRZ(SRX)=^SRO(132.9,SRY,1,SRX,0)
SET SRZ(SRX,"F")="!?2"
+3 IF $ORDER(SRZ(0))
DO EN^DDIOL(.SRZ)
+4 DO EN^DDIOL(" ","","!")
+5 QUIT
TIME ; transform time to date and time
+1 SET X=$SELECT(X?1.4N.A!(X?1.2N1":"2N.A):"T@"_X,1:X)
SET %DT="EXR"
DO ^%DT
SET X=Y
+2 QUIT