GMRVXCH2 ;HIRMFO/YH,RM-GMRV VITAL QUALIFIER FILE CONVERSION ;8/1/96
;;4.0;Vitals/Measurements;;Apr 25, 1997
CONV52 ; Loop through 120.52 to convert
S GMRVDA=0 F S GMRVDA=$O(^GMRD(120.52,GMRVDA)) Q:GMRVDA'>0 D
. K GMRVVTYP S GMRVCHAR=$P($G(^GMRD(120.52,GMRVDA,0)),"^")
. I '$D(^TMP($J,"GMRVCHAR",GMRVCHAR)) S ^TMP($J,"GMRVCHAR",GMRVCHAR)=""
. S GMRVCNV=$G(^TMP($J,"GMRVCHAR",GMRVCHAR))
. S GMRVCNV=$S(GMRVCNV]"":GMRVCNV,1:GMRVDA_";GMRD(120.52,")
. S $P(^GMRD(120.52,GMRVDA,"CONV"),"^")=GMRVCNV
. S GMRVTDA=0
. F S GMRVTDA=$O(^GMRD(120.52,GMRVDA,1,GMRVTDA)) Q:GMRVTDA'>0 D
. . S GMRVTYP=$P($G(^GMRD(120.52,GMRVDA,1,GMRVTDA,0)),"^")
. . Q:GMRVTYP'>0 S GMRVVTYP(GMRVTYP)=GMRVTDA
. . I '$D(^TMP($J,"GMRVCHAR",GMRVCHAR,GMRVTYP)) S ^TMP($J,"GMRVCHAR",GMRVCHAR,GMRVTYP)=$$QUAL(GMRVTYP,120.52,GMRVCHAR)
. . Q
. S GMRVTYP=0
. F S GMRVTYP=$O(^TMP($J,"GMRVCHAR",GMRVCHAR,GMRVTYP)) Q:GMRVTYP'>0 D
. . S GMRVTDA=$G(GMRVVTYP(GMRVTYP))
. . I GMRVTDA'>0 D Q:GMRVTDA'>0
. . . S X=GMRVTYP,DA(1)=GMRVDA,DIC="^GMRD(120.52,"_DA(1)_",1,"
. . . S DIC(0)="L",DLAYGO=120.52
. . . K DO,DINUM,DD D FILE^DICN S GMRVTDA=+Y
. . . Q
. . S GMRVCNV=$G(^TMP($J,"GMRVCHAR",GMRVCHAR,GMRVTYP))
. . S GMRVCAT=$P(GMRVCNV,"^")
. . I GMRVCAT]"" S GMRVCAT=$G(^TMP($J,"GMRVCAT",GMRVCAT))
. . S $P(GMRVCNV,"^")=GMRVCAT
. . S $P(^GMRD(120.52,GMRVDA,1,GMRVTDA,0),"^",2,4)=GMRVCNV
. . Q
. Q
K DA,DIC,DLAYGO,GMRVCHAR,GMRVCNV,GMRVDA,GMRVTDA,GMRVTYP,GMRVVTYP,X
Q
MOVE53 ; Loop through 120.53 and move data from that
; file to the 120.52 file.
S GMRVD0=0 F S GMRVD0=$O(^GMRD(120.53,GMRVD0)) Q:GMRVD0'>0 D
. S GMRVCHAR=$P($G(^GMRD(120.53,GMRVD0,0)),"^") Q:GMRVCHAR=""
. K GMRVFDA,GMRVIEN S GMRVFDA(99,120.52,"+1,",.01)=GMRVCHAR
. D UPDATE^DIE("","GMRVFDA(99)","GMRVIEN") Q:GMRVIEN(1)'>0
. I '$D(^TMP($J,"GMRVCHAR",GMRVCHAR)) S ^(GMRVCHAR)=GMRVD0_";GMRD(120.53,"
. S GMRVDA=GMRVIEN(1),GMRVD1=0
. F S GMRVD1=$O(^GMRD(120.53,GMRVD0,1,GMRVD1)) Q:GMRVD1'>0 D
. . S GMRVTYP=$P($G(^GMRD(120.53,GMRVD0,1,GMRVD1,0)),"^")
. . Q:$P($G(^GMRD(120.51,+GMRVTYP,0)),"^")'="BLOOD PRESSURE"
. . K GMRVFDA,GMRVIEN
. . S GMRVFDA(99,120.521,"+2,"_GMRVDA_",",.01)=GMRVTYP
. . D UPDATE^DIE("","GMRVFDA(99)","GMRVIEN")
. . I '$D(^TMP($J,"GMRVCHAR",GMRVCHAR,GMRVTYP)) S ^TMP($J,"GMRVCHAR",GMRVCHAR,GMRVTYP)=$$QUAL(GMRVTYP,120.53,GMRVCHAR)
. . Q
. Q
K GMRVCHAR,GMRVD0,GMRVD1,GMRVDA,GMRVFDA,GMRVTYP
Q
QUAL(TYPE,FILE,CHAR) ; Given a Qualifier (CHAR), the Vital Type (TYPE)
; ptr and the file from which this which the qualifier is from
; (FILE), this function will return the generic Category (CAT).
;
N CAT,GTYPE
S GTYPE=$P($G(^GMRD(120.51,TYPE,0)),"^",2)
I FILE=120.52 S CAT=$S(GTYPE="BP"!(GTYPE="P")!(GTYPE="T"):"LOCATION",GTYPE="R":"METHOD",GTYPE="WT":"QUALITY",1:"")
I FILE=120.53 S CAT=$S(GTYPE="BP":"POSITION",1:"")
Q CAT
;
TYP(TYPE) ; This function will return the external text for the Vital
; Type pointed to by TYPE.
Q $P($G(^GMRD(120.51,TYPE,0)),"^")
GMRVXCH2 ;HIRMFO/YH,RM-GMRV VITAL QUALIFIER FILE CONVERSION ;8/1/96
+1 ;;4.0;Vitals/Measurements;;Apr 25, 1997
CONV52 ; Loop through 120.52 to convert
+1 SET GMRVDA=0
FOR
SET GMRVDA=$ORDER(^GMRD(120.52,GMRVDA))
IF GMRVDA'>0
QUIT
Begin DoDot:1
+2 KILL GMRVVTYP
SET GMRVCHAR=$PIECE($GET(^GMRD(120.52,GMRVDA,0)),"^")
+3 IF '$DATA(^TMP($JOB,"GMRVCHAR",GMRVCHAR))
SET ^TMP($JOB,"GMRVCHAR",GMRVCHAR)=""
+4 SET GMRVCNV=$GET(^TMP($JOB,"GMRVCHAR",GMRVCHAR))
+5 SET GMRVCNV=$SELECT(GMRVCNV]"":GMRVCNV,1:GMRVDA_";GMRD(120.52,")
+6 SET $PIECE(^GMRD(120.52,GMRVDA,"CONV"),"^")=GMRVCNV
+7 SET GMRVTDA=0
+8 FOR
SET GMRVTDA=$ORDER(^GMRD(120.52,GMRVDA,1,GMRVTDA))
IF GMRVTDA'>0
QUIT
Begin DoDot:2
+9 SET GMRVTYP=$PIECE($GET(^GMRD(120.52,GMRVDA,1,GMRVTDA,0)),"^")
+10 IF GMRVTYP'>0
QUIT
SET GMRVVTYP(GMRVTYP)=GMRVTDA
+11 IF '$DATA(^TMP($JOB,"GMRVCHAR",GMRVCHAR,GMRVTYP))
SET ^TMP($JOB,"GMRVCHAR",GMRVCHAR,GMRVTYP)=$$QUAL(GMRVTYP,120.52,GMRVCHAR)
+12 QUIT
End DoDot:2
+13 SET GMRVTYP=0
+14 FOR
SET GMRVTYP=$ORDER(^TMP($JOB,"GMRVCHAR",GMRVCHAR,GMRVTYP))
IF GMRVTYP'>0
QUIT
Begin DoDot:2
+15 SET GMRVTDA=$GET(GMRVVTYP(GMRVTYP))
+16 IF GMRVTDA'>0
Begin DoDot:3
+17 SET X=GMRVTYP
SET DA(1)=GMRVDA
SET DIC="^GMRD(120.52,"_DA(1)_",1,"
+18 SET DIC(0)="L"
SET DLAYGO=120.52
+19 KILL DO,DINUM,DD
DO FILE^DICN
SET GMRVTDA=+Y
+20 QUIT
End DoDot:3
IF GMRVTDA'>0
QUIT
+21 SET GMRVCNV=$GET(^TMP($JOB,"GMRVCHAR",GMRVCHAR,GMRVTYP))
+22 SET GMRVCAT=$PIECE(GMRVCNV,"^")
+23 IF GMRVCAT]""
SET GMRVCAT=$GET(^TMP($JOB,"GMRVCAT",GMRVCAT))
+24 SET $PIECE(GMRVCNV,"^")=GMRVCAT
+25 SET $PIECE(^GMRD(120.52,GMRVDA,1,GMRVTDA,0),"^",2,4)=GMRVCNV
+26 QUIT
End DoDot:2
+27 QUIT
End DoDot:1
+28 KILL DA,DIC,DLAYGO,GMRVCHAR,GMRVCNV,GMRVDA,GMRVTDA,GMRVTYP,GMRVVTYP,X
+29 QUIT
MOVE53 ; Loop through 120.53 and move data from that
+1 ; file to the 120.52 file.
+2 SET GMRVD0=0
FOR
SET GMRVD0=$ORDER(^GMRD(120.53,GMRVD0))
IF GMRVD0'>0
QUIT
Begin DoDot:1
+3 SET GMRVCHAR=$PIECE($GET(^GMRD(120.53,GMRVD0,0)),"^")
IF GMRVCHAR=""
QUIT
+4 KILL GMRVFDA,GMRVIEN
SET GMRVFDA(99,120.52,"+1,",.01)=GMRVCHAR
+5 DO UPDATE^DIE("","GMRVFDA(99)","GMRVIEN")
IF GMRVIEN(1)'>0
QUIT
+6 IF '$DATA(^TMP($JOB,"GMRVCHAR",GMRVCHAR))
SET ^(GMRVCHAR)=GMRVD0_";GMRD(120.53,"
+7 SET GMRVDA=GMRVIEN(1)
SET GMRVD1=0
+8 FOR
SET GMRVD1=$ORDER(^GMRD(120.53,GMRVD0,1,GMRVD1))
IF GMRVD1'>0
QUIT
Begin DoDot:2
+9 SET GMRVTYP=$PIECE($GET(^GMRD(120.53,GMRVD0,1,GMRVD1,0)),"^")
+10 IF $PIECE($GET(^GMRD(120.51,+GMRVTYP,0)),"^")'="BLOOD PRESSURE"
QUIT
+11 KILL GMRVFDA,GMRVIEN
+12 SET GMRVFDA(99,120.521,"+2,"_GMRVDA_",",.01)=GMRVTYP
+13 DO UPDATE^DIE("","GMRVFDA(99)","GMRVIEN")
+14 IF '$DATA(^TMP($JOB,"GMRVCHAR",GMRVCHAR,GMRVTYP))
SET ^TMP($JOB,"GMRVCHAR",GMRVCHAR,GMRVTYP)=$$QUAL(GMRVTYP,120.53,GMRVCHAR)
+15 QUIT
End DoDot:2
+16 QUIT
End DoDot:1
+17 KILL GMRVCHAR,GMRVD0,GMRVD1,GMRVDA,GMRVFDA,GMRVTYP
+18 QUIT
QUAL(TYPE,FILE,CHAR) ; Given a Qualifier (CHAR), the Vital Type (TYPE)
+1 ; ptr and the file from which this which the qualifier is from
+2 ; (FILE), this function will return the generic Category (CAT).
+3 ;
+4 NEW CAT,GTYPE
+5 SET GTYPE=$PIECE($GET(^GMRD(120.51,TYPE,0)),"^",2)
+6 IF FILE=120.52
SET CAT=$SELECT(GTYPE="BP"!(GTYPE="P")!(GTYPE="T"):"LOCATION",GTYPE="R":"METHOD",GTYPE="WT":"QUALITY",1:"")
+7 IF FILE=120.53
SET CAT=$SELECT(GTYPE="BP":"POSITION",1:"")
+8 QUIT CAT
+9 ;
TYP(TYPE) ; This function will return the external text for the Vital
+1 ; Type pointed to by TYPE.
+2 QUIT $PIECE($GET(^GMRD(120.51,TYPE,0)),"^")