| 1 | GMVGETD ;HOIFO/YH,FT-EXTRACTS WARD/ROOM-BED/PT AND PT VITALS ;5/25/05  16:32
 | 
|---|
| 2 |  ;;5.0;GEN. MED. REC. - VITALS;**3**;Oct 31, 2002
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; This routine uses the following IAs:
 | 
|---|
| 5 |  ; #1380  - ^DG(405.4 references   (controlled)
 | 
|---|
| 6 |  ; #1377  - ^DIC(42 references     (controlled)
 | 
|---|
| 7 |  ; #10035 - FILE 2 references      (supported)
 | 
|---|
| 8 |  ; #10039 - FILE 42 references     (supported)
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  ; This routine supports the following IAs:
 | 
|---|
| 11 |  ; #4416 - GMV EXTRACT REC RPC is called at GETVM  (private)
 | 
|---|
| 12 |  ; #4358 - GMV LATEST VM RPC is called at GETLAT (private)
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 | GETVM(RESULT,GMRVDATA) ;GMV EXTRACT REC [RPC entry point]
 | 
|---|
| 15 |  ;RETURNS VITALS/MEASUREMENTS FOR A PARTICULAR PATIENT A FOR GIVEN DATE/TIME SPAN IN RESULT ARRAY.
 | 
|---|
| 16 |  ;GMRVDATA = DFN^END DATE VITAL TAKEN^VITAL TYPE (OPTIONAL)^START DATE VITAL TAKEN
 | 
|---|
| 17 |  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")
 | 
|---|
| 18 |  S GMRVFDT=$P(GMRVSDT,".",1)_".2400"
 | 
|---|
| 19 |  I GMVDAYS'="" S GMRVSDT=$P(GMVDAYS,".",1)
 | 
|---|
| 20 |  S:GMVTYPE'="" GMVTYPE(1)=$P(^GMRD(120.51,$O(^GMRD(120.51,"C",GMVTYPE,0)),0),"^")
 | 
|---|
| 21 |  D EN1^GMVGETD1
 | 
|---|
| 22 |  I '$D(^TMP($J,"GRPC")) S ^TMP($J,"GRPC",1)="0^NO "_$S(GMVTYPE'="":GMVTYPE(1),1:"VITALS/MEASUREMENTS ")_" ENTERED WITHIN THIS PERIOD"
 | 
|---|
| 23 |  S RESULT=$NA(^TMP($J,"GRPC"))
 | 
|---|
| 24 |  K GMRDT,GMRVARY,GMRVITY,GMRVX,GMRZZ
 | 
|---|
| 25 |  Q
 | 
|---|
| 26 | GETLAT(RESULT,GMRDFN) ;GMV LATEST VM [RPC entry point]
 | 
|---|
| 27 |  ; RETURNS THE LATEST VITALS/MEASUREMENTS FOR A GIVEN PATIENT(GMRDFN)
 | 
|---|
| 28 |  ; IN RESULT ARRAY.
 | 
|---|
| 29 |  K ^TMP($J,"GRPC") D EN1^GMVLAT0(GMRDFN)
 | 
|---|
| 30 |  S RESULT=$NA(^TMP($J,"GRPC"))
 | 
|---|
| 31 |  Q
 | 
|---|
| 32 | WARDLOC(RESULT,DUMMY) ;GMV WARD LOCATION [RPC entry point]
 | 
|---|
| 33 |  ;RETURNS MAS WARD LOCATIONS IN RESULT ARRAY
 | 
|---|
| 34 |  K ^TMP($J,"GWARD"),^TMP($J,"GMRV") N GMRWARD,GINDEX,GN,GMR
 | 
|---|
| 35 |  D LIST^DIC(42,"","","","*","","","","","I '$$INACT42^GMVUT2(+Y)","^TMP($J,""GMRV"")")
 | 
|---|
| 36 |  S GINDEX=+$P($G(^TMP($J,"GMRV","DILIST",0)),"^")
 | 
|---|
| 37 |  I GINDEX>0 D
 | 
|---|
| 38 |  . S (GMR,GN)=0 F  S GN=$O(^TMP($J,"GMRV","DILIST",1,GN)) Q:GN'>0  D
 | 
|---|
| 39 |  . . 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)
 | 
|---|
| 40 |  K ^TMP($J,"GMRV") S RESULT=$NA(^TMP($J,"GWARD"))
 | 
|---|
| 41 |  Q
 | 
|---|
| 42 | WARDPT(RESULT,GMRWARD) ;GMV WARD PT [RPC entry point]
 | 
|---|
| 43 |  ;RETURNS A LIST OF PATIENTS ADMITTED TO A GIVEN MAS WARD(GMRWARD) IN RESULT ARRAY.
 | 
|---|
| 44 |  Q:'$D(^DPT("CN",GMRWARD))
 | 
|---|
| 45 |  N OUT,GN,DFN,DFN1,GMVPAT
 | 
|---|
| 46 |  K ^TMP($J,"GMRPT")
 | 
|---|
| 47 |  S (GN,DFN)=0 F  S DFN=$O(^DPT("CN",GMRWARD,DFN)) Q:DFN'>0  D
 | 
|---|
| 48 |  . I $D(^DPT(DFN,0)) D
 | 
|---|
| 49 |  . . S GMVPAT=""
 | 
|---|
| 50 |  . . D PTINFO^GMVUTL3(.GMVPAT,DFN)
 | 
|---|
| 51 |  . . S OUT($P(^DPT(DFN,0),"^"),DFN)=DFN_"^"_$P(^DPT(DFN,0),"^")_"^"_GMVPAT
 | 
|---|
| 52 |  I '$D(OUT) Q
 | 
|---|
| 53 |  S DFN=""
 | 
|---|
| 54 |  F  S DFN=$O(OUT(DFN)) Q:DFN=""  D
 | 
|---|
| 55 |  .S DFN1=0
 | 
|---|
| 56 |  .F  S DFN1=$O(OUT(DFN,DFN1)) Q:'DFN1  D
 | 
|---|
| 57 |  ..S GN=GN+1,^TMP($J,"GMRPT",GN)=OUT(DFN,DFN1)
 | 
|---|
| 58 |  ..Q
 | 
|---|
| 59 |  .Q
 | 
|---|
| 60 |  S RESULT=$NA(^TMP($J,"GMRPT"))
 | 
|---|
| 61 |  Q
 | 
|---|
| 62 | ROOMBED(RESULT,GMRWARD) ;GMV ROOM/BED [RPC entry point]
 | 
|---|
| 63 |  ;RETURNS A LIST OF ROOMS/BEDS FOR A GIVEN MAS WARD(GMRWARD) IN RESULT ARRAY.
 | 
|---|
| 64 |  Q:'$D(^DIC(42,"B",GMRWARD))
 | 
|---|
| 65 |  N GN,GROOM,GWARD,GMVTMP K ^TMP($J,"GROOM")
 | 
|---|
| 66 |  S (GN,GROOM)=0,GWARD=$O(^DIC(42,"B",GMRWARD,0)) I GWARD'>0 S ^TMP($J,"GROOM",1)="NO ROOM" G QUIT
 | 
|---|
| 67 |  F  S GROOM=$O(^DG(405.4,"W",GWARD,GROOM)) Q:GROOM'>0  I $D(^DG(405.4,GROOM)) D 
 | 
|---|
| 68 |  . S GMVTMP($P($P(^DG(405.4,GROOM,0),"^"),"-",1))=GROOM
 | 
|---|
| 69 |  . ;S GN=GN+1,^TMP($J,"GROOM",GN)=GROOM_"^"_$P(^DG(405.4,GROOM,0),"^")
 | 
|---|
| 70 |  . Q
 | 
|---|
| 71 |  S GROOM="",GN=0
 | 
|---|
| 72 |  F  S GROOM=$O(GMVTMP(GROOM)) Q:GROOM=""  D
 | 
|---|
| 73 |  . S GN=GN+1,^TMP($J,"GROOM",GN)=GMVTMP(GROOM)_"^"_GROOM
 | 
|---|
| 74 |  . Q
 | 
|---|
| 75 | QUIT S RESULT=$NA(^TMP($J,"GROOM"))
 | 
|---|
| 76 |  Q
 | 
|---|