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

BWMDET.m

Go to the documentation of this file.
  1. BWMDET ;CMI/THL - NEW METHOD TO EXPORT CBE/MAM DATA;30-Oct-2003 12:00;PLS
  1. ;;2.0;WOMEN'S HEALTH;**5,6,7,8,9**;MAY 16, 1996
  1. ;; CDC EXPORT, BUILDS ASCII FIXED LENGTH RECORDS FOR EXPORT.
  1. ;IHS/CMI/THL - patch 5 new routine for new cdc format
  1. ;IHS/CMI/THL - patch 8 extensive rewrite for new cdc specifications
  1. ;;
  1. ;; BWTCBE(35) = CDC DX CODE
  1. ;; BWTCBE(36) = DX WORKUP PLANNED CODE
  1. ;; Each of the BWTCBE(n) variables corresponds to the 67 field of the
  1. ;; CDC exprt record per version 2.4
  1. ;EVALUATE EACH PROCEDURE FOR CDC EXPORT
  1. EN D EN1
  1. EXIT K BWTPN,BWTPNDA,BWTPCDDA,BWTPATDA,BWTI,BWTJ,BWTPDAX,BWTDATE,BWTDAT,BWT0,BWT2,BWTDATX,BWTCBE,BWTP2,XMINUS
  1. K ^TMP("BWTBW2",$J)
  1. K ^TMP("BWTPCD",$J)
  1. K ^TMP("CBEARRAY",$J)
  1. Q
  1. EN1 ;REVIEW ALL MAMMS AND CBE'S
  1. D EXIT
  1. F BWPNDA=25,26 D
  1. .S BWTPCDDA=0
  1. .F S BWTPCDDA=$O(^BWPCD("APCD",BWPNDA,BWTPCDDA)) Q:'BWTPCDDA D:'$D(^TMP("BWTPCD",$J,BWTPCDDA))
  1. ..Q:$P($G(^BWPCD(BWTPCDDA,3)),U,2)
  1. ..Q:$G(^BWPCD(BWTPCDDA,2))="" S BWTP2=^(2)
  1. ..S BW0=^BWPCD(BWTPCDDA,0)
  1. ..Q:$P(BW0,U,12)<BWBEGDT!($P(BW0,U,12)>BWENDDT)
  1. ..D PT(BWTPCDDA)
  1. Q
  1. PT(BWTPCDDA) ;EVALUATE ALL MAMM'S AND CBE'S FOR EACH PATIENT
  1. S X=BW0
  1. S BWTPATDA=$P(X,U,2)
  1. Q:'BWTPATDA
  1. S BWDFN=BWTPATDA
  1. I $D(BWTSEL) Q:'$D(BWTSEL(+BWDFN)) ;EXPORT FOR SELECTED PATIENTS
  1. Q:'$$INCCHK^BWMDE(BWDFN,$P(BW0,U,12))
  1. Q:$P(X,U,3)<BWBEGDT
  1. Q:$P(X,U,3)>BWENDDT
  1. I $G(BWCUTF),BWCUTF>$P($$AGE^BWUTL1(BWTPATDA),"y") Q
  1. I $G(BWCUTO),BWCUTO<$P($$AGE^BWUTL1(BWTPATDA),"y") Q
  1. I $E($G(^DPT(BWTPATDA,0)),1,5)="DEMO," U 0 W !,BWTPATDA,?10,$P(^DPT(BWTPATDA,0),U)," disregarded." Q
  1. EVAL ;EVALUATE MAMMOGRAM
  1. K BWTQUIT
  1. D ENDATE
  1. I $D(BWTQUIT) K BWTQUIT Q
  1. K BWT
  1. S X=BW0
  1. I $P(X,U,5)=8!($P(X,U,5)=63)!'$P(X,U,5) D USED Q
  1. I $P($G(^BWDIAG(+$P(X,U,5),0)),U,25)>6 D USED Q
  1. D SETUP
  1. S BWTDAT=$P(BW0,U,12)
  1. I BWTDAT<2950101 D USED Q
  1. S BWTCBE(35)=$P($G(^BWDIAG(+$P(BW0,U,5),0)),U,25)
  1. Q:BWTCBE(35)=9!'BWTCBE(35)
  1. N XX,YY
  1. S XX=BWTDAT
  1. S YY=37
  1. D F1
  1. D USED
  1. D PAGE2
  1. S BWIEN=BWTPCDDA
  1. D FILE
  1. K BWTP2,BWTINTV,XMINUS
  1. Q
  1. PAGE2 ;SET PAGE 2 VALUES
  1. S BWTCBE(61)=$P(BW0,U,31)
  1. K BWTQUIT
  1. N J,X
  1. F J=20:1:35 Q:$D(BWTQUIT) S X=$P(BWTP2,U,J) D:X]""
  1. .I J=20 S BWTCBE(36)=X I X=1 D DXWU
  1. .I J=20,X=2 D Q
  1. ..S BWTCBE(21)=$P($G(^BWCBE(+$P(BWTP2,U,32),0)),U,2)
  1. ..S X=$P(BWTP2,U,33)
  1. ..S XX=X
  1. ..S YY=22
  1. ..D F1:BWTCBE(21)<3
  1. ..F K=52:1:66 S BWTCBE(K)=""
  1. ..S BWTQUIT=""
  1. .I J=21 S BWTCBE(57)=1,BWTCBE(58)=$E(X,1,20),BWTCBE(59)=$E(X,21,40) Q
  1. .I J=22 S BWTCBE(63)=X,BWTCBE(64)="" Q
  1. .I J=23,BWTCBE(63)=1 S XX=X,YY=64 D F1 Q
  1. .I J=24 S BWTCBE(65)=X Q
  1. .I J=25 S XX=X,YY=66 D F1 Q
  1. .I J=26,X S BWTCBE(53)=X Q
  1. .I J=27,X S BWTCBE(54)=X Q
  1. .I J=28,X S BWTCBE(55)=X Q
  1. .I J=29,X S BWTCBE(56)=X Q
  1. .I J=30 S BWTCBE(60)=X S:X>2 BWTCBE(65)="" Q
  1. .I J=31 S BWTCBE(62)=X Q
  1. .I J=32 D Q
  1. ..S BWTCBE(21)=$P($G(^BWCBE(+X,0)),U,2)
  1. .I J=33,X,BWTCBE(21)<3 S XX=X,YY=22 D F1 Q
  1. .I J=34 S BWTCBE(52)=X Q
  1. .I J=35 S BWTCBE(20)=X
  1. I $P(BWTP2,U,32)>2 S BWTCBE(22)=""
  1. K BWTQUIT
  1. Q
  1. F1 ; EP
  1. Q:'$G(XX)!'$G(YY)
  1. Q:XX'?7N
  1. S:XX<2950101 XX=2950101
  1. S BWTCBE(YY)=$E(XX,4,7)_($E(XX,1,3)+1700)
  1. Q
  1. DXWU ;DIAGNOSTIC WORKUP PLANNED
  1. S BWTCBE(36)=1
  1. F X=52:1:57,63 S:$G(BWTCBE(X))="" BWTCBE(X)=2
  1. Q
  1. USED ;EP;ENTRY EVALUATED AND SHOULD NOT BE USED AGAIN
  1. S ^TMP("BWTPCD",$J,BWTPCDDA)=""
  1. Q
  1. MCARE ;EP;EVALUATE MEDICARE ELIGIBILITY; PATCH 8
  1. Q:BWDT<3000401!'$D(^AUPNMCR("B",BWDFN))
  1. K BWQUIT
  1. N D,X,Y,Z
  1. S X=0
  1. F S X=$O(^AUPNMCR(BWDFN,11,X)) Q:'X!$D(BWQUIT) D
  1. .S Y=$G(^AUPNMCR(BWDFN,11,X,0)),D=$P(Y,U,2)
  1. .I $P(Y,U,3)="B",BWDT>+Y,BWDT<Y!'Y S BWQUIT="" Q
  1. Q
  1. Q:"^1665^1860^1861^"'[(U_DUZ(2)_U)
  1. I '$E(BWCDC(BWIEN),149,156) S BWTCBE(38)="" Q
  1. I DUZ(2)=1665,$P(BW0,U,3)<2990401 S BWTCBE(38)=1 Q
  1. I DUZ(2)=1860!(DUZ(2)=1861),$P(BW0,U,3)<2991001 S BWTCBE(38)=1 Q
  1. N AGE,BW
  1. S BW=$E(BWCDC(BWIEN),146,147)
  1. I $E(BW,2)'?1N S BWTCBE(38)="" Q
  1. S BW=$S($E(BW)'?1N:$E(BW,2),1:BW)
  1. I BW>8 D Q
  1. .I BW<12 S BWTCBE(38)=""
  1. .E S BWTCBE(38)=2
  1. S AGE=$P($G(^DPT(+$P(BW0,U,2),0)),U,3)
  1. S AGE=$E(DT,1,3)-$E(AGE,1,3)
  1. I AGE<50!(AGE>65) S AGE=$R(100)
  1. E S AGE=1
  1. I AGE<26 S BWTCBE(38)=1
  1. E S BWTCBE(38)=2
  1. Q
  1. RACE(DATE) ;EP;FIND RACE FOR SELECTED SITES AFTER SELECTED DATES
  1. ;IHS/CIM/THL PATCH 8
  1. K BWQUIT
  1. Q:$G(DATE)=""
  1. Q:DUZ(2)'=1665
  1. Q:$E(DATE,5,8)<1999
  1. Q:$E(DATE,1,2)<10
  1. ; Default to American Indian or Alaskan Native
  1. S ZZ="" ;$$RACE^BWMDE2
  1. Q:ZZ=4
  1. S BWQUIT=""
  1. Q
  1. FILE ;FILE NEW EXPORT RECORD
  1. K BWQUIT
  1. D RACE(BWTCBE(37)):DUZ(2)=1665
  1. I $D(BWQUIT) K BWQUIT Q ;IHS/CIM/THL PATCH 8
  1. S BWDT=$P(BW0,U,12)
  1. D MCARE
  1. I $D(BWQUIT) K BWQUIT Q ;IHS/CIM/THL PATCH 8
  1. D ^BWUTL5,PCDVARS^BWUTL3(BWIEN,0,1)
  1. I '$D(NEW) I BWTCBE(21)>2 S BWTCBE(22)="",BWTCBE(23)=3 ;IHS/CMI/THL PATCH 8
  1. I '$D(NEW) I BWTCBE(21)<3,'$G(BWTCBE(22)) I BWTCBE(37) S BWTCBE(22)=BWTCBE(37),BWTCBE(23)=1 ;IHS/CMI/THL PATCH 8
  1. S BWMAM=1
  1. S BWPAP=0
  1. S $E(BWCDC(BWIEN),1)=$$STSCR^BWMDE2
  1. S $E(BWCDC(BWIEN),3)=$$CNTYSCR^BWMDE2
  1. S $E(BWCDC(BWIEN),6)=$E($P($G(^AUTTLOC(DUZ(2),0)),U,13),1,15)
  1. S $E(BWCDC(BWIEN),21)=$J($P(BW0,U,10),5)
  1. S:BWPAP $E(BWCDC(BWIEN),26)=$J($P(BW0,U,10),5)
  1. S:BWMAM $E(BWCDC(BWIEN),31)=$J($P(BW0,U,10),5)
  1. S $E(BWCDC(BWIEN),40)=$$PATID^BWMDE2
  1. S $E(BWCDC(BWIEN),55)=$$RECID^BWMDE2
  1. S $E(BWCDC(BWIEN),61)=2
  1. S $E(BWCDC(BWIEN),62)=$$CNTYRES^BWMDE2
  1. S $E(BWCDC(BWIEN),65)=$$STRES^BWMDE2
  1. S $E(BWCDC(BWIEN),67)=$$ZIP^BWMDE2
  1. S $E(BWCDC(BWIEN),72)=$$DOB^BWMDE2
  1. S $E(BWCDC(BWIEN),80)="" ;$$RACE^BWMDE2
  1. S $E(BWCDC(BWIEN),81)=2
  1. S $E(BWCDC(BWIEN),88)=$G(BWTCBE(20))
  1. S $E(BWCDC(BWIEN),89)=$G(BWTCBE(21))
  1. S $E(BWCDC(BWIEN),90)=$G(BWTCBE(22))
  1. I $G(BWTCBE(21)),BWTCBE(21)<3 S BWTCBE("CBE PAID")=1
  1. I $G(BWTCBE(21)),BWTCBE(21)>2 S BWTCBE("CBE PAID")=""
  1. S $E(BWCDC(BWIEN),98)=$G(BWTCBE("CBE PAID"))
  1. S $E(BWCDC(BWIEN),99)=3
  1. S $E(BWCDC(BWIEN),107)=" 9"
  1. S $E(BWCDC(BWIEN),129)=2
  1. S $E(BWCDC(BWIEN),139)=$G(BWTCBE(32))
  1. S $E(BWCDC(BWIEN),140)=$G(BWTCBE(33))
  1. S $E(BWCDC(BWIEN),146)=$S($L($G(BWTCBE(35)))=1:"0",1:"")_$G(BWTCBE(35))
  1. S $E(BWCDC(BWIEN),148)=$G(BWTCBE(36))
  1. S $E(BWCDC(BWIEN),149)=$G(BWTCBE(37))
  1. I BWTCBE(35)<9 S BWTCBE(38)=1 ;IHS/CMI/THL PATCH 8
  1. E I BWTCBE(35)<12 S BWTCBE(38)=""
  1. E S BWTCBE(38)=2
  1. D PAID
  1. S $E(BWCDC(BWIEN),157)=$S($G(BWTCBE(38)):BWTCBE(38),$E(BWCDC(BWIEN),149,156):1,1:"")
  1. I BWTCBE(38)'=1 S ^TMP("BWTEST",$J,BWTPCDDA)=BWTCBE(38)
  1. S $E(BWCDC(BWIEN),158)=41
  1. I $E(BWCDC(BWIEN),148)=1 D
  1. .S $E(BWCDC(BWIEN),243)=$G(BWTCBE(52))
  1. .S $E(BWCDC(BWIEN),244)=$G(BWTCBE(53))
  1. .S $E(BWCDC(BWIEN),245)=$G(BWTCBE(54))
  1. .S $E(BWCDC(BWIEN),246)=$G(BWTCBE(55))
  1. .S $E(BWCDC(BWIEN),247)=$G(BWTCBE(56))
  1. .S $E(BWCDC(BWIEN),248)=$S($G(BWTCBE(57)):BWTCBE(57),BWTCBE(36)=1:2,1:"")
  1. .S BWTCBE(58)=$TR($G(BWTCBE(58)),",",";")
  1. .S $E(BWCDC(BWIEN),249)=$G(BWTCBE(58))
  1. .S BWTCBE(59)=$TR($G(BWTCBE(59)),",",";")
  1. .S $E(BWCDC(BWIEN),269)=$G(BWTCBE(59))
  1. .S X=$E(BWCDC(BWIEN),243,248)
  1. .F J=1:1:6 I $E(X,J)=1 S $E(BWCDC(BWIEN),288)=1 Q
  1. .I X=222222 S $E(BWCDC(BWIEN),288)=2
  1. .S $E(BWCDC(BWIEN),289)=$G(BWTCBE(60))
  1. .S $E(BWCDC(BWIEN),290)=$G(BWTCBE(61))
  1. .S $E(BWCDC(BWIEN),291)=$G(BWTCBE(62))
  1. .I $G(BWTCBE(63)) S $E(BWCDC(BWIEN),292)=$G(BWTCBE(63))
  1. .E I X=222222 S $E(BWCDC(BWIEN),292)=2
  1. .S $E(BWCDC(BWIEN),293)=$G(BWTCBE(64))
  1. .S $E(BWCDC(BWIEN),301)=$G(BWTCBE(65))
  1. .S $E(BWCDC(BWIEN),302)=$G(BWTCBE(66))
  1. S $E(BWCDC(BWIEN),310)=$$EOR^BWMDE21
  1. S ^BWTMP($J,BWDFN,BWIEN)=BWCDC(BWIEN)
  1. ;S ^TMP("BWEXPORT",$J,BWDFN,BWIEN)=BWCDC(BWIEN)
  1. I '$D(BWSILENT) U IO(0) W "."
  1. K BWCDC(BWIEN),BWTCBE
  1. Q
  1. SETUP ;EP;
  1. S BWTCBE(20)=2
  1. S BWTCBE(21)=1
  1. S BWTCBE(23)=3
  1. S BWTCBE(27)=" 9"
  1. S BWTCBE(29)=2
  1. S BWTCBE(32)=2
  1. S BWTCBE(35)="01"
  1. ;S BWTCBE(35)="1" ;IHS/CMI/THL PATCH 7
  1. S BWTCBE(36)=2
  1. Q
  1. ENDATE ;EP;CHECK ENROLLMENT DATE
  1. N BWTDAT,BWTDATX
  1. S X1=$P($G(^BWP(BWTPATDA,0)),U,21)
  1. S X2=$P($G(^BWPCD(+$G(BWTPCDDA),0)),U,12)
  1. Q:'X1!'X2!(X1-1<X2)
  1. D ^%DTC
  1. I X>59 S BWTQUIT="" D USED^BWMDET
  1. Q