- DGNTR1 ;ALB/RPM - N/T RADIUM PENDING VERIFICATION REPORT ; 10/4/01 11:05am
- ;;5.3;Registration;**397,1015**;Aug 13, 1993;Build 21
- ;
- ;This report lists all patients with an entry in the NTR HISTORY
- ;file (#28.11) that are pending verification.
- ;The report can be tasked using TaskMan and the EN^DGNTR1 entry point.
- ;The option allows manual generation of the report using a user selected
- ;output device.
- ;
- Q ;No direct entry
- ;
- EN ;Entry point
- I '$D(ZTQUEUED) D MAN Q
- ;
- QEN ;Start point for TaskMan queuing
- D START
- Q
- ;
- MAN ;Start point for manual report allows sort order and device selection
- N DGSORT
- S DGSORT=$$ASKSTAT^DGNTQ("Enter the sort type","NAME","SM^N:NAME;D:DATE")
- Q:DGSORT=0
- I $$DEVICE() D START
- Q
- ;
- DEVICE() ;Allow user selection of output device
- ; Input: none
- ;
- ; Output: Function value Interpretation
- ; 0 User decides to queue or not print report.
- ; 1 Device selected to generate report NOW.
- ;
- N OK,IOP,POP,%ZIS,DGX
- S OK=1
- S %ZIS="MQ"
- D ^%ZIS
- S:POP OK=0
- I OK,$D(IO("Q")) D
- . N ZTRTN,ZTDESC,ZTSAVE,ZTSK
- . S ZTRTN="START^DGNTR1"
- . S ZTSAVE("DGSORT")=""
- . S ZTDESC="Current N/T Radium Treatment Pending Verification report."
- . F DGX=1:1:20 D ^%ZTLOAD Q:$G(ZTSK)
- . W !,$S($D(ZTSK):"Request "_ZTSK_" Queued!",1:"Request Cancelled!"),!
- . D HOME^%ZIS
- . S OK=0
- Q OK
- ;
- START ;
- D LOOP(DGSORT)
- D PRINT(DGSORT)
- D EXIT
- Q
- ;
- LOOP(DGSORT) ;Locate all entries that are pending verification
- ;and build ^TMP("DGNT",$J, with data
- N DGIEN ;NTR record IEN
- N DGSTAT ;Screening Status
- K ^TMP("DGNT",$J)
- S DGIEN=0
- F DGSTAT=2,3 D
- . F S DGIEN=$O(^DGNT(28.11,"AST",DGSTAT,1,DGIEN)) Q:'DGIEN D
- . . D BLDTMP(DGIEN,DGSORT,DGSTAT)
- Q
- ;
- BLDTMP(DGIEN,DGSORT,DGST) ;^TMP("DGNT",$J global builder
- ; Build TMP file based on sort selection
- ;
- ; Input:
- ; DGIEN - IEN to patient's NTR record
- ; DGSORT - sort type ("N"ame or "D"ate)
- ; DGST - screening status (2-Pend Doc, 3-Pend DX)
- ;
- N DGX,DGNT,DFN
- N DGNAME,DGSSN,DGHNC,DGNTR,DGAVI,DGSUB,DGDATE,VADM
- N X,X1,X2,Y
- ;validate input parameters
- Q:'$G(DGIEN)
- Q:'$G(DGST)
- S DGSORT=$G(DGSORT)
- ;
- S DGX=$S(DGSORT="D":"DGDATE",1:"DGNAME")
- Q:'$$GETREC^DGNTAPI(DGIEN,"DGNT")
- S DFN=+$G(DGNT("DFN"))
- I DFN>0 D
- . Q:'+$G(DGNT("PRIM")) ;if not NTR PRIMARY ENTRY, quit out
- . D ^VADPT
- . S DGNAME=VADM(1)
- . S DGSSN=$P(VADM(2),U,2)
- . S DGNTR=$P($G(DGNT("NTR")),"^")
- . S DGAVI=$P($G(DGNT("AVI")),"^")
- . S DGSUB=$P($G(DGNT("SUB")),"^")
- . S DGDATE=$G(DGNT("EDT"))
- . S ^TMP("DGNT",$J,DGST,@DGX,DGIEN)=DGNAME_U_DGSSN_U_DGNTR_U_DGAVI_U_DGSUB_U_DGDATE
- . S ^TMP("DGNT",$J,"TOT"_DGST)=$G(^TMP("DGNT",$J,"TOT"_DGST))+1
- . S ^TMP("DGNT",$J,"TOT")=$G(^TMP("DGNT",$J,"TOT"))+1
- Q
- ;
- PRINT(DGSORT) ;
- U IO
- N DGST
- N DGX,DGIEN
- N DGFIRST,DGLINE
- N DGSITE,DGSTNUM,DGSTTN,DGSTN
- N DGQUIT,DGPAGE
- N DGDDT ;current date/time for header display
- S DGSORT=$G(DGSORT)
- S DGSITE=$$SITE^VASITE
- S DGSTNUM=$P(DGSITE,U,3),DGSTN=$P(DGSITE,U,2)
- S DGSTTN=$$NAME^VASITE(DT)
- S DGSTN=$S($G(DGSTTN)]"":DGSTTN,1:$G(DGSTN))
- S DGQUIT=0
- S DGPAGE=0
- S DGX=$S(DGSORT="D":"DGDATE",1:"DGNAME")
- S DGDDT=$$FMTE^XLFDT($$NOW^XLFDT,"D")
- D HEAD(DGDDT)
- I '$D(^TMP("DGNT",$J)) D Q
- . W !!!?20,"**** No records to report. ****"
- S @DGX=""
- F DGST=2,3 D
- . F S @DGX=$O(^TMP("DGNT",$J,DGST,@DGX)) Q:@DGX']"" D Q:DGQUIT
- .. S DGIEN=""
- .. F S DGIEN=$O(^TMP("DGNT",$J,DGST,@DGX,DGIEN)) Q:DGIEN="" D Q:DGQUIT
- ... D:$Y>(IOSL-4) HEAD(DGDDT)
- ... Q:DGQUIT
- ... S DGLINE=$G(^TMP("DGNT",$J,DGST,@DGX,DGIEN))
- ... W !,$P(DGLINE,U),?30,$P(DGLINE,U,2),?43,$P(DGLINE,U,3),?47,$P(DGLINE,U,4),?51,$P(DGLINE,U,5),?54,$$FMTE^XLFDT($P(DGLINE,U,6))
- . Q:DGQUIT
- . W !!?5,"Total Patients Pending "_$S(DGST=2:"Documentation",1:"Diagnosis")_" Verification: "_+$G(^TMP("DGNT",$J,"TOT"_DGST))
- . I DGST=2 D HEAD(DGDDT)
- ;
- ;Shutdown if stop task requested
- I DGQUIT W:$D(ZTQUEUED) !!,"REPORT STOPPED AT USER REQUEST" Q
- ;
- W !!?5,"Total Patients Pending Verification: "_$G(^TMP("DGNT",$J,"TOT"))
- I $G(DGPAGE)>0,$E(IOST)="C" K DIR S DIR(0)="E" D ^DIR K DIR S:+Y=0 DGQUIT=1
- Q
- ;
- HEAD(DGDT) ;Print/Display page header
- ;
- ; Input:
- ; DGDT - current date/time for display
- ; Output
- ; none
- ;
- I $D(ZTQUEUED),$$S^%ZTLOAD S (ZTSTOP,DGQUIT)=1 Q
- I $G(DGPAGE)>0,$E(IOST)="C" K DIR S DIR(0)="E" D ^DIR K DIR S:+Y=0 DGQUIT=1
- Q:DGQUIT
- W @IOF
- S DGPAGE=$G(DGPAGE)+1
- W !,DGDT,?15,"N/T RADIUM TREATMENT PENDING VERIFICATION REPORT",?70,"Page: ",$G(DGPAGE)
- W !,"STATION: "_$G(DGSTN)
- W !!,"Patient Name",?30,"SSN",?42,"NT",?46,"Avi",?50,"Sub",?54,"Date/Time Entered"
- W !,"-----------------------",?30,"-----------",?42,"---",?46,"---",?50,"---",?54,"----------------------"
- Q
- ;
- EXIT ;
- I $D(ZTQUEUED) S ZTREQ="@"
- K ^TMP("DGNT",$J)
- I '$D(ZTQUEUED) D
- . K %ZIS,POP
- . D ^%ZISC,HOME^%ZIS
- Q
- DGNTR1 ;ALB/RPM - N/T RADIUM PENDING VERIFICATION REPORT ; 10/4/01 11:05am
- +1 ;;5.3;Registration;**397,1015**;Aug 13, 1993;Build 21
- +2 ;
- +3 ;This report lists all patients with an entry in the NTR HISTORY
- +4 ;file (#28.11) that are pending verification.
- +5 ;The report can be tasked using TaskMan and the EN^DGNTR1 entry point.
- +6 ;The option allows manual generation of the report using a user selected
- +7 ;output device.
- +8 ;
- +9 ;No direct entry
- QUIT
- +10 ;
- EN ;Entry point
- +1 IF '$DATA(ZTQUEUED)
- DO MAN
- QUIT
- +2 ;
- QEN ;Start point for TaskMan queuing
- +1 DO START
- +2 QUIT
- +3 ;
- MAN ;Start point for manual report allows sort order and device selection
- +1 NEW DGSORT
- +2 SET DGSORT=$$ASKSTAT^DGNTQ("Enter the sort type","NAME","SM^N:NAME;D:DATE")
- +3 IF DGSORT=0
- QUIT
- +4 IF $$DEVICE()
- DO START
- +5 QUIT
- +6 ;
- DEVICE() ;Allow user selection of output device
- +1 ; Input: none
- +2 ;
- +3 ; Output: Function value Interpretation
- +4 ; 0 User decides to queue or not print report.
- +5 ; 1 Device selected to generate report NOW.
- +6 ;
- +7 NEW OK,IOP,POP,%ZIS,DGX
- +8 SET OK=1
- +9 SET %ZIS="MQ"
- +10 DO ^%ZIS
- +11 IF POP
- SET OK=0
- +12 IF OK
- IF $DATA(IO("Q"))
- Begin DoDot:1
- +13 NEW ZTRTN,ZTDESC,ZTSAVE,ZTSK
- +14 SET ZTRTN="START^DGNTR1"
- +15 SET ZTSAVE("DGSORT")=""
- +16 SET ZTDESC="Current N/T Radium Treatment Pending Verification report."
- +17 FOR DGX=1:1:20
- DO ^%ZTLOAD
- IF $GET(ZTSK)
- QUIT
- +18 WRITE !,$SELECT($DATA(ZTSK):"Request "_ZTSK_" Queued!",1:"Request Cancelled!"),!
- +19 DO HOME^%ZIS
- +20 SET OK=0
- End DoDot:1
- +21 QUIT OK
- +22 ;
- START ;
- +1 DO LOOP(DGSORT)
- +2 DO PRINT(DGSORT)
- +3 DO EXIT
- +4 QUIT
- +5 ;
- LOOP(DGSORT) ;Locate all entries that are pending verification
- +1 ;and build ^TMP("DGNT",$J, with data
- +2 ;NTR record IEN
- NEW DGIEN
- +3 ;Screening Status
- NEW DGSTAT
- +4 KILL ^TMP("DGNT",$JOB)
- +5 SET DGIEN=0
- +6 FOR DGSTAT=2,3
- Begin DoDot:1
- +7 FOR
- SET DGIEN=$ORDER(^DGNT(28.11,"AST",DGSTAT,1,DGIEN))
- IF 'DGIEN
- QUIT
- Begin DoDot:2
- +8 DO BLDTMP(DGIEN,DGSORT,DGSTAT)
- End DoDot:2
- End DoDot:1
- +9 QUIT
- +10 ;
- BLDTMP(DGIEN,DGSORT,DGST) ;^TMP("DGNT",$J global builder
- +1 ; Build TMP file based on sort selection
- +2 ;
- +3 ; Input:
- +4 ; DGIEN - IEN to patient's NTR record
- +5 ; DGSORT - sort type ("N"ame or "D"ate)
- +6 ; DGST - screening status (2-Pend Doc, 3-Pend DX)
- +7 ;
- +8 NEW DGX,DGNT,DFN
- +9 NEW DGNAME,DGSSN,DGHNC,DGNTR,DGAVI,DGSUB,DGDATE,VADM
- +10 NEW X,X1,X2,Y
- +11 ;validate input parameters
- +12 IF '$GET(DGIEN)
- QUIT
- +13 IF '$GET(DGST)
- QUIT
- +14 SET DGSORT=$GET(DGSORT)
- +15 ;
- +16 SET DGX=$SELECT(DGSORT="D":"DGDATE",1:"DGNAME")
- +17 IF '$$GETREC^DGNTAPI(DGIEN,"DGNT")
- QUIT
- +18 SET DFN=+$GET(DGNT("DFN"))
- +19 IF DFN>0
- Begin DoDot:1
- +20 ;if not NTR PRIMARY ENTRY, quit out
- IF '+$GET(DGNT("PRIM"))
- QUIT
- +21 DO ^VADPT
- +22 SET DGNAME=VADM(1)
- +23 SET DGSSN=$PIECE(VADM(2),U,2)
- +24 SET DGNTR=$PIECE($GET(DGNT("NTR")),"^")
- +25 SET DGAVI=$PIECE($GET(DGNT("AVI")),"^")
- +26 SET DGSUB=$PIECE($GET(DGNT("SUB")),"^")
- +27 SET DGDATE=$GET(DGNT("EDT"))
- +28 SET ^TMP("DGNT",$JOB,DGST,@DGX,DGIEN)=DGNAME_U_DGSSN_U_DGNTR_U_DGAVI_U_DGSUB_U_DGDATE
- +29 SET ^TMP("DGNT",$JOB,"TOT"_DGST)=$GET(^TMP("DGNT",$JOB,"TOT"_DGST))+1
- +30 SET ^TMP("DGNT",$JOB,"TOT")=$GET(^TMP("DGNT",$JOB,"TOT"))+1
- End DoDot:1
- +31 QUIT
- +32 ;
- PRINT(DGSORT) ;
- +1 USE IO
- +2 NEW DGST
- +3 NEW DGX,DGIEN
- +4 NEW DGFIRST,DGLINE
- +5 NEW DGSITE,DGSTNUM,DGSTTN,DGSTN
- +6 NEW DGQUIT,DGPAGE
- +7 ;current date/time for header display
- NEW DGDDT
- +8 SET DGSORT=$GET(DGSORT)
- +9 SET DGSITE=$$SITE^VASITE
- +10 SET DGSTNUM=$PIECE(DGSITE,U,3)
- SET DGSTN=$PIECE(DGSITE,U,2)
- +11 SET DGSTTN=$$NAME^VASITE(DT)
- +12 SET DGSTN=$SELECT($GET(DGSTTN)]"":DGSTTN,1:$GET(DGSTN))
- +13 SET DGQUIT=0
- +14 SET DGPAGE=0
- +15 SET DGX=$SELECT(DGSORT="D":"DGDATE",1:"DGNAME")
- +16 SET DGDDT=$$FMTE^XLFDT($$NOW^XLFDT,"D")
- +17 DO HEAD(DGDDT)
- +18 IF '$DATA(^TMP("DGNT",$JOB))
- Begin DoDot:1
- +19 WRITE !!!?20,"**** No records to report. ****"
- End DoDot:1
- QUIT
- +20 SET @DGX=""
- +21 FOR DGST=2,3
- Begin DoDot:1
- +22 FOR
- SET @DGX=$ORDER(^TMP("DGNT",$JOB,DGST,@DGX))
- IF @DGX']""
- QUIT
- Begin DoDot:2
- +23 SET DGIEN=""
- +24 FOR
- SET DGIEN=$ORDER(^TMP("DGNT",$JOB,DGST,@DGX,DGIEN))
- IF DGIEN=""
- QUIT
- Begin DoDot:3
- +25 IF $Y>(IOSL-4)
- DO HEAD(DGDDT)
- +26 IF DGQUIT
- QUIT
- +27 SET DGLINE=$GET(^TMP("DGNT",$JOB,DGST,@DGX,DGIEN))
- +28 WRITE !,$PIECE(DGLINE,U),?30,$PIECE(DGLINE,U,2),?43,$PIECE(DGLINE,U,3),?47,$PIECE(DGLINE,U,4),?51,$PIECE(DGLINE,U,5),?54,$$FMTE^XLFDT($PIECE(DGLINE,U,6))
- End DoDot:3
- IF DGQUIT
- QUIT
- End DoDot:2
- IF DGQUIT
- QUIT
- +29 IF DGQUIT
- QUIT
- +30 WRITE !!?5,"Total Patients Pending "_$SELECT(DGST=2:"Documentation",1:"Diagnosis")_" Verification: "_+$GET(^TMP("DGNT",$JOB,"TOT"_DGST))
- +31 IF DGST=2
- DO HEAD(DGDDT)
- End DoDot:1
- +32 ;
- +33 ;Shutdown if stop task requested
- +34 IF DGQUIT
- IF $DATA(ZTQUEUED)
- WRITE !!,"REPORT STOPPED AT USER REQUEST"
- QUIT
- +35 ;
- +36 WRITE !!?5,"Total Patients Pending Verification: "_$GET(^TMP("DGNT",$JOB,"TOT"))
- +37 IF $GET(DGPAGE)>0
- IF $EXTRACT(IOST)="C"
- KILL DIR
- SET DIR(0)="E"
- DO ^DIR
- KILL DIR
- IF +Y=0
- SET DGQUIT=1
- +38 QUIT
- +39 ;
- HEAD(DGDT) ;Print/Display page header
- +1 ;
- +2 ; Input:
- +3 ; DGDT - current date/time for display
- +4 ; Output
- +5 ; none
- +6 ;
- +7 IF $DATA(ZTQUEUED)
- IF $$S^%ZTLOAD
- SET (ZTSTOP,DGQUIT)=1
- QUIT
- +8 IF $GET(DGPAGE)>0
- IF $EXTRACT(IOST)="C"
- KILL DIR
- SET DIR(0)="E"
- DO ^DIR
- KILL DIR
- IF +Y=0
- SET DGQUIT=1
- +9 IF DGQUIT
- QUIT
- +10 WRITE @IOF
- +11 SET DGPAGE=$GET(DGPAGE)+1
- +12 WRITE !,DGDT,?15,"N/T RADIUM TREATMENT PENDING VERIFICATION REPORT",?70,"Page: ",$GET(DGPAGE)
- +13 WRITE !,"STATION: "_$GET(DGSTN)
- +14 WRITE !!,"Patient Name",?30,"SSN",?42,"NT",?46,"Avi",?50,"Sub",?54,"Date/Time Entered"
- +15 WRITE !,"-----------------------",?30,"-----------",?42,"---",?46,"---",?50,"---",?54,"----------------------"
- +16 QUIT
- +17 ;
- EXIT ;
- +1 IF $DATA(ZTQUEUED)
- SET ZTREQ="@"
- +2 KILL ^TMP("DGNT",$JOB)
- +3 IF '$DATA(ZTQUEUED)
- Begin DoDot:1
- +4 KILL %ZIS,POP
- +5 DO ^%ZISC
- DO HOME^%ZIS
- End DoDot:1
- +6 QUIT