SRONAN1 ;BIR/MAM - ANNUAL REPORT NON-O.R. PROCEDURES ;12/16/98 11:46 AM
;;3.0; Surgery ;**50,88,127,142**;24 Jun 93
;
; Reference to ^ECC(723 supported by DBIA #205
;
K ^TMP("SR",$J) S (SRHDR,SRSUMM,SRSOUT)=0,^TMP("SR",$J)=0
F S SRSD=$O(^SRF("AC",SRSD)) Q:'SRSD!(SRSD>SRED) S SROP=0 F S SROP=$O(^SRF("AC",SRSD,SROP)) Q:'SROP I $P($G(^SRF(SROP,"NON")),"^")="Y",$D(^SRF(SROP,0)),$$DIV^SROUTL0(SROP) D SET
S SRSS=0 F S SRSS=$O(^TMP("SR",$J,SRSS)) Q:SRSS=""!SRSOUT D HDR Q:SRSOUT S SRCPT=0 F S SRCPT=$O(^TMP("SR",$J,SRSS,SRCPT)) Q:SRCPT=""!SRSOUT D PRINT
Q:SRSOUT S SRSUMM=1,SRSS="" D HDR Q:SRSOUT
S SRSS=0 F S SRSS=$O(^TMP("SR",$J,SRSS)) Q:SRSS=""!(SRSOUT) D SUM
W:'SRSOUT !!,?9,"TOTAL NON-O.R. PROCEDURES FOR "_SRSITE("SITE")_": "_^TMP("SR",$J)
Q
SET ; set local variables
I $P($G(^SRF(SROP,30)),"^") Q
S SRSS=$P(^SRF(SROP,"NON"),"^",8),SRCPT=$P($G(^SRO(136,SROP,0)),"^",2) I 'SRCPT Q
S SRSPEC=$S(SRSS:$P(^ECC(723,SRSS,0),"^"),1:"SPECIALTY NOT ENTERED")
D CPT,UTIL S SROTH=0 F S SROTH=$O(^SRO(136,SROP,3,SROTH)) Q:'SROTH S SRCPT=$P($G(^SRO(136,SROP,3,SROTH,0)),"^") I SRCPT D CPT,UTIL
Q
UTIL ; set ^TMP("SR",$J
S ^TMP("SR",$J)=^TMP("SR",$J)+1
I '$D(^TMP("SR",$J,SRSPEC)) S ^TMP("SR",$J,SRSPEC)=0
S ^TMP("SR",$J,SRSPEC)=^TMP("SR",$J,SRSPEC)+1
I '$D(^TMP("SR",$J,SRSPEC,SRCPT)) S ^TMP("SR",$J,SRSPEC,SRCPT)=1 Q
S ^TMP("SR",$J,SRSPEC,SRCPT)=^TMP("SR",$J,SRSPEC,SRCPT)+1
Q
CPT ; get procedure name and code
S X=$$CPT^ICPTCOD(SRCPT,$P(SRED,".")),SROPER=$P(X,"^",3),SRCPT=$P(X,"^",2)_" "_SROPER
Q
PRINT ; print CPT info
I $Y+5>IOSL D HDR Q:SRSOUT
W !,SRCPT,?66,^TMP("SR",$J,SRSS,SRCPT)
Q
SUM ; print summary
I $Y+5>IOSL D HDR Q:SRSOUT
W !,SRSS,?42,"TOTAL NON-O.R. PROCEDURES: ",?67,^TMP("SR",$J,SRSS)
Q
HDR1 ; print heading to screen
I SRHDR W !!!!,"Press RETURN to continue, or '^' to quit: " R X:DTIME I '$T!(X["^") S SRSOUT=1 Q
W @IOF,!,?22,"ANNUAL REPORT OF NON-O.R. PROCEDURES" I SRSUMM W !,?27,"SUMMARY OF ALL SPECIALTIES"
W !,?(80-$L(SRFRTO)\2),SRFRTO,! F LINE=1:1:80 W "="
W:'SRSUMM&(SRSS'="") !!,?(80-$L(SRSS)\2),SRSS,! S SRHDR=1
Q
HDR ; print heading
I $D(ZTQUEUED) D ^SROSTOP I SRHALT S SRSOUT=1 Q
I $E(IOST)'="P" D HDR1 Q
W:$Y @IOF W !,?(80-$L(SRINST)\2),SRINST,?65,"REVIEWED BY:",!,?32,"SURGICAL SERVICE",!,?22,"ANNUAL REPORT OF NON-O.R. PROCEDURES",?65,"DATE REVIEWED:"
I SRSUMM W !,?27,"SUMMARY OF ALL SPECIALTIES"
W !,?(80-$L(SRFRTO)\2),SRFRTO I 'SRSUMM W !!,"CPT - PROCEDURE",?30,"SPECIALTY",?65,"TOTAL"
W ! F LINE=1:1:80 W "="
W:'SRSUMM&(SRSS'="") !!,?(80-$L(SRSS)\2),SRSS,! S SRHDR=1
Q
SRONAN1 ;BIR/MAM - ANNUAL REPORT NON-O.R. PROCEDURES ;12/16/98 11:46 AM
+1 ;;3.0; Surgery ;**50,88,127,142**;24 Jun 93
+2 ;
+3 ; Reference to ^ECC(723 supported by DBIA #205
+4 ;
+5 KILL ^TMP("SR",$JOB)
SET (SRHDR,SRSUMM,SRSOUT)=0
SET ^TMP("SR",$JOB)=0
+6 FOR
SET SRSD=$ORDER(^SRF("AC",SRSD))
IF 'SRSD!(SRSD>SRED)
QUIT
SET SROP=0
FOR
SET SROP=$ORDER(^SRF("AC",SRSD,SROP))
IF 'SROP
QUIT
IF $PIECE($GET(^SRF(SROP,"NON")),"^")="Y"
IF $DATA(^SRF(SROP,0))
IF $$DIV^SROUTL0(SROP)
DO SET
+7 SET SRSS=0
FOR
SET SRSS=$ORDER(^TMP("SR",$JOB,SRSS))
IF SRSS=""!SRSOUT
QUIT
DO HDR
IF SRSOUT
QUIT
SET SRCPT=0
FOR
SET SRCPT=$ORDER(^TMP("SR",$JOB,SRSS,SRCPT))
IF SRCPT=""!SRSOUT
QUIT
DO PRINT
+8 IF SRSOUT
QUIT
SET SRSUMM=1
SET SRSS=""
DO HDR
IF SRSOUT
QUIT
+9 SET SRSS=0
FOR
SET SRSS=$ORDER(^TMP("SR",$JOB,SRSS))
IF SRSS=""!(SRSOUT)
QUIT
DO SUM
+10 IF 'SRSOUT
WRITE !!,?9,"TOTAL NON-O.R. PROCEDURES FOR "_SRSITE("SITE")_": "_^TMP("SR",$JOB)
+11 QUIT
SET ; set local variables
+1 IF $PIECE($GET(^SRF(SROP,30)),"^")
QUIT
+2 SET SRSS=$PIECE(^SRF(SROP,"NON"),"^",8)
SET SRCPT=$PIECE($GET(^SRO(136,SROP,0)),"^",2)
IF 'SRCPT
QUIT
+3 SET SRSPEC=$SELECT(SRSS:$PIECE(^ECC(723,SRSS,0),"^"),1:"SPECIALTY NOT ENTERED")
+4 DO CPT
DO UTIL
SET SROTH=0
FOR
SET SROTH=$ORDER(^SRO(136,SROP,3,SROTH))
IF 'SROTH
QUIT
SET SRCPT=$PIECE($GET(^SRO(136,SROP,3,SROTH,0)),"^")
IF SRCPT
DO CPT
DO UTIL
+5 QUIT
UTIL ; set ^TMP("SR",$J
+1 SET ^TMP("SR",$JOB)=^TMP("SR",$JOB)+1
+2 IF '$DATA(^TMP("SR",$JOB,SRSPEC))
SET ^TMP("SR",$JOB,SRSPEC)=0
+3 SET ^TMP("SR",$JOB,SRSPEC)=^TMP("SR",$JOB,SRSPEC)+1
+4 IF '$DATA(^TMP("SR",$JOB,SRSPEC,SRCPT))
SET ^TMP("SR",$JOB,SRSPEC,SRCPT)=1
QUIT
+5 SET ^TMP("SR",$JOB,SRSPEC,SRCPT)=^TMP("SR",$JOB,SRSPEC,SRCPT)+1
+6 QUIT
CPT ; get procedure name and code
+1 SET X=$$CPT^ICPTCOD(SRCPT,$PIECE(SRED,"."))
SET SROPER=$PIECE(X,"^",3)
SET SRCPT=$PIECE(X,"^",2)_" "_SROPER
+2 QUIT
PRINT ; print CPT info
+1 IF $Y+5>IOSL
DO HDR
IF SRSOUT
QUIT
+2 WRITE !,SRCPT,?66,^TMP("SR",$JOB,SRSS,SRCPT)
+3 QUIT
SUM ; print summary
+1 IF $Y+5>IOSL
DO HDR
IF SRSOUT
QUIT
+2 WRITE !,SRSS,?42,"TOTAL NON-O.R. PROCEDURES: ",?67,^TMP("SR",$JOB,SRSS)
+3 QUIT
HDR1 ; print heading to screen
+1 IF SRHDR
WRITE !!!!,"Press RETURN to continue, or '^' to quit: "
READ X:DTIME
IF '$TEST!(X["^")
SET SRSOUT=1
QUIT
+2 WRITE @IOF,!,?22,"ANNUAL REPORT OF NON-O.R. PROCEDURES"
IF SRSUMM
WRITE !,?27,"SUMMARY OF ALL SPECIALTIES"
+3 WRITE !,?(80-$LENGTH(SRFRTO)\2),SRFRTO,!
FOR LINE=1:1:80
WRITE "="
+4 IF 'SRSUMM&(SRSS'="")
WRITE !!,?(80-$LENGTH(SRSS)\2),SRSS,!
SET SRHDR=1
+5 QUIT
HDR ; print heading
+1 IF $DATA(ZTQUEUED)
DO ^SROSTOP
IF SRHALT
SET SRSOUT=1
QUIT
+2 IF $EXTRACT(IOST)'="P"
DO HDR1
QUIT
+3 IF $Y
WRITE @IOF
WRITE !,?(80-$LENGTH(SRINST)\2),SRINST,?65,"REVIEWED BY:",!,?32,"SURGICAL SERVICE",!,?22,"ANNUAL REPORT OF NON-O.R. PROCEDURES",?65,"DATE REVIEWED:"
+4 IF SRSUMM
WRITE !,?27,"SUMMARY OF ALL SPECIALTIES"
+5 WRITE !,?(80-$LENGTH(SRFRTO)\2),SRFRTO
IF 'SRSUMM
WRITE !!,"CPT - PROCEDURE",?30,"SPECIALTY",?65,"TOTAL"
+6 WRITE !
FOR LINE=1:1:80
WRITE "="
+7 IF 'SRSUMM&(SRSS'="")
WRITE !!,?(80-$LENGTH(SRSS)\2),SRSS,!
SET SRHDR=1
+8 QUIT