| [613] | 1 | ECMUTL ;ALB/ESD - Utilities for Multiple Dates/Mult Procs ;20 AUG 1997 13:56
 | 
|---|
 | 2 |  ;;2.0; EVENT CAPTURE ;**5,10,18,33,47,63**;8 May 96
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 | ASKLOC() ; Get Location
 | 
|---|
 | 5 |  ;   Input:      None
 | 
|---|
 | 6 |  ;
 | 
|---|
 | 7 |  ;  Output:      ECL = Location (Division file pointer) ien
 | 
|---|
 | 8 |  ;              ECLN = Location name
 | 
|---|
 | 9 |  ;
 | 
|---|
 | 10 |  D ^ECL
 | 
|---|
 | 11 |  K ECOUT,LOC
 | 
|---|
 | 12 |  Q $S($D(ECL):1,1:0)
 | 
|---|
 | 13 |  ;
 | 
|---|
 | 14 |  ;
 | 
|---|
 | 15 | ASKPRDT(DSSU,ONE) ; Get Procedure Start Date/Time
 | 
|---|
 | 16 |  ;   Input:      ECD = DSS Unit ien
 | 
|---|
 | 17 |  ;               ONE = Ask procedure start date/time once
 | 
|---|
 | 18 |  ;
 | 
|---|
 | 19 |  ;  Output:   ^TMP("ECPRDT",$J) = procedure date/time array
 | 
|---|
 | 20 |  ;
 | 
|---|
 | 21 |  N DTOUT,DUOUT,ECCNT,ECDUP,ECERR
 | 
|---|
 | 22 |  S (ECCNT,ECDUP,ECERR)=0
 | 
|---|
 | 23 |  I '$G(DSSU) G ASKPRDTQ
 | 
|---|
 | 24 |  I $P($G(^ECD(DSSU,0)),"^",12)="N" S DIR("B")="NOW"
 | 
|---|
 | 25 | AGAIN N DIRUT,Y
 | 
|---|
 | 26 |  S DIR("A")="Select "_$S(+ECDUP:"Another Procedure Date and Time",1:"Procedure Date and Time")
 | 
|---|
 | 27 |  S DIR("?")="Enter both date AND time procedure was performed. Future dates are not allowed."
 | 
|---|
 | 28 |  S DIR(0)="DO^:NOW:EXR"
 | 
|---|
 | 29 |  D ^DIR K DIR
 | 
|---|
 | 30 |  I $D(DTOUT)!($D(DUOUT)) S ECERR=1
 | 
|---|
 | 31 |  I +Y S ECDUP=1,^TMP("ECPRDT",$J,Y)="" G @($S('$G(ONE):"AGAIN",1:"ASKPRDTQ"))
 | 
|---|
 | 32 |  ;
 | 
|---|
 | 33 | ASKPRDTQ Q $S(ECERR:0,(+$G(ONE)&(+Y)):1,('$G(ONE))&($D(^TMP("ECPRDT",$J))):1,1:0)
 | 
|---|
 | 34 |  ;
 | 
|---|
 | 35 |  ;
 | 
|---|
 | 36 | ASKCAT(ECL,ECD) ; Get category
 | 
|---|
 | 37 |  ;   Input:      ECL = Location ien
 | 
|---|
 | 38 |  ;               ECD = DSS Unit ien
 | 
|---|
 | 39 |  ;
 | 
|---|
 | 40 |  ;  Output:   ECATEG = Category ien (may be 0 if no categories)
 | 
|---|
 | 41 |  ;
 | 
|---|
 | 42 |  N CATS,DIRUT,ECATEG,ECMAX,X
 | 
|---|
 | 43 |  S ECATEG=0_"^No Categories",(ECMAX,X)=0
 | 
|---|
 | 44 |  I '$G(ECL)!('$G(ECD)) G ASKCATQ
 | 
|---|
 | 45 |  D CATS^ECHECK1
 | 
|---|
 | 46 |  I $O(ECC(0))']"" G ASKCATQ
 | 
|---|
 | 47 |  W !!,"Categories within "_$P($G(^ECD(+ECD,0)),"^")_":",!
 | 
|---|
 | 48 |  F  S X=$O(ECC(X)) Q:'X  W !?5,X_". ",$P(ECC(X),"^",2) S ECMAX=X
 | 
|---|
 | 49 |  W ! S DIR(0)="NA^1:"_ECMAX,DIR("A")="Select Number: "
 | 
|---|
 | 50 |  D ^DIR K DIR
 | 
|---|
 | 51 |  I 'Y!($D(DIRUT)) K ECATEG G ASKCATQ
 | 
|---|
 | 52 |  I +Y S ECATEG=$G(ECC(Y))
 | 
|---|
 | 53 | ASKCATQ K CNT,ECAT,ECC
 | 
|---|
 | 54 |  Q $G(ECATEG)
 | 
|---|
 | 55 |  ;
 | 
|---|
 | 56 |  ;
 | 
|---|
 | 57 | ASKPRO(ECL,ECD,ECC,NUM) ; Ask procedures
 | 
|---|
 | 58 |  ;   Input:      ECL = Location ien
 | 
|---|
 | 59 |  ;               ECD = DSS Unit ien
 | 
|---|
 | 60 |  ;               ECC = Category ien
 | 
|---|
 | 61 |  ;               NUM = Only ask procedure once
 | 
|---|
 | 62 |  ;
 | 
|---|
 | 63 |  ;  Output:  ^TMP("ECPROC",$J) = procedure array
 | 
|---|
 | 64 |  ;
 | 
|---|
 | 65 |  N CNT,ECERR,ECOUNT,ECOUT,ECPCNT,ECP,ECPNM,ECPREV,ECREAS,ECVOLU,ECEXIT
 | 
|---|
 | 66 |  N ECX,ECMOD,ECMODS,ECCPT,ECDT
 | 
|---|
 | 67 |  I '$D(ECL)!('$D(ECD)) G ASKPROQ
 | 
|---|
 | 68 |  S ECC=+$G(ECC)
 | 
|---|
 | 69 |  S ECOUNT=0
 | 
|---|
 | 70 |  S ECDT=$O(^TMP("ECPRDT",$J,0))
 | 
|---|
 | 71 |  D PROS^ECHECK1
 | 
|---|
 | 72 |  I '$O(^TMP("ECPRO",$J,0)) D  G ASKPROQ
 | 
|---|
 | 73 |  . W !!,"Within the ",ECLN," location there are no procedures defined",!
 | 
|---|
 | 74 |  . W "for the DSS Unit ",$P(ECDSSU,"^",2),".",!
 | 
|---|
 | 75 |  . S DIR(0)="E" D ^DIR K DIR,Y
 | 
|---|
 | 76 |  ;
 | 
|---|
 | 77 | SEL ;
 | 
|---|
 | 78 |  K ECPNAME,ECMOD
 | 
|---|
 | 79 |  S (ECPNM,ECPREV,ECREAS,ECX)="",(CNT,ECPCNT,ECP,ECVOLU,ECEXIT)=0
 | 
|---|
 | 80 |  S DIR("?")="^D LISTPR^ECMUTL"
 | 
|---|
 | 81 |  W ! S ECX=$$GETPRO^ECDSUTIL
 | 
|---|
 | 82 |  I +$G(ECX)=-1,('ECOUNT) D MSG^ECBEN2U,KILLV^ECDSUTIL G ASKPROQ
 | 
|---|
 | 83 |  I +$G(ECX)=-1,ECOUNT G ASKPROQ
 | 
|---|
 | 84 |  I +$G(ECX)=1 S ECPREV=$P(ECX,"^",2) D SRCHTM^ECDSUTIL(ECX)
 | 
|---|
 | 85 |  S ECPCNT=+$G(ECPCNT)
 | 
|---|
 | 86 |  I ECPCNT=-1!(ECPCNT=-2) D  G SEL
 | 
|---|
 | 87 |  . D @($S(ECPCNT=-1:"ERRMSG^ECDSUTIL",ECPCNT=-2:"ERRMSG2^ECDSUTIL"))
 | 
|---|
 | 88 |  . D KILLV^ECDSUTIL
 | 
|---|
 | 89 |  I ECPCNT>0 D  D CONTINU G:$G(ECERR) ASKPROQ
 | 
|---|
 | 90 |  . S CNT=ECPCNT
 | 
|---|
 | 91 |  . I ECPREV="L" W $P($G(^TMP("ECPRO",$J,+$G(^TMP("ECLKUP",$J,"LAST")))),"^",4)
 | 
|---|
 | 92 |  . I ECPREV="X"!(ECPREV="N") W "   "_$P($G(^TMP("ECPRO",$J,+CNT)),"^",4)
 | 
|---|
 | 93 |  I 'ECPCNT,$D(ECPNAME) D  G:CNT=-1!($G(ECERR)) ASKPROQ
 | 
|---|
 | 94 |  . S CNT=$$PRLST^ECDSUTIL
 | 
|---|
 | 95 |  . I CNT=-1 D MSG^ECBEN2U,KILLV^ECDSUTIL Q
 | 
|---|
 | 96 |  . I CNT>0 D
 | 
|---|
 | 97 |  .. W "   "_$S(ECPREV="S":$P($G(^TMP("ECPRO",$J,+CNT)),"^",3),1:$P($G(^TMP("ECPRO",$J,+CNT)),"^",4))
 | 
|---|
 | 98 |  .. D CONTINU
 | 
|---|
 | 99 |  ;
 | 
|---|
 | 100 |  I CNT>0,($G(ECP)'=""),(ECVOLU>0) D
 | 
|---|
 | 101 |  . S ECOUNT=$S(+$G(NUM)=-99:1,+$G(NUM)>0:NUM,1:(ECOUNT+1))
 | 
|---|
 | 102 |  . S ^TMP("ECPROC",$J,(ECOUNT))=ECP_"^"_ECPNM_"^"_+ECREAS_"^"_$S(+ECREAS:$P($G(^ECR($P($G(^ECL(+ECREAS,0)),"^"),0)),"^"),1:"Reason Not Defined")_"^"_ECVOLU
 | 
|---|
 | 103 |  . S ECCPT=$S(ECP["EC":$P($G(^EC(725,+ECP,0)),"^",5),1:+ECP)
 | 
|---|
 | 104 |  . I ECCPT'="",$O(ECMOD(ECCPT,""))'="" D
 | 
|---|
 | 105 |  . . M ^TMP("ECPROC",$J,ECOUNT,"MOD")=ECMOD(ECCPT)
 | 
|---|
 | 106 |  I '$G(NUM) G SEL
 | 
|---|
 | 107 | ASKPROQ K ^TMP("ECPRO",$J),^TMP("ECLKUP",$J),JJ,OK
 | 
|---|
 | 108 |  D KILLV^ECDSUTIL
 | 
|---|
 | 109 |  Q
 | 
|---|
 | 110 |  ;
 | 
|---|
 | 111 | CONTINU ;
 | 
|---|
 | 112 |  D SETP
 | 
|---|
 | 113 |  S ECCPT=$S(ECP["EC":$P($G(^EC(725,+ECP,0)),"^",5),1:+ECP)
 | 
|---|
 | 114 |  I ECCPT'="" D  I $G(ECERR) G CONTINUQ
 | 
|---|
 | 115 |  . S ECMODS=$G(ECMODS)
 | 
|---|
 | 116 |  . S ECMODF=$$ASKMOD^ECUTL(ECCPT,ECMODS,ECDT,.ECMOD,.ECERR)
 | 
|---|
 | 117 |  . K ECMODF,ECMODS
 | 
|---|
 | 118 |  S ECREAS=$$ASKREAS(ECL,ECD,ECC,ECP,.ECERR)
 | 
|---|
 | 119 |  G:$G(ECERR) CONTINUQ
 | 
|---|
 | 120 |  S ECVOLU=$$ASKVOL(ECL,ECD,ECC,ECP,.ECERR)
 | 
|---|
 | 121 | CONTINUQ Q
 | 
|---|
 | 122 |  ;
 | 
|---|
 | 123 | SETP ;
 | 
|---|
 | 124 |  S ^TMP("ECLKUP",$J,"LAST")=CNT
 | 
|---|
 | 125 |  S ECP=$P($G(^TMP("ECPRO",$J,CNT)),"^"),ECPNM=$P($G(^TMP("ECPRO",$J,CNT)),"^",4)
 | 
|---|
 | 126 |  Q
 | 
|---|
 | 127 |  ;
 | 
|---|
 | 128 | LISTPR ;- List available procedures
 | 
|---|
 | 129 |  ;   Input:        None
 | 
|---|
 | 130 |  ;
 | 
|---|
 | 131 |  ;  Output:        None (display on screen)
 | 
|---|
 | 132 |  ;
 | 
|---|
 | 133 |  N DIR,DIRUT,ECI,Y
 | 
|---|
 | 134 |  S ECI=0
 | 
|---|
 | 135 |  D PROCHDR
 | 
|---|
 | 136 |  F   S ECI=$O(^TMP("ECPRO",$J,ECI)) Q:'ECI!(ECEXIT)  D
 | 
|---|
 | 137 |  . I ($Y+5>IOSL) S DIR(0)="E" D ^DIR S:'Y!$D(DIRUT) ECEXIT=1 I +Y D PROCHDR
 | 
|---|
 | 138 |  . Q:ECEXIT
 | 
|---|
 | 139 |  . W !,ECI_".",?5,$E($P(^TMP("ECPRO",$J,ECI),"^",4),1,30),?38,$E($P(^(ECI),"^",3),1,30),?72,$P(^(ECI),"^",5)
 | 
|---|
 | 140 |  Q:ECEXIT
 | 
|---|
 | 141 |  W !!?5,"Select by number, CPT or national code, procedure name, or synonym.",!?5,"Synonym must be preceded by the & character  (example:  &TESTSYN).",!
 | 
|---|
 | 142 |  W ?2,"** Modifier(s) can be appended to a CPT code (ex: CPT code-mod1,mod2,mod3) **",!
 | 
|---|
 | 143 | LISTPRQ Q
 | 
|---|
 | 144 |  ;
 | 
|---|
 | 145 | PROCHDR ;- Procedure display header
 | 
|---|
 | 146 |  ;
 | 
|---|
 | 147 |  W @IOF
 | 
|---|
 | 148 |  W !,"Available Procedures within "_$P(ECDSSU,"^",2)_": ",!
 | 
|---|
 | 149 |  W ?72,"National",!,?5,"Procedure Name",?40,"Synonym",?72,"Number",!
 | 
|---|
 | 150 |  Q
 | 
|---|
 | 151 |  ;
 | 
|---|
 | 152 |  ;
 | 
|---|
 | 153 | ASKREAS(ECL,ECD,ECC,ECP,ECOUT) ;-Ask procedure reason
 | 
|---|
 | 154 |  ;   Input:      ECL = Location ien
 | 
|---|
 | 155 |  ;               ECD = DSS Unit ien
 | 
|---|
 | 156 |  ;               ECC = Category ien
 | 
|---|
 | 157 |  ;               ECP = Procedure ien
 | 
|---|
 | 158 |  ;
 | 
|---|
 | 159 |  ;  Output:  ECPRPTR = Link file ien (from file #720.5)
 | 
|---|
 | 160 |  ;             ECOUT = 0 if successful
 | 
|---|
 | 161 |  ;                     1 if uparrowed or timed out
 | 
|---|
 | 162 |  ;                     (passed by reference)
 | 
|---|
 | 163 |  ;
 | 
|---|
 | 164 |  N DTOUT,DUOUT,ECPRPTR,ECSCR
 | 
|---|
 | 165 |  S (ECOUT,ECPRPTR,ECSCR)=0
 | 
|---|
 | 166 |  S ECC=+$G(ECC)
 | 
|---|
 | 167 |  I '$D(ECL)!('$D(ECD))!('$D(ECP)) G ASKREASQ
 | 
|---|
 | 168 |  I $G(ECP)]"" S ECSCR=+$O(^ECJ("AP",+ECL,+ECD,+ECC,ECP,0))
 | 
|---|
 | 169 |  I ECSCR>0,(+$P($G(^ECJ(ECSCR,"PRO")),"^",5)),(+$O(^ECL("AD",ECSCR,0))) D
 | 
|---|
 | 170 |  . S DIC="^ECL(",DIC(0)="QEAM"
 | 
|---|
 | 171 |  . S DIC("A")="Procedure Reason: ",DIC("S")="I $P(^(0),U,2)=ECSCR"
 | 
|---|
 | 172 |  . D ^DIC K DIC
 | 
|---|
 | 173 |  . I +Y>0 S ECPRPTR=+Y
 | 
|---|
 | 174 |  . I $D(DTOUT)!($D(DUOUT)) S ECOUT=1
 | 
|---|
 | 175 | ASKREASQ Q +ECPRPTR
 | 
|---|
 | 176 |  ;
 | 
|---|
 | 177 |  ;
 | 
|---|
 | 178 | ASKVOL(ECL,ECD,ECC,ECP,ECOUT) ;- Ask procedure volume
 | 
|---|
 | 179 |  ;   Input:    ECL = Location ien
 | 
|---|
 | 180 |  ;             ECD = DSS Unit ien
 | 
|---|
 | 181 |  ;             ECC = Category ien
 | 
|---|
 | 182 |  ;             ECP = Procedure ien
 | 
|---|
 | 183 |  ;
 | 
|---|
 | 184 |  ;  Output:  ECVOL = volume
 | 
|---|
 | 185 |  ;           ECOUT = 0 if successful
 | 
|---|
 | 186 |  ;                   1 if uparrowed or timed out
 | 
|---|
 | 187 |  ;                   (passed by reference)
 | 
|---|
 | 188 |  ;
 | 
|---|
 | 189 |  N DIR,DIRUT,DTOUT,DUOUT,ECSCR,ECVOL
 | 
|---|
 | 190 |  S (ECOUT,ECSCR,ECVOL)=0
 | 
|---|
 | 191 |  S ECC=+$G(ECC)
 | 
|---|
 | 192 |  I '$D(ECL)!('$D(ECD))!('$D(ECP)) G ASKVOLQ
 | 
|---|
 | 193 |  I $G(ECP)]"" S ECSCR=+$O(^ECJ("AP",+ECL,+ECD,+ECC,ECP,0))
 | 
|---|
 | 194 |  S DIR(0)="N^^K:(X<1)!(X>99) X",DIR("A")="Volume"
 | 
|---|
 | 195 |  S DIR("?")="Type a Number between 1 and 99, 0 Decimal Digits"
 | 
|---|
 | 196 |  S DIR("B")=$S($P($G(^ECJ(ECSCR,"PRO")),"^",3):$P($G(^ECJ(ECSCR,"PRO")),"^",3),1:1)
 | 
|---|
 | 197 |  D ^DIR
 | 
|---|
 | 198 |  I +Y S ECVOL=Y
 | 
|---|
 | 199 |  I $D(DIRUT) S ECOUT=1
 | 
|---|
 | 200 | ASKVOLQ Q +ECVOL
 | 
|---|
 | 201 |  ;
 | 
|---|
 | 202 |  ;
 | 
|---|
 | 203 | PROV(ECDT,ECPROVS) ;get providers - new providers function
 | 
|---|
 | 204 |  ;- This is the same function as PROV^ECPRVUTL
 | 
|---|
 | 205 |  ;- Select provider(s) with active person class
 | 
|---|
 | 206 |  ;- No updating of file #721 record is done here
 | 
|---|
 | 207 |  ;
 | 
|---|
 | 208 |  ;   input
 | 
|---|
 | 209 |  ;   ECDT    = date/time of procedure (required)
 | 
|---|
 | 210 |  ;   ECPROVS = local array, passed by reference (required)
 | 
|---|
 | 211 |  ;    
 | 
|---|
 | 212 |  ;   output
 | 
|---|
 | 213 |  ;   ECU(1)  = provider #1 (mandatory) ien^provider #1 name^person class
 | 
|---|
 | 214 |  ;   ECU(2)  = provider #2 (optional) ien^provider #2 name^person class
 | 
|---|
 | 215 |  ;   ECU(3)  = provider #3 (optional) ien^provider #3 name^person class
 | 
|---|
 | 216 |  ;
 | 
|---|
 | 217 |  ;   returns
 | 
|---|
 | 218 |  ;       0 ==> prov selection successful; at least prov #1 selected
 | 
|---|
 | 219 |  ;       1 ==> selection unsuccessful or user timed-out
 | 
|---|
 | 220 |  ;       2 ==> selection unsuccessful or user entered "^"
 | 
|---|
 | 221 |  ;
 | 
|---|
 | 222 |  N ECU,ECU2,ECU3,ECDA
 | 
|---|
 | 223 |  D GET^ECPRVUTL("",ECDT,.ECU,.ECU2,.ECU3,.ECOUT)
 | 
|---|
 | 224 |  S ECPROVS(1)=ECU,ECPROVS(2)=ECU2,ECPROVS(3)=ECU3
 | 
|---|
 | 225 |  Q ECOUT
 | 
|---|
 | 226 |  ;
 | 
|---|
 | 227 | ONEUNIT(ECDSSU) ;- Create ECDSSU containing DSS Unit
 | 
|---|
 | 228 |  ;  Checks for validity and access to Unit
 | 
|---|
 | 229 |  ;
 | 
|---|
 | 230 |  ;   input
 | 
|---|
 | 231 |  ;   ECDSSU = passed by reference
 | 
|---|
 | 232 |  ;
 | 
|---|
 | 233 |  ;   output
 | 
|---|
 | 234 |  ;   ECDDSU = ien in file #724^name of DSS unit  OR
 | 
|---|
 | 235 |  ;            undefined
 | 
|---|
 | 236 |  ;
 | 
|---|
 | 237 |  ;   returns ECOUT = 0  if unit selection sucessful  OR
 | 
|---|
 | 238 |  ;                   1  if user times out; selection unsuccessful
 | 
|---|
 | 239 |  ;                   2  if user up-arrows out; selection unsuccessful
 | 
|---|
 | 240 |  ;   Note: if selection is unsuccessful, variable ECDSSU will be undefined.
 | 
|---|
 | 241 |  ;
 | 
|---|
 | 242 |  N Y,DIRUT,DUOUT,ECKEY,ECOUT
 | 
|---|
 | 243 |  S ECKEY=$S($D(^XUSEC("ECALLU",DUZ)):1,1:0)
 | 
|---|
 | 244 |  F  S ECOUT=0 D  Q:$G(ECOUT)  Q:$G(ECDSSU)
 | 
|---|
 | 245 |  .K DUOUT,DTOUT,DIRUT,Y
 | 
|---|
 | 246 |  .W !
 | 
|---|
 | 247 |  .S DIC=724,DIC("A")="Select DSS Unit: ",DIC(0)="QEAMZ"
 | 
|---|
 | 248 |  .S DIC("S")="I ECKEY!($D(^VA(200,DUZ,""EC"",+Y)))"
 | 
|---|
 | 249 |  .D ^DIC K DIC
 | 
|---|
 | 250 |  .S:$D(DTOUT) ECOUT=1 S:$D(DUOUT) ECOUT=2
 | 
|---|
 | 251 |  .Q:$G(ECOUT)
 | 
|---|
 | 252 |  .I +Y>0 D  Q
 | 
|---|
 | 253 |  .. I $$VALID(+Y) S ECDSSU=Y
 | 
|---|
 | 254 |  .. I '$$VALID(+Y) D
 | 
|---|
 | 255 |  ...S Y=-1
 | 
|---|
 | 256 |  ...W !!,?5,"This DSS Unit is either inactive or cannot be used"
 | 
|---|
 | 257 |  ...W !,?5,"in Event Capture.  Please select a different DSS Unit.",!
 | 
|---|
 | 258 |  .I +Y<0 D  Q
 | 
|---|
 | 259 |  ..W !!,?5,"A response is required...try again."
 | 
|---|
 | 260 |  ..W !,?5,"You must enter an ""^"" to exit."
 | 
|---|
 | 261 |  .K DIR,DUOUT,DTOUT,DIRUT
 | 
|---|
 | 262 |  .W ! S DIR(0)="YA",DIR("A")="Is this correct? ",DIR("B")="YES"
 | 
|---|
 | 263 |  .S DIR("?")="Answer YES to accept the unit, NO to start over."
 | 
|---|
 | 264 |  .D ^DIR K DIR
 | 
|---|
 | 265 |  .I $D(DIRUT) S:$D(DTOUT) ECOUT=1 S:$D(DUOUT) ECOUT=2 K ECDSSU Q
 | 
|---|
 | 266 |  .I '$G(Y) K ECDSSU
 | 
|---|
 | 267 |  Q ECOUT
 | 
|---|
 | 268 |  ;
 | 
|---|
 | 269 | VALID(IEN) ;- Check DSS Unit for use by Event Capture
 | 
|---|
 | 270 |  ;
 | 
|---|
 | 271 |  N NODE,NO,YES,VAL
 | 
|---|
 | 272 |  S NODE=$G(^ECD(IEN,0))
 | 
|---|
 | 273 |  ;piece 6 is 'inactive'; piece 8 is 'use with EC'
 | 
|---|
 | 274 |  S NO=$P(NODE,"^",6),YES=$P(NODE,"^",8)
 | 
|---|
 | 275 |  ;start out with 'valid'
 | 
|---|
 | 276 |  S VAL=1 D
 | 
|---|
 | 277 |  .;if 'inactive', then 'not valid'
 | 
|---|
 | 278 |  .I NO S VAL=0 Q
 | 
|---|
 | 279 |  .;if not 'use with EC', then 'not valid'
 | 
|---|
 | 280 |  .I 'YES S VAL=0
 | 
|---|
 | 281 |  Q VAL
 | 
|---|