SDCO21 ;ALB/RMO - Classification Cont. - Check Out;30 MAR 1993 2:10 pm ; 3/12/04 4:33pm
;;5.3;Scheduling;**150,244,325,441,1015**;Aug 13, 1993;Build 21
;
CL(DFN,SDDT,SDOE,SDCLY) ;Build Classification Array
; Input -- DFN Patient file IEN
; SDDT Date/Time
; SDOE Outpatient Encounter file IEN [Optional]
; Output -- SDCLY Classification Array
; Subscripted by Class. Type file (#409.41) IEN
N SDCTI
S SDCTI=0 F S SDCTI=$O(^SD(409.41,SDCTI)) Q:'SDCTI I $$SCR(SDCTI,DFN,SDDT,$G(SDOE)) S SDCLY(SDCTI)=""
CLQ Q
;
SCR(SDCTI,DFN,SDDT,SDOE) ;Outpatient Classification Type Screen
; Input -- SDCTI Outpatient Classification Type IEN
; DFN Patient file IEN
; SDDT Date/Time
; SDOE Outpatient Encounter file IEN [Optional]
; Output -- 1=Yes and 0=No
N Y
I $$ACT^SDCODD(SDCTI,SDDT) D
.I $D(^SD(409.41,SDCTI,1)) X ^(1) Q:'$T
.S Y=1
SCRQ Q +$G(Y)
;
CLOE(SDOE,SDCLOEY) ;Set-up Classification Array for Outpatient Encounter
; Input -- SDOE Outpatient Encounter file IEN
; Output -- SDCLOEY Classification Array Set for Outpatient Encounter
; Subscripted by Class Type file IEN
; Null or 409.42 IEN^Internal Value^1=n/a^1=unedt
N SDCLY,SDCN0,SDCNI,SDCTI,SDCTIS,SDCTS,SDOE0
S SDOE0=$G(^SCE(+SDOE,0))
D CL($P(SDOE0,"^",2),+SDOE0,SDOE,.SDCLY)
S SDCTI=0 F S SDCTI=$O(^SDD(409.42,"AO",SDOE,SDCTI)) Q:'SDCTI S SDCNI=+$O(^(SDCTI,0)) I $D(^SDD(409.42,SDCNI,0)) S SDCN0=^(0) D
.S SDCLY(SDCTI)=SDCNI_"^"_$P(SDCN0,"^",3)_"^"_$S('$D(SDCLY(SDCTI)):1,1:"")_"^"_$S($P(SDOE0,"^",10)=2:1,1:"")
S SDCTIS=$$SEQ
F SDCTS=1:1 S SDCTI=+$P(SDCTIS,",",SDCTS) Q:'SDCTI I $D(SDCLY(SDCTI)) S SDCLOEY(SDCTI)=SDCLY(SDCTI)
CLOEQ Q
;
SC(SDCTI,SDOE,SDSELY,SDCLOEY) ;Service Connected Classification Checks
N SDCHGF,SDCLOE,SDSEL
S SDSEL=$S(SDCTI=1:2,SDCTI=2:3,SDCTI=4:4,1:"") G SCQ:SDSEL=""
D CHK(SDOE,SDCTI,.SDCLOE)
I $D(SDCLOE) D G SCQ
.I SDCLOE,$P(SDCLOE,"^",3) S SDCHGF=1
.I SDCLOE="" S SDCHGF=1
.I $G(SDCHGF) S:$D(SDSELY) SDSELY(SDSEL)="" S SDCLOEY(SDCTI)=SDCLOE
I '$D(SDCLOE) D
.K SDCLOEY(SDCTI)
SCQ Q
;
CHK(SDOE,SDCTI,SDCLOE) ;Check One Classification for Outpatient Encounter
; Input -- SDOE Outpatient Encounter file IEN
; SDCTI Outpatient Classification Type IEN
; Output -- SDCLOE Null or 409.42 IEN^Internal Value^1=n/a^1=unedt
N DFN,SDCL,SDCNI,SDDT,SDOE0
S SDOE0=$G(^SCE(+SDOE,0))
S DFN=+$P(SDOE0,"^",2),SDDT=+SDOE0
I $$SCR(SDCTI,DFN,SDDT,SDOE) S SDCL=""
S SDCNI=+$O(^SDD(409.42,"AO",SDOE,SDCTI,0))
I $D(^SDD(409.42,SDCNI,0)) S SDCL=SDCNI_"^"_$P(^(0),"^",3)_"^"_$S('$D(SDCL):1,1:"")_"^"_$S($P(SDOE0,"^",10)=2:1,1:"")
I $D(SDCL) S SDCLOE=SDCL
CHKQ Q
;
SEQ() ;Classification Type Sequence by IEN
; Input -- None
; Output -- Classification Type Sequence by IEN
; Current Sequence is: SC, CV, AO, IR, EC, SHAD, MST, HNC
Q "3,7,1,2,4,8,5,6"
SDCO21 ;ALB/RMO - Classification Cont. - Check Out;30 MAR 1993 2:10 pm ; 3/12/04 4:33pm
+1 ;;5.3;Scheduling;**150,244,325,441,1015**;Aug 13, 1993;Build 21
+2 ;
CL(DFN,SDDT,SDOE,SDCLY) ;Build Classification Array
+1 ; Input -- DFN Patient file IEN
+2 ; SDDT Date/Time
+3 ; SDOE Outpatient Encounter file IEN [Optional]
+4 ; Output -- SDCLY Classification Array
+5 ; Subscripted by Class. Type file (#409.41) IEN
+6 NEW SDCTI
+7 SET SDCTI=0
FOR
SET SDCTI=$ORDER(^SD(409.41,SDCTI))
IF 'SDCTI
QUIT
IF $$SCR(SDCTI,DFN,SDDT,$GET(SDOE))
SET SDCLY(SDCTI)=""
CLQ QUIT
+1 ;
SCR(SDCTI,DFN,SDDT,SDOE) ;Outpatient Classification Type Screen
+1 ; Input -- SDCTI Outpatient Classification Type IEN
+2 ; DFN Patient file IEN
+3 ; SDDT Date/Time
+4 ; SDOE Outpatient Encounter file IEN [Optional]
+5 ; Output -- 1=Yes and 0=No
+6 NEW Y
+7 IF $$ACT^SDCODD(SDCTI,SDDT)
Begin DoDot:1
+8 IF $DATA(^SD(409.41,SDCTI,1))
XECUTE ^(1)
IF '$TEST
QUIT
+9 SET Y=1
End DoDot:1
SCRQ QUIT +$GET(Y)
+1 ;
CLOE(SDOE,SDCLOEY) ;Set-up Classification Array for Outpatient Encounter
+1 ; Input -- SDOE Outpatient Encounter file IEN
+2 ; Output -- SDCLOEY Classification Array Set for Outpatient Encounter
+3 ; Subscripted by Class Type file IEN
+4 ; Null or 409.42 IEN^Internal Value^1=n/a^1=unedt
+5 NEW SDCLY,SDCN0,SDCNI,SDCTI,SDCTIS,SDCTS,SDOE0
+6 SET SDOE0=$GET(^SCE(+SDOE,0))
+7 DO CL($PIECE(SDOE0,"^",2),+SDOE0,SDOE,.SDCLY)
+8 SET SDCTI=0
FOR
SET SDCTI=$ORDER(^SDD(409.42,"AO",SDOE,SDCTI))
IF 'SDCTI
QUIT
SET SDCNI=+$ORDER(^(SDCTI,0))
IF $DATA(^SDD(409.42,SDCNI,0))
SET SDCN0=^(0)
Begin DoDot:1
+9 SET SDCLY(SDCTI)=SDCNI_"^"_$PIECE(SDCN0,"^",3)_"^"_$SELECT('$DATA(SDCLY(SDCTI)):1,1:"")_"^"_$SELECT($PIECE(SDOE0,"^",10)=2:1,1:"")
End DoDot:1
+10 SET SDCTIS=$$SEQ
+11 FOR SDCTS=1:1
SET SDCTI=+$PIECE(SDCTIS,",",SDCTS)
IF 'SDCTI
QUIT
IF $DATA(SDCLY(SDCTI))
SET SDCLOEY(SDCTI)=SDCLY(SDCTI)
CLOEQ QUIT
+1 ;
SC(SDCTI,SDOE,SDSELY,SDCLOEY) ;Service Connected Classification Checks
+1 NEW SDCHGF,SDCLOE,SDSEL
+2 SET SDSEL=$SELECT(SDCTI=1:2,SDCTI=2:3,SDCTI=4:4,1:"")
IF SDSEL=""
GOTO SCQ
+3 DO CHK(SDOE,SDCTI,.SDCLOE)
+4 IF $DATA(SDCLOE)
Begin DoDot:1
+5 IF SDCLOE
IF $PIECE(SDCLOE,"^",3)
SET SDCHGF=1
+6 IF SDCLOE=""
SET SDCHGF=1
+7 IF $GET(SDCHGF)
IF $DATA(SDSELY)
SET SDSELY(SDSEL)=""
SET SDCLOEY(SDCTI)=SDCLOE
End DoDot:1
GOTO SCQ
+8 IF '$DATA(SDCLOE)
Begin DoDot:1
+9 KILL SDCLOEY(SDCTI)
End DoDot:1
SCQ QUIT
+1 ;
CHK(SDOE,SDCTI,SDCLOE) ;Check One Classification for Outpatient Encounter
+1 ; Input -- SDOE Outpatient Encounter file IEN
+2 ; SDCTI Outpatient Classification Type IEN
+3 ; Output -- SDCLOE Null or 409.42 IEN^Internal Value^1=n/a^1=unedt
+4 NEW DFN,SDCL,SDCNI,SDDT,SDOE0
+5 SET SDOE0=$GET(^SCE(+SDOE,0))
+6 SET DFN=+$PIECE(SDOE0,"^",2)
SET SDDT=+SDOE0
+7 IF $$SCR(SDCTI,DFN,SDDT,SDOE)
SET SDCL=""
+8 SET SDCNI=+$ORDER(^SDD(409.42,"AO",SDOE,SDCTI,0))
+9 IF $DATA(^SDD(409.42,SDCNI,0))
SET SDCL=SDCNI_"^"_$PIECE(^(0),"^",3)_"^"_$SELECT('$DATA(SDCL):1,1:"")_"^"_$SELECT($PIECE(SDOE0,"^",10)=2:1,1:"")
+10 IF $DATA(SDCL)
SET SDCLOE=SDCL
CHKQ QUIT
+1 ;
SEQ() ;Classification Type Sequence by IEN
+1 ; Input -- None
+2 ; Output -- Classification Type Sequence by IEN
+3 ; Current Sequence is: SC, CV, AO, IR, EC, SHAD, MST, HNC
+4 QUIT "3,7,1,2,4,8,5,6"