Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: GMVDS1

GMVDS1.m

Go to the documentation of this file.
  1. GMVDS1 ;HOIFO/YH,FT-CURRENT VITALS BY PATIENT OR LOCATION ;6/6/07
  1. ;;5.0;GEN. MED. REC. - VITALS;**23**;Oct 31, 2002;Build 25
  1. ;
  1. ; This routine uses the following IAs:
  1. ; #10039 - FILE 42 references (supported)
  1. ; #10040 - FILE 44 references (supported)
  1. ; #10061 - ^VADPT calls (supported)
  1. ; #10090 - FILE 4 references (supported)
  1. ; #10103 - ^XLFDT calls (supported)
  1. ; #10104 - ^XLFSTR calls (supported)
  1. ;
  1. EN1(RESULT,GMVDATA) ; [RPC entry point]
  1. ; GMV LATEST VITALS FOR PATIENT & GMV LATEST VITALS BY LOCATION
  1. ; DFN - patient internal entry number
  1. ; GMVDEV - device name
  1. ; GMVIEN - device internal entry number
  1. ; GMVPDT - date/time to print the report
  1. ; GMVWARD - ward internal entry number
  1. ; GMVHLOC - hospital location internal entry number
  1. ;
  1. N DFN,GMVDEV,GMVIEN,GMVPDT,GMVWARD,GMVHLOC
  1. S DFN=+$P(GMVDATA,U,1),GMVDEV=$P(GMVDATA,U,5),GMVIEN=+$P(GMVDATA,U,6),GMVPDT=$P(GMVDATA,U,7),GMVWARD=$P(GMVDATA,U,8),GMVHLOC=$P(GMVDATA,U,9)
  1. S ZTIO=GMVDEV ;device
  1. S ZTDTH=$S($G(GMVPDT)>0:GMVPDT,1:$$NOW^XLFDT()) ;date/time to print
  1. S ZTRTN="EN2^GMVDS1"
  1. S (ZTSAVE("DFN"),ZTSAVE("GMVWARD"),ZTSAVE("GMVHLOC"))=""
  1. I DFN>0 S ZTDESC="Latest Vitals Display for a Patient"
  1. I GMVWARD>0 S ZTDESC="Latest Vitals by Location"
  1. D ^%ZTLOAD
  1. S RESULT=$S($G(ZTSK)>0:"Report sent to device. Task #: "_ZTSK,1:"Unable to task the report.")
  1. K ZTSK,ZTIO,ZTDTH,ZTSAVE,ZTDESC,ZTRTN
  1. Q
  1. EN2 ; Start the report output
  1. S:$D(ZTQUEUED) ZTREQ="@"
  1. S GMVEDB=$S(DFN>0:"P",1:"A") ;P is one patient, A is whole ward
  1. S GMVWARD(1)=$S(GMVWARD>0:$P($G(^DIC(42,GMVWARD,0)),U,1),1:"") ;ward name
  1. K ^TMP($J)
  1. I $G(GMVEDB)="P" D
  1. .D DEM^VADPT,INP^VADPT
  1. .S GMRRMBD=$S(VAIN(5)'="":VAIN(5),1:" BLANK") ;roombed
  1. .S GMVNAME=$S(VADM(1)'="":VADM(1),1:" BLANK") ;patient name
  1. .S GMVWARD=$P(VAIN(4),"^") ;ward ien
  1. .S GMVWARD(1)=$P(VAIN(4),"^",2) ;ward name
  1. .D KVAR^VADPT K VA ;kill VADPT variables
  1. .S ^TMP($J,GMRRMBD,GMVNAME,DFN)=""
  1. E D WARD
  1. AE ;
  1. S (GMROUT,GMVPAGE)=0
  1. S GMVDASH=$$REPEAT^XLFSTR("-",80) ;line of dashes
  1. D NOW^%DTC
  1. S Y=% X ^DD("DD") S GMRPDT=$P(Y,"@")_" ("_$P($P(Y,"@",2),":",1,2)_")"
  1. S GMRSTR="T;P;R;BP;WT;HT;CVP;CG;PO2;PN"
  1. S GLOC=1 ;<-might be dead code
  1. U IO
  1. D HDR
  1. I $O(^TMP($J,""))="" W !,"THERE IS NO DATA FOR THIS REPORT" D Q1 Q
  1. S GMRRMBD=""
  1. F S GMRRMBD=$O(^TMP($J,GMRRMBD)) Q:GMRRMBD=""!GMROUT S GMVNAME="" F S GMVNAME=$O(^TMP($J,GMRRMBD,GMVNAME)) Q:GMVNAME=""!GMROUT F DFN=0:0 S DFN=$O(^TMP($J,GMRRMBD,GMVNAME,DFN)) Q:DFN'>0 D PRT Q:GMROUT
  1. Q1 ; Kill variables and quit
  1. K ^TMP($J),DFN,GMRADM,GMRDA,GMVDASH,GMVEDB,GMVNAME,GMRNM,GMROUT,GMRPDT,GMVPAGE,GMRRMBD,GMRPR,GMRVDT,GMRVTDA,GMVWARD,GMRX,GMRSITE,GMRSP,GMRVX,GMVHLOC,POP,GMRDT,%,%T,GDT
  1. K GSTRIN,GMRSTR,GMROUT,GMRVOERR,GMRVSTOP,GMRVSTRT,GLOC,GDATA
  1. D KVAR^VADPT
  1. D Q^GMVDS0
  1. D ^%ZISC
  1. Q
  1. HDR ; Report Header
  1. W:$Y>0 @IOF
  1. S GMVPAGE=GMVPAGE+1
  1. I GMVEDB="A" W !,GMRPDT,?20,"VITALS REPORT FOR UNIT: "_GMVWARD(1) W:GMVHLOC>0 " - "_$$GET1^DIQ(4,+$$GET1^DIQ(44,+GMVHLOC,3,"I"),.01,"I")
  1. I GMVEDB="P" W !,GMRPDT,?28,"LATEST VITALS REPORT"
  1. W ?72,"PAGE ",GMVPAGE
  1. W !,GMVDASH,!
  1. Q
  1. PRT ; Body of report
  1. D:IOSL<($Y+6)!($E(IOST)'="P") HDR Q:GMROUT
  1. D DEM^VADPT K GMRDT
  1. W !,$S(GMRRMBD'=" BLANK":$E(GMRRMBD,1,10),1:""),?12,$E(GMVNAME,1,20),?34,$E($P(VADM(2),U,2),8,11),!
  1. D EN1^GMVDS0,Q2
  1. Q
  1. Q2 ; Kill variables
  1. K GMRLIN,GMRJ,GBP,GMR,GMRL,GMRDT,GMRDAT,GMRDATS,GMRI,GMRX,GMRY,GMRVX,GSITE,GQUAL
  1. Q
  1. WARD ; Build TMP global for patients on ward
  1. ; set ^TMP($J,roombed,patient name,DFN)=""
  1. ; GMVWARD(1) is the NAME of FILE 42 entry
  1. ; GMVRMBD(n) is an array of room numbers on the ward (e.g, GMVRMBD(200))
  1. ; GMVEDB is a code for the type of sort
  1. ; A = all patients on a ward
  1. ; S = selected roombeds on a ward
  1. ; P = an individual patient
  1. K ^TMP($J)
  1. S DFN=0
  1. F S DFN=$O(^DPT("CN",GMVWARD(1),DFN)) Q:DFN="" D
  1. .D DEM^VADPT,INP^VADPT
  1. .S GMVRMBD=$S(VAIN(5)'="":VAIN(5),1:" BLANK") ;roombed
  1. .S GMVNAME=$S(VADM(1)'="":VADM(1),1:" BLANK") ;patient name
  1. .D KVAR^VADPT K VA
  1. .S:$S("Aa"[GMVEDB:1,$D(GMVROOM($P(GMVRMBD,"-"))):1,1:0) ^TMP($J,GMVRMBD,GMVNAME,DFN)=""
  1. .Q
  1. Q