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

BWRPPCD2.m

Go to the documentation of this file.
  1. BWRPPCD2 ;IHS/ANMC/MWR - REPORT: PROCEDURES STATISTICS;03-Sep-2003 20:12;PLS
  1. ;;2.0;WOMEN'S HEALTH;**6,8,9**;MAY 16, 1996
  1. ;IHS/CMI/LAB - patch 6 added current community screen
  1. ;IHS/CIA/PLS - patch 8 skips procedure lacking a procedure type
  1. ;;* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
  1. ;; COLLATING CODE CALLED BY BWRPPCD.
  1. ;
  1. ;
  1. SORT ;EP
  1. ;---> SORT AND STORE LOCAL ARRAY IN ^TMP("BW",$J,1,
  1. K ^TMP("BW",$J),BWRES
  1. ;---> BWBEGDT1=ONE SECOND BEFORE BEGIN DATE.
  1. ;---> BWENDDT1=THE LAST SECOND OF END DATE.
  1. S BWBEGDT1=BWBEGDT-.0001,BWENDDT1=BWENDDT+.9999
  1. S BWDATE=BWBEGDT1
  1. N BWDFN,BWIEN,BWPCD,Y
  1. F S BWDATE=$O(^BWPCD("D",BWDATE)) Q:'BWDATE!(BWDATE>BWENDDT1) D
  1. .S BWIEN=0
  1. .F S BWIEN=$O(^BWPCD("D",BWDATE,BWIEN)) Q:'BWIEN D
  1. ..S Y=^BWPCD(BWIEN,0)
  1. ..;---> QUIT IF THIS PROCEDURE HAS A RESULT OF "ERROR/DISREGARD".
  1. ..Q:$P(Y,U,5)=8
  1. ..S BWDFN=$P(Y,U,2),BWPCD=$P(Y,U,4)
  1. ..; Must have a valid procedure. WiseWoman entries lack a procedure.
  1. ..Q:'BWPCD
  1. ..S BWAGE=$$BWAGE(BWDFN,$P(Y,U,12),BWAGRG)
  1. ..;---> QUIT IF PATIENT'S AGE IS UNKNOWN OR OUTSIDE OF AGE RANGE.
  1. ..Q:'BWAGE
  1. ..;IHS/CMI/LAB - added current comm screen patch 6
  1. ..;---> QUIT IF NOT SELECTING ALL CURRENT COMMUNITIES AND IF THIS
  1. ..;---> IS NOT ONE OF THE SELECTED.
  1. ..I '$D(BWCC("ALL")) S X=$P($G(^AUPNPAT(BWDFN,11)),U,18) Q:'X Q:'$D(BWCC(X))
  1. ..;
  1. ..;---> QUIT IF NOT SELECTING FOR ALL PROCEDURES AND IF THIS IS
  1. ..;---> NOT ONE OF THE SELECTED PROCEDURES.
  1. ..I '$D(BWARR("ALL")) Q:'$D(BWARR(BWPCD))
  1. ..;---> FOR BWRES: 0=NORMAL, 1=ABNORMAL, 2=NO RESULT.
  1. ..I BWPCD'=44 D
  1. ...S BWRES=$$NORMAL^BWUTL4($P(Y,U,5))
  1. ..E D
  1. ...; Evaluate result for Mammography Project
  1. ...S BWRES=$$MPNORM(BWIEN)
  1. ..I '$D(^TMP("BW",$J,BWPCD,BWAGE,BWDFN,BWRES)) D Q
  1. ...S ^TMP("BW",$J,BWPCD,BWAGE,BWDFN,BWRES)=1
  1. ..S X=^TMP("BW",$J,BWPCD,BWAGE,BWDFN,BWRES)+1
  1. ..S ^TMP("BW",$J,BWPCD,BWAGE,BWDFN,BWRES)=X
  1. ;
  1. ;
  1. TOTALS ;EP
  1. ;---> N=BWPCD, Q=BWAGE, M=BWDFN, P=BWRES (0,1,2)
  1. N I,M,N,P,Q
  1. S N=0
  1. F S N=$O(^TMP("BW",$J,N)) Q:N="" D
  1. .S Q=0
  1. .F S Q=$O(^TMP("BW",$J,N,Q)) Q:Q="" D
  1. ..F I=0,1,2 S BWRES(N,Q,I,"P")=0 S BWRES(N,Q,I,"T")=0
  1. ..S M=0,BWRES(N,Q,"P")=0,BWRES(N,Q,"T")=0
  1. ..F S M=$O(^TMP("BW",$J,N,Q,M)) Q:M="" D
  1. ...S P=-1,BWRES(N,Q,"P")=BWRES(N,Q,"P")+1
  1. ...F S P=$O(^TMP("BW",$J,N,Q,M,P)) Q:P="" D
  1. ....S BWRES(N,Q,P,"P")=BWRES(N,Q,P,"P")+1
  1. ....S BWRES(N,Q,P,"T")=BWRES(N,Q,P,"T")+^TMP("BW",$J,N,Q,M,P)
  1. ;
  1. ;---> NOW COMPUTE TOTAL #PROCEDURES FOR EACH PROCEDURE, EACH AGE GROUP.
  1. S N=0
  1. F S N=$O(BWRES(N)) Q:'N D
  1. .S Q=0
  1. .F S Q=$O(BWRES(N,Q)) Q:'Q D
  1. ..S M=-1
  1. ..F S M=$O(BWRES(N,Q,M)) Q:M=""!(M'?1N.N) D
  1. ...S BWRES(N,Q,"T")=BWRES(N,Q,"T")+BWRES(N,Q,M,"T")
  1. ;
  1. ;
  1. ;---> NOW COMPUTE TOTAL #PROCEDURES FOR EACH PROCEDURE.
  1. ;---> BWRES(N,"P")=TOTAL PATIENTS WHO RECEIVED THIS PROCEDURE.
  1. ;---> BWRES(N,"T")=TOTAL TIMES THIS PROCEDURE WAS PERFORMED.
  1. S N=0
  1. F S N=$O(BWRES(N)) Q:'N D
  1. .S Q=0,BWRES(N,"P")=0,BWRES(N,"T")=0
  1. .F S Q=$O(BWRES(N,Q)) Q:'Q D
  1. ..S BWRES(N,"P")=BWRES(N,"P")+BWRES(N,Q,"P")
  1. ..S BWRES(N,"T")=BWRES(N,"T")+BWRES(N,Q,"T")
  1. ;
  1. ;
  1. FLATFL ;EP
  1. ;---> WRITE OUT RESULTS AND PECENTAGES IN A FLAT FILE.
  1. ;---> PIECE VALUES: 1=PROC TYPE, 2=NORMAL PATS, 3=NORMAL PATS%
  1. ;---> 4=NORMAL PROC, 5=NORMAL PROC%, 6=ABNORM PATS
  1. ;---> 7=ABNORM PATS%, 8=ABNORM PROC, 9=ABNORM PROC%
  1. ;---> 10=NO RES PATS, 11=NO RES PATS%, 12=NO RES PROC
  1. ;---> 13=NO RES PROC%, 14=TOTAL PATS, 15=TOTAL PROC,
  1. ;---> 16=AGE GROUP
  1. S N=0
  1. F S N=$O(BWRES(N)) Q:'N D
  1. .S M=0,(BWPN,X)=$P(^BWPN(N,0),U)
  1. .F S M=$O(BWRES(N,M)) Q:'M D
  1. ..S X=BWPN
  1. ..F I=0,1,2 D
  1. ...S X=X_U_BWRES(N,M,I,"P")
  1. ...S X=X_U_$J((BWRES(N,M,I,"P")*100/BWRES(N,M,"P")),1,0)
  1. ...S X=X_U_BWRES(N,M,I,"T")
  1. ...S X=X_U_$J((BWRES(N,M,I,"T")*100/BWRES(N,M,"T")),1,0)
  1. ..S X=X_U_BWRES(N,M,"P")_U_BWRES(N,M,"T")_U_M
  1. ..S BWRES("R",BWPN,M)=X
  1. .;--->
  1. .;---> NOW GET TOTALS FOR THIS PROCEDURE.
  1. .N A,B,C,D,E,F
  1. .S (A,B,C,D,E,F,M)=0
  1. .F S M=$O(BWRES("R",BWPN,M)) Q:'M D
  1. ..S Y=BWRES("R",BWPN,M)
  1. ..S A=A+$P(Y,U,2),B=B+$P(Y,U,4),C=C+$P(Y,U,6)
  1. ..S D=D+$P(Y,U,8),E=E+$P(Y,U,10),F=F+$P(Y,U,12)
  1. .S X=BWPN_U_A_U_$J(A*100/BWRES(N,"P"),1,0)
  1. .S X=X_U_B_U_$J(B*100/BWRES(N,"T"),1,0)
  1. .S X=X_U_C_U_$J(C*100/BWRES(N,"P"),1,0)
  1. .S X=X_U_D_U_$J(D*100/BWRES(N,"T"),1,0)
  1. .S X=X_U_E_U_$J(E*100/BWRES(N,"P"),1,0)
  1. .S X=X_U_F_U_$J(F*100/BWRES(N,"T"),1,0)
  1. .S X=X_U_BWRES(N,"P")_U_BWRES(N,"T")_U_"ALL"
  1. .S BWRES("R",BWPN,"ALL")=X
  1. Q
  1. ;
  1. ;
  1. BWAGE(DFN,DATE,X) ;EP
  1. ;---> SET AGE CATEGORY.
  1. ;---> REQUIRED VARIABLES: DATE=DATE PATIENT RECEIVED THIS PROCEDURE.
  1. ;---> DFN, X=BWAGRG (AGE RANGE).
  1. ;---> IF NOT DISPLAY BY AGE, SET ALL BWAGE=1
  1. Q:X=1 1
  1. N AGE,Y,Z
  1. S AGE=$P($$AGEAT^BWUTL1(DFN,DATE),"y/o")
  1. ;---> RETURN 0 IF PATIENT'S AGE IS UNKNOWN.
  1. Q:'+AGE 0
  1. ;
  1. F I=1:1:$L(X,",") S Y=$P($P(X,",",I),"-",2) Q:AGE'>Y
  1. S Z=$P($P(X,",",I),"-")
  1. ;---> RETURN 0 IF PATIENT IS OUTSIDE DATE RANGE.
  1. Q:(AGE<Z!(AGE>Y)) 0
  1. Q Y
  1. ; Return a result based on Mammography Assessment Fields
  1. ; Input: BWPCD = IEN to BW Procedure File
  1. ; Uses: Fields 12.02,12.03,12.04,12.05,12.06
  1. ; Result yields one of the following values:
  1. ; Normal - 0
  1. ; Abnormal - 1
  1. ; NO Result - 2
  1. MPNORM(BWPCD) ;
  1. N RES,NORES,NORM,ABNORM,LP
  1. S RES="",NORES=2,NORM=0,ABNORM=1
  1. ; Check Negative Finding
  1. Q:$$GET1^DIQ(9002086.1,BWPCD,12.02,"I")!($$GET1^DIQ(9002086.1,BWPCD,12.03,"I")) NORM
  1. F LP=12.04,12.05,12.06 D
  1. .S RES=RES+$$GET1^DIQ(9002086.1,BWPCD,LP,"I")
  1. Q $S('RES:NORES,1:ABNORM)