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

BIREPH2.m

Go to the documentation of this file.
  1. BIREPH2 ;IHS/CMI/MWR - REPORT, H1N1 ACCOUNTABILITY; MAY 10, 2010
  1. ;;8.5;IMMUNIZATION;;SEP 01,2011
  1. ;;* MICHAEL REMILLARD, DDS * CIMARRON MEDICAL INFORMATICS, FOR IHS *
  1. ;; VIEW OR PRINT H1N1 ACCOUNTABILITY REPORT.
  1. ;; PATCH 3: BIREPH* routines are completely new for H1N1 Report.
  1. ;
  1. ;----------
  1. ;---> Produce Header array for Vaccine Accountability 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 - BIHCF (req) Health Care Facility array.
  1. ; 5 - BICM (req) Case Manager array.
  1. ; 6 - BIBEN (req) Beneficiary Type array.
  1. ; 7 - BIHIST (req) Include Historical (1=yes,0=no).
  1. ; 8 - BIVT (req) Visit Type array.
  1. ;
  1. ;---> Check for required Variables.
  1. Q:'$G(BIBEGDT)
  1. Q:'$G(BIENDDT)
  1. Q:'$D(BICC)
  1. Q:'$D(BIHCF)
  1. Q:'$D(BICM)
  1. Q:'$D(BIBEN)
  1. Q:'$D(BIHIST)
  1. Q:'$D(BIVT)
  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="* H1N1 Accountability 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=" (Historical "_$S(BIHIST:"In",1:"Ex")_"cluded)"
  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. .;---> If specific Health Care Facilities, print subheader.
  1. .D SUBH^BIOUTPT5("BIHCF","Facility",,"^DIC(4,",.BILINE,.BIERR,,12)
  1. .I $G(BIERR) D ERRCD^BIUTL2(BIERR,.X) D WH^BIW(.BILINE,X) Q
  1. .;
  1. .;---> If specific Case Managers, print Case Manager subheader.
  1. .D SUBH^BIOUTPT5("BICM","Case Manager",,"^VA(200,",.BILINE,.BIERR,,12)
  1. .I $G(BIERR) D ERRCD^BIUTL2(BIERR,.X) D WH^BIW(.BILINE,X) Q
  1. .;
  1. .;---> If specific Beneficiary Types, print Beneficiary Type subheader.
  1. .D SUBH^BIOUTPT5("BIBEN","Beneficiary Type",,"^AUTTBEN(",.BILINE,.BIERR,,12)
  1. .I $G(BIERR) D ERRCD^BIUTL2(BIERR,.X) D WH^BIW(.BILINE,X) Q
  1. .;
  1. .;---> If specific Beneficiary Types, print Beneficiary Type subheader.
  1. .D SUBH^BIOUTPT5("BIVT","Visit Type",,"9000010-.03",.BILINE,.BIERR,,12)
  1. .I $G(BIERR) D ERRCD^BIUTL2(BIERR,.X) D WH^BIW(.BILINE,X) Q
  1. .;
  1. .S X=" Dose | 6-23m 24-59m 5-18y 19-24y 25-49y 50-64y "
  1. .S X=X_" 65+y | TOTAL"
  1. .D WH^BIW(.BILINE,X)
  1. .;S X=$$SUML(" Dose")
  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,BIHCF,BICM,BIBEN,BIHIST,BIVT) ;EP
  1. ;----------
  1. ;---> Produce array for Vaccine Accountability 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 - BIHCF (req) Health Care Facility array.
  1. ; 5 - BICM (req) Case Manager array.
  1. ; 6 - BIBEN (req) Beneficiary Type array.
  1. ; 7 - BIHIST (req) Include Historical (1=yes,0=no).
  1. ; 8 - BIVT (req) Visit Type array.
  1. ;
  1. K ^TMP("BIREPH1",$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. I '$D(BIHCF) D ERRCD^BIUTL2(625,.X) D WRITE(.BILINE,X) Q
  1. I '$D(BICM) D ERRCD^BIUTL2(615,.X) D WRITE(.BILINE,X) Q
  1. I '$D(BIBEN) D ERRCD^BIUTL2(662,.X) D WRITE(.BILINE,X) Q
  1. I '$D(BIHIST) D ERRCD^BIUTL2(663,.X) D WRITE(.BILINE,X) Q
  1. I '$D(BIVT) D ERRCD^BIUTL2(664,.X) D WRITE(.BILINE,X) Q
  1. ;
  1. ;---> Gather data.
  1. D GETIMMS^BIREPH3(BIBEGDT,BIENDDT,.BICC,.BIHCF,.BICM,.BIBEN,BIHIST,.BIVT)
  1. ;
  1. ;---> Write Stats lines for each Vaccine Group.
  1. ;---> BIG=Vaccine Group, BIV=Vaccine Name, BIA=Age.
  1. ;
  1. N BILINE S BILINE=0
  1. N BIDATE S BIDATE=0
  1. F S BIDATE=$O(BITMP("STATS",BIDATE)) Q:'BIDATE D
  1. .;---> S BIDATEX=External Date format of BIDATE
  1. .N BIDATEX,BILSAV D
  1. ..N Y S Y=BIDATE D DD^%DT S BIDATEX=" "_$P(Y,",")
  1. .;---> Write Date line.
  1. .S X=$$SUML(BIDATEX) D WRITE(.BILINE,X) S BILSAV=BILINE
  1. .;
  1. .N BIDOSE
  1. .F BIDOSE=1:1:2 D
  1. ..;---> Write Dose line.
  1. ..;S X=BIDOSE D CENTERT^BIUTL5(.X)
  1. ..;---> Save this line# for marking as a single record to print.
  1. ..;D WRITE(.BILINE,X) S BILSAV=BILINE
  1. ..;
  1. ..;---> Build Age Totals line for this date & dose.
  1. ..;I BIDOSE>1 S X=$$SUML(BIDATEX) D WRITE(.BILINE,X) ;S BILSAV=BILINE
  1. ..N X S X=" #"_BIDOSE_" |" N BIA
  1. ..F BIA=1:1:6 S X=X_$J($G(BITMP("STATS",BIDATE,BIDOSE,"AGE",BIA)),7,0)_" "
  1. ..;---> Last line special just to concat "|".
  1. ..S X=X_$J($G(BITMP("STATS",BIDATE,BIDOSE,"AGE",7)),7,0)_" |"
  1. ..;
  1. ..;---> Now concat Total column (for this dose).
  1. ..S X=X_$J($G(BITMP("STATS",BIDATE,BIDOSE,"TOTAL")),7,0)
  1. ..D WRITE(.BILINE,X) I BIDOSE=1 S BILSAV=BILINE
  1. .;
  1. .D WRITE(.BILINE,$$SP^BIUTL5(79,"-"))
  1. .;
  1. .;---> Now mark the top line of this vaccine to print as one record.
  1. .D:$G(BILSAV) MARK^BIW(BILSAV,BILINE-BILSAV,"BIREPH1")
  1. ;
  1. ;---> Now write totals.
  1. S X=" Total H1N1 First Doses"
  1. S X=X_$$SP^BIUTL5(48)_"|"_$J(+$G(BITMP("STATS","DOSES",1,"TOTAL")),7,0)
  1. D WRITE(.BILINE,X)
  1. ;
  1. S X=" Total H1N1 Second Doses"
  1. S X=X_$$SP^BIUTL5(47)_"|"_$J(+$G(BITMP("STATS","DOSES",2,"TOTAL")),7,0)
  1. D WRITE(.BILINE,X),WRITE(.BILINE,$$SP^BIUTL5(79,"-"))
  1. ;
  1. S X=" Total H1N1 Immunizations"
  1. S X=X_$$SP^BIUTL5(46)_"|"_$J(+$G(BITMP("STATS","ALL","TOTAL")),7,0)
  1. D WRITE(.BILINE,X),WRITE(.BILINE,$$SP^BIUTL5(79,"-"))
  1. ;
  1. ;---> Now write total patients considered who had refusals.
  1. ;---> Not desired on this report, per Ros 10-12-05
  1. ;N M,N S (M,N)=0 F S M=$O(BITMP("REFUSALS",M)) Q:'M S N=N+1
  1. ;S X=" Total Patients included who had Refusals on record"_$J(N,28)
  1. ;D WRITE(.BILINE,X),WRITE(.BILINE,$$SP^BIUTL5(79,"-"))
  1. ;
  1. ;---> Set final VALMCNT (Listman line count).
  1. S VALMCNT=BILINE
  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,"BIREPH1",$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