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