| 1 | WVUTL5 ;HCIOFO/FT,JR IHS/ANMC/MWR - UTIL: ACC#, TITLES, SL/TX DATES; ;1/29/99  15:15 | 
|---|
| 2 | ;;1.0;WOMEN'S HEALTH;**5**;Sep 30, 1998 | 
|---|
| 3 | ;;* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER * | 
|---|
| 4 | ;;  UTILITY: SETVARS, GENERATE ACCESSION#, MENUT, TITLE, CENTERT, | 
|---|
| 5 | ;;  COPYLET, UPPERCASE XREF, SL/TX DATES. | 
|---|
| 6 | ; | 
|---|
| 7 | ; | 
|---|
| 8 | SETVARS ;EP | 
|---|
| 9 | S:'$D(WVPOP) WVPOP=0 | 
|---|
| 10 | Q | 
|---|
| 11 | ;************** | 
|---|
| 12 | ; | 
|---|
| 13 | ; | 
|---|
| 14 | ACCSSN(PCDTYPE) ;EP | 
|---|
| 15 | ;---> GENERATE ACCESSION# FOR WV PROCEDURE FILE ENTRY. | 
|---|
| 16 | ;---> REQUIRED VARIABLE: PCDTYPE=IEN OF PROCEDURE TYPE (#790.2) | 
|---|
| 17 | N A,C,L,N,P,R,X | 
|---|
| 18 | Q:'$D(PCDTYPE) "" | 
|---|
| 19 | Q:'$D(^WV(790.2,PCDTYPE,0)) "" | 
|---|
| 20 | S X=^WV(790.2,PCDTYPE,0)          ;X=0-NODE OF PROC TYPE | 
|---|
| 21 | S P=$P(X,U,4)                 ;P=PREFIX | 
|---|
| 22 | S L=$P(X,U,6)                 ;L=LAST ASSIGNED ACCESSION# FOR THIS PROC | 
|---|
| 23 | S A=$P(L,"-")                 ;A=ACC YEAR | 
|---|
| 24 | S C=$P(L,"-",2)               ;C=COUNTER | 
|---|
| 25 | D NOW^%DTC | 
|---|
| 26 | S N=($E(%I(3),1,3)+1700)      ;N=YEAR NOW: 94 | 
|---|
| 27 | I A'=N S C=0 | 
|---|
| 28 | F  L +^WV(790.2,PCDTYPE,0):1 Q:$T | 
|---|
| 29 | F  S C=C+1 S R=P_N_"-"_C Q:'$D(^WV(790.1,"B",R)) | 
|---|
| 30 | S $P(^WV(790.2,PCDTYPE,0),U,6)=N_"-"_C | 
|---|
| 31 | L -^WV(790.2,PCDTYPE,0) | 
|---|
| 32 | Q R  ;R=RESULT(NEW ACCESSION#) | 
|---|
| 33 | ; | 
|---|
| 34 | MENUT(TITLE) ;EP | 
|---|
| 35 | ;---> DISPLAY MENU TITLE FROM WV MENU OPTIONS. | 
|---|
| 36 | ;---> REQUIRED VARIABLES: TITLE=TEXT TO BE CENTERED AND DISPLAYED. | 
|---|
| 37 | ;--->                     DUZ(2)=CURRENT LOCATION TO BE DISPLAYED. | 
|---|
| 38 | N WVTTAB,WVFAC | 
|---|
| 39 | S:'$D(TITLE) TITLE="* NO TITLE SUPPLIED *" | 
|---|
| 40 | S TITLE="*  "_TITLE_"  *" | 
|---|
| 41 | S WVTTAB=39-($L(TITLE)/2) | 
|---|
| 42 | W @IOF | 
|---|
| 43 | W !?3,"WOMEN'S HEALTH:" | 
|---|
| 44 | W ?WVTTAB,TITLE | 
|---|
| 45 | W ?60,$E($$INSTTX^WVUTL6(DUZ(2)),1,20) | 
|---|
| 46 | Q | 
|---|
| 47 | ; | 
|---|
| 48 | TITLE(TITLE) ;EP | 
|---|
| 49 | ;---> DISPLAY A TITLE. | 
|---|
| 50 | ;---> REQUIRED VARIABLES: TITLE=TEXT TO BE CENTERED AND DISPLAYED. | 
|---|
| 51 | N WVTTAB | 
|---|
| 52 | S:'$D(TITLE) TITLE="* NO TITLE SUPPLIED *" | 
|---|
| 53 | S TITLE="* * *  WOMEN'S HEALTH: "_TITLE_"  * * *" | 
|---|
| 54 | S WVTTAB=39-($L(TITLE)/2) | 
|---|
| 55 | W @IOF | 
|---|
| 56 | W !?WVTTAB,TITLE,!! | 
|---|
| 57 | Q | 
|---|
| 58 | ; | 
|---|
| 59 | CENTERT(TEXT) ;EP | 
|---|
| 60 | ;---> ADD LEADING SPACES TO CENTER TEXT. | 
|---|
| 61 | S:'$D(TEXT) TEXT="* NO TEXT SUPPLIED *" | 
|---|
| 62 | N I | 
|---|
| 63 | F I=1:1:(39-($L(TEXT)/2)) S TEXT=" "_TEXT | 
|---|
| 64 | Q | 
|---|
| 65 | ; | 
|---|
| 66 | UPPER() ;EP | 
|---|
| 67 | S X=$TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ") | 
|---|
| 68 | Q X | 
|---|
| 69 | ; | 
|---|
| 70 | COPYLET ;EP | 
|---|
| 71 | ;---> COPY TEXT OF GENERIC SAMPLE LETTER TO ONE OR MORE WV PURPOSES. | 
|---|
| 72 | ;---> EDIT NEXT LINE TO INCLUDE IENS OF WV PURPOSES TO BE CHANGED. | 
|---|
| 73 | ;F DA=15,16,18,19 D | 
|---|
| 74 | S DA=0 | 
|---|
| 75 | F  S DA=$O(^WV(790.404,DA)) Q:'DA  D | 
|---|
| 76 | .K ^WV(790.404,DA,1) | 
|---|
| 77 | .S N=0 | 
|---|
| 78 | .F  S N=$O(^WV(790.6,1,1,N)) Q:'N  D | 
|---|
| 79 | ..S ^WV(790.404,DA,1,N,0)=^WV(790.6,1,1,N,0) | 
|---|
| 80 | .S ^WV(790.404,DA,1,0)=^WV(790.6,1,1,0) | 
|---|
| 81 | Q | 
|---|
| 82 | ; | 
|---|
| 83 | ; | 
|---|
| 84 | UPXREF(X,WVGBL) ;EP | 
|---|
| 85 | ;---> SET UPPERCASE XREF FOR X.  CALLED FROM MUMPS XREFS ON MIXED CASE | 
|---|
| 86 | ;---> FIELDS WHERE AN ALL UPPERCASE LOOKUP IS NEEDED. | 
|---|
| 87 | ;---> REQUIRED VARIABLES: WVGBL=GLOBAL ROOT OF FILE, X=TEXT TO BE | 
|---|
| 88 | ;---> CROSSREFERENCED IN ALL UPPERCASE, DA=IEN. | 
|---|
| 89 | Q:'$D(WVGBL)!('$D(X)) | 
|---|
| 90 | N WVX S WVX=X,X=$$UPPER | 
|---|
| 91 | S @(WVGBL_"""U"",$E(X,1,30),DA)")="" | 
|---|
| 92 | S X=WVX K WVGBL | 
|---|
| 93 | Q | 
|---|
| 94 | ; | 
|---|
| 95 | KUPXREF(X,WVGBL) ;EP | 
|---|
| 96 | ;---> KILL UPPERCASE XREF FOR X.  CALLED FROM MUMPS XREFS ON MIXED CASE | 
|---|
| 97 | ;---> FIELDS WHERE AN ALL UPPERCASE LOOKUP IS NEEDED. | 
|---|
| 98 | ;---> REQUIRED VARIABLES: WVGBL=GLOBAL ROOT OF FILE, X=TEXT TO BE | 
|---|
| 99 | ;---> CROSSREFERENCED IN ALL UPPERCASE, DA=IEN. | 
|---|
| 100 | Q:'$D(WVGBL)!('$D(X)) | 
|---|
| 101 | N WVX S WVX=X,X=$$UPPER | 
|---|
| 102 | K @(WVGBL_"""U"",$E(X,1,30),DA)") | 
|---|
| 103 | S X=WVX K WVGBL | 
|---|
| 104 | Q | 
|---|
| 105 | ; | 
|---|
| 106 | AGENCY(SITE) ;EP | 
|---|
| 107 | ;---> RETURN TYPE OF AGENCY ("i"=IHS, "s"=STATE, "v"=VA, ETC.). | 
|---|
| 108 | ;---> REQUIRED VARIABLE: SITE=DUZ(2) | 
|---|
| 109 | ;---> IF SITE NOT PASSED OR PARAMETER NOT SET, IT DEFAULTS TO VA. | 
|---|
| 110 | Q:'$G(SITE) "v" | 
|---|
| 111 | Q:'$D(^WV(790.02,SITE,0)) "v" | 
|---|
| 112 | Q $P(^WV(790.02,SITE,0),U,15) | 
|---|
| 113 | ; | 
|---|
| 114 | PNLAB() ;EP | 
|---|
| 115 | ;---> RETURN TEXT FOR PATIENT NUMBER: "   SSN: ". | 
|---|
| 116 | Q "   SSN: " | 
|---|
| 117 | ; | 
|---|
| 118 | PNLB() ;EP | 
|---|
| 119 | ;---> RETURN UPPERCASE TEXT FOR PATIENT NUMBER, NO COLON/SPACES. | 
|---|
| 120 | Q "SSN" | 
|---|
| 121 | ; | 
|---|
| 122 | SLDT2(DATE) ;EP | 
|---|
| 123 | ;---> CONVERT FILEMAN INTERNAL DATE TO "SLASH" FORMAT: MM/DD/YY. | 
|---|
| 124 | ;---> DATE=DATE IN FILEMAN FORMAT. | 
|---|
| 125 | Q:'$G(DATE) "NO DATE" | 
|---|
| 126 | S DATE=$P(DATE,".") | 
|---|
| 127 | Q:$L(DATE)'=7 DATE | 
|---|
| 128 | Q:'$E(DATE,4,5) $E(DATE,1,3)+1700 | 
|---|
| 129 | Q:'$E(DATE,6,7) $E(DATE,4,5)_"/"_$E(DATE,2,3) | 
|---|
| 130 | Q $E(DATE,4,5)_"/"_$E(DATE,6,7)_"/"_$E(DATE,2,3) | 
|---|
| 131 | ; | 
|---|
| 132 | ; | 
|---|
| 133 | SLDT1(DATE) ;EP | 
|---|
| 134 | ;---> CONVERT FILEMAN INTERNAL DATE TO "SLASH" FORMAT: MM/DD/YY | 
|---|
| 135 | ;---> PLUS TIME. | 
|---|
| 136 | N Y | 
|---|
| 137 | Q:'$D(DATE) "unknown" | 
|---|
| 138 | S Y=DATE,DATE=$P(DATE,".") | 
|---|
| 139 | Q:'DATE "NO DATE" | 
|---|
| 140 | Q:$L(DATE)'=7 DATE | 
|---|
| 141 | Q:'$E(DATE,4,5) $E(DATE,1,3)+1700 | 
|---|
| 142 | Q:'$E(DATE,6,7) $E(DATE,4,5)_"/"_$E(DATE,2,3) | 
|---|
| 143 | D DD^%DT S:Y["@" Y=" @ "_$P($P(Y,"@",2),":",1,2) | 
|---|
| 144 | Q $E(DATE,4,5)_"/"_$E(DATE,6,7)_"/"_$E(DATE,2,3)_Y | 
|---|
| 145 | ; | 
|---|
| 146 | TXDT(DATE) ;EP | 
|---|
| 147 | ;---> CONVERT FILEMAN INTERNAL DATE TO "TEXT" FORMAT: MMM DD,YYYY. | 
|---|
| 148 | N Y | 
|---|
| 149 | Q:'$D(DATE) "UNKNOWN" | 
|---|
| 150 | S Y=DATE D DD^%DT | 
|---|
| 151 | I Y[", " S Y=$P(Y,", ")_","_$P(Y,", ",2) | 
|---|
| 152 | I Y["@" S Y=$P(Y,"@")_"  "_$P($P(Y,"@",2),":",1,2) | 
|---|
| 153 | Q Y | 
|---|