SROATMIT ;BIR/MAM - STUFF TRANMISSION IN ^TMP ;03/22/06
;;3.0; Surgery ;**18,27,38,55,62,68,153**;24 Jun 93;Build 11
;** NOTICE: This routine is part of an implementation of a nationally
;** controlled procedure. Local modifications to this routine
;** are prohibited.
;
K ^TMP("SRA",$J),^TMP("SRAMSG",$J),^TMP("SRWL",$J) S SRATOT=0,SRASITE=+$P($$SITE^SROVAR,"^",3),(SRAMNUM,SRACNT)=1
S SRADFN=0 F S SRADFN=$O(^SRF("ARS","N","I",SRADFN)) Q:'SRADFN S SRTN=0 F S SRTN=$O(^SRF("ARS","N","I",SRADFN,SRTN)) Q:'SRTN S SR("RA")=$G(^SRF(SRTN,"RA")) I $P(SR("RA"),"^",2)="N" D CANCHK
S SRADFN=0 F S SRADFN=$O(^SRF("ARS","C","I",SRADFN)) Q:'SRADFN S SRTN=0 F S SRTN=$O(^SRF("ARS","C","I",SRADFN,SRTN)) Q:'SRTN S SR("RA")=$G(^SRF(SRTN,"RA")) D CANCHK
S SRADFN=0 F S SRADFN=$O(^SRF("ARS","N","C",SRADFN)) Q:'SRADFN S SRTN=0 F S SRTN=$O(^SRF("ARS","N","C",SRADFN,SRTN)) Q:'SRTN S SR("RA")=$G(^SRF(SRTN,"RA")) D STUFF
S SRATOTM=SRAMNUM D ^SROATM4
D ^SROATCM
D ^SROATMNO
D WL
I $D(ZTQUEUED) S ZTREQ="@"
Q
STUFF ; stuff entries into ^TMP("SRA"
; check ARS cross-reference
I $P(^SRF(SRTN,"RA"),"^",2)="C" K ^SRF("ARS","N","C",SRADFN,SRTN) K DR S DIE=130,DR="235///C",DA=SRTN D ^DIE K DR Q
I $P(SR("RA"),"^",2)'="N" Q
D CANCHK I 'OK Q
I $P(SR("RA"),"^",6)="N" S ^SRF("ARS","N","C",SRADFN,SRTN)=1 Q
I SRACNT+15>100 S SRACNT=1,SRAMNUM=SRAMNUM+1
S SRATOT=SRATOT+1,X=$E($P(^SRF(SRTN,0),"^",9),1,5)_"00",^TMP("SRWL",$J,X)=""
K SRA,VADM D ^SROATM1 K SHEMP,VADM,SRA
Q
CANCHK ; check to see if case has been cancelled
S OK=1,X=$P($G(^SRF(SRTN,30)),"^") I X S OK=0
S X=$P($G(^SRF(SRTN,31)),"^",8) I X'="" S OK=0
I 'OK K DA,DIE,DR S DA=SRTN,DIE=130,DR="102///@;235///@;284///@;323///@" D ^DIE K DR,DA,DIE
Q
WL ; send workload updates
N SRSEL S SRP=0,SRT=1,X=$$SITE^SROVAR,SRINST=$P(X,"^",2),SRSTATN=+$P(X,"^",3),SRDT=0,SRNOACK=1 D DTCHK
F S SRDT=$O(^TMP("SRWL",$J,SRDT)) Q:'SRDT I SRDT>SRLO S SRSEL=1 D ^SROAWL1
K ^TMP("SRWL",$J),SRLO
Q
DTCHK N X,Y
S X=$E(DT,1,3),Y=+$E(DT,4,7),SRLO=$S(Y<1000:X-2,1:X-1)_"0900"
Q
SROATMIT ;BIR/MAM - STUFF TRANMISSION IN ^TMP ;03/22/06
+1 ;;3.0; Surgery ;**18,27,38,55,62,68,153**;24 Jun 93;Build 11
+2 ;** NOTICE: This routine is part of an implementation of a nationally
+3 ;** controlled procedure. Local modifications to this routine
+4 ;** are prohibited.
+5 ;
+6 KILL ^TMP("SRA",$JOB),^TMP("SRAMSG",$JOB),^TMP("SRWL",$JOB)
SET SRATOT=0
SET SRASITE=+$PIECE($$SITE^SROVAR,"^",3)
SET (SRAMNUM,SRACNT)=1
+7 SET SRADFN=0
FOR
SET SRADFN=$ORDER(^SRF("ARS","N","I",SRADFN))
IF 'SRADFN
QUIT
SET SRTN=0
FOR
SET SRTN=$ORDER(^SRF("ARS","N","I",SRADFN,SRTN))
IF 'SRTN
QUIT
SET SR("RA")=$GET(^SRF(SRTN,"RA"))
IF $PIECE(SR("RA"),"^",2)="N"
DO CANCHK
+8 SET SRADFN=0
FOR
SET SRADFN=$ORDER(^SRF("ARS","C","I",SRADFN))
IF 'SRADFN
QUIT
SET SRTN=0
FOR
SET SRTN=$ORDER(^SRF("ARS","C","I",SRADFN,SRTN))
IF 'SRTN
QUIT
SET SR("RA")=$GET(^SRF(SRTN,"RA"))
DO CANCHK
+9 SET SRADFN=0
FOR
SET SRADFN=$ORDER(^SRF("ARS","N","C",SRADFN))
IF 'SRADFN
QUIT
SET SRTN=0
FOR
SET SRTN=$ORDER(^SRF("ARS","N","C",SRADFN,SRTN))
IF 'SRTN
QUIT
SET SR("RA")=$GET(^SRF(SRTN,"RA"))
DO STUFF
+10 SET SRATOTM=SRAMNUM
DO ^SROATM4
+11 DO ^SROATCM
+12 DO ^SROATMNO
+13 DO WL
+14 IF $DATA(ZTQUEUED)
SET ZTREQ="@"
+15 QUIT
STUFF ; stuff entries into ^TMP("SRA"
+1 ; check ARS cross-reference
+2 IF $PIECE(^SRF(SRTN,"RA"),"^",2)="C"
KILL ^SRF("ARS","N","C",SRADFN,SRTN)
KILL DR
SET DIE=130
SET DR="235///C"
SET DA=SRTN
DO ^DIE
KILL DR
QUIT
+3 IF $PIECE(SR("RA"),"^",2)'="N"
QUIT
+4 DO CANCHK
IF 'OK
QUIT
+5 IF $PIECE(SR("RA"),"^",6)="N"
SET ^SRF("ARS","N","C",SRADFN,SRTN)=1
QUIT
+6 IF SRACNT+15>100
SET SRACNT=1
SET SRAMNUM=SRAMNUM+1
+7 SET SRATOT=SRATOT+1
SET X=$EXTRACT($PIECE(^SRF(SRTN,0),"^",9),1,5)_"00"
SET ^TMP("SRWL",$JOB,X)=""
+8 KILL SRA,VADM
DO ^SROATM1
KILL SHEMP,VADM,SRA
+9 QUIT
CANCHK ; check to see if case has been cancelled
+1 SET OK=1
SET X=$PIECE($GET(^SRF(SRTN,30)),"^")
IF X
SET OK=0
+2 SET X=$PIECE($GET(^SRF(SRTN,31)),"^",8)
IF X'=""
SET OK=0
+3 IF 'OK
KILL DA,DIE,DR
SET DA=SRTN
SET DIE=130
SET DR="102///@;235///@;284///@;323///@"
DO ^DIE
KILL DR,DA,DIE
+4 QUIT
WL ; send workload updates
+1 NEW SRSEL
SET SRP=0
SET SRT=1
SET X=$$SITE^SROVAR
SET SRINST=$PIECE(X,"^",2)
SET SRSTATN=+$PIECE(X,"^",3)
SET SRDT=0
SET SRNOACK=1
DO DTCHK
+2 FOR
SET SRDT=$ORDER(^TMP("SRWL",$JOB,SRDT))
IF 'SRDT
QUIT
IF SRDT>SRLO
SET SRSEL=1
DO ^SROAWL1
+3 KILL ^TMP("SRWL",$JOB),SRLO
+4 QUIT
DTCHK NEW X,Y
+1 SET X=$EXTRACT(DT,1,3)
SET Y=+$EXTRACT(DT,4,7)
SET SRLO=$SELECT(Y<1000:X-2,1:X-1)_"0900"
+2 QUIT