[613] | 1 | GMVDCVAM ;HOIFO/DAD,FT-VITALS COMPONENT: VALIDATE DATA (CONT.) ;9/26/00 15:31
|
---|
| 2 | ;;5.0;GEN. MED. REC. - VITALS;;Oct 31, 2002
|
---|
| 3 | ;
|
---|
| 4 | ; This routine uses the following IAs:
|
---|
| 5 | ; #10104 - ^XLFSTR calls (supported)
|
---|
| 6 | ;
|
---|
| 7 | DUPCHK ; *** Check for duplicate records ***
|
---|
| 8 | N GMVD0,GMVDATA,GMVDUP
|
---|
| 9 | S (GMVD0,GMVDUP)=0
|
---|
| 10 | D DUPCH
|
---|
| 11 | F S GMVD0=$O(^GMR(120.5,"AA",GMVDFN,GMVVD0,9999999-GMVDTDUN,GMVD0)) Q:(GMVD0'>0)!(GMVDUP>0) I $P($G(^GMR(120.5,GMVD0,2)),U)'>0 D
|
---|
| 12 | . S GMVDATA=$G(^GMR(120.5,GMVD0,0))
|
---|
| 13 | . I $P(GMVDATA,U,5,6)=(GMVHOSPL_U_GMVENTBY),$P(GMVDATA,U,8)=$P(GMVVMEAS,";") D DUPCH
|
---|
| 14 | . Q
|
---|
| 15 | S ^TMP($J,"GMVXREF",GMVVABBR,GMVQARRY)=""
|
---|
| 16 | Q
|
---|
| 17 | ;
|
---|
| 18 | DUPCH ; *** Get qualifier lists for duplicate check ***
|
---|
| 19 | I "^BP^CG^P^R^"[(U_GMVVABBR_U) D ; Vital types allowed to have dups
|
---|
| 20 | . N GMVFLAG,GMVQD0,GMVSUB,GMVSUP
|
---|
| 21 | . I GMVD0>0 D
|
---|
| 22 | .. S GMVQD0=0,GMVQARRY(0)=U
|
---|
| 23 | .. S GMVDUP(0)=$S($O(^GMR(120.5,GMVD0,5,"B",GMVQD0))>0:1,1:0)
|
---|
| 24 | .. F S GMVQD0=$O(^GMR(120.5,GMVD0,5,"B",GMVQD0)) Q:GMVQD0'>0 D
|
---|
| 25 | ... S GMVQARRY(0)=GMVQARRY(0)_GMVQD0_U
|
---|
| 26 | ... Q
|
---|
| 27 | .. S GMVDUP(0)=$$DUPC(GMVQARRY(0),GMVQARRY,GMVDUP(0))
|
---|
| 28 | .. Q
|
---|
| 29 | . E D
|
---|
| 30 | .. S GMVQARRY(0)=""
|
---|
| 31 | .. S GMVDUP(0)=$S($O(^TMP($J,"GMVXREF",GMVVABBR,GMVQARRY(0)))]"":1,1:0)
|
---|
| 32 | .. F S GMVQARRY(0)=$O(^TMP($J,"GMVXREF",GMVVABBR,GMVQARRY(0))) Q:(GMVQARRY(0)="")!(GMVDUP(0)'>0) S GMVDUP(0)=$$DUPC(GMVQARRY(0),GMVQARRY,GMVDUP(0))
|
---|
| 33 | .. Q
|
---|
| 34 | . I GMVDUP(0)>0 D DUPMSG
|
---|
| 35 | . Q
|
---|
| 36 | E D
|
---|
| 37 | . I GMVD0>0 D
|
---|
| 38 | .. D DUPMSG
|
---|
| 39 | .. Q
|
---|
| 40 | . E D
|
---|
| 41 | .. I $D(^TMP($J,"GMVXREF",GMVVABBR)) D DUPMSG
|
---|
| 42 | .. Q
|
---|
| 43 | . Q
|
---|
| 44 | Q
|
---|
| 45 | ;
|
---|
| 46 | DUPC(GMVQ1,GMVQ2,GMVDUP) ;
|
---|
| 47 | ; *** Compare qualifiers look for duplicates ***
|
---|
| 48 | N GMV,GMVSUB,GMVSUP
|
---|
| 49 | S GMVSUP=$S($L(GMVQ1,U)>$L(GMVQ2,U):GMVQ1,1:GMVQ2)
|
---|
| 50 | S GMVSUB=$S($L(GMVQ1,U)<$L(GMVQ2,U):GMVQ1,1:GMVQ2)
|
---|
| 51 | I $L(GMVQ1,U)=$L(GMVQ2,U) S GMVSUP=GMVQ1,GMVSUB=GMVQ2
|
---|
| 52 | F GMV=2:1:$L(GMVSUB,U)-1 I GMVSUP'[(U_$P(GMVSUB,U,GMV)_U) S GMVDUP=0 Q
|
---|
| 53 | Q GMVDUP
|
---|
| 54 | ;
|
---|
| 55 | DUPMSG ; *** Duplicate message ***
|
---|
| 56 | S GMVDUP=1
|
---|
| 57 | D MSG^GMVDCVAL("ERROR: Duplicate Vital Measurement data found (V^"_GMVVNUM_"="_GMVVHOLD_")")
|
---|
| 58 | Q
|
---|
| 59 | ;
|
---|
| 60 | BP ; *** Validate Systolic only Blood Pressure data ***
|
---|
| 61 | I GMVVABBR'="BP" Q
|
---|
| 62 | I $P(GMVVMEAS,";")?1.N S GMVSYSBP=1
|
---|
| 63 | Q
|
---|
| 64 | ;
|
---|
| 65 | PO2 ; *** Validate Supplemental O2 data ***
|
---|
| 66 | S GMVVMEAS("PO2")=""
|
---|
| 67 | I GMVVABBR'="PO2" Q
|
---|
| 68 | I $$OMIT(GMVVMEAS),($P(GMVVMEAS,";",2)]"")!($P(GMVVMEAS,";",3)]"") D
|
---|
| 69 | . D MSG^GMVDCVAL("ERROR: Supplemental O2 data not allowed if Pulse Oximetry is omitted (V^"_GMVVNUM_"="_GMVVHOLD_")")
|
---|
| 70 | . Q
|
---|
| 71 | I $P(GMVVMEAS,";",2)]"" D
|
---|
| 72 | . I ($P(GMVVMEAS,";",2)'<.5)&($P(GMVVMEAS,";",2)'>20) D
|
---|
| 73 | .. S GMVVMEAS("PO2")=$P(GMVVMEAS,";",2)_"L/min"
|
---|
| 74 | .. Q
|
---|
| 75 | . E D
|
---|
| 76 | .. D MSG^GMVDCVAL("ERROR: O2 Flow Rate must be in the range 0.5-20 (V^"_GMVVNUM_"="_GMVVHOLD_")")
|
---|
| 77 | .. Q
|
---|
| 78 | . Q
|
---|
| 79 | I $P(GMVVMEAS,";",3)]"" D
|
---|
| 80 | . I ($P(GMVVMEAS,";",3)'<0)&($P(GMVVMEAS,";",3)'>100) D
|
---|
| 81 | .. S GMVVMEAS("PO2")=GMVVMEAS("PO2")_$S(GMVVMEAS("PO2")]"":" ",1:"")_$P(GMVVMEAS,";",3)_"%"
|
---|
| 82 | .. Q
|
---|
| 83 | . E D
|
---|
| 84 | .. D MSG^GMVDCVAL("ERROR: Percent O2 Concentration must be in the range 0-100 (V^"_GMVVNUM_"="_GMVVHOLD_")")
|
---|
| 85 | .. Q
|
---|
| 86 | . Q
|
---|
| 87 | S GMVVMEAS=$P(GMVVMEAS,";")
|
---|
| 88 | Q
|
---|
| 89 | ;
|
---|
| 90 | OMIT(GMVVMEAS) ;
|
---|
| 91 | ; *** Determine if measurement was omitted ***
|
---|
| 92 | ; Input:
|
---|
| 93 | ; GMVVMEAS = A vital measurement
|
---|
| 94 | ; Output:
|
---|
| 95 | ; 1 - Measurement was omitted, 0 - Measurement was not omitted
|
---|
| 96 | Q "^UNAVAILABLE^PASS^REFUSED^"[(U_$$UP^XLFSTR($P(GMVVMEAS,";"))_U)
|
---|
| 97 | ;
|
---|