GMVGETD1 ;HOIFO/YH-EXTRACT VITALS/MEASUREMENT RECORDS FOR A GIVEN DATE ;5/10/07
 ;;5.0;GEN. MED. REC. - VITALS;**23**;Oct 31, 2002;Build 25
 ;
 ; This routine uses the following IAs:
 ;  #4290 - ^PXRMINDX global     (controlled)
 ;
EN1 ;CALLED FROM GMVGETD ENTRY POINT GETVM 
 K ^TMP($J,"GMRV")
 N GJ,GMRDATE,GMRVDA,GMRVTY,GMVCLIO,GMVENTRY
 F GMRVTY="T","P","R","BP","HT","WT","CVP","CG","PO2","PN"  S GMRVITY=$O(^GMRD(120.51,"C",GMRVTY,0)) I GMRVITY>0 D SETAR
 I $O(^TMP($J,"GMRV",0))'>0 K ^TMP($J,"GMRV") Q
 K ^TMP($J,"GRPC")
 S GJ=0,GMRDATE=0
 F  S GMRDATE=$O(^TMP($J,"GMRV",GMRDATE)) Q:GMRDATE'>0  D PRT
QT ; 
 K ^TMP($J,"GMRV")
 Q
SETAR ;
 I GMVTYPE'="",GMVTYPE'=GMRVTY Q
 S GMRDT=GMVSTART-.000001
 F  S GMRDT=$O(^PXRMINDX(120.5,"PI",DFN,GMRVITY,GMRDT)) Q:(GMRDT'>0)!(GMRDT>GMVEND)  D SETND
 Q
SETND ;
 S GMRVDA=0
 F  S GMRVDA=$O(^PXRMINDX(120.5,"PI",DFN,GMRVITY,GMRDT,GMRVDA)) Q:$L(GMRVDA)'>0  D
 .K GMVCLIO
 .I GMRVDA=+GMRVDA D
 ..D F1205^GMVUTL(.GMVCLIO,GMRVDA)
 .I GMRVDA'=+GMRVDA D
 ..D CLIO^GMVUTL(.GMVCLIO,GMRVDA)
 .S GMVCLIO(0)=$G(GMVCLIO(0)),GMVCLIO(5)=$G(GMVCLIO(5))
 .I GMVCLIO(0)=""!($P(GMVCLIO(0),U,8)="") Q
 .S GMVENTRY=GMVCLIO(0)_"|"_GMVCLIO(5)
 .D SETUT
 .Q
 Q
SETUT ;
 S ^TMP($J,"GMRV",+$E(GMRDT,1,12),GMRVTY,GMRVDA)=GMVENTRY
 Q
PRT ;SAVE V/M BY DATE/TIME
 F GMRVTY="T","P","R","BP","HT","WT","CVP","CG","PO2","PN" I $D(^TMP($J,"GMRV",GMRDATE,GMRVTY)) S GMRVDA=0 F  S GMRVDA=$O(^TMP($J,"GMRV",GMRDATE,GMRVTY,GMRVDA)) Q:$L(GMRVDA)'>0  D SETLN^GMVGETD2
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HGMVGETD1   1518     printed  Sep 23, 2025@19:34:53                                                                                                                                                                                                    Page 2
GMVGETD1  ;HOIFO/YH-EXTRACT VITALS/MEASUREMENT RECORDS FOR A GIVEN DATE ;5/10/07
 +1       ;;5.0;GEN. MED. REC. - VITALS;**23**;Oct 31, 2002;Build 25
 +2       ;
 +3       ; This routine uses the following IAs:
 +4       ;  #4290 - ^PXRMINDX global     (controlled)
 +5       ;
EN1       ;CALLED FROM GMVGETD ENTRY POINT GETVM 
 +1        KILL ^TMP($JOB,"GMRV")
 +2        NEW GJ,GMRDATE,GMRVDA,GMRVTY,GMVCLIO,GMVENTRY
 +3        FOR GMRVTY="T","P","R","BP","HT","WT","CVP","CG","PO2","PN"
               SET GMRVITY=$ORDER(^GMRD(120.51,"C",GMRVTY,0))
               IF GMRVITY>0
                   DO SETAR
 +4        IF $ORDER(^TMP($JOB,"GMRV",0))'>0
               KILL ^TMP($JOB,"GMRV")
               QUIT 
 +5        KILL ^TMP($JOB,"GRPC")
 +6        SET GJ=0
           SET GMRDATE=0
 +7        FOR 
               SET GMRDATE=$ORDER(^TMP($JOB,"GMRV",GMRDATE))
               if GMRDATE'>0
                   QUIT 
               DO PRT
QT        ; 
 +1        KILL ^TMP($JOB,"GMRV")
 +2        QUIT 
SETAR     ;
 +1        IF GMVTYPE'=""
               IF GMVTYPE'=GMRVTY
                   QUIT 
 +2        SET GMRDT=GMVSTART-.000001
 +3        FOR 
               SET GMRDT=$ORDER(^PXRMINDX(120.5,"PI",DFN,GMRVITY,GMRDT))
               if (GMRDT'>0)!(GMRDT>GMVEND)
                   QUIT 
               DO SETND
 +4        QUIT 
SETND     ;
 +1        SET GMRVDA=0
 +2        FOR 
               SET GMRVDA=$ORDER(^PXRMINDX(120.5,"PI",DFN,GMRVITY,GMRDT,GMRVDA))
               if $LENGTH(GMRVDA)'>0
                   QUIT 
               Begin DoDot:1
 +3                KILL GMVCLIO
 +4                IF GMRVDA=+GMRVDA
                       Begin DoDot:2
 +5                        DO F1205^GMVUTL(.GMVCLIO,GMRVDA)
                       End DoDot:2
 +6                IF GMRVDA'=+GMRVDA
                       Begin DoDot:2
 +7                        DO CLIO^GMVUTL(.GMVCLIO,GMRVDA)
                       End DoDot:2
 +8                SET GMVCLIO(0)=$GET(GMVCLIO(0))
                   SET GMVCLIO(5)=$GET(GMVCLIO(5))
 +9                IF GMVCLIO(0)=""!($PIECE(GMVCLIO(0),U,8)="")
                       QUIT 
 +10               SET GMVENTRY=GMVCLIO(0)_"|"_GMVCLIO(5)
 +11               DO SETUT
 +12               QUIT 
               End DoDot:1
 +13       QUIT 
SETUT     ;
 +1        SET ^TMP($JOB,"GMRV",+$EXTRACT(GMRDT,1,12),GMRVTY,GMRVDA)=GMVENTRY
 +2        QUIT 
PRT       ;SAVE V/M BY DATE/TIME
 +1        FOR GMRVTY="T","P","R","BP","HT","WT","CVP","CG","PO2","PN"
               IF $DATA(^TMP($JOB,"GMRV",GMRDATE,GMRVTY))
                   SET GMRVDA=0
                   FOR 
                       SET GMRVDA=$ORDER(^TMP($JOB,"GMRV",GMRDATE,GMRVTY,GMRVDA))
                       if $LENGTH(GMRVDA)'>0
                           QUIT 
                       DO SETLN^GMVGETD2
 +2        QUIT