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

AGEDBEG.m

Go to the documentation of this file.
AGEDBEG ; IHS/ASDS/TPF - EDIT/DISPLAY BENEFITS COORDINATOR - AUTHORIZATION CONTACTS SCREEN ;    
 ;;7.1;PATIENT REGISTRATION;**2**;JAN 31, 2007
 ;
 ;AD0,AD1 AND AD2 WILL BE THE IENS NEEDED TO DISP ENCOUNTER CONTACTS
 ;WHICH WAS CHOSEN FROM THE AUTHORIZATION SCREEN (^AGEDBEC)
EN(AD0,AD1,AD2,NEWENTRY) ;
 ;IF ITS A NEW ENTRY THEN DISP THE SCREEN, DISP A MSG, THEN CALL THE
 ;EDITS TO FLDS APPROPRIATE FOR ADDING A NEW ENTRY
 I NEWENTRY D DRAW,WMSG,NEWENTRY I $G(Y)<0 W !,"Entry not made." H 2 D END Q
 ;S NEWENTRY=0
 ;BELOW ASKS SEQUENCE OF QUESTIONS
 ;S EXIT=0
 ;I NEWENTRY D  Q:EXIT  S NEWENTRY=0
 ;.D DRAW,WMSG,NEWENTRY I $G(Y)<0 W !,"No entry made" H 2 S EXIT=1 Q
 ;.D EDCONPER
 ;.D EDCONPH
 ;.D EDCONFAX
 ;.D EDEMAIL
 ;
VAR S SUBS=$G(AD0)_","_$G(AD1)_","_$G(AD2)
 D DRAW
 ;Q:$D(AGSEENLY)
 W !,AGLINE("EQ")
 K DIR
 I '$D(AGSEENLY) D
 .S DIR("A")="CHANGE which item? (1-"_AG("N")_") NONE// "
 I $D(AGSEENLY) D
 .S DIR("A")="Press return to continue"
 .S DIR="LO^1:"_AG("N")
 D READ^AGED1
 ;I $D(AGSEENLY) Q
 I $D(AGSEENLY),(Y=6) D DISNOTES G VAR  ;AG*7.1*2 IM22306
 Q:$D(AGSEENLY)
 I $D(MYERRS("C","E")),(Y'?1N.N),(Y'="E") W !,"ERRORS ON THIS PAGE. PLEASE EDIT BEFORE EXITING!!" H 3 G VAR
 Q:Y=$G(AGOPT("ESCAPE"))
 G END:$D(DLOUT)!(Y["N")!$D(DUOUT),VAR:$D(AG("ERR"))
 Q:$D(DFOUT)!$D(DTOUT)
 I $D(DQOUT)!(+Y<1)!(+Y>AG("N")) W !!,"You must enter a number from 1 to ",AG("N") H 3 G VAR
 I +$G(Y) D
 .S AGY=Y
 .F AGI=1:1 S AG("SEL")=+$P(AGY,",",AGI) Q:AG("SEL")<1!(AG("SEL")>AG("N"))  D @($P(AG("C"),",",AG("SEL")))
 I AGY=1,'$D(^AUPNAUTH(AD0,11,AD1,1,AD2)) D CLEAN(AD0) Q  ;THEY HAVE DELETED THE ENCOUNTER CONTACT DT
 ;                                      THEY CHOSE TO ENTER THIS SCREEN. IT IS GONE
 ;                                      SO RETURN TO MAIN SCREEN
 D CLEAN(AD0)
 D UPDATE1^AGED(DUZ(2),DFN,3,"")
 K AGI,AGY
 G VAR
CLEAN(AD0) ;CLEAN EMPTY RECORD. IF NO ENCOUNTER DTS HAVE BEEN ENTERED
 ;THEN THE RECORD IS MEANINGLESS
 ;CHECK HERE TO SEE IF ENTRIES HAVE ACTUALLY BEEN ENTERED. IF NOT
 ;CLEAR THE RECORD SINCE NOTHING REALLY EXISTS IN THIS RECORD
 I $O(^AUPNAUTH(AD0,11,0))="" D
 .D CLEANZER(AD0)
 .W !,"RECORD DELETED!" H 3
 Q
CLEANZER(AD0) ;EP
 K DIK,DA
 S DIK="^AUPNAUTH(",DA=AD0 D ^DIK
 Q
END ;CLEAN UP THE VARS
 K AG,DLOUT,DTOUT,DFOUT,DQOUT,DA,DIC,DR,AGSCRN,Y,ADA,WDA,ADT,WDT,ADFN,WDFN,REC,NEWENTRY
 Q
DRAW ;EP
 K CHOICES
 D HDR
 D GETAW
 Q
HDR ;
 S AG("PG")="5BEG"   ;ENTER THIS VALUE INTO PAT REG ERROR CODES FILE
 ;                      TO MATCH UP ERRORS TO SPECIFIC SCREENS
 S AGPAT=$P($G(^DPT(DFN,0)),U)
 S AGCHRT=$S($D(^AUPNPAT(DFN,41,DUZ(2),0)):$P($G(^AUPNPAT(DFN,41,DUZ(2),0)),U,2),1:"xxxxx")
 S AG("AUPN")=""
 S:$D(^AUPNPAT(DFN,0)) AG("AUPN")=^(0)
 S AGLINE("-")=$TR($J(" ",78)," ","-")
 S AGLINE("EQ")=$TR($J(" ",78)," ","=")
 S $P(AGLINE("PGLN"),"=",81)=""
 W $$S^AGVDF("IOF"),!
 S ROUTID=$P($T(+1)," ")
 S AG("PG")="5BEG"
 D PROGVIEW^AGUTILS(DUZ,$G(SUBS))
 W "IHS REGISTRATION ",$S($D(AGSEENLY):"VIEW SCREEN",1:"EDITOR")
 W ?36,"BENEFITS COORDINATOR"
 W ?80-$L($P($G(^DIC(4,DUZ(2),0)),U)),$P($G(^DIC(4,DUZ(2),0)),U)
 S AGLINE("-")=$TR($J(" ",80)," ","-")
 S AGLINE("EQ")=$TR($J(" ",80)," ","=")
 W !,AGLINE("EQ")
 W !,$E(AGPAT,1,23)
 W ?23,$$DTEST^AGUTILS(DFN)
 I $D(AGCHRT) W ?42,"HRN#:",AGCHRT
 ;GET ELIGIBILITY STATUS
 S AGELSTS=$P($G(^AUPNPAT(DFN,11)),U,12)
 W ?56,"(",$S(AGELSTS="C":"CHS & DIRECT",AGELSTS="I":"INELIGIBLE",AGELSTS="D":"DIRECT ONLY",AGELSTS="P":"PENDING VERIFICATION",1:"NONE"),")"
 W !,AGLINE("EQ")
 S DA=DFN
 K AG("EDIT")
 Q
GETAW ;DISP
 K AG("C")
 F AG=1:1 D  Q:$G(AGSCRN)[("*END*")
 . S AGSCRN=$P($T(@1+AG),";;",2,15)
 . Q:AGSCRN[("*END*")
 . S CAPTION=$P(AGSCRN,U)  ;FLD CAP
 . I $E(CAPTION)="-" D CAPPARSE(CAPTION) Q  ;PARSE OUT CAP
 . S DIC=$P(AGSCRN,U,3)    ;FILE OR SUBFILE #
 . S DR=$P(AGSCRN,U,4)      ;FLD #
 . S SKIPEXEC=$P(AGSCRN,"|",6)  ;SKIP LOGIC. IF THIS IS TRUE WE
 . ;                             DON'T DEAL WITH THIS FLD AT ALL
 . I SKIPEXEC'="" X SKIPEXEC Q:$T
 . S NEWLINE=$P(AGSCRN,U,5)  ;NEWLINE OR INDENT
 . S CAPDENT=$P(AGSCRN,U,2)   ;CAP INDENT
 . S ITEMNUM=$P(AGSCRN,U,6)   ;ITEM #
 . S TAGCALL=$P($P(AGSCRN,U,7),"|",1)   ;TAG TO CALL TO EDIT THIS FLD
 . S EXECUTE=$P(AGSCRN,"|",2)      ;USE TO DISP FLD WHICH IS DEPENDENT ON ANOTHER FLD
 . S PREEXEC=$P(AGSCRN,"|",3)     ;PLACE CODE TO BE XECUTED PRIOR TO DISP OF THE FLD
 . S PRECAPEX=$P(AGSCRN,"|",4)   ;PLACE CODE TO EXECUTE BEF CAP/FLD LBL
 . S POSTEXEC=$P(AGSCRN,"|",5)    ;PLACE CODE HERE TO BE EXECUTED AFT DISP OF THE FLD
 . S:TAGCALL'="" $P(AG("C"),",",ITEMNUM)=TAGCALL   ;SELECTION STRING
 . W @NEWLINE
 . W ITEMNUM
 . W $S(ITEMNUM'="":". ",1:"")
 . I PRECAPEX="" W @CAPDENT,$S($G(CAPTION)'="":CAPTION_": ",$G(CAPTION)="":"",1:$P($G(^DD(DIC,DR,0)),U)_": ")
 . I PRECAPEX'="" X PRECAPEX I $T W @CAPDENT,$S($G(CAPTION)'="":CAPTION_": ",$G(CAPTION)="":"",1:$P($G(^DD(DIC,DR,0)),U)_": ")
 .;IF EDITING DISP DATA ONLY
 .;E DISP ONLY THE CAPS
 .I 'NEWENTRY D
 .. S D0=AD0
 .. I DIC'["." S D0=D0_","
 .. E  S D0=AD2_","_AD1_","_D0_","
 .. ;LOOP TO HANDLE MULTIPLE DR'S FOR ONE CAP
 .. N PIECE
 .. S VDR=DR
 .. F PIECE=1:1 S DR=$P(VDR,";",PIECE) Q:DR=""  D
 ... I $P(PREEXEC,";",PIECE)'="" X $P(PREEXEC,";",PIECE)
 ... I $P(EXECUTE,";",PIECE)="" W $$GET1^DIQ(DIC,D0,DR)
 ... I $P(EXECUTE,";",PIECE)'="" S D0=$TR(D0,",") X $P(EXECUTE,";",PIECE)
 ... I $P(POSTEXEC,";",PIECE)'="" X $P(POSTEXEC,";",PIECE)
 ..K PIECE,VDR
 ..I DIC["9000046.11101" D
 ...K ^UTILITY($J,"W")
 ...S DIWL=12,DIWR=75
 ...S DIWF="WC70|"
 ...S VD0=AD0
 ...S VD1=AD1
 ...S VD2=AD2
 ...S VD3=0
 ...F  S VD3=$O(^AUPNAUTH(VD0,11,VD1,1,VD2,1,VD3)) Q:'VD3  D
 ....S X=$G(^AUPNAUTH(VD0,11,VD1,1,VD2,1,VD3,0))
 ....D ^DIWP
 ...D ^DIWW
 S AG("N")=$L(AG("C"),",")
 W !,$G(AGLINE("-"))
 K MYERRS,MYVARS
 D FETCHERR^AGEDERR(AG("PG"),.MYERRS)
 S MYVARS("DFN")=DFN,MYVARS("FINDCALL")="",MYVARS("SELECTION")=$G(AGSELECT),MYVARS("SITE")=DUZ(2)
 D EDITCHEK^AGEDERR(.MYERRS,.MYVARS,1)
 D VERIF^AGUTILS
 Q
CAPPARSE(CAPTION) ;EP - PARSE OUT THE CAP
 N LBRACKET,RBRACKET
 S LBRACKET="[",RBRACKET="]"
 I CAPTION'[LBRACKET W !,$E(CAPTION,2,199) Q  ;- DENOTES SIMPLE SECTION
 ;PARSE OUT AND INSERT FLD VALUES
 S FIELDS=$L(CAPTION,LBRACKET)
 W !,$E($P(CAPTION,LBRACKET),2,199)
 F PIECE=1:1:FIELDS D
 .S FIELD=$P($P(CAPTION,LBRACKET,PIECE),RBRACKET)
 .I $P(FIELD,";",3)="" W $$GET1^DIQ($P(FIELD,";"),AD1_","_AD0_",",$P(FIELD,";",2))
 .I $P(FIELD,";",3)'="" S EXEC=$P(FIELD,";",3) D
 ..S X=$$GET1^DIQ($P(FIELD,";"),AD1_","_AD0_",",$P(FIELD,";",2),"I") X EXEC
 W $P(CAPTION,RBRACKET,2)
 K LBRACKET,RBRACKET
 Q
WMSG ;DISP THIS MSG IF THERE IS NO AUTHORIZATION DT FOUND
 W !,"You must first enter a CONTACT DATE"
 Q
 ;;;;;;;;;;;;;;;;;;;;;;;;;
 ; EDIT AUTHORIZATION FLDS
 ;;;;;;;;;;;;;;;;;;;;;;;;;
NEWENTRY ;NEW ENTRY
 W !!
 K DIC,DIE,DR,DA
 S DIC="^AUPNAUTH("
 S DIC(0)="L"
 S DIC("S")="I $G(Y)'=TEMPDFN"
 S X="`"_DFN
 S TEMPDFN=DFN
 D ^DIC
 S DFN=TEMPDFN
 Q:+Y'>0
 S AD0=+Y
 S NEWENTRY=0
ADDDT ;
 K DIC,DIE,DR,DA
 S DA(2)=AD0
 S DA(1)=AD1
 S DIC="^AUPNAUTH("_DA(2)_",11,"_DA(1)_",1,"
 S DIC(0)="ALMEQ"
 K DD,DO
 D ^DIC
 I +Y>0 S AD2=+Y Q
 Q
EDADDDT ;EDIT DT
 K DIC,DR,DIE,DA,DD,DO
 S DA(1)=AD1
 S DA(2)=AD0
 S DA=AD2
 S DIE="^AUPNAUTH("_DA(2)_",11,"_DA(1)_",1,"
 S DR=.01
 D ^DIE
 K DIC,DR,DIE,DA
 Q
EDCONPER ;EDIT CONTACT PERSON
 K DIC,DR,DIE,DA,DD,DO
 S DA(1)=AD1
 S DA(2)=AD0
 S DA=AD2
 S DIE="^AUPNAUTH("_DA(2)_",11,"_DA(1)_",1,"
 S DR=.02
 D ^DIE
 K DIC,DR,DIE,DA
 Q
EDCONPH ;EDIT CONTACT PHONE
 K DIC,DR,DIE,DA,DD,DO
 S DA(1)=AD1
 S DA(2)=AD0
 S DA=AD2
 S DIE="^AUPNAUTH("_DA(2)_",11,"_DA(1)_",1,"
 S DR=.03
 D ^DIE
 K DIC,DR,DIE,DA
 Q
EDEMAIL ;EDIT CONTACT E-MAIL
 K DIC,DR,DIE,DA,DD,DO
 S DA(1)=AD1
 S DA(2)=AD0
 S DA=AD2
 S DIE="^AUPNAUTH("_DA(2)_",11,"_DA(1)_",1,"
 S DR=.04
 D ^DIE
 K DIC,DR,DIE,DA
 Q
EDCONFAX ;EDIT CONTACT FAX
 K DIC,DR,DIE,DA,DD,DO
 S DA(1)=AD1
 S DA(2)=AD0
 S DA=AD2
 S DIE="^AUPNAUTH("_DA(2)_",11,"_DA(1)_",1,"
 S DR=.05
 D ^DIE
 K DIC,DR,DIE,DA
 Q
EDCONNOT ;EDIT CONTACT NOTES
 ;BEGIN NEW CODE AG*7.1*2 IM20457
 I $D(AGSEENLY) D  W ! K DIR S DIR(0)="E" D ^DIR Q
 .N REC S REC=0
 .F  S REC=$O(^AUPNAUTH(AD0,11,AD1,1,AD2,1,REC)) Q:'REC  D
 ..W !,$P($G(^AUPNAUTH(AD0,11,AD1,1,AD2,1,REC,0)),U)
 ..I $Y>$G(IOBM) W ! K DIR S DIR(0)="E",DIR("A")="Press return..." D ^DIR
 ;END NEW CODE IM20457
 K DIC,DR,DIE,DA,DD,DO
 S DA(1)=AD2
 S DA(2)=AD1
 S DA(3)=AD0
 S DIC="^AUPNAUTH("_DA(3)_",11,"_DA(2)_",1,"_DA(1)_",1,"
 D EN^DIWE
 K DIC,DR,DIE,DA
 Q
 ;USED ONLY FOR VIEW OPTION
DISNOTES ;EP
 I '$D(^AUPNAUTH(AD0,11,AD1,1,AD2,1)) W !,"NO NOTES TO VIEW" H 2 Q
 N LN,X
 S LN=0
 W !!
 F  S LN=$O(^AUPNAUTH(AD0,11,AD1,1,AD2,1,LN)) Q:'LN  D
 .S X=$G(^AUPNAUTH(AD0,11,AD1,1,AD2,1,LN,0))
 .D ^DIWP
 D ^DIWW
 K DIR S DIR(0)="E" D ^DIR
 Q
 ; ****************************************************************
 ; ON LINES BELOW:
 ; U "^" DELIMITED
 ; AGSCRN CONTAINS THE $TEXT OF EACH LINE BELOW STARTING AT TAG '1'
 ; PIECE  VAR       DESC
 ; -----  --------  -----------------------------------------------
 ; 1      CAPTION    FLD CAP ASSIGNED BY PROGRAMMER OVERRIDES FLD LBL IF POPULATED
 ; 2      CAPDENT    POSITION ON LINE TO DISP CAP
 ; 3      DIC        FILE OR SUBFILE #
 ; 4      DR         FLD # - THESE CAN BE SEPARATED BY ";" THIS ALLOWS
 ;                   MULTIPLE FLDS TO BE PRINTED WITH THE SAME CAP AS IN
 ;                   'CITY,STATE,ZIP'
 ; 5      NEWLINE    NEW LINE OR NOT (MUST BE EITHER A '!' OR '?#')
 ;                   USE THIS TO INDENT THE LINE
 ; 6      ITEMNUM    ITEM NUMBER ASSIGNMENT. USE THIS TO ASSIGN THE ITEM #
 ;                   USED TO ALLOW USER TO CHOOSE THIS FLD TO EDIT
 ; 7      TAGCALL    TAG TO CALL WHEN THIS FLD IS CHOSEN BY USER TO BE EDITED
 ;
 ; BAR "|" DELIMITED
 ; PIECE  VAR        DESC
 ; -----  --------   ----------------------------------------------
 ; 2      EXECUTE    EXECUTE CODE TO GET FLD THAT ANOTHER IS POINTING TO.
 ;                   EXECUTED AFT FLD PRINT. IF MUTLIPLE FLDS ARE PRINTED
 ;                   THEN MULTIPLE EXECUTE CODES CAN BE SEPARATED BY ";".
 ; 3      PREEXEC    EXECUTE CODE TO DO BEF FLD PRINTS. USE TO SCREEN OUT
 ;                   PRINTING A FLD VALUE. FOR MULTIPLES SEPARATE BY ";"
 ; 4      PRECAPEX   EXECUTE CODE TO DO BEF PRINTING THE CAP OR FLD LBL.
 ;                   USE TO SCREEN OUT PRINTING A CAP/FLD LBL
 ; 5      POSTEXEC   EXECUTE CODE TO DO AFT PRINTING THE FLD DATA
 ;                   FOR MULTIPLES SEPARATE BY ";"
 ; 6      SKIPEXEC   EXECUTE CODE TO SKIP ENTIRE FLD
 ;
1 ;
 ;;--AUTHORIZATION CONTACTS---------------------------------------------------------
 ;;Contact Date^?0^9000046.1101^.01^!^1^EDADDDT||
 ;;Contact Person^?0^9000046.1101^.02^!?0^2^EDCONPER||
 ;;Contact Phone^?0^9000046.1101^.03^!?0^3^EDCONPH||
 ;;Contact Fax^?0^9000046.1101^.05^!?0^4^EDCONFAX||
 ;;Contact E-mail^?0^9000046.1101^.04^!?0^5^EDEMAIL||
 ;;--------------------------------------------------------------------------------
 ;;NOTES^?0^9000046.11101^.01^!^6^EDCONNOT
 ;;*END*