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

APCHS1B.m

Go to the documentation of this file.
APCHS1B ; IHS/CMI/LAB - PART 1 OF APCHS -- SUMMARY PRODUCTION COMPONENTS ;
 ;;2.0;IHS PCC SUITE;**5,10,11**;MAY 14, 2009;Build 58
 ;
DEMOG ; ******************** DEMOGRAPHICS ********************
 ; <SETUP>
 S APCHSN=^DPT(APCHSPAT,0)
 S APCHSNAM=$P(APCHSN,U,1)
 S APCHSEX=$P(APCHSN,U,2),APCHSEX=$S(APCHSEX="M":"MALE",APCHSEX="F":"FEMALE",APCHSEX="U":"UNKNOWN",1:"<no sex>")
 S Y=$P(APCHSN,U,3)
 I 'Y S APCHSDOB="<NO DATE OF BIRTH>"
 E  X ^DD("DD") S APCHSDOB=Y
 S APCHSSN=$$SSN^APCHS1(APCHSPAT)  ;$P(APCHSN,U,9) S:APCHSSN]"" APCHSSN=$E(APCHSSN,1,3)_"-"_$E(APCHSSN,4,5)_"-"_$E(APCHSSN,6,9)
 S APCHSN=$G(^DPT(APCHSPAT,.24))
 S APCHSMNM=$P(APCHSN,U,3)
 S APCHSFNM=$P(APCHSN,U)
 S APCHSN=^AUPNPAT(APCHSPAT,0)
 S Y=$P(APCHSN,U,3)
 I 'Y S APCHSLUD=""
 E  X ^DD("DD") S APCHSLUD=Y
 S APCHSBT=$P(APCHSN,U,13) S:APCHSBT="" APCHSBT="no blood type"
 ;S APCHSPP=$P(APCHSN,U,14) S:APCHSPP="" APCHSPP="<none identified>" I +APCHSPP S APCHSPP=$P(^DIC(6,+APCHSPP,0),U,1) I +APCHSPP S APCHSPP=$P(^DIC(16,+APCHSPP,0),U,1) ;*** file 200 conversion ***
 S APCHSPP=$P(APCHSN,U,14)
 S:APCHSPP=-1 APCHSPP=""  ;IHS/ANMC/LJF 8/5/99 prevent UNDEF
 S:APCHSPP="" APCHSPP="<none identified>"
 I +APCHSPP,$P(^DD(9000001,.14,0),U,2)[200 S APCHSPP=$P(^VA(200,APCHSPP,0),U) ;*** file 200 conversion ***
 I +APCHSPP S APCHSPP=$P(^DIC(6,+APCHSPP,0),U,1) I +APCHSPP S APCHSPP=$P(^DIC(16,+APCHSPP,0),U,1)
V ;
 S APCHSVST="" I $D(^DPT(APCHSPAT,"VET"))#2,$P(^("VET"),U)="Y" D VSTAT
 S APCHSN=$G(^AUPNPAT(APCHSPAT,11))
 S APCHSTR=$P(APCHSN,U,8)
 I 'APCHSTR S APCHSTR="<no tribe>"
 E  S APCHSTR=^AUTTTRI(APCHSTR,0) S APCHSTR=$P(APCHSTR,U,1)_$S($P(APCHSTR,U,4)="Y":" <old code>",1:"")
 S APCHSEL=$P(APCHSN,U,12)
 S X=$P(^DD(9000001,1112,0),U,3) F APCHSI=1:1 S APCHSP=$P(X,";",APCHSI) Q:APCHSP=""  I $P(APCHSP,":",1)=APCHSEL S APCHSEL=$P(APCHSP,":",2) Q
 S APCHSCMR=$P(APCHSN,U,18) S:APCHSCMR="" APCHSCMR="<NO COMMUNITY OF RESIDENCE>"
 S APCHSI=$O(^AUPNPAT(APCHSPAT,13,0)) S APCHSRE1=$S(APCHSI:^(APCHSI,0),1:"") S APCHSI=$O(^AUPNPAT(APCHSPAT,13,APCHSI)) S APCHSRE2=$S(APCHSI:^(APCHSI,0),1:"") S:$O(^AUPNPAT(APCHSPAT,13,APCHSI)) APCHSRE2=APCHSRE2_" [more]"
 S APCHSADR=""
 I $D(^DPT(APCHSPAT,.11)) S APCHSN=^(.11) F E=1:1:6 S APCHSP=$P(APCHSN,U,E) I APCHSP]"" S:E=5 APCHSP=$P(^DIC(5,APCHSP,0),U,2) S APCHSADR=APCHSADR_","_APCHSP
 S APCHSADR=$E(APCHSADR,2,255)
 S:APCHSADR]"" APCHSCMR=APCHSCMR_" ("_APCHSADR_")  "
 S APCHSN=$G(^DPT(APCHSPAT,.13))
 S APCHSHPH=$P(APCHSN,U,1),APCHSOPH=$P(APCHSN,U,2)
 I APCHSHPH="",APCHSOPH="" S APCHSHPH="<no phone numbers recorded>"
 S:+APCHSHPH APCHSHPH="(H) "_APCHSHPH
 S:APCHSOPH]"" APCHSOPH="(W) "_APCHSOPH S:APCHSHPH]"" APCHSOPH=" "_APCHSOPH
 G DEMDSP
VSTAT S APCHSVST="VETERAN"
 I $D(^DPT(APCHSPAT,.3))#2,$P(^(.3),U)="Y" S APCHSVST="SERVICE-CONNECTED "_APCHSVST
 S APCHSN=$G(^DPT(APCHSPAT,.32))
 I $P(APCHSN,U,5) S APCHSVST=APCHSVST_"  "_$P(^DIC(23,$P(APCHSN,U,5),0),U,2)
 S Y=$P(APCHSN,U,6) I Y D VSDT S APCHSVST=APCHSVST_" ("_Y_"-" S Y=$P(APCHSN,U,7) S:'Y APCHSVST=APCHSVST_"?)" I Y D VSDT S APCHSVST=APCHSVST_Y_")"
 I $D(^DPT(APCHSPAT,.31))#2 S APCHSN=^(.31) S Y=$P(APCHSN,U,3) I Y S APCHSVST=APCHSVST_"  CLAIM# "_Y
 Q
VSDT S Y=$E(Y,4,5)_"/"_$E(Y,6,7)_"/"_(1700+$E(Y,1,3))
 Q
DEMDSP ; <DISPLAY>
 X APCHSBRK
 I $$DOD^AUPNPAT(APCHSPAT)]""!($$VAL^XBDIQ1(9000001,APCHSPAT,1114)]"") D
 .W "*** DOD: ",$$VAL^XBDIQ1(2,APCHSPAT,.351),!
 .W "*** CAUSE OF DEATH: " I $$VAL^XBDIQ1(9000001,APCHSPAT,1114)]"" D  I 1
 ..W $$VAL^XBDIQ1(9000001,APCHSPAT,1114)
 ..K APCHSDSC
 ..S APCHSDSC=$$ICDD^AUPNVUTL($$VAL^XBDIQ1(9000001,APCHSPAT,1114),"APCHSDSC",$$DOD^AUPNPAT(APCHSPAT)) I $P(APCHSDSC,U)=-1 S APCHSDSC(1)=$P($$ICDDX^ICDEX($P(^AUPNPAT(APCHSPAT,11),U,14),$$DOD^AUPNPAT(APCHSPAT)),U,4)
 ..K ^UTILITY($J,"W")
 ..S APCHSX=0
 ..S DIWL=0,DIWR=45 F  S APCHSX=$O(APCHSDSC(APCHSX)) Q:APCHSX'=+APCHSX!($D(APCHSQIT))  D
 ...S X=APCHSDSC(APCHSX)
 ...Q:X="CODE TEXT MAY BE INACCURATE"
 ...Q:X=" "
 ...D ^DIWP
 ..S APCHSZ=0 F  S APCHSZ=$O(^UTILITY($J,"W",DIWL,APCHSZ)) Q:APCHSZ'=+APCHSZ  D
 ...X APCHSCKP Q:$D(APCHSQIT)
 ...W ?28,^UTILITY($J,"W",DIWL,APCHSZ,0),!
 .E  W !!
 .;W !
 K ^UTILITY($J,"W"),APCHSDSC,DIWL,APCHSX,APCHSZ,DIWL,DIWR
 Q:$D(APCHSQIT)
 W APCHSNAM
 W:APCHSDOB]"" ?34,"DOB: ",APCHSDOB,?51,$$AGE(APCHSPAT,DT,"R")
 W:APCHSEX]"" ?59,APCHSEX
 W:APCHSBT]"" ?67,APCHSBT
 W !
 I APCHSTR]""!(APCHSMNM]"") W:APCHSTR]"" $E(APCHSTR,1,33) W:APCHSSN]"" ?34,"SSN: ",APCHSSN W !
 W:APCHSMNM]"" ?34,"MOTHER'S MAIDEN NAME: ",APCHSMNM W !
 W APCHSHPH,APCHSOPH W:APCHSFNM]"" ?34,"FATHER'S NAME: ",APCHSFNM W !
 S APCHPLNG=$$PREFLANG^APCLAPI7(APCHSPAT,DT,"E")
 I APCHPLNG]"" W ?34,"PREFERRED LANGUAGE: ",APCHPLNG,!
 I APCHSCMR]"" W APCHSCMR,!!
 I APCHSLUD]""!(APCHSEL]"") W:APCHSLUD]"" "LAST UPDATED: ",APCHSLUD,"   " W:APCHSEL]"" ?34,"ELIGIBILITY: ",APCHSEL W !
 W:APCHSVST]"" APCHSVST,!
 I $P($G(^AUPNPAT(APCHSPAT,40)),U,2)]"" W !,"Preferred Method of Receiving Reminders: ",$$VAL^XBDIQ1(9000001,APCHSPAT,4002),!
 W !
 ;I $D(^AUPNPAT(APCHSPAT,41)) W "HEALTH RECORD NUMBERS:" F APCHSFP=0:0 S APCHSFP=$O(^AUPNPAT(APCHSPAT,41,APCHSFP)) Q:'APCHSFP  S APCHSHRN=$P(^(APCHSFP,0),U,2),APCHSFAC=$P(^DIC(4,APCHSFP,0),U,1) W ?24,$E(1000000+APCHSHRN,2,7),"  ",APCHSFAC,!
 ;W "DESIGNATED PROVIDER: ",APCHSPP,!
 ;I APCHSRE1]"" W "REMARKS:",?9,APCHSRE1,! W:APCHSRE2]"" ?9,APCHSRE2,!
 ;D DSPCMSRG
 ; <CLEANUP>
DEMOGX K APCHSNAM,APCHSTR,APCHSEX,APCHSDOB,APCHSSN,APCHSMNM,APCHSCMR,APCHSEL,APCHSFP,APCHSFAC,APCHSHRN,APCHSBT,APCHSPP,APCHSADR,APCHSN,APCHSP,APCHSI,APCHSJ,APCHSHPH,APCHSOPH,APCHSVST,APCHSLUD,APCHSRE1,APCHSRE2,E,X,Y
 Q
DSPCMSRG ; DISPLAY MEMBERSHIP IN CMS REGISTER
 D DSPCMSRG^APCHS
 Q
AGE(DFN,D,F) ;EP - Given DFN, return Age.
 I '$G(DFN) Q -1
 I '$D(^DPT(DFN,0)) Q -1
 I $$DOB^AUPNPAT(DFN,"")<0 Q -1
 S:$G(D)="" D=DT
 S:$G(F)="" F="Y"
 NEW %
 S %=$$FMDIFF^XLFDT(D,$$DOB^AUPNPAT(DFN,""))
 S %1=%\365.25
 I F="Y" Q %1
 ;beginning Y2K fix
 ;Q $S(%1>2:%1_" YRS",%<31:%1_" DYS",1:%\30_" MOS") ;Y2000
 Q $S(%1>2:%1_" YRS",%<31:%_" DYS",1:%\30_" MOS") ;Y2000
 ;end Y2K
 ;