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

AGED1.m

Go to the documentation of this file.
  1. AGED1 ; IHS/ASDS/EFG - EDIT PG 1 - ELIG/IDENTIFIERS ; MAR 19, 2010
  1. ;;7.1;PATIENT REGISTRATION;**2,4,5,7,8,12**;AUG 25, 2005;Build 1
  1. ;
  1. ;AG*7.1*7 - Modified code to allow the new page 10 to be called
  1. ;IHS/OIT/NKD AG*7.1*12 PATIENT RESIDENCE
  1. ;
  1. I "YC"[AGOPT(14) S AG("SVELIG")=""
  1. S AG("SVELIG")=$P($G(^AUPNPAT(DFN,11)),U,12)
  1. N OLDST,NEWST,OLDADDR2,NEWADDR2,OLDADDR3,NEWADDR3,OLDCITY,NEWCITY,OLDSTATE ;AG*7.1*4
  1. N NEWSTATE,OLDZIP,NEWZIP,OLDHPH,NEWHPH,TEMPY ;AG*7.1*4
  1. ;
  1. VAR ;EP
  1. Q:'$D(^DPT(DFN,0))
  1. S AG("PG")=1
  1. S ROUTID=$P($T(+1)," ") ;SET ROUTINE ID FOR PROGRAMMER VIEW
  1. S AGPAT=$P($G(^DPT(DFN,0)),U)
  1. S AGCHRT=$S($D(^AUPNPAT(DFN,41,DUZ(2),0)):$P($G(^AUPNPAT(DFN,41,DUZ(2),0)),U,2),1:"xxxxx")
  1. S AG("AUPN")=""
  1. S:$D(^AUPNPAT(DFN,0)) AG("AUPN")=^(0)
  1. W ?36,$$DTEST^AGUTILS(DFN)
  1. S AGLINE("-")=$TR($J(" ",78)," ","-")
  1. S AGLINE("EQ")=$TR($J(" ",78)," ","=")
  1. S $P(AGLINE("PGLN"),"=",81)=""
  1. VAR2 ;
  1. D DRAW
  1. W:'$D(AGSEENLY) !,AGLINE("PGLN")
  1. Q:$D(AGSEENLY)
  1. SSNA ;Ver=add ask if patient has verified SSN
  1. I $P($G(^AUPNPAT(DFN,0)),U,23)]"",$D(^AUTTSSN($P(^(0),U,23),0)),"A"[$P($G(^(0)),U) D
  1. . W !!,*7
  1. . K DIR
  1. . S DIR(0)="Y"
  1. . S DIR("A")="Has the patient verified the SSN added by SSA "
  1. . S DIR("B")="NO"
  1. . D ^DIR
  1. . K DIR
  1. . Q:Y=0
  1. . K DR
  1. . S DIE="^AUPNPAT("
  1. . S DA=DFN
  1. . S DR=".23///V"
  1. . D ^DIE
  1. . K DR
  1. ESSNA . D DRAW
  1. D CKELIG:"YC"[AGOPT(14)
  1. K DIR
  1. S DIR("?")="Enter your choice now."
  1. S DIR("?",1)="You may enter the item number of the field you wish to edit,"
  1. S DIR("?",2)="OR you can enter 'P#' where P stands for 'page' and '#' stands for"
  1. S DIR("?",3)="the page you wish to jump to, OR enter '^' to go back one page"
  1. S DIR("?",4)="OR, enter '^^' to exit the edit screens, OR RETURN to go to the next screen."
  1. S DIR("A")="CHANGE which item? (1-"_AG("N")_") NONE//" D READ
  1. I $D(MYERRS("C","E")),(Y'?1N.N),(Y'=AGOPT("ESCAPE")) W !,"ERRORS ON THIS PAGE. PLEASE FIX BEFORE EXITING!!" H 3 G VAR
  1. S TEMPY=Y I +Y'=Y D ASKADD^AG3A S Y=TEMPY K TEMPY ;AG*7.1*4
  1. Q:Y=AGOPT("ESCAPE")
  1. Q:$D(DUOUT)!$D(DTOUT)!$D(DFOUT)
  1. G:$D(AG("ED"))&'$D(AGXTERN) @("^AGED"_AG("ED"))
  1. G END:$D(DLOUT)!(Y["N"),VAR:$D(AG("ERR"))
  1. I $D(DQOUT)!(+Y<1)!(+Y>AG("N"))&($P($G(^AUPNPAT(DFN,11)),U,12)'="") W !!,"You must enter a number from 1 to ",AG("N") H 2 G VAR
  1. ;S AG("C")="ELIG^AG2A,DOB^AG2A,COB^AG3A,SOB^AG3A,SEX^AG2A,SSN^AG3A,MSTAT,EDCOM^AG2B,ST^AG3A,ADDR2,ADDR3,CITY^AG3A,STATE^AG3A,ZIP^AG3A,LOC,HPH^AG3A,OPH^AG3A,MSGPH"
  1. ;S AG("C")="ELIG^AG2A,DOB^AG2A,COB^AG3A,SOB^AG3A,SEX^AG2A,SSN^AG3A,MSTAT,EDCOM^AG2B,ST^AG3A,ADDR2,ADDR3,CITY^AG3A,STATE^AG3A,ZIP^AG3A,LOC,HPH^AG3A,OPH^AG3A,MSGPH,WEB" ;AG*7.1*2 ITEM 5 PAGE 11
  1. ;S AG("C")="ELIG^AG2A,DOB^AG2A,COB^AG3A,SOB^AG3A,SEX^AG2A,SSN^AG3A,MSTAT,EDCOM^AG2B,ALLADDR^AG3A,ALLADDR^AG3A,ALLADDR^AG3A,ALLADDR^AG3A,ALLADDR^AG3A,ALLADDR^AG3A,LOC,ALLADDR^AG3A,OPH^AG3A,MSGPH,WEB,EDEMAIL" ;AG*7.1*4
  1. ;S AG("C")="ELIG^AG2A,DOB^AG2A,COB^AG3A,SOB^AG3A,SEX^AG2A,SSN^AG3A,MSTAT,EDCOM^AG2B,ST^AG3A,ADDR2,ADDR3,CITY^AG3A,STATE^AG3A,ZIP^AG3A,LOC,HPH^AG3A,OPH^AG3A,MSGPH,EDEMAIL" ;AG*7.1*7
  1. ;S AG("C")="ELIG^AG2A,DOB^AG2A,COB^AG3A,SOB^AG3A,SEX^AG2A,SSN^AG3A,MSTAT,EDCOM^AG2B,ST^AG3A,ADDR2,ADDR3,CITY^AG3A,STATE^AG3A,ZIP^AG3A,LOC,HPH^AG3A,OPH^AG3A,MSGPH" ;AG*7.1*8
  1. S AG("C")="ELIG^AG2A,DOB^AG2A,COB^AG3A,SOB^AG3A,SEX^AG2A,SSN^AG3A,MSTAT,EDCOM^AG2B,PRES^AG3A,ST^AG3A,ADDR2,ADDR3,CITY^AG3A,STATE^AG3A,ZIP^AG3A,LOC,HPH^AG3A,OPH^AG3A,MSGPH" ;AG*7.1*12
  1. I '$D(AGSEENLY) D C
  1. G VAR
  1. END ;
  1. K AG,DA,DIC,DR,DUOUT,DLOUT,DQOUT,DTOUT,DFOUT,AGSCRN,Y,DIR,ROUTID
  1. Q:$D(AGXTERN)
  1. I $P($G(^AUPNPAT(DFN,11)),U,12)="" W *7,!!,"Eligibility Status must be entered." H 2 G VAR
  1. G ^AGED2
  1. READ ;EP
  1. K DFOUT,DTOUT,DUOUT,DQOUT,DLOUT,AG("ED"),AG("ERR"),DIROUT
  1. S DIR(0)="FO"
  1. D ^DIR
  1. Q:$D(DTOUT)
  1. S:Y="/.,"!(Y="^^") DFOUT=""
  1. S:Y="" DLOUT=""
  1. S:Y="^" (DUOUT,Y)=""
  1. S:Y?1"?".E!(Y["^") (DQOUT,Y)=""
  1. S X=Y,Y=$$UP^XLFSTR(X)
  1. Q:Y="P"
  1. I $E(Y,1)="p" S $E(Y,1)="P"
  1. I $E(Y,1)="P"&($P($G(^AUPNPAT(DFN,11)),U,12)'="") D
  1. . S AG("ED")=+$P($E(Y,2,99),".")
  1. . I AG("ED")<1!(AG("ED")>10) D ;AG*7.1*7
  1. .. W *7,!!,"Use only pages 1 through 10." ;AG*7.1*7
  1. .. H 2
  1. .. K AG("ED")
  1. .. S AG("ERR")=""
  1. . I $D(AG("ED")) D
  1. .. I AG("ED")>0&(AG("ED")<11) D ;AG*7.1*7
  1. ... I AG("ED")=4 S AG("ED")="4A"
  1. ... I AG("ED")=5 S AG("ED")="BEA" ;REPLACE OLD PG 5A WITH BENEFITS COORD SCREEN
  1. ... I AG("ED")=6 S AG("ED")=13
  1. ... I AG("ED")=8 S AG("ED")=11
  1. ... I AG("ED")=7 S AG("ED")=8
  1. ... I AG("ED")=9 S AG("ED")="11A"
  1. ... I AG("ED")=10 S AG("ED")="10A" ;AG*7.1*7
  1. I $E(Y,1)="P"&($P($G(^AUPNPAT(DFN,11)),U,12)="") D
  1. . W *7,!!,"Eligibility Status must be entered." H 2
  1. Q
  1. C ;EP - Edit multiple fields on a Reg edit page.
  1. S AGY=Y
  1. F AGI=1:1 S AG("SEL")=+$P(AGY,",",AGI) Q:AG("SEL")<1!(AG("SEL")>AG("N")) D @($P(AG("C"),",",AG("SEL")))
  1. D UPDATE1^AGED(DUZ(2),DFN,1,"")
  1. K AGI,AGY
  1. EC ;
  1. Q
  1. MSTAT ;GET MARITAL STATUS FROM VA PATIENT FILE
  1. K DUOUT
  1. S DIE="^DPT("
  1. S DA=DFN
  1. S DR=.05
  1. D ^DIE
  1. S:$D(Y) DUOUT=""
  1. K DIC("S"),DIC("W"),DIC("A"),DIC("B")
  1. Q
  1. ADDR2 ;GET ADDRESS LINE 2 FROM VA PATIENT FILE
  1. S OLDADDR2=$$GET1^DIQ(2,DFN_",",.112) ;AG*7.1*4
  1. K DUOUT
  1. S DIE="^DPT("
  1. S DA=DFN
  1. S DR=.112
  1. D ^DIE
  1. S:$D(Y) DUOUT=""
  1. K DIC("S"),DIC("W"),DIC("A"),DIC("B")
  1. S NEWADDR2=$$GET1^DIQ(2,DFN_",",.112) ;AG*7.1*4
  1. Q
  1. ADDR3 ;GET ADDRESS LINE 3 FROM VA PATIENT FILE
  1. S OLDADDR3=$$GET1^DIQ(2,DFN_",",.113) ;AG*7.1*4
  1. K DUOUT
  1. S DIE="^DPT("
  1. S DA=DFN
  1. S DR=.113
  1. D ^DIE
  1. S:$D(Y) DUOUT=""
  1. K DIC("S"),DIC("W"),DIC("A"),DIC("B")
  1. S NEWADDR3=$$GET1^DIQ(2,DFN_",",.113) ;AG*7.1*4
  1. Q
  1. LOC ;GET LOCATION OF HOME FROM PATIENT FILE
  1. K DUOUT
  1. S DIE="^AUPNPAT("
  1. S DA=DFN
  1. S DR=1201
  1. D ^DIE
  1. S:$D(Y) DUOUT=""
  1. K DIC("S"),DIC("W"),DIC("A"),DIC("B")
  1. Q
  1. MSGPH ;GET MESSAGE PHONE FROM PATIENT FILE
  1. K DUOUT
  1. S DIE="^AUPNPAT("
  1. S DA=DFN
  1. S DR=1801
  1. D ^DIE
  1. S:$D(Y) DUOUT=""
  1. K DIC
  1. Q
  1. ;AG*7.1*8 - Entire tag reworked to handle new multiple field
  1. WEB ;EP - INTERNET ACCESS QUESTION
  1. N DIC,DA,DIC,X,Y,OIEN,NIEN
  1. ;
  1. ;Get latest entry ien
  1. S OIEN=$O(^AUPNPAT(DFN,81,"B"),-1)
  1. ;
  1. ;Define new entry and save
  1. S DIC="^AUPNPAT("_DFN_",81,",DA(1)=DFN
  1. S DIC(0)="L"
  1. S X=DT
  1. S DLAYGO="9000001.81",DIC("P")=DLAYGO
  1. I '$D(^AUPNPAT(DFN,81,0)) S ^AUPNPAT(DFN,81,0)="^9000001.81D^^"
  1. K DO,DD D FILE^DICN
  1. K DIC,DA,DIC,X
  1. Q:+Y<1
  1. ;
  1. ;Copy existing entry into current one
  1. I OIEN]"" M ^AUPNPAT(DFN,81,+Y)=^AUPNPAT(DFN,81,OIEN)
  1. ;
  1. N DIE,DIR,DIC,DA,DR
  1. S (NIEN,DA)=+Y
  1. S DA(1)=DFN
  1. S DIE="^AUPNPAT("_DA(1)_",81,"
  1. S DEF=$$GET1^DIQ(9000001.81,NIEN_","_DFN_",",.02,"Y")
  1. S DR=.02 S:DEF]"" DR=DR_"//"_DEF
  1. D ^DIE
  1. K DIE,DIR,DIC,DA,DR
  1. ;
  1. ;If No Internet Access, Remove the Where value
  1. I '$P($G(^AUPNPAT(DFN,81,NIEN,0)),U,2) D Q
  1. . N AGVAR,ERROR,WIEN
  1. . S AGVAR(9000001.81,NIEN_","_DFN_",",".03")="@"
  1. . S WIEN=0 F S WIEN=$O(^AUPNPAT(DFN,81,NIEN,1,WIEN)) Q:'WIEN D
  1. .. S AGVAR(9000001.811,WIEN_","_NIEN_","_DFN_",",.01)="@"
  1. . D FILE^DIE("","AGVAR","ERROR")
  1. ;
  1. N DIE,DIR,DIC,DR,DA
  1. S DA(1)=DFN,DA=NIEN
  1. S DIE="^AUPNPAT("_DA(1)_",81,"
  1. S DR=".04"
  1. D ^DIE
  1. ;
  1. Q
  1. ;
  1. ;NEW CODE AG*7.1*4
  1. EDEMAIL ;EP - EDIT CURRENT EMAIL ADDRESS
  1. W !!
  1. N OLDEMAIL
  1. S OLDEMAIL=$$GET1^DIQ(9000001,DFN_",",1802)
  1. K DIE,DIC,DR,DA,DIR
  1. S DIE="^AUPNPAT("
  1. S DA=DFN
  1. S DR=1802
  1. D ^DIE
  1. Q:$D(Y)
  1. Q:$$GET1^DIQ(9000001,DFN_",",1802)=""
  1. Q:OLDEMAIL=$$GET1^DIQ(9000001,DFN_",",1802) ;NO CHANGE
  1. K DIR
  1. S DIR(0)="Y"
  1. S DIR("A")="Should this new email address be added to the historical addresses"
  1. S DIR("B")="Y"
  1. D ^DIR
  1. Q:'Y!$D(DTOUT)!$D(DUOUT)
  1. W !!,"Adding to PREVIOUS EMAIL FIELD...." H 2
  1. D UPDTEMAL^AGUTILS(DFN)
  1. ;END NEW CODE
  1. Q
  1. ;
  1. QUES ;EP
  1. W !!,"To change an item, enter a number from 1 to ",AG("N")
  1. W ". (Press RETURN for ""NO-CHANGE"".)"
  1. D READ
  1. Q
  1. CKELIG ;EP
  1. I $D(^AUPNPAT(DFN,11)),$P($G(^(11)),U,12)'=AG("SVELIG") D Q
  1. . S AG("SVELIG")=$P($G(^AUPNPAT(DFN,11)),U,12)
  1. . D CALCELIG^AGBIC2
  1. . W *7,!,"This patient's Eligibility has been changed to "
  1. . W $P(AG("NARR1"),":",2)
  1. Q
  1. DRAW ;DRAW PAGE 1
  1. S AG("PG")=1
  1. S AG("N")=19 ;AG*7.1*8/AG*7.1*12
  1. S DA=DFN
  1. S ROUTID=$P($T(+1)," ") ;SET ROUTINE ID FOR PROGRAMMER VIEW
  1. D ^AGED
  1. K ^UTILITY("DIQ1",$J)
  1. ;OUTPUT OPTION NUMBER,FIELD NAME, AND DATA
  1. F AG=1:1:AG("N") D
  1. . S AGSCRN=$P($T(@1+AG),";;",2,19)
  1. . S DIC=$P(AGSCRN,U,3) ;FILE NUMBER
  1. . S DR=$P(AGSCRN,U,4) ;FIELD NUMBER
  1. . I AG'=4&(AG'=14)&(AG'=18)&(AG'=15) W ?1,AG,".",?(27-$L($P($G(^DD(DIC,DR,0)),U))),$P($G(^DD(DIC,DR,0)),U)," : " ;AG*7.1*4/AG*7.1*12
  1. . I AG=18 W ?45,AG,".",$P(AGSCRN,U)," : " ;AG*7.1*2 ITEM 5 PAGE 11/AG*7.1*12
  1. . I AG=4 W " ",AG,".",$P(AGSCRN,U)," : "
  1. . I AG=14 W " ",AG,".",$P(AGSCRN,U)," : " ;AG*7.1*12
  1. . ;I AG=14 W ?54,AG,". ZIP CODE : " ;AG*7.1*4
  1. . I AG=15 W ?($S($D(DPTFLAG):58,1:56)),AG,".ZIP",$S($D(DPTFLAG):"+4",1:" CODE")," : " S:$D(DPTFLAG) DR=.1112 ;AG*7.1*5 H4532/AG*7.1*12
  1. . ;DISPLAY MSG BELOW IF THERE ARE DIRECTIONS TO PATIENT'S HOME
  1. . I AG=16&($D(^AUPNPAT(DFN,12,1,0))) D ;AG*7.1*12
  1. .. I '$D(AGSEENLY) W "LOCATION OF HOME CONTAINS DATA"
  1. .. I $D(AGSEENLY) D
  1. ... S HOME=$P($G(^AUPNPAT(DFN,12,1,0)),U)
  1. ... S AG("Y")=$L(HOME),LNCNT=0
  1. ... F S AG("K")=$E(HOME,1,49) Q:$L(AG("K"))=0 D
  1. .... S HOME=$E(HOME,50,AG("Y"))
  1. .... I LNCNT>0 W !
  1. .... W ?30,AG("K")
  1. .... S LNCNT=LNCNT+1
  1. ... K HOME,AG("Y"),AG("K"),LNCNT
  1. . I AG'=16&(AG'=4)&(AG'=14) D ;AG*7.1*12
  1. .. K AGRES
  1. .. S TEMPDIC=DIC
  1. .. S DIQ="AGRES",DIQ(0)="E" D EN^DIQ1
  1. .. S DIC=TEMPDIC
  1. .. ;W $G(AGRES(DIC,DFN,DR,"E"))
  1. .. ;BEGIN NEW CODE FOR ABOVE LINE IHS/SD/TPF AG*7.1*4
  1. .. N HIT
  1. .. D EN^AGSECCHK("AGZVIEWSSN",.HIT)
  1. .. I DIC=2,(DR=.09) D
  1. ... I HIT="Y" W $$GET1^DIQ(2,DFN_",",.09) Q
  1. ... I ($$GET1^DIQ(9000001,DFN_",",.23,"E")="V") W $$GET1^DIQ(9000001,DFN_",",1107.3)
  1. ... E W $$GET1^DIQ(2,DFN_",",.09)
  1. .. E W $G(AGRES(DIC,DFN,DR,"E"))
  1. .. ;END NEW CODE
  1. .. K AGRES,TEMPDIC,AGRES
  1. . ;I AG=19 W !?1,AG,"." W ?15,"EMAIL ADDRESS: ",$$GET1^DIQ(9000001,DFN_",",1802)
  1. . I AG=4 D
  1. .. K AGRES
  1. .. S TEMPDIC=DIC
  1. .. S DIQ="AGRES",DIQ(0)="I" D EN^DIQ1
  1. .. S DIC=TEMPDIC
  1. .. I $G(AGRES(DIC,DFN,DR,"I"))'="" W $P($G(^DIC(5,$G(AGRES(DIC,DFN,DR,"I")),0)),U,2)
  1. .. K AGRES,TEMPDIC,AGRES
  1. . I AG=14 D ;AG*7.1*12
  1. .. K AGRES
  1. .. S TEMPDIC=DIC
  1. .. S DIQ="AGRES",DIQ(0)="I" D EN^DIQ1
  1. .. S DIC=TEMPDIC
  1. .. I $G(AGRES(DIC,DFN,DR,"I"))'="" W $P($G(^DIC(5,$G(AGRES(DIC,DFN,DR,"I")),0)),U,2)
  1. .. K AGRES,TEMPDIC,AGRES
  1. . ;SHOW SSN VERIFICATION STATUS NEXT TO THE SSN FIELD
  1. . I AG=6 D
  1. .. I $P($G(^DPT(DFN,0)),U,9)="" D
  1. ... S AGSSNCHK=$P($G(^AUPNPAT(DFN,0)),U,24)
  1. ... I AGSSNCHK=1 W "Not Available"
  1. ... I AGSSNCHK=2 W "Patient refused"
  1. ... I AGSSNCHK=3 W "Patient will submit"
  1. ... I AGSSNCHK="" W "Reason for no SSN not yet entered"
  1. .. I $P($G(^AUPNPAT(DFN,0)),U,23)'="",$D(^AUTTSSN($P($G(^(0)),U,23),0)) W "(",$P($G(^(0)),U,2),")"
  1. .. I $P($G(^DPT(DFN,0)),U,9)'=""&($P($G(^AUPNPAT(DFN,0)),U,23)="") W "(Not yet verified by the SSA)"
  1. . I AG'=3&(AG'=13)&(AG'=19)&(AG'=17)&(AG'=14) W ! ;AG*7.1*4/AG*7.1*8/AG*7.1*12
  1. . I AG=9!(AG=16) D ;AG*7.1*12
  1. .. W AGLINE("-"),!
  1. S AG("N")=19 ;AG*7.1*8/AG*7.1*12
  1. W !,AGLINE("-")
  1. K MYERRS,MYVARS
  1. D FETCHERR^AGEDERR(AG("PG"),.MYERRS)
  1. S MYVARS("DFN")=DFN,MYVARS("FINDCALL")="",MYVARS("SITE")=DUZ(2)
  1. D EDITCHEK^AGEDERR(.MYERRS,.MYVARS,1)
  1. Q
  1. ;***************************************************************
  1. ; ON LINES BELOW:
  1. ; PIECE 1= FLD LBL
  1. ; PIECE 2= POSITION ON LINE TO DISP FLD
  1. ; PIECE 3= FILE #
  1. ; PIECE 4= FLD #
  1. 1 ;
  1. ;;ELIGIBILITY STATUS^10^9000001^1112
  1. ;;DOB^25^2^.03
  1. ;;CITY OF BIRTH^15^2^.092
  1. ;;ST^62^2^.093
  1. ;;SEX^25^2^.02
  1. ;;SSN^25^2^.09
  1. ;;MARITAL STATUS^14^2^.05
  1. ;;CURRENT COMMUNITY^11^9000001^1118
  1. ;;PATIENT RESIDENCE^12^9000001^1803
  1. ;;MAILING ADDRESS-STREET^6^2^.111
  1. ;;STREET ADDRESS [LINE 2]^5^2^.112
  1. ;;STREET ADDRESS [LINE 3]^5^2^.113
  1. ;;MAILING ADDRESS-CITY^8^2^.114
  1. ;;ST^62^2^.115
  1. ;;MAILING ADDRESS-ZIP^9^2^.116
  1. ;;LOCATION OF HOME^12^9000001^1201
  1. ;;HOME PHONE^16^2^.131
  1. ;;WORK PHONE^17^2^.132
  1. ;;MESSAGE PHONE^18^9000001^1801