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

DGENRPT1.m

Go to the documentation of this file.
  1. DGENRPT1 ;ALB/DW,LBD - EGT Preliminary Summary Impact Report ; 04/24/03 2:32pm ; 07/22/02 9:40am
  1. ;;5.3;Registration;**232,306,417,456,491,513**;Aug 13,1993
  1. ;
  1. ;
  1. ENPT ;Preliminary Summary Report selected.
  1. K ^TMP($J,"SS1"),^TMP($J,"RT1")
  1. I $$FINDCUR^DGENEGT()=0 W !,"No EGT setting on file." Q
  1. D PRINT
  1. Q
  1. ;
  1. GETEGTS ;First get the current EGT parameters from file #27.16.
  1. N GETEGTS,REC,TP S (GETEGTS,REC,TP)=""
  1. S REC=$$FINDCUR^DGENEGT() I REC=0 Q
  1. S TP=$$GET^DGENEGT(REC,.GETEGTS)
  1. ;Get EGT Prioity.
  1. S EGT=GETEGTS("PRIORITY")
  1. S EGTSUB=GETEGTS("SUBGRP")
  1. ;Get EGT Effective Date.
  1. S EGTEDT=GETEGTS("EFFDATE") I EGTEDT S EGTEDT=$$FMTE^XLFDT(EGTEDT)
  1. ;Get last EGT setting Date/Time.
  1. S EGTLDT=GETEGTS("ENTDATE") I EGTLDT S EGTLDT=$$FMTE^XLFDT(EGTLDT)
  1. ;Get EGT Type.
  1. S EGTTP=GETEGTS("TYPE")
  1. S EGTTP=$$EXTERNAL^DILFD(27.16,.04,"F",EGTTP) S:EGTTP="" EGTTP="UNSPECIFIED"
  1. Q
  1. ;
  1. PRESRT1 ;Sort for patient's current record and get the potentially affected.
  1. N IND,PRT,DFN,INPT,PSSN,TMP,ABV,PRTSUB
  1. S (IND,PRT,DFN,PSSN,TMP,ABV,PRTSUB)="",INPT="OUT"
  1. K ^TMP($J,"SS1"),^TMP($J,"RT1")
  1. F S DFN=$O(^DGEN(27.11,"C",DFN)) Q:DFN="" D
  1. . S IND=$$FINDCUR^DGENA(DFN)
  1. . I IND D EGTP I ABV=0 D
  1. .. K VAIP(2) S INPT="OUT" D IN5^VADPT S TMP=$P($G(VAIP(2)),U) I TMP=1!(TMP=2)!(TMP=6) S INPT="IN"
  1. .. K VADM(2) D DEM^VADPT S PSSN=$P($G(VADM(2)),U)
  1. .. S ^TMP($J,"RT1",PRT,PSSN)=PRT_"^"_INPT
  1. ;
  1. PRESRT2 ;Sort the sorted.
  1. N CNT,ICNT,OCNT,J,K
  1. S (J,K)=""
  1. F S J=$O(^TMP($J,"RT1",J)) Q:J="" D
  1. . S (CNT,ICNT,OCNT)=0
  1. . F S K=$O(^TMP($J,"RT1",J,K)) Q:K="" D
  1. .. S INPT=$P($G(^TMP($J,"RT1",J,K)),U,2)
  1. .. S CNT=CNT+1 S:INPT="IN" ICNT=ICNT+1 S:INPT="OUT" OCNT=OCNT+1
  1. .. S ^TMP($J,"SS1",J)=CNT_"^"_ICNT_"^"_OCNT
  1. K ^TMP($J,"RT1")
  1. Q
  1. ;
  1. EGTP ;Decide if the patient is above EGT.
  1. S (PRT,PRTSUB,ABV,ENRDT)=""
  1. S PRT=$P($G(^DGEN(27.11,IND,0)),U,7)
  1. S:((PRT=7)!(PRT=8)) PRTSUB=$P($G(^DGEN(27.11,IND,0)),U,12)
  1. S ENRDT=$P($G(^DGEN(27.11,IND,0)),U,10)
  1. S:'ENRDT ENRDT=$P($G(^DGEN(27.11,IND,0)),U)
  1. S ABV=$$ABOVE^DGENEGT1(DFN,PRT,PRTSUB)
  1. I PRT=7!(PRT=8) D
  1. . S PRTSUB=$$EXTERNAL^DILFD(27.11,.12,"F",PRTSUB)
  1. . S:PRTSUB="" PRTSUB="ER"
  1. S PRT=PRT_PRTSUB
  1. Q
  1. ;
  1. PRINT ;Print the report.
  1. N POP,IO,IOBS,IOF,IOHG,IOM,ION,IOPAR,IOS,IOSL,IOST,IOT,IOUPAR,IOXY,ZTSAVE,TSK,%ZIS,ZTRTN,ZTDESC
  1. S %ZIS="QM" D ^%ZIS G EXIT:POP
  1. I $D(IO("Q")) D G EXIT
  1. . S ZTRTN="WRITER^DGENRPT1",ZTDESC="DG EGT Preliminary Summary Report."
  1. . D ^%ZTLOAD
  1. . S TSK=$S($D(ZTSK)=0:"C",1:"Y")
  1. . I TSK="Y" W !!,"Report queued! Task number: ",ZTSK
  1. . D HOME^%ZIS
  1. ;
  1. WRITER ;Write out the report.
  1. U IO
  1. I $E(IOST,1,2)="C-" W @IOF
  1. N EGT,EGTSUB,EGTEDT,EGTLDT,EGTTP,ENRDT
  1. S (EGT,EGTSUB,EGTEDT,EGTLDT,EGTTP)=""
  1. D GETEGTS
  1. D PRESRT1
  1. D PSHEAD
  1. D DATA
  1. D ^%ZISC
  1. EXIT S:$D(ZTQUEUED) ZTREQ="@"
  1. D KVA^VADPT
  1. K ^TMP($J,"SS1")
  1. Q
  1. ;
  1. PSHEAD ;Header for the Preliminary Detailed Report.
  1. ;Get the date/time the report is run.
  1. N RDT,Y S (RDT,Y)=""
  1. D NOW^%DTC S Y=% X ^DD("DD")
  1. S RDT=$P(Y,"@",1)_" @ "_$P($P(Y,"@",2),":",1,2)
  1. S EGTSUB=$$EXTERNAL^DILFD(27.16,.03,"F",EGTSUB)
  1. I ((EGT=7)!(EGT=8)),EGTSUB="" S EGTSUB="ER"
  1. ;Write the header.
  1. W !,?((IOM-38)\2),"EGT Preliminary Summary Impact Report"
  1. W !,?((IOM-22-$L(RDT))\2),"Date/Time Report Run: ",RDT
  1. W !,?((IOM-45-$L(EGT_EGTSUB_EGTTP_EGTEDT))\2),"EGT Setting: ",EGT_EGTSUB," EGT Type: ",EGTTP," EGT Effective Date: ",EGTEDT
  1. W !,?((IOM-28-$L(EGTLDT))\2),"Date/Time Last EGT Setting: ",EGTLDT
  1. W !!,"IMPORTANT NOTE:",!,"Preliminary report is based on a comparison of the EGT setting to the veterans current enrollment priority as shown in VISTA."
  1. W !!,"ENROLLMENT PRIORITY",?23,"TOTAL (UNIQUE SSN)",?43,"# INPATIENT",?57,"# OUTPATIENT",!
  1. Q
  1. ;
  1. DATA ;Get all the data for the report.
  1. N T,EP,TLT,INPT,OPT,COUNT S (T,EP,TLT,INPT,OPT)="",COUNT=0
  1. F S T=$O(^TMP($J,"SS1",T)) Q:T="" D
  1. . S EP=T,TLT=$P($G(^TMP($J,"SS1",T)),U),INPT=$P($G(^TMP($J,"SS1",T)),U,2),OPT=$P($G(^TMP($J,"SS1",T)),U,3)
  1. . S COUNT=COUNT+TLT
  1. . W !,EP,?25,TLT,?45,INPT,?59,OPT
  1. W !,"TOTAL PATIENTS (UNIQUE SSNS) FOR THIS FACILITY: ",COUNT
  1. Q