[613] | 1 | WVPURP ;HIOFO/FT,JR-NOTIFICATION TABLES MAINTENANC; ;8/28/03 16:38
|
---|
| 2 | ;;1.0;WOMEN'S HEALTH;**4,9,16**;Sep 30, 1998
|
---|
| 3 | ;; Original routine created by IHS/ANMC/MWR
|
---|
| 4 | ;;* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
|
---|
| 5 | ;; ADD/EDIT/PRINT NOTIFICATION PURPOSE FILE ENTRIES, EDIT PCD DAYS,
|
---|
| 6 | ;; EDIT NOTIFICATION TYPE SYNONYMS, ADD/EDIT NOTIFICATION OUTCOMES.
|
---|
| 7 | ;
|
---|
| 8 | ; This routine uses the following IAs:
|
---|
| 9 | ; #10089 - ^%ZISC call (supported)
|
---|
| 10 | ; #10103 - ^XLFDT calls (supported)
|
---|
| 11 | ; #10104 - ^XLFSTR calls (supported)
|
---|
| 12 | ;
|
---|
| 13 | PRINTPUR ; Called by option "WV PRINT NOTIF PURPOSE&LETTER"
|
---|
| 14 | D SETVARS^WVUTL5
|
---|
| 15 | D DEVICE
|
---|
| 16 | I WVPOP D KILL Q
|
---|
| 17 | PRINT ; Print purpose and letter entries
|
---|
| 18 | U IO
|
---|
| 19 | S WVNAME="",(WVPAGE,WVPOP)=0
|
---|
| 20 | S WVDATE=$$FMTE^XLFDT($$NOW^XLFDT(),"1P") ;current date/time
|
---|
| 21 | S WVDASH=$$REPEAT^XLFSTR("-",79) ;line of dashes
|
---|
| 22 | ; loop thru File 790.404 (B x-ref)
|
---|
| 23 | F S WVNAME=$O(^WV(790.404,"B",WVNAME)) Q:WVNAME=""!(WVPOP) S WVIEN=0 F S WVIEN=$O(^WV(790.404,"B",WVNAME,WVIEN)) Q:'WVIEN!(WVPOP) D
|
---|
| 24 | .S WVNODE=$G(^WV(790.404,WVIEN,0)) Q:WVNODE=""
|
---|
| 25 | .D HEADER
|
---|
| 26 | .D RESOLVE
|
---|
| 27 | .W !!?3,"PURPOSE: "_$P(WVNODE,U,1),?55,"SYNONYM: "_$P(WVNODE,U,3)
|
---|
| 28 | .W !?2,"PRIORITY: "_$G(WVARRAY(790.404,WVIEN_",",.02,"E")),?56,"ACTIVE: "_$G(WVARRAY(790.404,WVIEN_",",.04,"E"))
|
---|
| 29 | .W !?2,"BR or CX: "_$G(WVARRAY(790.404,WVIEN_",",.05,"E"))
|
---|
| 30 | .W !?4,"LETTER: "_$G(WVARRAY(790.404,WVIEN_",",.06,"E"))
|
---|
| 31 | .W !,"BR TX NEED: "_$G(WVARRAY(790.404,WVIEN_",",.07,"E"))
|
---|
| 32 | .S WVDUE=$$DMY($G(WVARRAY(790.404,WVIEN_",",.08,"E")))
|
---|
| 33 | .W ?48,"BR TX DUE DATE: "_WVDUE
|
---|
| 34 | .W !,"CX TX NEED: "_$G(WVARRAY(790.404,WVIEN_",",.09,"E"))
|
---|
| 35 | .S WVDUE=$$DMY($G(WVARRAY(790.404,WVIEN_",",.1,"E")))
|
---|
| 36 | .W ?48,"CX TX DUE DATE: "_WVDUE,!!
|
---|
| 37 | .S WVLINE=0
|
---|
| 38 | .F S WVLINE=$O(^WV(790.404,WVIEN,1,WVLINE)) Q:'WVLINE!(WVPOP) D
|
---|
| 39 | ..I ($Y+4)>IOSL D:$E(IOST)="C" DIRZ^WVUTL3 Q:WVPOP D HEADER
|
---|
| 40 | ..W !,$G(^WV(790.404,WVIEN,1,WVLINE,0))
|
---|
| 41 | ..Q
|
---|
| 42 | .Q:WVPOP
|
---|
| 43 | .I $E(IOST)="C" D DIRZ^WVUTL3
|
---|
| 44 | .Q
|
---|
| 45 | I $D(ZTQUEUED) S ZTREQ="@"
|
---|
| 46 | KILL ; Kill variables
|
---|
| 47 | K WVARRAY,WVDASH,WVDATE,WVDUE,WVIEN,WVLINE
|
---|
| 48 | K WVNAME,WVNODE,WVPAGE,WVPOP,X,Y
|
---|
| 49 | D ^%ZISC
|
---|
| 50 | Q
|
---|
| 51 | HEADER ; Report header
|
---|
| 52 | W:$Y>0 @IOF
|
---|
| 53 | S WVPAGE=WVPAGE+1
|
---|
| 54 | W "NOTIFICATION PURPOSE & LETTER LIST",?45,WVDATE,?70,"PAGE: "_WVPAGE
|
---|
| 55 | W !,WVDASH
|
---|
| 56 | Q
|
---|
| 57 | RESOLVE ; Resolve data to external values
|
---|
| 58 | K WVARRAY
|
---|
| 59 | D CLEAN^DILF
|
---|
| 60 | D GETS^DIQ(790.404,WVIEN_",",".02;.04:.1","E","WVARRAY")
|
---|
| 61 | Q
|
---|
| 62 | DEVICE ; Get device and possibly queue to taskman
|
---|
| 63 | N ZTRTN
|
---|
| 64 | S ZTRTN="DEQUEUE^WVPURP"
|
---|
| 65 | D ZIS^WVUTL2(.WVPOP,1,"HOME")
|
---|
| 66 | Q
|
---|
| 67 | DEQUEUE ; Taskman queue of printout
|
---|
| 68 | D PRINT
|
---|
| 69 | Q
|
---|
| 70 | ;
|
---|
| 71 | EDITPUR ;EP
|
---|
| 72 | ;---> CALLED BY OPTION "WV EDIT NOTIF PURPOSE&LETTER".
|
---|
| 73 | D SETVARS^WVUTL5
|
---|
| 74 | ;---> DISPLAY MENU TITLE FROM WV MENU OPTIONS.
|
---|
| 75 | F D Q:$G(Y)<0
|
---|
| 76 | .D TITLE^WVUTL5("EDIT NOTIFICATION PURPOSE & LETTER FILE")
|
---|
| 77 | .D DIC^WVFMAN(790.404,"QEMAL",.Y)
|
---|
| 78 | .Q:Y<0
|
---|
| 79 | .S DA=+Y
|
---|
| 80 | .D:$P(Y,U,3) ADDLET
|
---|
| 81 | .D:'$P(Y,U,3) REPLACE
|
---|
| 82 | .Q:WVPOP
|
---|
| 83 | .;---> EDIT WITH SCREENMAN.
|
---|
| 84 | .S DR="[WV NOTIFPURPOSE-FORM-1]"
|
---|
| 85 | .D DDS^WVFMAN(790.404,DR,DA,"","",.WVPOP)
|
---|
| 86 | D KILLALL^WVUTL8
|
---|
| 87 | Q
|
---|
| 88 | ;
|
---|
| 89 | ;
|
---|
| 90 | ADDLET ;EP
|
---|
| 91 | ;---> CALLED BY OPTION "WV ADD NOTIF PURPOSE&LETTER".
|
---|
| 92 | K ^WV(790.404,DA,1)
|
---|
| 93 | N N S N=0
|
---|
| 94 | F S N=$O(^WV(790.6,1,1,N)) Q:'N D
|
---|
| 95 | .S ^WV(790.404,DA,1,N,0)=^WV(790.6,1,1,N,0)
|
---|
| 96 | S ^WV(790.404,DA,1,0)=^WV(790.6,1,1,0)
|
---|
| 97 | Q
|
---|
| 98 | ;
|
---|
| 99 | REPLACE ;EP
|
---|
| 100 | ;---> REPLACE OLD LETTER FOR THIS NOTIF PURPOSE WITH GENERIC SAMPLE.
|
---|
| 101 | N DIR,DIRUT,Y
|
---|
| 102 | W !!?3,"Do you wish to delete the old letter for this Purpose of "
|
---|
| 103 | W "Notification",!?3,"and replace it with the generic sample letter?"
|
---|
| 104 | S DIR(0)="YA",DIR("B")="NO"
|
---|
| 105 | S DIR("A")=" Enter Yes or No: " D HELP1
|
---|
| 106 | D ^DIR W !
|
---|
| 107 | S:$D(DIRUT) WVPOP=1
|
---|
| 108 | I Y D ADDLET
|
---|
| 109 | Q
|
---|
| 110 | ;
|
---|
| 111 | HELP1 ;EP
|
---|
| 112 | ;;Enter YES to delete the old letter for this Purpose of Notification
|
---|
| 113 | ;;and to begin with a fresh copy of the generic sample letter.
|
---|
| 114 | S WVTAB=5,WVLINL="HELP1" D HELPTX
|
---|
| 115 | Q
|
---|
| 116 | ;
|
---|
| 117 | HELPTX ;EP
|
---|
| 118 | N I,T,X S T=$$REPEAT^XLFSTR(" ",WVTAB)
|
---|
| 119 | F I=1:1 S X=$T(@WVLINL+I) Q:X'[";;" S DIR("?",I)=T_$P(X,";;",2)
|
---|
| 120 | S DIR("?")=DIR("?",I-1) K DIR("?",I-1)
|
---|
| 121 | Q
|
---|
| 122 | ;
|
---|
| 123 | TYPE ;EP
|
---|
| 124 | ;---> EDIT SYNONYMS FOR NOTIFICATION TYPES.
|
---|
| 125 | D SETVARS^WVUTL5
|
---|
| 126 | F D Q:$G(Y)<0
|
---|
| 127 | .D TITLE^WVUTL5("EDIT SYNONYMS FOR NOTIFICATION TYPES") D TEXT1
|
---|
| 128 | .N A S A=" Select NOTIFICATION TYPE: "
|
---|
| 129 | .D DIC^WVFMAN(790.403,"QEMA",.Y,A)
|
---|
| 130 | .Q:Y<0
|
---|
| 131 | .D DIE^WVFMAN(790.403,.03,+Y,.WVPOP)
|
---|
| 132 | W @IOF
|
---|
| 133 | D KILLALL^WVUTL8
|
---|
| 134 | Q
|
---|
| 135 | ;
|
---|
| 136 | OUTCOME ;EP
|
---|
| 137 | ;---> ADD/EDIT NOTIFICATION OUTCOME FILE.
|
---|
| 138 | D SETVARS^WVUTL5
|
---|
| 139 | F D Q:$G(Y)<0
|
---|
| 140 | .D TITLE^WVUTL5("ADD/EDIT NOTIFICATION OUTCOME FILE")
|
---|
| 141 | .D DIC^WVFMAN(790.405,"QEMAL",.Y," Select OUTCOME: ")
|
---|
| 142 | .Q:Y<0
|
---|
| 143 | .D DIE^WVFMAN(790.405,.02,+Y,.WVPOP)
|
---|
| 144 | W @IOF
|
---|
| 145 | D KILLALL^WVUTL8
|
---|
| 146 | Q
|
---|
| 147 | ;
|
---|
| 148 | TEXT1 ;EP
|
---|
| 149 | ;;You may enter a synonym for each Notification Type. The synonym will
|
---|
| 150 | ;;allow the Notification Type to be called up by typing only a few
|
---|
| 151 | ;;characters. Synonyms should be unique and less than 4 characters.
|
---|
| 152 | ;;
|
---|
| 153 | ;;For example, "L1" might be used for LETTER,FIRST; "L2" for
|
---|
| 154 | ;;LETTER,SECOND; "L3" for LETTER,THIRD, and so on.
|
---|
| 155 | ;;
|
---|
| 156 | ;;
|
---|
| 157 | S WVTAB=5,WVLINL="TEXT1" D PRINTX
|
---|
| 158 | Q
|
---|
| 159 | ;
|
---|
| 160 | PRINTX ;EP
|
---|
| 161 | N I,T,X S T=$$REPEAT^XLFSTR(" ",WVTAB)
|
---|
| 162 | F I=1:1 S X=$T(@WVLINL+I) Q:X'[";;" W !,T,$P(X,";;",2)
|
---|
| 163 | Q
|
---|
| 164 | ;
|
---|
| 165 | GENSTUFF ;EP
|
---|
| 166 | ;---> STUFF THE GENERIC SAMPLE LETTER INTO ALL PURPOSES OF NOTIF.
|
---|
| 167 | N DA
|
---|
| 168 | S DA=0
|
---|
| 169 | F S DA=$O(^WV(790.404,DA)) Q:'DA W !,DA D ADDLET^WVPURP
|
---|
| 170 | Q
|
---|
| 171 | DMY(WVDUE) ; Spell out Days, Months or Years
|
---|
| 172 | N WVDUE1,WVDUE2
|
---|
| 173 | I WVDUE="" Q ""
|
---|
| 174 | I '$S(WVDUE["D":1,WVDUE["M":1,WVDUE["Y":1,1:0) Q WVDUE
|
---|
| 175 | S WVDUE1=+WVDUE
|
---|
| 176 | S WVDUE2=$S(WVDUE["D":"Day",WVDUE["M":"Month",WVDUE["Y":"Year",1:"")
|
---|
| 177 | S:WVDUE1>1 WVDUE2=WVDUE2_"s"
|
---|
| 178 | S:WVDUE2="s" WVDUE2=""
|
---|
| 179 | S WVDUE=WVDUE1_" "_WVDUE2
|
---|
| 180 | Q WVDUE
|
---|
| 181 | ;
|
---|
| 182 | DMYCHECK ; Called from ^DD(790.404,.8,0) - BR TX DUE DATE
|
---|
| 183 | ; and ^DD(790.404,.1,0) - CX TX DUE DATE
|
---|
| 184 | ; Check X to see if it is a date offset (e.g., 365D, 12M or 1Y).
|
---|
| 185 | ; Returns -1 if not an exceptable value
|
---|
| 186 | Q:'$D(X)
|
---|
| 187 | I $L(X)>4!($L(X)<2) S X=-1 Q
|
---|
| 188 | S X=$$UP^XLFSTR(X)
|
---|
| 189 | I X'?1.3N1"D",X'?1.3N1"M",X'?1.3N1"Y" S X=-1
|
---|
| 190 | Q
|
---|