| 1 | ECXUTL2 ;ALB/JAP - Utilities for DSS Extracts (cont.) ; 11/2/06 9:03am
 | 
|---|
| 2 |  ;;3.0;DSS EXTRACTS;**8,13,23,24,33,35,39,46,71,84,92**;Dec 22, 1997;Build 30
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | ECXDEF(ECXHEAD,ECXPACK,ECXGRP,ECXFILE,ECXRTN,ECXPIECE,ECXVER) ;variables specific to extract from file #727.1
 | 
|---|
| 5 |  ;   input 
 | 
|---|
| 6 |  ;   ECXHEAD = extract header code
 | 
|---|
| 7 |  ;   all other formal list parameters passed by reference
 | 
|---|
| 8 |  ;   output
 | 
|---|
| 9 |  ;   ECXPACK = type field (#7)
 | 
|---|
| 10 |  ;   ECXGRP  = group field (#9)
 | 
|---|
| 11 |  ;   ECXFILE = file number field (#1)
 | 
|---|
| 12 |  ;   ECXRTN  = routine field (#4)
 | 
|---|
| 13 |  ;   ECXPIECE= running piece field (#11)
 | 
|---|
| 14 |  ;   ECXVER  = dss version
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  N ECXIEN,ECXARR,DIC,DA,DR,DIQ
 | 
|---|
| 17 |  S (ECXPACK,ECXGRP,ECXFILE,ECXRTN,ECXPIECE,ECXVER)="",ECXIEN=0
 | 
|---|
| 18 |  S ECXIEN=+$O(^ECX(727.1,"C",ECXHEAD,ECXIEN))
 | 
|---|
| 19 |  I ECXIEN=0 D  Q
 | 
|---|
| 20 |  .D MES^XPDUTL(" ")
 | 
|---|
| 21 |  .D MES^XPDUTL(" It appears that you may have a problem with File #727.1 --")
 | 
|---|
| 22 |  .D MES^XPDUTL(" ")
 | 
|---|
| 23 |  .D MES^XPDUTL(" The "_ECHEAD_" Extract is not properly defined.")
 | 
|---|
| 24 |  .D MES^XPDUTL(" ")
 | 
|---|
| 25 |  .D MES^XPDUTL(" Contact National VISTA Support for further assistance.")
 | 
|---|
| 26 |  .D MES^XPDUTL(" ")
 | 
|---|
| 27 |  .I $E(IOST)="C" D
 | 
|---|
| 28 |  ..S SS=22-$Y F JJ=1:1:SS W !
 | 
|---|
| 29 |  ..S DIR(0)="E" W ! D ^DIR K DIR
 | 
|---|
| 30 |  .W !!
 | 
|---|
| 31 |  S DIC="^ECX(727.1,",DA=ECXIEN,DR=".01;1;4;7;9;11",DIQ="ECXARR"
 | 
|---|
| 32 |  D EN^DIQ1
 | 
|---|
| 33 |  S ECXPACK=ECXARR(727.1,ECXIEN,7)
 | 
|---|
| 34 |  ;if this is an inactive extract type, skip it
 | 
|---|
| 35 |  I ECXPACK["Inactive" D  Q
 | 
|---|
| 36 |  .D MES^XPDUTL(" ")
 | 
|---|
| 37 |  .D MES^XPDUTL(" The "_ECHEAD_" Extract is no longer active/valid.")
 | 
|---|
| 38 |  .D MES^XPDUTL(" ")
 | 
|---|
| 39 |  .D MES^XPDUTL(" Contact National VISTA Support for further assistance.")
 | 
|---|
| 40 |  .D MES^XPDUTL(" ")
 | 
|---|
| 41 |  .I $E(IOST)="C" D
 | 
|---|
| 42 |  ..S SS=22-$Y F JJ=1:1:SS W !
 | 
|---|
| 43 |  ..S DIR(0)="E" W ! D ^DIR K DIR
 | 
|---|
| 44 |  .W !!
 | 
|---|
| 45 |  S ECXGRP=ECXARR(727.1,ECXIEN,9)
 | 
|---|
| 46 |  S ECXFILE=ECXARR(727.1,ECXIEN,1)
 | 
|---|
| 47 |  S ECXRTN="START^"_ECXARR(727.1,ECXIEN,4)
 | 
|---|
| 48 |  S ECXPIECE=ECXARR(727.1,ECXIEN,11)
 | 
|---|
| 49 |  ;version of dss/tsi in Austin as specified by btso
 | 
|---|
| 50 |  S ECXVER=7
 | 
|---|
| 51 |  Q
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 | PATDEM(DFN,DT1,PAR,FLG) ; determine patient information
 | 
|---|
| 54 |  ;  DFN   =
 | 
|---|
| 55 |  ;  DT    =
 | 
|---|
| 56 |  ;  PAR   =
 | 
|---|
| 57 |  ;  FLG   =
 | 
|---|
| 58 |  N DT2,PAT,OK,X
 | 
|---|
| 59 |  D KPATDEM
 | 
|---|
| 60 |  S FLG=$G(FLG),PAR=$S($D(PAR):PAR,1:"1;2;3;4;5;"),DT2=$P(DT1,".")
 | 
|---|
| 61 |  Q:'$$PAT^ECXUTL3(DFN,DT2,PAR,.PAT) 0
 | 
|---|
| 62 |  S ECXMPI=PAT("MPI")
 | 
|---|
| 63 |  I PAR["1" D
 | 
|---|
| 64 |  .S ECXSSN=PAT("SSN"),ECXPNM=PAT("NAME"),ECXDOB=PAT("DOB")
 | 
|---|
| 65 |  .S ECXSEX=PAT("SEX"),ECXREL=PAT("RELIGION"),ECXRACE=PAT("RACE")
 | 
|---|
| 66 |  .S ECXMAR=PAT("MARITAL")
 | 
|---|
| 67 |  .S ECXETH=PAT("ETHNIC"),ECXRC1=PAT("RACE1")
 | 
|---|
| 68 |  I PAR["2" D
 | 
|---|
| 69 |  .S ECXCNTY=PAT("COUNTY"),ECXSTATE=PAT("STATE"),ECXZIP=PAT("ZIP")
 | 
|---|
| 70 |  I PAR["3" D
 | 
|---|
| 71 |  .S ECXPOS=PAT("POS"),ECSC=PAT("SC STAT"),ECXSVC=PAT("SC%")
 | 
|---|
| 72 |  .S ECXVET=PAT("VET"),ECXMEAN=PAT("MEANS"),ECXELIG=PAT("ELIG")
 | 
|---|
| 73 |  .S ECXENRL=PAT("ENROLL LOC")
 | 
|---|
| 74 |  .S ECXERI=PAT("ERI")
 | 
|---|
| 75 |  I PAR["4" S ECXEMP=PAT("EMPLOY")
 | 
|---|
| 76 |  I PAR["5" D
 | 
|---|
| 77 |  .S ECXVIET=PAT("VIETNAM"),ECXAST=PAT("AO STAT"),ECXRST=PAT("IR STAT")
 | 
|---|
| 78 |  .S ECXEST=PAT("EC STAT"),ECXPST=PAT("POW STAT"),ECXPLOC=PAT("POW LOC")
 | 
|---|
| 79 |  .S ECXPHI=PAT("PHI"),ECXMST=PAT("MST STAT"),ECXAOL=PAT("AOL")
 | 
|---|
| 80 |  I PAR["6" D
 | 
|---|
| 81 |  .S (ECXPAYOR,ECXSAI)="" D VISN19(DFN,.ECXPAYOR,.ECXSAI)
 | 
|---|
| 82 |  I FLG'[3 D
 | 
|---|
| 83 |  .S X=$$PRIMARY(DFN,DT2),ECPTTM=$P(X,U),ECPTPR=$P(X,U,2),ECCLAS=$P(X,U,3)
 | 
|---|
| 84 |  .S ECPTNPI=$P(X,U,4),ECASPR=$P(X,U,5),ECCLAS2=$P(X,U,6)
 | 
|---|
| 85 |  .S ECASNPI=$P(X,U,7)
 | 
|---|
| 86 |  I FLG'[2 D
 | 
|---|
| 87 |  .S ECXINP=$$INP^ECXUTL2(DFN,DT1),ECXA=$P(ECXINP,U),ECXMN=$P(ECXINP,U,2)
 | 
|---|
| 88 |  .S ECXTS=$P(ECXINP,U,3),ECXDOM=$P(ECXINP,U,10),ECXADMDT=$P(ECXINP,U,4)
 | 
|---|
| 89 |  I FLG'[1 S X=$$ENROLLM(DFN)
 | 
|---|
| 90 |  Q 1
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 | KPATDEM ;
 | 
|---|
| 93 |  K ECXADMDT,ECAO,ECASNPI,ECASPR,ECCLAS,ECCLAS2,ECENV,ECPTNPI,ECPTPR,ECPTTM
 | 
|---|
| 94 |  K ECRE,ECSC,ECXA,ECXAST,ECXCAT,ECXCNTY,ECXEST,ECXENRL,ECXDOB
 | 
|---|
| 95 |  K ECXDOM,ECXELIG,ECXINP,ECXMPI,ECXMN,ECXNM,ECXPHI,ECXPLOC,ECXMEAN,ECXMST
 | 
|---|
| 96 |  K ECXPAYOR,ECXPNM,ECXPOS,ECXPRIOR,ECXPST,ECXRACE,ECXREL,ECXRST,ECXSAI
 | 
|---|
| 97 |  K ECXSEX,ECXSSN,ECXSTAT,ECXSTATE,ECXSVC,ECXTS,ECXVIET,ECXZIP,VA,VAERR
 | 
|---|
| 98 |  K ECXSBGRP
 | 
|---|
| 99 |  Q
 | 
|---|
| 100 |  ;
 | 
|---|
| 101 | ENROLLM(DFN,RNDT) ;determines enrollment status, category, priority
 | 
|---|
| 102 |  ;and user enrollee status
 | 
|---|
| 103 |  ; input
 | 
|---|
| 104 |  ;    DFN      = IEN from Patient file (Required)
 | 
|---|
| 105 |  ;    RNDT     = Extract Run Date
 | 
|---|
| 106 |  ; output
 | 
|---|
| 107 |  ;    ECXSTAT  = Enrollment status
 | 
|---|
| 108 |  ;    ECXPRIOR = Enrollment priority
 | 
|---|
| 109 |  ;    ECXCAT   = Enrollment priority
 | 
|---|
| 110 |  ;    ECXSBGRP = Enrollment subgroup
 | 
|---|
| 111 |  ;    ECXUESTA = User enrollee
 | 
|---|
| 112 |  ;    return value 0 if no data found, 1 if data found
 | 
|---|
| 113 |  ;
 | 
|---|
| 114 |  N CAT,PRIOR,STAT,X,X1,X2,X3,ENRIEN,ENR,FL,SBGRP
 | 
|---|
| 115 |  S (ECXCAT,ECXPRIOR,ECXSTAT,ECXSBGRP,ECXEUSTA)=""
 | 
|---|
| 116 |  I $G(DFN)="" Q 0
 | 
|---|
| 117 |  ;User enrollee status, if current or future date set to 'U'
 | 
|---|
| 118 |  ;DBIA #3989
 | 
|---|
| 119 |  S ECXUESTA=$S($$UESTAT^EASUER(DFN):"U",1:"")
 | 
|---|
| 120 |  ;Patient type
 | 
|---|
| 121 |  S ECXPTYPE=$$TYPE^ECXUTL5(DFN)
 | 
|---|
| 122 |  ;Combat Veteran Status DBIA #4156
 | 
|---|
| 123 |  S X3=$$CVEDT^ECXUTL5(DFN,$S($G(ECD):ECD,$G(ECXDATE):ECXDATE,1:DT))
 | 
|---|
| 124 |  ;enrollment priority DBIA
 | 
|---|
| 125 |  S STAT=$$STATUS^DGENA(DFN),PRIOR=$$PRIORITY^DGENA(DFN)
 | 
|---|
| 126 |  S CAT=$$CATEGORY^DGENA4(DFN,STAT),SBGRP=$$ENRSBGRP^DGENA4(DFN)
 | 
|---|
| 127 |  ;find current enrollment when status=2 or 19
 | 
|---|
| 128 |  I "^2^19^"[("^"_STAT_"^") S ECXSTAT=STAT,ECXPRIOR=PRIOR,ECXCAT=CAT,ECXSBGRP=$S(SBGRP=1:"a",SBGRP=3:"c",SBGRP=5:"e",SBGRP=7:"g",1:"") Q 1
 | 
|---|
| 129 |  ;find previous enrollment
 | 
|---|
| 130 |  S ENRIEN=$$FINDCUR^DGENA(DFN) I ENRIEN="" Q 0
 | 
|---|
| 131 |  I $G(RNDT)="" D NOW^%DTC S RNDT=X
 | 
|---|
| 132 |  S RNDT=($E(RNDT,1,3)-1)_$E(RNDT,4,7),FL=0
 | 
|---|
| 133 |  F  S ENRIEN=$$FINDPRI^DGENA(ENRIEN) Q:'ENRIEN  D  Q:FL
 | 
|---|
| 134 |  . S ENR=$$GET^DGENA(ENRIEN,.ENR)
 | 
|---|
| 135 |  . I "^2^19^"[("^"_ENR("STATUS")_"^"),ENR("EFFDATE")>RNDT D
 | 
|---|
| 136 |  . . S ECXSTAT=ENR("STATUS"),ECXPRIOR=PRIOR,FL=1
 | 
|---|
| 137 |  . . S ECXCAT=$$CATEGORY^DGENA4(DFN,ECXSTAT)
 | 
|---|
| 138 |  . . S ECXSBGRP=$$ENRSBGRP^DGENA4(DFN)
 | 
|---|
| 139 |  . . S ECXSBGRP=$S(SBGRP=1:"a",SBGRP=3:"c",SBGRP=5:"e",SBGRP=7:"g",1:"")
 | 
|---|
| 140 |  I FL Q 1
 | 
|---|
| 141 |  ;no enrollment status found =2 or 19
 | 
|---|
| 142 |  S ECXSTAT=STAT,ECXPRIOR=PRIOR,ECXCAT=CAT,ECXSBGRP=$S(SBGRP=1:"a",SBGRP=3:"c",SBGRP=5:"e",SBGRP=7:"g",1:"")
 | 
|---|
| 143 |  Q 1
 | 
|---|
| 144 |  ;
 | 
|---|
| 145 | PRIMARY(ECXDFN,ECXDATE,ECXPREFX) ;determine patient's pc team and pc provider
 | 
|---|
| 146 |  ; input
 | 
|---|
| 147 |  ; ECXDFN    = file #2 ien (required)
 | 
|---|
| 148 |  ; ECXDATE   = date of interest (required)
 | 
|---|
| 149 |  ; ECXPREFX  = prefix for provider data (optional)
 | 
|---|
| 150 |  ;             defaults to "2" if not specified otherwise
 | 
|---|
| 151 |  ; output
 | 
|---|
| 152 |  ; ECXPRIME  = pc team ien^prefix_pc provider ien^pc provider person class^pc provider npi
 | 
|---|
| 153 |  ;             ^prefix_assoc pc provider ien^assoc pc provider person class^assoc pc provider npi
 | 
|---|
| 154 |  ;
 | 
|---|
| 155 |  N ECPTTM,ECPTPR,ECCLAS,ECPRIME,ECASPR,ECCLAS2
 | 
|---|
| 156 |  S:'$D(ECXPREFX) ECXPREFX=2 S:(+ECXPREFX=0) ECXPREFX=2
 | 
|---|
| 157 |  ;get pc team data
 | 
|---|
| 158 |  S ECPTTM=+$$OUTPTTM^SDUTL3(ECXDFN,ECXDATE) S:ECPTTM=0 ECPTTM=""
 | 
|---|
| 159 |  ;get primary pc provider data
 | 
|---|
| 160 |  S ECPTPR=+$$OUTPTPR^SDUTL3(ECXDFN,ECXDATE)
 | 
|---|
| 161 |  S ECCLAS="" I ECPTPR>0 S ECCLAS=$$PRVCLASS^ECXUTL(ECPTPR,ECXDATE)
 | 
|---|
| 162 |  S:ECPTPR=0 ECPTPR="" S:ECPTPR]"" ECPTPR=ECXPREFX_ECPTPR
 | 
|---|
| 163 |  S ECPTNPI=""
 | 
|---|
| 164 |  ;assoc pc provider call ok if routine scapmca from patch177 is present
 | 
|---|
| 165 |  S ECASPR=""
 | 
|---|
| 166 |  S X="SCAPMCA" X ^%ZOSF("TEST") I $T D
 | 
|---|
| 167 |  .S ECASPR=+$$OUTPTAP^SDUTL3(ECXDFN,ECXDATE)
 | 
|---|
| 168 |  S ECCLAS2="" I ECASPR>0 S ECCLAS2=$$PRVCLASS^ECXUTL(ECASPR,ECXDATE)
 | 
|---|
| 169 |  S:ECASPR=0 ECASPR="" S:ECASPR]"" ECASPR=ECXPREFX_ECASPR
 | 
|---|
| 170 |  S ECASNPI=""
 | 
|---|
| 171 |  ;assemble
 | 
|---|
| 172 |  S ECXPRIME=ECPTTM_U_ECPTPR_U_ECCLAS_U_ECPTNPI_U_ECASPR_U_ECCLAS2_U_ECASNPI
 | 
|---|
| 173 |  Q ECXPRIME
 | 
|---|
| 174 |  ;
 | 
|---|
| 175 | INP(ECXDFN,ECXDATE) ; check for inpatient status
 | 
|---|
| 176 |  ; input
 | 
|---|
| 177 |  ; ECXDFN  = file #2 ien (required)
 | 
|---|
| 178 |  ; ECXDATE = date of interest (required)
 | 
|---|
| 179 |  ; output
 | 
|---|
| 180 |  ; ECXINP  = patient status^movment # (file #405 ien)
 | 
|---|
| 181 |  ;       current treat. spec. (file #42.4 ien)^admission date/time^
 | 
|---|
| 182 |  ;       current ward (file #42 ien)^discharge date/time^
 | 
|---|
| 183 |  ;       ward provider^attending phys.^ward (file #44 ien);facility
 | 
|---|
| 184 |  ;       (file #40.8 ien);dss dept^dom
 | 
|---|
| 185 |  ;           where patient status = I for inpatient
 | 
|---|
| 186 |  ;                                = O for outpatient
 | 
|---|
| 187 |  ;
 | 
|---|
| 188 |  N DFN,DSSDEPT,ECA,ECADM,ECMN,ECTS,ECWARD,ECDC,ECXINP,ECXPRO
 | 
|---|
| 189 |  N ECXATP,ECXDD,ECXDOM,ECXPROF,ECXPWP,ECXWW,FAC,VAIP,WRD,ECXPWPPC
 | 
|---|
| 190 |  N ECXATPPC
 | 
|---|
| 191 |  D FIELD^DID(405,.19,,"SPECIFIER","ECXDD")
 | 
|---|
| 192 |  S ECXPROF=$E(+$P(ECXDD("SPECIFIER"),"P",2)) K ECXDD
 | 
|---|
| 193 |  ;
 | 
|---|
| 194 |  ;- Inpat/outpat indicator (ECA) initially set to "O" (outpatient)
 | 
|---|
| 195 |  S DFN=ECXDFN,ECA="O"
 | 
|---|
| 196 |  S (DSSDEPT,ECMN,ECTS,ECADM,ECWARD,ECDC,ECXATP,ECXPWP,ECXWW,WRD,FAC,ECXPWPPC,ECXATPPC)=""
 | 
|---|
| 197 |  S VAIP("D")=ECXDATE D IN5^VADPT
 | 
|---|
| 198 |  S ECMN=$G(VAIP(1))
 | 
|---|
| 199 |  I ECMN D
 | 
|---|
| 200 |  .S ECTS=+$P($G(^DIC(45.7,+VAIP(8),0)),U,2) S:ECTS=0 ECTS=""
 | 
|---|
| 201 |  .;
 | 
|---|
| 202 |  .;- Get inpat/outpat indicator
 | 
|---|
| 203 |  .S ECA=$$INOUTP^ECXUTL4(ECTS)
 | 
|---|
| 204 |  .S ECADM=+$G(VAIP(13,1)) S:ECADM=0 ECADM=""
 | 
|---|
| 205 |  .S ECWARD=+$G(VAIP(5)) S:ECWARD=0 ECWARD=""
 | 
|---|
| 206 |  .I ECWARD D
 | 
|---|
| 207 |  ..S WRD=+$P($G(^DIC(42,+ECWARD,44)),U)
 | 
|---|
| 208 |  ..S FAC=$P($G(^DIC(42,+ECWARD,0)),U,11)
 | 
|---|
| 209 |  ..S DSSDEPT=$P($G(^ECX(727.4,ECWARD,0)),U,2)
 | 
|---|
| 210 |  .S ECXWW=WRD_";"_FAC_";"_DSSDEPT,ECDC=+$G(VAIP(17,1)) S:ECDC=0 ECDC=""
 | 
|---|
| 211 |  .S ECXPWP=+VAIP(7) S:ECXPWP=0 ECXPWP=""
 | 
|---|
| 212 |  .S ECXATP=+VAIP(18) S:ECXATP=0 ECXATP=""
 | 
|---|
| 213 |  .S ECXPWPPC=$$PRVCLASS^ECXUTL(ECXPWP,ECADM)
 | 
|---|
| 214 |  .S ECXATPPC=$$PRVCLASS^ECXUTL(ECXATP,ECADM)
 | 
|---|
| 215 |  .;prefix file #200 iens
 | 
|---|
| 216 |  .S:ECXPWP ECXPWP=ECXPROF_ECXPWP S:ECXATP ECXATP=ECXPROF_ECXATP
 | 
|---|
| 217 |  S ECXDOM=$P($G(^ECX(727.831,+ECTS,0)),U,2)
 | 
|---|
| 218 |  S ECXINP=ECA_U_ECMN_U_ECTS_U_ECADM_U_ECWARD_U_ECDC_U_ECXPWP_U_ECXATP_U_ECXWW_U_ECXDOM_U_ECXPWPPC_U_ECXATPPC
 | 
|---|
| 219 |  Q ECXINP
 | 
|---|
| 220 |  ;
 | 
|---|
| 221 | VISN19(ECXDFN,ECXPAYOR,ECXSAI) ;visn 19 sharing agreement data
 | 
|---|
| 222 |  ; input  ECXDFN = patient file ien
 | 
|---|
| 223 |  ; output ECXPAYOR, ECXSAI (passed by reference)
 | 
|---|
| 224 |  ;
 | 
|---|
| 225 |  N JJ,ALIAS,INSUR,DIC,DIQ,DA,DR,ECXARY,ECXERR,ECXDA
 | 
|---|
| 226 |  S (ECXPAYOR,ECXSAI)=""
 | 
|---|
| 227 |  D GETS^DIQ(2,ECXDFN,"1*,","I","ECXARY","ECXERR")
 | 
|---|
| 228 |  I $D(ECXERR) Q
 | 
|---|
| 229 |  S JJ=0 F  S JJ=$O(ECXARY(2.01,JJ)) Q:JJ=""  D  I ECXPAYOR]"" Q
 | 
|---|
| 230 |  . S ALIAS=$G(ECXARY(2.01,JJ,.01,"I"))
 | 
|---|
| 231 |  . S ECXPAYOR=$S(ALIAS="SHARING AGREEMENT":"A",ALIAS="TRICARE":"B",ALIAS="CAT C":"C",ALIAS="CATEGORY C":"C",ALIAS="CHAMPVA":"D",ALIAS="CHAMPUS":"E",1:"")
 | 
|---|
| 232 |  . W !,$G(CNT)+1
 | 
|---|
| 233 |  . W !,"The value of ECXPAYOR is: ",ECXPAYOR
 | 
|---|
| 234 |  ;K ECXARY,ECXERR
 | 
|---|
| 235 |  I ECXPAYOR]"" D GETS^DIQ(2,ECXDFN,".3121*,","I","ECXARY","ECXERR") D
 | 
|---|
| 236 |  . W !,"This is a test"
 | 
|---|
| 237 |  . I $D(ECXERR) Q
 | 
|---|
| 238 |  . S JJ=0,ECXDA=$O(ECXARY(2.312,JJ)) I ECXDA="" Q
 | 
|---|
| 239 |  . S DA=$G(ECXARY(2.312,ECXDA,.01,"I")) I DA="" Q
 | 
|---|
| 240 |  . S INSUR=$$GET1^DIQ(36,DA,".01","I","","ECXERR")
 | 
|---|
| 241 |  . I '$D(ECXERR) S ECXSAI=$E(ECXARY(2.312,ECXDA,.01,"I"),1,11)
 | 
|---|
| 242 |  Q
 | 
|---|