source: audit/trunk/kids/VWMU_AUDIT_1_0_T2.KID@ 1689

Last change on this file since 1689 was 1334, checked in by David Whitten, 13 years ago

SECOND BUILD Auditing for Meaningful Use

File size: 45.1 KB
Line 
1KIDS Distribution saved on Jan 04, 2012@01:44:46
2consolidated release Test Build 2
3**KIDS**:VWMU AUDIT 1.0T2^
4
5**INSTALL NAME**
6VWMU AUDIT 1.0T2
7"BLD",7917,0)
8VWMU AUDIT 1.0T2^^0^3120104^n
9"BLD",7917,1,0)
10^^23^23^3120104^
11"BLD",7917,1,1,0)
12 CREATES THREE NEW FILES
13"BLD",7917,1,2,0)
14
15"BLD",7917,1,3,0)
16 1) THE DATA FILE IS NAMED 'AUDIT LOG FOR RPCS'. THIS FILE IS ANALOGOUS
17"BLD",7917,1,4,0)
18TO THE EXISTING VA FILE NAMED 'AUDIT LOG FOR OPTIONS'. IT WILL BE
19"BLD",7917,1,5,0)
20POPULATED AS USERS RUN CERTAIN RPC'S. THIS IS THE FILE OUT OF WHICH
21"BLD",7917,1,6,0)
22REPORTS WILL BE NEEDED.
23"BLD",7917,1,7,0)
24
25"BLD",7917,1,8,0)
26 2) THE DRIVER FILE IS NAMED 'LOGGABLE RPC'. THIS FILE LISTS THE NAMES OF
27"BLD",7917,1,9,0)
28RPCS THAT MAY NEED TO BE AUDITED IN THE 'AUDIT LOG FOR RPCS'. SITE TURNS
29"BLD",7917,1,10,0)
30THE 'ACTIVE' FIELD ON OR OFF TO CONTROL THIS. THERE IS ALSO A 'READABLE
31"BLD",7917,1,11,0)
32NAME' FIELD THAT COULD BE USED TO TRANSLATE 'ORQQPL PROBLEM LIST' TO
33"BLD",7917,1,12,0)
34SOMETHING MORE USER-FRIENDLY LIKE 'SHOW PATIENT'S PROBLEM LIST'. THIS
35"BLD",7917,1,13,0)
36FILE ALSO HAS INFORMATION ON HOW TO INTERCEPT INPUT PARAMETERS AT THE TIME
37"BLD",7917,1,14,0)
38OF THE RPC CALL SO AS TO IDENTIFY WHICH PATIENT IS BEING DEALT WITH ON THE
39"BLD",7917,1,15,0)
40CLIENT SIDE. NOTE THAT AN ENTRY IN THIS FILE NEED NOT NECESSARILY
41"BLD",7917,1,16,0)
42CORRESPOND TO AN ACTUAL RPC IN FILE 8994 AT THE SITE, BECAUSE THE .01
43"BLD",7917,1,17,0)
44FIELD IS FREE-TEXT, NOT A POINTER.
45"BLD",7917,1,18,0)
46
47"BLD",7917,1,19,0)
48 3) THE (EMPTY) DATA FILE NAMED 'AUDIT LOG FOR MU'. THIS FILE IS A FILE
49"BLD",7917,1,20,0)
50WHERE AUDIT RECORDS ARE COLLECTED FROM AUDIT DATA ELSEWHERE ON THE SYSTEM.
51"BLD",7917,1,21,0)
52WHEN THE DATE RANGE FOR AUDITING IS SPECIFIED, THIS FILE IS RECREATED
53"BLD",7917,1,22,0)
54BASED ON INFORMATION IN OTHER AUDIT FILES, SUCH AS THE THE AUDIT FOR THE
55"BLD",7917,1,23,0)
56PATIENT FILE IN ^DIA AND THE ABOVE MENTIONED AUDIT LOG FOR RPCS.
57"BLD",7917,4,0)
58^9.64PA^8994.8^3
59"BLD",7917,4,8994.8,0)
608994.8
61"BLD",7917,4,8994.8,222)
62y^y^f^^y^^y^m^y
63"BLD",7917,4,8994.81,0)
648994.81
65"BLD",7917,4,8994.81,222)
66y^y^f^^^^n
67"BLD",7917,4,250001.1,0)
68250001.1
69"BLD",7917,4,250001.1,222)
70y^y^f^^^^n
71"BLD",7917,4,"B",8994.8,8994.8)
72
73"BLD",7917,4,"B",8994.81,8994.81)
74
75"BLD",7917,4,"B",250001.1,250001.1)
76
77"BLD",7917,6.3)
783
79"BLD",7917,"KRN",0)
80^9.67PA^779.2^20
81"BLD",7917,"KRN",.4,0)
82.4
83"BLD",7917,"KRN",.401,0)
84.401
85"BLD",7917,"KRN",.402,0)
86.402
87"BLD",7917,"KRN",.403,0)
88.403
89"BLD",7917,"KRN",.403,"NM",0)
90^9.68A^1^1
91"BLD",7917,"KRN",.403,"NM",1,0)
92XWBA FILE #8994.8^8994.8^0
93"BLD",7917,"KRN",.403,"NM","B","XWBA FILE #8994.8",1)
94
95"BLD",7917,"KRN",.5,0)
96.5
97"BLD",7917,"KRN",.84,0)
98.84
99"BLD",7917,"KRN",3.6,0)
1003.6
101"BLD",7917,"KRN",3.8,0)
1023.8
103"BLD",7917,"KRN",9.2,0)
1049.2
105"BLD",7917,"KRN",9.8,0)
1069.8
107"BLD",7917,"KRN",9.8,"NM",0)
108^9.68A^3^3
109"BLD",7917,"KRN",9.8,"NM",1,0)
110VWMUAUD^^0^B16355018
111"BLD",7917,"KRN",9.8,"NM",2,0)
112XWBPRS^^0^B39321763
113"BLD",7917,"KRN",9.8,"NM",3,0)
114XWBVW^^0^B9598967
115"BLD",7917,"KRN",9.8,"NM","B","VWMUAUD",1)
116
117"BLD",7917,"KRN",9.8,"NM","B","XWBPRS",2)
118
119"BLD",7917,"KRN",9.8,"NM","B","XWBVW",3)
120
121"BLD",7917,"KRN",19,0)
12219
123"BLD",7917,"KRN",19,"NM",0)
124^9.68A^3^3
125"BLD",7917,"KRN",19,"NM",1,0)
126XWBVWDISP^^0
127"BLD",7917,"KRN",19,"NM",2,0)
128XWBVWLOG^^0
129"BLD",7917,"KRN",19,"NM",3,0)
130XWBVWPURGE^^0
131"BLD",7917,"KRN",19,"NM","B","XWBVWDISP",1)
132
133"BLD",7917,"KRN",19,"NM","B","XWBVWLOG",2)
134
135"BLD",7917,"KRN",19,"NM","B","XWBVWPURGE",3)
136
137"BLD",7917,"KRN",19.1,0)
13819.1
139"BLD",7917,"KRN",101,0)
140101
141"BLD",7917,"KRN",409.61,0)
142409.61
143"BLD",7917,"KRN",771,0)
144771
145"BLD",7917,"KRN",779.2,0)
146779.2
147"BLD",7917,"KRN",870,0)
148870
149"BLD",7917,"KRN",8989.51,0)
1508989.51
151"BLD",7917,"KRN",8989.52,0)
1528989.52
153"BLD",7917,"KRN",8994,0)
1548994
155"BLD",7917,"KRN","B",.4,.4)
156
157"BLD",7917,"KRN","B",.401,.401)
158
159"BLD",7917,"KRN","B",.402,.402)
160
161"BLD",7917,"KRN","B",.403,.403)
162
163"BLD",7917,"KRN","B",.5,.5)
164
165"BLD",7917,"KRN","B",.84,.84)
166
167"BLD",7917,"KRN","B",3.6,3.6)
168
169"BLD",7917,"KRN","B",3.8,3.8)
170
171"BLD",7917,"KRN","B",9.2,9.2)
172
173"BLD",7917,"KRN","B",9.8,9.8)
174
175"BLD",7917,"KRN","B",19,19)
176
177"BLD",7917,"KRN","B",19.1,19.1)
178
179"BLD",7917,"KRN","B",101,101)
180
181"BLD",7917,"KRN","B",409.61,409.61)
182
183"BLD",7917,"KRN","B",771,771)
184
185"BLD",7917,"KRN","B",779.2,779.2)
186
187"BLD",7917,"KRN","B",870,870)
188
189"BLD",7917,"KRN","B",8989.51,8989.51)
190
191"BLD",7917,"KRN","B",8989.52,8989.52)
192
193"BLD",7917,"KRN","B",8994,8994)
194
195"BLD",7917,"QUES",0)
196^9.62^^
197"DATA",8994.8,1,0)
198SC MEAN TEST
199"DATA",8994.8,1,100)
2001
201"DATA",8994.8,2,0)
202TIU NOTES
203"DATA",8994.8,2,100)
2041
205"DATA",8994.8,3,0)
206TIU SUMMARIES
207"DATA",8994.8,3,100)
2081
209"DATA",8994.8,4,0)
210TIU LOAD BOILERPLATE TEXT
211"DATA",8994.8,4,100)
2122
213"DATA",8994.8,5,0)
214TIU CREATE RECORD
215"DATA",8994.8,5,100)
2161
217"DATA",8994.8,6,0)
218TIU DOCUMENTS BY CONTEXT
219"DATA",8994.8,6,100)
2203
221"DATA",8994.8,7,0)
222TIU NOTES 16 BIT
223"DATA",8994.8,7,100)
2241
225"DATA",8994.8,8,0)
226ORWLR CUMULATIVE REPORT
227"DATA",8994.8,8,100)
2281
229"DATA",8994.8,9,0)
230ORQQVS DETAIL NOTES
231"DATA",8994.8,9,100)
2321
233"DATA",8994.8,10,0)
234ORWRA IMAGING EXAMS
235"DATA",8994.8,10,100)
2361
237"DATA",8994.8,11,0)
238ORWRA REPORT TEXT
239"DATA",8994.8,11,100)
2401
241"DATA",8994.8,12,0)
242ORQQPL PROBLEM LIST^^SHOW PATIENT'S PROBLEM LIST
243"DATA",8994.8,12,100)
2441
245"DATA",8994.8,13,0)
246ORQQPL INIT PT
247"DATA",8994.8,13,100)
2481
249"DATA",8994.8,14,0)
250ORWRP REPORT TEXT
251"DATA",8994.8,14,100)
2521
253"DATA",8994.8,15,0)
254ORWRP PRINT REPORT
255"DATA",8994.8,15,100)
2562
257"DATA",8994.8,16,0)
258ORWLR CUMULATIVE SECTION
259"DATA",8994.8,16,100)
2601
261"DATA",8994.8,17,0)
262ORQQPL ADD SAVE
263"DATA",8994.8,17,100)
2641
265"DATA",8994.8,18,0)
266ORWRA PRINT REPORT
267"DATA",8994.8,18,100)
2682
269"DATA",8994.8,19,0)
270ORWCS LIST OF CONSULT REPORTS
271"DATA",8994.8,19,100)
2721
273"DATA",8994.8,20,0)
274ORWCS REPORT TEXT
275"DATA",8994.8,20,100)
2761
277"DATA",8994.8,21,0)
278ORWCS PRINT REPORT
279"DATA",8994.8,21,100)
2802
281"DATA",8994.8,22,0)
282ORWRP16 REPORT TEXT
283"DATA",8994.8,22,100)
2841
285"DATA",8994.8,23,0)
286GMRC LIST CONSULT REQUESTS
287"DATA",8994.8,23,100)
2881
289"DATA",8994.8,24,0)
290PSB MEDICATION HISTORY
291"DATA",8994.8,24,100)
2921
293"DATA",8994.8,25,0)
294PSB GETPRNS
295"DATA",8994.8,25,100)
2961
297"DATA",8994.8,26,0)
298PSB REPORT
299"DATA",8994.8,26,100)
3002
301"DATA",8994.8,27,0)
302TIU TEMPLATE GETTEXT
303"DATA",8994.8,27,100)
3041
305"DATA",8994.8,28,0)
306DG SENSITIVE RECORD ACCESS
307"DATA",8994.8,28,100)
3081
309"DATA",8994.8,29,0)
310DG SENSITIVE RECORD BULLETIN
311"DATA",8994.8,29,100)
3121
313"DATA",8994.8,30,0)
314DG CHK BS5 XREF Y/N
315"DATA",8994.8,30,100)
3161
317"DATA",8994.8,31,0)
318DG CHK BS5 XREF ARRAY
319"DATA",8994.8,31,100)
3201
321"DATA",8994.8,32,0)
322DG CHK PAT MEANS TEST REQUIRED
323"DATA",8994.8,32,100)
3241
325"DATA",8994.8,33,0)
326DG CHK PAT/DIV MEANS TEST
327"DATA",8994.8,33,100)
3281
329"DATA",8994.8,34,0)
330ORWMC PATIENT PROCEDURES
331"DATA",8994.8,34,100)
3321
333"DATA",8994.8,35,0)
334ORWPT DISCHARGE
335"DATA",8994.8,35,100)
3361
337"DATA",8994.8,36,0)
338ORWPCE ACTPROB
339"DATA",8994.8,36,100)
3401
341"DATA",8994.8,37,0)
342ORWORB KILL UNSIG ORDERS ALERT
343"DATA",8994.8,37,100)
3441
345"DATA",8994.8,38,0)
346ORWRP PRINT LAB REPORTS
347"DATA",8994.8,38,100)
3482
349"DATA",8994.8,39,0)
350ORWPT CWAD
351"DATA",8994.8,39,100)
3521
353"DATA",8994.8,40,0)
354ORQQPL CHECK DUP
355"DATA",8994.8,40,100)
3561
357"DATA",8994.8,41,0)
358ORQQCN DEFAULT REQUEST REASON
359"DATA",8994.8,41,100)
3602
361"DATA",8994.8,42,0)
362ORWORB KILL EXPIR MED ALERT
363"DATA",8994.8,42,100)
3641
365"DATA",8994.8,43,0)
366ORWRP PRINT REMOTE REPORT
367"DATA",8994.8,43,100)
3682
369"DATA",8994.8,44,0)
370ORWPCE HASVISIT
371"DATA",8994.8,44,100)
3722
373"DATA",8994.8,45,0)
374ORWORB KILL EXPIR OI ALERT
375"DATA",8994.8,45,100)
3761
377"DATA",8994.8,46,0)
378DVBAB REPORT CPDETAILS
379"DATA",8994.8,46,100)
3801
381"DATA",8994.8,47,0)
382DVBAB REPORT 7131INQ
383"DATA",8994.8,47,100)
3841
385"DATA",8994.8,48,0)
386MAGGDGRPD
387"DATA",8994.8,48,100)
3881
389"DATA",8994.8,49,0)
390MAGGLAB START
391"DATA",8994.8,49,100)
3924
393"DATA",8994.8,50,0)
394MAGGSUR GET
395"DATA",8994.8,50,100)
3961
397"DATA",8994.8,51,0)
398MAGG QUE PATIENT
399"DATA",8994.8,51,100)
4002
401"DATA",8994.8,52,0)
402MAGG PAT IMAGES
403"DATA",8994.8,52,100)
4041
405"DATA",8994.8,53,0)
406MAGG PAT EACH IMAGE
407"DATA",8994.8,53,100)
4081
409"DATA",8994.8,54,0)
410MAGG PAT INFO
411"DATA",8994.8,54,100)
4121
413"DATA",8994.8,55,0)
414MAGG PAT BS5 CHECK
415"DATA",8994.8,55,100)
4161
417"DATA",8994.8,56,0)
418MAGG PAT PHOTOS
419"DATA",8994.8,56,100)
4201
421"DATA",8994.8,57,0)
422ORWRP PRINT V REPORT
423"DATA",8994.8,57,100)
4242
425"DATA",8994.8,58,0)
426ORWMC PATIENT PROCEDURES1
427"DATA",8994.8,58,100)
4281
429"DATA",8994.8,59,0)
430ORWRA IMAGING EXAMS1
431"DATA",8994.8,59,100)
4321
433"DATA",8994.8,60,0)
434ORWRA REPORT TEXT1
435"DATA",8994.8,60,100)
4361
437"DATA",8994.8,61,0)
438DENTV EXCEL EXTRACT
439"DATA",8994.8,61,100)
4404
441"DATA",8994.8,62,0)
442MAGJ PT INFO
443"DATA",8994.8,62,100)
4441
445"DATA",8994.8,63,0)
446PSB GETORDERTAB
447"DATA",8994.8,63,100)
4481
449"DATA",8994.8,64,0)
450PSB IV ORDER HISTORY
451"DATA",8994.8,64,100)
4521
453"DATA",8994.8,65,0)
454DSIC DPT GET DEMO
455"DATA",8994.8,65,100)
4561
457"DATA",8994.8,66,0)
458DSIC GET VISITS ONLY
459"DATA",8994.8,66,100)
4601
461"DATA",8994.8,67,0)
462DSIC SR LIST
463"DATA",8994.8,67,100)
4641
465"DATA",8994.8,68,0)
466DSIC PX IMMUN LIST
467"DATA",8994.8,68,100)
4681
469"DATA",8994.8,69,0)
470MSCGMAG PAT IMAGES
471"DATA",8994.8,69,100)
4721
473"DATA",8994.8,70,0)
474DSIC CPT GET CODE
475"DATA",8994.8,70,100)
4764
477"DATA",8994.8,71,0)
478DSIC CPT GET DETAIL DESC
479"DATA",8994.8,71,100)
4803
481"DATA",8994.8,72,0)
482DSIC CPT GET MODIFIER LIST
483"DATA",8994.8,72,100)
4844
485"DATA",8994.8,73,0)
486DSIC DPT INP INFO
487"DATA",8994.8,73,100)
4881
489"DATA",8994.8,74,0)
490DSIC DPT INP INFO BRIEF
491"DATA",8994.8,74,100)
4921
493"DATA",8994.8,75,0)
494MSC RM PATIENT GET DEMO
495"DATA",8994.8,75,100)
4961
497"DATA",8994.8,76,0)
498MSC GET PATIENT HISTORY
499"DATA",8994.8,76,100)
5001
501"DATA",8994.8,77,0)
502ORWDXA DC^1
503"DATA",8994.8,77,101)
5041
505"DATA",8994.8,78,0)
506ORWDX SAVE^1^^M
507"DATA",8994.8,78,100)
5081
509"DATA",8994.8,79,0)
510ORWDAL32 SAVE ALLERGY^1
511"DATA",8994.8,79,100)
5122
513"DATA",8994.8,80,0)
514TIU GET RECORD TEXT^1^^A
515"DATA",8994.8,81,0)
516ORQQVI NOTEVIT^1
517"DATA",8994.8,81,100)
5181
519"FIA",8994.8)
520LOGGABLE RPC
521"FIA",8994.8,0)
522^XWBVW(
523"FIA",8994.8,0,0)
5248994.8
525"FIA",8994.8,0,1)
526y^y^f^^y^^y^m^y
527"FIA",8994.8,0,10)
528
529"FIA",8994.8,0,11)
530
531"FIA",8994.8,0,"RLRO")
532
533"FIA",8994.8,8994.8)
5340
535"FIA",8994.81)
536AUDIT LOG FOR RPCS
537"FIA",8994.81,0)
538^XUSEC(8994,
539"FIA",8994.81,0,0)
5408994.81P
541"FIA",8994.81,0,1)
542y^y^f^^^^n
543"FIA",8994.81,0,10)
544
545"FIA",8994.81,0,11)
546
547"FIA",8994.81,0,"RLRO")
548
549"FIA",8994.81,8994.81)
5500
551"FIA",250001.1)
552AUDIT LOG FOR MU
553"FIA",250001.1,0)
554^XUSEC(250001.1,
555"FIA",250001.1,0,0)
556250001.1
557"FIA",250001.1,0,1)
558y^y^f^^^^n
559"FIA",250001.1,0,10)
560
561"FIA",250001.1,0,11)
562
563"FIA",250001.1,0,"RLRO")
564
565"FIA",250001.1,250001.1)
5660
567"KRN",.403,112,-1)
5680^1
569"KRN",.403,112,0)
570XWBA^@^@^^3110215.0839^^^8994.8^0^0^1
571"KRN",.403,112,21)
5721
573"KRN",.403,112,40,0)
574^.4031I^1^1
575"KRN",.403,112,40,1,0)
5761^XWBA HEADER^1,1
577"KRN",.403,112,40,1,1)
578Page 1
579"KRN",.403,112,40,1,40,0)
580^.4032IP^432^1
581"KRN",.403,112,40,1,40,432,0)
582XWBA^1^2,1^e
583"KRN",.403,112,40,1,40,432,2)
58415
585"KRN",.403,112,40,1,40,432,"COMP MUL")
586S GFT="" F S GFT=$O(^XWBVW("B",GFT)) Q:GFT="" F D=0:0 S D=$O(^XWBVW("B",GFT,D)) Q:'D N Y S (Y,D0)=D X DICMX Q:'$D(D)
587"KRN",.403,112,40,1,40,432,"COMP MUL PTR")
5888994.8
589"KRN",.404,432,0)
590XWBA^8994.8
591"KRN",.404,432,40,0)
592^.4044I^4^4
593"KRN",.404,432,40,1,0)
5941^^3^^NAME
595"KRN",.404,432,40,1,1)
596.01
597"KRN",.404,432,40,1,2)
5982,2^57
599"KRN",.404,432,40,2,0)
6002^^3
601"KRN",.404,432,40,2,1)
602.02
603"KRN",.404,432,40,2,2)
6042,60^3
605"KRN",.404,432,40,3,0)
6063^^3
607"KRN",.404,432,40,3,1)
608100
609"KRN",.404,432,40,3,2)
6102,67^5
611"KRN",.404,432,40,4,0)
6124^^3
613"KRN",.404,432,40,4,1)
614101
615"KRN",.404,432,40,4,2)
6162,75^5
617"KRN",.404,433,0)
618XWBA HEADER^8994.8
619"KRN",.404,433,40,0)
620^.4044I^^0
621"KRN",19,11039,-1)
6220^2
623"KRN",19,11039,0)
624XWBVWLOG^Audited RPCs Log^^P^^^^^^^^RPC BROKER^n^^
625"KRN",19,11039,1,0)
626^^2^2^3110214^
627"KRN",19,11039,1,1,0)
628This report sorts on date/time then RPC, prints all data
629"KRN",19,11039,1,2,0)
630elements of each entry requested.
631"KRN",19,11039,60)
632XUSEC(8994,
633"KRN",19,11039,62)
6340
635"KRN",19,11039,63)
636[XWBALOGP]
637"KRN",19,11039,64)
638[XWBVWLOGS]
639"KRN",19,11039,65)
640
641"KRN",19,11039,66)
642
643"KRN",19,11039,"U")
644AUDITED RPCS LOG
645"KRN",19,11040,-1)
6460^3
647"KRN",19,11040,0)
648XWBVWPURGE^Audited RPCs Purge^^R^^^^^^^^RPC BROKER
649"KRN",19,11040,1,0)
650^^2^2^3110214^
651"KRN",19,11040,1,1,0)
652This prompts for a beginning and ending date AND time to purge
653"KRN",19,11040,1,2,0)
654 the RPC Audit entries.
655"KRN",19,11040,25)
656XWBPURGE^XWBVW
657"KRN",19,11040,"U")
658AUDITED RPCS PURGE
659"KRN",19,11041,-1)
6600^1
661"KRN",19,11041,0)
662XWBVWDISP^RPC Audit Display^^P^^^^^^^y^RPC BROKER
663"KRN",19,11041,1,0)
664^^2^2^3110214^
665"KRN",19,11041,1,1,0)
666This display sorts on RPC, then date/time. Also prompts for
667"KRN",19,11041,1,2,0)
668 print device to generate a hard copy of listing.
669"KRN",19,11041,60)
670XUSEC(8994,
671"KRN",19,11041,62)
6720
673"KRN",19,11041,63)
674[XWBADISPLAY]
675"KRN",19,11041,64)
676[XWBVWDISPS]
677"KRN",19,11041,65)
678
679"KRN",19,11041,66)
680
681"KRN",19,11041,"U")
682RPC AUDIT DISPLAY
683"MBREQ")
6840
685"ORD",8,.403)
686.403;8;;;EDEOUT^DIFROMSO(.403,DA,"",XPDA);FPRE^DIFROMSI(.403,"",XPDA);EPRE^DIFROMSI(.403,DA,$E("N",$G(XPDNEW)),XPDA,"",OLDA);;EPOST^DIFROMSI(.403,DA,"",XPDA);DEL^DIFROMSK(.403,"",%)
687"ORD",8,.403,0)
688FORM
689"ORD",18,19)
69019;18;;;OPT^XPDTA;OPTF1^XPDIA;OPTE1^XPDIA;OPTF2^XPDIA;;OPTDEL^XPDIA
691"ORD",18,19,0)
692OPTION
693"QUES","XPF1",0)
694Y
695"QUES","XPF1","??")
696^D REP^XPDH
697"QUES","XPF1","A")
698Shall I write over your |FLAG| File
699"QUES","XPF1","B")
700YES
701"QUES","XPF1","M")
702D XPF1^XPDIQ
703"QUES","XPF2",0)
704Y
705"QUES","XPF2","??")
706^D DTA^XPDH
707"QUES","XPF2","A")
708Want my data |FLAG| yours
709"QUES","XPF2","B")
710YES
711"QUES","XPF2","M")
712D XPF2^XPDIQ
713"QUES","XPI1",0)
714YO
715"QUES","XPI1","??")
716^D INHIBIT^XPDH
717"QUES","XPI1","A")
718Want KIDS to INHIBIT LOGONs during the install
719"QUES","XPI1","B")
720NO
721"QUES","XPI1","M")
722D XPI1^XPDIQ
723"QUES","XPM1",0)
724PO^VA(200,:EM
725"QUES","XPM1","??")
726^D MG^XPDH
727"QUES","XPM1","A")
728Enter the Coordinator for Mail Group '|FLAG|'
729"QUES","XPM1","B")
730
731"QUES","XPM1","M")
732D XPM1^XPDIQ
733"QUES","XPO1",0)
734Y
735"QUES","XPO1","??")
736^D MENU^XPDH
737"QUES","XPO1","A")
738Want KIDS to Rebuild Menu Trees Upon Completion of Install
739"QUES","XPO1","B")
740NO
741"QUES","XPO1","M")
742D XPO1^XPDIQ
743"QUES","XPZ1",0)
744Y
745"QUES","XPZ1","??")
746^D OPT^XPDH
747"QUES","XPZ1","A")
748Want to DISABLE Scheduled Options, Menu Options, and Protocols
749"QUES","XPZ1","B")
750NO
751"QUES","XPZ1","M")
752D XPZ1^XPDIQ
753"QUES","XPZ2",0)
754Y
755"QUES","XPZ2","??")
756^D RTN^XPDH
757"QUES","XPZ2","A")
758Want to MOVE routines to other CPUs
759"QUES","XPZ2","B")
760NO
761"QUES","XPZ2","M")
762D XPZ2^XPDIQ
763"RTN")
7643
765"RTN","VWMUAUD")
7660^1^B16355018
767"RTN","VWMUAUD",1,0)
768VWMUAUD ;DJW;Generate Meaningful Use Audit
769"RTN","VWMUAUD",2,0)
770 ;0.1;;;;;Build 3
771"RTN","VWMUAUD",3,0)
772 ;
773"RTN","VWMUAUD",4,0)
774GEN S U="^" K DEBUG
775"RTN","VWMUAUD",5,0)
776 N X,Y,VWBEG,VWEND
777"RTN","VWMUAUD",6,0)
778 W !,"Generate Meaningful Use Audit"
779"RTN","VWMUAUD",7,0)
780 K DIR S DIR(0)="D^::ER",DIR("A")="From Date/Time"
781"RTN","VWMUAUD",8,0)
782 I $D(DEBUG) S Y=3110601.0030
783"RTN","VWMUAUD",9,0)
784 E D ^DIR Q:$D(DIROUT) Q:+Y=-1
785"RTN","VWMUAUD",10,0)
786 S VWBEG=Y
787"RTN","VWMUAUD",11,0)
788 K DIR S DIR(0)="D^::ER",DIR("A")="Until Date/Time"
789"RTN","VWMUAUD",12,0)
790 I $D(DEBUG) S Y=3110605.1530
791"RTN","VWMUAUD",13,0)
792 E D ^DIR Q:$D(DIROUT) Q:+Y=-1
793"RTN","VWMUAUD",14,0)
794 S VWEND=Y
795"RTN","VWMUAUD",15,0)
796 W !,"From: " S Y=VWBEG X ^DD("DD") W Y," Thru "
797"RTN","VWMUAUD",16,0)
798 S Y=VWEND X ^DD("DD") W Y,!
799"RTN","VWMUAUD",17,0)
800 ;
801"RTN","VWMUAUD",18,0)
802 N FDA
803"RTN","VWMUAUD",19,0)
804 S FDA=$P($G(^XUSEC(250001.1,0),"AUDIT LOG FOR MU^250001.1"),U,1,2)
805"RTN","VWMUAUD",20,0)
806 K ^XUSEC(250001.1) S ^XUSEC(250001.1,0)=FDA K FDA
807"RTN","VWMUAUD",21,0)
808 ; look at AUDIT of PATIENT
809"RTN","VWMUAUD",22,0)
810 K VWCNT S VWCNT=0,D=VWBEG-0.00000001
811"RTN","VWMUAUD",23,0)
812 F D Q:$O(^DIA(2,"C",D))="" Q:$O(^DIA(2,"C",D))>VWEND
813"RTN","VWMUAUD",24,0)
814 . S D=$O(^DIA(2,"C",D))
815"RTN","VWMUAUD",25,0)
816 . S I=0 F S I=$O(^DIA(2,"C",D,I)) Q:I="" D
817"RTN","VWMUAUD",26,0)
818 .. S VWCNT=VWCNT+1
819"RTN","VWMUAUD",27,0)
820 .. I $G(DEBUG) D
821"RTN","VWMUAUD",28,0)
822 ... W "^DIA(2,""C"","""_D_""","""_I_""")",!
823"RTN","VWMUAUD",29,0)
824 ... N IEN S IEN=I N DA,DIC,DR,DIQ,DIA S DIA=2
825"RTN","VWMUAUD",30,0)
826 ... N %,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
827"RTN","VWMUAUD",31,0)
828 ... S DA=IEN,DIC="^DIA(2,",DR="0",DIQ(0)="CR"
829"RTN","VWMUAUD",32,0)
830 ... D EN1^DIQ
831"RTN","VWMUAUD",33,0)
832 .. S RESULT=$$CLASSPT(2,I,.VWCNT)
833"RTN","VWMUAUD",34,0)
834 .. D:RESULT'="" SETMUAUD(VWCNT,RESULT)
835"RTN","VWMUAUD",35,0)
836 D RPT("AUDIT OF PATIENT")
837"RTN","VWMUAUD",36,0)
838 ;
839"RTN","VWMUAUD",37,0)
840 W ! S VWCNTPAT=VWCNT
841"RTN","VWMUAUD",38,0)
842 F I="MODIFIED","CREATED","DELETED","ACCESSED" D
843"RTN","VWMUAUD",39,0)
844 . S VWCNTPAT(I)=$G(VWCNT(I)),VWCNT(I)=0
845"RTN","VWMUAUD",40,0)
846 ; look at AUDIT LOG FOR RPCS
847"RTN","VWMUAUD",41,0)
848 S D=VWBEG-0.000000001
849"RTN","VWMUAUD",42,0)
850 F D Q:$O(^XUSEC(8994,D))="" Q:$O(^XUSEC(8994,D))>VWEND S VWCNT=VWCNT+1
851"RTN","VWMUAUD",43,0)
852 . S D=$O(^XUSEC(8994,D))
853"RTN","VWMUAUD",44,0)
854 . I $G(DEBUG)
855"RTN","VWMUAUD",45,0)
856 .. W "^XUSEC(8994,"""_D_""",0)",!
857"RTN","VWMUAUD",46,0)
858 .. N IEN S IEN=D N D,DA,DIC,DR,DIQ
859"RTN","VWMUAUD",47,0)
860 .. S DA=IEN,DIC="^XUSEC(8994,",DR="0:~",DIQ(0)="CR"
861"RTN","VWMUAUD",48,0)
862 .. D EN1^DIQ
863"RTN","VWMUAUD",49,0)
864 . S RESULT=$$CLASSRPC(8994.81,D,.VWCNT)
865"RTN","VWMUAUD",50,0)
866 . D:RESULT'="" SETMUAUD(VWCNT,RESULT)
867"RTN","VWMUAUD",51,0)
868 ;
869"RTN","VWMUAUD",52,0)
870 S VWCNT=VWCNT-VWCNTPAT
871"RTN","VWMUAUD",53,0)
872 D RPT("AUDIT LOG FOR RPCS")
873"RTN","VWMUAUD",54,0)
874 W ! S VWCNT=VWCNT+VWCNTPAT
875"RTN","VWMUAUD",55,0)
876 F I="MODIFIED","CREATED","DELETED","ACCESSED" D
877"RTN","VWMUAUD",56,0)
878 . S VWCNT(I)=VWCNT(I)+VWCNTPAT(I)
879"RTN","VWMUAUD",57,0)
880 D RPT("")
881"RTN","VWMUAUD",58,0)
882 S $P(^XUSEC(250001.1,0),U,3,4)=$O(^XUSEC(250001.1," "),-1)_U_VWCNT
883"RTN","VWMUAUD",59,0)
884 Q
885"RTN","VWMUAUD",60,0)
886SETMUAUD(IEN,VAL) ;
887"RTN","VWMUAUD",61,0)
888 I $G(DEBUG) W RES,!
889"RTN","VWMUAUD",62,0)
890 S ^XUSEC(250001.1,IEN,0)=VAL
891"RTN","VWMUAUD",63,0)
892 S ^XUSEC(250001.1,"B",$P(VAL,U),IEN)=""
893"RTN","VWMUAUD",64,0)
894 S ^XUSEC(250001.1,"C",$P(VAL,U,4),IEN)=""
895"RTN","VWMUAUD",65,0)
896 I $G(DEBUG) D
897"RTN","VWMUAUD",66,0)
898 . N DA,DIC,DR,DIQ
899"RTN","VWMUAUD",67,0)
900 . S DA=IEN,DIC="^XUSEC(250001.1,",DR="0",DIQ(0)="CR"
901"RTN","VWMUAUD",68,0)
902 . D EN1^DIQ
903"RTN","VWMUAUD",69,0)
904 ;S DA=1,DR=0,DIC="^XUSEC(250001.1,",DIQ(0)="CR" D EN1^DIQ
905"RTN","VWMUAUD",70,0)
906 Q
907"RTN","VWMUAUD",71,0)
908RPT(MSG) ;
909"RTN","VWMUAUD",72,0)
910 W !,VWCNT," Audit records found" W:$G(MSG)'="" " for ",MSG
911"RTN","VWMUAUD",73,0)
912 S C="" F S C=$O(VWCNT(C)) Q:C="" D
913"RTN","VWMUAUD",74,0)
914 . W !,"Count of ",C," records is ",VWCNT(C)
915"RTN","VWMUAUD",75,0)
916 Q
917"RTN","VWMUAUD",76,0)
918 ;
919"RTN","VWMUAUD",77,0)
920CLASSRPC(FILE,AUDIEN,COUNT) ;
921"RTN","VWMUAUD",78,0)
922 I $G(AUDIEN)="" Q ""
923"RTN","VWMUAUD",79,0)
924 I $D(^XUSEC(8994,AUDIEN,0)) D Q $$RP("A")
925"RTN","VWMUAUD",80,0)
926 . S COUNT("ACCESSED")=$G(COUNT("ACCESSED"))+1
927"RTN","VWMUAUD",81,0)
928 S COUNT("OTHER")=$G(COUNT("OTHER"))+1
929"RTN","VWMUAUD",82,0)
930 Q $$RP("O")
931"RTN","VWMUAUD",83,0)
932 ;
933"RTN","VWMUAUD",84,0)
934RP(X) ;
935"RTN","VWMUAUD",85,0)
936 I '$G(AUDIEN) Q ""
937"RTN","VWMUAUD",86,0)
938 N DFN S DFN=$G(^XUSEC(8994,AUDIEN,100))
939"RTN","VWMUAUD",87,0)
940 N WHO S WHO=$P(^XUSEC(8994,AUDIEN,0),U,2)
941"RTN","VWMUAUD",88,0)
942 ;N WHEN S WHEN=$P(AUDIEN,".")_"."_$P($P(AUDIEN,".",2),1,6)
943"RTN","VWMUAUD",89,0)
944 N WHEN S WHEN=+$J(AUDIEN,1,6)
945"RTN","VWMUAUD",90,0)
946 N RPCCALL S RPCCALL=$P($G(^XUSEC(8994,AUDIEN,0)),U)
947"RTN","VWMUAUD",91,0)
948 N AUX S AUX=$P(^XWB(8994,RPCCALL,0),U)
949"RTN","VWMUAUD",92,0)
950 Q "RPC;"_AUDIEN_U_DFN_U_WHO_U_WHEN_U_X_U_AUX
951"RTN","VWMUAUD",93,0)
952 ;
953"RTN","VWMUAUD",94,0)
954PT(X) ;
955"RTN","VWMUAUD",95,0)
956 I '$G(AUDIEN) Q ""
957"RTN","VWMUAUD",96,0)
958 N DFN S DFN=$P(^DIA(2,AUDIEN,0),U)
959"RTN","VWMUAUD",97,0)
960 N WHO S WHO=$P(^DIA(2,AUDIEN,0),U,4)
961"RTN","VWMUAUD",98,0)
962 N WHEN S WHEN=$P(^DIA(2,AUDIEN,0),U,2)
963"RTN","VWMUAUD",99,0)
964 N OPTION S OPTION=$P($G(^DIA(2,AUDIEN,4.1)),U)
965"RTN","VWMUAUD",100,0)
966 S OPTION=$P($G(^DIC(19,+OPTION,0),OPTION),U,1)
967"RTN","VWMUAUD",101,0)
968 N AUX S AUX=OPTION
969"RTN","VWMUAUD",102,0)
970 Q "FILE"_FILE_";"_AUDIEN_U_DFN_U_WHO_U_WHEN_U_X_U_AUX
971"RTN","VWMUAUD",103,0)
972 ;
973"RTN","VWMUAUD",104,0)
974CLASSPT(FILE,AUDIEN,COUNT) ;
975"RTN","VWMUAUD",105,0)
976 I FILE'=2 W !,"not PATIENT" Q
977"RTN","VWMUAUD",106,0)
978 I AUDIEN="" W !,"Null IEN" Q
979"RTN","VWMUAUD",107,0)
980 ;
981"RTN","VWMUAUD",108,0)
982 I $D(^DIA(FILE,AUDIEN,2)),$D(^DIA(FILE,AUDIEN,3)) D Q $$PT("M")
983"RTN","VWMUAUD",109,0)
984 . S COUNT("MODIFIED")=$G(COUNT("MODIFIED"))+1 Q
985"RTN","VWMUAUD",110,0)
986 I $D(^DIA(FILE,AUDIEN,2)) D Q $$PT("D")
987"RTN","VWMUAUD",111,0)
988 . S COUNT("DELETED")=$G(COUNT("DELETED"))+1 Q
989"RTN","VWMUAUD",112,0)
990 I $D(^DIA(FILE,AUDIEN,3)) D Q $$PT("C")
991"RTN","VWMUAUD",113,0)
992 . S COUNT("CREATED")=$G(COUNT("CREATED"))+1 Q
993"RTN","VWMUAUD",114,0)
994 S COUNT("ACCESSED")=$G(COUNT("ACCESSED"))+1
995"RTN","VWMUAUD",115,0)
996 Q $$PT("A")
997"RTN","XWBPRS")
9980^2^B39321763
999"RTN","XWBPRS",1,0)
1000XWBPRS ;ISF/STAFF - VISTA BROKER MSG PARSER ;18FEB2011
1001"RTN","XWBPRS",2,0)
1002 ;;1.1;RPC BROKER;**35,43,46,VW**;Mar 28, 1997;Build 3
1003"RTN","XWBPRS",3,0)
1004 ;XWB holds info from the message used by the RPC
1005"RTN","XWBPRS",4,0)
1006CALLP(XWBP,XWBDEBUG) ;make API call using Protocol string
1007"RTN","XWBPRS",5,0)
1008 N ERR,S,XWBARY K XWB
1009"RTN","XWBPRS",6,0)
1010 S ERR=0
1011"RTN","XWBPRS",7,0)
1012 S ERR=$$PRSP("[XWB]") ;Read the rest of the protocol header
1013"RTN","XWBPRS",8,0)
1014 I '+ERR S ERR=$$PRSM ;Read and parse message
1015"RTN","XWBPRS",9,0)
1016 I $G(XWB(2,"RPC"))="XUS SET SHARED" S XWBSHARE=1 Q
1017"RTN","XWBPRS",10,0)
1018 I '+ERR S ERR=$$RPC ;Check the RPC
1019"RTN","XWBPRS",11,0)
1020 I +ERR S XWBSEC=$P(ERR,U,2) ;P10 -- dpc
1021"RTN","XWBPRS",12,0)
1022 I '+ERR D CHKPRMIT^XWBSEC($G(XWB(2,"RPC"))) ;checks if RPC allowed to run
1023"RTN","XWBPRS",13,0)
1024 S:$L($G(XWBSEC)) ERR="-1^"_XWBSEC
1025"RTN","XWBPRS",14,0)
1026 I '+ERR D
1027"RTN","XWBPRS",15,0)
1028 . D CAPI(.XWBP,XWB("PARAM"))
1029"RTN","XWBPRS",16,0)
1030 E I ($G(XWBTCMD)'="#BYE#") D LOG^XWBTCPM("Bad Msg"_ERR),CLRBUF
1031"RTN","XWBPRS",17,0)
1032 I 'XWBDEBUG K XWB
1033"RTN","XWBPRS",18,0)
1034 I $D(XWBARY) K @XWBARY,XWBARY
1035"RTN","XWBPRS",19,0)
1036 Q
1037"RTN","XWBPRS",20,0)
1038 ;
1039"RTN","XWBPRS",21,0)
1040PRSP(P) ;ef, Parse Protocol
1041"RTN","XWBPRS",22,0)
1042 ;M Extrinsic Function
1043"RTN","XWBPRS",23,0)
1044 ;Outputs
1045"RTN","XWBPRS",24,0)
1046 ;ERR 0 for success, "-1^Text" if error
1047"RTN","XWBPRS",25,0)
1048 ;
1049"RTN","XWBPRS",26,0)
1050 N ERR,C,M,R,X
1051"RTN","XWBPRS",27,0)
1052 S R=0,C=";",ERR=0
1053"RTN","XWBPRS",28,0)
1054 S P=$$BREAD^XWBRW(4)
1055"RTN","XWBPRS",29,0)
1056 IF $L(P)'=4 S ERR="-1^Short Header info"
1057"RTN","XWBPRS",30,0)
1058 IF +ERR=0 D
1059"RTN","XWBPRS",31,0)
1060 . S XWB(R,"VER")=+$E(P,1)
1061"RTN","XWBPRS",32,0)
1062 . S XWB(R,"TYPE")=+$E(P,2)
1063"RTN","XWBPRS",33,0)
1064 . S (XWBENVL,XWB(R,"LENV"))=+$E(P,3)
1065"RTN","XWBPRS",34,0)
1066 . S (XWBPRT,XWB(R,"RT"))=+$E(P,4)
1067"RTN","XWBPRS",35,0)
1068 I XWBENVL<1 S (XWBENVL,XWB(R,"LENV"))=3
1069"RTN","XWBPRS",36,0)
1070 Q ERR
1071"RTN","XWBPRS",37,0)
1072 ;
1073"RTN","XWBPRS",38,0)
1074PRSM() ;ef, Parse message
1075"RTN","XWBPRS",39,0)
1076 ;M Extrinsic Function
1077"RTN","XWBPRS",40,0)
1078 ;See document on msg format
1079"RTN","XWBPRS",41,0)
1080 ;Outputs
1081"RTN","XWBPRS",42,0)
1082 ;ERR 0 for success, "-1^Text" if error
1083"RTN","XWBPRS",43,0)
1084 N C,EX1,ERR,R,X,CNK
1085"RTN","XWBPRS",44,0)
1086 S R=1,C=";",CNK=0,EX1=0 ;Max buffer
1087"RTN","XWBPRS",45,0)
1088 S ERR="-1^Invalid Chunk"
1089"RTN","XWBPRS",46,0)
1090 F S CNK=$$BREAD^XWBRW(1) Q:("12345"'[CNK) D Q:EX1
1091"RTN","XWBPRS",47,0)
1092 . S EX1=(CNK=5),@("ERR=$$PRS"_CNK)
1093"RTN","XWBPRS",48,0)
1094 Q ERR
1095"RTN","XWBPRS",49,0)
1096 ;
1097"RTN","XWBPRS",50,0)
1098PRS1() ;Parse the HEADER chunk
1099"RTN","XWBPRS",51,0)
1100 N %,L,R
1101"RTN","XWBPRS",52,0)
1102 S R=1
1103"RTN","XWBPRS",53,0)
1104 S XWB(R,"VER")=$$SREAD
1105"RTN","XWBPRS",54,0)
1106 S XWB(R,"RETURN")=$$SREAD
1107"RTN","XWBPRS",55,0)
1108 Q 0
1109"RTN","XWBPRS",56,0)
1110 ;
1111"RTN","XWBPRS",57,0)
1112PRS2() ;Parse the RPC chunk
1113"RTN","XWBPRS",58,0)
1114 N L,R
1115"RTN","XWBPRS",59,0)
1116 S R=2
1117"RTN","XWBPRS",60,0)
1118 S (XWBAPVER,XWB(R,"VER"))=$$SREAD ;RPC version
1119"RTN","XWBPRS",61,0)
1120 S XWB(R,"RPC")=$$SREAD
1121"RTN","XWBPRS",62,0)
1122 I $G(XWBDEBUG)>1 D LOG^XWBTCPM("RPC: "_XWB(R,"RPC"))
1123"RTN","XWBPRS",63,0)
1124 Q 0
1125"RTN","XWBPRS",64,0)
1126PRS3() ;Parse the Security chunk
1127"RTN","XWBPRS",65,0)
1128 N L,R
1129"RTN","XWBPRS",66,0)
1130 S R=3
1131"RTN","XWBPRS",67,0)
1132 Q 0
1133"RTN","XWBPRS",68,0)
1134PRS4() ;Parse the Command chunk
1135"RTN","XWBPRS",69,0)
1136 N R
1137"RTN","XWBPRS",70,0)
1138 S R=4,XWBTCMD=$$SREAD,XWB(R,"CMD")=XWBTCMD
1139"RTN","XWBPRS",71,0)
1140 I $G(XWBDEBUG)>1 D LOG^XWBTCPM("CMD: "_XWBTCMD)
1141"RTN","XWBPRS",72,0)
1142 Q ("TCPConnect^#BYE#"[XWBTCMD)
1143"RTN","XWBPRS",73,0)
1144 ;
1145"RTN","XWBPRS",74,0)
1146PRS5() ;Parse Data Parameter chunk
1147"RTN","XWBPRS",75,0)
1148 ;M Extrinsic Function
1149"RTN","XWBPRS",76,0)
1150 ;Outputs
1151"RTN","XWBPRS",77,0)
1152 ;ERR 0 for success, "-1^Text" if error
1153"RTN","XWBPRS",78,0)
1154 ;
1155"RTN","XWBPRS",79,0)
1156 N CONT,DONE,ERR,F,FL,IX,K,L,P1,P2,P3,P4,P5,MAXP,R,TY,VA
1157"RTN","XWBPRS",80,0)
1158 S R=5,ERR=0,F=3,IX=0,DONE=0,CONT="f",XWB("PARAM")=""
1159"RTN","XWBPRS",81,0)
1160 F S:CONT="f" TY=$$BREAD^XWBRW(1) D Q:DONE S CONT=$$BREAD^XWBRW(1) S:CONT'="t" IX=IX+1
1161"RTN","XWBPRS",82,0)
1162 . K VA,P1
1163"RTN","XWBPRS",83,0)
1164 . IF TY=$C(4) S DONE=1 Q ;EOT
1165"RTN","XWBPRS",84,0)
1166 . IF TY=0 D Q ;literal
1167"RTN","XWBPRS",85,0)
1168 . . D LREAD("VA")
1169"RTN","XWBPRS",86,0)
1170 . . S XWB(R,"P",IX)=VA(1) D PARAM($NA(XWB(R,"P",IX)))
1171"RTN","XWBPRS",87,0)
1172 . . Q
1173"RTN","XWBPRS",88,0)
1174 . IF TY=1 D Q ;reference
1175"RTN","XWBPRS",89,0)
1176 . . D LREAD("VA")
1177"RTN","XWBPRS",90,0)
1178 . . S XWB(R,"P",IX)=$$GETV(VA(1)) D PARAM($NA(XWB(R,"P",IX)))
1179"RTN","XWBPRS",91,0)
1180 . . Q
1181"RTN","XWBPRS",92,0)
1182 . IF TY=2 D Q ;list
1183"RTN","XWBPRS",93,0)
1184 . . I CONT'="t" D
1185"RTN","XWBPRS",94,0)
1186 . . . S XWBARY=$$OARY,XWB(R,"P",IX)="."_XWBARY
1187"RTN","XWBPRS",95,0)
1188 . . . D PARAM(XWB(R,"P",IX))
1189"RTN","XWBPRS",96,0)
1190 . . D LREAD("P1") Q:P1(1)="" D LREAD("VA")
1191"RTN","XWBPRS",97,0)
1192 . . D LINST(XWBARY,P1(1),VA(1))
1193"RTN","XWBPRS",98,0)
1194 . . Q
1195"RTN","XWBPRS",99,0)
1196 . IF TY=3 D Q ;global
1197"RTN","XWBPRS",100,0)
1198 . . I CONT'="t" D
1199"RTN","XWBPRS",101,0)
1200 . . . S XWBARY=$NA(^TMP("XWBA",$J,IX)),XWB(R,"P",IX)=XWBARY
1201"RTN","XWBPRS",102,0)
1202 . . . K @XWBARY S @XWBARY=""
1203"RTN","XWBPRS",103,0)
1204 . . . D PARAM(XWBARY)
1205"RTN","XWBPRS",104,0)
1206 . . D LREAD("P1") Q:P1(1)="" D LREAD("VA")
1207"RTN","XWBPRS",105,0)
1208 . . D GINST(XWBARY,P1(1),VA(1))
1209"RTN","XWBPRS",106,0)
1210 . . Q
1211"RTN","XWBPRS",107,0)
1212 . IF TY=4 D Q ;empty - ,,
1213"RTN","XWBPRS",108,0)
1214 . . S XWB(R,"XWB",IX)=""
1215"RTN","XWBPRS",109,0)
1216 . . Q
1217"RTN","XWBPRS",110,0)
1218 . IF TY=5 D Q
1219"RTN","XWBPRS",111,0)
1220 . . ;stream still to be done
1221"RTN","XWBPRS",112,0)
1222 . Q ;End of loop
1223"RTN","XWBPRS",113,0)
1224 Q ERR
1225"RTN","XWBPRS",114,0)
1226PARAM(NA) ;Add a new parameter to the list
1227"RTN","XWBPRS",115,0)
1228 N A
1229"RTN","XWBPRS",116,0)
1230 S A=$G(XWB("PARAM")) S:'$L(NA) NA="""""" ;Empty
1231"RTN","XWBPRS",117,0)
1232 S A=A_$S($L(A):",",1:"")_$S(TY=3:"$NA(",1:"")_NA_$S(TY=3:")",1:"")
1233"RTN","XWBPRS",118,0)
1234 S XWB("PARAM")=A
1235"RTN","XWBPRS",119,0)
1236 Q
1237"RTN","XWBPRS",120,0)
1238 ;
1239"RTN","XWBPRS",121,0)
1240RPC() ;Check the rpc information.
1241"RTN","XWBPRS",122,0)
1242 ;M Extrinsic Function
1243"RTN","XWBPRS",123,0)
1244 ;Outputs
1245"RTN","XWBPRS",124,0)
1246 ;ERR 0 for success, "-1^Text" if error
1247"RTN","XWBPRS",125,0)
1248 ;
1249"RTN","XWBPRS",126,0)
1250 N C,DR,ERR,M,R,RPC,T,X
1251"RTN","XWBPRS",127,0)
1252 S R=2,C=";",ERR=0,M=512 ;Max buffer
1253"RTN","XWBPRS",128,0)
1254 S RPC=$G(XWB(R,"RPC")) I '$L(RPC) Q "-1^No RPC sent"
1255"RTN","XWBPRS",129,0)
1256 S T=$O(^XWB(8994,"B",RPC,0))
1257"RTN","XWBPRS",130,0)
1258 I '+T Q "-1^Remote Procedure '"_RPC_"' doesn't exist on the server."
1259"RTN","XWBPRS",131,0)
1260 S T(0)=$G(^XWB(8994,T,0))
1261"RTN","XWBPRS",132,0)
1262 I $P(T(0),U,6)=1!($P(T(0),U,6)=2) Q "-1^Remote Procedure '"_RPC_"' cannot be run at this time." ;P10. Check INACTIVE field. - dpc.
1263"RTN","XWBPRS",133,0)
1264 S XWB(R,"RTAG")=$P(T(0),"^",2)
1265"RTN","XWBPRS",134,0)
1266 S XWB(R,"RNAM")=$P(T(0),"^",3)
1267"RTN","XWBPRS",135,0)
1268 S XWBPTYPE=$P(T(0),"^",4)
1269"RTN","XWBPRS",136,0)
1270 S XWBWRAP=+$P(T(0),"^",8)
1271"RTN","XWBPRS",137,0)
1272 Q ERR
1273"RTN","XWBPRS",138,0)
1274 ;
1275"RTN","XWBPRS",139,0)
1276SREAD() ;Read a S_PACK
1277"RTN","XWBPRS",140,0)
1278 N L,V7
1279"RTN","XWBPRS",141,0)
1280 S L=$$BREAD^XWBRW(1),L=$A(L)
1281"RTN","XWBPRS",142,0)
1282 S V7=$$BREAD^XWBRW(L)
1283"RTN","XWBPRS",143,0)
1284 Q V7
1285"RTN","XWBPRS",144,0)
1286 ;
1287"RTN","XWBPRS",145,0)
1288LREAD(ROOT) ;Read a L_PACK
1289"RTN","XWBPRS",146,0)
1290 N L,V7,I ;p45 Remove limit on length of string.
1291"RTN","XWBPRS",147,0)
1292 S I=1,@ROOT@(I)=""
1293"RTN","XWBPRS",148,0)
1294 S L=$$BREAD^XWBRW(XWBENVL),L=+L
1295"RTN","XWBPRS",149,0)
1296 I L>0 S V7=$$BREAD^XWBRW(L),@ROOT@(I)=V7,I=I+1
1297"RTN","XWBPRS",150,0)
1298 Q
1299"RTN","XWBPRS",151,0)
1300 ;
1301"RTN","XWBPRS",152,0)
1302 ;X can be something like '"TEXT",1,0'.
1303"RTN","XWBPRS",153,0)
1304LINST(A,X,XWBY) ;instantiate local array
1305"RTN","XWBPRS",154,0)
1306 IF XWBY=$C(1) S XWBY=""
1307"RTN","XWBPRS",155,0)
1308 S X=A_"("_X_")"
1309"RTN","XWBPRS",156,0)
1310 S @X=XWBY
1311"RTN","XWBPRS",157,0)
1312 Q
1313"RTN","XWBPRS",158,0)
1314 ;
1315"RTN","XWBPRS",159,0)
1316 ;S can be something like '"TEXT",1,0'.
1317"RTN","XWBPRS",160,0)
1318GINST(R,S,V) ;instantiate global
1319"RTN","XWBPRS",161,0)
1320 N N
1321"RTN","XWBPRS",162,0)
1322 I V=$C(1) S V=""
1323"RTN","XWBPRS",163,0)
1324 S N=$P(R,")")_","_S_")"
1325"RTN","XWBPRS",164,0)
1326 S @N=V
1327"RTN","XWBPRS",165,0)
1328 Q
1329"RTN","XWBPRS",166,0)
1330 ;
1331"RTN","XWBPRS",167,0)
1332GETV(V) ;get value of V - reference parameter
1333"RTN","XWBPRS",168,0)
1334 N X
1335"RTN","XWBPRS",169,0)
1336 S X=V
1337"RTN","XWBPRS",170,0)
1338 IF $E(X,1,2)="$$" Q ""
1339"RTN","XWBPRS",171,0)
1340 IF $C(34,36)[$E(V) X "S V="_$$VCHK(V)
1341"RTN","XWBPRS",172,0)
1342 E S V=@V
1343"RTN","XWBPRS",173,0)
1344 Q V
1345"RTN","XWBPRS",174,0)
1346 ;
1347"RTN","XWBPRS",175,0)
1348VCHK(S) ;Parse string for first argument
1349"RTN","XWBPRS",176,0)
1350 N C,I,P
1351"RTN","XWBPRS",177,0)
1352 F I=1:1 S C=$E(S,I) D VCHKP:C="(",VCHKQ:C=$C(34) Q:" ,"[C
1353"RTN","XWBPRS",178,0)
1354 Q $E(S,1,I-1)
1355"RTN","XWBPRS",179,0)
1356VCHKP S P=1 ;Find closing paren
1357"RTN","XWBPRS",180,0)
1358 F I=I+1:1 S C=$E(S,I) Q:P=0!(C="") I "()"""[C D VCHKQ:C=$C(34) S P=P+$S("("[C:1,")"[C:-1,1:0)
1359"RTN","XWBPRS",181,0)
1360 Q
1361"RTN","XWBPRS",182,0)
1362VCHKQ ;Find closing quote
1363"RTN","XWBPRS",183,0)
1364 F I=I+1:1 S C=$E(S,I) Q:C=""!(C=$C(34))
1365"RTN","XWBPRS",184,0)
1366 Q
1367"RTN","XWBPRS",185,0)
1368CLRBUF ;Empties Input buffer
1369"RTN","XWBPRS",186,0)
1370 N %
1371"RTN","XWBPRS",187,0)
1372 F R *%:2 Q:'$T!(%=4) ;!(%=-1)
1373"RTN","XWBPRS",188,0)
1374 Q
1375"RTN","XWBPRS",189,0)
1376ZZZ(X) ;Convert
1377"RTN","XWBPRS",190,0)
1378 N I
1379"RTN","XWBPRS",191,0)
1380 F S I=$F(X,"$C(") Q:'I S J=$F(X,")",I),X=$E(X,1,I-4)_$C($E(X,I,J-2))_$E(X,J,999)
1381"RTN","XWBPRS",192,0)
1382 Q X
1383"RTN","XWBPRS",193,0)
1384 ;
1385"RTN","XWBPRS",194,0)
1386CAPI(XWBY,PAR) ;make API call
1387"RTN","XWBPRS",195,0)
1388 N XWBCALL,T,DX,DY
1389"RTN","XWBPRS",196,0)
1390 S XWBCALL=XWB(2,"RTAG")_"^"_XWB(2,"RNAM")_"(.XWBY"_$S($L(PAR):","_PAR,1:"")_")",XWBCALL2=""
1391"RTN","XWBPRS",197,0)
1392 K PAR
1393"RTN","XWBPRS",198,0)
1394 O XWBNULL U XWBNULL ;p43 Make sure its open
1395"RTN","XWBPRS",199,0)
1396 ;
1397"RTN","XWBPRS",200,0)
1398 I $G(XWBDEBUG)>2 D LOG^XWBDLOG("Call: "_$E(XWBCALL,1,247))
1399"RTN","XWBPRS",201,0)
1400 ;start RUM for RPC
1401"RTN","XWBPRS",202,0)
1402 I $G(XWB(2,"CAPI"))]"" D LOGRSRC^%ZOSV(XWB(2,"CAPI"),2,1)
1403"RTN","XWBPRS",203,0)
1404VWAUDIT I $G(XWB(2,"RPC"))]"" D TRAP^XWBVW(.XWB)
1405"RTN","XWBPRS",204,0)
1406 D @XWBCALL S XWBCALL2=XWBCALL ;Save call for debug
1407"RTN","XWBPRS",205,0)
1408 ;
1409"RTN","XWBPRS",206,0)
1410 ;restart RUM for handler
1411"RTN","XWBPRS",207,0)
1412 D LOGRSRC^%ZOSV("$BROKER HANDLER$",2,1)
1413"RTN","XWBPRS",208,0)
1414 ;
1415"RTN","XWBPRS",209,0)
1416 U XWBTDEV
1417"RTN","XWBPRS",210,0)
1418 Q
1419"RTN","XWBPRS",211,0)
1420 ;
1421"RTN","XWBPRS",212,0)
1422OARY() ;create storage array
1423"RTN","XWBPRS",213,0)
1424 N A,DONE,I
1425"RTN","XWBPRS",214,0)
1426 S I=1+$G(XWB("ARRAY")),XWB("ARRAY")=I
1427"RTN","XWBPRS",215,0)
1428 S A="XWBS"_I
1429"RTN","XWBPRS",216,0)
1430 K @A ;temp fix for single array
1431"RTN","XWBPRS",217,0)
1432 S @A="" ;set naked
1433"RTN","XWBPRS",218,0)
1434 Q A
1435"RTN","XWBPRS",219,0)
1436 ;
1437"RTN","XWBPRS",220,0)
1438CREF(R,P) ;Convert array contained in P to reference A
1439"RTN","XWBPRS",221,0)
1440 N I,X,DONE,F1,S
1441"RTN","XWBPRS",222,0)
1442 S DONE=0
1443"RTN","XWBPRS",223,0)
1444 S S=""
1445"RTN","XWBPRS",224,0)
1446 F I=1:1 D Q:DONE
1447"RTN","XWBPRS",225,0)
1448 . IF $P(P,",",I)="" S DONE=1 Q
1449"RTN","XWBPRS",226,0)
1450 . S X(I)=$P(P,",",I)
1451"RTN","XWBPRS",227,0)
1452 . IF X(I)?1"."1A.E D
1453"RTN","XWBPRS",228,0)
1454 . . S F1=$F(X(I),".")
1455"RTN","XWBPRS",229,0)
1456 . . S X(I)="."_R
1457"RTN","XWBPRS",230,0)
1458 . S S=S_X(I)_","
1459"RTN","XWBPRS",231,0)
1460 Q $E(S,1,$L(S)-1)
1461"RTN","XWBPRS",232,0)
1462 ;
1463"RTN","XWBVW")
14640^3^B9598967
1465"RTN","XWBVW",1,0)
1466XWBVW ;GFT - PURGE RPC AUDIT;18FEB2011
1467"RTN","XWBVW",2,0)
1468 ;;8.0;KERNEL;;Jul 10, 1995;Build 3
1469"RTN","XWBVW",3,0)
1470 ;
1471"RTN","XWBVW",4,0)
1472 ;
1473"RTN","XWBVW",5,0)
1474 ;
1475"RTN","XWBVW",6,0)
1476TRAP(XWB) ;BRING IN THE XWB ARRAY AT TIME OF CALL
1477"RTN","XWBVW",7,0)
1478 N DFN,RPCNAME
1479"RTN","XWBVW",8,0)
1480 S RPCNAME=$G(XWB(2,"RPC"))
1481"RTN","XWBVW",9,0)
1482 S DFN=$$FINDFN(RPCNAME) ;'RPCNAME' IS NAME OF RPC TO BE FOUND IN FILE 8994.8
1483"RTN","XWBVW",10,0)
1484 I DFN D LOGRPC(RPCNAME,DFN)
1485"RTN","XWBVW",11,0)
1486 Q
1487"RTN","XWBVW",12,0)
1488 ;
1489"RTN","XWBVW",13,0)
1490 ;
1491"RTN","XWBVW",14,0)
1492FINDFN(RPCNAME) ;XWB ARRAY IS ALSO DEFINED WHEN ENTERING HERE
1493"RTN","XWBVW",15,0)
1494 N XWBVW,X
1495"RTN","XWBVW",16,0)
1496 I $G(RPCNAME)="" Q ""
1497"RTN","XWBVW",17,0)
1498 S XWBVW=$O(^XWBVW("B",RPCNAME,0)) I 'XWBVW Q ""
1499"RTN","XWBVW",18,0)
1500 I '$P($G(^XWBVW(XWBVW,0)),"^",2) Q "" ;WON'T WORK IF LOGGABLE RPC IS NOT ACTIVE
1501"RTN","XWBVW",19,0)
1502 S X=+$G(^XWBVW(XWBVW,100)) I X Q +$G(XWB(5,"P",X-1)) ;NODE 100 SAYS WHICH PARAMETER IS DFN; PARAMETERS ARE NUMBERED STARTING FROM 0
1503"RTN","XWBVW",20,0)
1504 S X=+$G(^XWBVW(XWBVW,101)) I X S X=+$G(XWB(5,"P",X-1)) I X S X=$P($G(^OR(100,X,0)),U,2) I X["DPT(" Q +X ;NODE 101 SAYS WHICH PARAMETER IS ORDER
1505"RTN","XWBVW",21,0)
1506 Q ""
1507"RTN","XWBVW",22,0)
1508 ;
1509"RTN","XWBVW",23,0)
1510 ;
1511"RTN","XWBVW",24,0)
1512LOGRPC(RPC,XWBDFN) ;RPC audit --- something like XQ12 routine
1513"RTN","XWBVW",25,0)
1514 N %,Y,XWBVW
1515"RTN","XWBVW",26,0)
1516 I '$G(XWBDFN) Q
1517"RTN","XWBVW",27,0)
1518 I RPC'?1.NP Q:RPC="" S RPC=$O(^XWB(8994,"B",RPC,0)) Q:'RPC
1519"RTN","XWBVW",28,0)
1520 S %=$P($H,",",2),%=DT_(%\60#60/100+(%\3600)+(%#60/10000)/100)
1521"RTN","XWBVW",29,0)
1522 L +^XUSEC(8994,0):0
1523"RTN","XWBVW",30,0)
1524 F XWBVW=%:.00000001 Q:'$D(^XUSEC(8994,XWBVW))
1525"RTN","XWBVW",31,0)
1526 S ^(XWBVW,0)=RPC_"^"_$G(DUZ)_"^"_$I_"^"_$J
1527"RTN","XWBVW",32,0)
1528 L -^XUSEC(8994,0)
1529"RTN","XWBVW",33,0)
1530 S $P(^(0),U,3,4)=XWBVW_"^"_($P(^XUSEC(8994,0),U,4)+1)
1531"RTN","XWBVW",34,0)
1532 D GETENV^%ZOSV S $P(^XUSEC(8994,XWBVW,0),U,6)=$P(Y,U,2)
1533"RTN","XWBVW",35,0)
1534 S ^XUSEC(8994,XWBVW,100)=XWBDFN
1535"RTN","XWBVW",36,0)
1536 ;djw-indices
1537"RTN","XWBVW",37,0)
1538 S ^XUSEC(8994,"APAT",XWBDFN,XWBVW)=""
1539"RTN","XWBVW",38,0)
1540 S ^XUSEC(8994,"AD",+$G(DUZ),XWBVW)=""
1541"RTN","XWBVW",39,0)
1542 Q
1543"RTN","XWBVW",40,0)
1544 ;
1545"RTN","XWBVW",41,0)
1546 ;
1547"RTN","XWBVW",42,0)
1548 ;
1549"RTN","XWBVW",43,0)
1550XWBPURGE ;RPC audit purge --- 'XWBAPURGE' Option --- stolen from XUAPURGE routine
1551"RTN","XWBVW",44,0)
1552 N %DT,BDATE,EDATE,ZTIO,ZTRTN,ZTUCI,ZTSAVE,ZTSK
1553"RTN","XWBVW",45,0)
1554 D BEG G:'$D(EDATE) END
1555"RTN","XWBVW",46,0)
1556 ;S ZTIO="",ZTRTN="PURGE^XWBVW",ZTDESC="Purge Menu Option Audit Entries" F G="BDATE","EDATE" S ZTSAVE(G)=""
1557"RTN","XWBVW",47,0)
1558 ;D ^%ZTLOAD K ZTIO,ZTRTN,ZTDESC,ZTUCI,ZTSAVE
1559"RTN","XWBVW",48,0)
1560 ;Q
1561"RTN","XWBVW",49,0)
1562PURGE F REC=BDATE-.000001:0 S REC=$O(^XUSEC(8994,REC)) Q:REC'>0!(REC>EDATE) S DIK="^XUSEC(8994,",DA=REC D ^DIK K DA
1563"RTN","XWBVW",50,0)
1564END Q
1565"RTN","XWBVW",51,0)
1566 ;
1567"RTN","XWBVW",52,0)
1568BEG W !!,"You will be asked for a date range to purge, Begin to End"
1569"RTN","XWBVW",53,0)
1570 S %DT("A")="PURGE BEGIN DATE: ",%DT="AETX" D ^%DT S BDATE=Y G:Y<1 END S %DT(0)=BDATE,%DT("A")="PURGE END DATE: " D ^%DT S EDATE=Y G:Y<1 END
1571"RTN","XWBVW",54,0)
1572 Q
1573"RTN","XWBVW",55,0)
1574 ;
1575"RTN","XWBVW",56,0)
1576 ;
1577"RTN","XWBVW",57,0)
1578 ;
1579"RTN","XWBVW",58,0)
1580 ;
1581"RTN","XWBVW",59,0)
1582 ;
1583"RTN","XWBVW",60,0)
1584POPTEMPL(TEMPLATE) ;FROM AN 8994 TEMPLATE INTO 8994.8
1585"RTN","XWBVW",61,0)
1586 N DIC,DFN,RPC,DFNX,ORD,ORDX
1587"RTN","XWBVW",62,0)
1588 Q:$P($G(^DIBT(TEMPLATE,0)),U,4)-8994
1589"RTN","XWBVW",63,0)
1590 F RPC=0:0 S RPC=$O(^DIBT(TEMPLATE,1,RPC)) Q:'RPC D POPRPC(RPC)
1591"RTN","XWBVW",64,0)
1592 Q
1593"RTN","XWBVW",65,0)
1594 ;
1595"RTN","XWBVW",66,0)
1596POPRPC(RPC) ;
1597"RTN","XWBVW",67,0)
1598 S X=$P(^XWB(8994,RPC,0),U,2,3) I X[U,$T(@X)]"" D
1599"RTN","XWBVW",68,0)
1600 .S (DFN,DFNX,ORD,ORDX)=0
1601"RTN","XWBVW",69,0)
1602 .F SEQ=0:0 S SEQ=$O(^XWB(8994,RPC,2,SEQ)) Q:'SEQ D Q:DFN
1603"RTN","XWBVW",70,0)
1604 ..I $P(^(SEQ,0),U)["DFN" S DFNX=SEQ,DFN=$P(^(0),U,5) Q
1605"RTN","XWBVW",71,0)
1606 ..;I $P(^(0),U)["ORIFN" S ORDX=SEQ,ORD=$P(^(0),U,5)
1607"RTN","XWBVW",72,0)
1608 .S:DFN DFNX=DFN Q:'DFNX
1609"RTN","XWBVW",73,0)
1610 .S DIC=8994.8,DIC(0)="L",DIC("DR")="100///"_DFNX,X=$$GET1^DIQ(8994,RPC,.01) D ^DIC
1611"RTN","XWBVW",74,0)
1612 Q
1613"SEC","^DIC",8994.8,8994.8,0,"AUDIT")
1614@
1615"SEC","^DIC",8994.8,8994.8,0,"DD")
1616@
1617"SEC","^DIC",8994.8,8994.8,0,"DEL")
1618@
1619"SEC","^DIC",8994.8,8994.8,0,"LAYGO")
1620@
1621"SEC","^DIC",8994.8,8994.8,0,"RD")
1622@
1623"SEC","^DIC",8994.8,8994.8,0,"WR")
1624@
1625"SEC","^DIC",8994.81,8994.81,0,"AUDIT")
1626@
1627"SEC","^DIC",8994.81,8994.81,0,"DD")
1628@
1629"SEC","^DIC",8994.81,8994.81,0,"DEL")
1630@
1631"SEC","^DIC",8994.81,8994.81,0,"LAYGO")
1632@
1633"SEC","^DIC",8994.81,8994.81,0,"RD")
1634@
1635"SEC","^DIC",8994.81,8994.81,0,"WR")
1636@
1637"SEC","^DIC",250001.1,250001.1,0,"AUDIT")
1638@
1639"SEC","^DIC",250001.1,250001.1,0,"DD")
1640@
1641"SEC","^DIC",250001.1,250001.1,0,"DEL")
1642@
1643"SEC","^DIC",250001.1,250001.1,0,"LAYGO")
1644@
1645"SEC","^DIC",250001.1,250001.1,0,"RD")
1646@
1647"SEC","^DIC",250001.1,250001.1,0,"WR")
1648@
1649"VER")
16508.0^22.0
1651"^DD",8994.8,8994.8,0)
1652FIELD^^.04^6
1653"^DD",8994.8,8994.8,0,"DT")
16543110621
1655"^DD",8994.8,8994.8,0,"IX","B",8994.8,.01)
1656
1657"^DD",8994.8,8994.8,0,"NM","LOGGABLE RPC")
1658
1659"^DD",8994.8,8994.8,.01,0)
1660NAME^RFXJ60^^0;1^K:'$D(^XWB(8994,"B")) X
1661"^DD",8994.8,8994.8,.01,1,0)
1662^.1
1663"^DD",8994.8,8994.8,.01,1,1,0)
16648994.8^B
1665"^DD",8994.8,8994.8,.01,1,1,1)
1666S ^XWBVW("B",$E(X,1,30),DA)=""
1667"^DD",8994.8,8994.8,.01,1,1,2)
1668K ^XWBVW("B",$E(X,1,30),DA)
1669"^DD",8994.8,8994.8,.01,3)
1670MUST BE NAME OF AN RPC
1671"^DD",8994.8,8994.8,.01,"DT")
16723110214
1673"^DD",8994.8,8994.8,.02,0)
1674ACTIVE^S^1:YES;^0;2^Q
1675"^DD",8994.8,8994.8,.02,3)
1676'YES' IF RPC IS TO BE AUDITED IN 'AUDIT LOG FOR RPCS' FILE
1677"^DD",8994.8,8994.8,.02,"DT")
16783110214
1679"^DD",8994.8,8994.8,.03,0)
1680READABLE NAME^FJ99^^0;3^K:$L(X)>99!($L(X)<4) X
1681"^DD",8994.8,8994.8,.03,3)
1682Answer must be 4-99 characters in length.
1683"^DD",8994.8,8994.8,.03,"DT")
16843110326
1685"^DD",8994.8,8994.8,.04,0)
1686ACTION OCCURRED^S^A:ACCESSED;M:MODIFIED;D:DELETED;C:CREATED;^0;4^Q
1687"^DD",8994.8,8994.8,.04,"DT")
16883110621
1689"^DD",8994.8,8994.8,100,0)
1690PATIENT PARAMETER^NJ1,0^^100;1^K:+X'=X!(X>9)!(X<1)!(X?.E1"."1.N) X
1691"^DD",8994.8,8994.8,100,3)
1692TELLS WHICH PARAMETER OF THE RPC CALL IS THE 'DFN'
1693"^DD",8994.8,8994.8,100,"DT")
16943110214
1695"^DD",8994.8,8994.8,101,0)
1696ORDER PARAMETER^NJ1,0^^101;1^K:+X'=X!(X>9)!(X<1)!(X?.E1"."1.N) X
1697"^DD",8994.8,8994.8,101,3)
1698TELLS WHICH PARAMETER OF THE RPC CALL IS THE ORDER NUMBER
1699"^DD",8994.8,8994.8,101,"DT")
17003110214
1701"^DD",8994.81,8994.81,0)
1702FIELD^^100^9
1703"^DD",8994.81,8994.81,0,"DT")
17043110215
1705"^DD",8994.81,8994.81,0,"NM","AUDIT LOG FOR RPCS")
1706
1707"^DD",8994.81,8994.81,.001,0)
1708DATE/TIME^D^^ ^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X
1709"^DD",8994.81,8994.81,.001,21,0)
1710^^5^5^2890125^
1711"^DD",8994.81,8994.81,.001,21,1,0)
1712Entries in this file are uniquely identified by the precise time when
1713"^DD",8994.81,8994.81,.001,21,2,0)
1714the option was accessed. An entry will be made as specified in the
1715"^DD",8994.81,8994.81,.001,21,3,0)
1716Kernel Site Parameters File. Once the date set in the 'Initiate
1717"^DD",8994.81,8994.81,.001,21,4,0)
1718Audit' Field has been reached, this file will be used to maintain a
1719"^DD",8994.81,8994.81,.001,21,5,0)
1720log according to the 'Option Audit' flag.
1721"^DD",8994.81,8994.81,.001,"AUDIT")
1722n
1723"^DD",8994.81,8994.81,.001,"DT")
17243110215
1725"^DD",8994.81,8994.81,.01,0)
1726RPC^RP8994'^XWB(8994,^0;1^Q
1727"^DD",8994.81,8994.81,.01,1,0)
1728^.1^^0
1729"^DD",8994.81,8994.81,.01,3)
1730
1731"^DD",8994.81,8994.81,.01,21,0)
1732^^1^1^2890125^
1733"^DD",8994.81,8994.81,.01,21,1,0)
1734This field indicates the name of the option being audited.
1735"^DD",8994.81,8994.81,.01,"AUDIT")
1736n
1737"^DD",8994.81,8994.81,.01,"DT")
17383110215
1739"^DD",8994.81,8994.81,1,0)
1740USER^P200'^VA(200,^0;2^Q
1741"^DD",8994.81,8994.81,1,21,0)
1742^^1^1^2890125^
1743"^DD",8994.81,8994.81,1,21,1,0)
1744This field indicates the name of the user who has accessed the option.
1745"^DD",8994.81,8994.81,1,"AUDIT")
1746n
1747"^DD",8994.81,8994.81,1,"DT")
17483110213
1749"^DD",8994.81,8994.81,2,0)
1750DEVICE^FXJ60^^0;3^K:$L(X)>60!($L(X)<1) X
1751"^DD",8994.81,8994.81,2,3)
1752
1753"^DD",8994.81,8994.81,2,21,0)
1754^^1^1^2890125^
1755"^DD",8994.81,8994.81,2,21,1,0)
1756This field indicates the device used while the option was accessed.
1757"^DD",8994.81,8994.81,2,"AUDIT")
1758n
1759"^DD",8994.81,8994.81,2,"DT")
17603110215
1761"^DD",8994.81,8994.81,3,0)
1762JOB^NJ8,0^^0;4^K:+X'=X!(X>99999999)!(X<1)!(X?.E1"."1N.N) X
1763"^DD",8994.81,8994.81,3,3)
1764TYPE A WHOLE NUMBER BETWEEN 1 AND 99999999
1765"^DD",8994.81,8994.81,3,21,0)
1766^^1^1^2890125^
1767"^DD",8994.81,8994.81,3,21,1,0)
1768This field records the job number associated with the option access.
1769"^DD",8994.81,8994.81,3,"AUDIT")
1770n
1771"^DD",8994.81,8994.81,3,"DT")
17723110213
1773"^DD",8994.81,8994.81,5,0)
1774CPU^F^^0;6^K:$L(X)>16!($L(X)<1) X
1775"^DD",8994.81,8994.81,5,3)
1776ANSWER MUST BE 1-16 CHARACTERS IN LENGTH
1777"^DD",8994.81,8994.81,5,21,0)
1778^^1^1^2890125^
1779"^DD",8994.81,8994.81,5,21,1,0)
1780This field records the CPU location of the option access.
1781"^DD",8994.81,8994.81,5,"AUDIT")
1782n
1783"^DD",8994.81,8994.81,5,"DT")
17843110213
1785"^DD",8994.81,8994.81,8,0)
1786SUBJECT^FX^^2;E1,65^K:$L(X)>65!($L(X)<3) X
1787"^DD",8994.81,8994.81,8,3)
1788Answer must be 3-65 characters in length.
1789"^DD",8994.81,8994.81,8,21,0)
1790^^3^3^2911230^
1791"^DD",8994.81,8994.81,8,21,1,0)
1792For a Server-type option this field will contain the subject of
1793"^DD",8994.81,8994.81,8,21,2,0)
1794the MailMan message that activated (or tried to activate) the
1795"^DD",8994.81,8994.81,8,21,3,0)
1796option.
1797"^DD",8994.81,8994.81,8,"AUDIT")
1798n
1799"^DD",8994.81,8994.81,8,"DT")
18003110215
1801"^DD",8994.81,8994.81,9,0)
1802ACTION^F^^3;E1,245^K:$L(X)>245!($L(X)<1) X
1803"^DD",8994.81,8994.81,9,3)
1804Answer must be 1-245 characters in length.
1805"^DD",8994.81,8994.81,9,21,0)
1806^^3^3^2911230^
1807"^DD",8994.81,8994.81,9,21,1,0)
1808For a Server-type option this field will contain the resulting action
1809"^DD",8994.81,8994.81,9,21,2,0)
1810of a server request. In the event of an error, the error will be
1811"^DD",8994.81,8994.81,9,21,3,0)
1812trapped by the server software and entered into this field.
1813"^DD",8994.81,8994.81,9,"AUDIT")
1814n
1815"^DD",8994.81,8994.81,9,"DT")
18163110215
1817"^DD",8994.81,8994.81,100,0)
1818PATIENT^P2'^DPT(^100;1^Q
1819"^DD",8994.81,8994.81,100,"DT")
18203110214
1821"^DD",250001.1,250001.1,0)
1822FIELD^^4^10
1823"^DD",250001.1,250001.1,0,"DDA")
1824N
1825"^DD",250001.1,250001.1,0,"DT")
18263110620
1827"^DD",250001.1,250001.1,0,"IX","B",250001.1,.01)
1828
1829"^DD",250001.1,250001.1,0,"NM","AUDIT LOG FOR MU")
1830
1831"^DD",250001.1,250001.1,.01,0)
1832AUDIT ID^RF^^0;1^K:$L(X)>30!($L(X)<3)!'(X'?1P.E) X
1833"^DD",250001.1,250001.1,.01,1,0)
1834^.1
1835"^DD",250001.1,250001.1,.01,1,1,0)
1836250001.1^B
1837"^DD",250001.1,250001.1,.01,1,1,1)
1838S ^XUSEC(250001.1,"B",$E(X,1,30),DA)=""
1839"^DD",250001.1,250001.1,.01,1,1,2)
1840K ^XUSEC(250001.1,"B",$E(X,1,30),DA)
1841"^DD",250001.1,250001.1,.01,3)
1842Answer must be 3-30 characters in length.
1843"^DD",250001.1,250001.1,.01,"DT")
18443110620
1845"^DD",250001.1,250001.1,.02,0)
1846PATIENT NAME^P2'^DPT(^0;2^Q
1847"^DD",250001.1,250001.1,.02,"DT")
18483110620
1849"^DD",250001.1,250001.1,.03,0)
1850USER NAME^P200'^VA(200,^0;3^Q
1851"^DD",250001.1,250001.1,.03,"DT")
18523110620
1853"^DD",250001.1,250001.1,.04,0)
1854AUDIT DTTM^D^^0;4^S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X
1855"^DD",250001.1,250001.1,.04,"DT")
18563110620
1857"^DD",250001.1,250001.1,.05,0)
1858ACTION OCCURRED^S^C:CREATED;M:MODIFIED;A:ACCESSED;D:DELETED;O:OTHER;^0;5^Q
1859"^DD",250001.1,250001.1,.05,3)
1860
1861"^DD",250001.1,250001.1,.05,"DT")
18623110620
1863"^DD",250001.1,250001.1,.06,0)
1864ACTION INDICATION^F^^0;6^K:$L(X)>80!($L(X)<1) X
1865"^DD",250001.1,250001.1,.06,3)
1866Answer must be 1-80 characters in length.
1867"^DD",250001.1,250001.1,.06,"DT")
18683110620
1869"^DD",250001.1,250001.1,1,0)
1870AUDIT DATE^CD^^ ; ^S Y(250001.1,1,1)=$S($D(^XUSEC(250001.1,D0,0)):^(0),1:"") S X=$P(Y(250001.1,1,1),U,4),X=X S X=X\1,X=$P(X,".",1)
1871"^DD",250001.1,250001.1,1,9)
1872^
1873"^DD",250001.1,250001.1,1,9.01)
1874250001.1^.04
1875"^DD",250001.1,250001.1,1,9.1)
1876DATE(INTERNAL(#.04)\1)
1877"^DD",250001.1,250001.1,2,0)
1878AUDIT TIME^CF^^ ; ^S Y(250001.1,2,1)=$S($D(^XUSEC(250001.1,D0,0)):^(0),1:"") S X=$P(Y(250001.1,2,1),U,4),X=X#1_"000000",X=$E(X,2,3)_":"_$E(X,4,5)_":"_$E(X,6,7)
1879"^DD",250001.1,250001.1,2,9)
1880^
1881"^DD",250001.1,250001.1,2,9.01)
1882250001.1^1;250001.1^.04
1883"^DD",250001.1,250001.1,2,9.1)
1884INTERNAL(AUDIT DTTM)#1
1885"^DD",250001.1,250001.1,2,9.2)
1886X "N I,Y "_$P(^DD(250001.1,1,0),U,5,99) S Y(250001.1,2,2)=X S Y(250001.1,2,1)=$S($D(^XUSEC(250001.1,D0,0)):^(0),1:"") S X=$P(Y(250001.1,2,1),U,4),X=X S X=XY(250001.1,2,2)
1887"^DD",250001.1,250001.1,3,0)
1888USER ID^CJ15^^ ; ^S Y(250001.1,3,1)=$S($D(^XUSEC(250001.1,D0,0)):^(0),1:"") S X=$P(Y(250001.1,3,1),U,3),X=X
1889"^DD",250001.1,250001.1,3,9)
1890^
1891"^DD",250001.1,250001.1,3,9.01)
1892250001.1^.03
1893"^DD",250001.1,250001.1,3,9.1)
1894INTERNAL(#.03)
1895"^DD",250001.1,250001.1,4,0)
1896PATIENT ID^C^^ ; ^S Y(250001.1,4,1)=$S($D(^XUSEC(250001.1,D0,0)):^(0),1:"") S X=$P(Y(250001.1,4,1),U,2),X=X
1897"^DD",250001.1,250001.1,4,9)
1898^
1899"^DD",250001.1,250001.1,4,9.01)
1900250001.1^.02
1901"^DD",250001.1,250001.1,4,9.1)
1902INTERNAL(PATIENT NAME)
1903"^DIC",8994.8,8994.8,0)
1904LOGGABLE RPC^8994.8
1905"^DIC",8994.8,8994.8,0,"GL")
1906^XWBVW(
1907"^DIC",8994.8,8994.8,"%D",0)
1908^^10^10^3110331^
1909"^DIC",8994.8,8994.8,"%D",1,0)
1910THIS FILE LISTS THE NAMES OF
1911"^DIC",8994.8,8994.8,"%D",2,0)
1912RPCS THAT MAY NEED TO BE AUDITED IN THE 'AUDIT LOG FOR RPCS'. SITE TURNS
1913"^DIC",8994.8,8994.8,"%D",3,0)
1914THE 'ACTIVE' FIELD ON OR OFF TO CONTROL THIS. THERE IS ALSO A 'READABLE
1915"^DIC",8994.8,8994.8,"%D",4,0)
1916NAME' FIELD THAT COULD BE USED TO TRANSLATE 'ORQQPL PROBLEM LIST' TO
1917"^DIC",8994.8,8994.8,"%D",5,0)
1918SOMETHING MORE USER-FRIENDLY LIKE 'SHOW PATIENT'S PROBLEM LIST'. THIS
1919"^DIC",8994.8,8994.8,"%D",6,0)
1920FILE ALSO HAS INFORMATION ON HOW TO INTERCEPT INPUT PARAMETERS AT THE
1921"^DIC",8994.8,8994.8,"%D",7,0)
1922TIME OF THE RPC CALL SO AS TO IDENTIFY WHICH PATIENT IS BEING DEALT WITH
1923"^DIC",8994.8,8994.8,"%D",8,0)
1924ON THE CLIENT SIDE. NOTE THAT AN ENTRY IN THIS FILE NEED NOT NECESSARILY
1925"^DIC",8994.8,8994.8,"%D",9,0)
1926CORRESPOND TO AN ACTUAL RPC IN FILE 8994 AT THE SITE, BECAUSE THE .01
1927"^DIC",8994.8,8994.8,"%D",10,0)
1928FIELD IS FREE-TEXT, NOT A POINTER.
1929"^DIC",8994.8,"B","LOGGABLE RPC",8994.8)
1930
1931"^DIC",8994.81,8994.81,0)
1932AUDIT LOG FOR RPCS^8994.81
1933"^DIC",8994.81,8994.81,0,"GL")
1934^XUSEC(8994,
1935"^DIC",8994.81,8994.81,"%D",0)
1936^^9^9^3110331^
1937"^DIC",8994.81,8994.81,"%D",1,0)
1938THIS FILE IS ANALOGOUS
1939"^DIC",8994.81,8994.81,"%D",2,0)
1940TO THE EXISTING VA FILE NAMED 'AUDIT LOG FOR OPTIONS'.
1941"^DIC",8994.81,8994.81,"%D",3,0)
1942IT WILL BE POPULATED AS USERS
1943"^DIC",8994.81,8994.81,"%D",4,0)
1944RUN CERTAIN RPC'S. THIS IS THE FILE OUT OF WHICH REPORTS WILL BE NEEDED.
1945"^DIC",8994.81,8994.81,"%D",5,0)
1946
1947"^DIC",8994.81,8994.81,"%D",6,0)
1948
1949"^DIC",8994.81,8994.81,"%D",7,0)
1950File 8994.8 establishes
1951"^DIC",8994.81,8994.81,"%D",8,0)
1952when and how a log of RPC
1953"^DIC",8994.81,8994.81,"%D",9,0)
1954usage will be recorded in this file.
1955"^DIC",8994.81,"B","AUDIT LOG FOR RPCS",8994.81)
1956
1957"^DIC",250001.1,250001.1,0)
1958AUDIT LOG FOR MU^250001.1
1959"^DIC",250001.1,250001.1,0,"GL")
1960^XUSEC(250001.1,
1961"^DIC",250001.1,250001.1,"%D",0)
1962^^1^1^3110620^
1963"^DIC",250001.1,250001.1,"%D",1,0)
1964Audit Log for Meaningful Use
1965"^DIC",250001.1,"B","AUDIT LOG FOR MU",250001.1)
1966
1967**END**
1968**END**
Note: See TracBrowser for help on using the repository browser.