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

BHSCPT.m

Go to the documentation of this file.
  1. BHSCPT ;IHS/MSC/MGH - Health Summary for V MED file ;31-Dec-2015 13:12;DU
  1. ;;1.0;HEALTH SUMMARY COMPONENTS;**2,13**;March 17, 2006;Build 6
  1. ;===================================================================
  1. ; IHS/TUCSON/LAB - PART 6 OF APCHS -- SUMMARY PRODUCTION COMPONENTS ; [ 05/04/04 2:46 PM ]
  1. ;;2.0;IHS RPMS/PCC Health Summary;**11,14,16**;JUN 24, 1997
  1. ;Patch 2 added components for CPT codes
  1. CPTALL ;EP - display all cpt codes, date limits are applicable
  1. N BHSPAT,V,Y,BHSNAR
  1. S BHSPAT=DFN
  1. I '$D(^AUPNVCPT("AA",BHSPAT)),'$D(^AUPNVTC("AC",BHSPAT)) Q ;no cpt codes for this patient
  1. ; <DISPLAY>
  1. K BHCPTA
  1. S BHCPTI=0 F S BHCPTI=$O(^AUPNVCPT("AA",BHSPAT,BHCPTI)) Q:BHCPTI="" D
  1. .S BHSIVD="" F S BHSIVD=$O(^AUPNVCPT("AA",BHSPAT,BHCPTI,BHSIVD)) Q:BHSIVD=""!(BHSIVD>GMTSDLM) D
  1. ..S BHIEN=0 F S BHIEN=$O(^AUPNVCPT("AA",BHSPAT,BHCPTI,BHSIVD,BHIEN)) Q:BHIEN'=+BHIEN D
  1. ...S BHCPT=$$VAL^XBDIQ1(9000010.18,BHIEN,.01)
  1. ...;IHS/MSC/MGH Patch 13
  1. ...S BHSNAR=$$VAL^XBDIQ1(9000010.18,BHIEN,.04)
  1. ...I BHSNAR="" S BHCPTA(BHSIVD,BHCPT,BHIEN)=$P($$CPT^ICPTCOD(BHCPTI,(9999999-BHSIVD)),U,3)_U_$$VAL^XBDIQ1(9000010.18,BHIEN,.16)_U_$$VALI^XBDIQ1(9000010,$P(^AUPNVCPT(BHIEN,0),U,3),.06)
  1. ...E S BHCPTA(BHSIVD,BHCPT,BHIEN)=BHSNAR_U_$$VAL^XBDIQ1(9000010.18,BHIEN,.16)_U_$$VALI^XBDIQ1(9000010,$P(^AUPNVCPT(BHIEN,0),U,3),.06)
  1. ...S Y=$$VALI^XBDIQ1(9000010,$P(^AUPNVCPT(BHIEN,0),U,3),.08) S $P(BHCPTA(BHSIVD,BHCPT,BHIEN),U,4)=Y
  1. ;now get tran codes
  1. S BHIEN=0 F S BHIEN=$O(^AUPNVTC("AC",BHSPAT,BHIEN)) Q:BHIEN="" D
  1. .Q:'$D(^AUPNVTC(BHIEN))
  1. .S V=$P(^AUPNVTC(BHIEN,0),U,3)
  1. .Q:'V
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .S V=$P($P(^AUPNVSIT(V,0),U),".")
  1. .S BHSIVD=9999999-V
  1. .Q:BHSIVD>GMTSDLM
  1. .S BHCPT=$$VAL^XBDIQ1(9000010.33,BHIEN,.07)
  1. .Q:BHCPT=""
  1. .S BHCPTI=$P(^AUPNVTC(BHIEN,0),U,7)
  1. .Q:$D(BHCPTA(BHSIVD,BHCPT))
  1. .S BHCPTA(BHSIVD,BHCPT,BHIEN)=$P($$CPT^ICPTCOD(BHCPTI,(9999999-BHSIVD)),U,3)_U_1_U_$$VALI^XBDIQ1(9000010,$P(^AUPNVTC(BHIEN,0),U,3),.06)
  1. .S Y=$$VALI^XBDIQ1(9000010,$P(^AUPNVTC(BHIEN,0),U,3),.08) S $P(BHCPTA(BHSIVD,BHCPT,BHIEN),U,4)=Y
  1. G:'$D(BHCPTA) CPTALLX
  1. D CKP^GMTSUP Q:$D(GMTSQIT)
  1. W ?28,"CODE",?34,"CPT NARRATIVE",?72,"UNITS",!
  1. S BHSIVD=0 F S BHSIVD=$O(BHCPTA(BHSIVD)) Q:BHSIVD=""!($D(GMTSQIT)) D
  1. .D CKP^GMTSUP Q:$D(GMTSQIT) I GMTSNPG W ?28,"CODE",?34,"CPT NARRATIVE",?72,"UNITS",!
  1. .W $$DATE^BHSMU((9999999-BHSIVD))
  1. .S BHCPT="" F S BHCPT=$O(BHCPTA(BHSIVD,BHCPT)) Q:BHCPT=""!($D(GMTSQIT)) D
  1. ..S BHIEN=0 F S BHIEN=$O(BHCPTA(BHSIVD,BHCPT,BHIEN)) Q:BHIEN'=+BHIEN!($D(GMTSQIT)) D
  1. ...D CKP^GMTSUP Q:$D(GMTSQIT) I GMTSNPG W ?28,"CODE",?35,"CPT NARRATIVE",?72,"UNITS",!
  1. ...S %=$P(BHCPTA(BHSIVD,BHCPT,BHIEN),U,3)
  1. ...I % W ?9,$P($G(^AUTTLOC(%,0)),U,2)
  1. ...S %=$P(BHCPTA(BHSIVD,BHCPT,BHIEN),U,4)
  1. ...I % W ?22,$P($G(^DIC(40.7,%,9999999)),U)
  1. ...W ?28,BHCPT,?35,$E($P(BHCPTA(BHSIVD,BHCPT,BHIEN),U,1),1,36)
  1. ...W ?73,$P(BHCPTA(BHSIVD,BHCPT,BHIEN),U,2)
  1. ...W !
  1. ; <CLEANUP>
  1. ;now display CPT refusals
  1. S BHST="CPT",BHSFN=81 D DISPREF^BHSRAD
  1. K BHST,BHSFN
  1. CPTALLX K BHSIVD,BHSDAT,BHCPT,BHIEN,BHCPTA,BHCPTI,%
  1. Q
  1. CPTALLC ;EP - health summary component
  1. S BHMRO=0
  1. CPTALLC1 ;EP - display all cpt codes, date limits are applicable
  1. S BHSPAT=DFN
  1. I '$D(^AUPNVCPT("AA",BHSPAT)),'$D(^AUPNVTC("AC",BHSPAT)) Q ;no cpt codes for this patient
  1. ; <DISPLAY>
  1. K BHCPTA,BHSNAR
  1. S BHCPTI=0 F S BHCPTI=$O(^AUPNVCPT("AA",BHSPAT,BHCPTI)) Q:BHCPTI="" D
  1. .S BHSIVD="",BHSIVC=0 F S BHSIVD=$O(^AUPNVCPT("AA",BHSPAT,BHCPTI,BHSIVD)) Q:BHSIVD=""!(BHSIVD>GMTSDLM) D
  1. ..S BHIEN=0 F S BHIEN=$O(^AUPNVCPT("AA",BHSPAT,BHCPTI,BHSIVD,BHIEN)) Q:BHIEN'=+BHIEN D
  1. ...S BHCPT=$$VAL^XBDIQ1(9000010.18,BHIEN,.01)
  1. ...;IHS/MSC/MGH Patch 13
  1. ...S BHSNAR=$$VAL^XBDIQ1(9000010.18,BHIEN,.04)
  1. ...I BHSNAR="" S BHCPTA(BHCPT,BHSIVD,BHIEN)=$P($$CPT^ICPTCOD(BHCPTI,(9999999-BHSIVD)),U,3)_U_$$VAL^XBDIQ1(9000010.18,BHIEN,.16)_U_$$VALI^XBDIQ1(9000010,$P(^AUPNVCPT(BHIEN,0),U,3),.06)
  1. ...E S BHCPTA(BHCPT,BHSIVD,BHIEN)=BHSNAR_U_$$VAL^XBDIQ1(9000010.18,BHIEN,.16)_U_$$VALI^XBDIQ1(9000010,$P(^AUPNVCPT(BHIEN,0),U,3),.06)
  1. ...S Y=$$VALI^XBDIQ1(9000010,$P(^AUPNVCPT(BHIEN,0),U,3),.08) S $P(BHCPTA(BHCPT,BHSIVD,BHIEN),U,4)=Y
  1. ;now get tran codes
  1. S BHIEN=0 F S BHIEN=$O(^AUPNVTC("AC",BHSPAT,BHIEN)) Q:BHIEN="" D
  1. .Q:'$D(^AUPNVTC(BHIEN))
  1. .S V=$P(^AUPNVTC(BHIEN,0),U,3)
  1. .Q:'V
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .S V=$P($P(^AUPNVSIT(V,0),U),".")
  1. .S BHSIVD=9999999-V
  1. .Q:BHSIVD>GMTSDLM
  1. .S BHCPT=$$VAL^XBDIQ1(9000010.33,BHIEN,.07)
  1. .Q:BHCPT=""
  1. .S BHCPTI=$P(^AUPNVTC(BHIEN,0),U,7)
  1. .Q:$D(BHCPTA(BHCPT,BHSIVD))
  1. .S BHCPTA(BHCPT,BHSIVD,BHIEN)=$P($$CPT^ICPTCOD(BHCPTI,(9999999-BHSIVD)),U,3)_U_1_U_$$VALI^XBDIQ1(9000010,$P(^AUPNVTC(BHIEN,0),U,3),.06)
  1. .S Y=$$VALI^XBDIQ1(9000010,$P(^AUPNVTC(BHIEN,0),U,3),.08) S $P(BHCPTA(BHCPT,BHSIVD,BHIEN),U,4)=Y
  1. G:'$D(BHCPTA) CPTALLCX
  1. D CKP^GMTSUP Q:$D(GMTSQIT)
  1. W ?1,"CODE",?7,"DATE",?17,"CPT NARRATIVE",?54,"UNITS",?60,"FACILITY",?74,"CLN",!
  1. S BHCPT=0,BHMRC=0 F S BHCPT=$O(BHCPTA(BHCPT)) Q:BHCPT=""!($D(GMTSQIT)) D
  1. .D CKP^GMTSUP Q:$D(GMTSQIT) I GMTSNPG W ?1,"CODE",?7,"DATE",?17,"CPT NARRATIVE",?54,"UNITS",?60,"FACILITY",?74,"CLN",!
  1. .W BHCPT
  1. .I BHMRO D MREDISP Q
  1. .S BHSIVD="" F S BHSIVD=$O(BHCPTA(BHCPT,BHSIVD)) Q:BHSIVD=""!($D(GMTSQIT)) D
  1. ..S BHMRC=0 S BHIEN=0 F S BHIEN=$O(BHCPTA(BHCPT,BHSIVD,BHIEN)) Q:BHIEN'=+BHIEN!($D(GMTSQIT)) D
  1. ...D CKP^GMTSUP Q:$D(GMTSQIT) I GMTSNPG W ?1,"CODE",?7,"DATE",?17,"CPT NARRATIVE",?54,"UNITS",?60,"FACILITY",?74,"CLN",!
  1. ...S BHMRC=BHMRC+1
  1. ...W ?7,$$DATE^BHSMU((9999999-BHSIVD))
  1. ...W ?17,$E($P(BHCPTA(BHCPT,BHSIVD,BHIEN),U,1),1,35)
  1. ...W ?54,$P(BHCPTA(BHCPT,BHSIVD,BHIEN),U,2)
  1. ...S %=$P(BHCPTA(BHCPT,BHSIVD,BHIEN),U,3)
  1. ...I % W ?60,$P($G(^AUTTLOC(%,0)),U,2)
  1. ...S %=$P(BHCPTA(BHCPT,BHSIVD,BHIEN),U,4)
  1. ...I % W ?74,$E($P($G(^DIC(40.7,%,9999999)),U),1,3)
  1. ...W !
  1. ; <CLEANUP>
  1. ;now display CPT refusals
  1. S BHST="CPT",BHSFN=81 D DISPREF^BHSRAD
  1. K BHST,BHSFN,BHMRO
  1. CPTALLCX K BHSIVD,BHSDAT,BHCPT,BHMRC,BHSIVC,BHIEN,BHCPTA,BHCPTI,%
  1. Q
  1. MREDISP ;
  1. S BHSIVD=0,BHSIVD=$O(BHCPTA(BHCPT,BHSIVD)) Q:BHSIVD>GMTSDLM D
  1. .S BHIEN=0,BHIEN=$O(BHCPTA(BHCPT,BHSIVD,BHIEN)) D
  1. ..D CKP^GMTSUP Q:$D(GMTSQIT) I GMTSNPG W ?1,"CODE",?7,"DATE",?17,"CPT NARRATIVE",?54,"UNITS",?60,"FACILITY",?74,"CLN",!
  1. ..W ?7,$$DATE^BHSMU((9999999-BHSIVD))
  1. ..W ?17,$E($P(BHCPTA(BHCPT,BHSIVD,BHIEN),U,1),1,35)
  1. ..W ?54,$P(BHCPTA(BHCPT,BHSIVD,BHIEN),U,2)
  1. ..S %=$P(BHCPTA(BHCPT,BHSIVD,BHIEN),U,3)
  1. ..I % W ?60,$P($G(^AUTTLOC(%,0)),U,2)
  1. ..S %=$P(BHCPTA(BHCPT,BHSIVD,BHIEN),U,4)
  1. ..I % W ?74,$P($G(^DIC(40.7,%,9999999)),U)
  1. ..W !
  1. .Q
  1. Q
  1. CPTMRE ;EP - health summary component, most recent of each cpt code
  1. S BHMRO=1
  1. G CPTALLC1