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
|
---|