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

DGCV1.m

Go to the documentation of this file.
  1. DGCV1 ;ALB/ERC,BRM - COMBAT VET REPORTS; 07/10/2003 ; 2/5/04 2:52pm
  1. ;;5.3;Registration;**528,565,1015**; Aug 13, 1993;Build 21
  1. ;
  1. ;first report is built during the initial seeding, and called by
  1. ;POST^DG53528P
  1. RPT(DG) ;if, during initial seeding, a veteran could not be evaluated
  1. ;for CV eligibility because of an imprecise date the veteran will be
  1. ;added to the appropriate ^XTMP global
  1. ; Input: DG - the code corresponding to the missing or imprecise date
  1. ;
  1. K VADM
  1. I $G(DG)']"" Q
  1. S ^XTMP("DGCV","REPORT",DFN,DG)=""
  1. Q
  1. REPORT ;if there are veterans in the ^XTMP globals, create a report.
  1. I '$D(^XTMP("DGCV","REPORT")) Q
  1. N ZTDESC,ZTIO,ZTRTN,ZTSAVE,ZTSK,ZUSR,POP,X,ERR
  1. K IOP,%ZIS
  1. I $G(XPDQUES("POS1","B"))]"" S ZTIO=$G(XPDQUES("POS1","B")) ;result of install question
  1. I $G(ZTIO)']"" S IOP=$G(^XTMP("DGCV","DEVICE"))
  1. S ZTSAVE("*")=""
  1. S ZTRTN="PRINT^DGCV1",ZTDESC="IMPRECISE COMBAT DATE REPORT"
  1. D ^%ZTLOAD
  1. EXIT ;
  1. K XPDQUES
  1. Q
  1. PRINT ;print report
  1. N PAGE,QUIT,DFN
  1. S PAGE=1
  1. S QUIT=""
  1. D HDR
  1. N DGF,DGFD,DGLN,DGNAM,DGSSN
  1. S (DGF,DFN)=""
  1. F S DFN=$O(^XTMP("DGCV","REPORT",DFN)) Q:DFN']"" D
  1. . Q:'$D(^DPT(DFN))
  1. . S (DGNAM,DGSSN)=""
  1. . D DEM(DFN)
  1. . I $G(DGNAM)']""!($G(DGSSN)']"") Q
  1. . S DGLN=DGNAM_"^"_DGSSN
  1. . N DGC
  1. . F S DGF=$O(^XTMP("DGCV","REPORT",DFN,DGF)) Q:DGF']""!(QUIT) D
  1. . . N DGFF
  1. . . I $L(DGF)=1 S DGFF=DGF S DGC=1 D SET
  1. . . I $L(DGF)=2 D
  1. . . . S DGFF=$E(DGF,1),DGC=1 D SET
  1. . . . S DGFF=$E(DGF,2),DGC=2 D SET
  1. W !,">>>>END OF REPORT"
  1. Q
  1. SET ;
  1. I DGFF["A"!(DGFF["F") S DGFD="SERVICE SEP"
  1. I DGFF["B"!(DGFF["G") S DGFD="COMBAT TO"
  1. I DGFF["C"!(DGFF["H") S DGFD="YUGOSLAVIA TO"
  1. I DGFF["D"!(DGFF["I") S DGFD="SOMALIA TO"
  1. I DGFF["E"!(DGFF["J") S DGFD="PERS GULF TO"
  1. I $G(DGFD)']"" Q
  1. S DGFD=DGFD_" DATE "_$S("ABCDE"[DGFF:"IMPRECISE",1:"MISSING")
  1. S DGLN=$S(DGC=1:DGLN_"^"_DGFD,DGC=2:"^^"_DGFD,1:"")
  1. D ADD(DGLN)
  1. Q
  1. DEM(DFN) ;
  1. N VADM
  1. D DEM^VADPT
  1. S DGNAM=$G(VADM(1))
  1. S DGSSN=$P($G(VADM(2)),U,2)
  1. Q
  1. ADD(DGLN) ;add the line to the report
  1. N DGX
  1. I $P(DGLN,U)]"" W !
  1. W !?2,$P(DGLN,U),?39,$P(DGLN,U,2),?52,$P(DGLN,U,3)
  1. I $E(IOST,1,2)="C-",($Y>(IOSL-4)) D
  1. . D PAUSE
  1. . Q:QUIT
  1. . D TOP
  1. I '$E(IOST,1,2)="C-",($Y>(IOSL-2)) D TOP
  1. Q
  1. ;
  1. TOP ;
  1. W @IOF
  1. D HDR
  1. Q
  1. ;
  1. HDR ;print header for report
  1. N Y
  1. W !!?5,"REPORT OF UPDATES REQUIRED FOR COMBAT VET STATUS" S Y=DT D DD^%DT W ?62,"Date: ",Y
  1. W !,?62,"Page: ",PAGE
  1. W !!?5,"The following patients could not be evaluated for Combat Veteran"
  1. W !?5,"Eligibility status due to having imprecise or missing dates."
  1. W !!!?2,"Patient Name",?39,"SSN",?52,"Date to be updated"
  1. W !?2,"===================================",?39,"===========",?52,"=========================="
  1. S PAGE=PAGE+1
  1. Q
  1. ;
  1. RPT2 ;second report is option DG CV STATUS, a report of what veterans were
  1. ;assigned CV status during a specified date range
  1. N DIR,DIRUT,X1,X2,X,Y,DGBEG,DGDT,DGEND
  1. S DIR(0)="DAO^,"_DT
  1. S X1=DT,X2=-7 D C^%DTC
  1. S Y=X D DD^%DT
  1. S DIR("A")="BEGINNING DATE: "
  1. S DIR("B")=Y
  1. S DIR("?")="ENTER THE BEGINNING DATE FOR THE REPORT"
  1. S DIR("??")="^W !,""A BEGINNING AND AN END DATE MUST BE ENTERED FOR THIS REPORT"""
  1. D ^DIR
  1. Q:$D(DIRUT)
  1. S DGBEG=Y
  1. S DIR(0)="DAO^"_DGBEG_","_DT
  1. S Y=DT D DD^%DT S DGDT=Y
  1. S DIR("B")=DGDT
  1. S DIR("A")="ENDING DATE: "
  1. S DIR("?")="ENTER THE ENDING DATE FOR THE REPORT"
  1. D ^DIR
  1. Q:$D(DIRUT)
  1. S DGEND=Y
  1. D REPORT2(DGBEG,DGEND)
  1. Q
  1. ;
  1. REPORT2(DGBEG,DGEND) ;
  1. I $G(DGBEG)']""!($G(DGEND)']"") W !!,"DATE RANGE NOT SET. EXITING" Q
  1. N ZTDESC,ZTIO,ZTRTN,ZTSAVE,ZTSK,ZUSR,POP,X,ERR
  1. K IOP,%ZIS
  1. S %ZIS="Q" D ^%ZIS G:POP EXIT2
  1. I $D(IO("Q")) D Q
  1. . S (ZTSAVE("DGBEG"),ZTSAVE("DGEND"))=""
  1. . S ZTRTN="PRINT2^DGCV1",ZTDESC="COMBAT VET DATE EDITED REPORT"
  1. . D ^%ZTLOAD
  1. . D ^%ZISC,HOME^%ZIS
  1. . W !,$S($D(ZTSK):"REQUEST QUEUED!",1:"REQUEST CANCELLED!")
  1. D PRINT2
  1. EXIT2 D ^%ZISC,HOME^%ZIS
  1. ;Q +G(ZTSK)
  1. Q
  1. PRINT2 ;
  1. N DGLN,PAGE,QUIT
  1. S QUIT=""
  1. U IO
  1. I $E(IOST,1,2)="C-" W @IOF
  1. S DGLN=0
  1. S PAGE=1
  1. D HDR2
  1. D DATA
  1. I DGLN=0 D
  1. . W !!!,?30,"No data to report."
  1. . I $E(IOST,1,2)="C-" D PAUSE
  1. D EXIT2
  1. Q
  1. HDR2 ;
  1. N DG1,DG2,Y
  1. S Y=DGBEG D DD^%DT S DG1=Y
  1. S Y=DGEND D DD^%DT S DG2=Y
  1. W !!?15,"COMBAT VETERAN STATUS CHANGED REPORT"
  1. S Y=DT D DD^%DT W ?60,"Date: ",Y
  1. W !?20,DG1_" TO "_DG2
  1. W ?60,"Page: "_PAGE
  1. W !!!?3,"NAME",?41,"SSN",?63,"CV END DATE",!?41,"PRIORITY GROUP"
  1. W !,?3,"===================================",?41,"=================",?63,"============"
  1. S PAGE=PAGE+1
  1. Q
  1. DATA ;
  1. N DGENR,DFN,DGNAM,DGSSN,DGDT,DGX,QUIT,Y,VADM
  1. S QUIT=""
  1. Q:$G(DGBEG)']""!($G(DGEND)']"")
  1. S DGX=DGBEG-1
  1. F S DGX=$O(^DPT("E",DGX)) Q:DGX'>0!(DGX>DGEND) D
  1. . S DFN=""
  1. . F S DFN=$O(^DPT("E",DGX,DFN)) Q:DFN']""!(QUIT) D
  1. . . Q:'$D(^DPT(DFN))
  1. . . K VADM,DGENR
  1. . . D DEM^VADPT
  1. . . Q:'$D(VADM)
  1. . . S DGNAM=VADM(1)
  1. . . S DGSSN=$P(VADM(2),U,2)
  1. . . S DGDT=$$GET1^DIQ(2,DFN_",",.5295,"E")
  1. . . I $G(DGDT)']"" S DGDT="DELETED!!!!"
  1. . . S DGENR=$$PRIOR(DFN)
  1. . . I $G(DGENR)']"" S DGENR="NONE"
  1. . . D ADD2
  1. Q
  1. PRIOR(DFN) ;gets priority and sub group
  1. ;
  1. N DGEN,DGIEN,DGSUB
  1. I $$GET^DGENA($$FINDCUR^DGENA(DFN),.DGEN) D
  1. . S DGENR=$G(DGEN("PRIORITY"))
  1. . S DGSUB=$G(DGEN("SUBGRP"))
  1. . I $G(DGSUB)]"" S DGENR=DGENR_$$EXTERNAL^DILFD(27.11,.12,"F",DGSUB)
  1. Q $G(DGENR)
  1. PAUSE ;
  1. N DIR,DIRUT,X,Y
  1. F Q:$Y>(IOSL-3) W !
  1. S DIR(0)="E"
  1. D ^DIR
  1. I ('(+Y))!($D(DIRUT)) S QUIT=1
  1. Q
  1. ADD2 ;
  1. I $E(IOST,1,2)="C-",($Y>(IOSL-6)) D
  1. . D PAUSE
  1. . Q:QUIT
  1. . D TOP2
  1. I '$E(IOST,1,2)="C-",($Y>(IOSL-2)) D TOP2
  1. I '(QUIT) D LINE
  1. Q
  1. TOP2 ;
  1. W @IOF
  1. D HDR2
  1. Q
  1. LINE ;add a line to the report
  1. W !?3,DGNAM,?41,DGSSN,?63,DGDT,!?41,DGENR,!
  1. S DGLN=1
  1. Q