GMVDCVAL ;HOIFO/DAD,FT-VITALS COMPONENT: VALIDATE DATA ;9/29/00 09:18
;;5.0;GEN. MED. REC. - VITALS;;Oct 31, 2002
;
; This routine uses the following IAs:
; #10035 - FILE 2 references (supported)
; #10040 - FILE 44 references (supported)
; #10060 - FILE 200 fields (supported)
; #10104 - ^XLFSTR calls (supported)
;
EN1(RESULT,GMVDATA) ;
; *** Validates vitals data ***
N GMV,GMVD0,GMVID0,GMVIFIND,GMVIHOLD,GMVILAST,GMVINUM,GMVIXFRM
N GMVMSG,GMVOK,GMVQARRY,GMVQD0,GMVQFIND,GMVQHOLD,GMVQNUM,GMVRD0
N GMVRET,GMVRFIND,GMVRHOLD,GMVRNUM,GMVSYSBP,GMVVABBR,GMVVD0
N GMVVFIND,GMVVHOLD,GMVVLAST,GMVVMEAS,GMVVNUM
D EXIT
F GMV=1:1 S GMVSYSBP=$P($T(BPSYSQ+GMV),";;",2) Q:GMVSYSBP="" D
. S GMVD0=0
. F S GMVD0=$O(^GMRD(120.52,"B",GMVSYSBP,GMVD0)) Q:GMVD0'>0 D
.. I GMVSYSBP=$P($G(^GMRD(120.52,GMVD0,0)),U) S GMVSYSBP(GMVD0)=""
.. Q
. Q
I $O(@GMVDATA@(""))]"" D
. ; *** Vital measurement data validation ***
. I ($O(@GMVDATA@("V",0))>0)!($O(@GMVDATA@("Q",0))>0) D VITMEA
. ; *** Entered in Error data validation ***
. I ($O(@GMVDATA@("I",0))>0)!($O(@GMVDATA@("R",0))>0) D ENTERR
. Q
E D
. D MSG("ERROR: No data to validate/save")
. Q
I $G(RESULT(0))="OK" D MSG("OK: Data validated")
;
EXIT ; *** Clean-up ***
K ^TMP($J,"GMVXREF")
Q
;
VITMEA ; *** Validate vital measurement data ***
I $$FIND1^DIC(2,"","","`"_GMVDFN)'=GMVDFN D
. D MSG("ERROR: Missing or invalid Patient parameter")
. Q
K GMVRET D DT^DILF("RSTX",GMVDTDUN,.GMVRET,"-NOW")
I $G(GMVRET,-1)<0 D
. D MSG("ERROR: Missing or invalid Date/Time Vitals Taken parameter")
. Q
I $$FIND1^DIC(44,"","","`"_GMVHOSPL)'=GMVHOSPL D
. D MSG("ERROR: Missing or invalid Hospital Location parameter")
. Q
K GMVRET D DT^DILF("RSTX",GMVDTENT,.GMVRET,"-NOW")
I $G(GMVRET,-1)<0 D
. D MSG("ERROR: Missing or invalid Date/Time Vitals Entered parameter")
. Q
I $$FIND1^DIC(200,"","","`"_GMVENTBY)'=GMVENTBY D
. D MSG("ERROR: Missing or invalid Entered By parameter")
. Q
I "^C^M^"'[(U_$G(GMVMSYS)_U) D
. D MSG("ERROR: Missing or invalid Measurement System")
. Q
S (GMVVNUM,GMVVLAST,GMVVFIND)=0
F S GMVVNUM=$O(@GMVDATA@("V",GMVVNUM)) Q:GMVVNUM'>0 D
. S GMVVLAST=GMVVNUM
. S GMVSYSBP=0,GMVQARRY=U
. S (GMV,GMVVHOLD)=$G(@GMVDATA@("V",GMVVNUM))
. S GMVVD0=$$VITIEN^GMVDCUTL($P(GMV,U))
. S (GMVVMEAS,GMVVMEAS(1))=$P(GMV,U,2)
. I GMVVD0'>0 D
.. D MSG("ERROR: Missing or invalid Vital Type (V^"_GMVVNUM_"="_GMVVHOLD_")")
.. Q
. E D
.. S GMVVFIND=1
.. S GMVVABBR=$P($G(^GMRD(120.51,+GMVVD0,0)),U,2)
.. S $P(@GMVDATA@("V",GMVVNUM),U,1)=GMVVD0
.. D BP^GMVDCVAM,PO2^GMVDCVAM
.. I $$OMIT^GMVDCVAM(GMVVMEAS) D
... S GMVVMEAS=$$UP^XLFSTR($E(GMVVMEAS))_$$LOW^XLFSTR($E(GMVVMEAS,2,$L(GMVVMEAS)))
... I $O(@GMVDATA@("Q",GMVVNUM,0))>0 D
.... D MSG("ERROR: Qualifiers not allowed if vital measurement is omitted (V^"_GMVVNUM_"="_GMVVHOLD_")")
.... Q
... Q
.. S GMVOK=1
.. I '$$VALID^GMVDCCHK($P(GMVVMEAS,";"),GMVMSYS,GMVVABBR) S GMVOK=0
.. I GMVOK,GMVVMEAS("PO2")]"" D
... S GMVIXFRM=$$GET1^DID(120.5,1.4,"","INPUT TRANSFORM")
... I GMVIXFRM]"" S X=GMVVMEAS("PO2") X GMVIXFRM I '$D(X) S GMVOK=0
... Q
.. I 'GMVOK S GMVOK=$$OMIT^GMVDCVAM($P(GMVVMEAS,";"))
.. I 'GMVOK D
... D MSG("ERROR: Invalid Vital Measurement (V^"_GMVVNUM_"="_GMVVHOLD_")")
... Q
.. S GMVVMEAS=$$CNV^GMVDCCNV($P(GMVVMEAS,";"),GMVMSYS,"S",GMVVABBR)
.. S $P(@GMVDATA@("V",GMVVNUM),U,2)=GMVVMEAS_";"_GMVVMEAS("PO2")
.. S (GMVQNUM,GMVQFIND)=0
.. F S GMVQNUM=$O(@GMVDATA@("Q",GMVVNUM,GMVQNUM)) Q:GMVQNUM'>0 D
... S (GMV,GMVQHOLD)=$G(@GMVDATA@("Q",GMVVNUM,GMVQNUM))
... S GMVQD0=$$QUAIEN^GMVDCUTL(GMV)
... I GMVQD0>0,$O(^GMRD(120.52,"C",GMVVD0,GMVQD0,0))'>0 S GMVQD0=-2
... I GMVQD0'>0 D
.... I GMVQD0=-2 D MSG("ERROR: Invalid Qualifier for Vital Type (Q^"_GMVVNUM_U_GMVQNUM_"="_GMVQHOLD_")")
.... I GMVQD0'=-2 D MSG("ERROR: Missing or invalid Vitals Qualifier (Q^"_GMVVNUM_U_GMVQNUM_"="_GMVQHOLD_")")
.... Q
... E D
.... S GMVQFIND=1
.... S $P(@GMVDATA@("Q",GMVVNUM,GMVQNUM),U,1)=GMVQD0
.... S GMVQARRY=GMVQARRY_GMVQD0_U
.... I GMVSYSBP,$D(GMVSYSBP(GMVQD0))#2 S GMVSYSBP=0
.... Q
... Q
.. I GMVSYSBP D
... D MSG("ERROR: Systolic only BPs must have a Doppler or Palpated qualifier (V^"_GMVVNUM_"="_GMVVHOLD_")")
... Q
.. I 'GMVQFIND,$O(^GMRD(120.52,"C",GMVVD0,0))>0,'$$OMIT^GMVDCVAM(GMVVMEAS) D
... D MSG("WARNING: No valid Qualifiers found (Q^"_GMVVNUM_"^##=Qualifier)")
... Q
.. D DUPCHK^GMVDCVAM
.. Q
. Q
I 'GMVVFIND D
. D MSG("ERROR: No valid Vital Types / Measurements found (V^##=VitalType^Measurement)")
. Q
I $O(@GMVDATA@("Q",GMVVLAST)) D
. S GMV=$S(GMVVFIND'>0:"ERROR",1:"WARNING")
. D MSG(GMV_": There are more Qualifiers than there are VitalTypes / Measurements")
. Q
Q
;
ENTERR ; *** Validate Entered in Error data ***
I $$FIND1^DIC(200,"","","`"_GMVERRBY)'=GMVERRBY D
. D MSG("ERROR: Missing or invalid Entered in Error By parameter")
. Q
S (GMVINUM,GMVILAST,GMVIFIND)=0
F S GMVINUM=$O(@GMVDATA@("I",GMVINUM)) Q:GMVINUM'>0 D
. S GMVILAST=GMVINUM
. S (GMVID0,GMVIHOLD)=$G(@GMVDATA@("I",GMVINUM))
. I $$FIND1^DIC(120.5,"","","`"_GMVID0)'=GMVID0 D
.. D MSG("ERROR: Entered in Error IENS not found (I^"_GMVINUM_"="_GMVIHOLD_")")
.. Q
. E D
.. I $P($G(^GMR(120.5,GMVID0,2)),U) D
... D MSG("ERROR: Vitals record already marked Entered in Error (I^"_GMVINUM_"="_GMVIHOLD_")")
... Q
.. S GMVIFIND=1
.. S (GMVRNUM,GMVRFIND)=0
.. F S GMVRNUM=$O(@GMVDATA@("R",GMVINUM,GMVRNUM)) Q:GMVRNUM'>0 D
... S (GMV,GMVRHOLD)=$G(@GMVDATA@("R",GMVINUM,GMVRNUM))
... S GMVRD0=$$REAIEN^GMVDCUTL(GMV)
... I GMVRD0'>0 D
.... D MSG("ERROR: Missing or invalid Entered in Error Reason (R^"_GMVINUM_U_GMVRNUM_"="_GMVRHOLD_")")
.... Q
... E D
.... S GMVRFIND=1
.... S @GMVDATA@("R",GMVINUM,GMVRNUM)=GMVRD0
.... Q
... Q
.. I 'GMVRFIND D
... D MSG("ERROR: No valid Entered in Error Reasons found (R^"_GMVINUM_"^##=EnteredInErrorReason)")
... Q
.. Q
. Q
I 'GMVIFIND D
. D MSG("ERROR: No valid Entered in Error IENS found (I^##=EnteredInError)")
. Q
I $O(@GMVDATA@("R",GMVILAST)) D
. S GMV=$S(GMVIFIND'>0:"ERROR",1:"WARNING")
. D MSG(GMV_": There are more Entered in Error Reasons than there are Entered in Error IENS")
. Q
Q
;
MSG(X) ; *** Add a line to the message array ***
S (GMVMSG,RESULT(-1))=1+$G(RESULT(-1),0)
S RESULT(GMVMSG)=X
I $P(X,":")="ERROR" S RESULT(0)="ERROR"
Q
;
BPSYSQ ;;Qualifiers that must be present if only systolic BP is present
;;DOPPLER
;;PALPATED
;;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HGMVDCVAL 6618 printed Dec 13, 2024@01:58:36 Page 2
GMVDCVAL ;HOIFO/DAD,FT-VITALS COMPONENT: VALIDATE DATA ;9/29/00 09:18
+1 ;;5.0;GEN. MED. REC. - VITALS;;Oct 31, 2002
+2 ;
+3 ; This routine uses the following IAs:
+4 ; #10035 - FILE 2 references (supported)
+5 ; #10040 - FILE 44 references (supported)
+6 ; #10060 - FILE 200 fields (supported)
+7 ; #10104 - ^XLFSTR calls (supported)
+8 ;
EN1(RESULT,GMVDATA) ;
+1 ; *** Validates vitals data ***
+2 NEW GMV,GMVD0,GMVID0,GMVIFIND,GMVIHOLD,GMVILAST,GMVINUM,GMVIXFRM
+3 NEW GMVMSG,GMVOK,GMVQARRY,GMVQD0,GMVQFIND,GMVQHOLD,GMVQNUM,GMVRD0
+4 NEW GMVRET,GMVRFIND,GMVRHOLD,GMVRNUM,GMVSYSBP,GMVVABBR,GMVVD0
+5 NEW GMVVFIND,GMVVHOLD,GMVVLAST,GMVVMEAS,GMVVNUM
+6 DO EXIT
+7 FOR GMV=1:1
SET GMVSYSBP=$PIECE($TEXT(BPSYSQ+GMV),";;",2)
if GMVSYSBP=""
QUIT
Begin DoDot:1
+8 SET GMVD0=0
+9 FOR
SET GMVD0=$ORDER(^GMRD(120.52,"B",GMVSYSBP,GMVD0))
if GMVD0'>0
QUIT
Begin DoDot:2
+10 IF GMVSYSBP=$PIECE($GET(^GMRD(120.52,GMVD0,0)),U)
SET GMVSYSBP(GMVD0)=""
+11 QUIT
End DoDot:2
+12 QUIT
End DoDot:1
+13 IF $ORDER(@GMVDATA@(""))]""
Begin DoDot:1
+14 ; *** Vital measurement data validation ***
+15 IF ($ORDER(@GMVDATA@("V",0))>0)!($ORDER(@GMVDATA@("Q",0))>0)
DO VITMEA
+16 ; *** Entered in Error data validation ***
+17 IF ($ORDER(@GMVDATA@("I",0))>0)!($ORDER(@GMVDATA@("R",0))>0)
DO ENTERR
+18 QUIT
End DoDot:1
+19 IF '$TEST
Begin DoDot:1
+20 DO MSG("ERROR: No data to validate/save")
+21 QUIT
End DoDot:1
+22 IF $GET(RESULT(0))="OK"
DO MSG("OK: Data validated")
+23 ;
EXIT ; *** Clean-up ***
+1 KILL ^TMP($JOB,"GMVXREF")
+2 QUIT
+3 ;
VITMEA ; *** Validate vital measurement data ***
+1 IF $$FIND1^DIC(2,"","","`"_GMVDFN)'=GMVDFN
Begin DoDot:1
+2 DO MSG("ERROR: Missing or invalid Patient parameter")
+3 QUIT
End DoDot:1
+4 KILL GMVRET
DO DT^DILF("RSTX",GMVDTDUN,.GMVRET,"-NOW")
+5 IF $GET(GMVRET,-1)<0
Begin DoDot:1
+6 DO MSG("ERROR: Missing or invalid Date/Time Vitals Taken parameter")
+7 QUIT
End DoDot:1
+8 IF $$FIND1^DIC(44,"","","`"_GMVHOSPL)'=GMVHOSPL
Begin DoDot:1
+9 DO MSG("ERROR: Missing or invalid Hospital Location parameter")
+10 QUIT
End DoDot:1
+11 KILL GMVRET
DO DT^DILF("RSTX",GMVDTENT,.GMVRET,"-NOW")
+12 IF $GET(GMVRET,-1)<0
Begin DoDot:1
+13 DO MSG("ERROR: Missing or invalid Date/Time Vitals Entered parameter")
+14 QUIT
End DoDot:1
+15 IF $$FIND1^DIC(200,"","","`"_GMVENTBY)'=GMVENTBY
Begin DoDot:1
+16 DO MSG("ERROR: Missing or invalid Entered By parameter")
+17 QUIT
End DoDot:1
+18 IF "^C^M^"'[(U_$GET(GMVMSYS)_U)
Begin DoDot:1
+19 DO MSG("ERROR: Missing or invalid Measurement System")
+20 QUIT
End DoDot:1
+21 SET (GMVVNUM,GMVVLAST,GMVVFIND)=0
+22 FOR
SET GMVVNUM=$ORDER(@GMVDATA@("V",GMVVNUM))
if GMVVNUM'>0
QUIT
Begin DoDot:1
+23 SET GMVVLAST=GMVVNUM
+24 SET GMVSYSBP=0
SET GMVQARRY=U
+25 SET (GMV,GMVVHOLD)=$GET(@GMVDATA@("V",GMVVNUM))
+26 SET GMVVD0=$$VITIEN^GMVDCUTL($PIECE(GMV,U))
+27 SET (GMVVMEAS,GMVVMEAS(1))=$PIECE(GMV,U,2)
+28 IF GMVVD0'>0
Begin DoDot:2
+29 DO MSG("ERROR: Missing or invalid Vital Type (V^"_GMVVNUM_"="_GMVVHOLD_")")
+30 QUIT
End DoDot:2
+31 IF '$TEST
Begin DoDot:2
+32 SET GMVVFIND=1
+33 SET GMVVABBR=$PIECE($GET(^GMRD(120.51,+GMVVD0,0)),U,2)
+34 SET $PIECE(@GMVDATA@("V",GMVVNUM),U,1)=GMVVD0
+35 DO BP^GMVDCVAM
DO PO2^GMVDCVAM
+36 IF $$OMIT^GMVDCVAM(GMVVMEAS)
Begin DoDot:3
+37 SET GMVVMEAS=$$UP^XLFSTR($EXTRACT(GMVVMEAS))_$$LOW^XLFSTR($EXTRACT(GMVVMEAS,2,$LENGTH(GMVVMEAS)))
+38 IF $ORDER(@GMVDATA@("Q",GMVVNUM,0))>0
Begin DoDot:4
+39 DO MSG("ERROR: Qualifiers not allowed if vital measurement is omitted (V^"_GMVVNUM_"="_GMVVHOLD_")")
+40 QUIT
End DoDot:4
+41 QUIT
End DoDot:3
+42 SET GMVOK=1
+43 IF '$$VALID^GMVDCCHK($PIECE(GMVVMEAS,";"),GMVMSYS,GMVVABBR)
SET GMVOK=0
+44 IF GMVOK
IF GMVVMEAS("PO2")]""
Begin DoDot:3
+45 SET GMVIXFRM=$$GET1^DID(120.5,1.4,"","INPUT TRANSFORM")
+46 IF GMVIXFRM]""
SET X=GMVVMEAS("PO2")
XECUTE GMVIXFRM
IF '$DATA(X)
SET GMVOK=0
+47 QUIT
End DoDot:3
+48 IF 'GMVOK
SET GMVOK=$$OMIT^GMVDCVAM($PIECE(GMVVMEAS,";"))
+49 IF 'GMVOK
Begin DoDot:3
+50 DO MSG("ERROR: Invalid Vital Measurement (V^"_GMVVNUM_"="_GMVVHOLD_")")
+51 QUIT
End DoDot:3
+52 SET GMVVMEAS=$$CNV^GMVDCCNV($PIECE(GMVVMEAS,";"),GMVMSYS,"S",GMVVABBR)
+53 SET $PIECE(@GMVDATA@("V",GMVVNUM),U,2)=GMVVMEAS_";"_GMVVMEAS("PO2")
+54 SET (GMVQNUM,GMVQFIND)=0
+55 FOR
SET GMVQNUM=$ORDER(@GMVDATA@("Q",GMVVNUM,GMVQNUM))
if GMVQNUM'>0
QUIT
Begin DoDot:3
+56 SET (GMV,GMVQHOLD)=$GET(@GMVDATA@("Q",GMVVNUM,GMVQNUM))
+57 SET GMVQD0=$$QUAIEN^GMVDCUTL(GMV)
+58 IF GMVQD0>0
IF $ORDER(^GMRD(120.52,"C",GMVVD0,GMVQD0,0))'>0
SET GMVQD0=-2
+59 IF GMVQD0'>0
Begin DoDot:4
+60 IF GMVQD0=-2
DO MSG("ERROR: Invalid Qualifier for Vital Type (Q^"_GMVVNUM_U_GMVQNUM_"="_GMVQHOLD_")")
+61 IF GMVQD0'=-2
DO MSG("ERROR: Missing or invalid Vitals Qualifier (Q^"_GMVVNUM_U_GMVQNUM_"="_GMVQHOLD_")")
+62 QUIT
End DoDot:4
+63 IF '$TEST
Begin DoDot:4
+64 SET GMVQFIND=1
+65 SET $PIECE(@GMVDATA@("Q",GMVVNUM,GMVQNUM),U,1)=GMVQD0
+66 SET GMVQARRY=GMVQARRY_GMVQD0_U
+67 IF GMVSYSBP
IF $DATA(GMVSYSBP(GMVQD0))#2
SET GMVSYSBP=0
+68 QUIT
End DoDot:4
+69 QUIT
End DoDot:3
+70 IF GMVSYSBP
Begin DoDot:3
+71 DO MSG("ERROR: Systolic only BPs must have a Doppler or Palpated qualifier (V^"_GMVVNUM_"="_GMVVHOLD_")")
+72 QUIT
End DoDot:3
+73 IF 'GMVQFIND
IF $ORDER(^GMRD(120.52,"C",GMVVD0,0))>0
IF '$$OMIT^GMVDCVAM(GMVVMEAS)
Begin DoDot:3
+74 DO MSG("WARNING: No valid Qualifiers found (Q^"_GMVVNUM_"^##=Qualifier)")
+75 QUIT
End DoDot:3
+76 DO DUPCHK^GMVDCVAM
+77 QUIT
End DoDot:2
+78 QUIT
End DoDot:1
+79 IF 'GMVVFIND
Begin DoDot:1
+80 DO MSG("ERROR: No valid Vital Types / Measurements found (V^##=VitalType^Measurement)")
+81 QUIT
End DoDot:1
+82 IF $ORDER(@GMVDATA@("Q",GMVVLAST))
Begin DoDot:1
+83 SET GMV=$SELECT(GMVVFIND'>0:"ERROR",1:"WARNING")
+84 DO MSG(GMV_": There are more Qualifiers than there are VitalTypes / Measurements")
+85 QUIT
End DoDot:1
+86 QUIT
+87 ;
ENTERR ; *** Validate Entered in Error data ***
+1 IF $$FIND1^DIC(200,"","","`"_GMVERRBY)'=GMVERRBY
Begin DoDot:1
+2 DO MSG("ERROR: Missing or invalid Entered in Error By parameter")
+3 QUIT
End DoDot:1
+4 SET (GMVINUM,GMVILAST,GMVIFIND)=0
+5 FOR
SET GMVINUM=$ORDER(@GMVDATA@("I",GMVINUM))
if GMVINUM'>0
QUIT
Begin DoDot:1
+6 SET GMVILAST=GMVINUM
+7 SET (GMVID0,GMVIHOLD)=$GET(@GMVDATA@("I",GMVINUM))
+8 IF $$FIND1^DIC(120.5,"","","`"_GMVID0)'=GMVID0
Begin DoDot:2
+9 DO MSG("ERROR: Entered in Error IENS not found (I^"_GMVINUM_"="_GMVIHOLD_")")
+10 QUIT
End DoDot:2
+11 IF '$TEST
Begin DoDot:2
+12 IF $PIECE($GET(^GMR(120.5,GMVID0,2)),U)
Begin DoDot:3
+13 DO MSG("ERROR: Vitals record already marked Entered in Error (I^"_GMVINUM_"="_GMVIHOLD_")")
+14 QUIT
End DoDot:3
+15 SET GMVIFIND=1
+16 SET (GMVRNUM,GMVRFIND)=0
+17 FOR
SET GMVRNUM=$ORDER(@GMVDATA@("R",GMVINUM,GMVRNUM))
if GMVRNUM'>0
QUIT
Begin DoDot:3
+18 SET (GMV,GMVRHOLD)=$GET(@GMVDATA@("R",GMVINUM,GMVRNUM))
+19 SET GMVRD0=$$REAIEN^GMVDCUTL(GMV)
+20 IF GMVRD0'>0
Begin DoDot:4
+21 DO MSG("ERROR: Missing or invalid Entered in Error Reason (R^"_GMVINUM_U_GMVRNUM_"="_GMVRHOLD_")")
+22 QUIT
End DoDot:4
+23 IF '$TEST
Begin DoDot:4
+24 SET GMVRFIND=1
+25 SET @GMVDATA@("R",GMVINUM,GMVRNUM)=GMVRD0
+26 QUIT
End DoDot:4
+27 QUIT
End DoDot:3
+28 IF 'GMVRFIND
Begin DoDot:3
+29 DO MSG("ERROR: No valid Entered in Error Reasons found (R^"_GMVINUM_"^##=EnteredInErrorReason)")
+30 QUIT
End DoDot:3
+31 QUIT
End DoDot:2
+32 QUIT
End DoDot:1
+33 IF 'GMVIFIND
Begin DoDot:1
+34 DO MSG("ERROR: No valid Entered in Error IENS found (I^##=EnteredInError)")
+35 QUIT
End DoDot:1
+36 IF $ORDER(@GMVDATA@("R",GMVILAST))
Begin DoDot:1
+37 SET GMV=$SELECT(GMVIFIND'>0:"ERROR",1:"WARNING")
+38 DO MSG(GMV_": There are more Entered in Error Reasons than there are Entered in Error IENS")
+39 QUIT
End DoDot:1
+40 QUIT
+41 ;
MSG(X) ; *** Add a line to the message array ***
+1 SET (GMVMSG,RESULT(-1))=1+$GET(RESULT(-1),0)
+2 SET RESULT(GMVMSG)=X
+3 IF $PIECE(X,":")="ERROR"
SET RESULT(0)="ERROR"
+4 QUIT
+5 ;
BPSYSQ ;;Qualifiers that must be present if only systolic BP is present
+1 ;;DOPPLER
+2 ;;PALPATED
+3 ;;