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

PXRMCCHT.m

Go to the documentation of this file.
  1. PXRMCCHT ;BP/WAT; Report patients with Previous Enroll health factor ;06/03/16 08:14
  1. ;;2.0;CLINICAL REMINDERS;**19**;Feb 04, 2005;Build 187
  1. ;
  1. ;^VADPT - 10061 ;^XLFDT - 10103 ;^XLFSTR - 10104 ;^%ZTLOAD - 10063 ;XUTMDEVQ - 1519
  1. ;^DIR - 10026 ;^AUTTHF - 3083
  1. ;
  1. EN ;start
  1. N BDT,POP,DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT,PXRMTOT,PXRMSAVE
  1. K ^TMP("PXRMPATS",$J)
  1. S DIR(0)="D^2991231:DT"
  1. S DIR("A")="Start date"
  1. S DIR("A",1)="This report will try to find all patients that have the"
  1. S DIR("A",2)="HT ENROLLMENT-START DATE (PREV ENROLL) Health Factor."
  1. S DIR("A",3)="The default start date is 12/31/1999 and the report will"
  1. S DIR("A",4)="search forward from that date."
  1. S DIR("A",5)=""
  1. S DIR("B")="12/31/1999"
  1. W @IOF
  1. D ^DIR
  1. Q:$D(DIRUT)
  1. S BDT=$G(Y)
  1. N PXRMTASK S PXRMTASK=1
  1. S PXRMSAVE("*")=""
  1. D EN^XUTMDEVQ("PRINT^PXRMCCHT","HT Previous Enrollment HF Search",.PXRMSAVE,PXRMTASK)
  1. W:$G(PXRMTASK)>1 "Queued successfully, task #: "_$G(PXRMTASK)
  1. Q
  1. ;
  1. PRINT ; output
  1. D FINDPAT
  1. N DONE,HFNAME,PATNAME,PXRMPAGE,HFCOUNT,RUNDATE
  1. S (HFNAME,PATNAME)="",PXRMPAGE=1,RUNDATE=$$HTE^XLFDT($H,"1P")
  1. W:$E(IOST,1,2)="C-" @IOF
  1. D HEADER(PXRMPAGE) S PXRMPAGE=PXRMPAGE+1
  1. F HFNAME="CCHT ENROLLMENT-START DATE (PREV ENROLL)","HT ENROLLMENT-START DATE (PREV ENROLL)" D Q:+$G(DONE)
  1. . W:HFNAME["CCHT" !,HFNAME
  1. . W:HFNAME'["CCHT" !!,HFNAME
  1. . I $D(^TMP("PXRMPATS",$J,HFNAME))'>10 W !," No data" Q
  1. . I $Y>(IOSL-3) D
  1. .. I $E(IOST,1,2)["C-" D
  1. ... N DIR S DIR(0)="E" D ^DIR
  1. ... I 'Y S DONE=1
  1. .. Q:$G(DONE)
  1. .. D HEADER(PXRMPAGE) S PXRMPAGE=PXRMPAGE+1
  1. . Q:$G(DONE)
  1. . F S PATNAME=$O(^TMP("PXRMPATS",$J,HFNAME,PATNAME)) Q:PATNAME="" D Q:$G(DONE)
  1. .. I $Y>(IOSL-3) D
  1. ... I $E(IOST,1,2)["C-" D
  1. .... N DIR S DIR(0)="E" D ^DIR
  1. .... I 'Y S DONE=1
  1. ... Q:$G(DONE)
  1. ... D HEADER(PXRMPAGE) S PXRMPAGE=PXRMPAGE+1
  1. .. Q:$G(DONE)
  1. .. W !!,^TMP("PXRMPATS",$J,HFNAME,PATNAME,0)
  1. .. S HFCOUNT=0
  1. .. F S HFCOUNT=$O(^TMP("PXRMPATS",$J,HFNAME,PATNAME,HFCOUNT)) Q:HFCOUNT=""!($G(DONE)) D
  1. ... I $Y>(IOSL-3) D
  1. .... I $E(IOST,1,2)["C-" D
  1. ..... N DIR S DIR(0)="E" D ^DIR
  1. ..... I 'Y S DONE=1
  1. .... Q:$G(DONE)
  1. .... D HEADER(PXRMPAGE) S PXRMPAGE=PXRMPAGE+1
  1. ... Q:$G(DONE)
  1. ... W !,^TMP("PXRMPATS",$J,HFNAME,PATNAME,HFCOUNT)
  1. Q:$G(DONE)
  1. W !!,PXRMTOT
  1. W !,$$CJ^XLFSTR("END OF REPORT",$S(+$G(IOM)>0:(IOM-1),1:79)," "),!
  1. Q
  1. ;
  1. W @IOF
  1. W !,$$REPEAT^XLFSTR("-",IOM-2),!
  1. W "Patients with (CC)HT ENROLLMENT-START DATE (PREV ENROLL) Health Factor"
  1. W !,"DATE RANGE - FROM: "_$$FMTE^XLFDT($G(BDT))_" TO: "_$$FMTE^XLFDT(DT)
  1. W !,$G(RUNDATE)
  1. W !,$$REPEAT^XLFSTR("-",IOM-2)
  1. W !," NAME AND LAST 4 SSN"_$$REPEAT^XLFSTR(" ",28)_"ENCOUNTER DATE"
  1. W !," PAGE: "_$G(PG)
  1. W !,$$REPEAT^XLFSTR("=",IOM-2),!
  1. Q
  1. ;
  1. FINDPAT ;find patients with HT ENROLLMENT-START DATE (PREV ENROLL) health factor
  1. ; find health factor
  1. ;^PXRMINDX(FILE NUMBER,"IP",ITEM,DFN,DATE,DAS)
  1. ;TOTPAT = total number of patients found
  1. N TOTPAT,FOUND,HFCOUNT,NAMEL4 S (TOTPAT,ZTSTOP)=0
  1. N DFN,HFIEN,HFNAME,PTDFN,VISDATE,EXVISDT,VHFIEN,PTSSN,PTNAME S (HFIEN,PTDFN,VISDATE,EXVISDT)=""
  1. F HFNAME="CCHT ENROLLMENT-START DATE (PREV ENROLL)","HT ENROLLMENT-START DATE (PREV ENROLL)" D
  1. .S HFIEN=$O(^AUTTHF("B",HFNAME,""))
  1. .Q:$G(HFIEN)=""
  1. .S ^TMP("PXRMPATS",$J,HFNAME)=""
  1. .F S PTDFN=$O(^PXRMINDX(9000010.23,"IP",HFIEN,PTDFN)) Q:PTDFN'>""!($G(ZTSTOP)=1) D
  1. ..I TOTPAT#50=0,($$S^%ZTLOAD) N X S ZTSTOP=1,X=$$S^%ZTLOAD("Received shutdown request") Q
  1. ..S DFN=PTDFN D DEM^VADPT S PTSSN=$P(VADM(2),U,2),PTNAME=VADM(1)
  1. ..S PTSSN=$P($G(PTSSN),"-",3),PTSSN="("_PTSSN_")"
  1. ..S NAMEL4=" "_PTNAME_" "_PTSSN
  1. ..I $L(NAMEL4)<40 S NAMEL4=NAMEL4_($$REPEAT^XLFSTR(" ",(40-$L(NAMEL4))))
  1. ..S ^TMP("PXRMPATS",$J,HFNAME,VADM(1),0)=NAMEL4
  1. ..S HFCOUNT=0
  1. ..F S VISDATE=$O(^PXRMINDX(9000010.23,"IP",HFIEN,PTDFN,VISDATE)) Q:VISDATE="" D
  1. ...S FOUND=0
  1. ...Q:VISDATE<BDT
  1. ...;need to capture each visit date this HF was recorded for this patient
  1. ...S:$G(VISDATE)="" EXVISDT="DATE MISSING"
  1. ...S EXVISDT=$$FMTE^XLFDT(VISDATE,"D")
  1. ...I $L(EXVISDT)<12 S EXVISDT=($$REPEAT^XLFSTR(" ",(12-$L(EXVISDT))))_EXVISDT
  1. ...S EXVISDT=$J(EXVISDT,21)
  1. ...I HFCOUNT=0 D Q
  1. ....S ^TMP("PXRMPATS",$J,HFNAME,VADM(1),0)=^TMP("PXRMPATS",$J,HFNAME,VADM(1),0)_EXVISDT,FOUND=1,TOTPAT=TOTPAT+1,HFCOUNT=HFCOUNT+1
  1. ...I HFCOUNT>0 D Q
  1. ....S EXVISDT=$J(EXVISDT,61)
  1. ....S ^TMP("PXRMPATS",$J,HFNAME,VADM(1),HFCOUNT)=EXVISDT,FOUND=1,HFCOUNT=HFCOUNT+1
  1. ..I FOUND=0 D
  1. ...K ^TMP("PXRMPATS",$J,HFNAME,VADM(1))
  1. S PXRMTOT="TOTAL PATIENTS FOUND:"_$$REPEAT^XLFSTR("-",28)_TOTPAT
  1. D KVA^VADPT
  1. Q