| 1 | SCCVEDI1 ;ALB/RMO,TMP - Disposition Conversion cont.; [ 04/05/95  8:12 AM ]
 | 
|---|
| 2 |  ;;5.3;Scheduling;**211**;Aug 13, 1993
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | CON(SCCVEVT,DFN,SCDTM,SCCVDIS) ; Should conversion event be processed for disposition
 | 
|---|
| 5 |  ; Input  -- SCCVEVT  Conversion event
 | 
|---|
| 6 |  ;           DFN      Patient IEN
 | 
|---|
| 7 |  ;           SCDTM    Visit date/time
 | 
|---|
| 8 |  ;           SCCVDIS  Array of disposition clinics
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  ; Output -- 1=Yes and 0=No
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  N SCECSTAT,Y,SCOE,SCDIS0,SCTYPE,SCDIV
 | 
|---|
| 13 |  S SCDIS0=$G(^DPT(DFN,"DIS",9999999-SCDTM,0))
 | 
|---|
| 14 |  S SCTYPE=$P(SCDIS0,U,2)
 | 
|---|
| 15 |  S SCDIV=+$P(SCDIS0,U,4)
 | 
|---|
| 16 |  S SCOE=+$P(SCDIS0,U,18)
 | 
|---|
| 17 |  S SCECSTAT=$P(SCDIS0,U,19)
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  ; -- do checks
 | 
|---|
| 20 |  S Y=1
 | 
|---|
| 21 |  ; -- don't use if date is greater than ACRP date
 | 
|---|
| 22 |  IF Y,$P(SCDTM,".")>SCCVACRP S Y=0
 | 
|---|
| 23 |  ; -- don't use if application w/o exam
 | 
|---|
| 24 |  IF Y,SCTYPE=2 S Y=0
 | 
|---|
| 25 |  ; -- don't use if no dispo clinic division & > 1 defined for site
 | 
|---|
| 26 |  IF Y,'$G(SCCVDIS(SCDIV)),'$G(SCCVDIS(0)) S Y=0
 | 
|---|
| 27 |  ; -- don't use if convert and already converted
 | 
|---|
| 28 |  IF Y,SCCVEVT=1,SCECSTAT S Y=0
 | 
|---|
| 29 |  ; -- don't use if re-convert and not converted
 | 
|---|
| 30 |  IF Y,SCCVEVT=2,'SCECSTAT S Y=0
 | 
|---|
| 31 |  ; -- don't use if estimate and converted
 | 
|---|
| 32 |  IF Y,'SCCVEVT,SCECSTAT S Y=0
 | 
|---|
| 33 |  ; -- if check out required then must have a co completion date/time
 | 
|---|
| 34 |  IF Y,$$REQ^SDM1A(SCDTM)="CO",'$P($G(^SCE(SCOE,0)),U,7) S Y=0
 | 
|---|
| 35 |  Q +$G(Y)
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 | EN(SCCVEVT,DFN,SCDTM,SCLOG) ; Entry point to convert a disposition
 | 
|---|
| 38 |  ; Input  -- SCCVEVT  Conversion event
 | 
|---|
| 39 |  ;                    0=Estimate   1=Convert   2=Re-convert
 | 
|---|
| 40 |  ;           DFN      Patient IEN
 | 
|---|
| 41 |  ;           SCDTM    Visit date/time
 | 
|---|
| 42 |  ;           SCLOG    Scheduling conversion log IEN [optional]
 | 
|---|
| 43 |  N SCCV,SCOE,SCCONS,SCEST
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 |  S SCCONS("SRCE")="SD TO PCE DB CONV"
 | 
|---|
| 46 |  S SCCONS("PKG")=$O(^DIC(9.4,"C","SD",0))
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  ;Set up the array for extracting a default disp clinic for the division
 | 
|---|
| 49 |  I '$D(SCCVDIS) D
 | 
|---|
| 50 |  . N SCCL,SCDIV,Z
 | 
|---|
| 51 |  . S Z=0 F  S Z=$O(^PX(815,1,"DHL",Z)) Q:'Z  S SCCL=+$G(^(Z,0)),SCDIV=$P($G(^SC(SCCL,0)),U,15) I SCDIV,'$D(SCCVDIS(SCDIV)) S SCCVDIS(SCDIV)=SCCL
 | 
|---|
| 52 |  . ; Default (0) is used if division does not have a valid disp clinic
 | 
|---|
| 53 |  . S SCCVDIS(0)=+$P($G(^SD(404.91,1,"CNV")),U,2)
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 |  ; Check if disposition should be processed
 | 
|---|
| 56 |  IF '$$CON(SCCVEVT,DFN,SCDTM,.SCCVDIS) G ENQ
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 |  ; Set-up conversion array and variables
 | 
|---|
| 59 |  D SET^SCCVEDI3(SCCVEVT,+$G(SCLOG),DFN,.SCOE,.SCCV)
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 |  I 'SCCVEVT,$G(SCCV("ERR")) G ENQ
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 |  ; Don't process no new enctr or visit needed & no error to log
 | 
|---|
| 64 |  I '$G(SCCV("NEW")),'$D(SCCV("ERR")) G ENQ
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 |  ; Increment number of dispositions found (estimating only)
 | 
|---|
| 67 |  I 'SCCVEVT D INCRTOT^SCCVEGU1(.SCTOT,5,1),EN^SCCVZZ("DIS-5",SCOE,SCDTM)
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 |  ; Log error if no encounter or no visit - exit if no encounter
 | 
|---|
| 70 |  I SCCVEVT,$S('$G(SCOE):1,1:'$P($G(SCCV("OE",0)),U,5)) D  G:'$G(SCOE) ENQ
 | 
|---|
| 71 |  . N SCE,SCERRIP,Y
 | 
|---|
| 72 |  . S SCERRIP(1)=$P($G(^DPT(DFN,0)),U)
 | 
|---|
| 73 |  . S Y=SCDTM D D^DIQ S SCERRIP(2)=Y
 | 
|---|
| 74 |  . S SCERRIP(5)=$$OTHERR^SCCVU2($G(SCCV("ERR")))
 | 
|---|
| 75 |  . S SCERRIP(4)=$S('$G(SCOE):"Outpatient encounter",1:"Visit")
 | 
|---|
| 76 |  . S SCE("DFN")=DFN,SCE("ENC")=$G(SCOE),SCE("VSIT")="",SCE("DATE")=SCDTM
 | 
|---|
| 77 |  . D GETERR^SCCVLOG1(4049005.003,.SCE,.SCERRIP,$G(SCLOG),0,.SCERRMSG)
 | 
|---|
| 78 |  . S:$G(SCOE) ^XTMP("SCCV-ERR-"_+SCLOG,"NO-VIS",SCOE)=""
 | 
|---|
| 79 |  . S SCTOT(2.06)=$G(SCTOT(2.06))+1
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 |  G:$G(SCCV("ERR")) ENQ
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 |  ; Convert additional disposition data
 | 
|---|
| 84 |  I SCCVEVT D ENC(SCOE,.SCCV)
 | 
|---|
| 85 |  ;
 | 
|---|
| 86 |  ; Convert children
 | 
|---|
| 87 |  D CHLD^SCCVEAP2(SCOE,.SCCV,$G(SCLOG))
 | 
|---|
| 88 |  ;
 | 
|---|
| 89 |  ; Invoke DATA-TO-PCE call, store any errors
 | 
|---|
| 90 |  I $S('SCCVEVT:1,1:$P($G(^SCE(SCOE,0)),U,5)) D DATA2PCE^SCCVPCE(SCOE,.SCCONS,SCCVEVT,$G(SCOEP),"","",.SCEST)
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 |  I 'SCCVEVT D  G ENQ ;Estimate exits here
 | 
|---|
| 93 |  .F Z=1:1:3 I $P(SCEST,U,Z) D INCRTOT^SCCVEGU1(.SCTOT,Z+8,$P(SCEST,U,Z)) D EN^SCCVZZ("DIS-"_(Z+8),SCOE,SCDTM,"","",$P(SCEST,U,Z))
 | 
|---|
| 94 |  ;
 | 
|---|
| 95 |  ; Update disposition as converted
 | 
|---|
| 96 |  D DONE(DFN,SCDTM,1)
 | 
|---|
| 97 |  ;
 | 
|---|
| 98 |  ; Update last entry and number of records
 | 
|---|
| 99 |  I $G(SCLOG) D UPDREC^SCCVLOG(SCLOG,SCOE,"CST")
 | 
|---|
| 100 |  I '$G(SCLOG) S SCTOT("OK")=1
 | 
|---|
| 101 |  ;
 | 
|---|
| 102 | ENQ Q
 | 
|---|
| 103 |  ;
 | 
|---|
| 104 | ENC(SCOE,SCCV) ; Convert additional disposition data for the encounter
 | 
|---|
| 105 |  ; $$GETDISP^SDVIST2 creates the encounter and seeds it with disp data
 | 
|---|
| 106 |  ; Input  -- SCOE     Outpatient encounter IEN
 | 
|---|
| 107 |  ;           SCCV     Conversion array
 | 
|---|
| 108 |  ; Output -- None
 | 
|---|
| 109 |  N SCDATA
 | 
|---|
| 110 |  I $G(SCCV("VST")),'$P($G(^SCE(SCOE,0)),U,5) S SCDATA(.05)=SCCV("VST") ; visit file entry
 | 
|---|
| 111 |  S:$G(SCCV("NEW"))=1 SCDATA(901)=1 ; created by conversion
 | 
|---|
| 112 |  I $G(SCCV("VST")) D ENCCNV^SCCVEAP1(.SCDATA)
 | 
|---|
| 113 |  I $D(SCDATA) D UPD^SCCVDBU(409.68,SCOE,.SCDATA)
 | 
|---|
| 114 |  ;
 | 
|---|
| 115 | ENCQ Q
 | 
|---|
| 116 |  ;
 | 
|---|
| 117 | DONE(DFN,SCDTM,SCECSTAT) ; Update disposition encounter conversion status
 | 
|---|
| 118 |  ; Input  -- DFN      Patient IEN
 | 
|---|
| 119 |  ;           SCDTM    Visit date/time
 | 
|---|
| 120 |  ;           SCECSTAT Encounter conversion status
 | 
|---|
| 121 |  ; Output -- None
 | 
|---|
| 122 |  N SCDATA,SCIENS
 | 
|---|
| 123 |  S SCIENS=(9999999-SCDTM)_","_DFN
 | 
|---|
| 124 |  S:'$P($G(^DPT(DFN,"DIS",+SCIENS,0)),U,19) SCDATA(19)=SCECSTAT ; encounter conversion status
 | 
|---|
| 125 |  I $D(SCDATA) D UPD^SCCVDBU(2.101,SCIENS,.SCDATA)
 | 
|---|
| 126 |  Q
 | 
|---|
| 127 |  ;
 | 
|---|