source: FOIAVistA/trunk/r/GEN_MED_REC_VITALS-GMRV/GMRVED2.m@ 1751

Last change on this file since 1751 was 628, checked in by George Lilly, 15 years ago

initial load of FOIAVistA 6/30/08 version

File size: 5.6 KB
Line 
1GMRVED2 ;HIOFO/RM,YH,FT-VITAL SIGNS EDIT SHORT FORM ;11/15/04 10:30
2 ;;5.0;GEN. MED. REC. - VITALS;**2**;Oct 31, 2002
3 ;
4 ; This routine uses the following IAs:
5 ; #10035 - ^DPT( references (supported)
6 ; #10061 - ^VADPT calls (supported)
7 ; #10103 - ^XLFDT calls (supported)
8 ; #10104 - ^XLFSTR calls (supported)
9 ;
10EN1 ; SORT PATIENTS ON WARD
11 K ^TMP($J)
12WSA1 ; SET ^TMP($J, FOR SORT
13 D DEM^VADPT,INP^VADPT S GMRRMBD=$S(VAIN(5)'="":VAIN(5),1:" BLANK"),GMRNAM=$S(VADM(1)'="":VADM(1),1:" BLANK") D KVAR^VADPT K VA
14 S:$S("Aa"[GMREDB:1,$D(GMRROOM($P(GMRRMBD,"-"))):1,1:0) ^TMP($J,GMRRMBD,GMRNAM,DFN)=""
15 S DFN=$O(^DPT("CN",GMRWARD(1),DFN))
16 Q:DFN="" G WSA1
17EN2 ; BEGIN EDITING WARD VITALS
18 I $O(^TMP($J,0))="" S GMROUT=1 Q
19 W !,"Begin entering patient vitals." S GMRDT0=GMRVIDT
20 S GMRRMBD="" F GMRI=0:0 S GMRRMBD=$O(^TMP($J,GMRRMBD)) Q:GMRRMBD=""!GMROUT S GMRNAM="" F GMRI=0:0 S GMRNAM=$O(^TMP($J,GMRRMBD,GMRNAM)) Q:GMRNAM=""!GMROUT F DFN=0:0 S DFN=$O(^TMP($J,GMRRMBD,GMRNAM,DFN)) Q:DFN'>0 D V1 Q:GMROUT
21 W !,"Enter return to continue" R X:DTIME Q
22V1 ;
23 W !!,$S(GMRNAM'=" BLANK":GMRNAM,1:DFN),?$X+10,$S(GMRRMBD'=" BLANK":GMRRMBD,1:"")," OK? YES// " R GMRX:DTIME
24 I GMRX="^"!('$T) S GMROUT=1 Q
25 S GMRX=$$UP^XLFSTR(GMRX) I ((GMRX="")!($E(GMRX)="Y")) K GMRTO S GDT=GMRVIDT D EN1^GMRVADM G:GMROUT&'$D(GMRTO) V2 D EN2^GMRVED3 G:GMROUT&'$D(GMRTO) V2 Q
26 G:GMRX?1"N".E V2
27 W !,"ANSWER YES OR NO" G V1
28V2 ;
29 W !!,"Do you wish to stop looping through names? YES//" R GMRX:DTIME
30 S GMRX=$$UP^XLFSTR(GMRX) I (('$T)!(GMRX="")!($E(GMRX)="Y")!(GMRX="^")) S GMROUT=1 Q
31 I GMRX?1"N".E S GMROUT=0 Q
32 W !,"ANSWER YES OR NO" G V2
33EN4 ; ENTRY FROM GMRVED0 TO ADD THE PATIENT DATA TO THE 120.5 FILE
34 D NOW^%DTC S GMRDATE=%
35 F GMRX=2:1:$L(GMRSTR(0),";")-1 S GMRVITY=$P(GMRSTR(0),";",GMRX) D
36 . S GMRVIT=$S(GMRVITY="T":"TEMPERATURE",GMRVITY="P":"PULSE",GMRVITY="R":"RESPIRATION",GMRVITY="BP":"BLOOD PRESSURE",GMRVITY="HT":"HEIGHT",GMRVITY="CG":"CIRCUMFERENCE/GIRTH",1:"")
37 . S:GMRVIT="" GMRVIT=$S(GMRVITY="WT":"WEIGHT",GMRVITY="CVP":"CENTRAL VENOUS PRESSURE",GMRVITY="PO2":"PULSE OXIMETRY",GMRVITY="PN":"PAIN",1:"")
38 . D:$G(GMRDAT(GMRVITY))'=""&(GMRVIT'="") ADDNODE
39 Q
40ADDNODE ; add data to the 120.5 file
41 N GMVDTDUN,GMVFDA,GMVIEN
42 S GMVDTDUN=GMRVIDT
43 S GMRVIT(1)=$O(^GMRD(120.51,"B",GMRVIT,0))
44 S GMVDTDUN=$$CHKDT(GMRVIDT,GMRVIT(1))
45 S GMVFDA(120.5,"+1,",.01)=GMVDTDUN ;Date/Time
46 S GMVFDA(120.5,"+1,",.02)=DFN ;Patient
47 S GMVFDA(120.5,"+1,",.03)=GMRVIT(1) ;Vital Type
48 S GMVFDA(120.5,"+1,",.04)=GMRDATE ;Date Time entered
49 S GMVFDA(120.5,"+1,",.05)=GMRVHLOC ;Hospital
50 S GMVFDA(120.5,"+1,",.06)=DUZ ;Entered by (DUZ)
51 S GMVFDA(120.5,"+1,",1.2)=GMRDAT(GMRVITY) ;Rate
52 S GMVFDA(120.5,"+1,",1.4)=$G(GMRO2(GMRVITY)) ;Sup 02
53 S GMVIEN=""
54 D UPDATE^DIE("","GMVFDA","GMVIEN")
55 ;file any qualifiers
56 I $D(GMRSITE(GMRVITY))!$D(GMRINF(GMRVITY)) D
57 .I $G(GMRSITE(GMRVITY))'="" D
58 ..S GDATA=+$P(GMRSITE(GMRVITY),U,2)
59 ..Q:'GDATA
60 ..D ADDQUAL(GMVIEN(1)_"^"_GDATA)
61 ..Q
62 .I $D(GMRINF(GMRVITY)) D
63 ..S I=0
64 ..F S I=$O(GMRINF(GMRVITY,I)) Q:I'>0 D
65 ...S I(1)=""
66 ...F S I(1)=$O(GMRINF(GMRVITY,I,I(1))) Q:I(1)="" D
67 ....S GDATA=+$P(GMRINF(GMRVITY,I,I(1)),"^")
68 ....Q:'GDATA
69 ....D ADDQUAL(GMVIEN(1)_"^"_GDATA)
70 ....Q
71 ...Q
72 ..Q
73 .Q
74 S DA=+GMVIEN(1)
75 I GMREDB="P1" S GMRVIEN(GMRVITY)=DA_"^"_GMRDAT(GMRVITY)_"^"_$G(GMRSITE(GMRVITY))
76 S:GMRENTY>4 GLAST=GMRVIDT,GLAST(1)=$G(GLAST(1))+1
77 Q
78XREF(DA) ; Set cross-references for FILE 120.5 entry
79 ; Execute SET logic only. Set's all cross-references for this entry.
80 ; DA is the record number
81 N DIC,DIK,X,Y
82 Q:'DA
83 S DIK="^GMR(120.5,"
84 D IX1^DIK
85 Q
86XREF1(DA) ; Set cross-references for FILE 120.5 entry
87 ; Execute SET logic only. Set's all cross-references for this entry.
88 ; DA is the record number
89 N DIC,DIK,GMRVDA,GMRVIEN,X,Y
90 Q:'DA
91 S GMRVIEN=0,GMRVDA=DA
92 F S GMRVIEN=$O(^GMR(120.5,GMRVDA,5,GMRVIEN)) Q:'GMRVIEN D
93 .S DA(1)=GMRVDA,DA=GMRVIEN
94 .S DIK="^GMR(120.5,DA(1),5,"
95 .D IX1^DIK
96 .Q
97 Q
98SETPRMT ; SET VITAL TYPE PATTERN MATCH
99 S G=$P(GMRSTR(0),";",GMRX)
100 S GMRHELP=GMRHELP_$S(G="P":"PPP",G="WT":"WWW.WW",G="R":"RR",G="CG":"NNN.NN",G="CVP":"NN",G="PO2":"NNN",G="HT":"HH",G="BP":"BBB/BBB/BBB (or BBB/BBB)",G="T":"TTT.T",G="PN":"NN",1:"")_$S(GMRX'=($L(GMRSTR(0),";")-1):"-",1:"")
101 S GMRHELP(1)=GMRHELP(1)_$S(GMRHELP(1)'="":",",1:"")_$P(GMRSTR(0),";",GMRX)_"^GMRVUT1"
102 S GMRPRMT=GMRPRMT_$S(G="T":"Temp",G="P":"Pulse",G="WT":"Wt.",G="R":"Resp",G="HT":"Ht.",G="BP":"BP",G="CG":"Circumference/Girth",G="CVP":"CVP",G="PO2":"PO2",G="PN":"Pain",1:"")_$S(GMRX'=($L(GMRSTR(0),";")-1):"-",1:"")
103 Q
104CHKDT(GMVDT,GMVSAV) ;Check if there is an entry for that date & time
105 N GMVA,GMVTY
106 S GMVA=0
107 F S GMVA=$O(^GMR(120.5,"B",GMVDT,GMVA)) Q:'GMVA D
108 .I DFN'=$P($G(^GMR(120.5,GMVA,0)),U,2) Q
109 .S GMVTY=$P($G(^GMR(120.5,GMVA,0)),"^",3)
110 .I GMVTY=GMVSAV D
111 ..S GMVDT=$$FMADD^XLFDT(GMVDT,"","","",1)
112 ..Q
113 .Q
114 Q GMVDT
115 ;
116ADDQUAL(GMRVDATA) ; Add qualifiers to FILE 120.5 entry
117 ; ADD QUALIFIER TO 120.505 SUBFILE
118 ; Input:
119 ; GMRVDATA=120.5 IEN^QUALIFIER (120.52) IEN
120 ;
121 N GMVCNT,GMVERR,GMVFDA,GMVOKAY,GMRVIEN,GMRVQUAL
122 S GMRVIEN=+$P(GMRVDATA,"^",1) ;File 120.5 ien
123 S GMRVQUAL=+$P(GMRVDATA,"^",2) ;File 120.52 ien
124 ; Does File 120.5 entry exist?
125 I '$D(^GMR(120.5,GMRVIEN,0)) Q
126 ; Is the qualifier already stored?
127 I $O(^GMR(120.5,GMRVIEN,5,"B",GMRVQUAL,0))>0 Q
128 ; Legitimate Qualifier?
129 I '$D(^GMRD(120.52,GMRVQUAL,0)) Q
130 S GMVCNT=0 ;counter for number of tries to lock an entry
131B2 ; Lock the entry
132 I GMVCNT>3 Q ;4 strikes and you're out
133 L +^GMR(120.5,GMRVIEN,0):1
134 S GMVCNT=GMVCNT+1
135 I '$T L -^GMR(120.5,GMRVIEN,0) G B2
136 ; Store the qualifier
137 S GMVFDA(120.505,"+1,"_GMRVIEN_",",.01)=GMRVQUAL
138 D UPDATE^DIE("","GMVFDA","GMVOKAY","GMVERR")
139 L -^GMR(120.5,GMRVIEN,0)
140 Q
Note: See TracBrowser for help on using the repository browser.