Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: GMRVUT0

GMRVUT0.m

Go to the documentation of this file.
  1. GMRVUT0 ;HIOFO/RM,YH,FT-INPUT TRANSFORMS FOR VITAL TYPES ;10/3/07
  1. ;;5.0;GEN. MED. REC. - VITALS;**23**;Oct 31, 2002;Build 25
  1. ;
  1. ; This routine uses the following IAs:
  1. ; #4290 - ^PXRMINDX global (controlled)
  1. ;
  1. ; This routine supports the following IAs:
  1. ; EN1 - 1446 (controlled)
  1. ;
  1. EN2 ; CALLED FROM INPUT TRANSFORM OF RATE AND QUALITY SUBFIELDS OF SITE
  1. ; FIELD OF THE VITAL MEASUREMENT (#120.5) FILE - GMRFLD IS SET BEFORE
  1. ; ENTRY, BUT KILLED WITHIN THE ROUTINE
  1. S GMRTYP=$S($D(^GMR(120.5,DA,0)):$P(^(0),U,3),1:"") G K:GMRTYP'>0
  1. G K:GMRTYP'>0,Q2:$P(^GMRD(120.51,GMRTYP,0),U,$S(GMRFLD=1:4,GMRFLD=2:5,1:3))
  1. K D EN^DDIOL($C(7)_"CANNOT EDIT THIS FIELD FOR THIS TYPE OF MEASUREMENT","","!?5") K X
  1. Q2 K GMRTYP,GMRFLD Q
  1. EN3 ; INPUT TRANSFORM FOR HEIGHT RATES
  1. N GMR
  1. S GMR=$P(X,+X,2,10) I GMR="" S X=0 Q
  1. I $E(GMR)="C"!($E(GMR)="c")&("CMCmcMcm"[GMR) S X=$J(.3937*(+X),0,2) Q
  1. I $E(GMR)="I"!($E(GMR)="i")!($E(GMR)="""") S X=+X Q
  1. I $E(GMR)="F"!($E(GMR)="f")!($E(GMR)="'") D FTIN Q
  1. S X=0
  1. Q
  1. FTIN ;
  1. N GMRF,GMRIN,GMRXX,GMRYY
  1. S GMRF=$E(GMR),GMR=$E(GMR,2,$L(GMR)) F GMRXX=1:0 S GMRYY=$E(GMR) Q:GMRYY?1N!(GMRYY="") S GMRF=GMRF_GMRYY,GMR=$E(GMR,2,$L(GMR))
  1. I "FTFtfTft'"'[GMRF Q
  1. S GMRIN=$P(GMR,+GMR,2) I "INIniNin""''"'[GMRIN!(GMRIN="'") Q
  1. S X=+X*12+(+GMR)
  1. Q
  1. EN1 ; ENTRY TO GATHER PATIENT'S VITAL/MEASUREMENT DATA
  1. ; INPUT VARIABLES:
  1. ;
  1. ; DFN = Entry number of patient in Patient file.
  1. ; GMRVSTR = types of vital/measurements desired. Use the abbreviations
  1. ; found in the Vital Type (120.51) file. For multiple
  1. ; vitals, use the ; as a delimiter.
  1. ; GMRVSTR(0) = GMRVSTDT^GMRVENDT^GMRVOCC^GMRVSORD
  1. ; where GMRVSTDT = The start date/time that the utility will
  1. ; use in obtaining patient data. (OPTIONAL)
  1. ; GMRVENDT = The end date/time that the utility will use
  1. ; to stop the search. (OPTIONAL)
  1. ; GMRVOCC = The number of occurrences of the data that
  1. ; is desired by the search. (OPTIONAL)
  1. ; GMRVSORD = The sort order desired in output, see OUTPUT
  1. ; VARIABLES section. (REQUIRED)
  1. ; GMRVSTR("LT") = ^TYP1^[TYP2^...] (OPTIONAL)
  1. ; THIS VARIABLE IS AN ^ DELIMITED LIST OF HOSPITAL LOCATION
  1. ; TYPES TO EXTRACT MEASUREMENT DATA FOR. E.G., ^C^M^, WILL
  1. ; EXTRACT DATA FOR ONLY THOSE MEASUREMENTS TAKEN ON CLINICS
  1. ; OR MODULES.
  1. ;
  1. ; OUTPUT VARIABLES:
  1. ;
  1. ; The utility will create an array with the desired information. The
  1. ; array structure will be as follows if '$P(GMRVSTR(0),"^",4):
  1. ; ^UTILITY($J,"GMRVD",GMRVTYP,GMRVRDT,GMRVIEN)=GMRVDATA
  1. ; or if $P(GMRVSTR(0),"^",4) then the following will be returned:
  1. ; ^UTILITY($J,"GMRVD",GMRVRDT,GMRVTYP,GMRVIEN)=GMRVDATA
  1. ; where GMRVRDT = Reverse FileMan date/time.
  1. ; 9999999-Date/time vital/measurement was taken.
  1. ; GMRVTYP = The abbreviation used in the GMRVSTR string for the
  1. ; type of vital/measurement taken.
  1. ; GMRVIEN = Entry number in FILE 120.5 or
  1. ; pseudo entry number for File 704.117
  1. ; GMRVDATA = $P(^GMR(120.5,GMRVIEN,0),"^",1,9) will be the patient data as
  1. ; currently defined in the DD for file 120.5.
  1. ; $P(GMRVDATA,"^",10) = the first qualifier
  1. ; $P(GMRVDATA,"^",11) = the second qualifier
  1. ; $P(GMRVDATA,"^",12)= "*" for abnormal measurement, otherwise = ""
  1. ; $P(GMRVDATA,"^",13)= values in centigrade for T; KG for WT;
  1. ; in centimeter for HT and Circumference/Girth;
  1. ; in mmHg for CVP.
  1. ; $P(GMRVDATA,"^",14)= Body Mass Index.
  1. ; $P(GMRVDATA,"^",15)= L/Min of supplemental O2.
  1. ; $P(GMRVDATA,"^",16)= % of supplemental O2.
  1. ; $P(GMRVDATA,"^",17)= all qualifiers.
  1. ; The variable GMRVSTR will be killed.
  1. Q:'$D(GMRVSTR(0))!'($D(GMRVSTR)#2)!'($D(DFN)#2) Q:DFN'>0
  1. N GMVIENGUID
  1. S GMRSAVE=GMRVSTR,GMRSAVE(0)=GMRVSTR(0),GMVIENGUID=0
  1. S GMRVSTR="HT" D EN6^GMRVUTL S GMRVSTR=GMRSAVE,GMRVSTR(0)=GMRSAVE(0) S GMRHT=(+$P(X,U,8)*2.54)/100
  1. I $G(GMRVSTR("LT"))="" S GMRVSTR("LT")=""
  1. F GMRVSTR(1)=1:1:$L(GMRVSTR,";") D
  1. .S GMRVSTR("T")=$P(GMRVSTR,";",GMRVSTR(1))
  1. .I $L(GMRVSTR("T")) D
  1. ..S GMRVSTR("B")=$S($P(GMRVSTR(0),U,1):$P(GMRVSTR(0),U,1),1:0)
  1. ..S GMRVSTR("E")=$S($P(GMRVSTR(0),U,2):$P(GMRVSTR(0),U,2),1:9999999)
  1. ..S GMRVSTR("O")=0,GMRVSTR("E")=GMRVSTR("E")+.000001
  1. ..D GETD
  1. K GMRINF,GG,GMRSAVE,GMRHT,GMRVARY,GMRVSTR,GMRSITE,GMRQUAL,GMRVX,GMRZTY,GDATA
  1. Q
  1. GETD ; LOOP THRU PXRMINDX XREF AND GET PATIENT DATA
  1. S GMRVSTR("TDA")=$O(^GMRD(120.51,"C",GMRVSTR("T"),0)) Q:'GMRVSTR("TDA")
  1. I GMRVSTR("T")="BP"!(GMRVSTR("T")="P") D BP^GMRVUT2 Q
  1. F GMRVSTR("R")=GMRVSTR("E"):0 S GMRVSTR("R")=$O(^PXRMINDX(120.5,"PI",DFN,GMRVSTR("TDA"),GMRVSTR("R")),-1) Q:GMRVSTR("R")<GMRVSTR("B")!(GMRVSTR("R")'>0) D GETD1 Q:GMRVSTR("TMO")
  1. Q
  1. GETD1 ;
  1. N GMVCLIO
  1. S GMRVSTR("TMO")=0 ;max # of occurrences flag
  1. S GMRVSTR("IEN")=0
  1. F S GMRVSTR("IEN")=$O(^PXRMINDX(120.5,"PI",DFN,GMRVSTR("TDA"),GMRVSTR("R"),GMRVSTR("IEN"))) Q:$L(GMRVSTR("IEN"))'>0 D Q:GMRVSTR("TMO")
  1. .I GMRVSTR("IEN")=+GMRVSTR("IEN") D
  1. ..D F1205^GMVUTL(.GMVCLIO,GMRVSTR("IEN"))
  1. .I GMRVSTR("IEN")'=+GMRVSTR("IEN") D
  1. ..D CLIO^GMVUTL(.GMVCLIO,GMRVSTR("IEN"))
  1. .S GMVCLIO(0)=$G(GMVCLIO(0)),GMVCLIO(5)=$G(GMVCLIO(5))
  1. .I GMVCLIO(0)=""!($P(GMVCLIO(0),U,8)="") Q
  1. .D SETU2^GMRVUT2
  1. .Q
  1. Q