| 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 | ;
|
---|