1 | VDEFUTIL ;INTEGIC/AM & BPOIFO/JG - VDEF Utilities ; 21 Nov 2005 2:17 PM
|
---|
2 | ;;1.0;VDEF;**3**;Dec 28, 2004
|
---|
3 | ;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ; IA: #10103 - $$HTE^XLFDT
|
---|
6 | ;
|
---|
7 | Q ; No bozos
|
---|
8 | ;
|
---|
9 | FUTURE(WAKEUP) ;
|
---|
10 | ; Function that calculates $H date/time a WAKEUP number of
|
---|
11 | ; seconds in the future
|
---|
12 | ; Calculate the time WAKEUP number of seconds in the future as
|
---|
13 | ; expressed in the number of seconds since 1840
|
---|
14 | N X S X=$H,X=$P(X,",",1)*86400+$P(X,",",2)+WAKEUP
|
---|
15 | ; Convert the time from the number of seconds since 1840 to $H format
|
---|
16 | Q X\86400_","_(X#86400)
|
---|
17 | ;
|
---|
18 | ; Function to calculate the number of seconds between two dates
|
---|
19 | DIFF(FIRST,SECOND) ;
|
---|
20 | N X
|
---|
21 | ; Convert the dates from Fileman to $H format if necessary
|
---|
22 | I FIRST?.E1".".E S X=FIRST D H^%DTC S FIRST=%H_","_%T
|
---|
23 | I SECOND?.E1".".E S X=SECOND D H^%DTC S SECOND=%H_","_%T
|
---|
24 | ;
|
---|
25 | ; Convert $H date/time values to the number of seconds since 1840
|
---|
26 | S FIRST=$P(FIRST,",",1)*86400+$P(FIRST,",",2)
|
---|
27 | S SECOND=$P(SECOND,",",1)*86400+$P(SECOND,",",2)
|
---|
28 | ; Return the number of seconds between the two dates
|
---|
29 | Q SECOND-FIRST
|
---|
30 | ;
|
---|
31 | ALERT(XQAMSG) ;
|
---|
32 | ; Subroutine to send an Alert message to the VISTA HL7 IRM
|
---|
33 | ; Input Parameters:
|
---|
34 | ; XQAMSG - Text of the message to send to the Vista HL7 IRM
|
---|
35 | N ALERTS,XQA,X,Y,VDEFMSGX
|
---|
36 | S Y=$$HTE^XLFDT($H,2) S XQAMSG=Y_" "_XQAMSG,VDEFMSGX=XQAMSG
|
---|
37 | ; Retrieve the Mailman Group to send VDEF alerts to.
|
---|
38 | ; If site has no VDEF ALERTS Mail Group,
|
---|
39 | ; send it to HL7 Mail Group.
|
---|
40 | S X=$P($$GETAPP^HLCS2("VDEF ALERTS"),U)
|
---|
41 | I X="" S X=$$GET1^DIQ(869.3,"1,",".05")
|
---|
42 | S XQA("G."_X)="",X=$$SETUP1^XQALERT
|
---|
43 | ;
|
---|
44 | ; Send a mail message to VDEF ALERT group on FORUM
|
---|
45 | N XMDUZ,XMY,XMSUB,XMTEXT,SITEPARM,VDEFMSG
|
---|
46 | S SITEPARM=$$PARAM^HLCS2,SITEPARM=$P(SITEPARM,U,5)_" ("_$P(SITEPARM,U,6)_")"
|
---|
47 | S XMY("G.VDEF NATIONAL ALERTS@FORUM.VA.GOV")=""
|
---|
48 | S XMY("GARDNER.JEFF@FORUM.VA.GOV")=""
|
---|
49 | S XMDUZ="VDEF ALERT - "_SITEPARM,XMSUB="VDEF ALERT - "_SITEPARM,XMTEXT="VDEFMSG("
|
---|
50 | S VDEFMSG(1)="THIS IS AN ALERT GENERATED BY VDEF AT "_SITEPARM
|
---|
51 | S VDEFMSG(2)=" ",VDEFMSG(3)="ALERT TEXT:",VDEFMSG(4)=VDEFMSGX
|
---|
52 | D ^XMD
|
---|
53 | Q
|
---|
54 | ;
|
---|
55 | TIMEI(T) ;
|
---|
56 | N TIME,CH,F,I,D,H,M,S,NUM,DONE
|
---|
57 | S TIME="",NUM="",DONE=0,F="DHMS",T=T_" "
|
---|
58 | F I=1:1:$L(T) S CH=$E(T,I) D Q:DONE
|
---|
59 | . I CH?1.N S NUM=NUM*10+$E(T,I) Q
|
---|
60 | . I CH=" ",NUM="" Q
|
---|
61 | . I CH=" " S CH=$E(F)
|
---|
62 | . I NUM="" S DONE=1 Q
|
---|
63 | . I CH="D" S D=NUM,NUM="",F=$P(F,CH,2) Q
|
---|
64 | . I CH="H" S H=NUM,NUM="",F=$P(F,CH,2) S:H>24 DONE=1 Q
|
---|
65 | . I CH="M" S M=NUM,NUM="",F=$P(F,CH,2) S:M>60 DONE=1 Q
|
---|
66 | . I CH="S" S S=NUM,NUM="",F=$P(F,CH,2) S:S>60 DONE=1 Q
|
---|
67 | . S DONE=1 W "*",CH,"*"
|
---|
68 | I DONE Q ""
|
---|
69 | ;W !,$G(D),"D ",$G(H),"H ",$G(M),"M ",$G(S),"S",!
|
---|
70 | S TIME=TIME+($G(D)*86400)+($G(H)*3600)+($G(M)*60)+$G(S)
|
---|
71 | Q TIME
|
---|
72 | ;
|
---|
73 | TIMEE(T) ;
|
---|
74 | N TIME S TIME=""
|
---|
75 | I T'<86400 S TIME=TIME_(T\86400)_"D ",T=T#86400
|
---|
76 | I T'<3600 S TIME=TIME_(T\3600)_"H ",T=T#3600
|
---|
77 | I T'<60 S TIME=TIME_(T\60)_"M ",T=T#60
|
---|
78 | I T>0 S TIME=TIME_T_"S "
|
---|
79 | S TIME=$E(TIME,1,$L(TIME)-1)
|
---|
80 | Q TIME
|
---|
81 | ;
|
---|
82 | ; Delete all entries in a given Request Queue
|
---|
83 | CLEANREQ(Q) ;
|
---|
84 | ; For development and testing only.
|
---|
85 | ; DO NOT USE IN PRODUCTION SYSTEMS.
|
---|
86 | I $$PROD^XUPROD(1) W:'$D(ZTQUEUED) !,"Can't be used in a production environment!" Q
|
---|
87 | N QUE S QUE=$P($G(^VDEFHL7(579.3,Q,0)),U)
|
---|
88 | I QUE="" W !,"Invalid queue" Q
|
---|
89 | K DIR S DIR(0)="Y",DIR("A")="Are you sure you want to continue",DIR("B")="No"
|
---|
90 | W !,"This action will delete all entries from Request Queue '"_QUE_"'."
|
---|
91 | D ^DIR I Y=0 W !,"Entries not deleted." Q
|
---|
92 | W !,"Deleting records ..."
|
---|
93 | N IEN S IEN=0 F S IEN=$O(^VDEFHL7(579.3,Q,1,IEN)) Q:'IEN D
|
---|
94 | . K FDA,MSG S FDA(579.31,IEN_","_Q_",",.01)="@" D FILE^DIE(,"FDA","MSG")
|
---|
95 | W !,"Entries deleted from "_QUE_" queue."
|
---|
96 | Q
|
---|
97 | ;
|
---|
98 | PURGEQ ; Purge all Request Queues of their entries
|
---|
99 | ; For development and testing only.
|
---|
100 | ; DO NOT USE IN PRODUCTION SYSTEMS.
|
---|
101 | I $$PROD^XUPROD(1) W:'$D(ZTQUEUED) !,"Can't be used in a production environment!" Q
|
---|
102 | N QIEN S QIEN=0 F S QIEN=$O(^VDEFHL7(579.3,QIEN)) Q:'QIEN D CLEANREQ(QIEN)
|
---|
103 | Q
|
---|
104 | ;
|
---|
105 | CLEANUP ; Delete records from VDEF files before installing the VDEF KIDS package
|
---|
106 | ; For development and testing only.
|
---|
107 | ; DO NOT USE IN PRODUCTION SYSTEMS.
|
---|
108 | I $$PROD^XUPROD(1) W:'$D(ZTQUEUED) !,"Can't be used in a production environment!" Q
|
---|
109 | K DIR S DIR(0)="Y",DIR("A")="Do you want to continue",DIR("B")="No"
|
---|
110 | W !,"This action will DELETE all data from VDEF globals in preparation for a KIDS install."
|
---|
111 | D ^DIR K DIR I Y=0 W !,"VDEF Globals not deleted." Q
|
---|
112 | W !,"Deleting records from VDEF globals ..."
|
---|
113 | N SUB S SUB="" F S SUB=$O(^VDEFHL7(SUB)) Q:SUB="" D
|
---|
114 | . S X=^VDEFHL7(SUB,0) K ^VDEFHL7(SUB) S ^VDEFHL7(SUB,0)=X
|
---|
115 | S SUB="" F S SUB=$O(^VDEFOUT(SUB)) Q:SUB="" D
|
---|
116 | . S X=^VDEFOUT(SUB,0) K ^VDEFOUT(SUB) S ^VDEFOUT(SUB,0)=X
|
---|
117 | W !,"VDEF Globals deleted."
|
---|
118 | Q
|
---|