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

BHSFH.m

Go to the documentation of this file.
  1. BHSFH ; IHS/MSC/MGH - Health summary for family history ;17-Jul-2014 14:19;DU
  1. ;;1.0;HEALTH SUMMARY COMONENTS;**3,8,9**;March 17, 2006;Build 16
  1. ;
  1. ;
  1. FMH ;EP - ******* FAMILY HISTORY * 9000014 *******
  1. ; <SETUP>
  1. N BHSPAT,BHSQ
  1. S BHSPAT=DFN
  1. I '$D(^AUPNFH("AC",BHSPAT)),'$D(^AUPNFHR("AA",BHSPAT)) Q ;no family history to display
  1. D CKP^GMTSUP Q:$D(GMTSQIT)
  1. ; <DISPLAY>
  1. K APCHTFH
  1. S BHSDFN=0 F S BHSDFN=$O(^AUPNFH("AC",BHSPAT,BHSDFN)) Q:'BHSDFN D
  1. .Q:'$D(^AUPNFH(BHSDFN,0)) ;bad xref
  1. .S R=$P(^AUPNFH(BHSDFN,0),U,9)
  1. .I R="" S R="Z",S=$$VAL^XBDIQ1(9000014,BHSDFN,.07),Z=S_" ",O=8 D G FMH1
  1. ..I S="" S S="UNKNOWN",Z="UNKNOWN "
  1. .S S=$$VAL^XBDIQ1(9000014.1,R,.01),Z=S_" "_$P(^AUPNFHR(R,0),U,3)
  1. .S O=$P(^AUPNFHR(R,0),U) I O S O=$P($G(^AUTTRLSH(O,21)),U,3)
  1. .I 'O S O=8
  1. FMH1 .S APCHTFH(O,S,Z,R,(9999999-$$LDM(BHSDFN)),BHSDFN)=""
  1. ;get relations with no conditions
  1. S X=0 F S X=$O(^AUPNFHR("AA",BHSPAT,X)) Q:X'=+X S Y=0 F S Y=$O(^AUPNFHR("AA",BHSPAT,X,Y)) Q:Y'=+Y D
  1. .I '$D(^AUPNFH("AE",Y)) D
  1. ..S R=Y
  1. ..S S=$$VAL^XBDIQ1(9000014.1,R,.01),Z=S_" "_$P(^AUPNFHR(R,0),U,3)
  1. ..S O=$P(^AUPNFHR(R,0),U) I O S O=$P($G(^AUTTRLSH(O,21)),U,3)
  1. ..I 'O S O=8
  1. ..S APCHTFH(O,S,Z,R,(9999999-$P(^AUPNFHR(R,0),U,9)),0)=""
  1. W "Date Last Mod",?14,"Relation/Status/Diagnosis"
  1. S BHO=0 F S BHO=$O(APCHTFH(BHO)) Q:BHO'=+BHO D FMH2
  1. FMHX K BHSDFN,BHSN,BHSICD,BHSDAT,BHSNRQ,BHSICL,BHSDFN,APCHTFH,BHS,BHZ,BHR,BHD,BHO
  1. K BHC,BHIEN,BHSIVD,BHSTAT,BHTD,BHTDAT,A,T,N,O,P,R,S,X,Y,Z
  1. Q
  1. LDM(I) ;get last date modified of Family History or relation
  1. I $G(I)="" Q ""
  1. I '$D(^AUPNFH(I,0)) Q ""
  1. NEW J,D,E
  1. S D=""
  1. S J=$P(^AUPNFH(I,0),U,9) I J S D=$P($G(^AUPNFHR(J,0)),U,9) I D="" S D=$P($G(^AUPNFHR(J,0)),U,9)
  1. S E=$P(^AUPNFH(I,0),U,12) I E>D S D=E
  1. S E=$P(^AUPNFH(I,0),U,3) I E>D S D=E
  1. Q D
  1. FMH2 ;
  1. S BHS="",BHC=0 F S BHS=$O(APCHTFH(BHO,BHS)) Q:BHS=""!($D(GMTSQIT)) D
  1. .S BHZ="" F S BHZ=$O(APCHTFH(BHO,BHS,BHZ)) Q:BHZ=""!($D(GMTSQIT)) D
  1. ..S BHR="" F S BHR=$O(APCHTFH(BHO,BHS,BHZ,BHR)) Q:BHR=""!($D(GMTSQIT)) D
  1. ...S BHTD=$O(APCHTFH(BHO,BHS,BHZ,BHR,0)),BHTD=(9999999-BHTD) S X=BHTD D REGDT4^GMTSU S BHTDAT=X S:BHTDAT="/" BHTDAT=""
  1. ...S BHD="",BHC=0 F S BHD=$O(APCHTFH(BHO,BHS,BHZ,BHR,BHD)) Q:BHD=""!($D(GMTSQIT)) D
  1. ....S BHSDFN="" F S BHSDFN=$O(APCHTFH(BHO,BHS,BHZ,BHR,BHD,BHSDFN)) Q:BHSDFN=""!($D(GMTSQIT)) D FHDSP
  1. ;S APCHSDFN="" F APCHSQ=0:0 S APCHSDFN=$O(^AUPNFH("AC",APCHSPAT,APCHSDFN)) Q:APCHSDFN="" D FHDSP
  1. ; <CLEANUP>
  1. Q
  1. FHDSP S BHC=BHC+1
  1. I BHC=1 W !,BHTDAT,?14,BHZ," Status: "
  1. S BHSTAT=""
  1. I 'BHR,BHSDFN D
  1. .S BHSTAT=$S($P(^AUPNFH(BHSDFN,0),U,6)]"":$$VAL^XBDIQ1(9000014,BHSDFN,.06),1:"None")
  1. I BHR S BHSTAT=$S($P($G(^AUPNFHR(BHR,0)),U,4)]"":$$VAL^XBDIQ1(9000014.1,BHR,.04),1:"None")
  1. I BHC=1 W BHSTAT,!
  1. I BHR,$P(^AUPNFHR(BHR,0),U,5)]""!($P(^AUPNFHR(BHR,0),U,6)]"") D
  1. .I BHC=1 W ?14,"Age at Death: ",$$VAL^XBDIQ1(9000014.1,BHR,.05)," Cause of Death: ",$S($P(^AUPNFHR(BHR,0),U,6)]"":$P(^AUPNFHR(BHR,0),U,6),1:"Data Not Available"),!
  1. I BHR,$P(^AUPNFHR(BHR,0),U,7)]""!($P(^AUPNFHR(BHR,0),U,8)]"") D
  1. .I BHC=1 W ?14,"Multiple Birth: "_$$VAL^XBDIQ1(9000014.1,BHR,.07)_$S($P(^AUPNFHR(BHR,0),U,7)="Y":" Multiple Birth Type: "_$$VAL^XBDIQ1(9000014.1,BHR,.08),1:""),! ;_" Date Updated: "_$$VAL^XBDIQ1(9000014.1,R,.09)
  1. Q:'BHSDFN
  1. S BHSN=^AUPNFH(BHSDFN,0)
  1. S BHSICD=$P(BHSN,U,1) D GETICDDX^BHSUTL
  1. ;S Y=$P(APCHSN,U,3) X APCHSCVD S APCHSDAT=Y
  1. S BHSNRQ=$P(BHSN,U,4)
  1. D GETNARR^BHSUTL
  1. D CKP^GMTSUP Q:$D(GMTSQIT) ; W !,APCHSDAT
  1. S (X,R,S,N,A,P)=""
  1. ;S R=$$VAL^XBDIQ1(9000014,BHSDFN,.07)
  1. ;S BHSNRQ=BHSNRQ_" ("_$$VAL^XBDIQ1(9000014,BHSDFN,.01)_")"
  1. S BHSNRQ=BHSNRQ_" ("_$$VAL^XBDIQ1(9000014,BHSDFN,.14)_")"
  1. S A="" I BHSDFN S A=$$VAL^XBDIQ1(9000014,BHSDFN,.11) I A="" S A=$$VAL^XBDIQ1(9000014,BHSDFN,.05)
  1. ;S S=$$VAL^XBDIQ1(9000014,APCHSDFN,.06)
  1. ;S P=$$VAL^XBDIQ1(9000014,APCHSDFN,.08)
  1. ;S X=R
  1. ;I X]"" S X=X_"; "
  1. S X=BHSNRQ
  1. S X=X_$S(A]"":"; Age at Onset: "_A,1:"; Age at Onset: None")
  1. ;S X=X_$S(S]"":"; Status: "_S,1:"; Status: None")
  1. ;S X=X_$S(P]"":"; Documented By: "_P,1:"")
  1. S BHSICL=14,BHSNRQ=X
  1. D PRTICD^BHSUTL
  1. Q
  1. ;
  1. PWH ;EP - called from component Patient wellness Handout
  1. ; <SETUP>
  1. N BHSPAT
  1. S BHSPAT=DFN
  1. D CKP^GMTSUP Q:$D(GMTSQIT)
  1. ; <DISPLAY>
  1. K BHTFH
  1. S BHSIVD="" F S BHSIVD=$O(^APCHPWHL("AA",BHSPAT,BHSIVD)) Q:BHSIVD=""!(BHSIVD>GMTSDLM) D
  1. .S BHIEN=0 F S BHIEN=$O(^APCHPWHL("AA",BHSPAT,BHSIVD,BHIEN)) Q:BHIEN'=+BHIEN D
  1. ..S BHSN=$G(^APCHPWHL(BHIEN,0))
  1. ..I BHSN="" Q
  1. ..S N=$$VAL^XBDIQ1(9001027,BHIEN,.02)
  1. ..S $P(BHTFH(N),U)=$P($G(BHTFH(N)),U)+1
  1. ..S P=$P(BHTFH(N),U)+1
  1. ..S $P(BHTFH(N),U,P)=$$DATE^BHSMU($P(^APCHPWHL(BHIEN,0),U,4))
  1. ;now display
  1. I '$D(BHTFH) W "No Patient Wellness Handouts given to this patient.",! Q
  1. W ?2,"PATIENT WELLNESS HANDOUT TYPE",?34,"# given",?42,"Dates Last 4 Given to Patient",!
  1. W $$REPEAT^XLFSTR("-",79),!
  1. S BHSN="" F S BHSN=$O(BHTFH(BHSN)) Q:BHSN=""!($D(GMTSQIT)) D
  1. .W ?2,BHSN,?34,$P(BHTFH(BHSN),U) W ?42,$P(BHTFH(BHSN),U,2)," ",$P(BHTFH(BHSN),U,3)," ",$P(BHTFH(BHSN),U,4)," ",$P(BHTFH(BHSN),U,5),!
  1. .Q
  1. K BHTFH,BHSN
  1. Q