GMVCAQU ;HOIFO/YH,FT-DISPLAY CATEGORY/QUALIFIER/SYNONYM TABLE FOR VITAL TYPE ;10/25/02  10:04
 ;;5.0;GEN. MED. REC. - VITALS;;Oct 31, 2002
 ;
 ; This routine uses the following IAs:
 ; #10103 - ^XLFDT calls           (supported)
 ; #10104 - ^XLFSTR calls          (supported)
 ;
EN1(RESULTS,GMVDATA) ; GMV QUALIFIER TABLE [RPC entry point]
 ; Display Vitals Category/Qualifier/Synonym Table
 ; GMVDEV - device name (File 3.5)
 ; GMVIEN - device internal entry number
 ; GMVPDT - date/time to print report
 ;
 
GMVDEV,GMVIEN,GMVPDT
 
RESULTS=$NA(^TMP($J)) @RESULTS
 
GMVDEV=$P(GMVDATA,U,5),GMVIEN=+$P(GMVDATA,U,6),GMVPDT=$P(GMVDATA,U,7)
 
ZTIO=GMVDEV ;device
 
ZTDTH=$S($G(GMVPDT)>0:GMVPDT,1:$$NOW^XLFDT()) ;date/time to print
 
ZTDESC="Vitals Category/Qualifier/Synonym Table"
 
ZTRTN="START^GMVCAQU"
 
^%ZTLOAD
 
I $G(ZTSK)>0 @RESULTS@(0)="1^Report Queued. Task #:"_ZTSK
 
E  S @RESULTS@(0)="-1^Unable to queue report."
 
ZTSK,ZTIO,ZTDTH,ZTSAVE,ZTDESC,ZTRTN
 
Q
START ; Start the report
 
IO
 
S:$D(ZTQUEUEDZTREQ="@"
 
(GMROUT,GMRPG)=0
 
GMVNOW=$$NOW^XLFDT() ;get current date/time
 
GMVNOW=$$FMTE^XLFDT(GMVNOW;format current date/time
 
HDR
 
GMRVIT(1)="BLOOD PRESSURE","PULSE","RESPIRATION","TEMPERATURE","WEIGHT","CIRCUMFERENCE/GIRTH","HEIGHT","PULSE OXIMETRY" Q:GMROUT  D
 
.GMRVIT=$O(^GMRD(120.51,"B",GMRVIT(1),0)) Q:GMRVIT'>0!GMROUT  D
 
..GMRVITY=$P(^GMRD(120.51,GMRVIT,0),"^",2) Q:GMRVITY=""!GMROUT  GLVL=8 LISTQ^GMVQUAL Q:GMROUT  OTHERQ CLEAR
 
..Q
 
.Q
Q1 ; Kill variables and quit
 
GMRVIT,GMRVITY,GLVL,GMROUT,GMRPG,GSYNO,I,J,POP
 
CLEAR
 
^%ZISC
 
Q
HDR ; Header
 
W:$Y>0 @IOF
 
GMRPG=GMRPG+1
 
!,"Vitals/Measurements Category/Qualifier/Synonym Table",?65,"Page ",GMRPG
 
!,"Run Date: ",GMVNOW
 
!,$$RJ^XLFSTR(" ",75,"-")
 
W:GMRPG>1 !,GLABEL,!,GLABEL(1)
 
Q
CLEAR ; Clean up variables
 
GCHART,GCHART1,GQUAL,GMRVDFLT,GORDER,GLABEL,GFLAG,GMAX,GMIN,GMRLAST,GMRINF,GCAT,GCHA,GCOL,GDA,GENTR,GTXT,GBLNK,GCOUNT,GLN,GMRENTR,GMRVODR,GSIDE,GTYPE,GDASH
 
Q
OTHERQ ;
 
Q:'$D(GCHART)&('$D(GCHART1))
 
GCOL=1,GFLAG=0,$P(GLABEL," ",80)="",$P(GBLNK," ",80)="",$P(GLABEL(1)," ",80)="",$P(GDASH,"-",20)=""
 
(GMAX,GMAX(1))=0
 
F  S GMAX(1)=$O(GCOUNT(GMAX(1))) Q:GMAX(1)'>0  GMAX(2)="" F  S GMAX(2)=$O(GCOUNT(GMAX(1),GMAX(2))) Q:GMAX(2)=""  GCOUNT(GMAX(1),GMAX(2))>GMAX GMAX=GCOUNT(GMAX(1),GMAX(2))
 
Q:+$G(GMAX)=0
 
I=1:1:GMAX S $P(GTXT(I)," ",80)=""
 
GMRVODR=0
 
F  S GMRVODR=$O(GCOUNT(GMRVODR)) Q:GMRVODR'>0  GCAT=$O(GCOUNT(GMRVODR,"")) Q:GCAT=""  D
 
GCOL=$S(GMRVODR=1:1,GMRVODR=2:18,GMRVODR=3:39,GMRVODR=4:58,1:70)
 . 
GMRVODR=2,GMRVIT(1)="PULSE" GCOL=28
 . 
GMRVODR=2,GMRVIT(1)="RESPIRATION" GCOL=32
 . 
GLABEL=$S(GMRVODR=1:$E(GCAT_GBLNK,1,80),1:$E($E(GLABEL,1,GCOL)_GCAT_GBLNK,1,80))
 . 
GCAT(1)=$E(GDASH,1,$L(GCAT))
 . 
GLABEL(1)=$S(GMRVODR=1:$E(GCAT(1)_GBLNK,1,80),1:$E($E(GLABEL(1),1,GCOL)_GCAT(1)_GBLNK,1,80))
 . 
I=0,GCHA="" F  S GCHA=$O(GQUAL(GMRVODR,GCHA)) Q:GCHA=""  D
 
. . GSYNO(1)=$O(^GMRD(120.52,"B",GCHA,0)) Q:GSYNO(1)'>0  GSYNO=$P($G(^GMRD(120.52,GSYNO(1),0)),"^",2)
 . . 
I=I+1,GTXT(I)=$S(GMRVODR=1:$E(GCHA_": "_GSYNO_GBLNK,1,80),1:$E($E(GTXT(I),1,GCOL)_GCHA_": "_GSYNO_GBLNK,1,80))
 . . 
Q
 
Q
 W 
!!,"Qualifiers for "_GMRVIT(1)_": ",!!,GLABEL,!,GLABEL(1)
 
I=1:1:GMAX D:IOSL<($Y+6) HDR Q:GMROUT  !,GTXT(I)
 
Q