- SRONRPT ;BIR/ADM - NURSE INTRAOP REPORT ;06/16/04@10:12
- ;;3.0;Surgery;**100,129,182,200**;24 Jun 93;Build 9
- ;** NOTICE: This routine is part of an implementation of a nationally
- ;** controlled procedure. Local modifications to this routine
- ;** are prohibited.
- ;
- D:'$D(SRTN) ^SROPS Q:'$D(SRTN)
- D RPT^SRONRPT(SRTN)
- Q
- RPT(SRTN) ; send text of nurse intraoperative report to ^TMP
- N ANE,C,CNT,I,J,K,SR,SRAGNT,SRALL,SRANES,SRANESA,SRC,SRCT,SRCASE,SRCONS,SRCONV,SRDISP,SRDIV,SRDT,SREL,SRELP,SRELP2,SRG,SRI,SRL,SRLF,SRLINE,SRMOOD,SROP,SROPER,SROPS,SROR,SRSCAN,SRSKIN,SRTIME,SRTYPE,SRUSER,SRX,SRZ,VIA,X,Y,Z
- N SROIM,SROUT
- S SRCASE=SRTN,SRG=$NA(^TMP("SRNIR",$J,SRCASE)),SRI=0 K @SRG
- S SRDIV=$$SITE^SROUTL0(SRTN),SRALL=$S(SRDIV:$P(^SRO(133,SRDIV,0),"^",6),1:1)
- I $P($G(^SRF(SRTN,30)),"^")!$P($G(^SRF(SRTN,31)),"^",8) D LINE(1) S @SRG@(SRI)=" * * OPERATION ABORTED * *" D LINE(1)
- F X=0:.1:1.1,31,"1.0","VER" S SR(X)=$G(^SRF(SRTN,X))
- S SROR=$P(SR(0),"^",2) I SROR S SROR=$P(^SRS(SROR,0),"^"),SROR=$P(^SC(SROR,0),"^")
- I SROR="" S SROR="NOT ENTERED"
- S Y=$P(SR(0),"^",10),C=$P(^DD(130,.035,0),"^",2) D:Y'="" Y^DIQ S SRTYPE=$S(Y="":"NOT ENTERED",1:Y)
- D LINE(1) S @SRG@(SRI)="Operating Room: "_SROR S @SRG@(SRI)=@SRG@(SRI)_$$SPACE(40)_"Surgical Priority: "_SRTYPE
- S Y=$P(SR(.2),"^",15) I Y D D^DIQ S SRTIME=$P(Y,"@")_" "_$P(Y,"@",2)
- S:Y="" SRTIME="NOT ENTERED" D LINE(2) S @SRG@(SRI)="Patient in Hold: "_SRTIME
- S Y=$P(SR(.2),"^",10) I Y D D^DIQ S SRTIME=$P(Y,"@")_" "_$P(Y,"@",2)
- S:Y="" SRTIME="* NOT ENTERED *" S @SRG@(SRI)=@SRG@(SRI)_$$SPACE(40)_"Patient in OR: "_SRTIME
- S Y=$P(SR(.2),"^",2) I Y D D^DIQ S SRTIME=$P(Y,"@")_" "_$P(Y,"@",2)
- S:Y="" SRTIME="NOT ENTERED" D LINE(1) S @SRG@(SRI)="Operation Begin: "_SRTIME
- S Y=$P(SR(.2),"^",3) I Y D D^DIQ S SRTIME=$P(Y,"@")_" "_$P(Y,"@",2)
- S:Y="" SRTIME="NOT ENTERED" S @SRG@(SRI)=@SRG@(SRI)_$$SPACE(40)_"Operation End: "_SRTIME
- D LINE(1) S @SRG@(SRI)="",Y=$P(SR(.2),"^",9) I Y D
- .D D^DIQ S SRTIME=$P(Y,"@")_" "_$P(Y,"@",2)
- .S:Y="" SRTIME="NOT ENTERED" S @SRG@(SRI)=@SRG@(SRI)_"Surgeon in OR: "_SRTIME
- S Y=$P(SR(.2),"^",12) I Y D D^DIQ S SRTIME=$P(Y,"@")_" "_$P(Y,"@",2)
- S:Y="" SRTIME="* NOT ENTERED *" S @SRG@(SRI)=@SRG@(SRI)_$$SPACE(40)_"Patient Out OR: "_SRTIME
- D PROC I $O(^SRF(SRTN,13,0)) D OTHER
- S Y=$P(SR("1.0"),"^",8),C=$P(^DD(130,1.09,0),"^",2) D:Y'="" Y^DIQ D LINE(2) S @SRG@(SRI)="Wound Classification: "_$S(Y'="":Y,1:"NOT ENTERED")
- S Y=$P(SR(.4),"^",6),C=$P(^DD(130,.46,0),"^",2) D:Y'="" Y^DIQ S SRDISP=$S(Y'="":Y,1:"N/A")
- I (SRDISP="N/A"&SRALL)!(SRDISP'="N/A") D LINE(1) S @SRG@(SRI)="Operation Disposition: "_SRDISP
- S Y=$P(SR(.7),"^",4),C=$P(^DD(130,25,0),"^",2) D:Y'="" Y^DIQ S VIA=$S(Y'="":Y,1:"N/A")
- I (VIA="N/A"&SRALL)!(VIA'="N/A") D LINE(1) S @SRG@(SRI)="Discharged Via: "_VIA
- S Y=$P(SR(.1),"^",4),C=$P(^DD(130,.14,0),"^",2) D:Y'="" Y^DIQ,N(30) S:Y="" Y="NOT ENTERED" D LINE(2) S @SRG@(SRI)="Primary Surgeon: "_Y
- S Y=$P(SR(.1),"^",5),C=$P(^DD(130,.15,0),"^",2) D:Y'="" Y^DIQ,N(25) S:Y="" Y="N/A" S @SRG@(SRI)=@SRG@(SRI)_$$SPACE(40)_"First Assist: "_Y
- S Y=$P(SR(.1),"^",13),C=$P(^DD(130,.164,0),"^",2) D:Y'="" Y^DIQ,N(26) S:Y="" Y="N/A" D LINE(1) S @SRG@(SRI)="Attending Surgeon: "_Y
- S Y=$P(SR(.1),"^",6),C=$P(^DD(130,.16,0),"^",2) D:Y'="" Y^DIQ,N(24) S:Y="" Y="N/A" S @SRG@(SRI)=@SRG@(SRI)_$$SPACE(40)_"Second Assist: "_Y
- S Y=$P(SR(.3),"^"),C=$P(^DD(130,.31,0),"^",2) D:Y'="" Y^DIQ,N(26) S SRANES=$S(Y="":"NOT ENTERED",1:Y)
- S Y=$P(SR(.3),"^",3),C=$P(^DD(130,.33,0),"^",2) D:Y'="" Y^DIQ,N(21) S SRANESA=$S(Y="":"N/A",1:Y)
- I 'SRALL,SRANES="NOT ENTERED",SRANESA="N/A" G OSA
- D LINE(1) S @SRG@(SRI)="Anesthetist: "_SRANES,@SRG@(SRI)=@SRG@(SRI)_$$SPACE(40)_"Assistant Anesth: "_SRANESA
- OSA S SRLINE="Other Scrubbed Assistants: "
- I '$O(^SRF(SRTN,28,0)),SRALL D LINE(2) S @SRG@(SRI)=SRLINE_"N/A"
- I $O(^SRF(SRTN,28,0)) D LINE(2) S @SRG@(SRI)=SRLINE,OTH=0 F S OTH=$O(^SRF(SRTN,28,OTH)) Q:'OTH D
- .S Y=$P(^SRF(SRTN,28,OTH,0),"^"),C=$P(^DD(130.23,.01,0),"^",2) D:Y'="" Y^DIQ D LINE(1) S @SRG@(SRI)=" "_Y
- .I $O(^SRF(SRTN,28,OTH,1,0)) D
- ..S SRLINE=0,SRL=4 D LINE(1) S @SRG@(SRI)=" Comments:"
- ..F S SRLINE=$O(^SRF(SRTN,28,OTH,1,SRLINE)) Q:'SRLINE S X=^SRF(SRTN,28,OTH,1,SRLINE,0) D COMM^SRONRPT3(X,SRL)
- D ^SRONRPT0
- Q
- PROC ; print procedure information
- N I,M,MM,SRJ,SRMAJ,SROPER,SROPS,SRX,SRY,X,Z
- S SRMAJ=$P(SR(0),"^",3),SRMAJ=$S(SRMAJ="J":"Major",SRMAJ="N":"Minor",1:"Major")
- D LINE(2) S @SRG@(SRI)=SRMAJ_" Operations Performed:"
- S SROPER=$P(^SRF(SRTN,"OP"),"^")
- I $P($G(^SRF(SRTN,30)),"^")&$P($G(^SRF(SRTN,.2)),"^",10) S SROPER="** ABORTED ** "_SROPER
- K SROPS,MM,MMM S:$L(SROPER)<70 SROPS(1)=SROPER I $L(SROPER)>69 S SROPER=SROPER_" " F M=1:1 D LOOP Q:MMM=""
- F I=1:1 Q:'$D(SROPS(I)) D LINE(1) S @SRG@(SRI)=$S(I=1:"Primary: ",1:" ")_SROPS(I)
- N SROB S SROB=$$GET1^DIQ(130,SRTN_",",2006,"E")
- D LINE(1) S @SRG@(SRI)="Robotic Assistance (Y/N): "_$S($G(SROB)]"":SROB,1:"NOT ENTERED")
- Q
- OTHER ; other procedures
- N CNT,OTH,OTHER,SRJ,SRX,SRY
- S (OTH,CNT)=0 F S OTH=$O(^SRF(SRTN,13,OTH)) Q:'OTH S CNT=CNT+1 D OTH
- Q
- OTH S OTHER=$P(^SRF(SRTN,13,OTH,0),"^")
- D LINE(1) S @SRG@(SRI)="Other: "_OTHER
- Q
- LOOP ; break procedure if greater than 70 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)'<70 S SROPS(M)=SROPS(M)_MM_" ",SROPER=MMM
- Q
- N(SRL) N SRN I $L(Y)>SRL S SRN=$P(Y,",")_","_$E($P(Y,",",2))_".",Y=SRN
- Q
- SPACE(NUM) ; create spaces
- ; pass in position returns number of needed spaces
- I '$D(@SRG@(SRI)) S @SRG@(SRI)=""
- Q $J("",NUM-$L(@SRG@(SRI)))
- LINE(NUM) ; create carriage returns
- F J=1:1:NUM S SRI=SRI+1,@SRG@(SRI)=""
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSRONRPT 5718 printed Feb 19, 2025@00:11:03 Page 2
- SRONRPT ;BIR/ADM - NURSE INTRAOP REPORT ;06/16/04@10:12
- +1 ;;3.0;Surgery;**100,129,182,200**;24 Jun 93;Build 9
- +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 if '$DATA(SRTN)
- DO ^SROPS
- if '$DATA(SRTN)
- QUIT
- +7 DO RPT^SRONRPT(SRTN)
- +8 QUIT
- RPT(SRTN) ; send text of nurse intraoperative report to ^TMP
- +1 NEW ANE,C,CNT,I,J,K,SR,SRAGNT,SRALL,SRANES,SRANESA,SRC,SRCT,SRCASE,SRCONS,SRCONV,SRDISP,SRDIV,SRDT,SREL,SRELP,SRELP2,SRG,SRI,SRL,SRLF,SRLINE,SRMOOD,SROP,SROPER,SROPS,SROR,SRSCAN,SRSKIN,SRTIME,SRTYPE,SRUSER,SRX,SRZ,VIA,X,Y,Z
- +2 NEW SROIM,SROUT
- +3 SET SRCASE=SRTN
- SET SRG=$NAME(^TMP("SRNIR",$JOB,SRCASE))
- SET SRI=0
- KILL @SRG
- +4 SET SRDIV=$$SITE^SROUTL0(SRTN)
- SET SRALL=$SELECT(SRDIV:$PIECE(^SRO(133,SRDIV,0),"^",6),1:1)
- +5 IF $PIECE($GET(^SRF(SRTN,30)),"^")!$PIECE($GET(^SRF(SRTN,31)),"^",8)
- DO LINE(1)
- SET @SRG@(SRI)=" * * OPERATION ABORTED * *"
- DO LINE(1)
- +6 FOR X=0:.1:1.1,31,"1.0","VER"
- SET SR(X)=$GET(^SRF(SRTN,X))
- +7 SET SROR=$PIECE(SR(0),"^",2)
- IF SROR
- SET SROR=$PIECE(^SRS(SROR,0),"^")
- SET SROR=$PIECE(^SC(SROR,0),"^")
- +8 IF SROR=""
- SET SROR="NOT ENTERED"
- +9 SET Y=$PIECE(SR(0),"^",10)
- SET C=$PIECE(^DD(130,.035,0),"^",2)
- if Y'=""
- DO Y^DIQ
- SET SRTYPE=$SELECT(Y="":"NOT ENTERED",1:Y)
- +10 DO LINE(1)
- SET @SRG@(SRI)="Operating Room: "_SROR
- SET @SRG@(SRI)=@SRG@(SRI)_$$SPACE(40)_"Surgical Priority: "_SRTYPE
- +11 SET Y=$PIECE(SR(.2),"^",15)
- IF Y
- DO D^DIQ
- SET SRTIME=$PIECE(Y,"@")_" "_$PIECE(Y,"@",2)
- +12 if Y=""
- SET SRTIME="NOT ENTERED"
- DO LINE(2)
- SET @SRG@(SRI)="Patient in Hold: "_SRTIME
- +13 SET Y=$PIECE(SR(.2),"^",10)
- IF Y
- DO D^DIQ
- SET SRTIME=$PIECE(Y,"@")_" "_$PIECE(Y,"@",2)
- +14 if Y=""
- SET SRTIME="* NOT ENTERED *"
- SET @SRG@(SRI)=@SRG@(SRI)_$$SPACE(40)_"Patient in OR: "_SRTIME
- +15 SET Y=$PIECE(SR(.2),"^",2)
- IF Y
- DO D^DIQ
- SET SRTIME=$PIECE(Y,"@")_" "_$PIECE(Y,"@",2)
- +16 if Y=""
- SET SRTIME="NOT ENTERED"
- DO LINE(1)
- SET @SRG@(SRI)="Operation Begin: "_SRTIME
- +17 SET Y=$PIECE(SR(.2),"^",3)
- IF Y
- DO D^DIQ
- SET SRTIME=$PIECE(Y,"@")_" "_$PIECE(Y,"@",2)
- +18 if Y=""
- SET SRTIME="NOT ENTERED"
- SET @SRG@(SRI)=@SRG@(SRI)_$$SPACE(40)_"Operation End: "_SRTIME
- +19 DO LINE(1)
- SET @SRG@(SRI)=""
- SET Y=$PIECE(SR(.2),"^",9)
- IF Y
- Begin DoDot:1
- +20 DO D^DIQ
- SET SRTIME=$PIECE(Y,"@")_" "_$PIECE(Y,"@",2)
- +21 if Y=""
- SET SRTIME="NOT ENTERED"
- SET @SRG@(SRI)=@SRG@(SRI)_"Surgeon in OR: "_SRTIME
- End DoDot:1
- +22 SET Y=$PIECE(SR(.2),"^",12)
- IF Y
- DO D^DIQ
- SET SRTIME=$PIECE(Y,"@")_" "_$PIECE(Y,"@",2)
- +23 if Y=""
- SET SRTIME="* NOT ENTERED *"
- SET @SRG@(SRI)=@SRG@(SRI)_$$SPACE(40)_"Patient Out OR: "_SRTIME
- +24 DO PROC
- IF $ORDER(^SRF(SRTN,13,0))
- DO OTHER
- +25 SET Y=$PIECE(SR("1.0"),"^",8)
- SET C=$PIECE(^DD(130,1.09,0),"^",2)
- if Y'=""
- DO Y^DIQ
- DO LINE(2)
- SET @SRG@(SRI)="Wound Classification: "_$SELECT(Y'="":Y,1:"NOT ENTERED")
- +26 SET Y=$PIECE(SR(.4),"^",6)
- SET C=$PIECE(^DD(130,.46,0),"^",2)
- if Y'=""
- DO Y^DIQ
- SET SRDISP=$SELECT(Y'="":Y,1:"N/A")
- +27 IF (SRDISP="N/A"&SRALL)!(SRDISP'="N/A")
- DO LINE(1)
- SET @SRG@(SRI)="Operation Disposition: "_SRDISP
- +28 SET Y=$PIECE(SR(.7),"^",4)
- SET C=$PIECE(^DD(130,25,0),"^",2)
- if Y'=""
- DO Y^DIQ
- SET VIA=$SELECT(Y'="":Y,1:"N/A")
- +29 IF (VIA="N/A"&SRALL)!(VIA'="N/A")
- DO LINE(1)
- SET @SRG@(SRI)="Discharged Via: "_VIA
- +30 SET Y=$PIECE(SR(.1),"^",4)
- SET C=$PIECE(^DD(130,.14,0),"^",2)
- if Y'=""
- DO Y^DIQ
- DO N(30)
- if Y=""
- SET Y="NOT ENTERED"
- DO LINE(2)
- SET @SRG@(SRI)="Primary Surgeon: "_Y
- +31 SET Y=$PIECE(SR(.1),"^",5)
- SET C=$PIECE(^DD(130,.15,0),"^",2)
- if Y'=""
- DO Y^DIQ
- DO N(25)
- if Y=""
- SET Y="N/A"
- SET @SRG@(SRI)=@SRG@(SRI)_$$SPACE(40)_"First Assist: "_Y
- +32 SET Y=$PIECE(SR(.1),"^",13)
- SET C=$PIECE(^DD(130,.164,0),"^",2)
- if Y'=""
- DO Y^DIQ
- DO N(26)
- if Y=""
- SET Y="N/A"
- DO LINE(1)
- SET @SRG@(SRI)="Attending Surgeon: "_Y
- +33 SET Y=$PIECE(SR(.1),"^",6)
- SET C=$PIECE(^DD(130,.16,0),"^",2)
- if Y'=""
- DO Y^DIQ
- DO N(24)
- if Y=""
- SET Y="N/A"
- SET @SRG@(SRI)=@SRG@(SRI)_$$SPACE(40)_"Second Assist: "_Y
- +34 SET Y=$PIECE(SR(.3),"^")
- SET C=$PIECE(^DD(130,.31,0),"^",2)
- if Y'=""
- DO Y^DIQ
- DO N(26)
- SET SRANES=$SELECT(Y="":"NOT ENTERED",1:Y)
- +35 SET Y=$PIECE(SR(.3),"^",3)
- SET C=$PIECE(^DD(130,.33,0),"^",2)
- if Y'=""
- DO Y^DIQ
- DO N(21)
- SET SRANESA=$SELECT(Y="":"N/A",1:Y)
- +36 IF 'SRALL
- IF SRANES="NOT ENTERED"
- IF SRANESA="N/A"
- GOTO OSA
- +37 DO LINE(1)
- SET @SRG@(SRI)="Anesthetist: "_SRANES
- SET @SRG@(SRI)=@SRG@(SRI)_$$SPACE(40)_"Assistant Anesth: "_SRANESA
- OSA SET SRLINE="Other Scrubbed Assistants: "
- +1 IF '$ORDER(^SRF(SRTN,28,0))
- IF SRALL
- DO LINE(2)
- SET @SRG@(SRI)=SRLINE_"N/A"
- +2 IF $ORDER(^SRF(SRTN,28,0))
- DO LINE(2)
- SET @SRG@(SRI)=SRLINE
- SET OTH=0
- FOR
- SET OTH=$ORDER(^SRF(SRTN,28,OTH))
- if 'OTH
- QUIT
- Begin DoDot:1
- +3 SET Y=$PIECE(^SRF(SRTN,28,OTH,0),"^")
- SET C=$PIECE(^DD(130.23,.01,0),"^",2)
- if Y'=""
- DO Y^DIQ
- DO LINE(1)
- SET @SRG@(SRI)=" "_Y
- +4 IF $ORDER(^SRF(SRTN,28,OTH,1,0))
- Begin DoDot:2
- +5 SET SRLINE=0
- SET SRL=4
- DO LINE(1)
- SET @SRG@(SRI)=" Comments:"
- +6 FOR
- SET SRLINE=$ORDER(^SRF(SRTN,28,OTH,1,SRLINE))
- if 'SRLINE
- QUIT
- SET X=^SRF(SRTN,28,OTH,1,SRLINE,0)
- DO COMM^SRONRPT3(X,SRL)
- End DoDot:2
- End DoDot:1
- +7 DO ^SRONRPT0
- +8 QUIT
- PROC ; print procedure information
- +1 NEW I,M,MM,SRJ,SRMAJ,SROPER,SROPS,SRX,SRY,X,Z
- +2 SET SRMAJ=$PIECE(SR(0),"^",3)
- SET SRMAJ=$SELECT(SRMAJ="J":"Major",SRMAJ="N":"Minor",1:"Major")
- +3 DO LINE(2)
- SET @SRG@(SRI)=SRMAJ_" Operations Performed:"
- +4 SET SROPER=$PIECE(^SRF(SRTN,"OP"),"^")
- +5 IF $PIECE($GET(^SRF(SRTN,30)),"^")&$PIECE($GET(^SRF(SRTN,.2)),"^",10)
- SET SROPER="** ABORTED ** "_SROPER
- +6 KILL SROPS,MM,MMM
- if $LENGTH(SROPER)<70
- SET SROPS(1)=SROPER
- IF $LENGTH(SROPER)>69
- SET SROPER=SROPER_" "
- FOR M=1:1
- DO LOOP
- if MMM=""
- QUIT
- +7 FOR I=1:1
- if '$DATA(SROPS(I))
- QUIT
- DO LINE(1)
- SET @SRG@(SRI)=$SELECT(I=1:"Primary: ",1:" ")_SROPS(I)
- +8 NEW SROB
- SET SROB=$$GET1^DIQ(130,SRTN_",",2006,"E")
- +9 DO LINE(1)
- SET @SRG@(SRI)="Robotic Assistance (Y/N): "_$SELECT($GET(SROB)]"":SROB,1:"NOT ENTERED")
- +10 QUIT
- OTHER ; other procedures
- +1 NEW CNT,OTH,OTHER,SRJ,SRX,SRY
- +2 SET (OTH,CNT)=0
- FOR
- SET OTH=$ORDER(^SRF(SRTN,13,OTH))
- if 'OTH
- QUIT
- SET CNT=CNT+1
- DO OTH
- +3 QUIT
- OTH SET OTHER=$PIECE(^SRF(SRTN,13,OTH,0),"^")
- +1 DO LINE(1)
- SET @SRG@(SRI)="Other: "_OTHER
- +2 QUIT
- LOOP ; break procedure if greater than 70 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)'<70
- QUIT
- SET SROPS(M)=SROPS(M)_MM_" "
- SET SROPER=MMM
- +2 QUIT
- N(SRL) NEW SRN
- IF $LENGTH(Y)>SRL
- SET SRN=$PIECE(Y,",")_","_$EXTRACT($PIECE(Y,",",2))_"."
- SET Y=SRN
- +1 QUIT
- SPACE(NUM) ; create spaces
- +1 ; pass in position returns number of needed spaces
- +2 IF '$DATA(@SRG@(SRI))
- SET @SRG@(SRI)=""
- +3 QUIT $JUSTIFY("",NUM-$LENGTH(@SRG@(SRI)))
- LINE(NUM) ; create carriage returns
- +1 FOR J=1:1:NUM
- SET SRI=SRI+1
- SET @SRG@(SRI)=""
- +2 QUIT