| 1 | SCENIA2 ;ALB/SCK - INCOMPLETE ENCOUNTER ERROR DISPLAY PROTOCOLS, CONT. ; OCT 21, 1998
 | 
|---|
| 2 |  ;;5.3;Scheduling;**66,132,158**;AUG 13, 1993
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | EVT1(SDXMT,INF) ; Returns ifn for ^SC(clinic,"S",date,1,ifn)
 | 
|---|
| 5 |  N SINDX,SDDA
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  S SINDX=0 F  S SINDX=$O(^SC(INF("CLINIC"),"S",INF("ENCOUNTER"),1,SINDX))  Q:'SINDX>0  D  Q:$D(SDDA)
 | 
|---|
| 8 |  . I +^SC(INF("CLINIC"),"S",INF("ENCOUNTER"),1,SINDX,0)=INF("DFN") S SDDA=SINDX
 | 
|---|
| 9 |  Q $G(SDDA)
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 | EI ; Entry point for the SCENI ENCOUNTER INFORMATION protocol
 | 
|---|
| 12 |  I '$D(SD53P158) N SD53P158 S SD53P158="LM" ; Called via LM.
 | 
|---|
| 13 |  I '$D(^XUSEC("SCENI ENCOUNTER EDIT",DUZ)) D  Q
 | 
|---|
| 14 |  . W !,$C(7),"You do not have this security key, contact your supervisor."
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  N SDATA,SCEN,SDXMT,SCXER,SDOE,SCINF,SCSTAT,SDEVT,SDHDL,SDDA,SCELAP,SCSTPLC,OLDSC,SDQUIT,SDLOG
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  K PARENT,VISIT
 | 
|---|
| 19 |  D HDLKILL^SDAMEVT
 | 
|---|
| 20 |  S SDXMT=$G(^TMP("SCENI XMT",$J,0)) Q:'SDXMT
 | 
|---|
| 21 |  S SCSTAT=$$OPENC^SCUTIE1(SDXMT,"SCINF")
 | 
|---|
| 22 |  I SCSTAT<0 D  G EIQ
 | 
|---|
| 23 |  . W !!,$C(7),"Entry "_$P(^SD(409.73,SDXMT,0),U),?5,$G(SCINF("ERROR"))
 | 
|---|
| 24 |  . D PAUSE^VALM1
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  I SCSTAT>0 D  G EIQ
 | 
|---|
| 27 |  . W !!,$C(7),"This is a deleted entry.  Encounter information cannot be changed."
 | 
|---|
| 28 |  . D PAUSE^VALM1
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 |  S DFN=SCINF("DFN")
 | 
|---|
| 31 |  S SDOE=$P(^SD(409.73,SDXMT,0),U,2)
 | 
|---|
| 32 |  S SDHDL=$$HANDLE^SDAMEVT($P($G(^SCE(SDOE,0)),U,8)),SDDA=$$EVT1(SDXMT,.SCINF)
 | 
|---|
| 33 |  Q:SDHDL']""
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 |  S SDATA=SDDA_"^"_DFN_"^"_SCINF("ENCOUNTER")_"^"_SCINF("CLINIC")
 | 
|---|
| 36 |  S SDQUIT=0
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 |  L +^SCE(SDOE):0 I '$T D  G EIQ
 | 
|---|
| 39 |  . W !?5,$CHAR(7),"Another user is editing this entry"
 | 
|---|
| 40 |  I SD53P158="LM" D FULL^VALM1
 | 
|---|
| 41 |  K DIRUT
 | 
|---|
| 42 |  W !
 | 
|---|
| 43 |  D BEFORE^SDAMEVT(.SDATA,DFN,SCINF("ENCOUNTER"),SCINF("CLINIC"),SDDA,SDHDL)
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 |  K OLDSC S OLDSC=+$P($G(^SCE(SDOE,0)),U,3)
 | 
|---|
| 46 |  S DIR(0)="409.68,.03",DA=SDOE
 | 
|---|
| 47 |  D ^DIR K DIR G:$D(DIRUT)!(Y="") EIQ
 | 
|---|
| 48 |  S $P(SCSTPLC,U)=+Y
 | 
|---|
| 49 |  D SET(+Y,.03,SDOE)
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 |  S DIR(0)="409.68,.11",DA=SDOE
 | 
|---|
| 52 |  D ^DIR K DIR G:$D(DIRUT)!(Y="") A1
 | 
|---|
| 53 |  S $P(SCSTPLC,U,2)=+Y
 | 
|---|
| 54 |  D SET(+Y,.11,SDOE)
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 |  ; ** Display current Appt. Type and Elig. Codes
 | 
|---|
| 57 |  N SD1 S SD1=$P($G(^SCE(SDOE,0)),U,10)
 | 
|---|
| 58 |  W !!!,$C(7),"Current Appointment Type for Encounter: "_$S($G(SD1):$P(^SD(409.1,SD1,0),U),1:"")
 | 
|---|
| 59 |  K SD1 S SD1=$P($G(^SCE(SDOE,0)),U,13)
 | 
|---|
| 60 |  W !,"Current Eligibility for Encounter: "_$S($G(SD1):$P(^DIC(8,SD1,0),U),1:""),!
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 |  S DIR(0)="YA",DIR("B")="NO",DIR("A")="Change Eligibility/Appointment type? " D ^DIR K DIR G:$D(DIRUT)!(Y=0) A1
 | 
|---|
| 63 |  ; 
 | 
|---|
| 64 |  W !,"The following are system defaults only.",!
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 |  S SCELAP=$$ELAP^SDPCE(DFN,SCINF("CLINIC"))
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 |  N SDPRIM
 | 
|---|
| 69 |  S SDPRIM=$$ONEELIG
 | 
|---|
| 70 |  ;if only a primary ask if they want to change to it and change
 | 
|---|
| 71 |  I SDPRIM,+SDPRIM'=SD1 DO
 | 
|---|
| 72 |  .N DIR
 | 
|---|
| 73 |  .S DIR(0)="YA",DIR("B")="YES"
 | 
|---|
| 74 |  .S DIR("A",1)="There is only a primary eligibility for this patient: "_$P(SDPRIM,U,2)
 | 
|---|
| 75 |  .S DIR("A")="Do you wish to change the encounter to this? "
 | 
|---|
| 76 |  .S DIR("?")="No other Eligibilities are selectable."
 | 
|---|
| 77 |  .S DIR("?",1)="YES will result in the current primary Eligibility being used for the encounter."
 | 
|---|
| 78 |  .S DIR("?",2)="NO will result in the encounter's Eligibility being left the same."
 | 
|---|
| 79 |  .D ^DIR
 | 
|---|
| 80 |  .I Y=1 S $P(SCELAP,U,1)=+SDPRIM,$P(SCELAP,U,2)=$P(SDPRIM,U,2)
 | 
|---|
| 81 |  .E  S $P(SCELAP,U,1)=SD1,$P(SCELAP,U,2)=$P($G(^DIC(8,+SD1,0)),U,1)
 | 
|---|
| 82 |  .Q
 | 
|---|
| 83 |  ;
 | 
|---|
| 84 |  D SET(+SCELAP,.13,SDOE)
 | 
|---|
| 85 |  D SET(+$P(SCELAP,U,3),.1,SDOE)
 | 
|---|
| 86 | A1 D RESYNC(SCSTPLC,$G(SCELAP),SDOE,OLDSC,DFN)
 | 
|---|
| 87 |  D LOGDATA^SDAPIAP(SDOE,.SDLOG)
 | 
|---|
| 88 |  D AFTER^SDAMEVT(.SDATA,DFN,SCINF("ENCOUNTER"),SCINF("CLINIC"),SDDA,SDHDL)
 | 
|---|
| 89 |  ;
 | 
|---|
| 90 |  D EVT^SDAMEVT(.SDATA,5,0,SDHDL)
 | 
|---|
| 91 |  I '$D(SDOK) D  I $G(RTN)<0 G EIQ
 | 
|---|
| 92 |  . S RTN=$$VALIDATE^SCMSVUT2(SDXMT)
 | 
|---|
| 93 |  . I RTN<0 D ERMSG^SCENIA1(5) Q
 | 
|---|
| 94 |  . S RTN=$$SETRFLG^SCENIA1(SDXMT)
 | 
|---|
| 95 |  . I RTN<0 D ERMSG^SCENIA1(3) Q
 | 
|---|
| 96 |  I $D(SDOK) S SDOK=1
 | 
|---|
| 97 |  L -^SCE(SDOE):0
 | 
|---|
| 98 | EIQ K OLDSC
 | 
|---|
| 99 |  Q
 | 
|---|
| 100 |  ;
 | 
|---|
| 101 | SET(SDVAL,SDFLD,DA) ; Set updated entry into file #409.68.
 | 
|---|
| 102 |  ;
 | 
|---|
| 103 |  S ^TMP("SCENI EDIN",$J,409.68,DA_",",SDFLD)=SDVAL
 | 
|---|
| 104 |  D FILE^DIE("K","^TMP(""SCENI EDIN"",$J)")
 | 
|---|
| 105 |  I $D(^TMP("DIERR",$J,1)) W !!,"???"
 | 
|---|
| 106 |  K ^TMP("SCENI EDIN",$J),^TMP("DIERR",$J)
 | 
|---|
| 107 |  Q
 | 
|---|
| 108 |  ;
 | 
|---|
| 109 | UPDENC ;  Update Outpatient Encounter Option entry point
 | 
|---|
| 110 |  N SDOE,SDXMT,DFN,SDOK
 | 
|---|
| 111 |  N SD53P158 S SD53P158="OPT" ;Entered via menu option.
 | 
|---|
| 112 |  ;
 | 
|---|
| 113 |  S SDOK=0
 | 
|---|
| 114 |  K ^TMP("SCENI XMT",$J)
 | 
|---|
| 115 |  S DIR(0)="PA^409.68:EMQ",DIR("S")="I $D(^SD(409.73,""AENC"",Y))"
 | 
|---|
| 116 |  S DIR("A")="Select Encounter to update: "
 | 
|---|
| 117 |  S DIR("?")="Enter partial name, last four, or date of encounter."
 | 
|---|
| 118 |  S DIR("??")="^S %DT=""PX"" D HELP^%DTC"
 | 
|---|
| 119 |  D ^DIR K DIR G UPDQ:$D(DIRUT)
 | 
|---|
| 120 |  ;
 | 
|---|
| 121 |  S SDOE=+Y
 | 
|---|
| 122 |  S SDXMT=$O(^SD(409.73,"AENC",SDOE,0))
 | 
|---|
| 123 |  S ^TMP("SCENI XMT",$J,0)=SDXMT
 | 
|---|
| 124 |  D EI
 | 
|---|
| 125 | UPDQ ;
 | 
|---|
| 126 |  K DFN
 | 
|---|
| 127 |  Q
 | 
|---|
| 128 |  ;
 | 
|---|
| 129 | RESYNC(STPL,SCELP,SDOE,SCOLD,SDFN) ;
 | 
|---|
| 130 |  N SDOEC,SDCDT
 | 
|---|
| 131 |  ;
 | 
|---|
| 132 |  ; ** Update any child encounters and for each child encounter, search for
 | 
|---|
| 133 |  ;    any entries in the Scheduling Visits File, #409.5.  If there is a 
 | 
|---|
| 134 |  ;    match, update then entry in #409.5
 | 
|---|
| 135 |  ;
 | 
|---|
| 136 |  ;everthing else
 | 
|---|
| 137 |  S SDOEC=""
 | 
|---|
| 138 |  F  S SDOEC=$O(^SCE("APAR",SDOE,SDOEC)) Q:'SDOEC  D
 | 
|---|
| 139 |  . I +$P($G(^SCE(SDOE,0)),U,13)>0 D SET(+$P($G(^SCE(SDOE,0)),U,13),.13,SDOEC)
 | 
|---|
| 140 |  . I +$P($G(^SCE(SDOE,0)),U,10)>0 D SET(+$P($G(^SCE(SDOE,0)),U,10),.1,SDOEC)
 | 
|---|
| 141 |  . I +$P($G(^SCE(SDOE,0)),U,11)>0 D SET(+$P($G(^SCE(SDOE,0)),U,11),.11,SDOEC)
 | 
|---|
| 142 |  . I "2"[+$P($G(^SCE(SDOEC,0)),U,8),($P($G(^SCE(SDOEC,0)),U,3)=SCOLD) D SET(+$P($G(^SCE(SDOE,0)),U,3),.03,SDOEC)
 | 
|---|
| 143 |  ;
 | 
|---|
| 144 |  ; ** Update the entry in the Clinic Appointment multiple for the encounter
 | 
|---|
| 145 |  S SDOEDT=$P($G(^SCE(SDOE,0)),U),SDCLN=$P($G(^(0)),U,4)
 | 
|---|
| 146 |  S SDN1=0  F  S SDN1=$O(^SC(SDCLN,"S",SDOEDT,1,SDN1)) Q:'SDN1  D
 | 
|---|
| 147 |  . I $P($G(^SC(SDCLN,"S",SDOEDT,1,SDN1,0)),U)=SDFN D
 | 
|---|
| 148 |  .. S DIE="^SC(SDCLN,""S"",SDOEDT,1,",DA(2)=SDCLN,DA(1)=SDOEDT,DA=SDN1
 | 
|---|
| 149 |  .. S DR="30////"_$P(SCELP,U)
 | 
|---|
| 150 |  .. L +^SC(SDCLN,"S",SDOEDT,1,SDN1)
 | 
|---|
| 151 |  .. D ^DIE K DIE,DR,DA
 | 
|---|
| 152 |  .. L -^SC(SDCLN,"S",SDOEDT,1,SDN1)
 | 
|---|
| 153 |  ;
 | 
|---|
| 154 |  ; ** Update the entry in the Patient Appointment multiple for the encounter.
 | 
|---|
| 155 |  I $D(^DPT(SDFN,"S",SDOEDT,0)),($P(^(0),U,20)=SDOE) D
 | 
|---|
| 156 |  . S DIE="^DPT(SDFN,""S"",",DA(1)=SDFN,DA=SDOEDT
 | 
|---|
| 157 |  . S DR="9.5////"_$P(SCELP,U,3)
 | 
|---|
| 158 |  . L +^DPT(SDFN,"S",SDOEDT)
 | 
|---|
| 159 |  . D ^DIE K DIE,DR,DA
 | 
|---|
| 160 |  . L -^DPT(SDFN,"S",SDOEDT)
 | 
|---|
| 161 |  ;
 | 
|---|
| 162 |  W !,"Updating Completed."
 | 
|---|
| 163 |  Q
 | 
|---|
| 164 |  ;
 | 
|---|
| 165 | ONEELIG() ;
 | 
|---|
| 166 |  ;tests for and returns the primary if that is the only eligibility
 | 
|---|
| 167 |  ;
 | 
|---|
| 168 |  N VAEL
 | 
|---|
| 169 |  D ELIG^VADPT
 | 
|---|
| 170 |  Q $S($O(VAEL(1,0)):0,1:VAEL(1))
 | 
|---|
| 171 |  ;
 | 
|---|