Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DGNTR1

DGNTR1.m

Go to the documentation of this file.
  1. 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
  1. ;
  1. ;This report lists all patients with an entry in the NTR HISTORY
  1. ;file (#28.11) that are pending verification.
  1. ;The report can be tasked using TaskMan and the EN^DGNTR1 entry point.
  1. ;The option allows manual generation of the report using a user selected
  1. ;output device.
  1. ;
  1. Q ;No direct entry
  1. ;
  1. EN ;Entry point
  1. I '$D(ZTQUEUED) D MAN Q
  1. ;
  1. QEN ;Start point for TaskMan queuing
  1. D START
  1. Q
  1. ;
  1. MAN ;Start point for manual report allows sort order and device selection
  1. N DGSORT
  1. S DGSORT=$$ASKSTAT^DGNTQ("Enter the sort type","NAME","SM^N:NAME;D:DATE")
  1. Q:DGSORT=0
  1. I $$DEVICE() D START
  1. Q
  1. ;
  1. DEVICE() ;Allow user selection of output device
  1. ; Input: none
  1. ;
  1. ; Output: Function value Interpretation
  1. ; 0 User decides to queue or not print report.
  1. ; 1 Device selected to generate report NOW.
  1. ;
  1. N OK,IOP,POP,%ZIS,DGX
  1. S OK=1
  1. S %ZIS="MQ"
  1. D ^%ZIS
  1. S:POP OK=0
  1. I OK,$D(IO("Q")) D
  1. . N ZTRTN,ZTDESC,ZTSAVE,ZTSK
  1. . S ZTRTN="START^DGNTR1"
  1. . S ZTSAVE("DGSORT")=""
  1. . S ZTDESC="Current N/T Radium Treatment Pending Verification report."
  1. . F DGX=1:1:20 D ^%ZTLOAD Q:$G(ZTSK)
  1. . W !,$S($D(ZTSK):"Request "_ZTSK_" Queued!",1:"Request Cancelled!"),!
  1. . D HOME^%ZIS
  1. . S OK=0
  1. Q OK
  1. ;
  1. START ;
  1. D LOOP(DGSORT)
  1. D PRINT(DGSORT)
  1. D EXIT
  1. Q
  1. ;
  1. LOOP(DGSORT) ;Locate all entries that are pending verification
  1. ;and build ^TMP("DGNT",$J, with data
  1. N DGIEN ;NTR record IEN
  1. N DGSTAT ;Screening Status
  1. K ^TMP("DGNT",$J)
  1. S DGIEN=0
  1. F DGSTAT=2,3 D
  1. . F S DGIEN=$O(^DGNT(28.11,"AST",DGSTAT,1,DGIEN)) Q:'DGIEN D
  1. . . D BLDTMP(DGIEN,DGSORT,DGSTAT)
  1. Q
  1. ;
  1. BLDTMP(DGIEN,DGSORT,DGST) ;^TMP("DGNT",$J global builder
  1. ; Build TMP file based on sort selection
  1. ;
  1. ; Input:
  1. ; DGIEN - IEN to patient's NTR record
  1. ; DGSORT - sort type ("N"ame or "D"ate)
  1. ; DGST - screening status (2-Pend Doc, 3-Pend DX)
  1. ;
  1. N DGX,DGNT,DFN
  1. N DGNAME,DGSSN,DGHNC,DGNTR,DGAVI,DGSUB,DGDATE,VADM
  1. N X,X1,X2,Y
  1. ;validate input parameters
  1. Q:'$G(DGIEN)
  1. Q:'$G(DGST)
  1. S DGSORT=$G(DGSORT)
  1. ;
  1. S DGX=$S(DGSORT="D":"DGDATE",1:"DGNAME")
  1. Q:'$$GETREC^DGNTAPI(DGIEN,"DGNT")
  1. S DFN=+$G(DGNT("DFN"))
  1. I DFN>0 D
  1. . Q:'+$G(DGNT("PRIM")) ;if not NTR PRIMARY ENTRY, quit out
  1. . D ^VADPT
  1. . S DGNAME=VADM(1)
  1. . S DGSSN=$P(VADM(2),U,2)
  1. . S DGNTR=$P($G(DGNT("NTR")),"^")
  1. . S DGAVI=$P($G(DGNT("AVI")),"^")
  1. . S DGSUB=$P($G(DGNT("SUB")),"^")
  1. . S DGDATE=$G(DGNT("EDT"))
  1. . S ^TMP("DGNT",$J,DGST,@DGX,DGIEN)=DGNAME_U_DGSSN_U_DGNTR_U_DGAVI_U_DGSUB_U_DGDATE
  1. . S ^TMP("DGNT",$J,"TOT"_DGST)=$G(^TMP("DGNT",$J,"TOT"_DGST))+1
  1. . S ^TMP("DGNT",$J,"TOT")=$G(^TMP("DGNT",$J,"TOT"))+1
  1. Q
  1. ;
  1. PRINT(DGSORT) ;
  1. U IO
  1. N DGST
  1. N DGX,DGIEN
  1. N DGFIRST,DGLINE
  1. N DGSITE,DGSTNUM,DGSTTN,DGSTN
  1. N DGQUIT,DGPAGE
  1. N DGDDT ;current date/time for header display
  1. S DGSORT=$G(DGSORT)
  1. S DGSITE=$$SITE^VASITE
  1. S DGSTNUM=$P(DGSITE,U,3),DGSTN=$P(DGSITE,U,2)
  1. S DGSTTN=$$NAME^VASITE(DT)
  1. S DGSTN=$S($G(DGSTTN)]"":DGSTTN,1:$G(DGSTN))
  1. S DGQUIT=0
  1. S DGPAGE=0
  1. S DGX=$S(DGSORT="D":"DGDATE",1:"DGNAME")
  1. S DGDDT=$$FMTE^XLFDT($$NOW^XLFDT,"D")
  1. D HEAD(DGDDT)
  1. I '$D(^TMP("DGNT",$J)) D Q
  1. . W !!!?20,"**** No records to report. ****"
  1. S @DGX=""
  1. F DGST=2,3 D
  1. . F S @DGX=$O(^TMP("DGNT",$J,DGST,@DGX)) Q:@DGX']"" D Q:DGQUIT
  1. .. S DGIEN=""
  1. .. F S DGIEN=$O(^TMP("DGNT",$J,DGST,@DGX,DGIEN)) Q:DGIEN="" D Q:DGQUIT
  1. ... D:$Y>(IOSL-4) HEAD(DGDDT)
  1. ... Q:DGQUIT
  1. ... S DGLINE=$G(^TMP("DGNT",$J,DGST,@DGX,DGIEN))
  1. ... 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))
  1. . Q:DGQUIT
  1. . W !!?5,"Total Patients Pending "_$S(DGST=2:"Documentation",1:"Diagnosis")_" Verification: "_+$G(^TMP("DGNT",$J,"TOT"_DGST))
  1. . I DGST=2 D HEAD(DGDDT)
  1. ;
  1. ;Shutdown if stop task requested
  1. I DGQUIT W:$D(ZTQUEUED) !!,"REPORT STOPPED AT USER REQUEST" Q
  1. ;
  1. W !!?5,"Total Patients Pending Verification: "_$G(^TMP("DGNT",$J,"TOT"))
  1. I $G(DGPAGE)>0,$E(IOST)="C" K DIR S DIR(0)="E" D ^DIR K DIR S:+Y=0 DGQUIT=1
  1. Q
  1. ;
  1. ;
  1. ; Input:
  1. ; DGDT - current date/time for display
  1. ; Output
  1. ; none
  1. ;
  1. I $D(ZTQUEUED),$$S^%ZTLOAD S (ZTSTOP,DGQUIT)=1 Q
  1. I $G(DGPAGE)>0,$E(IOST)="C" K DIR S DIR(0)="E" D ^DIR K DIR S:+Y=0 DGQUIT=1
  1. Q:DGQUIT
  1. W @IOF
  1. S DGPAGE=$G(DGPAGE)+1
  1. W !,DGDT,?15,"N/T RADIUM TREATMENT PENDING VERIFICATION REPORT",?70,"Page: ",$G(DGPAGE)
  1. W !,"STATION: "_$G(DGSTN)
  1. W !!,"Patient Name",?30,"SSN",?42,"NT",?46,"Avi",?50,"Sub",?54,"Date/Time Entered"
  1. W !,"-----------------------",?30,"-----------",?42,"---",?46,"---",?50,"---",?54,"----------------------"
  1. Q
  1. ;
  1. EXIT ;
  1. I $D(ZTQUEUED) S ZTREQ="@"
  1. K ^TMP("DGNT",$J)
  1. I '$D(ZTQUEUED) D
  1. . K %ZIS,POP
  1. . D ^%ZISC,HOME^%ZIS
  1. Q