1 | YSGAFTR ;DALOI/MJE/MJD-GAF INT ENTRY BUILD ROUTINE ;09/01/98 16:17
|
---|
2 | ;;5.01;MENTAL HEALTH;**43,49,59**;Dec 30, 1994
|
---|
3 | ;
|
---|
4 | ;This routine will be executed from option YS GAF TRANSMISSION.
|
---|
5 | ;This routine will transmit GAF data for the dates entered. This
|
---|
6 | ;routine will also be used to re-transmit GAF data as needed.
|
---|
7 | ;It will only transmit GAF records containing all necessary
|
---|
8 | ;pieces of information. A MAILMAN message for each GAF score
|
---|
9 | ;transmitted will be sent to users enrolled in mail group
|
---|
10 | ;YS GAF TRANSMISSION ACK.
|
---|
11 | ;
|
---|
12 | ;
|
---|
13 | Q
|
---|
14 | START ;
|
---|
15 | ; Date range will be from no less than 10-01-1997 to any time
|
---|
16 | ; in the future.
|
---|
17 | I '$D(DUZ) D Q
|
---|
18 | .W !!,$C(7),"ERROR: DUZ is not defined. Use ^XUP or ask your "
|
---|
19 | .W !,"IRM why you don't have a DUZ variable defined.",!!
|
---|
20 | .D CLNUP
|
---|
21 | ;
|
---|
22 | S YSGFDATE=""
|
---|
23 | D DTRANGE Q:+Y<1
|
---|
24 | K ^TMP("YSGAFTR",$J)
|
---|
25 | S ZTRTN="GEN^YSGAFTR"
|
---|
26 | ;
|
---|
27 | ;VARIABLES TO BE SAVED IN ZTSAVE
|
---|
28 | S ZTSAVE("*")=""
|
---|
29 | ;
|
---|
30 | S ZTDESC="MENTAL HEALTH - GAF TRANSMISSION"
|
---|
31 | S ZTIO=""
|
---|
32 | D ^%ZTLOAD
|
---|
33 | I '$D(ZTSK) QUIT ;-->
|
---|
34 | W !!,"The Mental Health GAF Transmission has been Tasked, job# "
|
---|
35 | W ZTSK,"...",!
|
---|
36 | Q
|
---|
37 | ;
|
---|
38 | DTRANGE ;
|
---|
39 | W !
|
---|
40 | S (YSSTD,YSSPD)=0
|
---|
41 | S %DT("A")="Enter the Start date: ",%DT="AEQ",%DT(0)=2971001
|
---|
42 | D ^%DT K %DT
|
---|
43 | Q:+Y<1
|
---|
44 | S YSSTD=+Y
|
---|
45 | W !
|
---|
46 | S %DT("A")="Enter the End date: ",%DT="AEQ"
|
---|
47 | D ^%DT K %DT
|
---|
48 | Q:+Y<1
|
---|
49 | S YSSPD=+Y
|
---|
50 | I YSSPD<YSSTD D G DTRANGE
|
---|
51 | .W !?5,"... Start date is after the Ending date ..."
|
---|
52 | .W !?5,"... Please re-enter both the Start and Ending Dates ..."
|
---|
53 | .H 2 W $C(7)
|
---|
54 | Q
|
---|
55 | ;
|
---|
56 | GEN ;
|
---|
57 | I $D(ZTQUEUED) S ZTREQ="@" K ZTSK
|
---|
58 | S (YSIEN,YSTOT,YSINC,YSTRMT,YSSUBT)=0
|
---|
59 | F YSJ="I","O" D
|
---|
60 | .S (YSTOT(YSJ),YSTRMT(YSJ),YSINC(YSJ))=0
|
---|
61 | F S YSIEN=$O(^YSD(627.8,YSIEN)) Q:YSIEN=""!('YSIEN) D
|
---|
62 | .S YSGFDATE=$P($P($G(^YSD(627.8,YSIEN,0)),"^",1),".",1)
|
---|
63 | .S YSO=$G(^YSD(627.8,YSIEN,0))
|
---|
64 | .S YSPATID=$P(YSO,U,2) ; Patient ID
|
---|
65 | .S YSGAFDT=$P(YSO,U,3) ; Date/time of diagnosis
|
---|
66 | .Q:YSGAFDT=""
|
---|
67 | .S YSGFDATE=$P($P(YSO,U,3),".",1)
|
---|
68 | .I (YSGFDATE>(YSSTD-1))&(YSGFDATE<(YSSPD+1)) D
|
---|
69 | ..S YSTOT=YSTOT+1 ; Count total records found in this date range
|
---|
70 | ..S YSP=$G(^YSD(627.8,YSIEN,60)),YSPATYPE=$P(YSP,U,4)
|
---|
71 | ..I YSPATYPE="" D Q:YSPATYPE=""
|
---|
72 | ...Q:YSPATID=""
|
---|
73 | ...S DFN=YSPATID
|
---|
74 | ...D PATSTAT^YSDX3B
|
---|
75 | ...I '$D(DFN) D QUIT ;--->
|
---|
76 | ....D EN^YSGAFOBX(YSIEN)
|
---|
77 | ...S YSPATYPE=YSSTAT
|
---|
78 | ..S YSTOT(YSPATYPE)=YSTOT(YSPATYPE)+1
|
---|
79 | ..S YSAX5=$P(YSP,U,3),YSPROV=$P(YSO,U,4)
|
---|
80 | ..I YSAX5=""!(YSPROV="") D Q
|
---|
81 | ...S YSINC=YSINC+1
|
---|
82 | ...S YSINC(YSPATYPE)=YSINC(YSPATYPE)+1
|
---|
83 | ..S YSTRMT=YSTRMT+1
|
---|
84 | ..S YSTRMT(YSPATYPE)=YSTRMT(YSPATYPE)+1
|
---|
85 | ..D EN^YSGAFOBX(YSIEN)
|
---|
86 | D REPORT,MAILIT,CLNUP
|
---|
87 | Q
|
---|
88 | REPORT ;
|
---|
89 | S YSSUBT=YSINC+YSTRMT,YSLN=0
|
---|
90 | S XTMP="GAF TRANSMISSION TOTALS" D YSLN,SPC
|
---|
91 | S XTMP="Total GAF Records:" D YSLN,SPC
|
---|
92 | F YSJ="I","O" D
|
---|
93 | .S XTMP=$J(+YSTOT(YSJ),8)_" "
|
---|
94 | .S XTMP=XTMP_$S(YSJ="I":"In",1:"Out")_"-patient" D YSLN
|
---|
95 | S XTMP=$J(YSTOT,8)_" Total GAF Records"
|
---|
96 | D YSLN,DSH,DSH,SPC
|
---|
97 | S XTMP="GAF Records Transmitted:" D YSLN,SPC
|
---|
98 | F YSJ="I","O" D
|
---|
99 | .S XTMP=$J(+YSTRMT(YSJ),8)_" "
|
---|
100 | .S XTMP=XTMP_$S(YSJ="I":"In",1:"Out")_"-patient" D YSLN
|
---|
101 | S XTMP=$J(YSTRMT,8)_" GAF Record(s) transmitted" D YSLN,SPC
|
---|
102 | S XTMP="GAF Records Not Transmitted:" D YSLN,SPC
|
---|
103 | F YSJ="I","O" D
|
---|
104 | .S XTMP=$J(+YSINC(YSJ),8)_" "
|
---|
105 | .S XTMP=XTMP_$S(YSJ="I":"In",1:"Out")_"-patient" D YSLN
|
---|
106 | S XTMP=$J(YSINC,8)_" GAF Record(s) not transmitted" D YSLN,DSH,SPC
|
---|
107 | S XTMP=$J(YSSUBT,8)_" Total GAF Records" D YSLN,DSH,DSH,SPC
|
---|
108 | S XTMP=$J((YSTOT-YSSUBT),8)_" Difference" D YSLN
|
---|
109 | Q
|
---|
110 | SPC ;
|
---|
111 | S XTMP=" " D YSLN
|
---|
112 | Q
|
---|
113 | DSH ;
|
---|
114 | S XTMP="--------" D YSLN
|
---|
115 | Q
|
---|
116 | YSLN ;Store to ^TMP for MAILMAN message
|
---|
117 | S YSLN=YSLN+1
|
---|
118 | S ^TMP("YSGAFTR",$J,YSLN)=XTMP
|
---|
119 | Q
|
---|
120 | MAILIT ; Mail totals
|
---|
121 | S DTIME=600
|
---|
122 | S XMSUB="GAF Transmission"
|
---|
123 | S XMTEXT="^TMP(""YSGAFTR"",$J,"
|
---|
124 | S XMY(DUZ)=""
|
---|
125 | S XMY("YOUNG,TIM@ISC-DALLAS.VA.GOV")=""
|
---|
126 | S XMY("DEVLIN,MARK@ISC-DALLAS.VA.GOV")=""
|
---|
127 | S XMDUZ="AUTOMATED MESSAGE"
|
---|
128 | D ^XMD
|
---|
129 | S DTIME=$$DTIME^XUP(DUZ)
|
---|
130 | Q
|
---|
131 | CLNUP ;This section for clean up of variables
|
---|
132 | K X,Y,YSDIROUT,YSDIRUT,YSDUOUT,YSDTOUT,YSGFDATE,YSIEN,YSSPD,YSSTD
|
---|
133 | K YSANIMA,YSHH,YSSTAT,YSAX5,YSGAFDT,YSINC,YSLN,YSO,YSP,YSPATID
|
---|
134 | K YSPATYPE,YSPROV,YSSUBT,YSTOT,YSTRMT,ZTDESC,ZTIO,ZTRTN,ZTSAVE
|
---|
135 | K XTMP,XMDUZ,XMSUB,XMTEXT,XMSUB,XMY,XCNP,XMZ,YSYEAR,YSJ,YSI
|
---|
136 | K ^TMP("YSGAFTR",$J)
|
---|
137 | Q
|
---|