GMVGETD ;HOIFO/YH,FT-EXTRACTS WARD/ROOM-BED/PT AND PT VITALS ;5/25/05 16:32 ;;5.0;GEN. MED. REC. - VITALS;**3**;Oct 31, 2002 ; ; This routine uses the following IAs: ; #1380 - ^DG(405.4 references (controlled) ; #1377 - ^DIC(42 references (controlled) ; #10035 - FILE 2 references (supported) ; #10039 - FILE 42 references (supported) ; ; This routine supports the following IAs: ; #4416 - GMV EXTRACT REC RPC is called at GETVM (private) ; #4358 - GMV LATEST VM RPC is called at GETLAT (private) ; GETVM(RESULT,GMRVDATA) ;GMV EXTRACT REC [RPC entry point] ;RETURNS VITALS/MEASUREMENTS FOR A PARTICULAR PATIENT A FOR GIVEN DATE/TIME SPAN IN RESULT ARRAY. ;GMRVDATA = DFN^END DATE VITAL TAKEN^VITAL TYPE (OPTIONAL)^START DATE VITAL TAKEN N GMVDAYS,DFN,GMRVSDT,GMRVFDT,GMVTYPE S DFN=+$P(GMRVDATA,"^"),GMRVSDT=+$P(GMRVDATA,"^",2),GMVDAYS=$P(GMRVDATA,"^",4),GMVTYPE=$P(GMRVDATA,"^",3) K ^TMP($J,"GRPC") S GMRVFDT=$P(GMRVSDT,".",1)_".2400" I GMVDAYS'="" S GMRVSDT=$P(GMVDAYS,".",1) S:GMVTYPE'="" GMVTYPE(1)=$P(^GMRD(120.51,$O(^GMRD(120.51,"C",GMVTYPE,0)),0),"^") D EN1^GMVGETD1 I '$D(^TMP($J,"GRPC")) S ^TMP($J,"GRPC",1)="0^NO "_$S(GMVTYPE'="":GMVTYPE(1),1:"VITALS/MEASUREMENTS ")_" ENTERED WITHIN THIS PERIOD" S RESULT=$NA(^TMP($J,"GRPC")) K GMRDT,GMRVARY,GMRVITY,GMRVX,GMRZZ Q GETLAT(RESULT,GMRDFN) ;GMV LATEST VM [RPC entry point] ; RETURNS THE LATEST VITALS/MEASUREMENTS FOR A GIVEN PATIENT(GMRDFN) ; IN RESULT ARRAY. K ^TMP($J,"GRPC") D EN1^GMVLAT0(GMRDFN) S RESULT=$NA(^TMP($J,"GRPC")) Q WARDLOC(RESULT,DUMMY) ;GMV WARD LOCATION [RPC entry point] ;RETURNS MAS WARD LOCATIONS IN RESULT ARRAY K ^TMP($J,"GWARD"),^TMP($J,"GMRV") N GMRWARD,GINDEX,GN,GMR D LIST^DIC(42,"","","","*","","","","","I '$$INACT42^GMVUT2(+Y)","^TMP($J,""GMRV"")") S GINDEX=+$P($G(^TMP($J,"GMRV","DILIST",0)),"^") I GINDEX>0 D . S (GMR,GN)=0 F S GN=$O(^TMP($J,"GMRV","DILIST",1,GN)) Q:GN'>0 D . . S GMRWARD(1)=^TMP($J,"GMRV","DILIST",1,GN),GMRWARD=+^TMP($J,"GMRV","DILIST",2,GN) I $O(^DPT("CN",GMRWARD(1),0))>0 S GMR=GMR+1,^TMP($J,"GWARD",GMR)=GMRWARD_"^"_GMRWARD(1)_U_^DIC(42,GMRWARD,44) K ^TMP($J,"GMRV") S RESULT=$NA(^TMP($J,"GWARD")) Q WARDPT(RESULT,GMRWARD) ;GMV WARD PT [RPC entry point] ;RETURNS A LIST OF PATIENTS ADMITTED TO A GIVEN MAS WARD(GMRWARD) IN RESULT ARRAY. Q:'$D(^DPT("CN",GMRWARD)) N OUT,GN,DFN,DFN1,GMVPAT K ^TMP($J,"GMRPT") S (GN,DFN)=0 F S DFN=$O(^DPT("CN",GMRWARD,DFN)) Q:DFN'>0 D . I $D(^DPT(DFN,0)) D . . S GMVPAT="" . . D PTINFO^GMVUTL3(.GMVPAT,DFN) . . S OUT($P(^DPT(DFN,0),"^"),DFN)=DFN_"^"_$P(^DPT(DFN,0),"^")_"^"_GMVPAT I '$D(OUT) Q S DFN="" F S DFN=$O(OUT(DFN)) Q:DFN="" D .S DFN1=0 .F S DFN1=$O(OUT(DFN,DFN1)) Q:'DFN1 D ..S GN=GN+1,^TMP($J,"GMRPT",GN)=OUT(DFN,DFN1) ..Q .Q S RESULT=$NA(^TMP($J,"GMRPT")) Q ROOMBED(RESULT,GMRWARD) ;GMV ROOM/BED [RPC entry point] ;RETURNS A LIST OF ROOMS/BEDS FOR A GIVEN MAS WARD(GMRWARD) IN RESULT ARRAY. Q:'$D(^DIC(42,"B",GMRWARD)) N GN,GROOM,GWARD,GMVTMP K ^TMP($J,"GROOM") S (GN,GROOM)=0,GWARD=$O(^DIC(42,"B",GMRWARD,0)) I GWARD'>0 S ^TMP($J,"GROOM",1)="NO ROOM" G QUIT F S GROOM=$O(^DG(405.4,"W",GWARD,GROOM)) Q:GROOM'>0 I $D(^DG(405.4,GROOM)) D . S GMVTMP($P($P(^DG(405.4,GROOM,0),"^"),"-",1))=GROOM . ;S GN=GN+1,^TMP($J,"GROOM",GN)=GROOM_"^"_$P(^DG(405.4,GROOM,0),"^") . Q S GROOM="",GN=0 F S GROOM=$O(GMVTMP(GROOM)) Q:GROOM="" D . S GN=GN+1,^TMP($J,"GROOM",GN)=GMVTMP(GROOM)_"^"_GROOM . Q QUIT S RESULT=$NA(^TMP($J,"GROOM")) Q