VistA-FOIAVistA/r/GEN_MED_OTHER-GMV/GMVDCCHK.m

123 lines
2.9 KiB
Mathematica

GMVDCCHK ;HOIFO/DAD,FT-VITALS COMPONENT: CHECK DATA VALUE ;9/29/00 09:15
;;5.0;GEN. MED. REC. - VITALS;;Oct 31, 2002
;
; This routine uses the following IAs:
; #10104 - ^XLFSTR calls (supported)
;
VALID(GMVALUE,GMVMSYS,GMVTYPE) ;
; *** Validate a vital measurement ***
; Input:
; GMVALUE = The vital measurement to be validated
; GMVMSYS = The measurement system the measurement is expressed in
; (C - US Customary, M - Metric)
; GMVTYPE = A vital type abbreviation
; Output:
; 0 - Invalid, 1 - Valid
S GMVTYPE=$$UP^XLFSTR(GMVTYPE)
I $T(@GMVTYPE)]"" D
. N GMVCODE,GMVOK
. S GMVCODE="S GMVOK=$$"_GMVTYPE_"(GMVALUE)"
. X GMVCODE I 'GMVOK K GMVALUE
. Q
E D
. K GMVALUE
. Q
Q ''$D(GMVALUE)
;
AG(X) ; ABDOMINAL GIRTH
S X=$$CNV^GMVDCCNV(X,GMVMSYS,"S",GMVTYPE)
K:X'=+X!(X>150)!(X<0)!(X?.E1".".N) X
Q ''$D(X)
;
AUD(X) ; AUDIOMETRY
N I,Y
K:X'?.N1"/".N1"/".N1"/".N1"/".N1"/".N1"/".N1"/".N1"/".N1"/".N1"/".N1"/".N1"/".N1"/".N1"/".N1"/".N1"/" X
I $D(X) F I=1:1:16 S Y=$P(Y,"/",I) I Y]"" I Y'=+Y!(Y>110)!(Y<0) K X Q
Q ''$D(X)
;
BP(X) ; BLOOD PRESSURE
N I,Y
K:(X'?1.3N1"/"1.3N1"/"1.3N)&(X'?1.3N1"/"1.3N)&(X'?1.3N) X
I $D(X) F I=1:1:$L(X,"/") S Y=$P(X,"/",I) I Y]"" I Y<0!(Y>300) K X Q
I $D(X),(X'?1.3N),$P(X,"/")'>$P(X,"/",$L(X,"/")) K X
Q ''$D(X)
;
CG(X) ; CIRCUMFERENCE/GIRTH
S X=$$CNV^GMVDCCNV(X,GMVMSYS,"S",GMVTYPE)
K:X'=+X!(X>200)!(X<0)!(X?.E1"."3.N) X
Q ''$D(X)
;
CVP(X) ; CENTRAL VENOUS PRESSURE
S X=$$CNV^GMVDCCNV(X,GMVMSYS,"S",GMVTYPE)
K:X<-13.6!(X>136)!(X?.E1"."2.N) X
Q ''$D(X)
;
FH(X) ; FUNDAL HEIGHT
S X=$$CNV^GMVDCCNV(X,GMVMSYS,"S",GMVTYPE)
K:X'=+X!(X>50)!(X<10)!(X?.E1".".N) X
Q ''$D(X)
;
FT(X) ; FETAL HEART TONES
K:X'=+X!(X>250)!(X<50)!(X?.E1".".N) X
Q ''$D(X)
;
HC(X) ; HEAD CIRCUMFERENCE
I GMVMSYS="M" D
. K:+X>76!(+X<26)!(X?.E1"."3.N) X
. Q
I GMVMSYS="C" D
. K:+X>30!(+X<10)!(X?.E1"."4.N) X
. I $D(X),X#1>0 K:"^.125^.25^.375^.5^.625^.75^.875^"'[(U_(X#1)_U) X
. Q
Q ''$D(X)
;
HE(X) ; HEARING
K:"^A^N^"'[(U_X_U) X
Q ''$D(X)
;
HT(X) ; HEIGHT
S X=$$CNV^GMVDCCNV(X,GMVMSYS,"S",GMVTYPE)
K:X'=+X!(X>100)!(X<1)!(X?.E1"."3.N) X
Q ''$D(X)
;
P(X) ; PULSE
K:+X'=X!(X>300)!(X<0)!(X?.E1".".N) X
Q ''$D(X)
;
PN(X) ; PAIN
K:"^0^1^2^3^4^5^6^7^8^9^10^99^"'[(U_X_U) X
Q ''$D(X)
;
PO2(X) ; PULSE OXIMETRY
K:X<0!(X>100)!(X?.E1".".N) X
Q ''$D(X)
;
R(X) ; RESPIRATION
K:X'=+X!(X>100)!(X<0)!(X?.E1".".N) X
Q ''$D(X)
;
T(X) ; TEMPERATURE
S X=$$CNV^GMVDCCNV(X,GMVMSYS,"S",GMVTYPE)
K:X'=+X!(X>120)!(X<45)!(X?.E1"."3.N) X
Q ''$D(X)
;
TON(X) ; TONOMETRY
N I,Y
K:(X'?1.2N1"/"1.2N)&(X'?1.2N1"/")&(X'?1"/"1.2N) X
I $D(X) F I=1,2 S Y=$P(X,"/",I) I Y]"" I Y'=+Y!(Y>80)!(Y<0) K X Q
Q ''$D(X)
;
VC(X) ; VISION CORRECTED
N I,Y
K:(X'?1.3N1"/"1.3N)&(X'?1.3N1"/")&(X'?1"/"1.3N) X
I $D(X) F I=1,2 S Y=$P(X,"/",I) I Y]"" I Y'=+Y!(Y>999)!(Y<10) K X Q
Q ''$D(X)
;
VU(X) ; VISION UNCORRECTED
Q $$VC(X)
;
WT(X) ; WEIGHT
S X=$$CNV^GMVDCCNV(X,GMVMSYS,"S",GMVTYPE)
K:X'=+X!(X>1500)!(X'>0)!(X?.E1"."3.N) X
Q ''$D(X)