VistA-PGC/PEDHTML-T14.KID

1079 lines
30 KiB
Plaintext
Raw Normal View History

KIDS Distribution saved on Sep 26, 2010@21:44:11
Added titles and changed date on file
**KIDS**:PEDHTML 1.0^
**INSTALL NAME**
PEDHTML 1.0
"BLD",7337,0)
PEDHTML 1.0^^0^3100926^n
"BLD",7337,1,0)
^^35^35^3071115^
"BLD",7337,1,1,0)
This patch adds the ability to view Pediatric Growth Charts to CPRS.
"BLD",7337,1,2,0)
"BLD",7337,1,3,0)
Installation instructions are in the multi-build containing this build.
"BLD",7337,1,4,0)
"BLD",7337,1,5,0)
The following two Parameters are added:
"BLD",7337,1,6,0)
"BLD",7337,1,7,0)
GMRV PED GROWTH CHART FOLDER for example: /srv/www/htdocs/growth
"BLD",7337,1,8,0)
"BLD",7337,1,9,0)
GMRV PED GROWTH CHART SERVER for example:
"BLD",7337,1,10,0)
http://voe2.openforum.opensourcevista.net/PGC-new/chart.php
"BLD",7337,1,11,0)
"BLD",7337,1,12,0)
The following parameter is also added to:
"BLD",7337,1,13,0)
CPRS GUI TOOLS for System add Command:
"BLD",7337,1,14,0)
Growth Charts=C:\StartGrowthCharts.bat %DFN
"BLD",7337,1,15,0)
(or any other apporpriate directory)
"BLD",7337,1,16,0)
"BLD",7337,1,17,0)
In C: have StartGrowthCharts.bat with for example the following in it:
"BLD",7337,1,18,0)
START http://vistaehr/growth/%1.html
"BLD",7337,1,19,0)
(the "growth" folder name matches with the FOLDER listed in the
"BLD",7337,1,20,0)
GMRV PED GROWTH CHART FOLDER parameter above)
"BLD",7337,1,21,0)
"BLD",7337,1,22,0)
Routine Summary:
"BLD",7337,1,23,0)
================
"BLD",7337,1,24,0)
"BLD",7337,1,25,0)
The second line now reads as follows:
"BLD",7337,1,26,0)
"BLD",7337,1,27,0)
<TAB>;;5.0;GEN. MED. REC. - VITALS;**[patch list]**;Oct 31, 2002
"BLD",7337,1,28,0)
"BLD",7337,1,29,0)
CHECK^XTSUMBLD results:
"BLD",7337,1,30,0)
"BLD",7337,1,31,0)
Routine Before Patch After Patch Patch List
"BLD",7337,1,32,0)
========================================================================
"BLD",7337,1,33,0)
GMRVED2 12357440 12600612 2,nn
"BLD",7337,1,34,0)
GMRVPGC <n/a> 11805207 nn
"BLD",7337,1,35,0)
GMVDCSAV <n/a> 5563465 nn
"BLD",7337,4,0)
^9.64PA^^
"BLD",7337,6.3)
15
"BLD",7337,"KRN",0)
^9.67PA^8989.52^19
"BLD",7337,"KRN",.4,0)
.4
"BLD",7337,"KRN",.401,0)
.401
"BLD",7337,"KRN",.402,0)
.402
"BLD",7337,"KRN",.403,0)
.403
"BLD",7337,"KRN",.5,0)
.5
"BLD",7337,"KRN",.84,0)
.84
"BLD",7337,"KRN",3.6,0)
3.6
"BLD",7337,"KRN",3.8,0)
3.8
"BLD",7337,"KRN",9.2,0)
9.2
"BLD",7337,"KRN",9.8,0)
9.8
"BLD",7337,"KRN",9.8,"NM",0)
^9.68A^3^3
"BLD",7337,"KRN",9.8,"NM",1,0)
GMRVPGC^^0^B34589005
"BLD",7337,"KRN",9.8,"NM",2,0)
GMRVED2^^0^B31440386
"BLD",7337,"KRN",9.8,"NM",3,0)
GMVDCSAV^^0^B20608743
"BLD",7337,"KRN",9.8,"NM","B","GMRVED2",2)
"BLD",7337,"KRN",9.8,"NM","B","GMRVPGC",1)
"BLD",7337,"KRN",9.8,"NM","B","GMVDCSAV",3)
"BLD",7337,"KRN",19,0)
19
"BLD",7337,"KRN",19.1,0)
19.1
"BLD",7337,"KRN",101,0)
101
"BLD",7337,"KRN",409.61,0)
409.61
"BLD",7337,"KRN",771,0)
771
"BLD",7337,"KRN",870,0)
870
"BLD",7337,"KRN",8989.51,0)
8989.51
"BLD",7337,"KRN",8989.51,"NM",0)
^9.68A^2^2
"BLD",7337,"KRN",8989.51,"NM",1,0)
GMRV PED GROWTH CHART FOLDER^^0
"BLD",7337,"KRN",8989.51,"NM",2,0)
GMRV PED GROWTH CHART SERVER^^0
"BLD",7337,"KRN",8989.51,"NM","B","GMRV PED GROWTH CHART FOLDER",1)
"BLD",7337,"KRN",8989.51,"NM","B","GMRV PED GROWTH CHART SERVER",2)
"BLD",7337,"KRN",8989.52,0)
8989.52
"BLD",7337,"KRN",8989.52,"NM",0)
^9.68A^^
"BLD",7337,"KRN",8994,0)
8994
"BLD",7337,"KRN","B",.4,.4)
"BLD",7337,"KRN","B",.401,.401)
"BLD",7337,"KRN","B",.402,.402)
"BLD",7337,"KRN","B",.403,.403)
"BLD",7337,"KRN","B",.5,.5)
"BLD",7337,"KRN","B",.84,.84)
"BLD",7337,"KRN","B",3.6,3.6)
"BLD",7337,"KRN","B",3.8,3.8)
"BLD",7337,"KRN","B",9.2,9.2)
"BLD",7337,"KRN","B",9.8,9.8)
"BLD",7337,"KRN","B",19,19)
"BLD",7337,"KRN","B",19.1,19.1)
"BLD",7337,"KRN","B",101,101)
"BLD",7337,"KRN","B",409.61,409.61)
"BLD",7337,"KRN","B",771,771)
"BLD",7337,"KRN","B",870,870)
"BLD",7337,"KRN","B",8989.51,8989.51)
"BLD",7337,"KRN","B",8989.52,8989.52)
"BLD",7337,"KRN","B",8994,8994)
"BLD",7337,"QUES",0)
^9.62^^
"BLD",7337,"REQB",0)
^9.611^^
"KRN",8989.51,547,-1)
0^2
"KRN",8989.51,547,0)
GMRV PED GROWTH CHART SERVER^Pediatric Growth Chart HTML Server^0
"KRN",8989.51,547,1)
F^^Value should be of the form http://yourserver.net/etc/chart.php
"KRN",8989.51,547,6)
"KRN",8989.51,547,30,0)
^8989.513I^2^1
"KRN",8989.51,547,30,2,0)
1^4.2
"KRN",8989.51,548,-1)
0^1
"KRN",8989.51,548,0)
GMRV PED GROWTH CHART FOLDER^Pediatric Growth Chart Directory^0
"KRN",8989.51,548,1)
F^^The directory where growth chart html pages for each patient are stored
"KRN",8989.51,548,30,0)
^8989.513I^1^1
"KRN",8989.51,548,30,1,0)
1^4.2
"MBREQ")
0
"ORD",20,8989.51)
8989.51;20;;;PAR1E1^XPDTA2;PAR1F1^XPDIA3;PAR1E1^XPDIA3;PAR1F2^XPDIA3;;PAR1DEL^XPDIA3(%)
"ORD",20,8989.51,0)
PARAMETER DEFINITION
"QUES","XPF1",0)
Y
"QUES","XPF1","??")
^D REP^XPDH
"QUES","XPF1","A")
Shall I write over your |FLAG| File
"QUES","XPF1","B")
YES
"QUES","XPF1","M")
D XPF1^XPDIQ
"QUES","XPF2",0)
Y
"QUES","XPF2","??")
^D DTA^XPDH
"QUES","XPF2","A")
Want my data |FLAG| yours
"QUES","XPF2","B")
YES
"QUES","XPF2","M")
D XPF2^XPDIQ
"QUES","XPI1",0)
YO
"QUES","XPI1","??")
^D INHIBIT^XPDH
"QUES","XPI1","A")
Want KIDS to INHIBIT LOGONs during the install
"QUES","XPI1","B")
NO
"QUES","XPI1","M")
D XPI1^XPDIQ
"QUES","XPM1",0)
PO^VA(200,:EM
"QUES","XPM1","??")
^D MG^XPDH
"QUES","XPM1","A")
Enter the Coordinator for Mail Group '|FLAG|'
"QUES","XPM1","B")
"QUES","XPM1","M")
D XPM1^XPDIQ
"QUES","XPO1",0)
Y
"QUES","XPO1","??")
^D MENU^XPDH
"QUES","XPO1","A")
Want KIDS to Rebuild Menu Trees Upon Completion of Install
"QUES","XPO1","B")
NO
"QUES","XPO1","M")
D XPO1^XPDIQ
"QUES","XPZ1",0)
Y
"QUES","XPZ1","??")
^D OPT^XPDH
"QUES","XPZ1","A")
Want to DISABLE Scheduled Options, Menu Options, and Protocols
"QUES","XPZ1","B")
NO
"QUES","XPZ1","M")
D XPZ1^XPDIQ
"QUES","XPZ2",0)
Y
"QUES","XPZ2","??")
^D RTN^XPDH
"QUES","XPZ2","A")
Want to MOVE routines to other CPUs
"QUES","XPZ2","B")
NO
"QUES","XPZ2","M")
D XPZ2^XPDIQ
"RTN")
3
"RTN","GMRVED2")
0^2^B31440386
"RTN","GMRVED2",1,0)
GMRVED2 ;HIOFO/RM,YH,FT-VITAL SIGNS EDIT SHORT FORM ;7/20/07 13:43
"RTN","GMRVED2",2,0)
;;5.0;GEN. MED. REC. - VITALS;**2**;Oct 31, 2002;Build 15
"RTN","GMRVED2",3,0)
;
"RTN","GMRVED2",4,0)
; This routine uses the following IAs:
"RTN","GMRVED2",5,0)
; #10035 - ^DPT( references (supported)
"RTN","GMRVED2",6,0)
; #10061 - ^VADPT calls (supported)
"RTN","GMRVED2",7,0)
; #10103 - ^XLFDT calls (supported)
"RTN","GMRVED2",8,0)
; #10104 - ^XLFSTR calls (supported)
"RTN","GMRVED2",9,0)
;
"RTN","GMRVED2",10,0)
EN1 ; SORT PATIENTS ON WARD
"RTN","GMRVED2",11,0)
K ^TMP($J)
"RTN","GMRVED2",12,0)
WSA1 ; SET ^TMP($J, FOR SORT
"RTN","GMRVED2",13,0)
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
"RTN","GMRVED2",14,0)
S:$S("Aa"[GMREDB:1,$D(GMRROOM($P(GMRRMBD,"-"))):1,1:0) ^TMP($J,GMRRMBD,GMRNAM,DFN)=""
"RTN","GMRVED2",15,0)
S DFN=$O(^DPT("CN",GMRWARD(1),DFN))
"RTN","GMRVED2",16,0)
Q:DFN="" G WSA1
"RTN","GMRVED2",17,0)
EN2 ; BEGIN EDITING WARD VITALS
"RTN","GMRVED2",18,0)
I $O(^TMP($J,0))="" S GMROUT=1 Q
"RTN","GMRVED2",19,0)
W !,"Begin entering patient vitals." S GMRDT0=GMRVIDT
"RTN","GMRVED2",20,0)
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
"RTN","GMRVED2",21,0)
W !,"Enter return to continue" R X:DTIME Q
"RTN","GMRVED2",22,0)
V1 ;
"RTN","GMRVED2",23,0)
W !!,$S(GMRNAM'=" BLANK":GMRNAM,1:DFN),?$X+10,$S(GMRRMBD'=" BLANK":GMRRMBD,1:"")," OK? YES// " R GMRX:DTIME
"RTN","GMRVED2",24,0)
I GMRX="^"!('$T) S GMROUT=1 Q
"RTN","GMRVED2",25,0)
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
"RTN","GMRVED2",26,0)
G:GMRX?1"N".E V2
"RTN","GMRVED2",27,0)
W !,"ANSWER YES OR NO" G V1
"RTN","GMRVED2",28,0)
V2 ;
"RTN","GMRVED2",29,0)
W !!,"Do you wish to stop looping through names? YES//" R GMRX:DTIME
"RTN","GMRVED2",30,0)
S GMRX=$$UP^XLFSTR(GMRX) I (('$T)!(GMRX="")!($E(GMRX)="Y")!(GMRX="^")) S GMROUT=1 Q
"RTN","GMRVED2",31,0)
I GMRX?1"N".E S GMROUT=0 Q
"RTN","GMRVED2",32,0)
W !,"ANSWER YES OR NO" G V2
"RTN","GMRVED2",33,0)
EN4 ; ENTRY FROM GMRVED0 TO ADD THE PATIENT DATA TO THE 120.5 FILE
"RTN","GMRVED2",34,0)
D NOW^%DTC S GMRDATE=%
"RTN","GMRVED2",35,0)
F GMRX=2:1:$L(GMRSTR(0),";")-1 S GMRVITY=$P(GMRSTR(0),";",GMRX) D
"RTN","GMRVED2",36,0)
. S GMRVIT=$S(GMRVITY="T":"TEMPERATURE",GMRVITY="P":"PULSE",GMRVITY="R":"RESPIRATION",GMRVITY="BP":"BLOOD PRESSURE",GMRVITY="HT":"HEIGHT",GMRVITY="CG":"CIRCUMFERENCE/GIRTH",1:"")
"RTN","GMRVED2",37,0)
. S:GMRVIT="" GMRVIT=$S(GMRVITY="WT":"WEIGHT",GMRVITY="CVP":"CENTRAL VENOUS PRESSURE",GMRVITY="PO2":"PULSE OXIMETRY",GMRVITY="PN":"PAIN",1:"")
"RTN","GMRVED2",38,0)
. D:$G(GMRDAT(GMRVITY))'=""&(GMRVIT'="") ADDNODE
"RTN","GMRVED2",39,0)
Q
"RTN","GMRVED2",40,0)
ADDNODE ; add data to the 120.5 file
"RTN","GMRVED2",41,0)
N GMVDTDUN,GMVFDA,GMVIEN
"RTN","GMRVED2",42,0)
S GMVDTDUN=GMRVIDT
"RTN","GMRVED2",43,0)
S GMRVIT(1)=$O(^GMRD(120.51,"B",GMRVIT,0))
"RTN","GMRVED2",44,0)
S GMVDTDUN=$$CHKDT(GMRVIDT,GMRVIT(1))
"RTN","GMRVED2",45,0)
S GMVFDA(120.5,"+1,",.01)=GMVDTDUN ;Date/Time
"RTN","GMRVED2",46,0)
S GMVFDA(120.5,"+1,",.02)=DFN ;Patient
"RTN","GMRVED2",47,0)
S GMVFDA(120.5,"+1,",.03)=GMRVIT(1) ;Vital Type
"RTN","GMRVED2",48,0)
S GMVFDA(120.5,"+1,",.04)=GMRDATE ;Date Time entered
"RTN","GMRVED2",49,0)
S GMVFDA(120.5,"+1,",.05)=GMRVHLOC ;Hospital
"RTN","GMRVED2",50,0)
S GMVFDA(120.5,"+1,",.06)=DUZ ;Entered by (DUZ)
"RTN","GMRVED2",51,0)
S GMVFDA(120.5,"+1,",1.2)=GMRDAT(GMRVITY) ;Rate
"RTN","GMRVED2",52,0)
S GMVFDA(120.5,"+1,",1.4)=$G(GMRO2(GMRVITY)) ;Sup 02
"RTN","GMRVED2",53,0)
S GMVIEN=""
"RTN","GMRVED2",54,0)
D UPDATE^DIE("","GMVFDA","GMVIEN")
"RTN","GMRVED2",55,0)
;file any qualifiers
"RTN","GMRVED2",56,0)
I $D(GMRSITE(GMRVITY))!$D(GMRINF(GMRVITY)) D
"RTN","GMRVED2",57,0)
.I $G(GMRSITE(GMRVITY))'="" D
"RTN","GMRVED2",58,0)
..S GDATA=+$P(GMRSITE(GMRVITY),U,2)
"RTN","GMRVED2",59,0)
..Q:'GDATA
"RTN","GMRVED2",60,0)
..D ADDQUAL(GMVIEN(1)_"^"_GDATA)
"RTN","GMRVED2",61,0)
..Q
"RTN","GMRVED2",62,0)
.I $D(GMRINF(GMRVITY)) D
"RTN","GMRVED2",63,0)
..S I=0
"RTN","GMRVED2",64,0)
..F S I=$O(GMRINF(GMRVITY,I)) Q:I'>0 D
"RTN","GMRVED2",65,0)
...S I(1)=""
"RTN","GMRVED2",66,0)
...F S I(1)=$O(GMRINF(GMRVITY,I,I(1))) Q:I(1)="" D
"RTN","GMRVED2",67,0)
....S GDATA=+$P(GMRINF(GMRVITY,I,I(1)),"^")
"RTN","GMRVED2",68,0)
....Q:'GDATA
"RTN","GMRVED2",69,0)
....D ADDQUAL(GMVIEN(1)_"^"_GDATA)
"RTN","GMRVED2",70,0)
....Q
"RTN","GMRVED2",71,0)
...Q
"RTN","GMRVED2",72,0)
..Q
"RTN","GMRVED2",73,0)
.Q
"RTN","GMRVED2",74,0)
S DA=+GMVIEN(1)
"RTN","GMRVED2",75,0)
I GMREDB="P1" S GMRVIEN(GMRVITY)=DA_"^"_GMRDAT(GMRVITY)_"^"_$G(GMRSITE(GMRVITY))
"RTN","GMRVED2",76,0)
S:GMRENTY>4 GLAST=GMRVIDT,GLAST(1)=$G(GLAST(1))+1
"RTN","GMRVED2",77,0)
; for VOE Pediatric Growth Charts
"RTN","GMRVED2",78,0)
I "8920"[(+GMRVIT(1)) D EN^GMRVPGC(DFN) ; 8=Height 9=Weight 20=Circumference
"RTN","GMRVED2",79,0)
Q
"RTN","GMRVED2",80,0)
XREF(DA) ; Set cross-references for FILE 120.5 entry
"RTN","GMRVED2",81,0)
; Execute SET logic only. Set's all cross-references for this entry.
"RTN","GMRVED2",82,0)
; DA is the record number
"RTN","GMRVED2",83,0)
N DIC,DIK,X,Y
"RTN","GMRVED2",84,0)
Q:'DA
"RTN","GMRVED2",85,0)
S DIK="^GMR(120.5,"
"RTN","GMRVED2",86,0)
D IX1^DIK
"RTN","GMRVED2",87,0)
Q
"RTN","GMRVED2",88,0)
XREF1(DA) ; Set cross-references for FILE 120.5 entry
"RTN","GMRVED2",89,0)
; Execute SET logic only. Set's all cross-references for this entry.
"RTN","GMRVED2",90,0)
; DA is the record number
"RTN","GMRVED2",91,0)
N DIC,DIK,GMRVDA,GMRVIEN,X,Y
"RTN","GMRVED2",92,0)
Q:'DA
"RTN","GMRVED2",93,0)
S GMRVIEN=0,GMRVDA=DA
"RTN","GMRVED2",94,0)
F S GMRVIEN=$O(^GMR(120.5,GMRVDA,5,GMRVIEN)) Q:'GMRVIEN D
"RTN","GMRVED2",95,0)
.S DA(1)=GMRVDA,DA=GMRVIEN
"RTN","GMRVED2",96,0)
.S DIK="^GMR(120.5,DA(1),5,"
"RTN","GMRVED2",97,0)
.D IX1^DIK
"RTN","GMRVED2",98,0)
.Q
"RTN","GMRVED2",99,0)
Q
"RTN","GMRVED2",100,0)
SETPRMT ; SET VITAL TYPE PATTERN MATCH
"RTN","GMRVED2",101,0)
S G=$P(GMRSTR(0),";",GMRX)
"RTN","GMRVED2",102,0)
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:"")
"RTN","GMRVED2",103,0)
S GMRHELP(1)=GMRHELP(1)_$S(GMRHELP(1)'="":",",1:"")_$P(GMRSTR(0),";",GMRX)_"^GMRVUT1"
"RTN","GMRVED2",104,0)
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:"")
"RTN","GMRVED2",105,0)
Q
"RTN","GMRVED2",106,0)
CHKDT(GMVDT,GMVSAV) ;Check if there is an entry for that date & time
"RTN","GMRVED2",107,0)
N GMVA,GMVTY
"RTN","GMRVED2",108,0)
S GMVA=0
"RTN","GMRVED2",109,0)
F S GMVA=$O(^GMR(120.5,"B",GMVDT,GMVA)) Q:'GMVA D
"RTN","GMRVED2",110,0)
.I DFN'=$P($G(^GMR(120.5,GMVA,0)),U,2) Q
"RTN","GMRVED2",111,0)
.S GMVTY=$P($G(^GMR(120.5,GMVA,0)),"^",3)
"RTN","GMRVED2",112,0)
.I GMVTY=GMVSAV D
"RTN","GMRVED2",113,0)
..S GMVDT=$$FMADD^XLFDT(GMVDT,"","","",1)
"RTN","GMRVED2",114,0)
..Q
"RTN","GMRVED2",115,0)
.Q
"RTN","GMRVED2",116,0)
Q GMVDT
"RTN","GMRVED2",117,0)
;
"RTN","GMRVED2",118,0)
ADDQUAL(GMRVDATA) ; Add qualifiers to FILE 120.5 entry
"RTN","GMRVED2",119,0)
; ADD QUALIFIER TO 120.505 SUBFILE
"RTN","GMRVED2",120,0)
; Input:
"RTN","GMRVED2",121,0)
; GMRVDATA=120.5 IEN^QUALIFIER (120.52) IEN
"RTN","GMRVED2",122,0)
;
"RTN","GMRVED2",123,0)
N GMVCNT,GMVERR,GMVFDA,GMVOKAY,GMRVIEN,GMRVQUAL
"RTN","GMRVED2",124,0)
S GMRVIEN=+$P(GMRVDATA,"^",1) ;File 120.5 ien
"RTN","GMRVED2",125,0)
S GMRVQUAL=+$P(GMRVDATA,"^",2) ;File 120.52 ien
"RTN","GMRVED2",126,0)
; Does File 120.5 entry exist?
"RTN","GMRVED2",127,0)
I '$D(^GMR(120.5,GMRVIEN,0)) Q
"RTN","GMRVED2",128,0)
; Is the qualifier already stored?
"RTN","GMRVED2",129,0)
I $O(^GMR(120.5,GMRVIEN,5,"B",GMRVQUAL,0))>0 Q
"RTN","GMRVED2",130,0)
; Legitimate Qualifier?
"RTN","GMRVED2",131,0)
I '$D(^GMRD(120.52,GMRVQUAL,0)) Q
"RTN","GMRVED2",132,0)
S GMVCNT=0 ;counter for number of tries to lock an entry
"RTN","GMRVED2",133,0)
B2 ; Lock the entry
"RTN","GMRVED2",134,0)
I GMVCNT>3 Q ;4 strikes and you're out
"RTN","GMRVED2",135,0)
L +^GMR(120.5,GMRVIEN,0):1
"RTN","GMRVED2",136,0)
S GMVCNT=GMVCNT+1
"RTN","GMRVED2",137,0)
I '$T L -^GMR(120.5,GMRVIEN,0) G B2
"RTN","GMRVED2",138,0)
; Store the qualifier
"RTN","GMRVED2",139,0)
S GMVFDA(120.505,"+1,"_GMRVIEN_",",.01)=GMRVQUAL
"RTN","GMRVED2",140,0)
D UPDATE^DIE("","GMVFDA","GMVOKAY","GMVERR")
"RTN","GMRVED2",141,0)
L -^GMR(120.5,GMRVIEN,0)
"RTN","GMRVED2",142,0)
Q
"RTN","GMRVPGC")
0^1^B34589005
"RTN","GMRVPGC",1,0)
GMRVPGC ;DBA/CJS - Pediatric Growth Chart HTML generator ;9/26/10 21:59
"RTN","GMRVPGC",2,0)
;;5.0;GEN. MED. REC. - VITALS;**[patch list]**;Oct 31, 2002;Build 15
"RTN","GMRVPGC",3,0)
;
"RTN","GMRVPGC",4,0)
EN(DFN) ;
"RTN","GMRVPGC",5,0)
N BMI,DIC,DIV,IO,LABEL,LINE,MAXAGE,NAME,NONE,POP,REF,ROOT,SERVER,SEX,STYLE,TMP,TYPE,VAL,VDT,XPARSYS,XQDIC,XQPSM,XQVOL,XVALS,YVALS
"RTN","GMRVPGC",6,0)
S SERVER=$$GET^XPAR("SYS","GMRV PED GROWTH CHART SERVER")
"RTN","GMRVPGC",7,0)
S ROOT=$$GET^XPAR("SYS","GMRV PED GROWTH CHART FOLDER")
"RTN","GMRVPGC",8,0)
;
"RTN","GMRVPGC",9,0)
S D=^DPT(DFN,0),NAME=$P(D,U),SEX=$P(D,U,2),SEX=$S(SEX="M":1,SEX="F":2,1:0),DOB=$P(D,U,3),DOD=$P($G(^DPT(DFN,.35)),U),PID=$P($G(^DPT(DFN,.36)),U,3)
"RTN","GMRVPGC",10,0)
S Y=DOB D DD^%DT S BIRTH=Y,MAXAGE=$$MNTHSOLD($S(DOD="":DT,DOD'="":DOD),DOB)
"RTN","GMRVPGC",11,0)
;
"RTN","GMRVPGC",12,0)
; See if there are any pediatric vitals to be had
"RTN","GMRVPGC",13,0)
; ^GMR(120.5,"AA",GMRVDFN,GMRVTYP,9999999-GMRVDT,DA)="" "rate" on 0 node piece 8
"RTN","GMRVPGC",14,0)
; types: 8 = Height, 9 - Weight, 20 = Circumference/Girth, 73 - Head qualifier
"RTN","GMRVPGC",15,0)
S NONE=1 F TYPE=8,9,20 D
"RTN","GMRVPGC",16,0)
. S XVALS(TYPE)="",YVALS(TYPE)=""
"RTN","GMRVPGC",17,0)
. S VDT=0 F S VDT=$O(^GMR(120.5,"AA",DFN,TYPE,VDT)) Q:VDT'>0 D
"RTN","GMRVPGC",18,0)
. . S DA=+$O(^GMR(120.5,"AA",DFN,TYPE,VDT,0))
"RTN","GMRVPGC",19,0)
. . I TYPE=20 Q:'$D(^GMR(120.5,DA,5,"B",73)) ; Quit if not "HEAD"
"RTN","GMRVPGC",20,0)
. . Q:+$G(^GMR(120.5,DA,2)) ; Quit if Entered in Error
"RTN","GMRVPGC",21,0)
. . S AGE=$$MNTHSOLD(9999999-VDT,DOB),NONE=0
"RTN","GMRVPGC",22,0)
. . S XVALS(TYPE)=XVALS(TYPE)_","_AGE
"RTN","GMRVPGC",23,0)
. . S VAL=$P(^GMR(120.5,DA,0),U,8),VAL=$S("8,20"[TYPE:VAL*2.54,TYPE=9:VAL/2.2),VAL=$$ROUND(VAL)
"RTN","GMRVPGC",24,0)
. . I TYPE=8!(TYPE=9) S BMI(AGE,TYPE)=VAL
"RTN","GMRVPGC",25,0)
. . S YVALS(TYPE)=YVALS(TYPE)_","_VAL
"RTN","GMRVPGC",26,0)
. . Q
"RTN","GMRVPGC",27,0)
. Q
"RTN","GMRVPGC",28,0)
;
"RTN","GMRVPGC",29,0)
; BMI=WEIGHT/(HEIGHT**2) Weight in Kg, Height in meters
"RTN","GMRVPGC",30,0)
S AGE="",XVALS("BMI")="",YVALS("BMI")="",XVALS("WTHT")="",YVALS("WTHT")=""
"RTN","GMRVPGC",31,0)
F S AGE=$O(BMI(AGE)) Q:AGE'>0 I $D(BMI(AGE,8)),$D(BMI(AGE,9)) D
"RTN","GMRVPGC",32,0)
. S DIV=BMI(AGE,8)**2
"RTN","GMRVPGC",33,0)
. S:DIV'=0 XVALS("BMI")=XVALS("BMI")_","_AGE,YVALS("BMI")=YVALS("BMI")_","_$$ROUND(10000*BMI(AGE,9)/DIV)
"RTN","GMRVPGC",34,0)
. S XVALS("WTHT")=XVALS("WTHT")_","_BMI(AGE,8),YVALS("WTHT")=YVALS("WTHT")_","_BMI(AGE,9)
"RTN","GMRVPGC",35,0)
. Q
"RTN","GMRVPGC",36,0)
;
"RTN","GMRVPGC",37,0)
; Establish HTML doctype & head
"RTN","GMRVPGC",38,0)
S LINE=0 F S LINE=LINE+1,TMP(LINE)=$P($T(HEAD+LINE),";",3) Q:TMP(LINE)=""
"RTN","GMRVPGC",39,0)
;
"RTN","GMRVPGC",40,0)
; Set up the href links
"RTN","GMRVPGC",41,0)
S TMP(LINE)="<P>"_NAME_"</P><P>DOB: "_BIRTH_"</P>",LINE=LINE+1
"RTN","GMRVPGC",42,0)
S REF="<P><a href="""
"RTN","GMRVPGC",43,0)
S LABEL(0)=$S(SEX=1:"Male",1:"Female")_" Age in months vs. Weight kilograms</a></P>"
"RTN","GMRVPGC",44,0)
S LABEL(1)=$S(SEX=1:"Male",1:"Female")_" Age in months vs. Length centimeters 0-36 months</a></P>"
"RTN","GMRVPGC",45,0)
S LABEL(2)=$S(SEX=1:"Male",1:"Female")_" Age in months vs Head Circumference in centimeters 0-36 months</a></p>"
"RTN","GMRVPGC",46,0)
S LABEL(4)=$S(SEX=1:"Male",1:"Female")_" Age in months vs. Height centimeters over 36 months</a></P>"
"RTN","GMRVPGC",47,0)
S LABEL(5)=$S(SEX=1:"Male",1:"Female")_" Body Mass Index-for age</a></P>"
"RTN","GMRVPGC",48,0)
S LABEL(6)=$S(SEX=1:"Male",1:"Female")_" Weight vs Stature</a></P>"
"RTN","GMRVPGC",49,0)
S LABEL(7)=$S(SEX=1:"Male",1:"Female")_" Weight vs Length</a></P>"
"RTN","GMRVPGC",50,0)
S TITLE(0)=$S(SEX=1:"Male",1:"Female")_" Age in months vs. Weight in kilograms"
"RTN","GMRVPGC",51,0)
S TITLE(1)=$S(SEX=1:"Male",1:"Female")_" Age in months vs. Length centimeters for 0-36 months"
"RTN","GMRVPGC",52,0)
S TITLE(2)=$S(SEX=1:"Male",1:"Female")_" Age in months vs Head Circumference in centimeters for 0-36 months"
"RTN","GMRVPGC",53,0)
S TITLE(4)=$S(SEX=1:"Male",1:"Female")_" Age in months vs. Height centimeters over 36 months"
"RTN","GMRVPGC",54,0)
S TITLE(5)=$S(SEX=1:"Male",1:"Female")_" Body Mass Index vs. Age in Months from 24-240 Months"
"RTN","GMRVPGC",55,0)
S TITLE(6)=$S(SEX=1:"Male",1:"Female")_" Weight in Kilograms vs. Height in centimeters"
"RTN","GMRVPGC",56,0)
S TITLE(7)=$S(SEX=1:"Male",1:"Female")_" Weight in Kilograms vs. Length in centimeters"
"RTN","GMRVPGC",57,0)
F STYLE=0,1,2,4,5,6,7 S TYPE=$$TYPE(STYLE) D:$L(XVALS(TYPE))
"RTN","GMRVPGC",58,0)
. Q:("456"[STYLE)&(MAXAGE<36)
"RTN","GMRVPGC",59,0)
. S TMP(LINE)=REF_SERVER_"?style="_$$STRING(STYLE)_"&title="_TITLE(STYLE)_"&sex="_SEX_"&maxage="_$$AGE(MAXAGE,STYLE)_"&xvals="_$P(XVALS(TYPE),",",2,99)_"&yvals="_$P(YVALS(TYPE),",",2,99)_""">"_LABEL(STYLE)
"RTN","GMRVPGC",60,0)
. S LINE=LINE+1
"RTN","GMRVPGC",61,0)
. Q
"RTN","GMRVPGC",62,0)
;
"RTN","GMRVPGC",63,0)
S:NONE TMP(LINE)="<P>THERE ARE NO GROWTH VITALS TO PLOT.</P>",LINE=LINE+1
"RTN","GMRVPGC",64,0)
; last of the labels
"RTN","GMRVPGC",65,0)
S TMP(LINE)="<P>Note: should any xvals or yvals value be inappropriate, or there be an unequal number of values in both lists,",LINE=LINE+1
"RTN","GMRVPGC",66,0)
S TMP(LINE)="the patient plot will be ignored, and a ""blank"" growth chart with percentile values only will be shown.</P>",LINE=LINE+1
"RTN","GMRVPGC",67,0)
S TMP(LINE)="</body>"
"RTN","GMRVPGC",68,0)
S TMP(LINE+1)="</html>"
"RTN","GMRVPGC",69,0)
;
"RTN","GMRVPGC",70,0)
; Write out the file
"RTN","GMRVPGC",71,0)
D OPEN^%ZISH("OUTFILE",ROOT,DFN_".html","W") S:POP GMRVPGC="ERROR"
"RTN","GMRVPGC",72,0)
Q:POP
"RTN","GMRVPGC",73,0)
U IO
"RTN","GMRVPGC",74,0)
S LINE=0 F S LINE=$O(TMP(LINE)) Q:LINE'>0 W TMP(LINE),!
"RTN","GMRVPGC",75,0)
D CLOSE^%ZISH("OUTFILE")
"RTN","GMRVPGC",76,0)
Q
"RTN","GMRVPGC",77,0)
;
"RTN","GMRVPGC",78,0)
; convert age to months
"RTN","GMRVPGC",79,0)
MNTHSOLD(DATE,DOB) ;
"RTN","GMRVPGC",80,0)
S X1=DATE,X2=DOB D ^%DTC S X=X/30.42,X=$$ROUND(X)
"RTN","GMRVPGC",81,0)
Q X
"RTN","GMRVPGC",82,0)
;
"RTN","GMRVPGC",83,0)
ROUND(X) ;
"RTN","GMRVPGC",84,0)
Q $P(X,".")_"."_$E($P(X,".",2),1,2)
"RTN","GMRVPGC",85,0)
;
"RTN","GMRVPGC",86,0)
TYPE(STYLE) ;
"RTN","GMRVPGC",87,0)
Q $S(STYLE=0:9,STYLE=1:8,STYLE=2:20,STYLE=4:8,STYLE=5:"BMI",1:"WTHT")
"RTN","GMRVPGC",88,0)
;
"RTN","GMRVPGC",89,0)
AGE(MAXAGE,STYLE) ;
"RTN","GMRVPGC",90,0)
I MAXAGE<36 Q MAXAGE
"RTN","GMRVPGC",91,0)
I "0456"[STYLE Q MAXAGE
"RTN","GMRVPGC",92,0)
Q 36
"RTN","GMRVPGC",93,0)
;
"RTN","GMRVPGC",94,0)
STRING(STYLE) ;
"RTN","GMRVPGC",95,0)
I STYLE=0 Q "weight-age"
"RTN","GMRVPGC",96,0)
I STYLE=1 Q "length-age"
"RTN","GMRVPGC",97,0)
I STYLE=2 Q "head-age"
"RTN","GMRVPGC",98,0)
I STYLE=4 Q "stature-age"
"RTN","GMRVPGC",99,0)
I STYLE=5 Q "bmi-age"
"RTN","GMRVPGC",100,0)
I STYLE=6 Q "weight-stature"
"RTN","GMRVPGC",101,0)
I STYLE=7 Q "weight-length"
"RTN","GMRVPGC",102,0)
Q 0 ;oops!
"RTN","GMRVPGC",103,0)
;
"RTN","GMRVPGC",104,0)
HEAD ;;
"RTN","GMRVPGC",105,0)
;;<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"RTN","GMRVPGC",106,0)
;; "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
"RTN","GMRVPGC",107,0)
;;<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
"RTN","GMRVPGC",108,0)
;;<head>
"RTN","GMRVPGC",109,0)
;; <title>Growth Chart Example</title>
"RTN","GMRVPGC",110,0)
;; <meta http-equiv="Content-Type" CONTENT="text/html; charset=UTF-8">
"RTN","GMRVPGC",111,0)
;; <meta http-equiv="Expires" CONTENT="0">
"RTN","GMRVPGC",112,0)
;; <meta http-equiv="Cache-Control" CONTENT="no-cache">
"RTN","GMRVPGC",113,0)
;; <meta http-equiv="PRAGMA" CONTENT="NO-CACHE">
"RTN","GMRVPGC",114,0)
;;</head>
"RTN","GMRVPGC",115,0)
;;<body>
"RTN","GMRVPGC",116,0)
;;Click on any one of the following to display the available growth charts for your patient. Use the back button to return to the main page.
"RTN","GMRVPGC",117,0)
;;
"RTN","GMVDCSAV")
0^3^B20608743
"RTN","GMVDCSAV",1,0)
GMVDCSAV ;HOIFO/DAD-VITALS COMPONENT: SAVE DATA ;11/15/07 11:11
"RTN","GMVDCSAV",2,0)
;;5.0;GEN. MED. REC. - VITALS;**9,3**;Oct 31, 2002;Build 15
"RTN","GMVDCSAV",3,0)
;
"RTN","GMVDCSAV",4,0)
; This routine uses the following IAs:
"RTN","GMVDCSAV",5,0)
; #10103 - ^XLFDT calls (supported)
"RTN","GMVDCSAV",6,0)
;
"RTN","GMVDCSAV",7,0)
; This routine supports the following IAs:
"RTN","GMVDCSAV",8,0)
; #3996 - GMV ADD VM RPC called at EN1 (private)
"RTN","GMVDCSAV",9,0)
;
"RTN","GMVDCSAV",10,0)
; 01/28/2005 KAM GMRV*5*9 Record midnight with 1 second added
"RTN","GMVDCSAV",11,0)
; Stop adding second on multiple patent entry
"RTN","GMVDCSAV",12,0)
;
"RTN","GMVDCSAV",13,0)
EN1(RESULT,GMVDATA) ; GMV ADD VM [RPC entry point]
"RTN","GMVDCSAV",14,0)
; Saves vitals data
"RTN","GMVDCSAV",15,0)
N GMVCNT,GMVD0,GMVFDA,GMVINUM,GMVQNUM,GMVRNUM,GMVIEN,GMVDUN
"RTN","GMVDCSAV",16,0)
N GMVVNUM,GMVVMEAS,GMVVQUAL,GMVVREAS
"RTN","GMVDCSAV",17,0)
D QUALTWO
"RTN","GMVDCSAV",18,0)
Q
"RTN","GMVDCSAV",19,0)
;I $O(@GMVDATA@("V",0))>0 D VITMEA
"RTN","GMVDCSAV",20,0)
;I $O(@GMVDATA@("I",0))>0 D ENTERR
"RTN","GMVDCSAV",21,0)
;I $G(RESULT(0))="OK" D MSG("OK: Data saved")
"RTN","GMVDCSAV",22,0)
;Q
"RTN","GMVDCSAV",23,0)
;
"RTN","GMVDCSAV",24,0)
VITMEA ; *** Save vital measurement data ***
"RTN","GMVDCSAV",25,0)
S GMVVNUM=0 K GMVFDA
"RTN","GMVDCSAV",26,0)
S GMVCNT=+$O(@GMVDATA@("V",1E25),-1)
"RTN","GMVDCSAV",27,0)
F S GMVVNUM=$O(@GMVDATA@("V",GMVVNUM)) Q:GMVVNUM'>0 D
"RTN","GMVDCSAV",28,0)
. S GMVVMEAS=$G(@GMVDATA@("V",GMVVNUM))
"RTN","GMVDCSAV",29,0)
. S GMVFDA(120.5,"+"_GMVVNUM_",",.01)=GMVDTDUN ; Date time taken
"RTN","GMVDCSAV",30,0)
. S GMVFDA(120.5,"+"_GMVVNUM_",",.02)=GMVDFN ; Patient
"RTN","GMVDCSAV",31,0)
. S GMVFDA(120.5,"+"_GMVVNUM_",",.03)=$P(GMVVMEAS,U) ;
"RTN","GMVDCSAV",32,0)
. S GMVFDA(120.5,"+"_GMVVNUM_",",.04)=GMVDTENT ; Date Time entered
"RTN","GMVDCSAV",33,0)
. S GMVFDA(120.5,"+"_GMVVNUM_",",.05)=GMVHOSPL ; Hospital
"RTN","GMVDCSAV",34,0)
. S GMVFDA(120.5,"+"_GMVVNUM_",",.06)=GMVENTBY ; Entered by (DUZ)
"RTN","GMVDCSAV",35,0)
. S GMVFDA(120.5,"+"_GMVVNUM_",",1.2)=$P($P(GMVVMEAS,U,2),";",1) ; Rate
"RTN","GMVDCSAV",36,0)
. S GMVFDA(120.5,"+"_GMVVNUM_",",1.4)=$P($P(GMVVMEAS,U,2),";",2) ; Sup 02
"RTN","GMVDCSAV",37,0)
. S GMVQNUM=0
"RTN","GMVDCSAV",38,0)
. F S GMVQNUM=$O(@GMVDATA@("Q",GMVVNUM,GMVQNUM)) Q:GMVQNUM'>0 D
"RTN","GMVDCSAV",39,0)
.. S GMVVQUAL=$G(@GMVDATA@("Q",GMVVNUM,GMVQNUM))
"RTN","GMVDCSAV",40,0)
.. S GMVCNT=GMVCNT+1
"RTN","GMVDCSAV",41,0)
.. S GMVFDA(120.505,"+"_GMVCNT_",","+"_GMVVNUM_",",.01)=GMVVQUAL
"RTN","GMVDCSAV",42,0)
.. Q
"RTN","GMVDCSAV",43,0)
. Q
"RTN","GMVDCSAV",44,0)
D UPDATE^DIE("","GMVFDA"),FMERROR
"RTN","GMVDCSAV",45,0)
S RESULT(0)="OK"
"RTN","GMVDCSAV",46,0)
Q
"RTN","GMVDCSAV",47,0)
;
"RTN","GMVDCSAV",48,0)
ENTERR ; *** Save entered in error data ***
"RTN","GMVDCSAV",49,0)
S GMVINUM=0 K GMVFDA
"RTN","GMVDCSAV",50,0)
S GMVCNT=+$O(@GMVDATA@("I",1E25),-1)
"RTN","GMVDCSAV",51,0)
F S GMVINUM=$O(@GMVDATA@("I",GMVINUM)) Q:GMVINUM'>0 D
"RTN","GMVDCSAV",52,0)
. S GMVD0=$G(@GMVDATA@("I",GMVINUM))
"RTN","GMVDCSAV",53,0)
. S GMVFDA(120.5,GMVD0_",",2)=1
"RTN","GMVDCSAV",54,0)
. S GMVFDA(120.5,GMVD0_",",3)=GMVERRBY
"RTN","GMVDCSAV",55,0)
. S GMVRNUM=0
"RTN","GMVDCSAV",56,0)
. F S GMVRNUM=$O(@GMVDATA@("R",GMVINUM,GMVRNUM)) Q:GMVRNUM'>0 D
"RTN","GMVDCSAV",57,0)
.. S GMVVREAS=$G(@GMVDATA@("R",GMVINUM,GMVRNUM))
"RTN","GMVDCSAV",58,0)
.. S GMVCNT=GMVCNT+1
"RTN","GMVDCSAV",59,0)
.. S GMVFDA(120.506,"+"_GMVCNT_","_GMVD0_",",.01)=GMVVREAS
"RTN","GMVDCSAV",60,0)
.. Q
"RTN","GMVDCSAV",61,0)
. Q
"RTN","GMVDCSAV",62,0)
D UPDATE^DIE("","GMVFDA"),FMERROR
"RTN","GMVDCSAV",63,0)
S RESULT(0)="OK"
"RTN","GMVDCSAV",64,0)
Q
"RTN","GMVDCSAV",65,0)
QUALTWO ; Add a new entry to FILE 120.5
"RTN","GMVDCSAV",66,0)
S GMVVNUM=0 K GMVFDA
"RTN","GMVDCSAV",67,0)
S GMVVMEAS=$P(GMVDATA,"*",1) ;
"RTN","GMVDCSAV",68,0)
S GMVDTDUN=$P(GMVVMEAS,"^",1) ; Date time
"RTN","GMVDCSAV",69,0)
;01/28/2005 KAM GMRV*5*9 Added next Line PAL-0105-60940
"RTN","GMVDCSAV",70,0)
I +$P(GMVDTDUN,".",2)'>0 S GMVDTDUN=$$FMADD^XLFDT(GMVDTDUN,"","","",1)
"RTN","GMVDCSAV",71,0)
S GMVDFN=$P(GMVVMEAS,"^",2) ; Patient DFN
"RTN","GMVDCSAV",72,0)
S GMVVTYP=$P(GMVVMEAS,"^",3) ; Vital type
"RTN","GMVDCSAV",73,0)
S GMVDTDUN=$$CHKDT(GMVDTDUN,$P(GMVVTYP,";",1))
"RTN","GMVDCSAV",74,0)
S GMVDTENT=$$NOW^XLFDT ; Current date time
"RTN","GMVDCSAV",75,0)
S GMVHOSPL=$P(GMVVMEAS,"^",4) ; Hospital
"RTN","GMVDCSAV",76,0)
S GMVENTBY=$P(GMVVMEAS,"^",5) ; DUZ
"RTN","GMVDCSAV",77,0)
S GMVFDA(120.5,"+1,",.01)=GMVDTDUN ; Date time taken
"RTN","GMVDCSAV",78,0)
S GMVFDA(120.5,"+1,",.02)=GMVDFN ; Patient
"RTN","GMVDCSAV",79,0)
S GMVFDA(120.5,"+1,",.03)=$P(GMVVTYP,";",1) ; Vital Type
"RTN","GMVDCSAV",80,0)
S GMVFDA(120.5,"+1,",.04)=GMVDTENT ; Date Time entered
"RTN","GMVDCSAV",81,0)
S GMVFDA(120.5,"+1,",.05)=GMVHOSPL ; Hospital
"RTN","GMVDCSAV",82,0)
S GMVFDA(120.5,"+1,",.06)=GMVENTBY ; Entered by (DUZ)
"RTN","GMVDCSAV",83,0)
S GMVFDA(120.5,"+1,",1.2)=$P(GMVVTYP,";",2) ; Rate
"RTN","GMVDCSAV",84,0)
S GMVFDA(120.5,"+1,",1.4)=$P(GMVVTYP,";",3) ; Sup 02
"RTN","GMVDCSAV",85,0)
S GMVIEN=""
"RTN","GMVDCSAV",86,0)
D UPDATE^DIE("","GMVFDA","GMVIEN"),FMERROR
"RTN","GMVDCSAV",87,0)
S GMVCNT=1
"RTN","GMVDCSAV",88,0)
S GMVQUALS=$P(GMVDATA,"*",2)
"RTN","GMVDCSAV",89,0)
F GMVLOOP=1:1:$L(GMVQUALS,":")+1 D
"RTN","GMVDCSAV",90,0)
. S GMVVQUAL=$P(GMVQUALS,":",GMVLOOP)
"RTN","GMVDCSAV",91,0)
. Q:GMVVQUAL=""
"RTN","GMVDCSAV",92,0)
. S GMVCNT=GMVCNT+1
"RTN","GMVDCSAV",93,0)
. D ADDQUAL^GMVGETQ(.GMVRES,GMVIEN(1)_"^"_GMVVQUAL)
"RTN","GMVDCSAV",94,0)
. Q
"RTN","GMVDCSAV",95,0)
I "^HT^WT^CG^"[$P($G(^GMRD(120.51,+GMVVTYP,0)),U,2) D EN^GMRVPGC(GMVDFN)
"RTN","GMVDCSAV",96,0)
Q
"RTN","GMVDCSAV",97,0)
;
"RTN","GMVDCSAV",98,0)
CHKDT(GMVDT,GMVSAV) ;Check id there ios a vital entered for that date and time
"RTN","GMVDCSAV",99,0)
N GMVA,GMVQ
"RTN","GMVDCSAV",100,0)
S GMVQ=0
"RTN","GMVDCSAV",101,0)
S GMVA=""
"RTN","GMVDCSAV",102,0)
F S GMVA=$O(^GMR(120.5,"B",GMVDT,GMVA)) Q:GMVA="" D
"RTN","GMVDCSAV",103,0)
. ;01/28/2005 KAM GMRV*5*9 Added next Line BHS-0504-10643
"RTN","GMVDCSAV",104,0)
. I GMVDFN'=$P($G(^GMR(120.5,GMVA,0)),U,2) Q
"RTN","GMVDCSAV",105,0)
. S GMVTY=$P($G(^GMR(120.5,GMVA,0)),"^",3)
"RTN","GMVDCSAV",106,0)
. I GMVTY=GMVSAV D
"RTN","GMVDCSAV",107,0)
. . S GMVDT=$$FMADD^XLFDT(GMVDT,"","","",1)
"RTN","GMVDCSAV",108,0)
. . Q
"RTN","GMVDCSAV",109,0)
. Q
"RTN","GMVDCSAV",110,0)
Q GMVDT
"RTN","GMVDCSAV",111,0)
MSG(X) ; *** Add a line to the message array ***
"RTN","GMVDCSAV",112,0)
S (GMVMSG,RESULT(-1))=1+$G(RESULT(-1),0)
"RTN","GMVDCSAV",113,0)
S RESULT(GMVMSG)=X
"RTN","GMVDCSAV",114,0)
I $P(X,":")="ERROR" S RESULT(0)="ERROR"
"RTN","GMVDCSAV",115,0)
Q
"RTN","GMVDCSAV",116,0)
;
"RTN","GMVDCSAV",117,0)
FMERROR ;
"RTN","GMVDCSAV",118,0)
I $O(^TMP("DIERR",$J,0))>0 D
"RTN","GMVDCSAV",119,0)
. N GMVER1,GMVER2
"RTN","GMVDCSAV",120,0)
. S GMVER1=0
"RTN","GMVDCSAV",121,0)
. F S GMVER1=$O(^TMP("DIERR",$J,GMVER1)) Q:GMVER1'>0 D
"RTN","GMVDCSAV",122,0)
.. S GMVER2=0
"RTN","GMVDCSAV",123,0)
.. F S GMVER2=$O(^TMP("DIERR",$J,GMVER1,"TEXT",GMVER2)) Q:GMVER2'>0 D
"RTN","GMVDCSAV",124,0)
... D MSG("ERROR: "_$G(^TMP("DIERR",$J,GMVER1,"TEXT",GMVER2)))
"RTN","GMVDCSAV",125,0)
... Q
"RTN","GMVDCSAV",126,0)
.. Q
"RTN","GMVDCSAV",127,0)
. Q
"RTN","GMVDCSAV",128,0)
D CLEAN^DILF
"RTN","GMVDCSAV",129,0)
Q
"VER")
8.0^22.0
**END**
**END**