| 1 | TIULO ; SLC/JER - Embedded Objects ;11/29/02
 | 
|---|
| 2 |  ;;1.0;TEXT INTEGRATION UTILITIES;**34,70,101,148,204**;Jun 20, 1997
 | 
|---|
| 3 | DEM(DFN,VADM) ; Calls DEM^VADPT
 | 
|---|
| 4 |  D DEM^VADPT
 | 
|---|
| 5 |  Q
 | 
|---|
| 6 | NAME(DFN) ; Patient NAME
 | 
|---|
| 7 |  I '$D(VADM(1)) D DEM(DFN,.VADM)
 | 
|---|
| 8 |  Q $S(VADM(1)]"":VADM(1),1:"NAME UNKNOWN")
 | 
|---|
| 9 | SSN(DFN) ; Patient SSN
 | 
|---|
| 10 |  I '$D(VADM(2)) D DEM(DFN,.VADM)
 | 
|---|
| 11 |  Q $S($P(VADM(2),U,2)]"":$P(VADM(2),U,2),1:"SSN UNKNOWN")
 | 
|---|
| 12 | AGE(DFN) ; Patient AGE
 | 
|---|
| 13 |  I '$D(VADM(4)) D DEM(DFN,.VADM)
 | 
|---|
| 14 |  Q $S(VADM(4)]"":VADM(4),1:"AGE UNKNOWN")
 | 
|---|
| 15 | DOB(DFN) ; Patient DATE OF BIRTH
 | 
|---|
| 16 |  I '$D(VADM(3)) D DEM(DFN,.VADM)
 | 
|---|
| 17 |  Q $S($P(VADM(3),U,2)]"":$P(VADM(3),U,2),1:"DOB UNKNOWN")
 | 
|---|
| 18 | DOD(DFN) ; Patient DATE OF DEATH
 | 
|---|
| 19 |  I '$D(VADM(6)) D DEM(DFN,.VADM)
 | 
|---|
| 20 |  Q $S($P(VADM(6),U,2)]"":$P(VADM(6),U,2),1:"DATE OF DEATH UNKNOWN")
 | 
|---|
| 21 | SEX(DFN) ; Patient SEX
 | 
|---|
| 22 |  I '$D(VADM(5)) D DEM(DFN,.VADM)
 | 
|---|
| 23 |  Q $S($P(VADM(5),U,2)]"":$P(VADM(5),U,2),1:"SEX UNKNOWN")
 | 
|---|
| 24 | RACE(DFN) ; Patient RACE TIU*148
 | 
|---|
| 25 |  N TIUI
 | 
|---|
| 26 |  I '$D(VADM(12)) D DEM(DFN,.VADM)
 | 
|---|
| 27 |  I +$G(VADM(12))=1 S X=$P($G(VADM(12,1)),U,2)
 | 
|---|
| 28 |  I +$G(VADM(12))>1 D
 | 
|---|
| 29 |  . S X=$P($G(VADM(12,1)),U,2) F TIUI=2:1:VADM(12) D
 | 
|---|
| 30 |  . . S X=X_", "_$P($G(VADM(12,TIUI)),U,2)
 | 
|---|
| 31 |  I +$G(VADM(12))=0,$P(VADM(8),U,2)="" S X="RACE UNKNOWN"
 | 
|---|
| 32 |  I +$G(VADM(12))=0,$P(VADM(8),U,2)]"" S X=$P(VADM(8),U,2)
 | 
|---|
| 33 |  Q X
 | 
|---|
| 34 | ETHNIC(DFN) ; Patient ETHNICITY  TIU*148
 | 
|---|
| 35 |  N TIUI
 | 
|---|
| 36 |  I '$D(VADM(11,1)) D DEM(DFN,.VADM)
 | 
|---|
| 37 |  I +$G(VADM(11))=0 S X="ETHNICITY UNKNOWN"
 | 
|---|
| 38 |  I +$G(VADM(11))=1 S X=$P($G(VADM(11,1)),U,2)
 | 
|---|
| 39 |  I +$G(VADM(11))>1 D
 | 
|---|
| 40 |  . S X=$P($G(VADM(11,1)),U,2) F TIUI=2:1:VADM(11) D
 | 
|---|
| 41 |  . . S X=X_", "_$P($G(VADM(11,TIUI)),U,2)
 | 
|---|
| 42 |  I +$G(VADM(11))=0 S X="ETHNICITY UNKNOWN"
 | 
|---|
| 43 |  Q X
 | 
|---|
| 44 | HEIGHT(DFN) ; Gets most recent Height from VITALS
 | 
|---|
| 45 |  Q $$DOVITALS(DFN,"HT")
 | 
|---|
| 46 | WEIGHT(DFN) ; Gets most recent Weight from VITALS
 | 
|---|
| 47 |  Q $$DOVITALS(DFN,"WT")
 | 
|---|
| 48 | TEMP(DFN) ; Gets most recent Temperature from VITALS
 | 
|---|
| 49 |  Q $$DOVITALS(DFN,"T")
 | 
|---|
| 50 | PULSE(DFN) ; Gets most recent Pulse from VITALS
 | 
|---|
| 51 |  Q $$DOVITALS(DFN,"P")
 | 
|---|
| 52 | RESP(DFN) ; Gets most recent Respiration from VITALS
 | 
|---|
| 53 |  Q $$DOVITALS(DFN,"R")
 | 
|---|
| 54 | BP(DFN) ; Gets most recent Blood Pressure from VITALS
 | 
|---|
| 55 |  Q $$DOVITALS(DFN,"BP")
 | 
|---|
| 56 | PAIN(DFN) ; Gets most recent Pain score from VITALS
 | 
|---|
| 57 |  Q $$DOVITALS(DFN,"PN")
 | 
|---|
| 58 | DOVITALS(DFN,TIUVITC) ; INTERNAL ROUTINE TO GET SPECIFIED VITALS (**34**)
 | 
|---|
| 59 |  N TIUVIT,TIUVT,TIUVDT,TIUVDA,TIUY,VDT,TIUI,TIUCWRAP,TIUMAXW
 | 
|---|
| 60 |  N TIUVCNT,TIUVCNT2,TIUVDONE,TIUVDATE,TIUY1,TIUVTEMP,CONV
 | 
|---|
| 61 |  D VITALS(.TIUVIT,DFN,TIUVITC)
 | 
|---|
| 62 |  S (TIUVDT,TIUVDONE,TIUVCNT)=0
 | 
|---|
| 63 |  F  S TIUVDT=$O(TIUVIT(TIUVITC,TIUVDT)) Q:+TIUVDT'>0!TIUVDONE  D
 | 
|---|
| 64 |  . S TIUVDA=0
 | 
|---|
| 65 |  . F  S TIUVDA=$O(TIUVIT(TIUVITC,TIUVDT,TIUVDA)) Q:+TIUVDA'>0!TIUVDONE  D
 | 
|---|
| 66 |  . . I $D(TIUVDATE),TIUVDATE'=TIUVDT S TIUVDONE=1
 | 
|---|
| 67 |  . . E  D
 | 
|---|
| 68 |  . . . S TIUVDATE=TIUVDT,TIUVCNT=TIUVCNT+1
 | 
|---|
| 69 |  . . . S TIUVTEMP=$G(TIUVIT(TIUVITC,TIUVDT,TIUVDA))
 | 
|---|
| 70 |  . . . S VDT=$$DATE^TIULS($P(TIUVTEMP,U,1),"MM/DD/CCYY HR:MIN")
 | 
|---|
| 71 |  . . . S TIUY=$P(TIUVTEMP,U,8)
 | 
|---|
| 72 |  . . . I TIUVITC="WT" D
 | 
|---|
| 73 |  . . . . Q:+TIUY'>0
 | 
|---|
| 74 |  . . . . S CONV=$J((+TIUY/2.2),3,1)
 | 
|---|
| 75 |  . . . . S TIUY=TIUY_" lb ["_CONV_" kg]"
 | 
|---|
| 76 |  . . . I TIUVITC="HT" D
 | 
|---|
| 77 |  . . . . Q:+TIUY'>0
 | 
|---|
| 78 |  . . . . S CONV=$J((+TIUY*2.54),3,1)
 | 
|---|
| 79 |  . . . . S TIUY=TIUY_" in ["_CONV_" cm]"
 | 
|---|
| 80 |  . . . I TIUVITC="T" D
 | 
|---|
| 81 |  . . . . Q:+TIUY'>0
 | 
|---|
| 82 |  . . . . S CONV=+TIUY-32
 | 
|---|
| 83 |  . . . . S CONV=$J((CONV*(5/9)),3,1)
 | 
|---|
| 84 |  . . . . S TIUY=TIUY_" F ["_CONV_" C]"
 | 
|---|
| 85 |  . . . S TIUY=TIUY_" ("_VDT
 | 
|---|
| 86 |  . . . S TIUCWRAP=$L(TIUY)+17
 | 
|---|
| 87 |  . . . I TIUVCNT=1 S TIUY1=TIUY_")",TIUMAXW=59
 | 
|---|
| 88 |  . . . E  S TIUY="               "_TIUY,TIUMAXW=74
 | 
|---|
| 89 |  . . . S TIUVTEMP=$P(TIUVTEMP,U,17)
 | 
|---|
| 90 |  . . . I $L(TIUVTEMP)>0  D
 | 
|---|
| 91 |  . . . . S TIUVTEMP=", "_TIUVTEMP
 | 
|---|
| 92 |  . . . . F  S TIUI=$F(TIUVTEMP,";") Q:TIUI'>0  D
 | 
|---|
| 93 |  . . . . . S TIUVTEMP=$E(TIUVTEMP,1,TIUI-2)_", "_$E(TIUVTEMP,TIUI,999)
 | 
|---|
| 94 |  . . . S TIUY=TIUY_TIUVTEMP_")"
 | 
|---|
| 95 |  . . . I $L(TIUY)<TIUMAXW S TIUVITMP(TIUVCNT,0)=TIUY
 | 
|---|
| 96 |  . . . E  D  ; Wrap the line if it's too long
 | 
|---|
| 97 |  . . . . S TIUVCNT2=0,TIUVTEMP="",$P(TIUVTEMP," ",TIUCWRAP)=" "
 | 
|---|
| 98 |  . . . . F  Q:$L(TIUY)'>0  D
 | 
|---|
| 99 |  . . . . . F TIUI=TIUMAXW:-1:1  Q:$E(TIUY,TIUI,TIUI+1)=", "
 | 
|---|
| 100 |  . . . . . I TIUI>1 D
 | 
|---|
| 101 |  . . . . . . S TIUVITMP(TIUVCNT+TIUVCNT2,0)=$E(TIUY,1,TIUI)
 | 
|---|
| 102 |  . . . . . . S TIUVCNT2=TIUVCNT2+.01
 | 
|---|
| 103 |  . . . . . . S TIUY=TIUVTEMP_$E(TIUY,TIUI+2,999)
 | 
|---|
| 104 |  . . . . . E  D
 | 
|---|
| 105 |  . . . . . . S TIUVITMP(TIUVCNT+TIUVCNT2,0)=TIUY
 | 
|---|
| 106 |  . . . . . . S TIUY=""
 | 
|---|
| 107 |  I TIUVCNT<2 D
 | 
|---|
| 108 |  . S TIUY=$G(TIUY1)
 | 
|---|
| 109 |  . K TIUVITMP
 | 
|---|
| 110 |  E  S TIUY="~@TIUVITMP"
 | 
|---|
| 111 |  Q $G(TIUY)
 | 
|---|
| 112 | VITALS(TIUY,DFN,GMRVSTR,TIUEDT,TIULDT,TIUOCC) ; Vital measurements
 | 
|---|
| 113 |  N TIUVT,TIUVDT,TIUVDA K ^UTILITY($J,"GMRVD")
 | 
|---|
| 114 |  S GMRVSTR(0)=$G(TIUEDT)_U_$G(TIULDT)_U_$G(TIUOCC,1)_"^0"
 | 
|---|
| 115 |  I $L($T(EN1^GMRVUT0)) D EN1^GMRVUT0
 | 
|---|
| 116 |  I +$D(^UTILITY($J,"GMRVD")) D
 | 
|---|
| 117 |  . S TIUVT=""
 | 
|---|
| 118 |  . F  S TIUVT=$O(^UTILITY($J,"GMRVD",TIUVT)) Q:TIUVT']""  D
 | 
|---|
| 119 |  . . S TIUVDT=0
 | 
|---|
| 120 |  . . F  S TIUVDT=$O(^UTILITY($J,"GMRVD",TIUVT,TIUVDT)) Q:+TIUVDT'>0  D
 | 
|---|
| 121 |  . . . S TIUVDA=0
 | 
|---|
| 122 |  . . . F  S TIUVDA=$O(^UTILITY($J,"GMRVD",TIUVT,TIUVDT,TIUVDA)) Q:+TIUVDA'>0  D
 | 
|---|
| 123 |  . . . . S TIUY(TIUVT,TIUVDT,TIUVDA)=$G(^UTILITY($J,"GMRVD",TIUVT,TIUVDT,TIUVDA))
 | 
|---|
| 124 |  K ^UTILITY($J,"GMRVD")
 | 
|---|
| 125 |  Q
 | 
|---|
| 126 | LIPIDS(TIUY,DFN,TIUEDT,TIULDT) ; Get LIPID profile
 | 
|---|
| 127 |  N TIUTST,TIUI,TIURY,TIUDT,TIULDT
 | 
|---|
| 128 |  S TIUTST=$O(^LAB(60,"B","LIPID PROFILE",0))
 | 
|---|
| 129 |  I '+$G(TIUTST) Q
 | 
|---|
| 130 |  D TEST^LR7OR2(.TIUY,DFN,"",$G(TIUEDT),$G(TIULDT),"",TIUTST)
 | 
|---|
| 131 |  I '$D(TIUY)!($G(TIUY(1))="No Lab Data") Q
 | 
|---|
| 132 |  S TIUI=0 F  S TIUI=$O(@TIUY@(TIUI)) Q:+TIUI'>0  D
 | 
|---|
| 133 |  . S TIUTST=$$MAPPER($P(@TIUY@(TIUI),U,17)),TIUDT=+@TIUY@(TIUI)
 | 
|---|
| 134 |  . S:TIUDT'=+$G(TIULDT) TIURY("BASELINE LIPID PROFILES",TIUDT)=$$DATE^TIULS(TIUDT,"MM/DD/YY")
 | 
|---|
| 135 |  . S TIURY(TIUTST,TIUDT)=$P(@TIUY@(TIUI),U,4)
 | 
|---|
| 136 |  F TIUI="CHYLOMI","TURBID","VLDL" K TIURY(TIUI)
 | 
|---|
| 137 |  K @TIUY
 | 
|---|
| 138 |  I $D(TIURY) M TIUY=TIURY
 | 
|---|
| 139 |  Q
 | 
|---|
| 140 | MAPPER(TIUX,TIUI) ; Remap test names
 | 
|---|
| 141 |  N TIUNM,Y S TIUNM("CHOL","TOTAL CHOLESTEROL")=""
 | 
|---|
| 142 |  S (TIUNM("HDL","HDL CHOLESTEROL"),TIUNM("LDL","LDL CHOLESTEROL"))=""
 | 
|---|
| 143 |  S TIUNM("TRIGLYC","TRIGLYCERIDES")=""
 | 
|---|
| 144 |  S Y=$O(TIUNM(TIUX,"")) I Y']"" S Y=TIUX
 | 
|---|
| 145 |  Q Y
 | 
|---|
| 146 | TSHT4(DFN,TIUEDT,TIULDT) ; Get TSH/T4
 | 
|---|
| 147 |  N TIUY,TIUTSH,TIUT4 S TIUTSH=+$O(^LAB(60,"B","TSH",0))
 | 
|---|
| 148 |  S TIUT4=+$O(^LAB(60,"B","T-4",0))
 | 
|---|
| 149 |  I '+$G(TIUTSH)!'+$G(TIUT4) G TSHX
 | 
|---|
| 150 |  D TEST^LR7OR2(.TIUY,DFN,"",$G(TIUEDT),$G(TIULDT),"",TIUTSH)
 | 
|---|
| 151 |  S TIUTSH=$S($D(TIUY)#2:$P($G(@TIUY@(1)),U,4),1:"____")
 | 
|---|
| 152 |  I $D(TIUY)#2 K @TIUY
 | 
|---|
| 153 |  D TEST^LR7OR2(.TIUY,DFN,"",$G(TIUEDT),$G(TIULDT),"",TIUT4)
 | 
|---|
| 154 |  S TIUT4=$S($D(TIUY)#2:$P($G(@TIUY@(1)),U,4),1:"____")
 | 
|---|
| 155 |  I $D(TIUY)#2 K @TIUY
 | 
|---|
| 156 |  S TIUY=TIUTSH_"/"_TIUT4
 | 
|---|
| 157 | TSHX Q $G(TIUY)
 | 
|---|
| 158 | SGOT(DFN,TIUEDT,TIULDT) ; Get SGOT
 | 
|---|
| 159 |  N TIUY,TIUSGOT S TIUSGOT=+$O(^LAB(60,"B","SGOT",0))
 | 
|---|
| 160 |  I '+$G(TIUSGOT) Q
 | 
|---|
| 161 |  D TEST^LR7OR2(.TIUY,DFN,"",$G(TIUEDT),$G(TIULDT),"",TIUSGOT)
 | 
|---|
| 162 |  S TIUSGOT=$S($D(TIUY)#2:$P($G(@TIUY@(1)),U,4),1:"____")
 | 
|---|
| 163 |  I $D(TIUY)#2 K @TIUY
 | 
|---|
| 164 | SGOTX Q $G(TIUSGOT)
 | 
|---|
| 165 | HGBA1C(DFN,TIUEDT,TIULDT) ; Get Hemoglobin A1C
 | 
|---|
| 166 |  N TIUY,TIUHGB S TIUHGB=+$O(^LAB(60,"B","HEMOGLOBIN A1C",0))
 | 
|---|
| 167 |  I '+$G(TIUHGB) G HGBX
 | 
|---|
| 168 |  D TEST^LR7OR2(.TIUY,DFN,"",$G(TIUEDT),$G(TIULDT),"",TIUHGB)
 | 
|---|
| 169 |  S TIUHGB=$S($D(TIUY)#2:$P($G(@TIUY@(1)),U,4),1:"____")
 | 
|---|
| 170 |  I $D(TIUY)#2 K @TIUY
 | 
|---|
| 171 | HGBX Q $G(TIUHGB)
 | 
|---|
| 172 | URICACID(DFN,TIUEDT,TIULDT) ; Get Uric Acid
 | 
|---|
| 173 |  N TIUY,TIUURIC S TIUURIC=+$O(^LAB(60,"B","URIC ACID",0))
 | 
|---|
| 174 |  I '+$G(TIUURIC) G URICX
 | 
|---|
| 175 |  D TEST^LR7OR2(.TIUY,DFN,"",$G(TIUEDT),$G(TIULDT),"",TIUURIC)
 | 
|---|
| 176 |  S TIUURIC=$S($D(TIUY)#2:$P($G(@TIUY@(1)),U,4),1:"____")
 | 
|---|
| 177 |  I $D(TIUY)#2 K @TIUY
 | 
|---|
| 178 | URICX Q $G(TIUURIC)
 | 
|---|
| 179 | FBG(DFN,TIUEDT,TIULDT) ; Get FBG
 | 
|---|
| 180 |  N TIUY,TIUFBG S TIUFBG=+$O(^LAB(60,"B","FBS",0))
 | 
|---|
| 181 |  I '+$G(TIUFBG) G FBGX
 | 
|---|
| 182 |  D TEST^LR7OR2(.TIUY,DFN,"",$G(TIUEDT),$G(TIULDT),"",TIUFBG)
 | 
|---|
| 183 |  S TIUFBG=$S($D(TIUY)#2:$P($G(@TIUY@(1)),U,4),1:"____")
 | 
|---|
| 184 |  I $D(TIUY)#2 K @TIUY
 | 
|---|
| 185 | FBGX Q $G(TIUFBG)
 | 
|---|
| 186 | ADM(DFN) ;Current Admission Date/Time
 | 
|---|
| 187 |  N VAIN,J
 | 
|---|
| 188 |  D INP^VADPT
 | 
|---|
| 189 |  S J=$P(VAIN(7),U,2),J(1)=$P(J,"@",1),J(2)=$P(J,"@",2),J(3)=$E(J(2),1,5),Y=J(1)_" "_J(3) K J
 | 
|---|
| 190 | ADMX Q Y
 | 
|---|
| 191 | TODAY() ;Today's Date
 | 
|---|
| 192 |  N X,Y
 | 
|---|
| 193 |  S X=$G(DT) I X'="" S Y=X D DD^%DT
 | 
|---|
| 194 | TODAYX Q Y
 | 
|---|
| 195 | NOW() ;Current Date/Time
 | 
|---|
| 196 | NOWX Q $$DATE^TIULS($$NOW^TIULC,"AMTH DD, CCYY HR:MIN")
 | 
|---|