- SCCVEAE ;ALB/RMO,TMP - Add/Edit Conversion; [ 03/31/95 3:11 PM ]
- ;;5.3;Scheduling;**211**;Aug 13, 1993
- ;
- EN(SCCVEVT,SCSTDT,SCENDT,SCLOG,SCREQ,SCSTOPF) ;Entry point to loop through all add/edits for a specified date range
- ; Input -- SCCVEVT Conversion event
- ; SCSTST Start date
- ; SCENDT End date
- ; SCLOG Scheduling conversion log IEN
- ; SCREQ Scheduling conversion request IEN
- ; Output -- SCSTOPF Conversion stop flag
- N SCDTM
- F SCDTM=SCSTDT:0 S SCDTM=$O(^SDV(SCDTM)) Q:'SCDTM!($P(SCDTM,".")>SCENDT)!($G(SCSTOPF)) D STOPS(SCCVEVT,SCDTM,SCLOG,SCREQ,.SCSTOPF)
- ENQ Q
- ;
- STOPS(SCCVEVT,SCDTM,SCLOG,SCREQ,SCSTOPF) ;Loop through stop codes for a specific date/time
- ; Input -- SCCVEVT Conversion event
- ; SCDTM Visit date/time
- ; SCLOG Scheduling conversion log IEN
- ; SCREQ Scheduling conversion request IEN
- ; Output -- SCSTOPF Conversion stop flag
- N SCDA,SCQUIT,SC0,SCE,SCE0,X
- IF SCCVEVT D ZERO(SCDTM)
- S SCDA=0
- F S SCDA=$O(^SDV(SCDTM,"CS",SCDA)) Q:'SCDA!($G(SCSTOPF)) I $D(^SDV(SCDTM,"CS",SCDA,0)) S SC0=^(0),SCQUIT=0 D
- .I $P(SC0,U,8) D Q:SCQUIT ; Is 'parent encounter' invalid?
- .. S SCE=+$P($G(^SCE(+$P(SC0,U,8),0)),U,6)
- .. Q:'SCE ;Encounter IS a parent, so it's OK to process
- .. ;Check parents of children for validity
- .. S SCE0=$G(^SCE(SCE,0))
- .. ;
- .. ;'Estimate' processes Add/Edit data separate from 'parent' to avoid counting them twice, so the following checks are necessary to be sure the parent was a valid appt
- .. I $P(SCE0,U,8)=1 S X=$G(^DPT(+$P(SCE0,U,2),"S",+SCE0,0)) IF $P(X,U,2)'="",$P(X,U,2)'="I" S SCQUIT=1 Q ;Don't convert or add to estimate counts if children of an invalid appt
- .. I $P(SCE0,U,8)=3 S X=$G(^DPT(+$P(SCE0,U,2),"DIS",9999999-SCE0,0)) IF $P(X,U,2)=2 S SCQUIT=1 Q ;Don't convert or add to estimate counts if children of an invalid disposition
- .. IF $P(SCE0,U,5),'$P($G(^SCE(SCE,"CNV")),U,4) S SCQUIT=1 Q ; -- visit already exists / not historial visit
- .. I SCCVEVT,'$P(SCE0,U,5) S SCQUIT=1 ;Parent has no visit, don't convert children
- .. ;
- . D EN^SCCVEAE1(SCCVEVT,SCDTM,SCDA,0,SCLOG)
- . I $G(SCLOG) D STOP^SCCVLOG(SCLOG,SCREQ,.SCSTOPF)
- . I '$G(SCLOG) S SCTOT("OK")=1
- STOPQ Q
- ;
- ZERO(SCDTM) ; -- fix zeroth if missing
- IF '$D(^SDV(SCDTM,"CS",0)),$O(^SDV(SCDTM,"CS",0)) S ^SDV(SCDTM,"CS",0)="^409.51P^^"
- Q
- ;
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSCCVEAE 2411 printed Feb 19, 2025@00:05:08 Page 2
- SCCVEAE ;ALB/RMO,TMP - Add/Edit Conversion; [ 03/31/95 3:11 PM ]
- +1 ;;5.3;Scheduling;**211**;Aug 13, 1993
- +2 ;
- EN(SCCVEVT,SCSTDT,SCENDT,SCLOG,SCREQ,SCSTOPF) ;Entry point to loop through all add/edits for a specified date range
- +1 ; Input -- SCCVEVT Conversion event
- +2 ; SCSTST Start date
- +3 ; SCENDT End date
- +4 ; SCLOG Scheduling conversion log IEN
- +5 ; SCREQ Scheduling conversion request IEN
- +6 ; Output -- SCSTOPF Conversion stop flag
- +7 NEW SCDTM
- +8 FOR SCDTM=SCSTDT:0
- SET SCDTM=$ORDER(^SDV(SCDTM))
- if 'SCDTM!($PIECE(SCDTM,".")>SCENDT)!($GET(SCSTOPF))
- QUIT
- DO STOPS(SCCVEVT,SCDTM,SCLOG,SCREQ,.SCSTOPF)
- ENQ QUIT
- +1 ;
- STOPS(SCCVEVT,SCDTM,SCLOG,SCREQ,SCSTOPF) ;Loop through stop codes for a specific date/time
- +1 ; Input -- SCCVEVT Conversion event
- +2 ; SCDTM Visit date/time
- +3 ; SCLOG Scheduling conversion log IEN
- +4 ; SCREQ Scheduling conversion request IEN
- +5 ; Output -- SCSTOPF Conversion stop flag
- +6 NEW SCDA,SCQUIT,SC0,SCE,SCE0,X
- +7 IF SCCVEVT
- DO ZERO(SCDTM)
- +8 SET SCDA=0
- +9 FOR
- SET SCDA=$ORDER(^SDV(SCDTM,"CS",SCDA))
- if 'SCDA!($GET(SCSTOPF))
- QUIT
- IF $DATA(^SDV(SCDTM,"CS",SCDA,0))
- SET SC0=^(0)
- SET SCQUIT=0
- Begin DoDot:1
- +10 ; Is 'parent encounter' invalid?
- IF $PIECE(SC0,U,8)
- Begin DoDot:2
- +11 SET SCE=+$PIECE($GET(^SCE(+$PIECE(SC0,U,8),0)),U,6)
- +12 ;Encounter IS a parent, so it's OK to process
- if 'SCE
- QUIT
- +13 ;Check parents of children for validity
- +14 SET SCE0=$GET(^SCE(SCE,0))
- +15 ;
- +16 ;'Estimate' processes Add/Edit data separate from 'parent' to avoid counting them twice, so the following checks are necessary to be sure the parent was a valid appt
- +17 ;Don't convert or add to estimate counts if children of an invalid appt
- IF $PIECE(SCE0,U,8)=1
- SET X=$GET(^DPT(+$PIECE(SCE0,U,2),"S",+SCE0,0))
- IF $PIECE(X,U,2)'=""
- IF $PIECE(X,U,2)'="I"
- SET SCQUIT=1
- QUIT
- +18 ;Don't convert or add to estimate counts if children of an invalid disposition
- IF $PIECE(SCE0,U,8)=3
- SET X=$GET(^DPT(+$PIECE(SCE0,U,2),"DIS",9999999-SCE0,0))
- IF $PIECE(X,U,2)=2
- SET SCQUIT=1
- QUIT
- +19 ; -- visit already exists / not historial visit
- IF $PIECE(SCE0,U,5)
- IF '$PIECE($GET(^SCE(SCE,"CNV")),U,4)
- SET SCQUIT=1
- QUIT
- +20 ;Parent has no visit, don't convert children
- IF SCCVEVT
- IF '$PIECE(SCE0,U,5)
- SET SCQUIT=1
- +21 ;
- End DoDot:2
- if SCQUIT
- QUIT
- +22 DO EN^SCCVEAE1(SCCVEVT,SCDTM,SCDA,0,SCLOG)
- +23 IF $GET(SCLOG)
- DO STOP^SCCVLOG(SCLOG,SCREQ,.SCSTOPF)
- +24 IF '$GET(SCLOG)
- SET SCTOT("OK")=1
- End DoDot:1
- STOPQ QUIT
- +1 ;
- ZERO(SCDTM) ; -- fix zeroth if missing
- +1 IF '$DATA(^SDV(SCDTM,"CS",0))
- IF $ORDER(^SDV(SCDTM,"CS",0))
- SET ^SDV(SCDTM,"CS",0)="^409.51P^^"
- +2 QUIT
- +3 ;