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

AGEDBEH.m

Go to the documentation of this file.
  1. AGEDBEH ; IHS/ASDS/TPF - EDIT/DISPLAY BENEFITS COORDINATOR - SPEND DOWN INFORMATION SCREEN ;
  1. ;;7.1;PATIENT REGISTRATION;**2**;JAN 31, 2007
  1. ;
  1. ;RD0 AND RD1 WILL BE THE IENS NEEDED TO DISP THE BEN COORD SPEND DOWN INFO WHICH WAS
  1. ;CHOSEN FROM THE BEN COORD CASE SCREEN (^AGEDBEB)
  1. EN(RD0,RD1,NEWENTRY,CASEPTR) ;EP -
  1. ;IF ITS A NEW ENTRY THEN DISP THE SCREEN, DISP A MSG, THEN CALL
  1. ;THE EDITS TO FIELDS APPROPRIATE FOR ADDING A NEW ENTRY
  1. I NEWENTRY D DRAW,WMSG,NEWENTRY I $G(Y)<0 W !,"Entry not made." H 2 D END Q
  1. S NEWENTRY=0
  1. ;BELOW ASKS SEQUENCE OF QUESTIONS
  1. ;IF REQUESTED
  1. ;CASEPTR IS THE BACKWARD PTR TO THE 'DATE ASSIGNED' SUBSCRIPT FOR THE CASE
  1. ;THIS SPEND DOWN INFORMATION IS ASSOCIATED WITH.
  1. ;
  1. VAR D DRAW
  1. W !,AGLINE("EQ")
  1. I $D(MYERRS("C","E")),(Y'?1N.N),(Y'="E") W !,"ERRORS ON THIS PAGE. PLEASE EDIT BEFORE EXITING!!" H 3 G VAR
  1. Q:Y=$G(AGOPT("ESCAPE"))
  1. K DIR
  1. I '$D(AGSEENLY) D
  1. .S DIR("A")="Change which item (1-"_AG("N")_") OR <A>dd a new Date Expense Requested"
  1. I $D(AGSEENLY) D
  1. .S DIR("A")="Press return to continue"
  1. D READ^AGED1
  1. I $D(AGSEENLY) Q
  1. G END:$D(DLOUT)!(Y["N")!$D(DUOUT),VAR:$D(AG("ERR"))
  1. Q:$D(DFOUT)!$D(DTOUT)
  1. ;DO RTN'S TO ADD ENTRY
  1. I $G(Y)="A" D ADDEXPRQ G VAR
  1. I $D(DQOUT)!(+Y<1)!(+Y>AG("N")) W !!,"You must enter a number from 1 to ",AG("N")," or enter <A> to add a new 'DATE EXPENSE REQUESTED'" H 3 G VAR
  1. Q:'$D(Y)
  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. I AGY=1,'$D(^AUPNCHS(RD0,11,RD1)) D CLEAN(RD0) Q ;THEY HAVE DELETED THE BEN. COORD. CASE DATE
  1. ; THEY CHOSE TO ENTER THIS SCREEN. IT IS GONE
  1. ; SO RETURN TO CLEANUP AND RETURN TO PREVIOUS SCREEN
  1. D CLEAN(RD0) I '$D(^AUPNCHS(RD0)) Q
  1. D UPDATE1^AGED(DUZ(2),DFN,3,"")
  1. K AGI,AGY
  1. G VAR
  1. CLEAN(AD0) ;CLEAN EMPTY RECORD. IF NO SPEND DOWN REFERRED DTS HAVE BEEN
  1. ;ENTERED THEN THE RECORD IS MEANINGLESS
  1. ;
  1. ;CHECK HERE TO SEE IF ENTRIES HAVE ACTUALLY BEEN ENTERED. IF NOT
  1. ;CLEAR THE RECORD SINCE NOTHING REALLY EXISTS IN THIS RECORD
  1. I $O(^AUPNCHS(AD0,11,0))="" D
  1. .D CLEANZER(AD0)
  1. .W !,"RECORD DELETED!" H 3
  1. Q
  1. CLEANZER(AD0) ;EP
  1. K DIK,DA
  1. S DIK="^AUPNCHS(",DA=AD0 D ^DIK
  1. Q
  1. END ;CLEAN UP THE VARS
  1. K DLOUT,DTOUT,DFOUT,DQOUT,DA,DIC,DR,AGSCRN,Y,ADA,WDA,ADT,WDT,ADFN,WDFN,REC,NEWENTRY
  1. K CHOICES
  1. Q
  1. DRAW ;EP
  1. K CHOICES
  1. S ROUTID=$P($T(+1)," ")
  1. S AG("PG")="5BEB"
  1. D ^AGED
  1. D GETAW
  1. Q
  1. GETAW ;DISP
  1. K AG("C")
  1. S VD0=RD0
  1. F AG=1:1 D Q:$G(AGSCRN)[("*END*")
  1. . S AGSCRN=$P($T(@1+AG),";;",2,15)
  1. . Q:AGSCRN[("*END*")
  1. . S CAPTION=$P(AGSCRN,U) ;FLD CAP
  1. . I $E(CAPTION)="-" W !,$E(CAPTION,2,199) Q ;- DENOTES SECTION
  1. . S DIC=$P(AGSCRN,U,3) ;FILE OR SUBFILE #
  1. . S VDR=$P(AGSCRN,U,4) ;FLD #
  1. . S NEWLINE=$P(AGSCRN,U,5) ;NEWLINE OR INDENT
  1. . S CAPDENT=$P(AGSCRN,U,2) ;CAP INDENT
  1. . S ITEMNUM=$P(AGSCRN,U,6) ;ITEM #
  1. . S TAGCALL=$P($P(AGSCRN,U,7),"|") ;TAG TO CALL TO EDIT THIS FLD
  1. . S EXECUTE=$P(AGSCRN,"|",2) ;USE TO DISP FLD WHICH IS DEPENDENT ON ANOTHER FLD
  1. . S PREEXEC=$P(AGSCRN,"|",3) ;PLACE CODE TO BE XECUTED PRIOR TO DISP OF THE FLD
  1. . S PRECAPEX=$P(AGSCRN,"|",4) ;PLACE CODE TO EXECUTE BEF CAP/FLD LBL
  1. . S POSTEXEC=$P(AGSCRN,"|",5) ;PLACE CODE HERE TO BE EXECUTED AFT DISP OF THE FLD
  1. . S:TAGCALL'="" $P(AG("C"),",",ITEMNUM)=TAGCALL ;SELECTION STRING
  1. . W:ITEMNUM'=3 @NEWLINE
  1. . W:ITEMNUM'=3 ITEMNUM
  1. . W:ITEMNUM'=3 $S(ITEMNUM'="":". ",1:"")
  1. . I PRECAPEX="" W @CAPDENT,$S($G(CAPTION)'="":CAPTION_": ",$G(CAPTION)="":"",1:$P($G(^DD(DIC,DR,0)),U)_": ")
  1. . I PRECAPEX'="" X PRECAPEX I $T W @CAPDENT,$S($G(CAPTION)'="":CAPTION_": ",$G(CAPTION)="":"",1:$P($G(^DD(DIC,DR,0)),U)_": ")
  1. .;IF EDITING DISP DATA ONLY
  1. .;E DISPLAY ONLY THE CAPS
  1. .I 'NEWENTRY D
  1. .. S D0=RD0
  1. .. I DIC'["." S D0=D0_","
  1. .. E S D0=RD1_","_D0_","
  1. .. ;LOOP TO HANDLE MULTIPLE DR'S FOR ONE CAP
  1. .. I DIC=9000047.11 D
  1. ... S D0=D0_","
  1. ... N PIECE
  1. ... F PIECE=1:1 S DR=$P(VDR,";",PIECE) Q:DR="" D
  1. .... I $P(PREEXEC,";",PIECE)'="" X $P(PREEXEC,";",PIECE) Q:'$T
  1. .... I $P(EXECUTE,";",PIECE)="" D
  1. ..... W $$GET1^DIQ(DIC,D0,DR)
  1. .... I $P(EXECUTE,";",PIECE)'="" S D0=$TR(D0,",") X $P(EXECUTE,";",PIECE)
  1. .... I $P(POSTEXEC,";",PIECE)'="" X $P(POSTEXEC,";",PIECE)
  1. ...K PIECE
  1. ..I DIC=9000047.1101 D
  1. ... D SPDDOWN Q
  1. ... S D0=D0_","
  1. ... N PIECE
  1. ... F PIECE=1:1 S DR=$P(VDR,";",PIECE) Q:DR="" D
  1. .... I $P(PREEXEC,";",PIECE)'="" X $P(PREEXEC,";",PIECE) Q:'$T
  1. .... I $P(EXECUTE,";",PIECE)="" D
  1. ..... I DR=.03 W $J($$GET1^DIQ(DIC,D0,DR),6,2)
  1. ..... E W $$GET1^DIQ(DIC,D0,DR)
  1. .... I $P(EXECUTE,";",PIECE)'="" S D0=$TR(D0,",") X $P(EXECUTE,";",PIECE)
  1. .... I $P(POSTEXEC,";",PIECE)'="" X $P(POSTEXEC,";",PIECE)
  1. ...K PIECE
  1. S AG("N")=ITEMNUM-1
  1. W !,$G(AGLINE("-"))
  1. K MYERRS,MYVARS
  1. D FETCHERR^AGEDERR(AG("PG"),.MYERRS)
  1. S MYVARS("DFN")=DFN,MYVARS("FINDCALL")="",MYVARS("SELECTION")=$G(AGSELECT),MYVARS("SITE")=DUZ(2)
  1. D EDITCHEK^AGEDERR(.MYERRS,.MYVARS,1)
  1. D VERIF^AGUTILS
  1. Q
  1. SPDDOWN ;EP
  1. S SPDDOWN=0
  1. F S SPDDOWN=$O(^AUPNCHS(RD0,11,RD1,11,SPDDOWN)) Q:'$G(SPDDOWN) D
  1. .S SPDDATA=$G(^AUPNCHS(RD0,11,RD1,11,SPDDOWN,0))
  1. .S CHOICES(ITEMNUM)=RD0_U_RD1_U_SPDDOWN
  1. .S Y=$P(SPDDATA,U) X ^DD("DD") S REQDT=Y
  1. .W !,ITEMNUM,".",?5,REQDT,?25,$J($P(SPDDATA,U,3),8,2),?45,$P(SPDDATA,U,2)
  1. .S $P(AG("C"),",",ITEMNUM)="EDEXPREQ"
  1. .S ITEMNUM=ITEMNUM+1
  1. Q
  1. WMSG ;DISP THIS MSG IF THERE IS NO ENTRY FOUND IN SPEND DOWN INFORMATION FILE
  1. W !,"You must first enter a SPEND DOWN REFERRAL DATE"
  1. Q
  1. ;;;;;;;;;;;;;;;;;;;;;;;;
  1. ; EDIT SPEND DOWN REFERRAL FLDS
  1. ;;;;;;;;;;;;;;;;;;;;;;;;
  1. NEWENTRY ;NEW ENTRY
  1. W !!
  1. K DIC,DIE,DR,DA
  1. S DIC="^AUPNCHS("
  1. S DIC(0)="L"
  1. S X="`"_DFN
  1. S DIC("S")="I $G(Y)'=TEMPDFN"
  1. S TEMPDFN=DFN
  1. D ^DIC
  1. S DFN=TEMPDFN
  1. Q:+Y'>0
  1. S RD0=+Y
  1. S NEWENTRY=0
  1. NEWAPPDT ;
  1. K DIC,DIE,DR,DA
  1. S DA(1)=RD0
  1. S DIC="^AUPNCHS("_DA(1)_",11,"
  1. S DIC(0)="ALEMQ"
  1. S DIC("S")="I $P(^(0),U,5)=CASEPTR"
  1. K DD,DO
  1. D ^DIC
  1. Q:+Y'>0
  1. S RD1=+Y
  1. D STUFCASE(RD0,RD1,CASEPTR)
  1. D ADDEXPRQ
  1. Q
  1. STUFCASE(RD0,RD1,CASEPTR) ;EP
  1. K DIC,DIE,DR,DA,DIR
  1. S DA(1)=RD0
  1. S DA=RD1
  1. S DIE="^AUPNCHS("_DA(1)_",11,"
  1. S DR=".05////^S X=CASEPTR"
  1. D ^DIE
  1. Q
  1. EDREFDT ;EDIT THE DT REFERRED
  1. K DIC,DR,DIE,DA,DD,DO
  1. S DA=RD1
  1. S DA(1)=RD0
  1. S DIE="^AUPNCHS("_DA(1)_",11,"
  1. S DR=".01"
  1. D ^DIE
  1. K DIC,DR,DIE,DA
  1. Q
  1. EDACT ;EDIT THE ACTION TAKEN
  1. I '$O(^AUPNCHS(RD0,11,RD1,11,0)) D ADDEXPRQ
  1. K DIC,DR,DIE,DA,DD,DO
  1. S DA(2)=RD0
  1. S DA(1)=RD1
  1. S DA=RD2
  1. S DIE="^AUPNCHS("_DA(2)_",11,"_DA(1)_",11,"
  1. S DR=.02
  1. D ^DIE
  1. K DIC,DR,DIE,DA
  1. Q
  1. EDSPDD ;EDIT SPEND DOWN
  1. I '$O(^AUPNCHS(RD0,11,RD1,11,0)) D ADDEXPRQ
  1. K DIC,DR,DIE,DA,DD,DO
  1. S DA(2)=RD0
  1. S DA(1)=RD1
  1. S DA=RD2
  1. S DIE="^AUPNCHS("_DA(2)_",11,"_DA(1)_",11,"
  1. S DR=.03
  1. D ^DIE
  1. K DIC,DR,DIE,DA
  1. Q
  1. EDEXPREQ ;EDIT THE DT EXPENSE REQUESTED
  1. I '$O(^AUPNCHS(RD0,11,RD1,11,0)) D ADDEXPRQ
  1. K DIC,DR,DIE,DA,DD,DO
  1. I $D(CHOICES) D
  1. .S (DA(2),RD0)=$P(CHOICES(AGY),U)
  1. .S (DA(1),RD1)=$P(CHOICES(AGY),U,2)
  1. .S (DA,RD2)=$P(CHOICES(AGY),U,3)
  1. S DA=RD2
  1. S DIE="^AUPNCHS("_RD0_",11,"_RD1_",11,"
  1. S DR=.01
  1. D ^DIE
  1. K DIC,DR,DIE,DA
  1. D EDACT
  1. D EDSPDD
  1. Q
  1. ADDEXPRQ ;EP - ADD DATE EXPENSE REQUESTED
  1. K DIC,DIE,DR,DA,DO,DD,DIQ
  1. S DA(2)=RD0
  1. S DA(1)=RD1
  1. S DIC="^AUPNCHS("_DA(2)_",11,"_DA(1)_",11,"
  1. S DIC(0)="ALE"
  1. K DD,DO
  1. D ^DIC
  1. Q:+Y'>0
  1. S RD2=+Y
  1. D EDACT
  1. D EDSPDD
  1. Q
  1. EDREFTO ;EDIT THE REFERED TO FACILITY
  1. K DIC,DR,DIE,DA,DD,DO
  1. S DA=RD1
  1. S DA(1)=RD0
  1. S DIE="^AUPNCHS("_DA(1)_",11,"
  1. S DR=".02"
  1. D ^DIE
  1. K DIC,DR,DIE,DA
  1. Q
  1. ; ****************************************************************
  1. ; ON LINES BELOW:
  1. ; U "^" DELIMITED
  1. ; AGSCRN CONTAINS THE $TEXT OF EACH LINE BELOW STARTING AT TAG '1'
  1. ; PIECE VAR DESC
  1. ; ----- -------- -----------------------------------------------
  1. ; 1 CAPTION FLD CAP ASSIGNED BY PROGRAMMER OVERRIDES FLD LBL IF POPULATED
  1. ; 2 CAPDENT POSITION ON LINE TO DISP CAP
  1. ; 3 DIC FILE OR SUBFILE #
  1. ; 4 DR FLD # - THESE CAN BE SEPARATED BY ";" THIS ALLOWS
  1. ; MULTIPLE FLDS TO BE PRINTED WITH THE SAME CAP AS IN
  1. ; 'CITY,STATE,ZIP'
  1. ; 5 NEWLINE NEW LINE OR NOT (MUST BE EITHER A '!' OR '?#')
  1. ; USE THIS TO INDENT THE LINE
  1. ; 6 ITEMNUM ITEM # ASSIGNMENT. USE THIS TO ASSIGN THE ITEM #
  1. ; USED TO ALLOW USER TO CHOOSE THIS FLD TO EDIT
  1. ; 7 TAGCALL TAG TO CALL WHEN THIS FLD IS CHOSEN BY USER TO BE EDITED
  1. ;
  1. ; BAR "|" DELIMITED
  1. ; PIECE VAR DESC
  1. ; ----- -------- ----------------------------------------------
  1. ; 2 EXECUTE EXECUTE CODE TO GET FLD THAT ANOTHER IS POINTING TO.
  1. ; EXECUTED AFT FLD PRINT. IF MUTLIPLE FLDS ARE PRINTED
  1. ; THEN MULTIPLE EXECUTE CODES CAN BE SEPARATED BY ";".
  1. ; 3 PREEXEC EXECUTE CODE TO DO BEF FLD PRINTS. USE TO SCREEN OUT
  1. ; PRINTING A FLD VALUE. FOR MULTIPLES SEPARATE BY ";"
  1. ; 4 PRECAPEX EXECUTE CODE TO DO BEF PRINTING THE CAP OR FLD LBL.
  1. ; USE TO SCREEN OUT PRINTING A CAP/FLD LBL
  1. ; 5 POSTEXEC EXECUTE CODE TO DO AFT PRINTING THE FLD DATA
  1. ; FOR MULTIPLES SEPARATE BY ";"
  1. ;^?0^9000044.11^.01;.02;.03;.12;.07^!^^||W "REFERRED TO BEN. COORD.: ";W ?45,"to ";W ?72,"by ";W !?10,"Reason: ";W ?60,"Status: "
  1. 1 ;
  1. ;;- BENEFITS COORDINATION - SPEND DOWN INFORMATION DATA
  1. ;;----SPEND DOWN INFORMATION--------------------------------------------------------
  1. ;;Date Referred^?0^9000047.11^.01^!^1^EDREFDT
  1. ;;Facility Referred to^?0^9000047.11^.02^!^2^EDREFTO
  1. ;;-
  1. ;;----DATE EXPENSE REQ'D-----SPEND DOWN---------ACTION TAKEN----------------------
  1. ;;^?0^9000047.1101^.03^?0^3^
  1. ;;*END*
  1. ;;Spend Down^?0^9000047.1101^.03^!^3^EDSPDD
  1. ;;Date Expense Requested^?0^9000047.1101^.01^?40^4^EDEXPREQ
  1. ;;Action Taken^?0^9000047.1101^.02^!^5^EDACT
  1. ;;*END*