SROADOC1 ;B'HAM ISC/MAM - ANESTHESIA PROV REPORT (CONT); [ 09/07/00 11:24 AM ]
;;3.0; Surgery ;**38,39,53,50,95,151,155**;24 Jun 93
;
; Reference to ^PSS50 supported by DBIA #4533
;
SET ; set and print results
S S(0)=^SRF(SRTN,0),S(.3)=^SRF(SRTN,.3)
S DFN=$P(S(0),"^") D DEM^VADPT S SRDPT=VADM(1),SRSSN=VA("PID"),SRSDATE=$P(S(0),"^",9),SRREL=$P(S(.3),"^",2),SRSUP=$P(S(.3),"^",4),SRASS=$P(S(.3),"^",3),SRCODE=$P(S(.3),"^",6)
S:SRCODE'="" SRCODE=$P(^SRO(132.95,SRCODE,0),"^",2)
S SRANT="" I $D(^SRF(SRTN,.2)) S SRANE1=$P(^(.2),"^"),SRANE2=$P(^(.2),"^",4) I SRANE1,SRANE2 S X1=SRANE2,X=SRANE1 D MINS^SRSUTL2 S SRANT=X
S:SRREL'="" SRREL=$P(^VA(200,SRREL,0),"^") S:$L(SRREL)>15 SRREL=$P(SRREL,",")_","_$E($P(SRREL,",",2)) S:SRSUP'="" SRSUP=$P(^VA(200,SRSUP,0),"^") S:$L(SRSUP)>15 SRSUP=$P(SRSUP,",")_","_$E($P(SRSUP,",",2))
S:SRASS'="" SRASS=$P(^VA(200,SRASS,0),"^") I $L(SRASS)>15 S SRASS=$P(SRASS,",")_","_$E($P(SRASS,",",2))
S SRSDT=$E(SRSDATE,4,5)_"/"_$E(SRSDATE,6,7)
TECH D TECH^SROPRIN S SRAGNT="" I $D(SRZ) D AGENT
ASA S Y=$P($G(^SRF(SRTN,1.1)),"^",3),C=$P(^DD(130,1.13,0),"^",2) D:Y'="" Y^DIQ S SRASA=$P(Y,"-",2,3)
OPS K SROPERS S SROPER=$P(^SRF(SRTN,"OP"),"^"),OPER=0 F S OPER=$O(^SRF(SRTN,13,OPER)) Q:OPER="" D OTHER
K SROPS,MM,MMM S:$L(SROPER)<50 SROPS(1)=SROPER I $L(SROPER)>49 S SROPER=SROPER_" " F M=1:1 D LOOP Q:MMM=""
PRINT ; print results
Q:SRF I $Y+10>IOSL D CODES^SROADOC,PAGE Q:SRF
W !,$E(SRSDATE,4,5)_"/"_$E(SRSDATE,6,7)_"/"_$E(SRSDATE,2,3),?10,$P(SRDPT,",")_", "_$E($P(SRDPT,",",2)),?26,SROPS(1),?76,SRSUP,?93,SRASA,?124,SRCODE
W !,SRTN,?10,VA("PID") W:$D(SROPS(2)) ?26,SROPS(2) W ?76,SRREL,?93,$E(SRTECH,1,20),?120,SRANT_$S(SRANT:" MINS.",1:"")
W ! W:$P($G(^SRF(SRTN,"NON")),"^")="Y" "NON-O.R." W:$D(SROPS(3)) ?26,SROPS(3) W ?76,SRASS,?93,SRAGNT,!
I $D(SROPS(4)) W ?26,SROPS(4),! W:$D(SROPS(5)) ?26,SROPS(5),! I $D(SROPS(6)) W ?26,SROPS(6),!
Q
HDR I $D(ZTQUEUED) D ^SROSTOP I SRHALT S SRF=1 Q
W:$Y @IOF W !,?(132-$L(SRINST)\2),SRINST,?120,"PAGE: "_PAGE,!,?58,"SURGICAL SERVICE",?100,"REVIEWED BY:",!,?53,"ANESTHESIA PROVIDER REPORT",?100,"DATE REVIEWED:"
W !,?(132-$L(SRFRTO)\2),SRFRTO,?100,"DATE PRINTED: "_SRPRINT
W !!,"DATE",?10,"PATIENT",?26,"PROCEDURE(S)",?77,"SUPERVISOR",?96,"ASA CLASS",?111,"LEVEL OF SUPERVISION",!,"CASE #",?12,"ID#",?76,"RELIEF ANESTH",?92,"PRINCIPAL TECHNIQUE",?113,"ELAPSED ANES TIME",!,?76,"ASST ANESTH"
W ?93,"ANESTHESIA AGENT",! F LINE=1:1:132 W "="
S PAGE=PAGE+1 I $D(PRIN) W !!,?2,"***** "_PRIN_" *****",!
Q
PAGE I $E(IOST)'="P" W !!,"Press RETURN to continue, '^' to quit " R ASK:DTIME I '$T!(ASK="^") S SRF=1 Q
D HDR Q
END I $E(IOST)'="P",'SRF W !!,"Press RETURN to continue " R X:DTIME
W:$E(IOST)="P" @IOF I $D(ZTQUEUED) K ^TMP("SR",$J) Q:$G(ZTSTOP) S ZTREQ="@" Q
D ^SRSKILL K SRTN D ^%ZISC W @IOF
Q
OTHER ; other operations
S SRLONG=1 I $L(SROPER)+$L($P(^SRF(SRTN,13,OPER,0),"^"))>250 S SRLONG=0,OPER=999,SROPERS=" ..."
I SRLONG S SROPERS=$P(^SRF(SRTN,13,OPER,0),"^")
S SROPER=SROPER_$S(SROPERS=" ...":SROPERS,1:", "_SROPERS)
Q
AGENT S SRAGNT=$O(^SRF(SRTN,6,SRT,1,0)) Q:SRAGNT="" S SRAGNT=$P(^SRF(SRTN,6,SRT,1,SRAGNT,0),"^") D
.D DATA^PSS50(SRAGNT,,,,,"SRRX") S SRAGNT=$P($G(^TMP($J,"SRRX",SRAGNT,.01)),"^") K ^TMP($J,"SRRX",SRAGNT)
Q
PR S SRSOUT=0 D HDR G END:SRSOUT S PRIN=0
F S PRIN=$O(^TMP("SR",$J,PRIN)) Q:PRIN=""!(SRF) W:$Y+10'>IOSL !!,?2,"***** "_PRIN_" *****",! S DATE=0 F S DATE=$O(^TMP("SR",$J,PRIN,DATE)) Q:'DATE!(SRF) S SRTN=0 F S SRTN=$O(^TMP("SR",$J,PRIN,DATE,SRTN)) Q:'SRTN!(SRF) D SET
I '$D(^TMP("SR",$J)) W $$NODATA^SROUTL0()
F I=$Y:1:(IOSL-8) W !
I 'SRF D CODES^SROADOC
G END
LOOP ; break procedure name if greater than 50 characters
S SROPS(M)="" F LOOP=1:1 S MM=$P(SROPER," "),MMM=$P(SROPER," ",2,200) Q:MMM="" Q:$L(SROPS(M))+$L(MM)'<50 S SROPS(M)=SROPS(M)_MM_" ",SROPER=MMM
Q
SROADOC1 ;B'HAM ISC/MAM - ANESTHESIA PROV REPORT (CONT); [ 09/07/00 11:24 AM ]
+1 ;;3.0; Surgery ;**38,39,53,50,95,151,155**;24 Jun 93
+2 ;
+3 ; Reference to ^PSS50 supported by DBIA #4533
+4 ;
SET ; set and print results
+1 SET S(0)=^SRF(SRTN,0)
SET S(.3)=^SRF(SRTN,.3)
+2 SET DFN=$PIECE(S(0),"^")
DO DEM^VADPT
SET SRDPT=VADM(1)
SET SRSSN=VA("PID")
SET SRSDATE=$PIECE(S(0),"^",9)
SET SRREL=$PIECE(S(.3),"^",2)
SET SRSUP=$PIECE(S(.3),"^",4)
SET SRASS=$PIECE(S(.3),"^",3)
SET SRCODE=$PIECE(S(.3),"^",6)
+3 IF SRCODE'=""
SET SRCODE=$PIECE(^SRO(132.95,SRCODE,0),"^",2)
+4 SET SRANT=""
IF $DATA(^SRF(SRTN,.2))
SET SRANE1=$PIECE(^(.2),"^")
SET SRANE2=$PIECE(^(.2),"^",4)
IF SRANE1
IF SRANE2
SET X1=SRANE2
SET X=SRANE1
DO MINS^SRSUTL2
SET SRANT=X
+5 IF SRREL'=""
SET SRREL=$PIECE(^VA(200,SRREL,0),"^")
IF $LENGTH(SRREL)>15
SET SRREL=$PIECE(SRREL,",")_","_$EXTRACT($PIECE(SRREL,",",2))
IF SRSUP'=""
SET SRSUP=$PIECE(^VA(200,SRSUP,0),"^")
IF $LENGTH(SRSUP)>15
SET SRSUP=$PIECE(SRSUP,",")_","_$EXTRACT($PIECE(SRSUP,",",2))
+6 IF SRASS'=""
SET SRASS=$PIECE(^VA(200,SRASS,0),"^")
IF $LENGTH(SRASS)>15
SET SRASS=$PIECE(SRASS,",")_","_$EXTRACT($PIECE(SRASS,",",2))
+7 SET SRSDT=$EXTRACT(SRSDATE,4,5)_"/"_$EXTRACT(SRSDATE,6,7)
TECH DO TECH^SROPRIN
SET SRAGNT=""
IF $DATA(SRZ)
DO AGENT
ASA SET Y=$PIECE($GET(^SRF(SRTN,1.1)),"^",3)
SET C=$PIECE(^DD(130,1.13,0),"^",2)
IF Y'=""
DO Y^DIQ
SET SRASA=$PIECE(Y,"-",2,3)
OPS KILL SROPERS
SET SROPER=$PIECE(^SRF(SRTN,"OP"),"^")
SET OPER=0
FOR
SET OPER=$ORDER(^SRF(SRTN,13,OPER))
IF OPER=""
QUIT
DO OTHER
+1 KILL SROPS,MM,MMM
IF $LENGTH(SROPER)<50
SET SROPS(1)=SROPER
IF $LENGTH(SROPER)>49
SET SROPER=SROPER_" "
FOR M=1:1
DO LOOP
IF MMM=""
QUIT
PRINT ; print results
+1 IF SRF
QUIT
IF $Y+10>IOSL
DO CODES^SROADOC
DO PAGE
IF SRF
QUIT
+2 WRITE !,$EXTRACT(SRSDATE,4,5)_"/"_$EXTRACT(SRSDATE,6,7)_"/"_$EXTRACT(SRSDATE,2,3),?10,$PIECE(SRDPT,",")_", "_$EXTRACT($PIECE(SRDPT,",",2)),?26,SROPS(1),?76,SRSUP,?93,SRASA,?124,SRCODE
+3 WRITE !,SRTN,?10,VA("PID")
IF $DATA(SROPS(2))
WRITE ?26,SROPS(2)
WRITE ?76,SRREL,?93,$EXTRACT(SRTECH,1,20),?120,SRANT_$SELECT(SRANT:" MINS.",1:"")
+4 WRITE !
IF $PIECE($GET(^SRF(SRTN,"NON")),"^")="Y"
WRITE "NON-O.R."
IF $DATA(SROPS(3))
WRITE ?26,SROPS(3)
WRITE ?76,SRASS,?93,SRAGNT,!
+5 IF $DATA(SROPS(4))
WRITE ?26,SROPS(4),!
IF $DATA(SROPS(5))
WRITE ?26,SROPS(5),!
IF $DATA(SROPS(6))
WRITE ?26,SROPS(6),!
+6 QUIT
HDR IF $DATA(ZTQUEUED)
DO ^SROSTOP
IF SRHALT
SET SRF=1
QUIT
+1 IF $Y
WRITE @IOF
WRITE !,?(132-$LENGTH(SRINST)\2),SRINST,?120,"PAGE: "_PAGE,!,?58,"SURGICAL SERVICE",?100,"REVIEWED BY:",!,?53,"ANESTHESIA PROVIDER REPORT",?100,"DATE REVIEWED:"
+2 WRITE !,?(132-$LENGTH(SRFRTO)\2),SRFRTO,?100,"DATE PRINTED: "_SRPRINT
+3 WRITE !!,"DATE",?10,"PATIENT",?26,"PROCEDURE(S)",?77,"SUPERVISOR",?96,"ASA CLASS",?111,"LEVEL OF SUPERVISION",!,"CASE #",?12,"ID#",?76,"RELIEF ANESTH",?92,"PRINCIPAL TECHNIQUE",?113,"ELAPSED ANES TIME",!,?76,"ASST ANESTH"
+4 WRITE ?93,"ANESTHESIA AGENT",!
FOR LINE=1:1:132
WRITE "="
+5 SET PAGE=PAGE+1
IF $DATA(PRIN)
WRITE !!,?2,"***** "_PRIN_" *****",!
+6 QUIT
PAGE IF $EXTRACT(IOST)'="P"
WRITE !!,"Press RETURN to continue, '^' to quit "
READ ASK:DTIME
IF '$TEST!(ASK="^")
SET SRF=1
QUIT
+1 DO HDR
QUIT
END IF $EXTRACT(IOST)'="P"
IF 'SRF
WRITE !!,"Press RETURN to continue "
READ X:DTIME
+1 IF $EXTRACT(IOST)="P"
WRITE @IOF
IF $DATA(ZTQUEUED)
KILL ^TMP("SR",$JOB)
IF $GET(ZTSTOP)
QUIT
SET ZTREQ="@"
QUIT
+2 DO ^SRSKILL
KILL SRTN
DO ^%ZISC
WRITE @IOF
+3 QUIT
OTHER ; other operations
+1 SET SRLONG=1
IF $LENGTH(SROPER)+$LENGTH($PIECE(^SRF(SRTN,13,OPER,0),"^"))>250
SET SRLONG=0
SET OPER=999
SET SROPERS=" ..."
+2 IF SRLONG
SET SROPERS=$PIECE(^SRF(SRTN,13,OPER,0),"^")
+3 SET SROPER=SROPER_$SELECT(SROPERS=" ...":SROPERS,1:", "_SROPERS)
+4 QUIT
AGENT SET SRAGNT=$ORDER(^SRF(SRTN,6,SRT,1,0))
IF SRAGNT=""
QUIT
SET SRAGNT=$PIECE(^SRF(SRTN,6,SRT,1,SRAGNT,0),"^")
Begin DoDot:1
+1 DO DATA^PSS50(SRAGNT,,,,,"SRRX")
SET SRAGNT=$PIECE($GET(^TMP($JOB,"SRRX",SRAGNT,.01)),"^")
KILL ^TMP($JOB,"SRRX",SRAGNT)
End DoDot:1
+2 QUIT
PR SET SRSOUT=0
DO HDR
IF SRSOUT
GOTO END
SET PRIN=0
+1 FOR
SET PRIN=$ORDER(^TMP("SR",$JOB,PRIN))
IF PRIN=""!(SRF)
QUIT
IF $Y+10'>IOSL
WRITE !!,?2,"***** "_PRIN_" *****",!
SET DATE=0
FOR
SET DATE=$ORDER(^TMP("SR",$JOB,PRIN,DATE))
IF 'DATE!(SRF)
QUIT
SET SRTN=0
FOR
SET SRTN=$ORDER(^TMP("SR",$JOB,PRIN,DATE,SRTN))
IF 'SRTN!(SRF)
QUIT
DO SET
+2 IF '$DATA(^TMP("SR",$JOB))
WRITE $$NODATA^SROUTL0()
+3 FOR I=$Y:1:(IOSL-8)
WRITE !
+4 IF 'SRF
DO CODES^SROADOC
+5 GOTO END
LOOP ; break procedure name if greater than 50 characters
+1 SET SROPS(M)=""
FOR LOOP=1:1
SET MM=$PIECE(SROPER," ")
SET MMM=$PIECE(SROPER," ",2,200)
IF MMM=""
QUIT
IF $LENGTH(SROPS(M))+$LENGTH(MM)'<50
QUIT
SET SROPS(M)=SROPS(M)_MM_" "
SET SROPER=MMM
+2 QUIT