| 1 | SCCVEAP3 ;ALB/RMO,TMP - Appointment Conversion cont.; [ 04/05/95  10:19 AM ] | 
|---|
| 2 | ;;5.3;Scheduling;**211**;Aug 13, 1993 | 
|---|
| 3 | ; | 
|---|
| 4 | SET(SCCVEVT,SCLOG,DFN,SCDTM,SCCLN,SCDA,SCOE,SCCV) ; Set variables | 
|---|
| 5 | ; Input  -- SCCVEVT  Conversion event | 
|---|
| 6 | ;           SCLOG    Scheduling conversion log IEN | 
|---|
| 7 | ;           DFN      Patient IEN | 
|---|
| 8 | ;           SCDTM    Appointment date/time | 
|---|
| 9 | ;           SCCLN    Clinic IEN | 
|---|
| 10 | ; Output -- SCDA     Clinic appt patient sub-file IEN | 
|---|
| 11 | ;           SCOE     Outpatient encounter IEN | 
|---|
| 12 | ;           SCCV     Conversion array: | 
|---|
| 13 | ;                    SCCV("EVT")       Conversion event | 
|---|
| 14 | ;                        ("LOG")       Scheduling conversion log IEN | 
|---|
| 15 | ;                        ("NEW")       Outpatient encounter | 
|---|
| 16 | ;                                       created by conversion flag | 
|---|
| 17 | ;                                       0 = no new encounter or visit | 
|---|
| 18 | ;                                       1 = new encounter and visit | 
|---|
| 19 | ;                                       2 = new visit only | 
|---|
| 20 | ;                        ("SCDA")      Multiple entry in ^SC for this pt | 
|---|
| 21 | ;                        ("OE",0)      Outpatient encounter 0th node | 
|---|
| 22 | ;                        ("PT",0)      Patient appt 0th node | 
|---|
| 23 | ;                        ("PT","R")    Patient appt "R" node (Remarks) | 
|---|
| 24 | ;                        ("CL1",0)     Clinic's 0th node | 
|---|
| 25 | ;                        ("CL",0)      Clinic appt patient 0th node | 
|---|
| 26 | ;                        ("CL","C")    Clinic appt patient "C" node (Check in/out) | 
|---|
| 27 | ;                        ("ERR")       Code for specific error, if any | 
|---|
| 28 | ;                        ("VST")       Visit file IEN | 
|---|
| 29 | ; | 
|---|
| 30 | N SCOE0,SCDATA,SCIENS | 
|---|
| 31 | ; | 
|---|
| 32 | S:'$G(SCDA) SCDA=+$$FIND^SDAM2(DFN,SCDTM,SCCLN) ; Find multiple entry in ^SC for this pt | 
|---|
| 33 | ; | 
|---|
| 34 | S SCOE=+$P($G(^DPT(DFN,"S",SCDTM,0)),U,20),SCOE0=$G(^SCE(SCOE,0)) | 
|---|
| 35 | ; | 
|---|
| 36 | ; -- following is commented out ; left for reference purposes | 
|---|
| 37 | ; -- this 'if' should always fail ; CON^SCCVEAP1 has this covered | 
|---|
| 38 | ;IF 'SCOE,'SCDA S SCCV("ERR")=1 G SETQ | 
|---|
| 39 | ; | 
|---|
| 40 | S SCCV("SCDA")=SCDA | 
|---|
| 41 | S SCCV("EVT")=SCCVEVT | 
|---|
| 42 | ; | 
|---|
| 43 | S SCCV("LOG")=SCLOG | 
|---|
| 44 | S SCCV("PT",0)=$G(^DPT(DFN,"S",SCDTM,0)),SCCV("PT","R")=$G(^("R")) | 
|---|
| 45 | S SCCV("CL",0)=$G(^SC(SCCLN,"S",SCDTM,1,SCDA,0)),SCCV("CL","C")=$G(^("C")) | 
|---|
| 46 | S SCCV("CL1",0)=$G(^SC(SCCLN,0)) | 
|---|
| 47 | ; | 
|---|
| 48 | ; On re-convert, delete previously converted data | 
|---|
| 49 | I SCCVEVT=2 D | 
|---|
| 50 | . N SCDATA | 
|---|
| 51 | . ; only delete for reconvert if we created the encounter or completed | 
|---|
| 52 | . ;   the conversion by adding the visit | 
|---|
| 53 | . Q:'$$CCREATE^SCCVU(SCOE) | 
|---|
| 54 | . ; | 
|---|
| 55 | . S SCCV("OE",0)=SCOE0 | 
|---|
| 56 | . D RECNVT(SCOE,SCOE0,.SCCONS) | 
|---|
| 57 | . S SCOE0=$G(^SCE(SCOE,0)) S:SCOE0="" SCOE=0 | 
|---|
| 58 | ; | 
|---|
| 59 | S SCCV("NEW")=$S('SCOE:1,'$P(SCOE0,U,5):2,1:0) | 
|---|
| 60 | ; | 
|---|
| 61 | G:'SCCV("NEW") SETQ ; Already has both an encounter and visit | 
|---|
| 62 | ; | 
|---|
| 63 | ; Increment total number of encounters/visits that would be created by | 
|---|
| 64 | ;   conversion (if estimating) | 
|---|
| 65 | I 'SCCVEVT D  G SETQ ; -- Estimate exits here | 
|---|
| 66 | . D INCRTOT^SCCVEGU1(.SCTOT,SCCV("NEW")+6,1) | 
|---|
| 67 | . D EN^SCCVZZ("APPT-"_(SCCV("NEW")+6),SCOE,SCDTM,$P($G(SCCV("PT",0)),U),+$P(SCOE0,U,6)) | 
|---|
| 68 | . D CREDIT^SCCVEAP4(SCOE,SCDTM,.SCCV,0) | 
|---|
| 69 | ; | 
|---|
| 70 | I 'SCOE D  ; Create enctr/visit | 
|---|
| 71 | . N SCCVT | 
|---|
| 72 | . D SETSCCVT^SCCVEAP2(.SCCVT,.SCCONS) | 
|---|
| 73 | . IF 'SCDA F  L +^SC(SCCLN,"S",SCDTM,1,999999):5 IF $T S ^SC(SCCLN,"S",SCDTM,1,999999,0)=DFN Q | 
|---|
| 74 | . S SCOE=$$GETAPT^SDVSIT2(DFN,SCDTM,SCCLN,"") | 
|---|
| 75 | . IF 'SCDA K ^SC(SCCLN,"S",SCDTM,1,999999) L -^SC(SCCLN,"S",SCDTM,1,999999) | 
|---|
| 76 | . Q:'SCOE | 
|---|
| 77 | . I $P($G(^SCE(SCOE,0)),U,3) S SCCV("HIST")=1 | 
|---|
| 78 | . S SCTOT(1.02)=$G(SCTOT(1.02))+1 | 
|---|
| 79 | ; | 
|---|
| 80 | S SCCV("OE")=+SCOE | 
|---|
| 81 | S SCCV("OE",0)=$G(^SCE(+SCOE,0)) | 
|---|
| 82 | S SCCV("VST")=$P(SCCV("OE",0),U,5) | 
|---|
| 83 | S SCCV("ORG")=1,SCCV("REF")=SCDA | 
|---|
| 84 | ; | 
|---|
| 85 | I 'SCCV("VST"),SCOE,SCCV("NEW")'=1 D | 
|---|
| 86 | . S SCCV("VST")=$$VISIT^SCCVEAP2(SCDTM,.SCCV) ; create visit if encounter already exists, but no visit | 
|---|
| 87 | . D CREDIT^SCCVEAP4(SCOE,SCDTM,.SCCV,SCCVEVT) | 
|---|
| 88 | ; | 
|---|
| 89 | SETQ Q | 
|---|
| 90 | ; | 
|---|
| 91 | RECNVT(SCOE,SCOE0,SCCONS) ;Delete data added by conversion | 
|---|
| 92 | ; | 
|---|
| 93 | N Z,SCVST,SCENC,SCENC0,SCCHLD,PXKNOEVT | 
|---|
| 94 | ; | 
|---|
| 95 | S PXKNOEVT=1 ;Don't want event driver to fire off | 
|---|
| 96 | ; | 
|---|
| 97 | S SCVST(0,SCOE,+$P(SCOE0,U,5))=+$G(^SCE(SCOE,"CNV")) ;Parent | 
|---|
| 98 | D DELPTR(SCOE) | 
|---|
| 99 | ; | 
|---|
| 100 | S SCENC=0 F  S SCENC=$O(^SCE("APAR",SCOE,SCENC)) Q:'SCENC  D | 
|---|
| 101 | . S SCVST(1,SCENC,+$P($G(^SCE(SCENC,0)),U,5))=+$G(^SCE(SCENC,"CNV")) | 
|---|
| 102 | . D DELPTR(SCENC) | 
|---|
| 103 | ; | 
|---|
| 104 | S SCCHLD="" F  S SCCHLD=$O(SCVST(SCCHLD)) Q:SCCHLD=""  S SCENC=0 F  S SCENC=$O(SCVST(SCCHLD,SCENC)) Q:'SCENC  S SCVST="" F  S SCVST=$O(SCVST(SCCHLD,SCENC,SCVST)) Q:SCVST=""  D | 
|---|
| 105 | . I SCVST(SCCHLD,SCENC,SCVST),$D(^SCE(SCENC,0)) D DELE^SCCVCST2(SCENC) ;Created by conversion - delete enctr | 
|---|
| 106 | . Q:'SCVST!SCCHLD  ;No need to delete children visits - they should go away w/parent | 
|---|
| 107 | . S Z=$$DELVFILE^PXAPI("ALL",SCVST,$G(SCCONS("PKG")),$G(SCCONS("SRCE"))) | 
|---|
| 108 | Q | 
|---|
| 109 | ; | 
|---|
| 110 | DELPTR(SCE) ; Delete visit pointer if encounter still exists | 
|---|
| 111 | ; SCE = encounter IEN | 
|---|
| 112 | N SCDATA | 
|---|
| 113 | I $P($G(^SCE(SCE,0)),U,5) S SCDATA(.05)="@" D UPD^SCCVDBU(409.68,SCE,.SCDATA) | 
|---|
| 114 | ; | 
|---|
| 115 | Q | 
|---|
| 116 | ; | 
|---|