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

AGEDBED.m

Go to the documentation of this file.
  1. AGEDBED ; IHS/ASDS/TPF - EDIT/DISPLAY BENEFITS COORDINATOR - PATIENT APPLICATIONS SCREEN ;
  1. ;;7.1;PATIENT REGISTRATION;;AUG 25,2005
  1. ;
  1. ;AD0 AND AD1 WILL BE THE IENS NEEDED TO DISP THE 'PATIENT'S APPLICATIONS'
  1. ;WHICH WAS CHOSEN FROM THE BENEFIT CASE SCREEN (^AGEDBEB)
  1. ;CASEPTR IS THE BACKWARD PTR TO THE 'DATE ASSIGNED' SUBSCRIPT FOR THE CASE
  1. ;THIS PAT. APPLICATION IS ASSOCIATED WITH.
  1. EN(AD0,AD1,NEWENTRY,CASEPTR) ;EP -
  1. ;IF ITS A NEW ENTRY THEN DISP THE SCREEN,DISP A MESSAGE AND THEN
  1. ;CALL THE EDITS TO FLDS APPROPRIATE FOR ADDING A NEW ENTRY
  1. ;BELOW ASKS SEQUENCE OF QUESTIONS AS REQUESTED BY BUSINESS GROUP
  1. S EXIT=0
  1. I NEWENTRY D Q:EXIT S NEWENTRY=0
  1. .D DRAW,WMSG,NEWENTRY I $G(Y)<0 W !,"No entry made" H 2 S EXIT=1 Q
  1. .D APPTYPE
  1. .D APPSTAT
  1. .D APPPERS
  1. VAR D DRAW
  1. W !,AGLINE("EQ")
  1. K DIR
  1. I '$D(AGSEENLY) D
  1. .S DIR("A")="Change which item (1-"_AG("N")_") OR Add <A>pplication Submission information"
  1. I $D(AGSEENLY) D
  1. .S DIR("A")="Enter item number to view"
  1. .S DIR="LO^4:"_AG("N")
  1. D READ^AGED1
  1. I $D(AGSEENLY),(+Y'>0) Q
  1. I $D(AGSEENLY),((Y<5)!(Y>AG("N"))) W !,"Enter a number between 5 and "_AG("N") H 2 G VAR
  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. G END:$D(DLOUT)!(Y["N")!$D(DUOUT),VAR:$D(AG("ERR"))
  1. Q:$D(DFOUT)!$D(DTOUT)
  1. ;DO RTNS TO ADD ENTRY
  1. I $G(Y)="A" D @$S(Y="A":"EN^AGEDBEE("_AD0_","_AD1_","""",1)",1:"EN^AGEDBEE("_AD0_","_AD1_","""",1)") G VAR
  1. I $D(DQOUT)!(+Y<1)!(+Y>AG("N")),('$D(CHOICES(+Y))) W !!,"You must enter a number from 1 to ",AG("N"),!,"or 'A' to add application submission information." H 3 G VAR
  1. ;DEPENDING ON USER'S CHOICE ITEM MAY BE AN EDIT ON THIS SCREEN OR
  1. ;IT MAY BE A PATIENT APPLICATION SUBMISSION WHICH IS ON ^AGEDBEE
  1. I $D(CHOICES(+Y)) S DORTN="EN^AGEDBEE",PARAM1=$P(CHOICES(+Y),U,2),PARAM2=$P(CHOICES(+Y),U,3),PARAM3=$P(CHOICES(+Y),U,4) S DORTN=DORTN_"("_PARAM1_","_PARAM2_","_PARAM3_","_"0)" D @DORTN G VAR
  1. I $D(Y) D
  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(^AUPNAPPS(AD0,11,AD1)) D CLEAN(AD0) Q ;THEY HAVE DELETED THE DT APP. OBTAINED DT
  1. ; THEY CHOSE TO ENTER THIS SCREEN. IT IS GONE
  1. ; SO RETURN TO PREVIOUS SCREEN
  1. D CLEAN(AD0)
  1. D UPDATE1^AGED(DUZ(2),DFN,3,"")
  1. K AGI,AGY
  1. G VAR
  1. CLEAN(AD0) ;CLEAN EMPTY RECORD. IF NO APPLICATION DATES 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(^AUPNAPPS(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="^AUPNAPPS(",DA=AD0 D ^DIK
  1. Q
  1. END ;CLEAN UP THE VARS USED
  1. K DLOUT,DTOUT,DFOUT,DQOUT,DA,DIC,DR,AGSCRN,Y,ADA,WDA,ADT,WDT,ADFN,WDFN,REC,NEWENTRY
  1. Q
  1. DRAW ;EP
  1. K CHOICES
  1. S AG("PG")="5BED"
  1. S ROUTID=$P($T(+1)," ")
  1. D ^AGED
  1. D GETAW
  1. Q
  1. GETAW ;DISP
  1. K AG("C")
  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)="-" D CAPPARSE(CAPTION) Q ;PARSE OUT CAP
  1. . S DIC=$P(AGSCRN,U,3) ;FILE OR SUBFILE #
  1. . S DR=$P(AGSCRN,U,4) ;FLD #
  1. . S SKIPEXEC=$P(AGSCRN,"|",6) ;SKIP LOGIC. IF THIS IS TRUE WE
  1. . ; DON'T DEAL WITH THIS FLD AT ALL
  1. . I SKIPEXEC'="" X SKIPEXEC Q:$T
  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),"|",1) ;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 @NEWLINE
  1. . W ITEMNUM
  1. . W $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 DISP ONLY THE CAPS
  1. .I 'NEWENTRY D
  1. .. S D0=AD0
  1. .. I DIC'["." S D0=D0_","
  1. .. E S D0=AD1_","_D0_","
  1. .. ;LOOP TO HANDLE MULTIPLE DR'S FOR ONE CAP
  1. .. N PIECE
  1. .. S VDR=DR
  1. .. F PIECE=1:1 S DR=$P(VDR,";",PIECE) Q:DR="" D
  1. ... I $P(PREEXEC,";",PIECE)'="" X $P(PREEXEC,";",PIECE)
  1. ... I $P(EXECUTE,";",PIECE)="" 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. ..;LIST DATES OF SUBMITTED APPLICATIONS
  1. .. I DIC["9000045.1101" D
  1. ... S ITEM=4 ;PREVIOUS SECTION'S ITEMS END AT 4
  1. ... S VD0=AD0
  1. ... S VD1=AD1
  1. ... I $G(VD1)="" S VD1="NOSUB"
  1. ... I '$D(^AUPNAPPS(VD0,11,VD1,1)) W !,"NO SUBMISSIONS MADE" Q
  1. ... S VD2=0
  1. ... F S VD2=$O(^AUPNAPPS(VD0,11,VD1,1,VD2)) Q:'VD2 D
  1. .... S ITEM=ITEM+1
  1. .... S CHOICES(ITEM)=DIC_U_VD0_U_VD1_U_VD2
  1. .... S D0=VD2_","_VD1_","_VD0_","
  1. .... W !,ITEM_"."
  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)
  1. ..... I $P(EXECUTE,";",PIECE)="" D
  1. ...... W $S(DR=.04!(DR=.03):$E($$GET1^DIQ(DIC,D0,DR),1,20),1:$$GET1^DIQ(DIC,D0,DR))
  1. ..... I $P(EXECUTE,";",PIECE)'="" X $P(EXECUTE,";",PIECE)
  1. ..... I $P(POSTEXEC,";",PIECE)'="" X $P(POSTEXEC,";",PIECE)
  1. ....K PIECE
  1. S AG("N")=$G(ITEM)
  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. CAPPARSE(CAPTION) ;EP - PARSE OUT THE CAP
  1. N LBRACKET,RBRACKET
  1. S LBRACKET="[",RBRACKET="]"
  1. I CAPTION'[LBRACKET W !,$E(CAPTION,2,199) Q ;- DENOTES SIMPLE SECTION
  1. ;PARSE OUT AND INSERT FLD VALUES
  1. S FIELDS=$L(CAPTION,LBRACKET)
  1. W !,$E($P(CAPTION,LBRACKET),2,199)
  1. F PIECE=1:1:FIELDS D
  1. .S FIELD=$P($P(CAPTION,LBRACKET,PIECE),RBRACKET)
  1. .W $$GET1^DIQ($P(FIELD,";"),AD1_","_AD0_",",$P(FIELD,";",2))
  1. W $P(CAPTION,RBRACKET,2)
  1. K LBRACKET,RBRACKET
  1. Q
  1. WMSG ;DISP THIS MSG IF THERE IS NO AUTHORIZATION DT FOUND
  1. W !,"WHEN WAS THE PATIENT'S APPLICATION OBTAINED?"
  1. Q
  1. ;;;;;;;;;;;;;;;;;;;;;;;;;
  1. ; EDIT AUTHORIZATION FLDS
  1. ;;;;;;;;;;;;;;;;;;;;;;;;;
  1. NEWENTRY ;NEW ENTRY
  1. W !!
  1. K DIC,DIE,DR,DA
  1. S DIC="^AUPNAPPS("
  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 AD0=+Y
  1. S NEWENTRY=0
  1. NEWAPPDT ;
  1. K DIC,DIE,DR,DA
  1. S DA(1)=AD0
  1. S DIC="^AUPNAPPS("_DA(1)_",11,"
  1. S DIC(0)="ALMEQ"
  1. S DIC("S")="I $P(^(0),U,5)=CASEPTR"
  1. K DD,DO
  1. D ^DIC
  1. Q:+Y<0
  1. S AD1=+Y
  1. D STUFCASE(AD0,AD1,CASEPTR)
  1. Q
  1. STUFCASE(AD0,AD1,CASEPTR) ;EP
  1. K DIC,DIR,DR,DA,DIR
  1. S DA(1)=AD0
  1. S DA=AD1
  1. S DIE="^AUPNAPPS("_DA(1)_",11,"
  1. S DR=".05////^S X=CASEPTR"
  1. D ^DIE
  1. Q
  1. EDAPPDT ;EDIT DATE APPLICATION OBTAINED
  1. K DIC,DR,DIE,DA,DD,DO,DIR
  1. S DA(1)=AD0
  1. S DA=AD1
  1. S DIE="^AUPNAPPS("_DA(1)_",11,"
  1. S DR=".01"
  1. S DR(1,"9000045.1101")=".01R"
  1. W !,"DELETING APPLICATIONS DATA IS PROHIBITED!"
  1. W !,"ENTER 'E ENTERED IN ERROR' INTO 'Overall Status' field item #2"
  1. W !,"TO CLOSE THIS APPLICATION."
  1. D ^DIE
  1. K DIC,DR,DIE,DA
  1. Q
  1. APPSTAT ;EP - EDIT OVERALL STATUS
  1. K DIC,DR,DIE,DA,DD,DO
  1. S DA(1)=AD0
  1. S DA=AD1
  1. S DIE="^AUPNAPPS("_DA(1)_",11,"
  1. S DR=.04
  1. D ^DIE
  1. K DIC,DR,DIE,DA
  1. Q
  1. APPTYPE ;EP - EDIT APPPLICATION TYPE
  1. K DIC,DR,DIE,DA,DD,DO
  1. S DA(1)=AD0
  1. S DA=AD1
  1. S DIE="^AUPNAPPS("_DA(1)_",11,"
  1. S DR=".02"
  1. S DIE("NO^")=""
  1. D ^DIE
  1. K DIC,DR,DIE,DA
  1. Q
  1. APPPERS ;EDIT PERSON RECEIVING
  1. K DIC,DR,DIE,DA,DD,DO
  1. S DA(1)=AD0
  1. S DA=AD1
  1. S DIE="^AUPNAPPS("_DA(1)_",11,"
  1. S DR=.03
  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 NUMBER 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. ; 6 SKIPEXEC EXECUTE CODE TO SKIP ENTIRE FLD
  1. ;
  1. 1 ;
  1. ;;--APPLICATIONS DATA--------------------------------------------------------------
  1. ;;Date Obtained^?0^9000045.11^.01^!^1^EDAPPDT
  1. ;;Overall Status^?0^9000045.11^.04^!^2^APPSTAT|||||
  1. ;;Type^?0^9000045.11^.02^!^3^APPTYPE
  1. ;;Person Receiving Application^?0^9000045.11^.03^!^4^APPPERS
  1. ;;-
  1. ;;-================================================================================
  1. ;;--APPLICATION SUBMISSION DATA----------------------------------------------------
  1. ;;-DATE SUBMITTED SUB. BY SUB. VIA REASON
  1. ;;---------------------------------------------------------------------------------
  1. ;;^?0^9000045.1101^.01;.04;.02;.03^?0^^APDTSUB||;W ?18;W ?44;W ?56
  1. ;;*END*
  1. Q