- RADLY ;HISC/GJC AISC/MJK,RMO-Rad Daily Log Report ;7/17/97 12:35
- ;;5.0;Radiology/Nuclear Medicine;**15,47**;Mar 16, 1998;Build 21
- ; setup raccess(duz,"LOC" raccess(duz,"DIV" raccess(duz,"IMG"
- I $O(RACCESS(DUZ,""))="" S RAPSTX="" D SETVARS^RAPSET1(0)
- ; Check access and
- ; setup raccess(duz,"DIV-IMG","chicago (ws),"general radiology"
- S RAXIT=$$SETUPDI^RAUTL7() G:RAXIT CLEAN
- ; Select Div
- ; setup ^tmp($j,"RA D-TYPE"
- D SELDIV^RAUTL7
- I '$D(^TMP($J,"RA D-TYPE"))!(RAQUIT) K RACCESS(DUZ,"DIV-IMG") S RAXIT=1 G CLEAN
- ; Set imaging types as allowed by division(s) picked
- N X,X1,RACHK1 S X=0
- ; setup ^tmp($j,"DIV-IMG"
- D SETUP^RAUTL7A
- ; setup ^tmp($j,"RA I-TYPE"
- F S X=$O(^TMP($J,"DIV-IMG",X)) Q:X'=+X I $D(RACCESS(DUZ,"IMG",X)) S ^TMP($J,"RA I-TYPE",$P($G(^RA(79.2,+X,0)),U),X)=""
- ; Select Img Loc
- ; setup ^tmp($j,"DIV-ITYP-ILOC" ^tmp($j,"RA LOC-TYPE"
- D SELLOC^RAUTL7
- I '$D(^TMP($J,"RA LOC-TYPE"))!(RAQUIT) K RACESS(DUZ,"DIV-IMG"),^TMP($J,"DIV-ITYP-ILOC") S RAXIT=1
- CLEAN K ^TMP($J,"DIV-IMG")
- ;
- I RAXIT K RAXIT K:$D(RAPSTX) RACCESS,RAPSTX,I,POP,RAQUIT Q
- ; loop thru raccess(duz,"DIV-IMG" to setup ^tmp($j,"RADLY",
- ; matching on ^tmp($j,"RA D-TYPE" and ^tmp($j,"RA I-TYPE"
- ; use new code in rtn radly1, instead of rtn radlq3
- D ZEROUT^RADLY1 K RACCESS(DUZ,"DIV-IMG") W !
- ASKLOG ; Ask log date
- W ! K %DT
- S %DT="PATEX",%DT("A")="Select Log Date: "
- S %DT("B")="T-1" D ^%DT K %DT
- I Y<0 D KILL^RADLY1 Q
- S RALDTI=Y\1 S RALDTX=$$FMTE^XLFDT(Y\1,1)
- S ZTDESC="Rad/Nuc Med Daily Log Rpt"
- S ZTRTN="START^RADLY",ZTSAVE("RALDT*")=""
- S ZTSAVE("^TMP($J,""RADLY"",")="",ZTSAVE("^TMP($J,""RA D-TYPE"",")=""
- S ZTSAVE("^TMP($J,""RA I-TYPE"",")=""
- S ZTSAVE("^TMP($J,""RA LOC-TYPE"",")=""
- D ZIS^RAUTL
- I RAPOP D KILL^RADLY1 Q
- START ; Start the process
- U IO D NOW^%DTC
- S:$D(ZTQUEUED) ZTREQ="@"
- S RATDY=$$FMTE^XLFDT(%\1,1),(RAPG,RAXIT)=0
- S $P(RALN,"-",(IOM+1))="",RAHEAD="Daily Log Report For: "_RALDTX
- S RATAB(1)=$S(IOM=132:8,1:5),RATAB(2)=$S(IOM=132:25,1:8)
- S RATAB(3)=$S(IOM=132:42,1:25),RATAB(4)=$S(IOM=132:52,1:32)
- S RATAB(5)=$S(IOM=132:72,1:38),RATAB(6)=$S(IOM=132:95,1:43)
- S RATAB(7)=$S(IOM=132:114,1:60),RATAB(8)=$S(IOM=132:122,1:62)
- S RATAB(9)=$S(IOM=132:102,1:62)
- ;
- F RADTE=RALDTI:0 S RADTE=$O(^RADPT("AR",RADTE)) Q:'RADTE D Q:RAXIT
- . Q:RADTE>(RALDTI+.9999)
- . F RADFN=0:0 S RADFN=$O(^RADPT("AR",RADTE,RADFN)) Q:'RADFN D Q:RAXIT
- .. S RADTI=9999999.9999-RADTE
- .. D:$D(^RADPT(RADFN,"DT",RADTI,0)) SORT^RADLY1
- .. Q
- . Q
- I RAXIT D CLOSE^RAUTL,KILL^RADLY1 Q
- ;
- ; eliminate "RADLY" nodes that are outside the user-selected img locs
- N A,B,C S A=""
- CLN1 S A=$O(^TMP($J,"RADLY",A)) G:A']"" PREP S B=""
- CLN2 S B=$O(^TMP($J,"RADLY",A,B)) G:B']"" CLN1 S C=""
- CLN3 S C=$O(^TMP($J,"RADLY",A,B,C)) G:C']"" CLN2
- K:$O(^TMP($J,"RA LOC-TYPE",C,0))="" ^TMP($J,"RADLY",A,B,C)
- K:$O(^TMP($J,"RA I-TYPE",B,0))="" ^TMP($J,"RADLY",A,B)
- K:$O(^TMP($J,"RADLY",A,""))="" ^TMP($J,"RADLY",A)
- G CLN3
- PREP G:'$D(^TMP($J,"RADLY")) OUT
- S X=+$O(^TMP($J,"RADLY","")),Y=$O(^TMP($J,"RADLY",X,""))
- S RADIV=$P($G(^DIC(4,X,0)),"^"),RAITYPE=Y
- S RAILOC=$O(^TMP($J,"RADLY",X,Y,""))
- ; save current values
- S RADIV0=RADIV,RAITYPE0=RAITYPE,RAILOC0=RAILOC
- D HD^RADLY1
- I RAXIT D CLOSE^RAUTL,KILL^RADLY1 Q
- I $D(^TMP($J,"RADLY")) D
- . D PRINT^RADLY1 ; Print out data
- . I 'RAXIT D
- .. S RADIVNM=$$DIVTOT^RACMP("RADLY") Q:'RADIVNM
- .. S (RADIV,RAFLG,RAITYPE)="",RAXIT=$$EOS^RAUTL5() D:'RAXIT HD^RADLY1
- .. D:'RAXIT SYNOP
- .. Q
- . Q
- OUT D CLOSE^RAUTL,KILL^RADLY1
- Q
- SET ; Set ^TMP global
- S RAEX(0)=$G(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0))
- S RACN=$P(RAEX(0),"^"),RAPRC=+$P(RAEX(0),"^",2)
- S RAPRC=$G(^RAMIS(71,RAPRC,0)),RAST=+$P(RAEX(0),"^",3)
- S RAPRC=$E($S(RAPRC]"":$P(RAPRC,"^"),1:"Unknown"),1,19)
- S RAST=$G(^RA(72,RAST,0)),RA6=+$P(RAEX(0),"^",6)
- S RA8=+$P(RAEX(0),"^",8),RA9=+$P(RAEX(0),"^",9)
- S RAST=$E($S(RAST]"":$P(RAST,"^"),1:"Unknown"),1,20)
- S X=RADTE D TIME^RAUTL1 S RATME=X
- S:$D(^DIC(42,RA6,0)) RAWHE=$P(^DIC(42,RA6,0),"^")
- S:$D(^SC(RA8,0)) RAWHE=$P(^SC(RA8,0),"^")
- S:$D(^DIC(34,RA9,0)) RAWHE=$P(^DIC(34,RA9,0),"^")
- S:$D(^RADPT(RADFN,"DT",RADTI,"P",RACNI,"R")) RAWHE=$P(^("R"),"^")
- S RAWHE=$E($S($G(RAWHE)]"":RAWHE,1:"Unknown"),1,20)
- S RARPT=+$P(RAEX(0),"^",17)
- S RARPT=$S($O(^RARPT(RARPT,"R",0)):"Yes",1:"No")
- I $D(ZTQUEUED) D STOPCHK^RAUTL9 S:$G(ZTSTOP)=1 RAXIT=1 Q:RAXIT
- S ^TMP($J,"RADLY",RADIV)=+$G(^TMP($J,"RADLY",RADIV))+1
- S ^TMP($J,"RADLY",RADIV,RAITYPE)=+$G(^TMP($J,"RADLY",RADIV,RAITYPE))+1
- S ^TMP($J,"RADLY",RADIV,RAITYPE,RAILOC)=+$G(^TMP($J,"RADLY",RADIV,RAITYPE,RAILOC))+1
- S RADIVTY=+$G(RADIVTY)+1
- N RASSAN,RACNDSP S RASSAN=$$SSANVAL^RAHLRU1(RADFN,RADTI,RACNI)
- S RACNDSP=$S((RASSAN'=""):RASSAN,1:RACN)
- I $$USESSAN^RAHLRU1() S ^TMP($J,"RADLY",RADIV,RAITYPE,RAILOC,RANME,RADTE,RACNI)=RACNDSP_"^"_RAPRC_"^"_RAST_"^"_RATME_"^"_RAWHE_"^"_RARPT_"^"_RASSN
- I '$$USESSAN^RAHLRU1() S ^TMP($J,"RADLY",RADIV,RAITYPE,RAILOC,RANME,RADTE,RACNI)=RACN_"^"_RAPRC_"^"_RAST_"^"_RATME_"^"_RAWHE_"^"_RARPT_"^"_RASSN
- Q
- SYNOP ; Synopsis of data presented to the user.
- S A=""
- W !?RATAB(2),"Division",!?RATAB(2)+3,"Imaging Type",!?RATAB(2)+6,"Imaging Location(s)",!
- SYN1 S A=$O(^TMP($J,"RADLY",A)) Q:A']""
- I $Y>(IOSL-4) S RAXIT=$$EOS^RAUTL5() D:'RAXIT HD^RADLY1 Q:RAXIT
- W !!?RATAB(2),$P($G(^DIC(4,A,0)),"^") S B=""
- SYN2 S B=$O(^TMP($J,"RADLY",A,B)) G:B']"" SYN1
- I $Y>(IOSL-4) S RAXIT=$$EOS^RAUTL5() D:'RAXIT HD^RADLY1 Q:RAXIT
- W !?RATAB(2)+3,B,!?RATAB(2)+6 S C=""
- SYN3 S C=$O(^TMP($J,"RADLY",A,B,C)) G:C']"" SYN2
- I $Y>(IOSL-4) S RAXIT=$$EOS^RAUTL5() D:'RAXIT HD^RADLY1 Q:RAXIT
- W:$X>(IOM-30) !?RATAB(2)+6
- W C,?($X+3)
- G SYN3
- RADLY ;HISC/GJC AISC/MJK,RMO-Rad Daily Log Report ;7/17/97 12:35
- +1 ;;5.0;Radiology/Nuclear Medicine;**15,47**;Mar 16, 1998;Build 21
- +2 ; setup raccess(duz,"LOC" raccess(duz,"DIV" raccess(duz,"IMG"
- +3 IF $ORDER(RACCESS(DUZ,""))=""
- SET RAPSTX=""
- DO SETVARS^RAPSET1(0)
- +4 ; Check access and
- +5 ; setup raccess(duz,"DIV-IMG","chicago (ws),"general radiology"
- +6 SET RAXIT=$$SETUPDI^RAUTL7()
- IF RAXIT
- GOTO CLEAN
- +7 ; Select Div
- +8 ; setup ^tmp($j,"RA D-TYPE"
- +9 DO SELDIV^RAUTL7
- +10 IF '$DATA(^TMP($JOB,"RA D-TYPE"))!(RAQUIT)
- KILL RACCESS(DUZ,"DIV-IMG")
- SET RAXIT=1
- GOTO CLEAN
- +11 ; Set imaging types as allowed by division(s) picked
- +12 NEW X,X1,RACHK1
- SET X=0
- +13 ; setup ^tmp($j,"DIV-IMG"
- +14 DO SETUP^RAUTL7A
- +15 ; setup ^tmp($j,"RA I-TYPE"
- +16 FOR
- SET X=$ORDER(^TMP($JOB,"DIV-IMG",X))
- IF X'=+X
- QUIT
- IF $DATA(RACCESS(DUZ,"IMG",X))
- SET ^TMP($JOB,"RA I-TYPE",$PIECE($GET(^RA(79.2,+X,0)),U),X)=""
- +17 ; Select Img Loc
- +18 ; setup ^tmp($j,"DIV-ITYP-ILOC" ^tmp($j,"RA LOC-TYPE"
- +19 DO SELLOC^RAUTL7
- +20 IF '$DATA(^TMP($JOB,"RA LOC-TYPE"))!(RAQUIT)
- KILL RACESS(DUZ,"DIV-IMG"),^TMP($JOB,"DIV-ITYP-ILOC")
- SET RAXIT=1
- CLEAN KILL ^TMP($JOB,"DIV-IMG")
- +1 ;
- +2 IF RAXIT
- KILL RAXIT
- IF $DATA(RAPSTX)
- KILL RACCESS,RAPSTX,I,POP,RAQUIT
- QUIT
- +3 ; loop thru raccess(duz,"DIV-IMG" to setup ^tmp($j,"RADLY",
- +4 ; matching on ^tmp($j,"RA D-TYPE" and ^tmp($j,"RA I-TYPE"
- +5 ; use new code in rtn radly1, instead of rtn radlq3
- +6 DO ZEROUT^RADLY1
- KILL RACCESS(DUZ,"DIV-IMG")
- WRITE !
- ASKLOG ; Ask log date
- +1 WRITE !
- KILL %DT
- +2 SET %DT="PATEX"
- SET %DT("A")="Select Log Date: "
- +3 SET %DT("B")="T-1"
- DO ^%DT
- KILL %DT
- +4 IF Y<0
- DO KILL^RADLY1
- QUIT
- +5 SET RALDTI=Y\1
- SET RALDTX=$$FMTE^XLFDT(Y\1,1)
- +6 SET ZTDESC="Rad/Nuc Med Daily Log Rpt"
- +7 SET ZTRTN="START^RADLY"
- SET ZTSAVE("RALDT*")=""
- +8 SET ZTSAVE("^TMP($J,""RADLY"",")=""
- SET ZTSAVE("^TMP($J,""RA D-TYPE"",")=""
- +9 SET ZTSAVE("^TMP($J,""RA I-TYPE"",")=""
- +10 SET ZTSAVE("^TMP($J,""RA LOC-TYPE"",")=""
- +11 DO ZIS^RAUTL
- +12 IF RAPOP
- DO KILL^RADLY1
- QUIT
- START ; Start the process
- +1 USE IO
- DO NOW^%DTC
- +2 IF $DATA(ZTQUEUED)
- SET ZTREQ="@"
- +3 SET RATDY=$$FMTE^XLFDT(%\1,1)
- SET (RAPG,RAXIT)=0
- +4 SET $PIECE(RALN,"-",(IOM+1))=""
- SET RAHEAD="Daily Log Report For: "_RALDTX
- +5 SET RATAB(1)=$SELECT(IOM=132:8,1:5)
- SET RATAB(2)=$SELECT(IOM=132:25,1:8)
- +6 SET RATAB(3)=$SELECT(IOM=132:42,1:25)
- SET RATAB(4)=$SELECT(IOM=132:52,1:32)
- +7 SET RATAB(5)=$SELECT(IOM=132:72,1:38)
- SET RATAB(6)=$SELECT(IOM=132:95,1:43)
- +8 SET RATAB(7)=$SELECT(IOM=132:114,1:60)
- SET RATAB(8)=$SELECT(IOM=132:122,1:62)
- +9 SET RATAB(9)=$SELECT(IOM=132:102,1:62)
- +10 ;
- +11 FOR RADTE=RALDTI:0
- SET RADTE=$ORDER(^RADPT("AR",RADTE))
- IF 'RADTE
- QUIT
- Begin DoDot:1
- +12 IF RADTE>(RALDTI+.9999)
- QUIT
- +13 FOR RADFN=0:0
- SET RADFN=$ORDER(^RADPT("AR",RADTE,RADFN))
- IF 'RADFN
- QUIT
- Begin DoDot:2
- +14 SET RADTI=9999999.9999-RADTE
- +15 IF $DATA(^RADPT(RADFN,"DT",RADTI,0))
- DO SORT^RADLY1
- +16 QUIT
- End DoDot:2
- IF RAXIT
- QUIT
- +17 QUIT
- End DoDot:1
- IF RAXIT
- QUIT
- +18 IF RAXIT
- DO CLOSE^RAUTL
- DO KILL^RADLY1
- QUIT
- +19 ;
- +20 ; eliminate "RADLY" nodes that are outside the user-selected img locs
- +21 NEW A,B,C
- SET A=""
- CLN1 SET A=$ORDER(^TMP($JOB,"RADLY",A))
- IF A']""
- GOTO PREP
- SET B=""
- CLN2 SET B=$ORDER(^TMP($JOB,"RADLY",A,B))
- IF B']""
- GOTO CLN1
- SET C=""
- CLN3 SET C=$ORDER(^TMP($JOB,"RADLY",A,B,C))
- IF C']""
- GOTO CLN2
- +1 IF $ORDER(^TMP($JOB,"RA LOC-TYPE",C,0))=""
- KILL ^TMP($JOB,"RADLY",A,B,C)
- +2 IF $ORDER(^TMP($JOB,"RA I-TYPE",B,0))=""
- KILL ^TMP($JOB,"RADLY",A,B)
- +3 IF $ORDER(^TMP($JOB,"RADLY",A,""))=""
- KILL ^TMP($JOB,"RADLY",A)
- +4 GOTO CLN3
- PREP IF '$DATA(^TMP($JOB,"RADLY"))
- GOTO OUT
- +1 SET X=+$ORDER(^TMP($JOB,"RADLY",""))
- SET Y=$ORDER(^TMP($JOB,"RADLY",X,""))
- +2 SET RADIV=$PIECE($GET(^DIC(4,X,0)),"^")
- SET RAITYPE=Y
- +3 SET RAILOC=$ORDER(^TMP($JOB,"RADLY",X,Y,""))
- +4 ; save current values
- +5 SET RADIV0=RADIV
- SET RAITYPE0=RAITYPE
- SET RAILOC0=RAILOC
- +6 DO HD^RADLY1
- +7 IF RAXIT
- DO CLOSE^RAUTL
- DO KILL^RADLY1
- QUIT
- +8 IF $DATA(^TMP($JOB,"RADLY"))
- Begin DoDot:1
- +9 ; Print out data
- DO PRINT^RADLY1
- +10 IF 'RAXIT
- Begin DoDot:2
- +11 SET RADIVNM=$$DIVTOT^RACMP("RADLY")
- IF 'RADIVNM
- QUIT
- +12 SET (RADIV,RAFLG,RAITYPE)=""
- SET RAXIT=$$EOS^RAUTL5()
- IF 'RAXIT
- DO HD^RADLY1
- +13 IF 'RAXIT
- DO SYNOP
- +14 QUIT
- End DoDot:2
- +15 QUIT
- End DoDot:1
- OUT DO CLOSE^RAUTL
- DO KILL^RADLY1
- +1 QUIT
- SET ; Set ^TMP global
- +1 SET RAEX(0)=$GET(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0))
- +2 SET RACN=$PIECE(RAEX(0),"^")
- SET RAPRC=+$PIECE(RAEX(0),"^",2)
- +3 SET RAPRC=$GET(^RAMIS(71,RAPRC,0))
- SET RAST=+$PIECE(RAEX(0),"^",3)
- +4 SET RAPRC=$EXTRACT($SELECT(RAPRC]"":$PIECE(RAPRC,"^"),1:"Unknown"),1,19)
- +5 SET RAST=$GET(^RA(72,RAST,0))
- SET RA6=+$PIECE(RAEX(0),"^",6)
- +6 SET RA8=+$PIECE(RAEX(0),"^",8)
- SET RA9=+$PIECE(RAEX(0),"^",9)
- +7 SET RAST=$EXTRACT($SELECT(RAST]"":$PIECE(RAST,"^"),1:"Unknown"),1,20)
- +8 SET X=RADTE
- DO TIME^RAUTL1
- SET RATME=X
- +9 IF $DATA(^DIC(42,RA6,0))
- SET RAWHE=$PIECE(^DIC(42,RA6,0),"^")
- +10 IF $DATA(^SC(RA8,0))
- SET RAWHE=$PIECE(^SC(RA8,0),"^")
- +11 IF $DATA(^DIC(34,RA9,0))
- SET RAWHE=$PIECE(^DIC(34,RA9,0),"^")
- +12 IF $DATA(^RADPT(RADFN,"DT",RADTI,"P",RACNI,"R"))
- SET RAWHE=$PIECE(^("R"),"^")
- +13 SET RAWHE=$EXTRACT($SELECT($GET(RAWHE)]"":RAWHE,1:"Unknown"),1,20)
- +14 SET RARPT=+$PIECE(RAEX(0),"^",17)
- +15 SET RARPT=$SELECT($ORDER(^RARPT(RARPT,"R",0)):"Yes",1:"No")
- +16 IF $DATA(ZTQUEUED)
- DO STOPCHK^RAUTL9
- IF $GET(ZTSTOP)=1
- SET RAXIT=1
- IF RAXIT
- QUIT
- +17 SET ^TMP($JOB,"RADLY",RADIV)=+$GET(^TMP($JOB,"RADLY",RADIV))+1
- +18 SET ^TMP($JOB,"RADLY",RADIV,RAITYPE)=+$GET(^TMP($JOB,"RADLY",RADIV,RAITYPE))+1
- +19 SET ^TMP($JOB,"RADLY",RADIV,RAITYPE,RAILOC)=+$GET(^TMP($JOB,"RADLY",RADIV,RAITYPE,RAILOC))+1
- +20 SET RADIVTY=+$GET(RADIVTY)+1
- +21 NEW RASSAN,RACNDSP
- SET RASSAN=$$SSANVAL^RAHLRU1(RADFN,RADTI,RACNI)
- +22 SET RACNDSP=$SELECT((RASSAN'=""):RASSAN,1:RACN)
- +23 IF $$USESSAN^RAHLRU1()
- SET ^TMP($JOB,"RADLY",RADIV,RAITYPE,RAILOC,RANME,RADTE,RACNI)=RACNDSP_"^"_RAPRC_"^"_RAST_"^"_RATME_"^"_RAWHE_"^"_RARPT_"^"_RASSN
- +24 IF '$$USESSAN^RAHLRU1()
- SET ^TMP($JOB,"RADLY",RADIV,RAITYPE,RAILOC,RANME,RADTE,RACNI)=RACN_"^"_RAPRC_"^"_RAST_"^"_RATME_"^"_RAWHE_"^"_RARPT_"^"_RASSN
- +25 QUIT
- SYNOP ; Synopsis of data presented to the user.
- +1 SET A=""
- +2 WRITE !?RATAB(2),"Division",!?RATAB(2)+3,"Imaging Type",!?RATAB(2)+6,"Imaging Location(s)",!
- SYN1 SET A=$ORDER(^TMP($JOB,"RADLY",A))
- IF A']""
- QUIT
- +1 IF $Y>(IOSL-4)
- SET RAXIT=$$EOS^RAUTL5()
- IF 'RAXIT
- DO HD^RADLY1
- IF RAXIT
- QUIT
- +2 WRITE !!?RATAB(2),$PIECE($GET(^DIC(4,A,0)),"^")
- SET B=""
- SYN2 SET B=$ORDER(^TMP($JOB,"RADLY",A,B))
- IF B']""
- GOTO SYN1
- +1 IF $Y>(IOSL-4)
- SET RAXIT=$$EOS^RAUTL5()
- IF 'RAXIT
- DO HD^RADLY1
- IF RAXIT
- QUIT
- +2 WRITE !?RATAB(2)+3,B,!?RATAB(2)+6
- SET C=""
- SYN3 SET C=$ORDER(^TMP($JOB,"RADLY",A,B,C))
- IF C']""
- GOTO SYN2
- +1 IF $Y>(IOSL-4)
- SET RAXIT=$$EOS^RAUTL5()
- IF 'RAXIT
- DO HD^RADLY1
- IF RAXIT
- QUIT
- +2 IF $X>(IOM-30)
- WRITE !?RATAB(2)+6
- +3 WRITE C,?($X+3)
- +4 GOTO SYN3