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

BHSDEN1.m

Go to the documentation of this file.
  1. BHSDEN1 ;IHS/CIA/MGH - Health Summary for Dental ;17-Mar-2006 10:36;MGH
  1. ;;1.0;HEALTH SUMMARY COMPONENTS;;March 17, 2006
  1. ;===================================================================
  1. ;Taken from ADERVW1
  1. ; IHS/HQT/MJL - DENTAL CHART REVIEW PT 3 ; [ 03/24/1999 9:04 AM ]
  1. ;;6.0;ADE;;APRIL 1999
  1. ;Dental health summary; list procedures - continuation of BHSDEN
  1. ;
  1. DO ; EP
  1. I '$D(^ADEPCD("DATE",ADEPAT)) S ADETXT="<No Services on Record>",ADENRQ="",ADEICL=0 X ADEPRT Q
  1. S ADETXT="SERVICES PROVIDED: ",ADENRQ="",ADEICL=20 X ADEPRT
  1. K ^ADEUTL("DENTAA",$J)
  1. S ADEDAT=(9999999-GMTSDLM)-1
  1. F ADEQ=0:0 S ADEDAT=$O(^ADEPCD("DATE",ADEPAT,ADEDAT)) Q:'ADEDAT S ADEDFN="" F ADEQ=0:0 S ADEDFN=$O(^ADEPCD("DATE",ADEPAT,ADEDAT,ADEDFN)) Q:'ADEDFN S ^ADEUTL("DENTAA",$J,ADEPAT,9999999-(ADEDAT\1),ADEDFN)=""
  1. S ADENDMS=ADENDM
  1. S ADEDAT="" F ADEQ=0:0 S ADEDAT=$O(^ADEUTL("DENTAA",$J,ADEPAT,ADEDAT)) Q:ADEDAT=""!(ADEDAT>GMTSDLM)!(ADENDMS<1) S X=-ADEDAT+9999999 D REGDT4^GMTSU S ADEDTD=X S ADEDTU=0 D ONEDATE Q:$D(GMTSQIT) S ADENDMS=ADENDMS-1
  1. DENTALX K ADEDAT,ADEDAT,ADEDTU,ADEDTD,ADEDFN,ADEY,ADEX,ADEDFN,ADESVD,ADEFO,ADESFN,ADEADA,ADEOP,ADENDN
  1. K ADENSH,ADESITE
  1. K ADETXT,ADENRQ,ADEICL
  1. Q
  1. ONEDATE S ADEDFN="" F ADEQ=0:0 S ADEDFN=$O(^ADEUTL("DENTAA",$J,ADEPAT,ADEDAT,ADEDFN)) Q:ADEDFN="" D DNTCHK Q:$D(GMTSQIT) D NARR Q:$D(GMTSQIT)
  1. Q
  1. DNTCHK ;
  1. S ADESITE="" S ADESITE=$P(^ADEPCD(ADEDFN,0),U,3),ADEREP=$P(^(0),U,4),ADEPRV=$P(^(0),U,5),ADENOT=$P(^(0),U,7) X ADESITX
  1. D CKP^GMTSUP Q:$D(GMTSQIT) S:GMTSNPG ADEDTU=0
  1. I 'ADEDTU W ADEDTD S ADEFO=""
  1. I ADENSH=ADEFO S ADESFN=""
  1. E S (ADESFN,ADEFO)=ADENSH W ?10,ADESFN
  1. I ADEREP]"",$D(^DIC(16,ADEREP,0)) W " --",$P(^DIC(16,ADEREP,0),U),"--"
  1. I ADEPRV]"",ADEPRV'=ADEREP,$D(^DIC(16,ADEPRV,0)) W " (Provider: ",$P(^DIC(16,ADEPRV,0),U),")"
  1. W !
  1. S ADEDTU=1
  1. D DSVC
  1. I $D(ADENFLG) S ADETXT="*=Not reportable",ADEICL=4,ADENRQ="" X ADEPRT K ADENFLG
  1. D NOTE
  1. Q
  1. ;
  1. NOTE ;DENTAL NOTE
  1. Q:ADENOT=""
  1. D CKP^GMTSUP Q:$D(GMTSQIT) W:GMTSNPG !,ADEDTD,?10,ADESFN," (Cont'd)",!
  1. S ADENOT="NOTE: "_ADENOT
  1. I $L(ADENOT)>70 S ADETXT=$E(ADENOT,1,70),ADEICL=4,ADENRQ="" X ADEPRT S ADETXT=$E(ADENOT,71,99),ADEICL=10,ADENRQ="" X ADEPRT Q
  1. S ADETXT=ADENOT,ADEICL=4,ADENRQ="" X ADEPRT
  1. Q
  1. NARR ;DENTAL NARRATIVE
  1. Q:'$D(^ADEPCD(ADEDFN,"NAR",0))
  1. S ADETXT="",ADEX=0 F ADEQ=0:0 S ADEX=$O(^ADEPCD(ADEDFN,"NAR",ADEX)) Q:'ADEX S ADEY=^(ADEX,0) D NARR1
  1. I ADETXT'="" S ADENRQ="",ADEICL=25 X ADEPRT
  1. W !
  1. Q
  1. NARR1 ;CHECK TEXT LENGTH, IF > 241, PRINT TEXT
  1. I $L(ADETXT_ADEY)<241 S ADETXT=ADETXT_" "_ADEY
  1. E S ADENRQ="",ADEICL=25 X ADEPRT S ADETXT=ADEY
  1. Q
  1. DSVC D CKP^GMTSUP Q:$D(GMTSQIT) W:GMTSNPG !,ADEDTD,?10,ADESFN," (Cont'd)",!
  1. D MOD0
  1. D LINE
  1. Q
  1. MOD0 N ADENONR,ADEZ,ADEJ
  1. S ADEJ=0,ADEOP="" K ADEV,ADEDES
  1. MOD1 S ADEJ=$O(^ADEPCD(ADEDFN,"ADA","B",ADEJ)) I ADEJ="" K ADECNT,ADEK,ADEOP Q
  1. G:'$D(^AUTTADA(ADEJ)) MOD1
  1. S (ADECNT,ADEK)=0,ADEOP="",ADESFC="",ADENONR=""
  1. MOD2 S ADEK=$O(^ADEPCD(ADEDFN,"ADA","B",ADEJ,ADEK))
  1. I ADEK="" S ADEK=$P(^AUTTADA(ADEJ,0),U),ADEV(ADEK)=ADECNT_U_ADEOP_U_U_ADESFC_U_ADENONR,ADEDES(ADEK)=$P(^AUTTADA(ADEJ,0),U,6) G MOD1
  1. S ADECNT=ADECNT+1
  1. S X=$P(^ADEPCD(ADEDFN,"ADA",ADEK,0),U,2),ADEY=$P(^(0),U,4),ADEZ=$P(^(0),U,5) S:ADEZ["y" ADENFLG=1 I X="" S ADENONR=ADEZ G MOD2
  1. G:'$D(^ADEOPS(X,88)) MOD2 S ADEPC=^ADEOPS(X,88),$P(ADEOP,",",ADECNT)=ADEPC,$P(ADESFC,",",ADECNT)=ADEY,$P(ADENONR,",",ADECNT)=ADEZ G MOD2
  1. ;
  1. LINE N ADEJ,ADEFLG,ADEK,ADEPC,ADECNT
  1. S ADEJ=0,ADEFLG=0
  1. L1 S ADEJ=$O(ADEV(ADEJ)),ADEFLG=0 G:ADEJ="" L2
  1. D CKP^GMTSUP Q:$D(GMTSQIT) W:GMTSNPG !,ADEDTD,?10,ADESFN," (Cont'd)",!
  1. S ADETXT=ADEJ
  1. I $P(ADEV(ADEJ),U,5)="y",$P(ADEV(ADEJ),U,2)="" S ADETXT=ADETXT_"* "
  1. E S ADETXT=ADETXT_" "
  1. S ADETXT=ADETXT_"("_$J($P(ADEV(ADEJ),U),2)_")"_" "_$E(ADEDES(ADEJ)_" ",1,20)
  1. S ADECNT=0 F ADEK=1:1:$L($P(ADEV(ADEJ),U,2),",") D
  1. . S ADEPC=$P($P(ADEV(ADEJ),U,2),",",ADEK)
  1. . S ADEPC=ADEPC_$S($P($P(ADEV(ADEJ),U,4),",",ADEK)]"":"["_$P($P(ADEV(ADEJ),U,4),",",ADEK)_"]",1:"")
  1. . S ADEPC=ADEPC_$S(($P($P(ADEV(ADEJ),U,5),",",ADEK)]"")&($P(ADEV(ADEJ),U,2)'=""):"*",1:"")
  1. . S ADECNT=$L(ADEPC)+ADECNT+1
  1. . D L3
  1. S ADEICL=$S(ADEFLG:35,1:4),ADENRQ="" X ADEPRT
  1. G L1
  1. L2 K ADEJ Q
  1. L3 I ADECNT>30 S ADECNT=0,ADETXT=ADETXT_" "_ADEPC,ADEICL=$S(ADEFLG:35,1:4),ADENRQ="" X ADEPRT S ADETXT="",ADEFLG=1 Q
  1. S ADETXT=ADETXT_" "_ADEPC Q