- GMRVEE0 ;HIRMFO/RM,YH-ENTERED IN ERROR EDIT ;3/15/99 15:04
- ;;4.0;Vitals/Measurements;**1,7,11**;Apr 25, 1997
- EN1 ; ENTRY FROM OPTION GMRV ERROR EDIT
- S GMROUT=0 W ! S DIC="^DPT(",DIC(0)="AEMQ" D ^DIC K DIC S:+Y'>0 GMROUT=1 G Q:+Y'>0 S DFN=+Y
- EN2 ; ENTRY TO VITALS ENTERED IN ERROR IF DFN IS KNOWN.
- Q:'$D(DFN) S GMROUT=0 K ^TMP($J)
- DATE S %DT(0)="-NOW",%DT("A")="Select DATE (TIME optional) of this error: ",%DT="AXET" D ^%DT K %DT I +Y'>0 S GMROUT=1 G Q
- S GMRVDATE=+Y D DATACK I GMROUT W !,$C(7),"No data for this date" S GMROUT=0 G DATE
- EN3 ;ENTRY TO ERROR EDIT PROVIDED DFN AND DATE/TIME ARE GIVEN
- S GMRX=$O(GMRARTY("D",0)) I GMRX>0 D CHSDT G:GMROUT Q D EN1^GMRVEE1
- I GMRARTY W ! S DIC=120.51,DIC(0)="AQEM",DIC("A")="Select a VITAL type record, or press return to correct DATE/TIME, PATIENT or set INVALID for the record: ",DIC("S")="I $D(GMRARTY(+Y))" D ^DIC K DIC
- S:$D(DUOUT)!$D(DTOUT) GMROUT=1 G:GMROUT Q
- S GMRVITY=$S(+Y>0:+Y,1:"A")
- I 'GMRARTY S GMRVITY=$O(GMRARTY(0))
- D:GMRVITY'="A" WHTL
- I '($D(GMRARTY)\10) W !?3,$C(7),"There is no data for this patient for this date/time" G Q
- S GMRVDT=$O(GMRARTY("D",0)) S:GMRVITY="A"&'$O(GMRARTY(+$O(GMRARTY("")))) GMRVITY=$O(GMRARTY(""))
- D RESLS^GMRVEE1
- Q K ^TMP($J),GMRAINP,GMRDA,GMRDAT,GMREDB,GMRFDT,GMRNM,GMRSDT,GMRTY,GMRVDATE,GMRVITY,GMRX,GMRDATE,GMRI,GMRSITE,GMRVIDT,GMRSTR,GMRVCH,GMRVIT,GMRVX,DR,DA,DIE,DFN,DIC,GMRARTY,GMRCHC,GMRDFN,GMRVDT,GMRVHLOC,GMRY,GMRZ,POP,GDATE,GSAVE,GDFN,GMRCNT
- D KVAR^VADPT K GMRINF,GMRDATA,%T,%Y,D0,DI,DQ,VAERR,VAIP,GMRQUAL,GMRENTY,GFLAG,GMRZZ,GMRVARY
- K GMROK,GDT I GMROUT K GMROUT Q
- G EN1
- WHTL ; ELIMINATE ALL NON GMRVITY CHILDREN FROM GMRARTY
- F GMRX=0:0 S GMRX=$O(GMRARTY(GMRX)) Q:GMRX'>0 I GMRX'=GMRVITY K GMRARTY(GMRX)
- F GMRX=0:0 S GMRX=$O(GMRARTY("D",GMRX)) Q:GMRX'>0 I '$D(GMRARTY(GMRVITY,GMRX)) K GMRARTY("D",GMRX)
- Q
- CHSDT ; CHOOSE A DATE FOR ALL VITAL TYPES, OR DROP THRU FROM SINGLE VITAL TYPE
- S (GMRCNT,GMRNM)=0 K ^TMP($J,"GMRC") W !,"CHOOSE FROM: ",!
- S GFLAG="" F GMRX=0:0 S GMRX=$O(GMRARTY("D",GMRX)) Q:GMRX'>0!GMROUT!(GFLAG["^") S GMRNM=GMRNM+1,^TMP($J,"GMRC",GMRNM)=GMRX,GMRCNT=GMRCNT+1 W !,?2,GMRNM_" " S Y=GMRX D DT^DIQ D PRTCHS I GMRCNT=3 D
- . W !," Return to continue or enter ^ to stop listing: " R GFLAG:DTIME S:'$T GMROUT=1 S GMRCNT=0
- . Q
- CHNUM Q:GMROUT W !!,"Select VITAL/MEASUREMENT from the above list: " R GMRX:DTIME I '$T!(GMRX="^") S GMROUT=1 Q
- I GMRX="" S GMROUT=1 Q
- I '$D(^TMP($J,"GMRC",GMRX)) W !,$C(7),?3,"ANSWER WITH "_$S(GMRNM>0:"A NUMBER BETWEEN 1 AND "_GMRNM,1:"THE NUMBER 1") G CHNUM:GMRX'?1"?".E,CHSDT
- SDA S GMRVDT=^TMP($J,"GMRC",GMRX) F GMRX=0:0 S GMRX=$O(GMRARTY(GMRX)) Q:GMRX'>0 F GMRY=0:0 S GMRY=$O(GMRARTY(GMRX,GMRY)) Q:GMRY'>0 I GMRY'=GMRVDT K GMRARTY(GMRX,GMRY),GMRARTY("D",GMRY)
- Q
- PRTCHS ; PRINT CHOICES FOR DATE/TIME DEFINED BY GMRX
- F GMRY=0:0 S GMRY=$O(GMRARTY(GMRY)) Q:GMRY'>0 I $D(GMRARTY(GMRY,GMRX)) S GMRDA=GMRARTY(GMRY,GMRX) D PRTLN
- Q
- PRTLN ; PRINT DATA FOR VITAL RECORD DEFINED BY GMRDA
- S GMRDAT=$S($D(^GMR(120.5,GMRDA,0)):^(0),1:"") Q:GMRDAT=""
- K GMRVX S GMRVX=$S($D(^GMRD(120.51,GMRY,0)):$P(^(0),"^",2),1:""),GMRVX(0)=$P(GMRDAT,"^",8) D:GMRVX(0)>0 EN1^GMRVSAS0
- S GMRZZ="",GMRZZ(1)="" I $P($G(^GMR(120.5,GMRDA,5,0)),"^",4)>0 K GMRVARY S GMRVARY="" D CHAR^GMRVCHAR(GMRDA,.GMRVARY,GMRY) S GMRZZ=$$WRITECH^GMRVCHAR(GMRDA,.GMRVARY,9) S:GMRZZ'=""&(GMRVX'="PO2") GMRZZ=" ("_GMRZZ_")"
- I GMRVX="T",GMRVX(0)>0 S GMRVX(0)=GMRVX(0)_" F ("_$J(GMRVX(0)-32*5/9,0,1)_" C)"
- I GMRVX="HT",GMRVX(0)>0 S GMRVX(0)=$S(GMRVX(0)\12:GMRVX(0)\12_" ft ",1:"")_$S(GMRVX(0)#12:GMRVX(0)#12_" in",1:"")_" ("_$J(GMRVX(0)*2.54,0,2)_" cm)"
- I GMRVX="WT",GMRVX(0)>0 S GMRVX(0)=GMRVX(0)_" lb ("_$J(GMRVX(0)/2.2,0,2)_" kg)"
- I GMRVX="PN" D
- . I GMRVX(0)=0 S GMRVX(0)=GMRVX(0)_" No pain" Q
- . I GMRVX(0)=99 S GMRVX(0)=GMRVX(0)_" Unable to respond" Q
- . I GMRVX(0)=10 S GMRVX(0)=GMRVX(0)_" Worst imaginable pain" Q
- I GMRVX="CG",GMRVX(0)>0 S GMRVX(0)=GMRVX(0)_" in ("_$J(+GMRVX(0)/.3937,0,2)_" cm)"
- I GMRVX="CVP",GMRVX(0)>0 S GMRVX(0)=GMRVX(0)_" cmH2O ("_$J(GMRVX(0)/1.36,0,1)_" mmHg)"
- I GMRVX="PO2",GMRVX(0)>0 D
- .N GMRVPO S GMRVPO=$P(GMRDAT,"^",10)
- .S GMRVX(0)="Pulse oximetry "_GMRVX(0)_"%"_$S(GMRVPO'="":" with supplemental O2 "_$S(GMRVPO["l/min":$P(GMRVPO," l/min")_"L/min",1:"")_$S(GMRVPO["l/min":$P(GMRVPO," l/min",2),1:GMRVPO),1:"")
- .Q
- I GMRVX="P" D
- . I GMRZZ'="",GMRVX(0)=1 S:$F(GMRZZ,"DORSALIS PEDIS")>0 GMRVX(1)=""
- . I GMRZZ'="",GMRVX(0)=0 S:$F(GMRZZ,"DORSALIS PEDIS")>0 GMRVX(1)=1
- . Q
- W !,?5,$S(GMRVX="PN":"Pain",1:GMRVX),": ",GMRVX(0),$S('$D(GMRVX(1)):" ",'GMRVX(1):" ",1:"*")
- W:GMRVX="PO2" !,?10,"via " W GMRZZ
- Q
- DATACK ; CHECK TO SEE IF DATA FOR THIS PATIENT FOR THIS DATE. IF THERE IS
- ; SET UP AN ARRAY GMRARTY WITH GMRARTY=$S(0:ONE TYPE ONLY,1:MORE
- ; THAN ONE TYPE) AND GMRARTY(TYPE IEN)=120.5 ENTRY
- K GMRARTY S X1=GMRVDATE,X2=1 D C^%DTC S GMRVDT(0)=$P(X,".",1)
- F GMRVITY=0:0 S GMRVITY=$O(^GMR(120.5,"AA",DFN,GMRVITY)) Q:GMRVITY'>0 D CNLP
- I '$D(GMRARTY) S GMROUT=1
- Q
- CNLP ;
- F GMRVDT=(9999999-GMRVDT(0)):0 S GMRVDT=$O(^GMR(120.5,"AA",DFN,GMRVITY,GMRVDT)) Q:$P(9999999-GMRVDT,".")'[$P(GMRVDATE,".")!(GMRVDT'>0) D:$S('$P(GMRVDATE,".",2):1,1:GMRVDATE=(9999999-GMRVDT)) STARTY
- Q
- STARTY ; SET GMRARTY ARRAY
- F GMRDA=0:0 S GMRDA=$O(^GMR(120.5,"AA",DFN,GMRVITY,GMRVDT,GMRDA)) Q:GMRDA'>0 I '$D(^GMR(120.5,GMRDA,2)) S GMRARTY=$S($D(GMRARTY):1,1:0),GMRARTY(GMRVITY,9999999-GMRVDT)=GMRDA,GMRARTY("D",9999999-GMRVDT)="" Q
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HGMRVEE0 5463 printed Feb 18, 2025@23:22:41 Page 2
- GMRVEE0 ;HIRMFO/RM,YH-ENTERED IN ERROR EDIT ;3/15/99 15:04
- +1 ;;4.0;Vitals/Measurements;**1,7,11**;Apr 25, 1997
- EN1 ; ENTRY FROM OPTION GMRV ERROR EDIT
- +1 SET GMROUT=0
- WRITE !
- SET DIC="^DPT("
- SET DIC(0)="AEMQ"
- DO ^DIC
- KILL DIC
- if +Y'>0
- SET GMROUT=1
- if +Y'>0
- GOTO Q
- SET DFN=+Y
- EN2 ; ENTRY TO VITALS ENTERED IN ERROR IF DFN IS KNOWN.
- +1 if '$DATA(DFN)
- QUIT
- SET GMROUT=0
- KILL ^TMP($JOB)
- DATE SET %DT(0)="-NOW"
- SET %DT("A")="Select DATE (TIME optional) of this error: "
- SET %DT="AXET"
- DO ^%DT
- KILL %DT
- IF +Y'>0
- SET GMROUT=1
- GOTO Q
- +1 SET GMRVDATE=+Y
- DO DATACK
- IF GMROUT
- WRITE !,$CHAR(7),"No data for this date"
- SET GMROUT=0
- GOTO DATE
- EN3 ;ENTRY TO ERROR EDIT PROVIDED DFN AND DATE/TIME ARE GIVEN
- +1 SET GMRX=$ORDER(GMRARTY("D",0))
- IF GMRX>0
- DO CHSDT
- if GMROUT
- GOTO Q
- DO EN1^GMRVEE1
- +2 IF GMRARTY
- WRITE !
- SET DIC=120.51
- SET DIC(0)="AQEM"
- SET DIC("A")="Select a VITAL type record, or press return to correct DATE/TIME, PATIENT or set INVALID for the record: "
- SET DIC("S")="I $D(GMRARTY(+Y))"
- DO ^DIC
- KILL DIC
- +3 if $DATA(DUOUT)!$DATA(DTOUT)
- SET GMROUT=1
- if GMROUT
- GOTO Q
- +4 SET GMRVITY=$SELECT(+Y>0:+Y,1:"A")
- +5 IF 'GMRARTY
- SET GMRVITY=$ORDER(GMRARTY(0))
- +6 if GMRVITY'="A"
- DO WHTL
- +7 IF '($DATA(GMRARTY)\10)
- WRITE !?3,$CHAR(7),"There is no data for this patient for this date/time"
- GOTO Q
- +8 SET GMRVDT=$ORDER(GMRARTY("D",0))
- if GMRVITY="A"&'$ORDER(GMRARTY(+$ORDER(GMRARTY(""))))
- SET GMRVITY=$ORDER(GMRARTY(""))
- +9 DO RESLS^GMRVEE1
- Q KILL ^TMP($JOB),GMRAINP,GMRDA,GMRDAT,GMREDB,GMRFDT,GMRNM,GMRSDT,GMRTY,GMRVDATE,GMRVITY,GMRX,GMRDATE,GMRI,GMRSITE,GMRVIDT,GMRSTR,GMRVCH,GMRVIT,GMRVX,DR,DA,DIE,DFN,DIC,GMRARTY,GMRCHC,GMRDFN,GMRVDT,GMRVHLOC,GMRY,GMRZ,POP,GDATE,GSAVE,GDFN,GMRCNT
- +1 DO KVAR^VADPT
- KILL GMRINF,GMRDATA,%T,%Y,D0,DI,DQ,VAERR,VAIP,GMRQUAL,GMRENTY,GFLAG,GMRZZ,GMRVARY
- +2 KILL GMROK,GDT
- IF GMROUT
- KILL GMROUT
- QUIT
- +3 GOTO EN1
- WHTL ; ELIMINATE ALL NON GMRVITY CHILDREN FROM GMRARTY
- +1 FOR GMRX=0:0
- SET GMRX=$ORDER(GMRARTY(GMRX))
- if GMRX'>0
- QUIT
- IF GMRX'=GMRVITY
- KILL GMRARTY(GMRX)
- +2 FOR GMRX=0:0
- SET GMRX=$ORDER(GMRARTY("D",GMRX))
- if GMRX'>0
- QUIT
- IF '$DATA(GMRARTY(GMRVITY,GMRX))
- KILL GMRARTY("D",GMRX)
- +3 QUIT
- CHSDT ; CHOOSE A DATE FOR ALL VITAL TYPES, OR DROP THRU FROM SINGLE VITAL TYPE
- +1 SET (GMRCNT,GMRNM)=0
- KILL ^TMP($JOB,"GMRC")
- WRITE !,"CHOOSE FROM: ",!
- +2 SET GFLAG=""
- FOR GMRX=0:0
- SET GMRX=$ORDER(GMRARTY("D",GMRX))
- if GMRX'>0!GMROUT!(GFLAG["^")
- QUIT
- SET GMRNM=GMRNM+1
- SET ^TMP($JOB,"GMRC",GMRNM)=GMRX
- SET GMRCNT=GMRCNT+1
- WRITE !,?2,GMRNM_" "
- SET Y=GMRX
- DO DT^DIQ
- DO PRTCHS
- IF GMRCNT=3
- Begin DoDot:1
- +3 WRITE !," Return to continue or enter ^ to stop listing: "
- READ GFLAG:DTIME
- if '$TEST
- SET GMROUT=1
- SET GMRCNT=0
- +4 QUIT
- End DoDot:1
- CHNUM if GMROUT
- QUIT
- WRITE !!,"Select VITAL/MEASUREMENT from the above list: "
- READ GMRX:DTIME
- IF '$TEST!(GMRX="^")
- SET GMROUT=1
- QUIT
- +1 IF GMRX=""
- SET GMROUT=1
- QUIT
- +2 IF '$DATA(^TMP($JOB,"GMRC",GMRX))
- WRITE !,$CHAR(7),?3,"ANSWER WITH "_$SELECT(GMRNM>0:"A NUMBER BETWEEN 1 AND "_GMRNM,1:"THE NUMBER 1")
- if GMRX'?1"?".E
- GOTO CHNUM
- GOTO CHSDT
- SDA SET GMRVDT=^TMP($JOB,"GMRC",GMRX)
- FOR GMRX=0:0
- SET GMRX=$ORDER(GMRARTY(GMRX))
- if GMRX'>0
- QUIT
- FOR GMRY=0:0
- SET GMRY=$ORDER(GMRARTY(GMRX,GMRY))
- if GMRY'>0
- QUIT
- IF GMRY'=GMRVDT
- KILL GMRARTY(GMRX,GMRY),GMRARTY("D",GMRY)
- +1 QUIT
- PRTCHS ; PRINT CHOICES FOR DATE/TIME DEFINED BY GMRX
- +1 FOR GMRY=0:0
- SET GMRY=$ORDER(GMRARTY(GMRY))
- if GMRY'>0
- QUIT
- IF $DATA(GMRARTY(GMRY,GMRX))
- SET GMRDA=GMRARTY(GMRY,GMRX)
- DO PRTLN
- +2 QUIT
- PRTLN ; PRINT DATA FOR VITAL RECORD DEFINED BY GMRDA
- +1 SET GMRDAT=$SELECT($DATA(^GMR(120.5,GMRDA,0)):^(0),1:"")
- if GMRDAT=""
- QUIT
- +2 KILL GMRVX
- SET GMRVX=$SELECT($DATA(^GMRD(120.51,GMRY,0)):$PIECE(^(0),"^",2),1:"")
- SET GMRVX(0)=$PIECE(GMRDAT,"^",8)
- if GMRVX(0)>0
- DO EN1^GMRVSAS0
- +3 SET GMRZZ=""
- SET GMRZZ(1)=""
- IF $PIECE($GET(^GMR(120.5,GMRDA,5,0)),"^",4)>0
- KILL GMRVARY
- SET GMRVARY=""
- DO CHAR^GMRVCHAR(GMRDA,.GMRVARY,GMRY)
- SET GMRZZ=$$WRITECH^GMRVCHAR(GMRDA,.GMRVARY,9)
- if GMRZZ'=""&(GMRVX'="PO2")
- SET GMRZZ=" ("_GMRZZ_")"
- +4 IF GMRVX="T"
- IF GMRVX(0)>0
- SET GMRVX(0)=GMRVX(0)_" F ("_$JUSTIFY(GMRVX(0)-32*5/9,0,1)_" C)"
- +5 IF GMRVX="HT"
- IF GMRVX(0)>0
- SET GMRVX(0)=$SELECT(GMRVX(0)\12:GMRVX(0)\12_" ft ",1:"")_$SELECT(GMRVX(0)#12:GMRVX(0)#12_" in",1:"")_" ("_$JUSTIFY(GMRVX(0)*2.54,0,2)_" cm)"
- +6 IF GMRVX="WT"
- IF GMRVX(0)>0
- SET GMRVX(0)=GMRVX(0)_" lb ("_$JUSTIFY(GMRVX(0)/2.2,0,2)_" kg)"
- +7 IF GMRVX="PN"
- Begin DoDot:1
- +8 IF GMRVX(0)=0
- SET GMRVX(0)=GMRVX(0)_" No pain"
- QUIT
- +9 IF GMRVX(0)=99
- SET GMRVX(0)=GMRVX(0)_" Unable to respond"
- QUIT
- +10 IF GMRVX(0)=10
- SET GMRVX(0)=GMRVX(0)_" Worst imaginable pain"
- QUIT
- End DoDot:1
- +11 IF GMRVX="CG"
- IF GMRVX(0)>0
- SET GMRVX(0)=GMRVX(0)_" in ("_$JUSTIFY(+GMRVX(0)/.3937,0,2)_" cm)"
- +12 IF GMRVX="CVP"
- IF GMRVX(0)>0
- SET GMRVX(0)=GMRVX(0)_" cmH2O ("_$JUSTIFY(GMRVX(0)/1.36,0,1)_" mmHg)"
- +13 IF GMRVX="PO2"
- IF GMRVX(0)>0
- Begin DoDot:1
- +14 NEW GMRVPO
- SET GMRVPO=$PIECE(GMRDAT,"^",10)
- +15 SET GMRVX(0)="Pulse oximetry "_GMRVX(0)_"%"_$SELECT(GMRVPO'="":" with supplemental O2 "_$SELECT(GMRVPO["l/min":$PIECE(GMRVPO," l/min")_"L/min",1:"")_$SELECT(GMRVPO["l/min":$PIECE(GMRVPO," l/min",2),1:GMRVPO),1:"")
- +16 QUIT
- End DoDot:1
- +17 IF GMRVX="P"
- Begin DoDot:1
- +18 IF GMRZZ'=""
- IF GMRVX(0)=1
- if $FIND(GMRZZ,"DORSALIS PEDIS")>0
- SET GMRVX(1)=""
- +19 IF GMRZZ'=""
- IF GMRVX(0)=0
- if $FIND(GMRZZ,"DORSALIS PEDIS")>0
- SET GMRVX(1)=1
- +20 QUIT
- End DoDot:1
- +21 WRITE !,?5,$SELECT(GMRVX="PN":"Pain",1:GMRVX),": ",GMRVX(0),$SELECT('$DATA(GMRVX(1)):" ",'GMRVX(1):" ",1:"*")
- +22 if GMRVX="PO2"
- WRITE !,?10,"via "
- WRITE GMRZZ
- +23 QUIT
- DATACK ; CHECK TO SEE IF DATA FOR THIS PATIENT FOR THIS DATE. IF THERE IS
- +1 ; SET UP AN ARRAY GMRARTY WITH GMRARTY=$S(0:ONE TYPE ONLY,1:MORE
- +2 ; THAN ONE TYPE) AND GMRARTY(TYPE IEN)=120.5 ENTRY
- +3 KILL GMRARTY
- SET X1=GMRVDATE
- SET X2=1
- DO C^%DTC
- SET GMRVDT(0)=$PIECE(X,".",1)
- +4 FOR GMRVITY=0:0
- SET GMRVITY=$ORDER(^GMR(120.5,"AA",DFN,GMRVITY))
- if GMRVITY'>0
- QUIT
- DO CNLP
- +5 IF '$DATA(GMRARTY)
- SET GMROUT=1
- +6 QUIT
- CNLP ;
- +1 FOR GMRVDT=(9999999-GMRVDT(0)):0
- SET GMRVDT=$ORDER(^GMR(120.5,"AA",DFN,GMRVITY,GMRVDT))
- if $PIECE(9999999-GMRVDT,".")'[$PIECE(GMRVDATE,".")!(GMRVDT'>0)
- QUIT
- if $SELECT('$PIECE(GMRVDATE,".",2)
- DO STARTY
- +2 QUIT
- STARTY ; SET GMRARTY ARRAY
- +1 FOR GMRDA=0:0
- SET GMRDA=$ORDER(^GMR(120.5,"AA",DFN,GMRVITY,GMRVDT,GMRDA))
- if GMRDA'>0
- QUIT
- IF '$DATA(^GMR(120.5,GMRDA,2))
- SET GMRARTY=$SELECT($DATA(GMRARTY):1,1:0)
- SET GMRARTY(GMRVITY,9999999-GMRVDT)=GMRDA
- SET GMRARTY("D",9999999-GMRVDT)=""
- QUIT
- +2 QUIT