| 1 | EASEZU2 ;ALB/jap - Utilities for 1010EZ Processing ;10/13/00  10:53
 | 
|---|
| 2 |  ;;1.0;ENROLLMENT APPLICATION SYSTEM;**53**;Mar 15, 2001
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | PICKALL(EASVIEW) ;For processing status selected, pick-up all records in #712
 | 
|---|
| 5 |  ;Loop through Application Holding file #712 for status selected
 | 
|---|
| 6 |  N APP,FAC,INDEX,JDATE,DAT0,NAME,SSN,VETTYPE,FDAYS,WEBID,WILLSEND,ENTRY,EDATE,X,Y,I,J,T,V,X1,X2,X3
 | 
|---|
| 7 |  Q:'EASVIEW  Q:EASVIEW>6
 | 
|---|
| 8 |  K ^TMP($J,712,EASVIEW)
 | 
|---|
| 9 |  ;index to search depends on status selected for viewing
 | 
|---|
| 10 |  S V=EASVIEW,INDEX=$S(V=1:"NEW",V=2:"REV",V=3:"PRT",V=4:"SIG",V=5:"FIL",V=6:"CLS",1:"")
 | 
|---|
| 11 |  Q:V=""  Q:INDEX=""
 | 
|---|
| 12 |  S I=INDEX D
 | 
|---|
| 13 |  .;use the index to get each application in selected status
 | 
|---|
| 14 |  .;here JDATE is the date on which the application reached status of interest
 | 
|---|
| 15 |  .S JDATE=0 F  S JDATE=$O(^EAS(712,I,JDATE)) Q:'JDATE  S APP=0 F  S APP=$O(^EAS(712,I,JDATE,APP)) Q:'APP  D
 | 
|---|
| 16 |  ..S DAT0=$G(^EAS(712,APP,0)),NAME=$P(DAT0,U,4),ENTRY=$P(DAT0,U,6),SSN=$P($P(DAT0,U,5),"&",1),T=$P(DAT0,U,9)
 | 
|---|
| 17 |  ..S WEBID=$P(DAT0,U,2),WILLSEND=$P(DAT0,U,13)
 | 
|---|
| 18 |  ..S FAC=$P($G(^EAS(712,APP,1)),U,6) S:FAC="" FAC=1
 | 
|---|
| 19 |  ..;don't include filed apps if filed more than 30 days ago. 
 | 
|---|
| 20 |  ..S FDAYS=0 I (INDEX="FIL")!(INDEX="CLS") S X2=JDATE,X1=DT D ^%DTC S FDAYS=X
 | 
|---|
| 21 |  ..I FDAYS>30 K ^EAS(712,INDEX,JDATE,APP)
 | 
|---|
| 22 |  ..Q:FDAYS>30
 | 
|---|
| 23 |  ..;avoid any stub entries
 | 
|---|
| 24 |  ..Q:NAME=""
 | 
|---|
| 25 |  ..S Y=ENTRY,%F=2,EDATE=$$FMTE^XLFDT(Y,%F) I $L(EDATE)<10 D
 | 
|---|
| 26 |  ...S X1=$P(EDATE,"/",1),X2=$P(EDATE,"/",2),X3=$P(EDATE,"/",3)
 | 
|---|
| 27 |  ...S:$L(X1)=1 X1="0"_X1 S:$L(X2)=1 X2="0"_X2
 | 
|---|
| 28 |  ...S EDATE=X1_"/"_X2_"/"_X3
 | 
|---|
| 29 |  ..S VETTYPE=$S(T=1:"SC 50-100%",T=2:"SC <50%",T=3:"SC 0%",T=4:"POW",T=5:"PURPLE HEART",T=6:"MIL. RETIREE",T=7:"NSC",1:"")
 | 
|---|
| 30 |  ..S ^TMP($J,712,EASVIEW,FAC,NAME,ENTRY,APP)=APP_U_SSN_U_VETTYPE_U_EDATE_U_JDATE_U_WEBID_U_WILLSEND_U_FAC
 | 
|---|
| 31 |  Q
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 | SETDATE(EASAPP,INDEX) ;update fields & indexes associated with processing status
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 |  N DA,DR,DIE
 | 
|---|
| 36 |  S DA=EASAPP,DIE="^EAS(712,"
 | 
|---|
| 37 |  I INDEX="REV" S DR="5.1///^S X=DT;5.2////^S X=DUZ" D ^DIE,REINDEX^EASEZU2(EASAPP,INDEX) Q
 | 
|---|
| 38 |  I INDEX="PRT" S DR="6.1///^S X=DT;6.2////^S X=DUZ" D ^DIE,REINDEX^EASEZU2(EASAPP,INDEX) Q
 | 
|---|
| 39 |  I INDEX="SIG" S DR="4///^S X=DT;4.1///^S X=DT;4.2////^S X=DUZ" D ^DIE,REINDEX^EASEZU2(EASAPP,INDEX) Q
 | 
|---|
| 40 |  I INDEX="FIL" S DR="7.1///^S X=DT;7.2////^S X=DUZ" D ^DIE,REINDEX^EASEZU2(EASAPP,INDEX) Q
 | 
|---|
| 41 |  I INDEX="CLS" S DR="9.1///^S X=DT;9.2////^S X=DUZ" D ^DIE,REINDEX^EASEZU2(EASAPP,INDEX) Q
 | 
|---|
| 42 |  Q
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 | APPINDEX(EASAPP) ;Check file #712 processing index for Application
 | 
|---|
| 45 |  ;get determining date and remove any index entries no longer current
 | 
|---|
| 46 |  N CLSDATE,FILDATE,SIGDATE,PRTDATE,REVDATE,NEWDATE
 | 
|---|
| 47 |  S CLSDATE=$P($G(^EAS(712,EASAPP,2)),U,9) I CLSDATE D REINDEX(EASAPP,"CLS",CLSDATE) Q
 | 
|---|
| 48 |  S FILDATE=$P($G(^EAS(712,EASAPP,2)),U,5) I FILDATE D REINDEX(EASAPP,"FIL",FILDATE) Q
 | 
|---|
| 49 |  S SIGDATE=$P($G(^EAS(712,EASAPP,1)),U,1) I SIGDATE D REINDEX(EASAPP,"SIG",SIGDATE) Q
 | 
|---|
| 50 |  S PRTDATE=$P($G(^EAS(712,EASAPP,2)),U,3) I PRTDATE D REINDEX(EASAPP,"PRT",PRTDATE) Q
 | 
|---|
| 51 |  S REVDATE=$P($G(^EAS(712,EASAPP,2)),U,1) I REVDATE D REINDEX(EASAPP,"REV",REVDATE) Q
 | 
|---|
| 52 |  S NEWDATE=$P($G(^EAS(712,EASAPP,0)),U,6) I NEWDATE D REINDEX(EASAPP,"NEW",NEWDATE) Q
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 | REINDEX(EASAPP,EASINDEX,THISDATE) ;Remove previous index for Application upon processing status change
 | 
|---|
| 56 |  ;There are 6 critical indexes maintained on file #712 to indicate processing status.
 | 
|---|
| 57 |  ;   "NEW" -- New applications; uses field #3, ENTRY DATE
 | 
|---|
| 58 |  ;   "REV" -- In Review applications; uses field #5.1, REVIEW DATE
 | 
|---|
| 59 |  ;   "PRT" -- Printed/Awaiting Signature applications; uses field #6.1, PRINT DATE
 | 
|---|
| 60 |  ;   "SIG" -- Signed applications; uses field #4, DATE SIGNED BY APPLICANT
 | 
|---|
| 61 |  ;   "FIL" -- Filed applications; uses field #7.1, FILING DATE
 | 
|---|
| 62 |  ;   "CLS" -- Closed/inactivated applications; uses field #9.1, CLOSE DATE
 | 
|---|
| 63 |  ;
 | 
|---|
| 64 |  ;When a date is initially entered into one of the fields listed above, FM updates the
 | 
|---|
| 65 |  ;   the index as needed; this function removes the "old" index entry for the application.
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 |  ;Once a date has been entered into one of the fields listed above, repeated actions
 | 
|---|
| 68 |  ;   of the same type do not update the field with a new date; therefore, a new index
 | 
|---|
| 69 |  ;   entry won't be created.
 | 
|---|
| 70 |  ;   For example: The first time the 1010EZ application is Printed for Signature
 | 
|---|
| 71 |  ;                field #6.1 is updated and FM creates the index entry in "PRT",
 | 
|---|
| 72 |  ;                and this function is called to remove the old "REV" index entry;
 | 
|---|
| 73 |  ;                If the 1010EZ is Printed again sometime later, say after it has
 | 
|---|
| 74 |  ;                already been Filed, that Print action will not update field #6.1
 | 
|---|
| 75 |  ;
 | 
|---|
| 76 |  ;input 
 | 
|---|
| 77 |  ;   EASAPP   = ien in file #712 for Application
 | 
|---|
| 78 |  ;   EASINDEX = index for current processing status
 | 
|---|
| 79 |  ;   THISDATE = date to be used to set cross-reference; [optional]
 | 
|---|
| 80 |  ;              internal FM format
 | 
|---|
| 81 |  ;output
 | 
|---|
| 82 |  ;   none
 | 
|---|
| 83 |  ;
 | 
|---|
| 84 |  N DATE
 | 
|---|
| 85 |  ;
 | 
|---|
| 86 |  ;set appropriate index if necessary
 | 
|---|
| 87 |  I $G(THISDATE) S ^EAS(712,EASINDEX,THISDATE,EASAPP)=""
 | 
|---|
| 88 |  ;
 | 
|---|
| 89 |  I EASINDEX="NEW" D  Q
 | 
|---|
| 90 |  .;get REVIEW DATE
 | 
|---|
| 91 |  .S DATE=$P($G(^EAS(712,EASAPP,2)),U,1)
 | 
|---|
| 92 |  .I DATE K ^EAS(712,"REV",DATE,EASAPP)
 | 
|---|
| 93 |  .;get PRINT DATE
 | 
|---|
| 94 |  .S DATE=$P($G(^EAS(712,EASAPP,2)),U,3)
 | 
|---|
| 95 |  .I DATE K ^EAS(712,"PRT",DATE,EASAPP)
 | 
|---|
| 96 |  ;
 | 
|---|
| 97 |  I EASINDEX="REV" D  Q
 | 
|---|
| 98 |  .;get ENTRY DATE
 | 
|---|
| 99 |  .S DATE=$P($G(^EAS(712,EASAPP,0)),U,6)
 | 
|---|
| 100 |  .I DATE K ^EAS(712,"NEW",DATE,EASAPP)
 | 
|---|
| 101 |  ;
 | 
|---|
| 102 |  I EASINDEX="PRT" D  Q
 | 
|---|
| 103 |  .;get REVIEW DATE
 | 
|---|
| 104 |  .S DATE=$P($G(^EAS(712,EASAPP,2)),U,1)
 | 
|---|
| 105 |  .I DATE K ^EAS(712,"REV",DATE,EASAPP)
 | 
|---|
| 106 |  ;
 | 
|---|
| 107 |  I EASINDEX="SIG" D  Q
 | 
|---|
| 108 |  .;get REVIEW DATE
 | 
|---|
| 109 |  .S DATE=$P($G(^EAS(712,EASAPP,2)),U,1)
 | 
|---|
| 110 |  .I DATE K ^EAS(712,"REV",DATE,EASAPP)
 | 
|---|
| 111 |  .;get PRINT DATE
 | 
|---|
| 112 |  .S DATE=$P($G(^EAS(712,EASAPP,2)),U,3)
 | 
|---|
| 113 |  .I DATE K ^EAS(712,"PRT",DATE,EASAPP)
 | 
|---|
| 114 |  ;
 | 
|---|
| 115 |  I EASINDEX="FIL" D  Q
 | 
|---|
| 116 |  .;get PRINT DATE
 | 
|---|
| 117 |  .S DATE=$P($G(^EAS(712,EASAPP,2)),U,3)
 | 
|---|
| 118 |  .I DATE K ^EAS(712,"PRT",DATE,EASAPP)
 | 
|---|
| 119 |  .;get DATE SIGNED BY APPLICANT
 | 
|---|
| 120 |  .S DATE=$P($G(^EAS(712,EASAPP,1)),U,1)
 | 
|---|
| 121 |  .I DATE K ^EAS(712,"SIG",DATE,EASAPP)
 | 
|---|
| 122 |  ;
 | 
|---|
| 123 |  I EASINDEX="CLS" D  Q
 | 
|---|
| 124 |  .;get ENTRY DATE
 | 
|---|
| 125 |  .S DATE=$P($G(^EAS(712,EASAPP,0)),U,6)
 | 
|---|
| 126 |  .I DATE K ^EAS(712,"NEW",DATE,EASAPP)
 | 
|---|
| 127 |  .;get REVIEW DATE
 | 
|---|
| 128 |  .S DATE=$P($G(^EAS(712,EASAPP,2)),U,1)
 | 
|---|
| 129 |  .I DATE K ^EAS(712,"REV",DATE,EASAPP)
 | 
|---|
| 130 |  .;get PRINT DATE
 | 
|---|
| 131 |  .S DATE=$P($G(^EAS(712,EASAPP,2)),U,3)
 | 
|---|
| 132 |  .I DATE K ^EAS(712,"PRT",DATE,EASAPP)
 | 
|---|
| 133 |  ;
 | 
|---|
| 134 |  Q
 | 
|---|
| 135 |  ;
 | 
|---|
| 136 | CURRSTAT(EASAPP) ;Check file #712 processing index for Application
 | 
|---|
| 137 |  ;return current Application status
 | 
|---|
| 138 |  N CLSDATE,FILDATE,SIGDATE,PRTDATE,REVDATE,NEWDATE
 | 
|---|
| 139 |  S CLSDATE=$P($G(^EAS(712,EASAPP,2)),U,9) I CLSDATE Q "CLS"
 | 
|---|
| 140 |  S FILDATE=$P($G(^EAS(712,EASAPP,2)),U,5) I FILDATE Q "FIL"
 | 
|---|
| 141 |  S SIGDATE=$P($G(^EAS(712,EASAPP,1)),U,1) I SIGDATE Q "SIG"
 | 
|---|
| 142 |  S PRTDATE=$P($G(^EAS(712,EASAPP,2)),U,3) I PRTDATE Q "PRT"
 | 
|---|
| 143 |  S REVDATE=$P($G(^EAS(712,EASAPP,2)),U,1) I REVDATE Q "REV"
 | 
|---|
| 144 |  S NEWDATE=$P($G(^EAS(712,EASAPP,0)),U,6) I NEWDATE Q "NEW"
 | 
|---|
| 145 |  Q ""
 | 
|---|
| 146 |  ;
 | 
|---|
| 147 | LOCAL711 ;set up TMP global array
 | 
|---|
| 148 |  ;to hold file #711 & file #712 correlated data; and a useful index
 | 
|---|
| 149 |  N IEN,DIC,DIE,DA,DR,DLAYGO,DINUM,X,Y,DATANM,DATAKEY,DISPNM,FILE,SUBF,FLD,GRP
 | 
|---|
| 150 |  ;make sure 'unknown' is in #711
 | 
|---|
| 151 |  K ^TMP("EZDATA",$J),^TMP("EZINDEX",$J)
 | 
|---|
| 152 |  I '$D(^EAS(711,.1,0)) D
 | 
|---|
| 153 |  .S DIC="^EAS(711,",DIC(0)="L",DLAYGO="",X="UNKNOWN",DINUM=.1
 | 
|---|
| 154 |  .K DD,DO D FILE^DICN
 | 
|---|
| 155 |  I $D(^EAS(711,.1,0)) D
 | 
|---|
| 156 |  .S DA=.1
 | 
|---|
| 157 |  .S DIE="^EAS(711,",DR=".1///^S X=""UNKNOWN"";1///^S X=""A"";2///^S X=0;3///^S X=0;4///^S X=0"
 | 
|---|
| 158 |  .D ^DIE
 | 
|---|
| 159 |  ;pick up records from "ACTIVE" index
 | 
|---|
| 160 |  S IEN=0 F  S IEN=$O(^EAS(711,"A","A",IEN)) Q:'IEN  D
 | 
|---|
| 161 |  .S DATAKEY=$P(^EAS(711,IEN,0),U,2),X=$G(^EAS(711,IEN,1)),FILE=$P(X,U,1),SUBF=$P(X,U,2),FLD=$P(X,U,3) S:SUBF="" SUBF=FILE
 | 
|---|
| 162 |  .S DATANM=$P($G(^EAS(711,IEN,0)),U,1),DISPNM=$G(^EAS(711,IEN,2))
 | 
|---|
| 163 |  .S ^TMP("EZDATA",$J,IEN)=X_U_DATAKEY_U_DISPNM
 | 
|---|
| 164 |  .S GRP=$S(DATANM["SPOUSE":"S",DATANM["CHILD1":"C1",DATANM["CHILD(N)":"CN",1:"A")
 | 
|---|
| 165 |  .S ^TMP("EZINDEX",$J,GRP,FILE,SUBF,FLD,IEN)=IEN_U_DATANM
 | 
|---|
| 166 |  Q
 | 
|---|