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

APCDCAF2.m

Go to the documentation of this file.
  1. APCDCAF2 ; IHS/CMI/LAB - MENTAL HLTH ROUTINE 16-AUG-1994 ;
  1. ;;2.0;IHS PCC SUITE;**2,7,8,11**;MAY 14, 2009;Build 58
  1. ;; ;
  1. ;
  1. EN ; EP -- main entry point for CHART AUDIT LISTMANAGER DISPLAY
  1. S VALMCC=1
  1. NEW VALMCNT
  1. D TERM^VALM0
  1. D CLEAR^VALM1
  1. D EN^VALM("APCDCAF OP MAIN VIEW")
  1. D CLEAR^VALM1
  1. K ^TMP($J),^TMP("APCDCAF OP",$J)
  1. Q
  1. ;
  1. HDR ;EP -- header code
  1. S X=" #",$E(X,6)="VISIT DATE",$E(X,21)="PATIENT NAME",$E(X,38)="HRN",$E(X,44)="FAC",$E(X,49)="HOSP LOC",$E(X,59)="S",$E(X,61)="CL",$E(X,64)="PRIM PROV",$E(X,75)="STATUS ERROR"
  1. S VALMHDR(2)=X
  1. S VALMHDR(1)="* an asterisk beside the visit number indicates the visit has an error"
  1. Q
  1. ;
  1. INIT ;EP -- init variables and list array
  1. S VALMSG="Q - Quit/?? for more actions/+ next/- previous"
  1. D GATHER ;GATHER UP ALL VISITS FOR DISPLAY
  1. D RECDISP ;sort list by desired sort variable and set up listman display
  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,"APCDCAF OP"),^TMP($J)
  1. Q
  1. ;
  1. EXPND ; -- expand code
  1. Q
  1. ;
  1. GATHER ;
  1. K ^TMP($J),^TMP("APCDCAF OP",$J)
  1. S APCDODAT=9999999-APCDCAFD,APCDSTOP=9999999-APCDCAFD
  1. S (APCDRCNT,APCDVIEN)=0 F S APCDODAT=$O(^AUPNVSIT("AA",APCDDFN,APCDODAT)) Q:APCDODAT=""!($P(APCDODAT,".")>APCDSTOP) D
  1. .S APCDVIEN=0 F S APCDVIEN=$O(^AUPNVSIT("AA",APCDDFN,APCDODAT,APCDVIEN)) Q:APCDVIEN'=+APCDVIEN D
  1. ..S APCDV0=$G(^AUPNVSIT(APCDVIEN,0))
  1. ..Q:APCDV0=""
  1. ..Q:$P(APCDV0,U,11) ;DELETED
  1. ..Q:$P(APCDV0,U,3)="C" ;CONTRACT
  1. ..S APCDVLOC=$P(APCDV0,U,6)
  1. ..Q:APCDVLOC="" ;no location of encounter
  1. ..S ^TMP($J,"APCDCAF OP",APCDVIEN,APCDVIEN)=""
  1. ..Q
  1. .Q
  1. Q
  1. RECDISP ;
  1. S APCDSV="" F S APCDSV=$O(^TMP($J,"APCDCAF OP",APCDSV)) Q:APCDSV="" D
  1. .S APCDV=0 F S APCDV=$O(^TMP($J,"APCDCAF OP",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 OP",$J,APCDRCNT,0)=APCDX
  1. ..S ^TMP("APCDCAF OP",$J,"IDX",APCDRCNT,APCDRCNT)=APCDV
  1. K APCDV,APCDX,APCDSV
  1. Q
  1. ;
  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^APCDCAF(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,15)
  1. S $E(APCDX,37)=$$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,44)=L
  1. S $E(APCDX,49)=$E($$VAL^XBDIQ1(9000010,APCDV,.22),1,9)
  1. S $E(APCDX,59)=$P(^AUPNVSIT(APCDV,0),U,7)
  1. S $E(APCDX,61)=$$CLINIC^APCLV(APCDV,"C")
  1. S $E(APCDX,64)=$E($$PRIMPROV^APCLV(APCDV,"N"),1,10)
  1. S L=$P($G(^AUPNVSIT(APCDV,11)),U,11)
  1. S $E(APCDX,75)=L
  1. S $E(APCDX,77)=APCDERR
  1. Q
  1. ;
  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" ;default to ien
  1. I '$D(^AUPNVCA("AD",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,6),1:$$VAL^XBDIQ1(9000010.45,X,.06))
  1. ;
  1. BACK ;EP - go back to listman
  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 OP",$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 OP",$J,"IDX",Y,Y)
  1. D VIEWR^XBLM("DCAH^APCDCAF")
  1. D EOP
  1. ;
  1. CASHXX ;
  1. K DIR,DIRUT,DUOUT,Y,APCDVSIT
  1. D BACK
  1. Q
  1. CDE ;EP
  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^APCDCAF G CDEX
  1. I $D(DIRUT) W !,"No VISIT selected." D EOP^APCDCAF G CDEX
  1. S APCDVSIT=^TMP("APCDCAF OP",$J,"IDX",Y,Y)
  1. K VALMBCK
  1. S APCDCAFV=APCDVSIT,APCDPAT=$P(^AUPNVSIT(APCDVSIT,0),U,5) D EN^APCDCAF6(APCDVSIT)
  1. ;
  1. CDEX ;
  1. K DIR,DIRUT,DUOUT,Y,APCDVSIT,APCDCAF,APCDCAFV
  1. ;
  1. D BACK
  1. Q
  1. ;
  1. HS ;
  1. D FULL^VALM1
  1. I $G(APCDDFN) S (DFN,APCHSPAT,APCDPAT,Y)=APCDDFN 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 OP",$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 - End of page.
  1. Q:$E(IOST)'="C"
  1. ;Q:$D(ZTQUEUED)!'(IOT="TRM")!$D(IO("S"))
  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. ADDVISIT ;
  1. S APCDCAF("IN CAF W/PATIENT")=APCDDFN
  1. D EN^XBNEW("^APCDEA","APCDCAF")
  1. K APCDCAF
  1. D BACK
  1. Q
  1. BH ;EP
  1. K DIR
  1. ;I $T(BROWS1^TIURA2)="" W !!,"TIU not installed" D EOP G NOTEX
  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 and display if it exists
  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
  1. VAV ;EP - view any visit when in OP
  1. ;
  1. Q
  1. CP ;EP - change patient if in one patient
  1. ;
  1. D FULL^VALM1
  1. I '$D(APCDPEHR) W !!,"This item is only allowed to be used when you are in the PEHR option." D PAUSE^APCDALV1,BACK^APCDCAF Q
  1. ;change patient
  1. W !
  1. S DIC="^AUPNPAT(",DIC(0)="AEMQ" D ^DIC K DIC
  1. I Y<0 D BACK^APCDCAF Q
  1. I $D(APCDPARM),$P(APCDPARM,U,3)="Y" W !?25,"Ok" S %=1 D YN^DICN Q:%'=1
  1. S (DFN,APCDPATF)=+Y
  1. PROC1 ; call listmanager
  1. S APCDCAFP=DFN,APCDBD=$P(^APCCCTRL(DUZ(2),0),U,12),APCDED=DT,APCDPEHR=1
  1. D BACK^APCDCAF
  1. Q
  1. DISP ;EP
  1. D FULL^VALM1
  1. D EN^XBNEW("DISP1^APCDCAF2","VALM*;APCDCAFP;APCDPEHR;DFN")
  1. ;
  1. ;
  1. DISPX ;
  1. K DIR,DIRUT,DUOUT,Y,APCDVSIT,APCDCAF,APCDCAFV
  1. D KILL^AUPNPAT
  1. D BACK
  1. Q
  1. DISP1 ;
  1. S APCDPAT=DFN
  1. D GETVISIT^APCDDISP
  1. I '$G(APCDVSIT) W !!,"No visit selected." D PAUSE^APCDALV1 Q
  1. D DSPLY^APCDDISP
  1. D PAUSE^APCDALV1
  1. Q