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

BDMPRT.m

Go to the documentation of this file.
  1. BDMPRT ; IHS/CMI/LAB - PRINTS REPORTS USING REPORT TEMPLATE FILE ;
  1. ;;2.0;DIABETES MANAGEMENT SYSTEM;**2**;JUN 14, 2007
  1. ;
  1. ;CMI/TUCSON/LAB - patch 3 - 10/26/1998 - Y2K fixes
  1. EN(BDMDFN,BDMROOT,BDMPD) ;PEP - create report
  1. I '$D(BDMROOT) W !,*7,"Global root not indicated!" Q
  1. I '$D(ZTQUEUED),$P(IOST,"-")="C" S BDMBRK="" W @IOF
  1. S BDMENDR=$E(BDMROOT,$L(BDMROOT)) I "(,"[BDMENDR S BDMROOT=$E(BDMROOT,1,($L(BDMROOT)-1))
  1. S BDMENDR=$E(BDMROOT,$L(BDMROOT)) I BDMENDR'=")",BDMROOT["(" S BDMROOT=BDMROOT_")"
  1. S (BDMOOP,BDMCNT,BDMSTP)=0 F S BDMOOP=$O(^APCLRPT(BDMDFN,21,BDMOOP)) Q:'BDMOOP!BDMSTP S BDML=0 S BDMLINE=^(BDMOOP,0) D D BDMWRTE
  1. . F I=1:1 Q:$P(BDMLINE,"|",2,99)="" S BDMN=+$P(BDMLINE,"|",2),BDMTMP=$P(BDMLINE,"|") S BDMV=$S($D(@BDMROOT@(BDMN)):@BDMROOT@(BDMN),1:"") D:BDMV="" CODE D:BDMV]""&($P($G(^APCLRPT(BDMDFN,31,BDMN,0)),U,2)="p") PCT D K BDMCODE
  1. .. I ($L(BDMTMP)+$L(BDMV))>$S($D(BDMCODE):250,1:IOM) S BDML=BDML+1 S BDMWRTE(BDML)=BDMTMP S BDMLINE=BDMV_$P(BDMLINE,"|",3,999) Q
  1. .. S BDMTMP=BDMTMP_BDMV
  1. .. I ($L(BDMTMP)+$L($P(BDMLINE,"|",3,999)))>IOM S BDML=BDML+1 S BDMWRTE(BDML)=BDMTMP S BDMLINE=$P(BDMLINE,"|",3,999) Q
  1. .. S BDMLINE=BDMTMP_$P(BDMLINE,"|",3,999)
  1. . S BDML=BDML+1 S BDMWRTE(BDML)=BDMLINE
  1. I $D(BDMBRK),'BDMSTP D PAGE I 1
  1. E W @IOF
  1. K BDMOOP,BDMBRK,BDMCNT,BDMI,BDMTMP,BDML,BDMLINE,BDMN,BDMV,BDMWRTE,BDMX,BDMENDR
  1. I '$D(BDMASK) K BDMSTP
  1. Q
  1. ;
  1. CODE ; Get date or value from data fetcher
  1. NEW BDMDIS,BDMI,BDMSTP
  1. K BDMER
  1. I $G(BDMPD),$G(^APCLRPT(BDMDFN,31,BDMN,21))]"" S BDMCODE=^(21) D
  1. . I BDMCODE["*" S BDMV="Script error - '*' entered as a value!" Q
  1. . I $G(BDMDATE)]"",$P(BDMCODE,";",2)]"" S BDMV="Script error - date information entered!" Q
  1. . S BDMDIS=$S($P(BDMCODE," ")="DATE":"DATE",$P(BDMCODE," ")="VALUE"!("PATPT"[$P(BDMCODE," ")):"VALUE",1:"BOTH")
  1. . I $E($P(BDMCODE," "),1,3)["PAT"!($E($P(BDMCODE," "),1,2)["PT")
  1. . E I BDMDIS="DATE"!(BDMDIS="VALUE") S BDMCODE=$P(BDMCODE," ",2,99)
  1. . I $E($P(BDMCODE," "),1,3)'="PAT",$E($P(BDMCODE," "),1,2)'="PT" S BDMCODE=BDMCODE_$G(BDMDATE)
  1. . S BDMX=BDMPD_"^"_BDMCODE,BDMY="BDMDF(" S BDMER=$$START1^APCLDF(BDMX,BDMY) K BDMX,BDMY
  1. . I BDMER S BDMV="Data Retrieval Error!" K BDMER Q
  1. . K BDMER
  1. . I '$D(BDMDF) S BDMV="None Found" K BDMDF Q
  1. . I BDMDIS="BOTH"!(BDMDIS="DATE") F BDMI=1:1 Q:'$D(BDMDF(BDMI)) D Q:$G(BDMSTP) D SET
  1. .. I ($L(BDMV)+6)>246 S BDMSTP=1,BDMV=BDMV_" ...etc."
  1. . I BDMDIS'="VALUE" K BDMDF Q
  1. . F BDMI=1:1 Q:'$D(BDMDF(BDMI)) D Q:$G(BDMSTP) S BDMV=$S(BDMI>1:BDMV_", ",1:$G(BDMV))_$P(BDMDF(BDMI),U,2)
  1. .. I ($L(BDMV)+6)>246 S BDMSTP=1,BDMV=BDMV_" ...etc."
  1. . K BDMDF,BDMPCE
  1. Q
  1. ;
  1. SET ; Set Value and or Date from PCC SCRIPT
  1. ;beginning Y2K fix. Modified line to use a 4 digit year rather than a 2 digit year. Not sure is this was necessary but it will work either way.
  1. ;S Y=$P(BDMDF(BDMI),U),Y=$E(Y,4,5)_"/"_$E(Y,6,7)_"/"_$E(Y,2,3) S BDMV=$S(BDMI>1:BDMV_", ",1:$G(BDMV))_$S(BDMDIS="BOTH":$P(BDMDF(BDMI),U,2)_" - "_Y,1:Y)
  1. S Y=$P(BDMDF(BDMI),U),Y=$E(Y,4,5)_"/"_$E(Y,6,7)_"/"_(1700+$E(Y,1,3)) S BDMV=$S(BDMI>1:BDMV_", ",1:$G(BDMV))_$S(BDMDIS="BOTH":$P(BDMDF(BDMI),U,2)_" - "_Y,1:Y) ;Y2000
  1. ;end Y2K fix
  1. Q
  1. ;
  1. BDMWRTE ; Write line
  1. I BDMWRTE(1)="@",$D(BDMBRK) D PAGE G X1
  1. I BDMWRTE(1)="@" W @IOF S BDMCNT=0 G X1
  1. F BDMX=1:1:BDML Q:BDMSTP W !,BDMWRTE(BDMX) S BDMCNT=BDMCNT+1 I $D(BDMBRK),(IOSL-3)<BDMCNT D PAGE
  1. X2 K BDMWRTE
  1. Q
  1. ;
  1. PAGE ; Page Control
  1. W !
  1. S DIR(0)="E" D ^DIR K DIR
  1. I Y S BDMCNT=0
  1. E S BDMSTP=1
  1. W @IOF
  1. Q
  1. ;
  1. PCT ; Determine BDM
  1. S @("BDMV="_BDMV)
  1. S BDMV=BDMV*100,BDMV=$J(BDMV,3,0)_"%"
  1. X1 Q
  1. ;