GMVUTL8 ;HIOFO/DS,FT-RPC API TO RETURN ALL VITALS/CATEGORIES/QUALIFIERS ;3/31/05  13:34
 ;;5.0;GEN. MED. REC. - VITALS;**1,3**;Oct 31, 2002
 ;
 ; This routine uses the following IAs:
 ;  #2263 - ^XPAR calls            (Supported)
 ;  #3227 - ^NURAPI calls          (private)
 ;
 ; This routine supports the following IAs:
 ; #4653 - QUALIFRS & SUPO2 entry points     (private)
 ; #4420 - GMV DLL VERSION is called at DLL  (private)
 ; #4354 - GMV GET CATEGORY IEN is called at CATEGORY  (private)
 ; #4357 - GMV GET VITAL TYPE IEN is called at TYPE  (private)
 ;
APTLIST(ARRAY,LOC) ; Returns a list of active patients for a nursing
 ; location in the array specified. [RPC entry point]
 ;  input:   LOC - (Required) NURS LOCATION file (#211.4) ien
 ;  input: ARRAY - (Required) Name of the array to return entries in
 ; output: ARRAY - Subscripted by sequential number with DFN in first
 ;                 piece and patient name in second piece.
 ;         example: ARRAY(#)=DFN^patient name^SSN^DOB^SEX AND AGE
 ;                  ^ATTENDING^VETERAN^INTERNAL DATE/TIME DECEASED
 ;                  ^EXTERNAL DATE/TIME DECEASED
 ;
 
I $G(LOC)="" ARRAY(1)=-1
 
DFN,GMVARRAY,GMVCNT,GMVPAT,PATNAME
 
APTLIST^NURAPI(LOC,.GMVARRAY)
 
I $G(GMVARRAY(1))'>0 ARRAY(1)=-1 Q
 S 
GMVCNT=0
 
F  S GMVCNT=$O(GMVARRAY(GMVCNT)) Q:'GMVCNT  D
 
.DFN=$P(GMVARRAY(GMVCNT),U,1)
 .
Q:'DFN
 
.PATNAME=$P(GMVARRAY(GMVCNT),U,2)
 .
PTINFO^GMVUTL3(.GMVPAT,DFN)
 .
ARRAY(GMVCNT)=DFN_U_PATNAME_U_GMVPAT
 
.Q
 Q
TYPE(RESULT,GMVTYPE) ;GMV GET VITAL TYPE IEN [RPC entry point]
 ; Input:
 ;   RESULT = variable name to hold result
 ;  GMVTYPE = Name of Vital Type (from FILE 120.51) (e.g., WEIGHT)
 ; Output: Returns the IEN if GMVTYPE exists in FILE 120.51
 ;         else returns -1
 ;
 
GMVTYPE="" RESULT=-1 Q
 S 
RESULT=+$O(^GMRD(120.51,"B",GMVTYPE,0))
 
Q
CATEGORY(RESULT,GMVCAT) ;GMV GET CATEGORY IEN [RPC entry point]
 ; Input
 ;  RESULT = variable name to hold result
 ;  GMVCAT = Name of Category (from FILE 120.53) (e.g., METHOD)
 ; Output: Returns the IEN if GMVTYPE exists in FILE 120.53
 ;         else returns -1
 
GMVCAT="" RESULT=-1 Q
 S 
RESULT=+$O(^GMRD(120.53,"B",GMVCAT,0))
 
Q
QUALIFER(RESULT,GMVQUAL) ;Return IEN of Qualifier name
 ; Input:
 ;   RESULT = variable name to hold result
 ;  GMVQUAL = Name of Qualifier (from FILE 120.52) (e.g., ORAL)
 ; Output: Returns the IEN if GMVQUAL exists in FILE 120.52
 ;         else returns -1
 ;
 
GMVQUAL="" RESULT=-1 Q
 S 
RESULT=+$O(^GMRD(120.52,"B",GMVQUAL,0))
 
Q
VITALIEN() ;Returns the Vital Type IENS in a list separated by commas.
 ; ex: ",8,9,21,20,5,3,22,1,2,19,"
 ;
 
GMVABB,GMVIEN,GMVLIST
 
GMVLIST=""
 
GMVABB="BP","T","R","P","HT","WT","CVP","CG","PO2","PN" D
 
.GMVIEN=$O(^GMRD(120.51,"C",GMVABB,0))
 .
Q:'GMVIEN
 
.GMVLIST=GMVLIST_","_GMVIEN
 
.Q
 I $L
(GMVLIST)'="," GMVLIST=GMVLIST_","
 
GMVLIST
 
;
QUALIFRS(VIEN) ;Function to return vitals qualifiers text
 ; VIEN is the FILE 120.5 IEN
 ; Returns the qualifiers in a string of text
 ; e.g., Actual,Standing
 ;
 
QUALS,VQIEN,QNAME
 
QUALS=""
 
'VIEN QUALS
 
VQIEN=0
 
F  S VQIEN=$O(^GMR(120.5,VIEN,5,"B",VQIEN)) Q:'VQIEN  D
 
.QNAME=$P($G(^GMRD(120.52,+VQIEN,0)),U,1)
 .
QNAME]"" QUALS=QUALS_QNAME_","
 
.Q
 I $L
(QUALS)>0 QUALS=$E(QUALS,1,$L(QUALS)-1)
 
QUALS
SUPO2(VIEN) ;Function to return the Supplemental O2 value
 ; VIEN is the FILE 120.5 IEN
 ; Returns the Supplemental O2 value (#1.4)
 ; e.g., 2.0 l/min 90%
 ;
 
VIEN=+$G(VIEN)
 
Q $P($G(^GMR(120.5,VIEN,0)),U,10)
 
;
DLL(RESULT,GMVX) ; Entry for [GMV DLL VERSION] RPC. Returns DLL version check
 ; RESULT = variable name to return check
 ;   GMVX = dll name and version date/time
 ; Returns yes or no  
 
RESULT=$$GET^XPAR("SYS","GMV DLL VERSION",GMVX,"E")
 
S:RESULT="" RESULT="NO"
 
Q
 
;