- SCCVEDI3 ;ALB/RMO,TMP - Disposition Conversion cont.; [ 04/05/95 8:12 AM ]
- ;;5.3;Scheduling;**211**;Aug 13, 1993
- ;
- SET(SCCVEVT,SCLOG,DFN,SCOE,SCCV) ;Set variables
- ; Input -- SCCVEVT Conversion event
- ; SCLOG Scheduling conversion log IEN
- ; DFN Patient IEN
- ; Output -- SCOE Outpatient encounter IEN
- ; SCCV Conversion array:
- ; SCCV("EVT") Conversion event
- ; ("LOG") Scheduling conversion log IEN
- ; ("NEW") Outpatient encounter
- ; created by conversion flag
- ; 0 = no new encounter or visit
- ; 1 = new encounter and visit
- ; 2 = new visit only
- ; ("OE",0) Outpatient encounter 0th node
- ; ("DISP",0) Disposition log-in date/time 0th node
- ; ("ERR") Code for specific error, if any
- ; ("VST") Visit file IEN
- N SCOE0
- S SCCV("EVT")=SCCVEVT
- S SCCV("LOG")=+SCLOG,SCCV("ORG")=3
- S SCCV("DISP",0)=$G(^DPT(DFN,"DIS",9999999-SCDTM,0))
- I $D(SCCVDIS) D ;Find default disp. clinic for division
- . S SCCV("LOC")=+$G(SCCVDIS(+$P(SCCV("DISP",0),U,4)))
- . I 'SCCV("LOC"),$G(SCCVDIS(0)) S SCCV("LOC")=SCCVDIS(0)
- S SCOE=+$P(SCCV("DISP",0),U,18),SCOE0=$G(^SCE(SCOE,0))
- ;
- ; On re-convert, delete previously converted data
- I SCCVEVT=2 D
- . ; only delete for reconvert if we created the encounter or completed
- . ; the conversion by adding the visit
- . Q:'$$CCREATE^SCCVU(SCOE)
- . ;
- . D RECNVT^SCCVEAP3(SCOE,SCOE0,.SCCONS)
- . S SCOE0=$G(^SCE(SCOE,0)) S:SCOE0="" SCOE=0
- ;
- S SCCV("NEW")=$S('SCOE:1,'$P(SCOE0,U,5):2,1:0)
- ;
- I 'SCCV("NEW") G SETQ ;Already has enctr and visit
- ;
- ; If estimating, increment total number of encounters that would be
- ; created by the conversion
- I 'SCCVEVT D INCRTOT^SCCVEGU1(.SCTOT,SCCV("NEW")+6,1) D EN^SCCVZZ("DIS-"_(SCCV("NEW")+6),SCOE,SCDTM)
- ;
- G:'SCCVEVT SETQ ;Estimate exits here
- ;
- I 'SCOE D ;Needs both encounter and visit
- . N SCCVT
- . D SETSCCVT^SCCVEAP2(.SCCVT,.SCCONS)
- . S SCOE=$$GETDISP^SDVSIT2(DFN,SCDTM)
- . S:SCOE SCTOT(1.02)=$G(SCTOT(1.02))+1
- . ;Check if child add/edits were auto-added (no children should be auto-created)
- . I SCOE,$O(^SCE("APAR",SCOE,0)) D
- .. N SCOEC,SCOE00
- .. S SCOEC=0 F S SCOEC=$O(^SCE("APAR",SCOE,SCOEC)) Q:'SCOEC S SCOE00=$G(^SCE(SCOEC,0)) I $P(SCOE00,U,8)=2 D
- ... N SCCV
- ... S SCCV("NEW")=1
- ... D ENC^SCCVEDI1(SCOEC,.SCCV)
- ;
- S SCCV("OE")=SCOE
- S SCCV("OE",0)=$G(^SCE(SCOE,0))
- S SCCV("VST")=$P(SCCV("OE",0),U,5)
- S SCCV("REF")=9999999-SCDTM
- ;
- I 'SCCV("VST"),SCCV("NEW")'=1 D
- . S SCCV("VST")=$$VISIT^SCCVEAP2(SCDTM,.SCCV) ; create visit only
- ;
- I SCCVEVT,'$G(SCCV("VST")),'$P(SCCV("OE",0),U,4) S SCCV("ERR")=8
- SETQ Q
- ;
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSCCVEDI3 2976 printed Mar 13, 2025@21:43:46 Page 2
- SCCVEDI3 ;ALB/RMO,TMP - Disposition Conversion cont.; [ 04/05/95 8:12 AM ]
- +1 ;;5.3;Scheduling;**211**;Aug 13, 1993
- +2 ;
- SET(SCCVEVT,SCLOG,DFN,SCOE,SCCV) ;Set variables
- +1 ; Input -- SCCVEVT Conversion event
- +2 ; SCLOG Scheduling conversion log IEN
- +3 ; DFN Patient IEN
- +4 ; Output -- SCOE Outpatient encounter IEN
- +5 ; SCCV Conversion array:
- +6 ; SCCV("EVT") Conversion event
- +7 ; ("LOG") Scheduling conversion log IEN
- +8 ; ("NEW") Outpatient encounter
- +9 ; created by conversion flag
- +10 ; 0 = no new encounter or visit
- +11 ; 1 = new encounter and visit
- +12 ; 2 = new visit only
- +13 ; ("OE",0) Outpatient encounter 0th node
- +14 ; ("DISP",0) Disposition log-in date/time 0th node
- +15 ; ("ERR") Code for specific error, if any
- +16 ; ("VST") Visit file IEN
- +17 NEW SCOE0
- +18 SET SCCV("EVT")=SCCVEVT
- +19 SET SCCV("LOG")=+SCLOG
- SET SCCV("ORG")=3
- +20 SET SCCV("DISP",0)=$GET(^DPT(DFN,"DIS",9999999-SCDTM,0))
- +21 ;Find default disp. clinic for division
- IF $DATA(SCCVDIS)
- Begin DoDot:1
- +22 SET SCCV("LOC")=+$GET(SCCVDIS(+$PIECE(SCCV("DISP",0),U,4)))
- +23 IF 'SCCV("LOC")
- IF $GET(SCCVDIS(0))
- SET SCCV("LOC")=SCCVDIS(0)
- End DoDot:1
- +24 SET SCOE=+$PIECE(SCCV("DISP",0),U,18)
- SET SCOE0=$GET(^SCE(SCOE,0))
- +25 ;
- +26 ; On re-convert, delete previously converted data
- +27 IF SCCVEVT=2
- Begin DoDot:1
- +28 ; only delete for reconvert if we created the encounter or completed
- +29 ; the conversion by adding the visit
- +30 if '$$CCREATE^SCCVU(SCOE)
- QUIT
- +31 ;
- +32 DO RECNVT^SCCVEAP3(SCOE,SCOE0,.SCCONS)
- +33 SET SCOE0=$GET(^SCE(SCOE,0))
- if SCOE0=""
- SET SCOE=0
- End DoDot:1
- +34 ;
- +35 SET SCCV("NEW")=$SELECT('SCOE:1,'$PIECE(SCOE0,U,5):2,1:0)
- +36 ;
- +37 ;Already has enctr and visit
- IF 'SCCV("NEW")
- GOTO SETQ
- +38 ;
- +39 ; If estimating, increment total number of encounters that would be
- +40 ; created by the conversion
- +41 IF 'SCCVEVT
- DO INCRTOT^SCCVEGU1(.SCTOT,SCCV("NEW")+6,1)
- DO EN^SCCVZZ("DIS-"_(SCCV("NEW")+6),SCOE,SCDTM)
- +42 ;
- +43 ;Estimate exits here
- if 'SCCVEVT
- GOTO SETQ
- +44 ;
- +45 ;Needs both encounter and visit
- IF 'SCOE
- Begin DoDot:1
- +46 NEW SCCVT
- +47 DO SETSCCVT^SCCVEAP2(.SCCVT,.SCCONS)
- +48 SET SCOE=$$GETDISP^SDVSIT2(DFN,SCDTM)
- +49 if SCOE
- SET SCTOT(1.02)=$GET(SCTOT(1.02))+1
- +50 ;Check if child add/edits were auto-added (no children should be auto-created)
- +51 IF SCOE
- IF $ORDER(^SCE("APAR",SCOE,0))
- Begin DoDot:2
- +52 NEW SCOEC,SCOE00
- +53 SET SCOEC=0
- FOR
- SET SCOEC=$ORDER(^SCE("APAR",SCOE,SCOEC))
- if 'SCOEC
- QUIT
- SET SCOE00=$GET(^SCE(SCOEC,0))
- IF $PIECE(SCOE00,U,8)=2
- Begin DoDot:3
- +54 NEW SCCV
- +55 SET SCCV("NEW")=1
- +56 DO ENC^SCCVEDI1(SCOEC,.SCCV)
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +57 ;
- +58 SET SCCV("OE")=SCOE
- +59 SET SCCV("OE",0)=$GET(^SCE(SCOE,0))
- +60 SET SCCV("VST")=$PIECE(SCCV("OE",0),U,5)
- +61 SET SCCV("REF")=9999999-SCDTM
- +62 ;
- +63 IF 'SCCV("VST")
- IF SCCV("NEW")'=1
- Begin DoDot:1
- +64 ; create visit only
- SET SCCV("VST")=$$VISIT^SCCVEAP2(SCDTM,.SCCV)
- End DoDot:1
- +65 ;
- +66 IF SCCVEVT
- IF '$GET(SCCV("VST"))
- IF '$PIECE(SCCV("OE",0),U,4)
- SET SCCV("ERR")=8
- SETQ QUIT
- +1 ;