[613] | 1 | GMVDCUTL ;HOIFO/DAD,FT-VITALS COMPONENT: UTILITIES ;9/29/00 09:18
|
---|
| 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 | VITIEN(GMVITTYP) ;
|
---|
| 8 | ; Convert a vital type abbr / PCE abbr / name to an IEN
|
---|
| 9 | ; Input:
|
---|
| 10 | ; A vital type IEN or abbr or PCE abbr or name
|
---|
| 11 | ; Output:
|
---|
| 12 | ; A pointer to the GMRV Vital Type file (#120.51)
|
---|
| 13 | N GMVABR,GMVNAM,GMVPCE
|
---|
| 14 | S GMVABR=$S($G(GMVITTYP)]"":+$O(^GMRD(120.51,"C",GMVITTYP,0)),1:0)
|
---|
| 15 | S GMVPCE=$S($G(GMVITTYP)]"":+$O(^GMRD(120.51,"APCE",GMVITTYP,0)),1:0)
|
---|
| 16 | S GMVNAM=$S($G(GMVITTYP)]"":+$O(^GMRD(120.51,"B",GMVITTYP,0)),1:0)
|
---|
| 17 | S GMVD0=$S(GMVITTYP=+GMVITTYP:GMVITTYP,GMVABR:GMVABR,GMVPCE:GMVPCE,GMVNAM:GMVNAM,1:-1)
|
---|
| 18 | S GMVD0=$S($D(^GMRD(120.51,GMVD0,0))#2:GMVD0,1:-1)
|
---|
| 19 | Q GMVD0
|
---|
| 20 | ;
|
---|
| 21 | QUAIEN(GMVITQUA) ;
|
---|
| 22 | ; Convert a vital qualifier name to an IEN
|
---|
| 23 | ; Input:
|
---|
| 24 | ; A vital qualifier IEN or name or synonym
|
---|
| 25 | ; Output:
|
---|
| 26 | ; A pointer to the GMRV Vital Qualifier file (#120.52)
|
---|
| 27 | N GMVD0,GMVIEN,GMVNAM
|
---|
| 28 | S GMVNAM=$S($G(GMVITQUA)]"":+$O(^GMRD(120.52,"B",GMVITQUA,0)),1:-1)
|
---|
| 29 | S GMVD0=$S(GMVITQUA=+GMVITQUA:GMVITQUA,GMVNAM>0:GMVNAM,1:-1)
|
---|
| 30 | S GMVD0=$S($D(^GMRD(120.52,GMVD0,0))#2:GMVD0,1:-1)
|
---|
| 31 | I GMVD0'>0,$G(GMVITQUA)]"" D
|
---|
| 32 | . S GMVIEN=0
|
---|
| 33 | . F S GMVIEN=$O(^GMRD(120.52,GMVIEN)) Q:GMVIEN'>0 D Q:GMVD0>0
|
---|
| 34 | .. I $P($G(^GMRD(120.52,GMVIEN,0)),U,2)=GMVITQUA S GMVD0=GMVIEN
|
---|
| 35 | .. Q
|
---|
| 36 | . Q
|
---|
| 37 | Q GMVD0
|
---|
| 38 | ;
|
---|
| 39 | CATIEN(GMVITCAT) ;
|
---|
| 40 | ; Convert a vital category name to an IEN
|
---|
| 41 | ; Input:
|
---|
| 42 | ; A vital category IEN or name
|
---|
| 43 | ; Output:
|
---|
| 44 | ; A pointer to the GMRV Vital Category file (#120.53)
|
---|
| 45 | N GMVCAT,GMVD0
|
---|
| 46 | S GMVCAT=$S($G(GMVITCAT)]"":+$O(^GMRD(120.53,"B",GMVITCAT,0)),1:0)
|
---|
| 47 | S GMVD0=$S(GMVITCAT=+GMVITCAT:GMVITCAT,GMVCAT:GMVCAT,1:-1)
|
---|
| 48 | S GMVD0=$S($D(^GMRD(120.53,GMVD0,0))#2:GMVD0,1:-1)
|
---|
| 49 | Q GMVD0
|
---|
| 50 | ;
|
---|
| 51 | REAIEN(GMVITREA) ;
|
---|
| 52 | ; Convert an entered in error reason external form to an internal form
|
---|
| 53 | ; Input:
|
---|
| 54 | ; A vital entered in error reason in internal/external form
|
---|
| 55 | ; Output:
|
---|
| 56 | ; A vital entered in error reason in internal form
|
---|
| 57 | N GMVD0,GMVDATA
|
---|
| 58 | S GMVDATA=$$GET1^DID(120.506,.01,"","POINTER")
|
---|
| 59 | S GMVITREA(0)=$P(GMVDATA,":"_GMVITREA_";")
|
---|
| 60 | S GMVITREA(0)=$P(GMVITREA(0),";",$L(GMVITREA(0),";"))
|
---|
| 61 | S GMVD0=$S(GMVITREA=+GMVITREA:GMVITREA,GMVITREA(0):GMVITREA(0),1:-1)
|
---|
| 62 | S GMVD0=$S(";"_GMVDATA[(";"_GMVD0_":"):GMVD0,1:-1)
|
---|
| 63 | Q GMVD0
|
---|
| 64 | ;
|
---|
| 65 | MEASYS(GMVMSYS) ;
|
---|
| 66 | ; Validates and returns the measurement system
|
---|
| 67 | ; Input:
|
---|
| 68 | ; GMVMSYS = Measurement system (Optional)
|
---|
| 69 | ; M = Metric, C - US Customary (Default)
|
---|
| 70 | ; Output:
|
---|
| 71 | ; M = Metric, C - US Customary (Default)
|
---|
| 72 | S GMVMSYS=$$UP^XLFSTR($G(GMVMSYS))
|
---|
| 73 | Q $S("^C^M^"[(U_GMVMSYS_U):GMVMSYS,1:"C")
|
---|
| 74 | ;
|
---|
| 75 | FMTPARAM(GMVIN,GMVOUT) ;
|
---|
| 76 | ; Reformat the validate/save list parameter
|
---|
| 77 | ; Input:
|
---|
| 78 | ; GMVIN = The list parameter data as it comes from the RPC broker
|
---|
| 79 | ; See remote procedure GMV SAVE VITALS or GMV VALIDATE VITALS
|
---|
| 80 | ; for a description of the format of the data
|
---|
| 81 | ; GMVOUT = A closed array reference used to store the reformatted data
|
---|
| 82 | ; Output:
|
---|
| 83 | ; @GMVOUT@("V",##) = Measurements
|
---|
| 84 | ; @GMVOUT@("I",##) = Entered in error IENS
|
---|
| 85 | ; @GMVOUT@("Q",##,##) = Qualifiers
|
---|
| 86 | ; @GMVOUT@("R",##,##) = Entered in error reasons
|
---|
| 87 | ; GMVDFN = PatientDFN
|
---|
| 88 | ; GMVDTDUN = DateTimeTaken
|
---|
| 89 | ; GMVHOSPL = HospitalLocation
|
---|
| 90 | ; GMVDTENT = DateTimeEntered
|
---|
| 91 | ; GMVENTBY = EnteredBy
|
---|
| 92 | ; GMVERRBY = EnteredInErrorBy
|
---|
| 93 | ; GMVMSYS = MeasurementSystem
|
---|
| 94 | ;
|
---|
| 95 | N GMV,GMVDATA,GMVMAJOR,GMVMINOR,GMVRET,GMVS2V,GMVTYPE,GMVVAR,GMVVARTY
|
---|
| 96 | K @GMVOUT
|
---|
| 97 | F GMV=1:1 S GMVDATA=$P($T(SUBVAR+GMV),";;",2) Q:GMVDATA="" D
|
---|
| 98 | . S GMVVAR=$P(GMVDATA,U,2),GMVVARTY=$P(GMVDATA,U,3)
|
---|
| 99 | . S GMVS2V($P(GMVDATA,U))=GMVVAR_U_GMVVARTY
|
---|
| 100 | . S @(GMVVAR_"=-1")
|
---|
| 101 | . Q
|
---|
| 102 | S GMV=""
|
---|
| 103 | F S GMV=$O(GMVIN(GMV)) Q:GMV="" D
|
---|
| 104 | . I (GMV?1U1"^"1.N)!(GMV?1U1"^"1.N1"^"1.N) D
|
---|
| 105 | .. S GMVTYPE=$P(GMV,U),GMVMAJOR=$P(GMV,U,2),GMVMINOR=$P(GMV,U,3)
|
---|
| 106 | .. I "^I^V^"[(U_GMVTYPE_U) D ; Entered in Error IENS & Measurements
|
---|
| 107 | ... S @GMVOUT@(GMVTYPE,GMVMAJOR)=GMVIN(GMV)
|
---|
| 108 | ... Q
|
---|
| 109 | .. I "^Q^R^"[(U_GMVTYPE_U) D ; Qualifiers & Reasons entered in error
|
---|
| 110 | ... S @GMVOUT@(GMVTYPE,GMVMAJOR,GMVMINOR)=GMVIN(GMV)
|
---|
| 111 | ... Q
|
---|
| 112 | .. Q
|
---|
| 113 | . E D
|
---|
| 114 | .. S GMVDATA=$G(GMVS2V(GMV))
|
---|
| 115 | .. S GMVVAR=$P(GMVDATA,U),GMVVARTY=$P(GMVDATA,U,2)
|
---|
| 116 | .. I GMVVARTY="D" D
|
---|
| 117 | ... K GMVRET
|
---|
| 118 | ... D DT^DILF("RSTX",GMVIN(GMV),.GMVRET)
|
---|
| 119 | ... S GMVIN(GMV)=$G(GMVRET)
|
---|
| 120 | ... Q
|
---|
| 121 | .. I GMVVARTY="U",$$UP^XLFSTR(GMVIN(GMV))="DUZ" D
|
---|
| 122 | ... S GMVIN(GMV)=DUZ
|
---|
| 123 | ... Q
|
---|
| 124 | .. I GMVVAR]"",GMVIN(GMV)]"" S @(GMVVAR_"="""_GMVIN(GMV)_"""")
|
---|
| 125 | .. Q
|
---|
| 126 | . Q
|
---|
| 127 | Q
|
---|
| 128 | SUBVAR ;;Subscript ^ Variable ^ DataType (D-Date/Time, L-Literal, U-User)
|
---|
| 129 | ;;PatientDFN^GMVDFN^L
|
---|
| 130 | ;;DateTimeTaken^GMVDTDUN^D
|
---|
| 131 | ;;HospitalLocation^GMVHOSPL^L
|
---|
| 132 | ;;DateTimeEntered^GMVDTENT^D
|
---|
| 133 | ;;EnteredBy^GMVENTBY^U
|
---|
| 134 | ;;EnteredInErrorBy^GMVERRBY^U
|
---|
| 135 | ;;MeasurementSystem^GMVMSYS^L
|
---|
| 136 | ;;
|
---|