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

BIREPP2.m

Go to the documentation of this file.
  1. BIREPP2 ;IHS/CMI/MWR - REPORT, PCV; MAY 10, 2010
  1. ;;8.5;IMMUNIZATION;;SEP 01,2011
  1. ;;* MICHAEL REMILLARD, DDS * CIMARRON MEDICAL INFORMATICS, FOR IHS *
  1. ;; VIEW OR PRINT PCV REPORT.
  1. ;
  1. ;----------
  1. ;---> Produce Header array for PCV Report.
  1. ;---> Parameters:
  1. ; 1 - BIBEGDT (req) Begin date of report.
  1. ; 2 - BIENDDT (req) End date of report.
  1. ; 3 - BICC (req) Current Community array.
  1. ; 4 - BIUP (req) User Population/Group (r,i,u,a).
  1. ;
  1. ;---> Check for required Variables.
  1. Q:'$G(BIBEGDT)
  1. Q:'$G(BIENDDT)
  1. Q:'$D(BICC)
  1. S:$G(BIUP)="" BIUP="u"
  1. ;
  1. K VALMHDR
  1. N BILINE,X S BILINE=0
  1. ;
  1. N X S X=""
  1. ;---> If Header array is NOT being for Listmananger include version.
  1. S:'$D(VALM("BM")) X=$$LMVER^BILOGO()
  1. ;
  1. D WH^BIW(.BILINE,X)
  1. S X=$$REPHDR^BIUTL6(DUZ(2)) D CENTERT^BIUTL5(.X)
  1. D WH^BIW(.BILINE,X)
  1. ;
  1. S X="* PCV Report *" D CENTERT^BIUTL5(.X)
  1. D WH^BIW(.BILINE,X)
  1. ;
  1. S X=$$SP^BIUTL5(27)_"Report Date: "_$$SLDT1^BIUTL5(DT)
  1. D WH^BIW(.BILINE,X)
  1. ;
  1. S X=$$SP^BIUTL5(28)_"Date Range: "_$$SLDT1^BIUTL5(BIBEGDT)_" - "_$$SLDT1^BIUTL5(BIENDDT)
  1. D WH^BIW(.BILINE,X,1)
  1. ;
  1. S X=" "_$$BIUPTX^BIUTL6(BIUP)
  1. D WH^BIW(.BILINE,X)
  1. S X=$$SP^BIUTL5(79,"-")
  1. D WH^BIW(.BILINE,X)
  1. ;
  1. D
  1. .;---> If specific Communities were selected (not ALL), then print
  1. .;---> the Communities in a subheader at the top of the report.
  1. .D SUBH^BIOUTPT5("BICC","Community",,"^AUTTCOM(",.BILINE,.BIERR,,12)
  1. .I $G(BIERR) D ERRCD^BIUTL2(BIERR,.X) D WH^BIW(.BILINE,X) Q
  1. .;
  1. .S X=" # of Children | 0-59m 2-23m 24-59m 6-11m 12-23m"
  1. .D WH^BIW(.BILINE,X)
  1. ;
  1. ;---> If Header array is being built for Listmananger,
  1. ;---> reset display window margins for Communities, etc.
  1. D:$D(VALM("BM"))
  1. .S VALM("TM")=BILINE+3
  1. .S VALM("LINES")=VALM("BM")-VALM("TM")+1
  1. .;---> Safeguard to prevent divide/0 error.
  1. .S:VALM("LINES")<1 VALM("LINES")=1
  1. Q
  1. ;
  1. ;
  1. ;----------
  1. GET(BIBEGDT,BIENDDT,BICC,BIUP) ;EP
  1. ;---> Produce temp global for PCV Report.
  1. ;---> Parameters:
  1. ; 1 - BIBEGDT (req) Begin date of report.
  1. ; 2 - BIENDDT (req) End date of report.
  1. ; 3 - BICC (req) Current Community array.
  1. ; 4 - BIUP (req) User Population/Group (r,i,u,a).
  1. ;
  1. K ^TMP("BIREPP1",$J),^TMP("BIDFN",$J)
  1. N BILINE,BITMP,X S BILINE=0
  1. ;
  1. ;---> Check for required Variables.
  1. I '$G(BIBEGDT) D ERRCD^BIUTL2(626,.X) D WRITE(.BILINE,X) Q
  1. I '$G(BIENDDT) D ERRCD^BIUTL2(627,.X) D WRITE(.BILINE,X) Q
  1. I '$D(BICC) D ERRCD^BIUTL2(614,.X) D WRITE(.BILINE,X) Q
  1. S:$G(BIUP)="" BIUP="u"
  1. ;
  1. ;---> Gather data.
  1. D GETIMMS^BIREPP3(BIBEGDT,BIENDDT,.BICC,BIUP)
  1. D TALLY^BIREPP3
  1. Q
  1. ;
  1. ;
  1. ;----------
  1. DISPLAY ;EP
  1. ;---> Create Listman display global for PCV Report.
  1. ;---> Parameters:
  1. ;---> Write Denominator line.
  1. N BILINE S BILINE=0
  1. N X S X=" Denominator | "
  1. N N F N=1:1:5 S X=X_$J(+$G(^TMP("BIREPP1",$J,"TOTALPATS",N)),8,0)_" "
  1. D WRITE(.BILINE,X)
  1. D WRITE(.BILINE,$$SP^BIUTL5(79,"-"))
  1. ;
  1. ;---> Write Doses lines.
  1. N BIAGRP,BIDOSE
  1. F BIDOSE=1,3,4 D
  1. .N X,Y S X=" "_BIDOSE_"+ doses PCV13 | "
  1. .;---> Next line without percents%.
  1. .;F BIAGRP=1:1:5 S X=X_$J(+$G(^TMP("BIREPP1",$J,"TALLY",BIDOSE,BIAGRP)),8,0)_" "
  1. .F BIAGRP=1:1:5 S Y=+$G(^TMP("BIREPP1",$J,"TALLY",BIDOSE,BIAGRP)),X=X_$J(Y,8,0)_" "
  1. .D WRITE(.BILINE,X)
  1. .S X=" | "
  1. .F BIAGRP=1:1:5 D
  1. ..N Y,Z S Y=+$G(^TMP("BIREPP1",$J,"TALLY",BIDOSE,BIAGRP))
  1. ..S Z=+$G(^TMP("BIREPP1",$J,"TOTALPATS",BIAGRP))
  1. ..S X=X_$J(100*$S(Z:Y/Z,1:0),8,0)_"% "
  1. .D WRITE(.BILINE,X)
  1. .D WRITE(.BILINE,$$SP^BIUTL5(79,"-"))
  1. ;
  1. ;---> Write PCV13 Totals line.
  1. S X=" Total Doses | "
  1. D WRITE(.BILINE,X) D MARK^BIW(BILINE,2,"BIREPP1")
  1. S X=" in Date Range | "
  1. F N=1:1:5 S X=X_$J(+$G(^TMP("BIREPP1",$J,"TOTALPCV13",N)),8,0)_" "
  1. D WRITE(.BILINE,X)
  1. D WRITE(.BILINE,$$SP^BIUTL5(79,"-"))
  1. ;
  1. ;---> Set final VALMCNT (Listman line count).
  1. S VALMCNT=BILINE
  1. Q
  1. ;
  1. ;
  1. ;----------
  1. EXPORT ;EP
  1. ;---> Export PCV Report patients to Excel(csv) File, and return to PCV Report.
  1. D EXPORT1
  1. ;---> BINOUP=1 means do not update report.
  1. S BINOUP=1
  1. D RESET^BIREPP1
  1. Q
  1. ;
  1. ;
  1. ;----------
  1. EXPORT1 ;EP
  1. ;---> Export PCV Report patients to Excel(csv) File.
  1. ;
  1. I '$O(^TMP("BIREPP1",$J,"BIDFN",0)) D Q
  1. .W !!?3,"There is no patient data to export." D DIRZ^BIUTL3()
  1. ;
  1. N BIDT,BIDUZ2,BIFLNM,BINOW,BIPATH,BIPOP,BISITE
  1. D NOW^%DTC S BIDT=$E(%,4,7)_"_"_$E(%,9,12)
  1. S BIFLNM="PCV Export "_BIDT_".csv"
  1. D HFS^BIEXPRT8(BIFLNM,.BIPATH,1,.BIPOP)
  1. I $G(BIPOP) D ^%ZISC W !!?3,"Failure to open Host File." D DIRZ^BIUTL3() Q
  1. ;---> Host file is open.
  1. ;
  1. ;---> Use "," for CSV delimiter.
  1. N Q,D S Q="""",D=Q_","_Q
  1. ;---> Write Title Header row.
  1. ;---> Date String, BINOW
  1. D
  1. .N %,X,Y D NOW^%DTC S Y=$E(%,1,12) D DD^%DT S BINOW=Y
  1. ;---> Facility String, BIDUZ2
  1. S BIDUZ2=$$INSTTX^BIUTL6($G(DUZ(2)))
  1. N Y S Y=Q_"PCV Report Patient Export"_D_"at "_BIDUZ2_D_"on "_BINOW
  1. I $G(BIUP)]"" S Y=Y_D_"User Population: "_$$BIUPTX^BIUTL6(BIUP)_Q
  1. W Y,!
  1. ;
  1. ;---> Write Column Headers row.
  1. S Y=Q_"Patient Name"_D_"Date of Birth"_D_"Chart#"_D_"Current Community"
  1. S Y=Y_D_"CVX#1"_D_"Date"_D_"Invalid Code"
  1. S Y=Y_D_"CVX#2"_D_"Date"_D_"Invalid Code"
  1. S Y=Y_D_"CVX#3"_D_"Date"_D_"Invalid Code"
  1. S Y=Y_D_"CVX#4"_D_"Date"_D_"Invalid Code"
  1. S Y=Y_D_"CVX#5"_D_"Date"_D_"Invalid Code"
  1. S Y=Y_D_"CVX#6"_D_"Date"_D_"Invalid Code"_Q
  1. W Y,!
  1. ;
  1. ;---> Write data records.
  1. N BIDFN S BIDFN=0
  1. F S BIDFN=$O(^TMP("BIREPP1",$J,"BIDFN",BIDFN)) Q:'BIDFN D
  1. .Q:'$D(^TMP("BIREPP1",$J,"BIDFN",BIDFN,"EXPORT"))
  1. .N BIDATA,BIPNAME,BICC
  1. .S BIDATA=^TMP("BIREPP1",$J,"BIDFN",BIDFN,"EXPORT")
  1. .S BIPNAME=$$NAME^BIUTL1(BIDFN)
  1. .S BIDOB=$$DOBF^BIUTL1(BIDFN,,1,1)
  1. .S BIHRCN=$$HRCN^BIUTL1(BIDFN,$G(DUZ(2)),1)
  1. .S BICC=$$CURCOM^BIUTL11(BIDFN,1)
  1. .S Q="""",D=Q_","_Q
  1. .W Q_BIPNAME_D_BIDOB_D_BIHRCN_D_BICC_D_BIDATA_Q,!
  1. ;
  1. ;---> Close the host file and report its location.
  1. D ^%ZISC
  1. D TITLE^BIUTL5("EXPORT PCV PATIENT DATA TO EXCEL FILE")
  1. W !!?5,"The PCV Report patient data has been exported to:"
  1. W !!?10,BIPATH_BIFLNM
  1. D TEXT3^BIEXP
  1. D DIRZ^BIUTL3()
  1. Q
  1. ;
  1. ;
  1. ;----------
  1. WRITE(BILINE,BIVAL,BIBLNK) ;EP
  1. ;---> Write lines to ^TMP (see documentation in ^BIW).
  1. ;---> Parameters:
  1. ; 1 - BILINE (ret) Last line# written.
  1. ; 2 - BIVAL (opt) Value/text of line (Null=blank line).
  1. ;
  1. Q:'$D(BILINE)
  1. D WL^BIW(.BILINE,"BIREPP1",$G(BIVAL),$G(BIBLNK))
  1. ;
  1. ;--->Set VALMCNT (Listman line count) for errors calls above.
  1. S VALMCNT=BILINE
  1. Q
  1. ;
  1. ;
  1. ;----------
  1. SUML(Y) ;EP
  1. ;---> Produce Header array for Vaccine Accountability Report.
  1. ;---> Parameters:
  1. ; 1 - Y (opt) Y=text, such as Date (Aug 23) or "Dose" or other text.
  1. I $L($G(Y))=0 S Y=" "
  1. S Y=$E(Y,1,7) S Y=$$PAD^BIUTL5(Y,7)
  1. N X
  1. S X=Y_" | |"
  1. ; " Date | 6-23m 24-59m 5-18y 19-25y 25-49y 50-64y "
  1. ;S X=Y_" | ------ ------ ------ ------ ------ ------ --"
  1. ; "65+y TOTAL"
  1. ;Q X_"---- | ------"
  1. Q X