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

APCHPWH6.m

Go to the documentation of this file.
  1. APCHPWH6 ; IHS/CMI/LAB - PCC HEALTH SUMMARY - MAIN DRIVER PART 2 ;
  1. ;;2.0;IHS PCC SUITE;**2,6,7,10,11**;MAY 14, 2009;Build 58
  1. ;
  1. ;EO MEASURES IN PWH
  1. CANCER ;EP - cancer CCI measure
  1. NEW APCHVAL,Y,APCHHD
  1. D SUBHEAD^APCHPWHU
  1. S APCHHD=0 ;D S^APCHPWH1("CANCER SCREENING",1)
  1. D MAMMOGM
  1. D PAP
  1. D COLORECT
  1. Q
  1. ;
  1. MAMMOGM ;
  1. Q:$P(^DPT(APCHSDFN,0),U,2)'="F"
  1. Q:$$AGE^AUPNPAT(APCHSDFN)<50
  1. Q:$$AGE^AUPNPAT(APCHSDFN)>69
  1. S APCHVAL=$$LASTMAM^APCLAPI1(APCHSDFN)
  1. ;I 'APCHHD D S^APCHPWH1("CANCER SCREENING",1) S APCHHD=1
  1. D S^APCHPWH1("MAMMOGRAM",1)
  1. I APCHVAL="" D Q
  1. .D S^APCHPWH1("No mammogram on file. It is recommended that you receive a mammogram")
  1. .D S^APCHPWH1("every year. Ask your health care provider to order a mammogram for you.")
  1. I $$FMDIFF^XLFDT(DT,APCHVAL)<365 D Q
  1. .D S^APCHPWH1("Your last mammogram was on "_$$FMTE^XLFDT(APCHVAL)_". Your next mammogram will")
  1. .D S^APCHPWH1("be due on "_$$FMTE^XLFDT($$FMADD^XLFDT(APCHVAL,365))_".")
  1. D S^APCHPWH1("Your last mammogram was on "_$$FMTE^XLFDT(APCHVAL)_". We recommend that you")
  1. D S^APCHPWH1("receive a mammogram every year. Ask your health care provider to order a ")
  1. D S^APCHPWH1("mammogram for you.")
  1. Q
  1. ;
  1. PAP ;
  1. Q:$P(^DPT(APCHSDFN,0),U,2)'="F"
  1. Q:$$AGE^AUPNPAT(APCHSDFN)<19
  1. I $$HYSTER^APCHSM04(APCHSDFN) Q
  1. D S^APCHPWH1("PAP SMEAR",1)
  1. S APCHVAL=$$LASTPAP^APCLAPI1(APCHSDFN)
  1. I APCHVAL="" D Q
  1. .D S^APCHPWH1("No Pap Smear on file. We recommend that you get a Pap Smear every 3 years.")
  1. .D S^APCHPWH1("Ask your health care provider to order a Pap Smear for you.")
  1. ;
  1. I $$FMDIFF^XLFDT(DT,APCHVAL)<(3*365) D Q
  1. .D S^APCHPWH1("Your last Pap Smear was on "_$$FMTE^XLFDT(APCHVAL)_". Your next Pap Smear will")
  1. .D S^APCHPWH1("be due on "_$$FMTE^XLFDT($$FMADD^XLFDT(APCHVAL,(3*365)))_".")
  1. D S^APCHPWH1("Your last Pap Smear was on "_$$FMTE^XLFDT(APCHVAL)_". We recommend that you")
  1. D S^APCHPWH1("get a Pap smear every 3 years. Ask your health care provider to order a ")
  1. D S^APCHPWH1("Pap Smear for you.")
  1. Q
  1. ;
  1. COLORECT ;
  1. Q:$$AGE^AUPNPAT(APCHSDFN)<51
  1. Q:$$CRC(APCHSDFN)
  1. ;I 'APCHHD D S^APCHPWH1("CANCER SCREENING",1) S APCHHD=1
  1. D S^APCHPWH1("COLON HEALTH SCREENING",1)
  1. NEW D,Y
  1. S D="",Y=""
  1. S APCHVAL=$$LASTCOLO^APCLAPI(APCHSDFN,$$FMADD^XLFDT(DT,-(10*365)),DT,"D")
  1. I APCHVAL S D=$$FMADD^XLFDT(APCHVAL,(10*365))
  1. S APCHVAL=$$LASTFSIG^APCLAPI(APCHSDFN,$$FMADD^XLFDT(DT,-(5*365)),DT,"D")
  1. I APCHVAL S Y=$$FMADD^XLFDT(APCHVAL,(5*365)) I Y>D S D=Y
  1. S APCHVAL=$$LASTBE^APCLAPI4(APCHSDFN,$$FMADD^XLFDT(DT,-(10*365)),DT,"D")
  1. I APCHVAL S Y=$$FMADD^XLFDT(APCHVAL,(10*365)) I Y>D S D=Y
  1. S APCHVAL=$$LASTFOBT^APCLAPI3(APCHSDFN,$$FMADD^XLFDT(DT,-365),DT,"D")
  1. I APCHVAL S Y=$$FMADD^XLFDT(APCHVAL,365) I Y>D S D=Y
  1. I D D COLODISP Q
  1. D S^APCHPWH1("It is recommended that all people who are 51 years and older be screened")
  1. D S^APCHPWH1("for colon cancer. Ask your health care provider to order a colon cancer")
  1. D S^APCHPWH1("screening for you.")
  1. Q
  1. COLODISP ;
  1. D S^APCHPWH1("You are up to date for colon cancer screening. Your next colon cancer")
  1. D S^APCHPWH1("screening will be due on "_$$FMTE^XLFDT(D)_".")
  1. Q
  1. ;
  1. CRC(P) ;EP
  1. NEW APCHX,Y,X,T
  1. K APCHX
  1. S Y="APCHX("
  1. S X=P_"^LAST DX [BGP COLORECTAL CANCER DXS;DURING "_$$FMTE^XLFDT($$DOB^AUPNPAT(P))_"-"_$$FMTE^XLFDT(DT) S E=$$START1^APCLDF(X,Y)
  1. I $D(APCHX(1)) Q 1 ;has a dx
  1. S X=$$LASTCPTT^APCLAPIU(P,,DT,"BGP COLORECTAL CANCER CPTS","D")
  1. I X]"" Q 1
  1. S X=$$LASTPRCT^APCLAPIU(P,,DT,"BGP TOTAL CHOLECTOMY PROCS","D")
  1. I X Q 1
  1. S X=$$LASTCPTT^APCLAPIU(P,,DT,"BGP TOTAL CHOLECTOMY CPTS","D")
  1. I X Q 1
  1. I $$PLTAX^APCHSMU(P,"BGP COLORECTAL CANCER DXS") Q 1
  1. Q 0
  1. ;
  1. CKD(P) ;EP - Does patient have chronic kidney disease (CKD)?
  1. NEW T,APCHLLAB,I,X
  1. ;get last serum creatinine value
  1. ;S APCHLLAB=$$LAB(P,$O(^ATXLAB("B","DM AUDIT CREATININE TAX",0)),$O(^ATXAX("B","BGP CREATININE LOINC")))
  1. ;I $$SEX^AUPNPAT(APCHSDFN)="F",APCHLLAB>1.3 Q 1
  1. ;I $$SEX^AUPNPAT(APCHSDFN)="M",APCHLLAB>1.5 Q 1
  1. ;get last urine protein value
  1. S T=$O(^ATXAX("B","APCH CKD DXS",0))
  1. S (X,Y,I)=0 F S X=$O(^AUPNPROB("AC",P,X)) Q:X'=+X!(I) I $D(^AUPNPROB(X,0)),$P(^AUPNPROB(X,0),U,12)'="I",$P(^AUPNPROB(X,0),U,12)'="D" S Y=$P(^AUPNPROB(X,0),U) I $$ICD^ATXAPI(Y,T,9) S I=1
  1. I I Q 1
  1. S T=$$LASTDX^APCHSMU2(P,"APCH CKD DXS",$$FMADD^XLFDT(DT,-(365*1)),DT)
  1. I T Q 1
  1. S APCHLLAB=$$LAB(P,$O(^ATXLAB("B","DM AUDIT P/C RATIO TAX",0)),$O(^ATXAX("B","DM AUDIT P/C RATIO LOINC")))
  1. I +APCHLLAB>200 Q 1
  1. S APCHLLAB=$$LAB(P,$O(^ATXLAB("B","DM AUDIT 24HR URINE PROTEIN",0)))
  1. I +APCHLLAB>300 Q 1
  1. ;get last A/C ratio value
  1. S APCHLLAB=$$LAB(P,$O(^ATXLAB("B","DM AUDIT QUANT UACR",0)))
  1. I +APCHLLAB>30 Q 1
  1. ;get estimated GFR
  1. S APCHLLAB=$$LAB(P,$O(^ATXLAB("B","BGP GPRA ESTIMATED GFR TAX",0)),$O(^ATXAX("B","BGP ESTIMATED GFR LOINC")),"ESTIMATED GFR")
  1. I +APCHLLAB,APCHLLAB<60 Q 1
  1. Q ""
  1. ;
  1. LAB(P,T,LT,LN) ;EP
  1. I '$G(LT) S LT=""
  1. S LN=$G(LN)
  1. NEW D,V,G,X,J S (D,G)=0 F S D=$O(^AUPNVLAB("AE",P,D)) Q:D'=+D!(G) D
  1. .S X=0 F S X=$O(^AUPNVLAB("AE",P,D,X)) Q:X'=+X!(G) D
  1. ..S Y=0 F S Y=$O(^AUPNVLAB("AE",P,D,X,Y)) Q:Y'=+Y!(G) D
  1. ...I $D(^ATXLAB(T,21,"B",X)),$P(^AUPNVLAB(Y,0),U,4)]"" S G=Y Q
  1. ...I LN]"",$$VAL^XBDIQ1(9000010.09,Y,.01)=LN S G=Y Q
  1. ...Q:'LT
  1. ...S J=$P($G(^AUPNVLAB(Y,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC(J,LT)
  1. ...S G=Y
  1. ...Q
  1. ..Q
  1. .Q
  1. I 'G Q ""
  1. Q $P(^AUPNVLAB(G,0),U,4)
  1. ;
  1. LOINC(A,B) ;
  1. NEW %
  1. S %=$P($G(^LAB(95.3,A,9999999)),U,2)
  1. I %]"",$D(^ATXAX(B,21,"B",%)) Q 1
  1. S %=$P($G(^LAB(95.3,A,0)),U)_"-"_$P($G(^LAB(95.3,A,0)),U,15)
  1. I $D(^ATXAX(B,21,"B",%)) Q 1
  1. Q ""
  1. ;
  1. FOOTEX(P,BDATE,EDATE) ;EP
  1. NEW APCHY,APCHV,%,LDFE,PROV,D,V,G
  1. S LDFE="",%=P_"^LAST EXAM DIABETIC FOOT EXAM;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE),E=$$START1^APCLDF(%,"APCHY(")
  1. I $D(APCHY(1)) S LDFE=$P(APCHY(1),U)
  1. ;now check any clinic 65 or prov 33/25
  1. K APCHY,APCHV
  1. S %=P_"^ALL VISITS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE),E=$$START1^APCLDF(%,"APCHY(")
  1. ;reorder by date
  1. S %=0 F S %=$O(APCHY(%)) Q:%'=+% S APCHV(9999999-$P(APCHY(%),U),$P(APCHY(%),U,5))=""
  1. S (D,V)=0,G="" F S D=$O(APCHV(D)) Q:D'=+D!(G) S V=0 F S V=$O(APCHV(D,V)) Q:V'=+V!(G) D
  1. .S PROV=$$PRIMPROV^APCLV(V,"D") I (PROV=33!(PROV=25)),'$$DNKA^APCHS9B4(V) S G=9999999-D Q
  1. .S PROV=$$CLINIC^APCLV(V,"C") I PROV=65!(PROV="B7"),'$$DNKA^APCHS9B4(V) S G=9999999-D
  1. I G,G>LDFE S LDFE=G
  1. Q LDFE
  1. LAB30 ;EP - all labs in past 100 days
  1. NEW APCHLAB,APCHX,X,L,N,R,APCHL
  1. S APCHLAB="APCHLAB"
  1. D ALLLAB^APCLAPIU(DFN,$$FMADD^XLFDT(DT,-100),DT,,,,.APCHLAB)
  1. Q:'$D(APCHLAB)
  1. D SUBHEAD^APCHPWHU
  1. D S^APCHPWH1("RECENT LAB RESULTS")
  1. D WRITET^APCHPWHU("RECENT LAB RESULTS")
  1. S X="LABORATORY TEST",$E(X,32)="RESULT",$E(X,52)="REFERENCE RANGE",$E(X,68)="DATE" D S^APCHPWH1(X)
  1. S APCHX=0 F S APCHX=$O(APCHLAB(APCHX)) Q:APCHX'=+APCHX D
  1. .S APCHL=$P(APCHLAB(APCHX),U,4)
  1. .Q:$P(^AUPNVLAB(APCHL,0),U,4)="" ;no result - this is pending
  1. .Q:$P(^AUPNVLAB(APCHL,0),U,4)="canc" ;CANCELLED TEST
  1. .S N=$P($G(^AUPNVLAB(APCHL,11)),U,1) ;UNITS
  1. .I $$UP^XLFSTR($P(^AUPNVLAB(APCHL,0),U,4))["REJECTED TEST" Q
  1. .S R=""
  1. .I $P($G(^AUPNVLAB(APCHL,11)),U,4)]"",$P($G(^AUPNVLAB(APCHL,11)),U,5)]"" S R=$P(^AUPNVLAB(APCHL,11),U,4)_"-"_$P(^AUPNVLAB(APCHL,11),U,5)
  1. .S X=$E($P(APCHLAB(APCHX),U,2),1,30),$E(X,32)=$P(APCHLAB(APCHX),U,3)_" "_N,$E(X,52)=R,$E(X,68)=$$FMTE^XLFDT($P(APCHLAB(APCHX),U,1))
  1. .D S^APCHPWH1(X)
  1. .;DISPLAY COMMENTS? YES/NO
  1. .Q:'$P(^APCHPWHT(APCHPWHT,1,APCHSORD,0),U,4)
  1. .;display comments (21 multiple using ^DIWP with a length of 65, indented to column 8
  1. .K ^UTILITY($J,"W")
  1. .S APCMZ=0
  1. .S DIWL=1,DIWR=65 F S APCMZ=$O(^AUPNVLAB(APCHL,21,APCMZ)) Q:APCMZ'=+APCMZ D
  1. ..S X=^AUPNVLAB(APCHL,21,APCMZ,0) I X]"" D ^DIWP
  1. ..Q
  1. .S Z=0 F S Z=$O(^UTILITY($J,"W",DIWL,Z)) Q:Z'=+Z S X="",$E(X,8)=^UTILITY($J,"W",DIWL,Z,0) D S^APCHPWH1(X)
  1. .K ^UTILITY($J,"W")
  1. Q
  1. PENDLAB ;
  1. NEW APCHLRDF,APCHMIEN,APCHIEN,APCHLABS,APCHTIEN,APCHCNT
  1. S APCHLRDF=$G(^DPT(DFN,"LR"))
  1. Q:'APCHLRDF ;NO LRDFN TO USE FOR LOOKUP
  1. Q:'$D(^LRO(69,"D",APCHLRDF)) ;no orders in LRO(69 for this LRDFN
  1. K APCHLABS
  1. S APCHCNT=0
  1. ;gather up order date (.01 field and test names in APCHLABS)
  1. S APCHIEN=$$FMADD^XLFDT(DT,-184) F S APCHIEN=$O(^LRO(69,"D",APCHLRDF,APCHIEN)) Q:APCHIEN="" D
  1. .S APCHMIEN=0 F S APCHMIEN=$O(^LRO(69,"D",APCHLRDF,APCHIEN,APCHMIEN)) Q:APCHMIEN="" D
  1. ..;now loop through tests to see if any not accessioned
  1. ..S APCHTIEN=0 F S APCHTIEN=$O(^LRO(69,APCHIEN,1,APCHMIEN,2,APCHTIEN)) Q:APCHTIEN'=+APCHTIEN D
  1. ...Q:$P($G(^LRO(69,APCHIEN,1,APCHMIEN,2,APCHTIEN,0)),U,3) ;has accession date so not a pending order
  1. ...S APCHCNT=APCHCNT+1,APCHLABS(APCHCNT)=$P(^LRO(69,APCHIEN,0),U,1)_U_$P(^LRO(69,APCHIEN,1,APCHMIEN,2,APCHTIEN,0),U,1)
  1. Q:'$D(APCHLABS) ;no pending labs so don't bother with displaying hte component.
  1. D SUBHEAD^APCHPWHU
  1. D S^APCHPWH1("PENDING LAB ORDERS")
  1. D WRITET^APCHPWHU("PENDING LABS")
  1. S X="",$E(X,5)="LABORATORY TEST",$E(X,40)="DATE ORDERED" D S^APCHPWH1(X)
  1. S APCHCNT=0 F S APCHCNT=$O(APCHLABS(APCHCNT)) Q:APCHCNT="" D
  1. .S X="",$E(X,5)=$P(^LAB(60,$P(APCHLABS(APCHCNT),U,2),0),U,1),$E(X,40)=$$FMTE^XLFDT($P(APCHLABS(APCHCNT),U,1)) D S^APCHPWH1(X)
  1. Q
  1. ;
  1. PROCS ;EP - CALLED FROM PROCEDURES COMPONENT OF THE PWH
  1. ;
  1. HOS ; HISTORY OF SURGERY * 9000010.08 (V PROCEDURE) & V CPT *******
  1. NEW APCHHOSA,APCHHOSC,APCHSCNT,APCHSIVD,APCHSICD,APCHSN,APCHSDAT,APCHCODE,APCHDES,APCHSDAT,APCHSCVD,APCHSIEN
  1. NEW APCHCPTI,V,AJPCHT,Y
  1. K APCHHOSA,APCHHOSC
  1. I '$D(^AUPNVPRC("AC",APCHSDFN)),'$D(^AUPNVCPT("AC",APCHSDFN)),'$D(^AUPNVTC("AC",APCHSDFN)) G HOSX
  1. S APCHSCNT=0
  1. ;
  1. S APCHSIVD=0 F S APCHSIVD=$O(^AUPNVPRC("AA",APCHSDFN,APCHSIVD)) Q:'APCHSIVD D
  1. .S APCHSIEN=0 F S APCHSIEN=$O(^AUPNVPRC("AA",APCHSDFN,APCHSIVD,APCHSIEN)) Q:'APCHSIEN D
  1. ..S APCHSICD=$P(^AUPNVPRC(APCHSIEN,0),U)
  1. ..S APCHSN=^AUPNVPRC(APCHSIEN,0)
  1. ..D HOSCHK Q:APCHSICD=""
  1. ..S APCHSCNT=APCHSCNT+1
  1. ..;S APCHCSVD=+^AUPNVSIT($P(APCHSN,U,3),0)\1
  1. ..S X=$$ICDOP^ICDEX($P(APCHSN,U,1),+^AUPNVSIT($P(APCHSN,U,3),0)\1,,"I")
  1. ..S APCHCODE=$P(X,U,2),APCHDES=$P(X,U,5)
  1. ..S APCHSDAT=""
  1. ..S Y=$P(APCHSN,U,6) I Y]"" S APCHSDAT=$$FMTE^XLFDT(Y)
  1. ..I APCHSDAT="" S Y=$P(APCHSN,U,3),Y=+^AUPNVSIT(Y,0)\1 S APCHSDAT=$$FMTE^XLFDT(Y)
  1. ..S APCHHOSA(APCHSIVD,"PRC",APCHSIEN)=APCHSDAT_U_APCHDES_U_APCHCODE
  1. ;now go through v cpt
  1. S APCHT=$O(^ATXAX("B","APCH HS MAJOR PROCEDURE CPTS",0))
  1. S APCHCPTI=0 F S APCHCPTI=$O(^AUPNVCPT("AA",APCHSDFN,APCHCPTI)) Q:APCHCPTI'=+APCHCPTI D
  1. .I '$$ICD^ATXAPI(APCHCPTI,APCHT,1) Q ;not a cpt wanted on this component
  1. .S APCHSIVD=0 F S APCHSIVD=$O(^AUPNVCPT("AA",APCHSDFN,APCHCPTI,APCHSIVD)) Q:APCHSIVD="" D
  1. ..S APCHSIEN=0 F S APCHSIEN=$O(^AUPNVCPT("AA",APCHSDFN,APCHCPTI,APCHSIVD,APCHSIEN)) Q:APCHSIEN'=+APCHSIEN D
  1. ...S Y=(9999999-APCHSIVD) S APCHSDAT=$$FMTE^XLFDT(Y)
  1. ...S APCHSN=^AUPNVCPT(APCHSIEN,0)
  1. ...S APCHSCNT=APCHSCNT+1
  1. ...S APCHDES=$P($$CPT^ICPTCOD($P(APCHSN,U,1),Y),U,3) ;cmi/anch/maw 8/28/2007 code set versioning
  1. ...S APCHCODE=$P($$CPT^ICPTCOD($P(APCHSN,U,1),Y),U,2)
  1. ...S APCHHOSA(APCHSIVD,"CPT",APCHSIEN)=APCHSDAT_U_APCHDES_U_APCHCODE
  1. ...S APCHHOSC(APCHSIVD,"CPT",$P(^ICPT($P(APCHSN,U,1),0),U,1))=""
  1. ;now get all tran codes hcpcs
  1. S APCHSIEN=0 F S APCHSIEN=$O(^AUPNVTC("AC",APCHSDFN,APCHSIEN)) Q:APCHSIEN="" D
  1. .Q:'$D(^AUPNVTC(APCHSIEN))
  1. .S V=$P(^AUPNVTC(APCHSIEN,0),U,3)
  1. .Q:'V
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .S (APCHSDAT,V)=$P($P(^AUPNVSIT(V,0),U),".")
  1. .S APCHSIVD=9999999-V
  1. .S APCHCPTI=$P(^AUPNVTC(APCHSIEN,0),U,7)
  1. .Q:APCHCPTI=""
  1. .I '$$ICD^ATXAPI(APCHCPTI,APCHT,1) Q ;not a cpt wanted on this component
  1. .Q:$D(APCHHOSC(APCHSIVD,"CPT",$P(^ICPT(APCHCPTI,0),U,1)))
  1. .S APCHDES=$P($$CPT^ICPTCOD(APCHCPTI,APCHSDAT),U,3)
  1. .S APCHCODE=$P($$CPT^ICPTCOD(APCHCPTI,APCHSDAT),U,2)
  1. .S APCHHOSA(APCHSIVD,"CPT",APCHSIEN)=$$FMTE^XLFDT(APCHSDAT)_U_APCHDES_U_APCHCODE
  1. .S APCHSCNT=APCHSCNT+1
  1. ;now display the procedures/cpt codes
  1. Q:'APCHSCNT
  1. D SUBHEAD^APCHPWHU
  1. D S^APCHPWH1("PROCEDURES")
  1. D WRITET^APCHPWHU("PROCEDURES")
  1. S APCHSIVD=0 F S APCHSIVD=$O(APCHHOSA(APCHSIVD)) Q:APCHSIVD="" D
  1. . S APCHIEN=0 F S APCHIEN=$O(APCHHOSA(APCHSIVD,"PRC",APCHIEN)) Q:APCHIEN'=+APCHIEN D
  1. .. S APCHDES=$P(APCHHOSA(APCHSIVD,"PRC",APCHIEN),U,2)
  1. .. S APCHSDAT=$P(APCHHOSA(APCHSIVD,"PRC",APCHIEN),U,1)
  1. .. S APCHCODE=$P(APCHHOSA(APCHSIVD,"PRC",APCHIEN),U,3)
  1. .. S X="",$E(X,1)=APCHDES,$E(X,60)=APCHSDAT
  1. .. D S^APCHPWH1(X)
  1. . S APCHIEN=0 F S APCHIEN=$O(APCHHOSA(APCHSIVD,"CPT",APCHIEN)) Q:APCHIEN'=+APCHIEN!($D(APCHSQIT)) D
  1. .. S APCHDES=$P(APCHHOSA(APCHSIVD,"CPT",APCHIEN),U,2)
  1. .. S APCHSDAT=$P(APCHHOSA(APCHSIVD,"CPT",APCHIEN),U,1)
  1. .. S APCHCODE=$P(APCHHOSA(APCHSIVD,"CPT",APCHIEN),U,3)
  1. .. S X="",$E(X,1)=APCHDES,$E(X,60)=APCHSDAT
  1. .. D S^APCHPWH1(X)
  1. HOSX ;
  1. K APCHHOSA,APCHHOSC
  1. Q
  1. HOSCHK ;
  1. S APCHSCOD=$P($$ICDOP^ICDEX(APCHSICD,,,"I"),U,2) ;cmi/anch/maw CSV
  1. I $$ICD^ATXAPI(APCHSICD,$O(^ATXAX("B","APCH MINOR SURGICAL PROCS",0)),0) S APCHSICD=""
  1. Q