1 | SCCVPOST ;ALB/MJK - Patch SD*5.3*201 Post-Install Routine ; 11/5/97
|
---|
2 | ;;5.3;Scheduling;**211**,Aug 13, 1993
|
---|
3 | ;
|
---|
4 | EN ; --- main entry point
|
---|
5 | S U="^"
|
---|
6 | D BMES^XPDUTL("Post-Install Started...")
|
---|
7 | ;
|
---|
8 | ; -- main driver calls
|
---|
9 | D RES,LOGDATA
|
---|
10 | ;
|
---|
11 | D BMES^XPDUTL("Post-Install Finished.")
|
---|
12 | Q
|
---|
13 | ;
|
---|
14 | RES ; -- set up resource device
|
---|
15 | N NAME,SLOTS,DESC
|
---|
16 | D BMES^XPDUTL(" >>> SCCV RESOURCE device setup...")
|
---|
17 | S NAME="SCCV RESOURCE"
|
---|
18 | S SLOTS=1
|
---|
19 | S DESC="Scheduling Conversion Resource Device"
|
---|
20 | ;
|
---|
21 | ; -- check to see if device already exists
|
---|
22 | IF $D(^%ZIS(1,"B",NAME)) D G RESQ
|
---|
23 | . D MES^XPDUTL(" ...Device already exists.")
|
---|
24 | ;
|
---|
25 | ; -- create device
|
---|
26 | IF $$RES^XUDHSET(NAME,,SLOTS,DESC)>0 D G RESQ
|
---|
27 | . D MES^XPDUTL(" ...Resource device successfully created.")
|
---|
28 | ;
|
---|
29 | ; -- indicate device creation failed
|
---|
30 | D MES^XPDUTL(" ...Unable to create resource device!")
|
---|
31 | RESQ Q
|
---|
32 | ;
|
---|
33 | LOGDATA ; -- queue job to transfer 'edited by' & 'date entry made' data
|
---|
34 | N SDUZ,ZTRTN,ZTIO,ZTDESC,ZTDTH,ZTSAVE,ZTSK
|
---|
35 | ;
|
---|
36 | ; -- quit if pre-test
|
---|
37 | IF '$$OK^SCCVU(0) Q
|
---|
38 | ;
|
---|
39 | S SDUZ=$G(DUZ)
|
---|
40 | D BMES^XPDUTL(" >>> Queuing task to transfer log data from Scheduling Visits file")
|
---|
41 | ;
|
---|
42 | ; -- following line in for interactive testing
|
---|
43 | ;D LOGQUE Q
|
---|
44 | ;
|
---|
45 | ; -- has data already been xfer'd
|
---|
46 | IF $P($G(^SD(404.91,1,"CNV")),U,8) D G LOGDATAQ
|
---|
47 | . D MES^XPDUTL(" o Data already has been transferred.")
|
---|
48 | . D MES^XPDUTL(" (No task queued.)")
|
---|
49 | . D MES^XPDUTL(" >>> Done.")
|
---|
50 | ;
|
---|
51 | ; -- queue task
|
---|
52 | S ZTIO=""
|
---|
53 | S ZTRTN="LOGQUE^SCCVPOST"
|
---|
54 | S ZTDESC="Transferring log data from Scheduling Visits file"
|
---|
55 | S ZTDTH=$$NOW^XLFDT()
|
---|
56 | F X="SDUZ" S ZTSAVE(X)=""
|
---|
57 | D ^%ZTLOAD
|
---|
58 | D:$D(ZTSK) MES^XPDUTL(" -> Task: #"_ZTSK)
|
---|
59 | D MES^XPDUTL(" >>> Done.")
|
---|
60 | LOGDATAQ Q
|
---|
61 | ;
|
---|
62 | LOGQUE ; -- TaskMan entry point to queue log data transfer
|
---|
63 | ;
|
---|
64 | N SDATE,SDOE,DR,DA,DIE,SDSTOP,SDTOT,SDBEG,SDEND,SDDR,SDFIN
|
---|
65 | ;
|
---|
66 | ; -- quit if pre-test
|
---|
67 | IF '$$OK^SCCVU(0) Q
|
---|
68 | ;
|
---|
69 | S SDTOT=0
|
---|
70 | S SDBEG=$$NOW^XLFDT()
|
---|
71 | ;
|
---|
72 | ; -- get date ACRP started on target system ; use as loop start date
|
---|
73 | S SDATE=$P($G(^SD(404.91,1,"AMB")),U,2)
|
---|
74 | ;
|
---|
75 | ; -- get date of last a/e ; use as finish date
|
---|
76 | S SDFIN=$P($O(^SDV("A"),-1),".")_".24"
|
---|
77 | ;
|
---|
78 | ; -- scan ^SCE records
|
---|
79 | F S SDATE=$O(^SCE("B",SDATE)) Q:'SDATE!(SDATE>SDFIN) D S SDSTOP=$$S^%ZTLOAD Q:SDSTOP
|
---|
80 | . S SDOE=0 F S SDOE=$O(^SCE("B",SDATE,SDOE)) Q:'SDOE D
|
---|
81 | . . S SDDR=$$BUILDR(.SDOE)
|
---|
82 | . . IF SDDR]"" D
|
---|
83 | . . . S DIE="^SCE(",DA=SDOE,DR=SDDR D ^DIE
|
---|
84 | . . . S SDTOT=SDTOT+1
|
---|
85 | ;
|
---|
86 | S SDEND=$$NOW^XLFDT()
|
---|
87 | ;
|
---|
88 | ; -- send bulletin
|
---|
89 | D BULL
|
---|
90 | ;
|
---|
91 | ; -- set completion flag
|
---|
92 | S DA=1,DR="908////"_SDEND,DIE="^SD(404.91," D ^DIE
|
---|
93 | ;
|
---|
94 | Q
|
---|
95 | ;
|
---|
96 | BUILDR(SDOE) ; -- build DR string
|
---|
97 | ;
|
---|
98 | N SDDR
|
---|
99 | N SDOE0,SDOECNV,SDOEUSER,SDORG,SCEUSR,SCECRE,DFN
|
---|
100 | N SDT,SDCS,SDCS0,SDVUSR,SDVCRE,SDVOE
|
---|
101 | S SDDR=""
|
---|
102 | ;
|
---|
103 | ; -- get sce data
|
---|
104 | S SDOE0=$G(^SCE(SDOE,0))
|
---|
105 | S SDOECNV=$G(^SCE(SDOE,"CNV"))
|
---|
106 | S SDOEUSER=$G(^SCE(SDOE,"USER"))
|
---|
107 | S SDORG=+$P(SDOE0,U,8)
|
---|
108 | S SCEUSR=+SDOEUSER
|
---|
109 | S SCECRE=+$P(SDOECNV,U,2)
|
---|
110 | ;
|
---|
111 | ; -- quit if not an add/edit
|
---|
112 | IF SDORG'=2 G BUILDRQ
|
---|
113 | ;
|
---|
114 | ; -- get sdv data
|
---|
115 | S DFN=+$P(SDOE0,U,2)
|
---|
116 | S SDT=$$SDVIEN^SCCVU(DFN,+SDOE0)
|
---|
117 | S SDCS=$P(SDOE0,U,9)
|
---|
118 | S SDCS0=$G(^SDV(+SDT,"CS",+SDCS,0))
|
---|
119 | S SDVUSR=$P(SDCS0,U,2)
|
---|
120 | S SDVCRE=$P(SDCS0,U,7)
|
---|
121 | S SDVOE=+$P(SDCS0,U,8)
|
---|
122 | ;
|
---|
123 | ; -- quit if cs node not found
|
---|
124 | IF SDCS0="" G BUILDRQ
|
---|
125 | ;
|
---|
126 | ; -- quit if ien numbers don't match
|
---|
127 | IF SDOE'=SDVOE G BUILDRQ
|
---|
128 | ;
|
---|
129 | ; -- compare sce and sdv data and set DR string accordingly
|
---|
130 | IF 'SCEUSR,SDVUSR S SDDR="101////"_SDVUSR
|
---|
131 | IF 'SCECRE,SDVCRE S SDDR=SDDR_$S(SDDR]"":";",1:"")_"902////"_SDVCRE
|
---|
132 | ;
|
---|
133 | BUILDRQ Q SDDR
|
---|
134 | ;
|
---|
135 | BULL ; -- send message indicating transfer of log data complete or stopped
|
---|
136 | N SDTEXT,SDCNT,XMSUB,XMN,XMTEXT,XMDUZ,XMY
|
---|
137 | S SDCNT=0
|
---|
138 | ;
|
---|
139 | D LINE("")
|
---|
140 | D LINE(" >>> Task Started: "_$$FMTE^XLFDT(SDBEG))
|
---|
141 | D LINE(" Finished: "_$$FMTE^XLFDT(SDEND))
|
---|
142 | D LINE("")
|
---|
143 | ;
|
---|
144 | ; -- build text
|
---|
145 | IF SDSTOP D
|
---|
146 | . D LINE(" >>> Task stopped by user. <<<")
|
---|
147 | ELSE D
|
---|
148 | . ; -- build text
|
---|
149 | . D LINE(" >>> Task Completed.")
|
---|
150 | ;
|
---|
151 | D LINE("")
|
---|
152 | D LINE(" >>> "_SDTOT_" Records processed.")
|
---|
153 | ;
|
---|
154 | ; -- set xm vars and send message
|
---|
155 | S XMSUB="Transfer of Scheduling Visits Log Data - Task Information"
|
---|
156 | S XMN=0
|
---|
157 | S XMTEXT="SDTEXT("
|
---|
158 | S XMDUZ=.5
|
---|
159 | S XMY(SDUZ)=""
|
---|
160 | D ^XMD
|
---|
161 | Q
|
---|
162 | ;
|
---|
163 | LINE(TEXT) ; -- add line of text
|
---|
164 | S SDCNT=SDCNT+1
|
---|
165 | S SDTEXT(SDCNT)=TEXT
|
---|
166 | Q
|
---|
167 | ;
|
---|