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

AGAGERP.m

Go to the documentation of this file.
  1. AGAGERP ; VNGT/IHS/DLS - Patient Age Specific Report ; April 29, 2010
  1. ;;7.1;PATIENT REGISTRATION;**8,9**;AUG 25, 2005
  1. ;
  1. VAR N TAG,EXCL,EXCLS,AGLINE,AGINS
  1. K ^TMP("AGAGERP",$J)
  1. ;
  1. ;Initialize Variables
  1. ;
  1. D INTRO
  1. PLOOP ; For looping back to paremeter menu.
  1. D GETPARAM
  1. I '$D(EXCL) G EXIT
  1. I ($G(EXCL("Elig Date Range"))'="")&($G(EXCL("Alternate Resource"))="") D G PLOOP
  1. . W !!," ============================================================================"
  1. . W !," An Alternate Resource of 'MEDICARE', 'MEDICAID', 'PRIVATE INSURANCE',"
  1. . W !," 'SPECIFIC INSURER', 'WORKMEN'S COMP', 'PRIVATE & WORKMEN'S COMP', or 'CHIP'"
  1. . W !," must be selected when entering a Point in Time date. Patients with eligibil-"
  1. . W !," ity up to 3 years before the date entered will be included in the selection"
  1. . W !," process."
  1. . W !," ============================================================================",!
  1. . K DIR D RTRN^AG
  1. DEV ;
  1. S %ZIS="QA"
  1. D ^%ZIS
  1. I POP N IOP S IOP=ION D ^%ZIS Q
  1. I $G(IO("Q")) D QUE D HOME^%ZIS Q
  1. U IO
  1. D GO
  1. D ^%ZISC
  1. D HOME^%ZIS
  1. Q
  1. GO ; Proceed with processing
  1. D GETDATA^AGAGERP1
  1. D PRINT^AGAGERP2
  1. G EXIT
  1. Q
  1. ;
  1. INTRO ; Introduction Screen
  1. W !!!," NOTE: To run this report you must select at least one parameter."
  1. W !," If no parameters are selected, you will return to the reports menu.",!
  1. D RTRN^AG
  1. Q
  1. ;
  1. GETPARAM ; Main Report Driver
  1. W @IOF
  1. I $D(EXCL) D EXCLIST
  1. N TAG,X,Y
  1. K DIR
  1. S DIR("A")=" Select ONE or MORE of the above EXCLUSION PARAMETERS"
  1. S DIR(0)="SO^1:LOCATION;2:ALTERNATE RESOURCE;3:DATE;4:AGE RANGE;5:ELIGIBILITY STATUS"
  1. S DIR("L",1)=" Select one of the following:"
  1. S DIR("L",2)=""
  1. S DIR("L",3)=" 1 LOCATION"
  1. S DIR("L",4)=" 2 ALTERNATE RESOURCE"
  1. S DIR("L",5)=" 3 DATE RANGE"
  1. S DIR("L",6)=" 4 AGE RANGE"
  1. S DIR("L")=" 5 ELIGIBILITY STATUS"
  1. D ^DIR K DIR
  1. Q:Y=""
  1. I Y["^" K EXCL Q
  1. S TAG="ASK"_$E(Y(0),1,3)
  1. D @TAG
  1. K TAG
  1. D GETPARAM
  1. Q
  1. ;
  1. EXCLIST ; List Exclusion Paramenters selected so far.
  1. W !!!
  1. W " EXCLUSION PARAMETERS Currently in Effect for RESTRICTING the EXPORT to:"
  1. W !," ======================================================================="
  1. N EXCLS,AGDOTS,AGDOTLN
  1. S EXCLS="" F S EXCLS=$O(EXCL(EXCLS)) Q:EXCLS="" D
  1. . W !," - ",EXCLS
  1. . S AGDOTS=22-$L(EXCLS)
  1. . S AGDOTLN=""
  1. . S $P(AGDOTLN,".",AGDOTS)=""
  1. . W AGDOTLN,": ",$P($G(EXCL(EXCLS)),U,2)
  1. . I EXCLS="Visit Date Range" W " - ",$P($G(EXCL(EXCLS)),U,4)
  1. . I EXCLS="Elig Date Range" W " - ",$P($G(EXCL(EXCLS)),U,4)
  1. Q
  1. ;
  1. ASKLOC ; Prompts to get location
  1. K DIR
  1. S DIR(0)="PO^9999999.06,DUZ(2),:AEM"
  1. S DIR("A")=" Enter a location"
  1. S:$D(EXCL("Location")) DIR("B")=$P(EXCL("Location"),U,2)
  1. D ^DIR K DIR
  1. I X["@" K EXCL("Location") Q
  1. Q:(X="")!(X["^")
  1. S EXCL("Location")=+Y_U_$$GET1^DIQ(4,+Y,.01)
  1. Q
  1. ;
  1. ASKALT ; Prompts to get Alt Resource
  1. N X,Y
  1. K DIR
  1. S DIR("A")=" Select TYPE of ALTERNATE RESOURCE to Display"
  1. S:$D(EXCL("Alternate Resource")) DIR("B")=$P(EXCL("Alternate Resource"),"^",2)
  1. S DIR(0)="SO^1:MEDICARE;2:MEDICAID;3:PRIVATE INSURANCE;4:SPECIFIC INSURER;5:SPECIFIC PATIENT;6:WORKMEN'S COMP;7:PRIVATE + WORKMEN'S COMP;8:CHIP;9:NO RESOURCES"
  1. S DIR("L",1)=" Select one of the following:"
  1. S DIR("L",2)=""
  1. S DIR("L",3)=" 1 MEDICARE"
  1. S DIR("L",4)=" 2 MEDICAID"
  1. S DIR("L",5)=" 3 PRIVATE INSURANCE"
  1. S DIR("L",6)=" 4 SPECIFIC INSURER"
  1. S DIR("L",7)=" 5 SPECIFIC PATIENT"
  1. S DIR("L",8)=" 6 WORKMEN'S COMP"
  1. S DIR("L",9)=" 7 PRIVATE + WORKMEN'S COMP"
  1. S DIR("L")=" 8 CHIP"
  1. D ^DIR K DIR
  1. I X=4 S EXCL("Alternate Resource")="4^SPECIFIC INSURER" D ASKINS Q
  1. I X=5 D ASKPNT Q
  1. I X["@" K EXCL("Alternate Resource") Q
  1. Q:(X="")!(X["^")
  1. S EXCL("Alternate Resource")=Y_U_Y(0)
  1. Q
  1. ;
  1. ASKDAT ; Prompts to get date type
  1. N TAG
  1. K DIR
  1. S DIR("A")=" Select type of Date Desired"
  1. S DIR(0)="SO^1:Visit Date;2:Point in Time"
  1. S DIR("L",1)=" 1 Visit Date"
  1. S DIR("L")=" 2 Point in Time"
  1. D ^DIR K DIR
  1. Q:(X="")!(X["^")!(X["@")
  1. S TAG="ASK"_$E(Y(0),1,3)
  1. I Y=1 S TAG="ASKVIS"
  1. I Y=2 S TAG="ASKPOI"
  1. D @TAG
  1. K TAG
  1. Q
  1. ;
  1. ASKVIS ; Prompts to get Visits within date range
  1. K DIR
  1. K EXCL("Elig Date Range")
  1. N Y1,Y2,Y3,Y4
  1. W !!," ============ Entry of VISIT DATE Range ===========",!
  1. S DIR("A")=" Enter STARTING VISIT DATE for the Report"
  1. S:$D(EXCL("Visit Date Range")) DIR("B")=$P(EXCL("Visit Date Range"),"^",2)
  1. S DIR(0)="DO"
  1. D ^DIR K DIR
  1. I X["@" K EXCL("Visit Date Range") Q
  1. Q:(X="")!(X["^")!(X["@")
  1. W "// ",Y(0)
  1. S Y1=Y
  1. I $G(Y1)]"" S Y=Y1 D DD^%DT S Y2=Y
  1. S DIR("A")=" Enter ENDING DATE for the Report"
  1. S:$D(EXCL("Visit Date Range")) DIR("B")=$P(EXCL("Visit Date Range"),"^",4)
  1. S DIR(0)="DO"
  1. D ^DIR K DIR
  1. I X["@" K EXCL("Visit Date Range") Q
  1. Q:(X="")!(X["^")!(X["@")
  1. W "// ",Y(0)
  1. S Y3=Y D DD^%DT S Y4=4
  1. I Y3<Y1 D Q
  1. . W !!," To Date must be after From Date. Please try again."
  1. . K EXCL("Visit Date Range")
  1. . D ASKVIS
  1. I $G(Y3)]"" S Y=Y3 D DD^%DT S Y4=Y
  1. S EXCL("Visit Date Range")=$G(Y1)_U_$G(Y2)_U_$G(Y3)_U_$G(Y4)
  1. Q
  1. ;
  1. ASKPOI ; Prompt for Elig date
  1. K DIR
  1. K EXCL("Visit Date Range")
  1. N Y1,Y2,Y3,Y4
  1. W !!," =========== Point in Time Date for Alternate Resource Eligibility:============"
  1. W !," An Alternate Resource of 'MEDICARE', 'MEDICAID', 'PRIVATE INSURANCE',"
  1. W !," 'SPECIFIC INSURER', 'WORKMEN'S COMP', 'PRIVATE & WORKMEN'S COMP', or 'CHIP'"
  1. W !," must be selected when entering a Point in Time date. Patients with eligibil-"
  1. W !," ity up to 3 years before the date entered will be included in the selection"
  1. W !," process."
  1. W !," ===============================================================================",!
  1. S DIR("A")=" Enter Point in Time DATE for the Report"
  1. S:$D(EXCL("Elig Date Range")) DIR("B")=$P(EXCL("Elig Date Range"),"^",4)
  1. S DIR(0)="DO"
  1. D ^DIR K DIR
  1. I X["@" K EXCL("Elig Date Range") Q
  1. Q:(X="")!(X["^")
  1. W "// ",Y(0)
  1. S Y1=Y,Y2=Y1-30000
  1. I $G(Y1)]"" S Y=Y1 D DD^%DT S Y3=Y
  1. I $G(Y2)]"" S Y=Y2 D DD^%DT S Y4=Y
  1. S EXCL("Elig Date Range")=$G(Y2)_U_$G(Y4)_U_$G(Y1)_U_$G(Y3)
  1. Q
  1. ;
  1. ASKAGE ; Prompts to get Age Range
  1. K DIR
  1. S DIR("A")=" Select age range desired"
  1. S:$D(EXCL("Age Range")) DIR("B")=$P(EXCL("Age Range"),"^",2)
  1. S DIR(0)="SO^1:0-17;2:18-64;3:65-95"
  1. S DIR("L",1)=" Select one of the following:"
  1. S DIR("L",2)=""
  1. S DIR("L",3)=" 1 0-17"
  1. S DIR("L",4)=" 2 18-64"
  1. S DIR("L")=" 3 65-95"
  1. D ^DIR K DIR
  1. I X["@" K EXCL("Age Range") Q
  1. Q:(X="")!(X["^")
  1. S EXCL("Age Range")=Y_"^"_Y(0)
  1. Q
  1. ;
  1. ASKELI ; Prompts to get eligibility status
  1. K DIR
  1. S DIR("A")=" Select the PATIENT ELIGIBILITY STATUS"
  1. S:$D(EXCL("Eligibility Status")) DIR("B")=$P(EXCL("Eligibility Status"),"^",2)
  1. S DIR(0)="SO^1:INDIAN BENEFICIARY PATIENTS;2:NON-BENEFICIARY PATIENTS"
  1. S DIR("L",1)=" Select one of the following:"
  1. S DIR("L",2)=""
  1. S DIR("L",3)=" 1 INDIAN BENEFICIARY PATIENTS"
  1. S DIR("L")=" 2 NON-BENEFICIARY PATIENTS"
  1. D ^DIR K DIR
  1. I X["@" K EXCL("Eligibility Status") Q
  1. Q:(X="")!(X["^")
  1. S EXCL("Eligibility Status")=Y_U_Y(0)
  1. Q
  1. ;
  1. ASKPNT ; Get Patient Information for one patient
  1. K DIR
  1. S DIR(0)="PO^9000001,:AEM"
  1. S DIR("A")=" Enter a Patient Name"
  1. S:$D(EXCL("Specific Patient")) DIR("B")=$P(EXCL("Specific Patient"),U,2)
  1. D ^DIR K DIR
  1. I (X="")!(X["^") K EXCL("Alternate Resource") Q
  1. I X["@" K EXCL("Specific Patient"),EXCL("Alternate Resource") Q
  1. N PNAME
  1. S PNAME=$$GET1^DIQ(2,+Y,.01)
  1. I PNAME'="" S EXCL("Specific Patient")=+Y_U_PNAME
  1. Q
  1. ;
  1. ASKINS ; Get Insurer Information
  1. K DIR
  1. S DIR(0)="PO^9999999.18,:AEM"
  1. S DIR("A")=" Enter an Insurer Name"
  1. S:$D(EXCL("Specific Insurer")) DIR("B")=$P(EXCL("Specific Insurer"),"^",2)
  1. D ^DIR
  1. I (X="")!(X["^") K EXCL("Alternate Resource") Q
  1. I X["@" K EXCL("Specific Insurer"),EXCL("Alternate Resource") Q
  1. S EXCL("Specific Insurer")=+Y_U_$$GET1^DIQ(9999999.18,+Y,.01) Q
  1. Q
  1. ;
  1. EXIT ; Clean up variables and exit
  1. K TAG,EXCL,DIR,X,Y
  1. K ^TMP("AGAGERP",$J)
  1. Q
  1. ;
  1. QUE ;QUE TO TASKMAN
  1. K IO("Q")
  1. S ZTRTN="GO^AGAGERP",ZTDESC="Patient Age Report "
  1. S ZTSAVE("*")=""
  1. K ZTSK D ^%ZTLOAD
  1. I $D(ZTSK)[0 W !!?5,"Report Cancelled!"
  1. E W !!?5,"Task # ",ZTSK," queued.",!
  1. H 3
  1. Q