1 | SD5384NC ;ALB/MLI - Non-count encounter cleanup ; January 13, 1996
|
---|
2 | ;;5.3;Scheduling;**84**;AUG 13, 1993
|
---|
3 | ;
|
---|
4 | ; This routine will update encounters to be non-count for locations
|
---|
5 | ; selected. It was written to correct problems caused when clinics
|
---|
6 | ; were changed to non-count after 10/1/96. It will also delete any
|
---|
7 | ; related entries from the Transmitted Outpatient Encounter file.
|
---|
8 | ;
|
---|
9 | ; To run, call the routine from the top (D ^SD5384NC). You will be
|
---|
10 | ; asked for one or more hospital location entries which are set-up
|
---|
11 | ; as non-count. You will be asked for a date range where you can
|
---|
12 | ; select beginning 10/1/96 and ending today's date. It is STRONGLY
|
---|
13 | ; recommended that you select the range where the problem actually
|
---|
14 | ; occurred to reduce the amount of processing this routine will
|
---|
15 | ; have to do. For example, if you changed the locations to non-count
|
---|
16 | ; on 11/4/96, enter 11/4/96 as your end date.
|
---|
17 | ;
|
---|
18 | EN ; ask questions, queue process
|
---|
19 | N DIROUT,DIRUT,DTOUT,DUOUT,RANGE,SDBEG,SDEND,SDLOC
|
---|
20 | D GETLOC(.SDLOC) I '$O(SDLOC(0)) G ENQ
|
---|
21 | W ! S RANGE=$$GETDTRNG^SCDXUTL1(2961001,$P($$NOW^XLFDT(),".",1)) I RANGE<0 G ENQ
|
---|
22 | S SDBEG=$P(RANGE,"^"),SDEND=$P(RANGE,"^",2)
|
---|
23 | D QUEUE ; to queue process
|
---|
24 | ;D DQ ; for testing
|
---|
25 | ENQ Q
|
---|
26 | ;
|
---|
27 | ;
|
---|
28 | GETLOC(ARRAY) ; get list of location(s)
|
---|
29 | S DIC="^SC(",DIC("S")="I $P(^(0),""^"",17)=""Y"""
|
---|
30 | S VAUTSTR="clinic",VAUTNI=2,VAUTVB="ARRAY",VAUTNALL=1
|
---|
31 | D FIRST^VAUTOMA
|
---|
32 | Q
|
---|
33 | ;
|
---|
34 | ;
|
---|
35 | QUEUE ; queue job
|
---|
36 | N I,ZTDESC,ZTIO,ZTRTN,ZTSAVE,ZTSK
|
---|
37 | S ZTIO="",ZTDESC="Reset non-count encounters",ZTRTN="DQ^SD5384NC"
|
---|
38 | F I="SDLOC(","SDBEG","SDEND" S ZTSAVE(I)=""
|
---|
39 | D ^%ZTLOAD
|
---|
40 | I $G(ZTSK) W !,"Task queued: #",ZTSK
|
---|
41 | Q
|
---|
42 | ;
|
---|
43 | ;
|
---|
44 | DQ ; dequeue point...collect results and generate message.
|
---|
45 | N SDCOUNT,SDSTART
|
---|
46 | S SDSTART=$$NOW^XLFDT()
|
---|
47 | S SDCOUNT=0
|
---|
48 | D COLLECT
|
---|
49 | D RESULTS
|
---|
50 | Q
|
---|
51 | ;
|
---|
52 | ;
|
---|
53 | COLLECT ; collect data
|
---|
54 | N OK,SDI,SDJ,SDX
|
---|
55 | F SDI=SDBEG:0 S SDI=$O(^SCE("B",SDI)) Q:'SDI!(SDI>(SDEND+.9)) D
|
---|
56 | . F SDJ=0:0 S SDJ=$O(^SCE("B",SDI,SDJ)) Q:'SDJ D
|
---|
57 | . . ;
|
---|
58 | . . S SDX=$G(^SCE(SDJ,0)) I 'SDX Q ; no 0 node
|
---|
59 | . . S SDLOC=+$P(SDX,"^",4) ; location of encounter
|
---|
60 | . . I '$D(SDLOC(SDLOC)) Q ; not for a selected location
|
---|
61 | . . I $P(SDX,"^",6) Q ; child encounter
|
---|
62 | . . I $P(SDX,"^",12)=12 Q ; not non-count
|
---|
63 | . . ;
|
---|
64 | . . D FILE("^SCE(",SDJ,".12////12") ; file as non-count
|
---|
65 | . . D EN^SDCOM(SDJ,0,,.ERROR) ; call to update check-out
|
---|
66 | . . S OK=$$DELXMIT^SCDXFU03(SDJ,1) ; delete trans outpt enc entry
|
---|
67 | . . ;
|
---|
68 | . . S $P(SDLOC(SDLOC),"^",2)=$P(SDLOC(SDLOC),"^",2)+1 ; increment counter by location
|
---|
69 | Q
|
---|
70 | ;
|
---|
71 | ;
|
---|
72 | FILE(DIE,DA,DR) ; update entry defined in DA in file DIE with DR string
|
---|
73 | N X,Y
|
---|
74 | D ^DIE
|
---|
75 | Q
|
---|
76 | ;
|
---|
77 | ;
|
---|
78 | RESULTS ; generate an e-mail bulletin when done
|
---|
79 | N DIFROM,I,LINE,X
|
---|
80 | S SDCOUNT=0
|
---|
81 | D LINE("The Non-count Encounter cleanup has run to completion."),LINE("")
|
---|
82 | D LINE(" Start Time: "_$$FMTE^XLFDT(SDSTART))
|
---|
83 | D LINE(" End Time: "_$$FMTE^XLFDT($$NOW^XLFDT())),LINE("")
|
---|
84 | F I=0:0 S I=$O(SDLOC(I)) Q:'I D
|
---|
85 | . S X=+$P(SDLOC(I),"^",2)
|
---|
86 | . I X=1 S LINE="1 entry"
|
---|
87 | . I X=0 S LINE="No entries"
|
---|
88 | . I X>1 S LINE=X_" entries"
|
---|
89 | . S LINE=LINE_" updated to be non-count for "_$P(SDLOC(I),"^",1)_" clinic (IEN #"_I_")"
|
---|
90 | . D LINE(LINE)
|
---|
91 | S XMSUB="Non-count Encounter Cleanup is Complete",XMN=0
|
---|
92 | S XMTEXT="SDTEXT("
|
---|
93 | S XMDUZ=.5,XMY(DUZ)=""
|
---|
94 | D ^XMD
|
---|
95 | K SDCOUNT,SDTEXT,XMDUZ,XMN,XMSUB,XMTEXT,XMY
|
---|
96 | Q
|
---|
97 | ;
|
---|
98 | ;
|
---|
99 | LINE(TEXT) ; add text to mail message
|
---|
100 | S SDCOUNT=SDCOUNT+1,SDTEXT(SDCOUNT)=TEXT
|
---|
101 | Q
|
---|