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

APCDCAF.m

Go to the documentation of this file.
  1. APCDCAF ; IHS/CMI/LAB - MENTAL HLTH ROUTINE 16-AUG-1994 ;
  1. ;;2.0;IHS PCC SUITE;**2,7,8,11,15,20**;MAY 14, 2009;Build 25
  1. ;
  1. ;
  1. EN ; EP -- main entry point
  1. S VALMCC=1
  1. NEW VALCNT
  1. D TERM^VALM0
  1. D CLEAR^VALM1
  1. D EN^VALM("APCDCAF MAIN VIEW")
  1. D CLEAR^VALM1
  1. Q
  1. ;
  1. HDR ;EP -- header code
  1. S VALMHDR(1)="Visit Dates: "_$$FMTE^XLFDT(APCDBD)_" to "_$$FMTE^XLFDT(APCDED)
  1. S X=" #",$E(X,6)="VISIT DATE",$E(X,21)="PATIENT NAME",$E(X,35)="HRN",$E(X,42)="FAC",$E(X,47)="HOSP LOC",$E(X,56)="S",$E(X,58)="CL",$E(X,61)="INS",$E(X,66)="PRIM PROV",$E(X,76)="STATUS ERROR"
  1. S VALMHDR(3)=X
  1. S VALMHDR(2)="* an asterisk beside the visit number indicates the visit has an error"
  1. Q
  1. ;
  1. INIT ;EP -- init variables/list array
  1. S VALMSG="Q - Quit/?? for more actions/+ next/- previous"
  1. D GATHER
  1. D RECDISP
  1. S VALMCNT=APCDRCNT
  1. Q
  1. ;
  1. HELP ;EP -- help code
  1. S X="?" D DISP^XQORM1 W !!
  1. Q
  1. ;
  1. EXIT ; -- exit code
  1. K APCDRCNT,^TMP($J),^TMP("APCDCAF",$J)
  1. Q
  1. ;
  1. EXPND ; -- expand code
  1. Q
  1. ;
  1. SCW(C) ;EP
  1. I C="" Q 0
  1. I C="E" Q 0
  1. I C="D" Q 0 ;NOT USED BY IHS
  1. I C="X" Q 0 ;NOT USED BY IHS
  1. I $D(^APCDSITE(DUZ(2),13,"B",C)) Q 0
  1. Q 1
  1. ;
  1. GATHER ;
  1. K ^TMP("APCDCAF",$J),^TMP($J)
  1. I $G(APCDCAFP) D GATHERP Q
  1. S APCDODAT=$P(APCDBD,".")-1,APCDODAT=APCDODAT_".9999"
  1. S (APCDRCNT,APCDVIEN)=0 F S APCDODAT=$O(^AUPNVSIT("B",APCDODAT)) Q:APCDODAT=""!($P(APCDODAT,".")>$P(APCDED,".")) D
  1. .S APCDVIEN=0 F S APCDVIEN=$O(^AUPNVSIT("B",APCDODAT,APCDVIEN)) Q:APCDVIEN'=+APCDVIEN D
  1. ..S APCDV0=$G(^AUPNVSIT(APCDVIEN,0))
  1. ..Q:APCDV0=""
  1. ..Q:$P(APCDV0,U,5)=""
  1. ..Q:'$D(^AUPNPAT($P(APCDV0,U,5),0))
  1. ..Q:'$D(^DPT($P(APCDV0,U,5),0))
  1. ..Q:$$DEMO^APCLUTL($P(APCDV0,U,5),APCDDEMO)
  1. ..Q:$P(APCDV0,U,7)=""
  1. ..Q:'$$SCW($P(APCDV0,U,7))
  1. ..Q:'$P(APCDV0,U,9) ;NO DEP ENTRIES
  1. ..Q:$P(APCDV0,U,11) ;DELETED
  1. ..Q:$P(APCDV0,U,3)="C" ;CONTRACT
  1. ..I $P(^APCDSITE(DUZ(2),0),U,28)=0,APCDPRVT'="X" Q:'$D(^AUPNVPRV("AD",APCDVIEN)) ;no provider
  1. ..S APCDVPP=$$PRIMPROV^APCLV(APCDVIEN,"I")
  1. ..;Q:'APCDVPP ;no primary provider
  1. ..S APCDVLOC=$P(APCDV0,U,6)
  1. ..Q:APCDVLOC="" ;no location of encounter
  1. ..I $D(APCDLOCS),'$D(APCDLOCS(APCDVLOC)) Q ;not a location we want
  1. ..S APCDVCLN=$P(APCDV0,U,8)
  1. ..I APCDCLNT="X",APCDVCLN]"" Q
  1. ..I APCDVCLN="",$D(APCDCLNS) Q
  1. ..I $D(APCDCLNS),'$D(APCDCLNS(APCDVCLN)) Q ;not a CLINIC we want
  1. ..S APCDVHL=$P(APCDV0,U,22)
  1. ..I APCDVHL="",$D(APCDHLS) Q
  1. ..I $D(APCDHLS),'$D(APCDHLS(APCDVHL)) Q ;not a HOSP LOC we want
  1. ..I APCDVPP="",$D(APCDPRVS) Q
  1. ..I APCDPRVT="X",APCDVPP Q
  1. ..I APCDPRVT'="C",$D(APCDPRVS),'$D(APCDPRVS(APCDVPP)) Q ;not a PRIM PROV we want
  1. ..I APCDPRVT'="C" G CAS
  1. ..S X=0,G=0,H=0 F S X=$O(^AUPNVPRV("AD",APCDVIEN,X)) Q:X'=+X I $P(^AUPNVPRV(X,0),U,4)'="P" S S=$$VALI^XBDIQ1(9000010.06,X,.01) D
  1. ...I $D(APCDPRVS(S)) S H=1
  1. ..Q:'H
  1. CAS ..S APCDVCAS=$P($G(^AUPNVSIT(APCDVIEN,11)),U,11)
  1. ..I APCDVCAS="R" Q ;DON'T DISPLAY REVIEWED VISITS
  1. ..K APCDVCDR D GETVCDR^APCDCAFS(APCDVIEN,"APCDVCDR") ;GET ALL PENDING REASONS
  1. ..I '$D(APCDVCDR),$D(APCDCDRS) Q ;
  1. ..S G=0 I $D(APCDCDRS) D
  1. ...S X=0 F S X=$O(APCDVCDR(X)) Q:X'=+X I $D(APCDCDRS(X)) S G=1
  1. ..I $D(APCDCDRS),'G Q
  1. ..S ^TMP($J,"APCDCAF",$$SORT(APCDVIEN,APCDSORT),APCDVIEN)=""
  1. ..Q
  1. .Q
  1. Q
  1. ;
  1. GATHERP ; gather up visits for 1 patient
  1. S APCDODAT=9999999-APCDED,APCDSTOP=9999999-APCDBD
  1. S (APCDRCNT,APCDVIEN)=0 F S APCDODAT=$O(^AUPNVSIT("AA",APCDCAFP,APCDODAT)) Q:APCDODAT=""!($P(APCDODAT,".")>APCDSTOP) D
  1. .S APCDVIEN=0 F S APCDVIEN=$O(^AUPNVSIT("AA",APCDCAFP,APCDODAT,APCDVIEN)) Q:APCDVIEN'=+APCDVIEN D
  1. ..S APCDV0=$G(^AUPNVSIT(APCDVIEN,0))
  1. ..Q:APCDV0=""
  1. ..Q:'$$SCW($P(APCDV0,U,7))
  1. ..Q:'$P(APCDV0,U,9) ;NO DEP ENTRIES
  1. ..Q:$P(APCDV0,U,11) ;DELETED
  1. ..Q:$P(APCDV0,U,3)="C" ;CONTRACT
  1. ..;Q:'$D(^AUPNVPOV("AD",APCDVIEN)) ;no pov
  1. ..;Q:'$D(^AUPNVPRV("AD",APCDVIEN)) ;no provider
  1. ..S APCDVPP=$$PRIMPROV^APCLV(APCDVIEN,"I")
  1. ..;Q:'APCDVPP ;no primary provider
  1. ..S APCDVLOC=$P(APCDV0,U,6)
  1. ..Q:APCDVLOC="" ;no location of encounter
  1. ..S APCDVCAS=$P($G(^AUPNVSIT(APCDVIEN,11)),U,11)
  1. ..I APCDVCAS="R" Q ;DON'T DISPLAY REVIEWED VISITS
  1. ..S ^TMP($J,"APCDCAF",$$SORT(APCDVIEN,APCDSORT),APCDVIEN)=""
  1. ..Q
  1. .Q
  1. Q
  1. RECDISP ;
  1. S APCDSV="" F S APCDSV=$O(^TMP($J,"APCDCAF",APCDSV)) Q:APCDSV="" D
  1. .S APCDV=0 F S APCDV=$O(^TMP($J,"APCDCAF",APCDSV,APCDV)) Q:APCDV'=+APCDV D
  1. ..S APCDRCNT=APCDRCNT+1
  1. ..S APCDX="",DFN=$P(^AUPNVSIT(APCDV,0),U,5) D REC
  1. ..S ^TMP("APCDCAF",$J,APCDRCNT,0)=APCDX
  1. ..S ^TMP("APCDCAF",$J,"IDX",APCDRCNT,APCDRCNT)=APCDV
  1. K APCDV,APCDX,APCDSV
  1. Q
  1. ;
  1. ONEDATE ;
  1. W !!,"This item is used to display all visits for a patient on the",!,"same date as the visit you select from the list."
  1. K DIR
  1. S DIR(0)="NO^1:"_APCDRCNT,DIR("A")="Which Visit"
  1. D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I Y="" W !,"No VISIT selected." D EOP G ONEDATEX
  1. I $D(DIRUT) W !,"No VISIT selected." D EOP G ONEDATEX
  1. S APCDVSIT=^TMP("APCDCAF",$J,"IDX",Y,Y)
  1. ;RELINKER?
  1. D EP^APCDKDE
  1. S APCDCAFD=$P($P(^AUPNVSIT(APCDVSIT,0),U),".")
  1. S APCDCAFO=1
  1. S APCDDFN=$P(^AUPNVSIT(APCDVSIT,0),U,5)
  1. D EN^APCDCAF2
  1. ;
  1. ONEDATEX ;
  1. K DIR,DIRUT,DUOUT,Y,APCDVSIT,APCDCAF,APCDCAFV,APCDCAFD,APCDCAFO,APCDDFN
  1. D KILL^AUPNPAT
  1. D BACK
  1. Q
  1. DATE(D) ;
  1. NEW X,Y
  1. S X=$P(D,".")
  1. S X=$E(D,4,5)_"/"_$E(D,6,7)_"/"_$E(D,2,3)
  1. S Y=$$FMTE^XLFDT(D,"2S"),Y=$P(Y,"@",2),Y=$P(Y,":",1,2)
  1. Q X_"@"_Y
  1. ;
  1. REC ;
  1. S APCDERR=$$ERRORCHK(APCDV)
  1. S APCDX=""
  1. S APCDX=APCDRCNT_")"_$S(APCDERR]"":"*",1:"")
  1. S $E(APCDX,6)=$$DATE($P(^AUPNVSIT(APCDV,0),U))
  1. S $E(APCDX,21)=$E($P(^DPT(DFN,0),U),1,13)
  1. S $E(APCDX,35)=$$LBLK($$HRN^AUPNPAT(DFN,DUZ(2)),6)
  1. S L=$P(^AUPNVSIT(APCDV,0),U,6)
  1. S L=$P($G(^AUTTLOC(L,0)),U,7)
  1. S $E(APCDX,42)=L
  1. S $E(APCDX,47)=$E($$VAL^XBDIQ1(9000010,APCDV,.22),1,8)
  1. S $E(APCDX,56)=$P(^AUPNVSIT(APCDV,0),U,7)
  1. S $E(APCDX,58)=$$CLINIC^APCLV(APCDV,"C")
  1. S $E(APCDX,61)=$$MCP(APCDV)
  1. S $E(APCDX,66)=$E($$PRIMPROV^APCLV(APCDV,"N"),1,9)
  1. S L=$P($G(^AUPNVSIT(APCDV,11)),U,11)
  1. S $E(APCDX,76)=L
  1. S $E(APCDX,78)=APCDERR
  1. Q
  1. ;
  1. ERRORCHK(V) ;EP
  1. NEW E,X,C
  1. S E=""
  1. I $P(^AUPNVSIT(V,0),U,7)="E" Q ""
  1. I $P(^AUPNVSIT(V,0),U,7)'="I",'$D(^AUPNVPOV("AD",V)) S E="NO POV"
  1. S X=0 F S X=$O(^AUPNVPOV("AD",V,X)) Q:X'=+X D
  1. .I $$VAL^XBDIQ1(9000010.07,X,.01)=".9999" S:E]"" E=E_"," S E=".9999 POV" Q
  1. .I $$VAL^XBDIQ1(9000010.07,X,.01)="ZZZ.999" S:E]"" E=E_"," S E="ZZZ.999 POV"
  1. S X=0,C=0 F S X=$O(^AUPNVPRV("AD",V,X)) Q:X'=+X D
  1. .I $P(^AUPNVPRV(X,0),U,4)="P" S C=C+1
  1. I C>1 S:E]"" E=E_"," S E=E_"MULT PRIM PROV"
  1. I $$FINDPEND^APCDCAF6(V) S:E]"" E=E_"," S E=E_"CHART DEFICIENCIES"
  1. Q E
  1. RBLK(V,L) ;left blank fill
  1. NEW %,I
  1. S %=$L(V),Z=L-% F I=1:1:Z S V=V_" "
  1. Q V
  1. LBLK(V,L) ;left blank fill
  1. NEW %,I
  1. S %=$L(V),Z=L-% F I=1:1:Z S V=" "_V
  1. Q V
  1. ;
  1. LASTCDR(V,F) ;EP - get last chart deficiency reason
  1. I $G(F)="" S F="I" ;
  1. I '$D(^AUPNVCA(V)) Q ""
  1. NEW X,A,D,L
  1. S X=0 F S X=$O(^AUPNVCA("AD",V,X)) Q:X'=+X D
  1. .Q:'$D(^AUPNVCA(X,0))
  1. .S D=$P(^AUPNVCA(X,0),U)
  1. .S A((9999999-$P(D,".")))=X
  1. S L=$O(A(0)) I L="" Q ""
  1. S X=A(L)
  1. Q $S(F="I":$P(^AUPNVCA(X,0),U,5),1:$$VAL^XBDIQ1(9000010.45,X,.05))
  1. ;
  1. MCP(V) ;
  1. NEW R S R=""
  1. I V="" Q ""
  1. I '$D(^AUPNVSIT(V,0)) Q ""
  1. NEW D
  1. S D=$P(^AUPNVSIT(V,0),U,5)
  1. I D="" Q ""
  1. I $$MCR^AUPNPAT(D,$P($P(^AUPNVSIT(V,0),U),".")) S R="M"
  1. I $$MCD^AUPNPAT(D,$P($P(^AUPNVSIT(V,0),U),".")) S:R]"" R=R_"/" S R=R_"C"
  1. I $$PI^AUPNPAT(D,$P($P(^AUPNVSIT(V,0),U),".")) S:R]"" R=R_"/" S R=R_"P"
  1. Q R
  1. SORT(V,S) ;
  1. NEW R
  1. S R=""
  1. D @(S_"SORT")
  1. I R="" S R="ZZZZZZZZ"
  1. Q R
  1. ;
  1. DSORT ;
  1. I 'V Q
  1. I '$D(^AUPNVSIT(V,0)) Q
  1. S R=$P(^AUPNVSIT(V,0),U)
  1. Q
  1. ;
  1. SSORT ;
  1. I 'V Q
  1. I '$D(^AUPNVSIT(V,0)) Q
  1. S R=$$VAL^XBDIQ1(9000010,V,.07)
  1. Q
  1. ;
  1. LSORT ;
  1. I 'V Q
  1. I '$D(^AUPNVSIT(V,0)) Q
  1. S R=$$VAL^XBDIQ1(9000010,V,.06)
  1. Q
  1. ;
  1. CSORT ;
  1. I 'V Q
  1. I '$D(^AUPNVSIT(V,0)) Q
  1. S R=$$VAL^XBDIQ1(9000010,V,.08)
  1. Q
  1. ;
  1. OSORT ;
  1. I 'V Q
  1. I '$D(^AUPNVSIT(V,0)) Q
  1. S R=$$VAL^XBDIQ1(9000010,V,.22)
  1. Q
  1. ;
  1. PSORT ;
  1. S R=$$PRIMPROV^APCLV(V,"N")
  1. Q
  1. ;
  1. ASORT ;
  1. I 'V Q
  1. I '$D(^AUPNVSIT(V,0)) Q
  1. S R=$$VAL^XBDIQ1(9000010,V,1111)
  1. I R="" S R="INCOMPLETE"
  1. Q
  1. ;
  1. RSORT ;
  1. S R=$$LASTCDR(V,"E")
  1. Q
  1. ;
  1. NSORT ;
  1. S R=$$VAL^XBDIQ1(9000010,V,.05)
  1. Q
  1. ;
  1. HSORT ;
  1. S R=$$HRN^AUPNPAT($P(^AUPNVSIT(V,0),U,5),DUZ(2))
  1. Q
  1. ;
  1. TSORT ;
  1. I V="" Q
  1. I '$D(^AUPNVSIT(V,0)) Q
  1. NEW D
  1. S D=$P(^AUPNVSIT(V,0),U,5)
  1. I D="" Q
  1. S R=$$HRN^AUPNPAT(D,DUZ(2))
  1. S R=R+10000000,R=$E(R,7,8)_$E(R,1,6)
  1. Q
  1. ;
  1. ISORT ;
  1. I V="" Q
  1. I '$D(^AUPNVSIT(V,0)) Q
  1. NEW D
  1. S D=$P(^AUPNVSIT(V,0),U,5)
  1. I $$MCR^AUPNPAT(D,$P($P(^AUPNVSIT(V,0),U),".")) S R="M"
  1. I $$MCD^AUPNPAT(D,$P($P(^AUPNVSIT(V,0),U),".")) S:R]"" R=R_"/" S R=R_"C"
  1. I $$PI^AUPNPAT(D,$P($P(^AUPNVSIT(V,0),U),".")) S:R]"" R=R_"/" S R=R_"P"
  1. Q
  1. BACK ;EP go back
  1. D TERM^VALM0
  1. S VALMBCK="R"
  1. D INIT
  1. D HDR
  1. K DIR
  1. K X,Y,Z,I
  1. Q
  1. ;
  1. NOTEDISP ;
  1. K DIR
  1. I $T(BROWS1^TIURA2)="" W !!,"TIU not installed" D EOP G NOTEX
  1. S DIR(0)="NO^1:"_APCDRCNT,DIR("A")="Display Note for which Visit"
  1. D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I Y="" W !,"No VISIT selected." D EOP G NOTEX
  1. I $D(DIRUT) W !,"No VISIT selected." D EOP G NOTEX
  1. S APCDVSIT=^TMP("APCDCAF",$J,"IDX",Y,Y)
  1. D FULL^VALM1
  1. I '$D(^AUPNVNOT("AD",APCDVSIT)) W !!,"That visit does not have any notes to view" D EOP G NOTEX
  1. S (C,X)=0 F S X=$O(^AUPNVNOT("AD",APCDVSIT,X)) Q:X'=+X S C=C+1
  1. I C=1 S APCDVNOT=$O(^AUPNVNOT("AD",APCDVSIT,0)) D NOTE1 G NOTEX
  1. ;
  1. MNOTE ;
  1. W !!,"There are more than one note associated with this visit.",!,"Please choose which note to display.",!
  1. K APCDN
  1. S (X,C)=0 F S X=$O(^AUPNVNOT("AD",APCDVSIT,X)) Q:X'=+X S C=C+1 D
  1. .W !?3,C,") ",$$VAL^XBDIQ1(9000010.28,X,.01),?40,$$VAL^XBDIQ1(9000010.28,X,1202)
  1. .S APCDN(C)=X
  1. .Q
  1. K DIR
  1. S DIR(0)="NO^1:"_C,DIR("A")="Display which Note"
  1. D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I Y="" G NOTEX
  1. I $D(DIRUT) G NOTEX
  1. S APCDVNOT=APCDN(Y)
  1. NOTE1 ;
  1. S APCDTIU=$P(^AUPNVNOT(APCDVNOT,0),U)
  1. D BROWS1^TIURA2("TIU BROWSE FOR READ ONLY",APCDTIU)
  1. ;
  1. NOTEX ;
  1. K DIR,DIRUT,DUOUT,Y,APCDVSIT,APCDVNOT,X,APCDTIU
  1. D KILL^AUPNPAT
  1. D BACK
  1. Q
  1. ;
  1. CASHX ;EP
  1. D FULL^VALM1
  1. K DIR
  1. S DIR(0)="NO^1:"_APCDRCNT,DIR("A")="Display Chart Audit History for which Visit"
  1. D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I Y="" W !,"No VISIT selected." D EOP G CASHXX
  1. I $D(DIRUT) W !,"No VISIT selected." D EOP G CASHXX
  1. S APCDVSIT=^TMP("APCDCAF",$J,"IDX",Y,Y)
  1. D VIEWR^XBLM("DCAH^APCDCAF")
  1. ;
  1. CASHXX ;
  1. K DIR,DIRUT,DUOUT,Y,APCDVSIT
  1. D BACK
  1. Q
  1. DCAH ;
  1. ;
  1. W !!,"Chart Audit History for VISIT:"
  1. W !?1,"Visit Date: ",$$VAL^XBDIQ1(9000010,APCDVSIT,.01)," Patient Name: ",$$VAL^XBDIQ1(9000010,APCDVSIT,.05)
  1. W !?1,"Hospital Location: ",$$VAL^XBDIQ1(9000010,APCDVSIT,.22)," Primary Provider: ",$$PRIMPROV^APCLV(APCDVSIT,"N")
  1. W !!,"DATE OF AUDIT",?24,"STATUS",?40,"USER WHO AUDITED"
  1. S APCDX=0 F S APCDX=$O(^AUPNVCA("AD",APCDVSIT,APCDX)) Q:APCDX'=+APCDX D
  1. .W !,$$GET1^DIQ(9000010.45,APCDX,.01),?24,$$GET1^DIQ(9000010.45,APCDX,.04),?40,$$GET1^DIQ(9000010.45,APCDX,.05)
  1. W !!,"DEFICIENCY HISTORY"
  1. W !,"=================="
  1. S APCDX=0 F S APCDX=$O(^AUPNVCA("AD",APCDVSIT,APCDX)) Q:APCDX'=+APCDX D
  1. .Q:$P(^AUPNVCA(APCDX,0),U,6)=""
  1. .W !,$$GET1^DIQ(9000010.45,APCDX,.06),?31,$$DATE^APCDCAFA($P($P(^AUPNVSIT(APCDVSIT,0),U),".")),?42,$E($$GET1^DIQ(9000010.45,APCDX,.05),1,18)
  1. S DA=APCDVSIT,DIC="^AUPNCANT(" D EN^DIQ
  1. Q
  1. RESORT ;
  1. D FULL^VALM1
  1. W !!,"Resorting Visit List",!
  1. S DIR(0)="S^N:Patient Name;H:HRN;D:Date of Visit;T:Terminal Digit of HRN;S:Service Category;L:Location of Encounter;C:Clinic;O:Hospital Location;P:Primary Provider"
  1. S DIR(0)=DIR(0)_";A:Chart Audit Status;I:Has Medicare/Medicaid or PI"
  1. S DIR("A")="How would you like the list of visits sorted",DIR("B")="D" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) G RESORTX
  1. S APCDSORT=Y
  1. ;
  1. RESORTX ;
  1. D BACK
  1. Q
  1. ;
  1. HS ;
  1. D FULL^VALM1
  1. I $G(APCDCAFP) S (DFN,APCHSPAT,APCDPAT,Y)=APCDCAFP G HS1
  1. K DIR
  1. S DIR(0)="NO^1:"_APCDRCNT,DIR("A")="Select Visit for Patient's Health summary"
  1. D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I Y="" W !,"No VISIT selected." D EOP G HSX
  1. I $D(DIRUT) W !,"No VISIT selected." D EOP G HSX
  1. S APCDVSIT=^TMP("APCDCAF",$J,"IDX",Y,Y)
  1. S (Y,APCDPAT,DFN,APCHSPAT)=$P(^AUPNVSIT(APCDVSIT,0),U,5)
  1. HS1 ;
  1. S X="" I DUZ(2),$D(^APCCCTRL(DUZ(2),0))#2 S X=$P(^(0),U,3) I X,$D(^APCHSCTL(X,0)) S X=$P(^APCHSCTL(X,0),U)
  1. I $D(^DISV(DUZ,"^APCHSCTL(")) S Y=^("^APCHSCTL(") I $D(^APCHSCTL(Y,0)) S X=$P(^(0),U,1)
  1. S:X="" X="ADULT REGULAR"
  1. K DIC,DR,DD S DIC("B")=X,DIC="^APCHSCTL(",DIC(0)="AEMQ" D ^DIC K DIC,DA,DD,D0,D1,DQ
  1. I Y=-1 D EOP G HSX
  1. S APCHSTYP=+Y,APCHSPAT=DFN
  1. S APCDHDR="PCC Health Summary for "_$P(^DPT(APCHSPAT,0),U)
  1. D VIEWR^XBLM("EN^APCHS",APCDHDR)
  1. HSX ;
  1. K APCDVSIT,APCDPAT,X,Y,AUPNVSIT,AUPNDAYS,DFN,APCDHDR,APCDPLPT
  1. D EN^XBVK("APCH")
  1. D KILL^AUPNPAT
  1. D BACK
  1. Q
  1. ;
  1. EOP ;EP
  1. Q:$E(IOST)'="C"
  1. NEW DIR
  1. K DIRUT,DFOUT,DLOUT,DTOUT,DUOUT
  1. S DIR("A")="Press Enter to Continue",DIR(0)="E" D ^DIR
  1. Q
  1. ;
  1. BH ;EP
  1. K DIR
  1. I '$D(^XUSEC("AMHZ CODING REVIEW",DUZ)) W !!,"You do not have the security access to see Behavioral Health Notes.",!,"Please see your supervisor for access. The security key needed is AMHZ CODING REVIEW.",! D PAUSE^APCDALV1,BHX Q
  1. S DIR(0)="NO^1:"_APCDRCNT,DIR("A")="Display Behavioral Health Note for which Visit"
  1. D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I Y="" W !,"No VISIT selected." D EOP G BHX
  1. I $D(DIRUT) W !,"No VISIT selected." D EOP G BHX
  1. S APCDVSIT=^TMP("APCDCAF",$J,"IDX",Y,Y)
  1. D FULL^VALM1
  1. I '$D(^AMHREC("AVISIT",APCDVSIT)) D G BHX
  1. .W !!,"There is no visit in the Behavioral Health module that is associated"
  1. .W !,"with this visit. Use the N - Note Display action to display notes for "
  1. .W !,"non-BH visits."
  1. .D EOP
  1. S APCDVBH=$O(^AMHREC("AVISIT",APCDVSIT,0))
  1. I '$D(^AUPNVNOT("AD",APCDVSIT)) G BHSOAP
  1. S (C,X)=0 F S X=$O(^AUPNVNOT("AD",APCDVSIT,X)) Q:X'=+X S C=C+1
  1. I C=1 S APCDVNOT=$O(^AUPNVNOT("AD",APCDVSIT,0)) D BH1 G BHSOAP
  1. ;
  1. BHM ;
  1. W !!,"There are more than one note associated with this visit.",!,"Please choose which note to display.",!
  1. K APCDN
  1. S (X,C)=0 F S X=$O(^AUPNVNOT("AD",APCDVSIT,X)) Q:X'=+X S C=C+1 D
  1. .W !?3,C,") ",$$VAL^XBDIQ1(9000010.28,X,.01),?40,$$VAL^XBDIQ1(9000010.28,X,1202)
  1. .S APCDN(C)=X
  1. .Q
  1. K DIR
  1. S DIR(0)="NO^1:"_C,DIR("A")="Display which Note"
  1. D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I Y="" G BHSOAP
  1. I $D(DIRUT) G BHSOAP
  1. S APCDVNOT=APCDN(Y)
  1. BH1 ;
  1. S APCDTIU=$P(^AUPNVNOT(APCDVNOT,0),U)
  1. D BROWS1^TIURA2("TIU BROWSE FOR READ ONLY",APCDTIU)
  1. ;
  1. BHSOAP ;look for SOAP note
  1. I $O(^AMHREC(APCDVBH,31,0)) D
  1. .W !!,"The SOAP note from the Behavioral Health module will now be displayed."
  1. .W !! S DIR(0)="Y",DIR("A")="Do you want to continue",DIR("B")="Y" KILL DA D ^DIR KILL DIR
  1. .I $D(DIRUT) Q
  1. .I 'Y Q
  1. .D ARRAY^XBLM("^AMHREC("_APCDVBH_",31,","Behavior Health SOAP Note for visit: "_$$VAL^XBDIQ1(9002011,APCDVBH,.01))
  1. .Q
  1. BHX ;
  1. K DIR,DIRUT,DUOUT,Y,APCDVSIT,APCDVNOT,X,APCDTIU
  1. D KILL^AUPNPAT
  1. D BACK
  1. Q