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

PXRRFDD.m

Go to the documentation of this file.
  1. PXRRFDD ;ISL/PKR,ALB/Zoltan - PCE Frequency of Diagnosis report driver.;10/13/2017
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;**3,10,12,18,31,61,211**;Aug 12, 1996;Build 454
  1. MAIN ;
  1. N PXRRFDJB,PXRRFDST,PXRRIOD,PXRROPT,PXRRQUE,PXRRXTMP
  1. S PXRRXTMP=$$XTMPSUB^PXRRGUT("PXRRFD")
  1. S ^XTMP(PXRRXTMP,0)=$$FMADD^XLFDT(DT,7)_U_DT_U_"PXRR Frequency of Diagnosis"
  1. ;
  1. ;Establish the selection criteria.
  1. FAC ;Get the facility list.
  1. N NFAC,PXRRFAC,PXRRFACN
  1. D FACILITY^PXRRLCSC
  1. I $D(DTOUT)!$D(DUOUT) G EXIT
  1. ;
  1. DR ;Get the encounter date range.
  1. N PXRRBDT,PXRREDT
  1. D PDR^PXRRADUT(.PXRRBDT,.PXRREDT,"ENCOUNTER")
  1. I $D(DTOUT) G EXIT
  1. I $D(DUOUT) G FAC
  1. ;
  1. DIAG ;Get the diagnosis screening criteria.
  1. N PXRRFDDC
  1. D DIAGSC^PXRRFDSC
  1. I $D(DTOUT) G EXIT
  1. I $D(DUOUT) G DR
  1. ;
  1. EATT ;Get a list of encounter screening attributes.
  1. N PXRRECAT
  1. D ECAT^PXRRECSC
  1. I $D(DTOUT) G EXIT
  1. I $D(DUOUT) G DIAG
  1. ;
  1. ;Process the screening attributes
  1. ;
  1. SCAT ;Get the service categories.
  1. N PXRRSCAT
  1. I PXRRECAT["1" D
  1. . D SCAT^PXRRECSC
  1. E S PXRRSCAT="AI"
  1. I $D(DTOUT) G EXIT
  1. I $D(DUOUT) G EATT
  1. ;
  1. ETYPE ;Get the encounter types.
  1. ;This section is commented out so it can be easily restored if encounter
  1. ;types are used later. The part of ECAT^PXRRECSC relating to this should
  1. ;also be restored.
  1. ;N PXRRETYP
  1. ;I PXRRECAT["2" D
  1. ;. D ETYPE^PXRRECSC
  1. ;I $D(DTOUT) G EXIT
  1. ;I $D(DUOUT) G EATT
  1. ;
  1. LOC ;Get the locations.
  1. N NCS,NHL,PXRRCS,PXRRLCHL,PXRRLCSC
  1. I PXRRECAT["2" D
  1. . D LOC^PXRRLCSC("Determine frequency of diagnosis for","HS")
  1. I $D(DTOUT) G EXIT
  1. I $D(DUOUT) G EATT
  1. ;
  1. PRV ;Get the provider list.
  1. N NCL,NPL,PXRRPECL,PXRRPRPL,PXRRPRSC
  1. I PXRRECAT["3" D
  1. . D PRV^PXRRPRSC
  1. I $D(DTOUT) G EXIT
  1. I $D(DUOUT) G EATT
  1. ;
  1. DOB ;Get the patient age range.
  1. N PXRRDOB,PXRRDOBE,PXRRDOBS,PXRRMAXA,PXRRMINA
  1. I PXRRECAT["4" D
  1. . S PXRRMINA=$$AGE^PXRRADUT("MINIMUM",1)
  1. . I '$D(DTOUT)&'$D(DUOUT) D
  1. .. S PXRRMAXA=$$AGE^PXRRADUT("MAXIMUM",0)
  1. .;Convert the ages into dates of birth.
  1. . I +$G(PXRRMAXA)>0 S PXRRDOBS=$$DOBFA^PXRRADUT(PXRRMAXA)
  1. . I +$G(PXRRMINA)>0 S PXRRDOBE=$$DOBFA^PXRRADUT(PXRRMINA)
  1. . I ($D(PXRRDOBS))!($D(PXRRDOBE)) S PXRRDOB=1
  1. I $D(DTOUT) G EXIT
  1. I $D(DUOUT) G EATT
  1. ;
  1. RACE ;Get the patient race.
  1. N NRACE,PXRRRACE
  1. I PXRRECAT["5" D
  1. . D RACE^PXRRFDSC
  1. I $D(DTOUT) G EXIT
  1. I $D(DUOUT) G EATT
  1. ;
  1. PSEX ;Get the patient sex.
  1. N PXRRSEX
  1. I PXRRECAT["6" D
  1. . D SEX^PXRRFDSC
  1. I $D(DTOUT) G EXIT
  1. I $D(DUOUT) G EATT
  1. ;
  1. MAX ;Get the maximum number of diagnosis counts to include in the report.
  1. N PXRRDMAX
  1. D DMAX^PXRRFDSC
  1. I $D(DTOUT) G EXIT
  1. I $D(DUOUT) G EATT
  1. ;
  1. ;Determine whether the report should be queued.
  1. S %ZIS="QM"
  1. W !
  1. D ^%ZIS
  1. I POP G EXIT
  1. S PXRRIOD=ION_";"_IOST_";"_IOM_";"_IOSL
  1. S PXRRQUE=$G(IO("Q"))
  1. ;
  1. I PXRRQUE D
  1. .;Queue the report.
  1. . N DESC,IODEV,ROUTINE
  1. . S DESC="Frequency of Diagnosis Report - sort encounters"
  1. . S IODEV=""
  1. . S ROUTINE="SORT^PXRRFDSE"
  1. . S ^XTMP(PXRRXTMP,"SORTEZTSK")=$$QUE^PXRRQUE(DESC,IODEV,ROUTINE,"SAVE^PXRRFDD")
  1. .;
  1. . S DESC="Frequency of Diagnosis Report - sort diagnosis data"
  1. . S IODEV=""
  1. . S ROUTINE="SORT^PXRRFDSD"
  1. . S ZTDTH="@"
  1. . S ^XTMP(PXRRXTMP,"SORTDZTSK")=$$QUE^PXRRQUE(DESC,IODEV,ROUTINE,"SAVE^PXRRFDD")
  1. .;
  1. . S DESC="Frequency of diagnosis report - print"
  1. . S IODEV=PXRRIOD
  1. . S ROUTINE="PXRRFDP"
  1. . S ZTDTH="@"
  1. . S ^XTMP(PXRRXTMP,"PRZTSK")=$$QUE^PXRRQUE(DESC,IODEV,ROUTINE,"SAVE^PXRRFDD")
  1. E D SORT^PXRRFDSE
  1. Q
  1. ;
  1. ;====================
  1. EXIT ;
  1. D EXIT^PXRRGUT
  1. Q
  1. ;
  1. ;====================
  1. SAVE ;Save the variables.
  1. S ZTSAVE("PXRRBDT")="",ZTSAVE("PXRREDT")=""
  1. S ZTSAVE("PXRRDOB")=""
  1. S ZTSAVE("PXRRDOBE")=""
  1. S ZTSAVE("PXRRDOBS")=""
  1. S ZTSAVE("PXRRCS(")="",ZTSAVE("NCS")=""
  1. S ZTSAVE("PXRRDMAX")=""
  1. S ZTSAVE("PXRRECAT")=""
  1. S ZTSAVE("PXRRETYP")=""
  1. S ZTSAVE("PXRRFAC(")="",ZTSAVE("NFAC")=""
  1. S ZTSAVE("PXRRFACN(")=""
  1. S ZTSAVE("PXRRFDDC")=""
  1. S ZTSAVE("PXRRIOD")=""
  1. S ZTSAVE("PXRRLCHL(")="",ZTSAVE("NHL")=""
  1. S ZTSAVE("PXRRLCSC")=""
  1. S ZTSAVE("PXRRMAXA")=""
  1. S ZTSAVE("PXRRMINA")=""
  1. S ZTSAVE("PXRRPECL(")="",ZTSAVE("NCL")=""
  1. S ZTSAVE("PXRRPRPL(")="",ZTSAVE("NPL")=""
  1. S ZTSAVE("PXRRPRSC")=""
  1. S ZTSAVE("PXRRQUE")=""
  1. S ZTSAVE("PXRRSCAT")=""
  1. S ZTSAVE("PXRRRACE(")="",ZTSAVE("NRACE")=""
  1. S ZTSAVE("PXRRSEX")=""
  1. S ZTSAVE("PXRRXTMP")=""
  1. Q
  1. ;