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

APCLDM6.m

Go to the documentation of this file.
  1. APCLDM6 ; IHS/CMI/LAB - TOBACCO USE ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;
  1. ;cmi/anch/maw 9/10/2007 code set versioning in TOBACCO1
  1. ;
  1. TOBACCO ;EP
  1. K APCLTOB
  1. D TOBACCO3
  1. I $D(^TMP("APCL",$J,1)) D TOBCUML G X1
  1. D TOBACCO0
  1. I $D(^TMP("APCL",$J,1)) D TOBCUML G X1
  1. D TOBACCO1 ;check Problem file for tobacco use
  1. I $D(^TMP("APCL",$J,1)) D TOBCUML G X1
  1. D TOBACCO2 ;check POVs for tobacco use
  1. I $D(^TMP("APCL",$J,1)) D TOBCUML G X1
  1. S APCLTOB(44)="UNDOCUMENTED",^TMP("APCL",$J,1)="UNDOCUMENTED"
  1. D TOBCUML
  1. X1 S:APCLER ^TMP("APCL",$J,1)="*** SCRIPT ERROR IN TOBACCO^APCLDM1. CONTACT SITE MANAGER"
  1. Q
  1. TOBCUML ;
  1. I APCLCUML F APCLSUB=7,42,43,44 S APCLGOT1=$S('$D(APCLTOB(APCLSUB)):0,1:1) D CUML^APCLDM1
  1. K APCLTOB,APCLTOBN
  1. Q
  1. TOBACCO0 ;check for tobacco documented in health factors
  1. K APCL S APCLX=APCLPD_"^LAST HEALTH [DM AUDIT TOBACCO HLTH FACTORS" S APCLER=$$START1^APCLDF(APCLX,APCLY) G:APCLER X1 I $D(APCL(1)) D S APCLTOBN=$O(APCLTOB("")),^TMP("APCL",$J,1)=APCLTOB(APCLTOBN)
  1. . I $P(APCL(1),U,3)["NON" S APCLTOB(42)="NO, DOES NOT USE TOBACCO" Q
  1. . I $P(APCL(1),U,3)["PREVIOUS" S APCLTOB(43)="PAST USE OF TOBACCO" Q
  1. . S APCLTOB(7)="YES, USES TOBACCO"
  1. .Q
  1. Q
  1. TOBACCO3 ;lookup in health status
  1. S %=$O(^ATXAX("B","DM AUDIT TOBACCO HLTH FACTORS",0))
  1. Q:'%
  1. S (X,Y)=0 F S X=$O(^AUPNHF("AA",APCLPD,X)) Q:X'=+X!(Y) I $D(^ATXAX(%,21,"B",X)) S Y=X
  1. Q:'Y
  1. S Y=$P(^AUTTHF(Y,0),U)
  1. S ^TMP("APCL",$J,1)=Y
  1. I Y["NON" S APCLTOB(42)="NO, DOES NOT USE TOBACCO" Q
  1. I Y["PREVIOUS" S APCLTOB(43)="PAST USE OF TOBACCO" Q
  1. S APCLTOB(7)="YES, USES TOBACCO"
  1. Q
  1. TOBACCO1 ;check problem file for tobacco use
  1. K APCL S APCLX=APCLPD_"^PROBLEMS [DM AUDIT PROBLEM SMOKING DXS" S APCLER=$$START1^APCLDF(APCLX,APCLY) G:APCLER X1 I $D(APCL(1)) D S APCLTOBN=$O(APCLTOB("")),^TMP("APCL",$J,1)=APCLTOB(APCLTOBN)
  1. . ;I $P(^ICD9($P(APCL(1),U,2),0),U,1)=305.13 S APCLTOB(43)="PAST USE OF TOBACCO"_" - "_$E($P(^AUTNPOV($P(^AUPNPROB(+$P(APCL(1),U,4),0),U,5),0),U),1,30) Q ;cmi/anch/maw 9/10/2007 orig line
  1. . I $P($$ICDDX^ICDCODE($P(APCL(1),U,2)),U,2)=305.13 S APCLTOB(43)="PAST USE OF TOBACCO"_" - "_$E($P(^AUTNPOV($P(^AUPNPROB(+$P(APCL(1),U,4),0),U,5),0),U),1,30) Q ;cmi/anch/maw 9/10/2007 csv
  1. . S APCLTOB(7)="YES, USES TOBACCO - "_$E($P(^AUTNPOV($P(^AUPNPROB(+$P(APCL(1),U,4),0),U,5),0),U),1,30)
  1. .Q
  1. Q
  1. TOBACCO2 ;check pov file for TOBACCO USE DOC
  1. K APCL S APCLX=APCLPD_"^LAST DX [DM AUDIT SMOKING RELATED DXS"_APCLDATE S APCLER=$$START1^APCLDF(APCLX,APCLY) G:APCLER X1 I $D(APCL(1)) D S APCLTOBN=$O(APCLTOB("")),^TMP("APCL",$J,1)=APCLTOB(APCLTOBN)
  1. . I $P(APCL(1),U,2)=305.13 S APCLTOB(43)="PAST USE OF TOBACCO"_" - "_$E($P(^AUTNPOV($P(^AUPNVPOV(+$P(APCL(1),U,4),0),U,4),0),U),1,30) Q
  1. . S APCLTOB(7)="YES, USES TOBACCO"_" - "_$E($P(^AUTNPOV($P(^AUPNVPOV(+$P(APCL(1),U,4),0),U,4),0),U),1,30)
  1. .Q
  1. Q
  1. ;
  1. RSTAT(R,S) ;EP - return # pts on register REG with status STAT
  1. I '$D(^ACM(41,"B",R)) Q ""
  1. I "AITUDN"'[S Q ""
  1. NEW %,C
  1. S (%,C)=0 F S %=$O(^ACM(41,"B",R,%)) Q:%'=+% I $P($G(^ACM(41,%,"DT")),U)=S S C=C+1
  1. Q C
  1. LASTHT(P,F) ;PEP - return last ht
  1. I 'P Q -1
  1. I '$D(^AUPNVSIT("AC",P)) Q -1
  1. NEW %,APCLARRY,H,E
  1. S %=P_"^LAST MEAS HT" NEW X S E=$$START1^APCLDF(%,"APCLARRY(") S H=$P($G(APCLARRY(1)),U,2)
  1. I H="" Q H
  1. S H=$J(H,2,0)
  1. Q $S(F="I":H,1:(H\12)_" "_(H#12))
  1. ;F="I" - in inches, F="E" - feet and inches 5 5
  1. LASTWT(P,F) ;PEP - return last wt
  1. I 'P Q ""
  1. NEW %,APCLARRY,E,W
  1. S %=P_"^LAST MEAS WT" NEW X S E=$$START1^APCLDF(%,"APCLARRY(") S W=$P($G(APCLARRY(1)),U,2)
  1. Q W
  1. BMI(P) ;PEP - return BMI with last weight,last height
  1. I 'P Q -1
  1. NEW %,W,H,B
  1. S %=""
  1. S W=$$LASTWT(P) I W="" Q %
  1. S H=$$LASTHT(P,"I") I H="" Q %
  1. ;S W=(W/5)*2.3,H=(H*2.5),H=(H*H)/10000,%=(W/H),%=$J(%,4,1)
  1. S W=W*.45359,H=(H*.0254),H=(H*H),%=(W/H),%=$J(%,4,1)
  1. Q %