- GMVER0 ;HOIFO/FT-VITALS ENTERED IN ERROR FOR A PATIENT ;10/25/02 10:26
- ;;5.0;GEN. MED. REC. - VITALS;**23**;Oct 31, 2002;Build 25
- ;
- ; This routine uses the following IAs:
- ; #10061 - ^VADPT calls (supported)
- ; #10103 - ^XLFDT calls (supported)
- ; #10104 - ^XLFSTR calls (supported)
- ;
- EN1(RESULT,GMVDATA) ; GMV ENTERED IN ERROR-PATIENT [RPC entry point]
- ; Queues a report to a printer
- ; GMVDATA=DFN^START DT^END DT^TYPE OF GRAPH^DEVICE^DEVICE IEN(#3.5)^
- ; DATE/TIME TO PRINT REPORT
- ;
- N DFN,GMVBEG,GMVEND,GMVDEV,GMVIEN,GMVPDT
- S DFN=+$P(GMVDATA,"^",1),GMVBEG=$P(GMVDATA,"^",2),GMVEND=$P(GMVDATA,"^",3),GMVDEV=$P(GMVDATA,"^",5),GMVIEN=+$P(GMVDATA,"^",6),GMVPDT=$P(GMVDATA,"^",7)
- S ZTIO=GMVDEV ;device
- S ZTDTH=$S($G(GMVPDT)>0:GMVPDT,1:$$NOW^XLFDT()) ;date/time to print
- S (ZTSAVE("DFN"),ZTSAVE("GMVBEG"),ZTSAVE("GMVEND"))=""
- S ZTDESC="Entered in error vital/measurement report"
- S ZTRTN="START^GMVER0"
- D ^%ZTLOAD
- S RESULT=$S($G(ZTSK)>0:"Report sent to device. Task #: "_ZTSK,1:"Unable to task the report.")
- K ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE,ZTSK
- D ^%ZISC
- Q
- START ; Start the report output
- U IO
- S:$D(ZTQUEUED) ZTREQ="@"
- S GMVPAGE=0
- S GMVDASH=$$REPEAT^XLFSTR("-",80) ;line of dashes
- S GMVNOW=$$NOW^XLFDT() ;current date/time
- S GMVNOW=$$FMTE^XLFDT(GMVNOW)
- S GMVRANGE=$$FMTE^XLFDT(GMVBEG)_"-"_$$FMTE^XLFDT(GMVEND) ;date range in
- ; external format (for header)
- D DEM^VADPT ;get patient demographic data
- S GMVNAME=VADM(1) ;patient name
- S GMVSSN=$P(VADM(2),"^",2) ;patient ssn
- D EN1^GMVER1(.GMVARRAY,DFN,GMVBEG,GMVEND) ;get entered-in-error data
- D HEADER
- S GMVNONE=$G(^TMP($J,"ERRORS",0))
- I $L(GMVNONE)>0 W !,GMVNONE D KILL Q
- S GMVDATE=0
- F S GMVDATE=$O(^TMP($J,"ERRORS",GMVDATE)) Q:'GMVDATE D
- .S GMVITY=0
- .F S GMVITY=$O(^TMP($J,"ERRORS",GMVDATE,GMVITY)) Q:'GMVITY D
- ..S GMVDA=0
- ..F S GMVDA=$O(^TMP($J,"ERRORS",GMVDATE,GMVITY,GMVDA)) Q:'GMVDA D
- ...S GMVLOOP=0
- ...F S GMVLOOP=$O(^TMP($J,"ERRORS",GMVDATE,GMVITY,GMVDA,GMVLOOP)) Q:'GMVLOOP D
- ....S GMVNODE=^TMP($J,"ERRORS",GMVDATE,GMVITY,GMVDA,GMVLOOP)
- ....I $Y+6>IOSL D HEADER
- ....W !,GMVNODE
- ....I GMVLOOP=4 W !
- ....Q
- ...Q
- ..Q
- .Q
- KILL ; Kill variables
- D KVAR^VADPT ;clean up VADPT variables
- K ^TMP($J,"ERRORS")
- K GMVDASH,GMVNAME,GMVNOW,GMVPAGE,GMVSSN,X,Y
- D ^%ZISC
- Q
- W:$Y>0 @IOF
- S GMVPAGE=GMVPAGE+1
- W !,GMVNOW,?22,"ENTERED IN ERROR VITAL/MEASUREMENT REPORT",?70,"PAGE: ",GMVPAGE
- W !?22,GMVRANGE
- W !?22,"Patient: ",GMVNAME,?$X+5,$E(GMVSSN,8,11)
- W !!,"Date Vit./Meas. taken",?58,"User who made error"
- W !,GMVDASH,!
- Q
- GMVER0 ;HOIFO/FT-VITALS ENTERED IN ERROR FOR A PATIENT ;10/25/02 10:26
- +1 ;;5.0;GEN. MED. REC. - VITALS;**23**;Oct 31, 2002;Build 25
- +2 ;
- +3 ; This routine uses the following IAs:
- +4 ; #10061 - ^VADPT calls (supported)
- +5 ; #10103 - ^XLFDT calls (supported)
- +6 ; #10104 - ^XLFSTR calls (supported)
- +7 ;
- EN1(RESULT,GMVDATA) ; GMV ENTERED IN ERROR-PATIENT [RPC entry point]
- +1 ; Queues a report to a printer
- +2 ; GMVDATA=DFN^START DT^END DT^TYPE OF GRAPH^DEVICE^DEVICE IEN(#3.5)^
- +3 ; DATE/TIME TO PRINT REPORT
- +4 ;
- +5 NEW DFN,GMVBEG,GMVEND,GMVDEV,GMVIEN,GMVPDT
- +6 SET DFN=+$PIECE(GMVDATA,"^",1)
- SET GMVBEG=$PIECE(GMVDATA,"^",2)
- SET GMVEND=$PIECE(GMVDATA,"^",3)
- SET GMVDEV=$PIECE(GMVDATA,"^",5)
- SET GMVIEN=+$PIECE(GMVDATA,"^",6)
- SET GMVPDT=$PIECE(GMVDATA,"^",7)
- +7 ;device
- SET ZTIO=GMVDEV
- +8 ;date/time to print
- SET ZTDTH=$SELECT($GET(GMVPDT)>0:GMVPDT,1:$$NOW^XLFDT())
- +9 SET (ZTSAVE("DFN"),ZTSAVE("GMVBEG"),ZTSAVE("GMVEND"))=""
- +10 SET ZTDESC="Entered in error vital/measurement report"
- +11 SET ZTRTN="START^GMVER0"
- +12 DO ^%ZTLOAD
- +13 SET RESULT=$SELECT($GET(ZTSK)>0:"Report sent to device. Task #: "_ZTSK,1:"Unable to task the report.")
- +14 KILL ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE,ZTSK
- +15 DO ^%ZISC
- +16 QUIT
- START ; Start the report output
- +1 USE IO
- +2 IF $DATA(ZTQUEUED)
- SET ZTREQ="@"
- +3 SET GMVPAGE=0
- +4 ;line of dashes
- SET GMVDASH=$$REPEAT^XLFSTR("-",80)
- +5 ;current date/time
- SET GMVNOW=$$NOW^XLFDT()
- +6 SET GMVNOW=$$FMTE^XLFDT(GMVNOW)
- +7 ;date range in
- SET GMVRANGE=$$FMTE^XLFDT(GMVBEG)_"-"_$$FMTE^XLFDT(GMVEND)
- +8 ; external format (for header)
- +9 ;get patient demographic data
- DO DEM^VADPT
- +10 ;patient name
- SET GMVNAME=VADM(1)
- +11 ;patient ssn
- SET GMVSSN=$PIECE(VADM(2),"^",2)
- +12 ;get entered-in-error data
- DO EN1^GMVER1(.GMVARRAY,DFN,GMVBEG,GMVEND)
- +13 DO HEADER
- +14 SET GMVNONE=$GET(^TMP($JOB,"ERRORS",0))
- +15 IF $LENGTH(GMVNONE)>0
- WRITE !,GMVNONE
- DO KILL
- QUIT
- +16 SET GMVDATE=0
- +17 FOR
- SET GMVDATE=$ORDER(^TMP($JOB,"ERRORS",GMVDATE))
- IF 'GMVDATE
- QUIT
- Begin DoDot:1
- +18 SET GMVITY=0
- +19 FOR
- SET GMVITY=$ORDER(^TMP($JOB,"ERRORS",GMVDATE,GMVITY))
- IF 'GMVITY
- QUIT
- Begin DoDot:2
- +20 SET GMVDA=0
- +21 FOR
- SET GMVDA=$ORDER(^TMP($JOB,"ERRORS",GMVDATE,GMVITY,GMVDA))
- IF 'GMVDA
- QUIT
- Begin DoDot:3
- +22 SET GMVLOOP=0
- +23 FOR
- SET GMVLOOP=$ORDER(^TMP($JOB,"ERRORS",GMVDATE,GMVITY,GMVDA,GMVLOOP))
- IF 'GMVLOOP
- QUIT
- Begin DoDot:4
- +24 SET GMVNODE=^TMP($JOB,"ERRORS",GMVDATE,GMVITY,GMVDA,GMVLOOP)
- +25 IF $Y+6>IOSL
- DO HEADER
- +26 WRITE !,GMVNODE
- +27 IF GMVLOOP=4
- WRITE !
- +28 QUIT
- End DoDot:4
- +29 QUIT
- End DoDot:3
- +30 QUIT
- End DoDot:2
- +31 QUIT
- End DoDot:1
- KILL ; Kill variables
- +1 ;clean up VADPT variables
- DO KVAR^VADPT
- +2 KILL ^TMP($JOB,"ERRORS")
- +3 KILL GMVDASH,GMVNAME,GMVNOW,GMVPAGE,GMVSSN,X,Y
- +4 DO ^%ZISC
- +5 QUIT
- +1 IF $Y>0
- WRITE @IOF
- +2 SET GMVPAGE=GMVPAGE+1
- +3 WRITE !,GMVNOW,?22,"ENTERED IN ERROR VITAL/MEASUREMENT REPORT",?70,"PAGE: ",GMVPAGE
- +4 WRITE !?22,GMVRANGE
- +5 WRITE !?22,"Patient: ",GMVNAME,?$X+5,$EXTRACT(GMVSSN,8,11)
- +6 WRITE !!,"Date Vit./Meas. taken",?58,"User who made error"
- +7 WRITE !,GMVDASH,!
- +8 QUIT