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

BCHVDO.m

Go to the documentation of this file.
  1. BCHVDO ; IHS/CMI/LAB - BROWSE VISITS ;
  1. ;;2.0;IHS RPMS CHR SYSTEM;;OCT 23, 2012;Build 27
  1. ;
  1. ;
  1. START ;
  1. NEW BCHX,BCHY,BCHR0,DFN,AUPNPAT,AUPNDOB,AUPNDOD,AUPNDAYS,AUPNSEX,BCHV,BCHBD,BCHED
  1. NEW D,R
  1. K BCHV
  1. W:$D(IOF) @IOF
  1. W $$CTR^BCHRLU("List One Patient's Visits",80)
  1. PAT ;
  1. D GETPAT^BCHULV
  1. I 'BCHPAT,'BCHNRPAT D XIT Q
  1. WHICH ;
  1. S BCHQUIT=0
  1. S BCHW=""
  1. S DIR(0)="S^L:Patient's Last Visit;N:Patient's Last N Visits;D:Visits in a Date Range;A:All of this Patient's Visits"
  1. S DIR("A")="Browse which subset of visits for "_$S(BCHPAT:$P(^DPT(BCHPAT,0),U,1),1:$P(^BCHRPAT(BCHNRPAT,0),U,1)),DIR("B")="N" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) Q
  1. S BCHW=Y
  1. D @BCHW Q:BCHQUIT
  1. ZIS ;call to XBDBQUE
  1. S XBRP="PRINT^BCHVDO",XBRC="",XBRX="XIT^BCHVDO",XBNS="BCH"
  1. D ^XBDBQUE
  1. D XIT
  1. Q
  1. PRINT ;
  1. S BCHPG=0
  1. K BCHQUIT
  1. I '$D(BCHV) D HEADER W !!,"Patient had no CHR visits in the time period." D XIT Q
  1. D HEADER
  1. S BCHD=0 F S BCHD=$O(BCHV(BCHD)) Q:BCHD=""!($D(BCHQUIT)) D
  1. .S BCHR=0 F S BCHR=$O(BCHV(BCHD,BCHR)) Q:BCHR=""!($D(BCHQUIT)) D
  1. ..S BCHR0=^BCHR(BCHR,0)
  1. ..D PRINT1
  1. ..Q
  1. .Q
  1. Q
  1. PRINT1 ;
  1. I $Y>(IOSL-3) D HEADER Q:$D(BCHQUIT)
  1. W !,$E($P(BCHR0,U),4,5),"/",$E($P(BCHR0,U),6,7),"/",(1700+($E($P(BCHR0,U),1,3)))
  1. W ?11,$E($$PPNAME^BCHUTIL(BCHR),1,20)
  1. S BCHACTL=$P(BCHR0,U,6) I BCHACTL]"" S BCHACTL=$E($P(^BCHTACTL(BCHACTL,0),U),1,10)
  1. S BCHSFAC=$P(BCHR0,U,5) I BCHSFAC]"" S BCHSFAC=$E($P(^AUTTLOC(BCHSFAC,0),U,2),1,10)
  1. I BCHSFAC="" S BCHSFAC=BCHACTL
  1. W ?32,BCHSFAC
  1. I '$D(^BCHRPROB("AD",BCHR)) W ?45," --"
  1. E S BCHP=0,BCHC=0 F S BCHP=$O(^BCHRPROB("AD",BCHR,BCHP)) Q:BCHP'=+BCHP S BCHPREC=^BCHRPROB(BCHP,0) D GETPROB W:BCHC ! W ?45,BCHX S BCHC=BCHC+1
  1. Q
  1. GETPROB ;
  1. S BCHX=""
  1. S X=$P(^BCHTPROB($P(BCHPREC,U),0),U,2)_" "
  1. S X=X_$S($P(BCHPREC,U,4)]"":$P(^BCHTSERV($P(BCHPREC,U,4),0),U,3),1:" ")_" "
  1. S X=X_$J($P(BCHPREC,U,5),3)_" "
  1. S N=$P(BCHPREC,U,6) I N,$D(^AUTNPOV(N,0)) S N=$P(^AUTNPOV(N,0),U)
  1. S X=X_$S(N]"":$E(N,1,25),1:" ")
  1. S BCHX=BCHX_X
  1. Q
  1. I 'BCHPG G HEADER1
  1. I $E(IOST)="C",IO=IO(0) W ! S DIR(0)="EO" D ^DIR K DIR I Y=0!(Y="^")!($D(DTOUT)) S BCHQUIT="" Q
  1. HEADER1 ;
  1. W:$D(IOF) @IOF S BCHPG=BCHPG+1
  1. S X="********** CONFIDENTIAL PATIENT INFORMATION **********" W !,$$CTR^BCHRLU(X,80),!
  1. W ?(80-$L($P(^DIC(4,DUZ(2),0),U))/2),$P(^DIC(4,DUZ(2),0),U),?($S(80=132:120,1:72)),"Page ",BCHPG
  1. S BCHTEXT="VISITS by CHR's"
  1. W !?(80-$L(BCHTEXT)/2),BCHTEXT
  1. I BCHPAT D
  1. .S X="Patient Name: "_$P(^DPT(BCHPAT,0),U,1)
  1. .W !!,$$CTR^BCHRLU(X,80)
  1. .S X="Health Record Number: "_$$HRN^AUPNPAT(BCHPAT,DUZ(2))
  1. .W !,$$CTR^BCHRLU(X,80)
  1. .S X="DOB: "_$$FMTE^XLFDT($$DOB^AUPNPAT(BCHPAT))
  1. .W !,$$CTR^BCHRLU(X,80)
  1. ;S BCHTEXT="Visit Dates: "_$$FMTE^XLFDT(BCHBD)_" and "_$$FMTE^XLFDT(BCHED)
  1. ;W !!,$$CTR^BCHRUL(X,80)
  1. I BCHNRPAT D
  1. .S X="Patient Name: "_$P(^BCHRPAT(BCHNRPAT,0),U,1)
  1. .W !!,$$CTR^BCHRLU(X,80)
  1. .S X="CHR ID: "_$P(^BCHRPAT(BCHNRPAT,0),U,9)
  1. .W !,$$CTR^BCHRLU(X,80)
  1. .S X="DOB: "_$$VAL^XBDIQ1(90002.11,BCHNRPAT,.02)
  1. .W !,$$CTR^BCHRLU(X,80)
  1. W !,$TR($J(" ",80)," ","=")
  1. W !," DATE",?11,"CHR",?32,"LOCATION",?45,"ASSESSMENTS - POVS"
  1. W !,$TR($J(" ",80)," ","-")
  1. Q
  1. ;
  1. L ;get patients last visit
  1. ;BCHV array
  1. I BCHPAT S X="AE",P=BCHPAT
  1. I BCHNRPAT S X="ANRE",P=BCHNRPAT
  1. I '$D(^BCHR(X,P)) W !!,"No visits on file for this patient.",! S BCHQUIT=1 Q
  1. S D=$O(^BCHR(X,P,"")),R=$O(^BCHR("AE",P,D,""))
  1. I R S BCHV(D,R)=""
  1. Q
  1. N ;patients last N visits
  1. S N=""
  1. S DIR(0)="N^1:99:0",DIR("A")="How many visits should be displayed",DIR("B")="5" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) S BCHQUIT=1 Q
  1. S N=Y
  1. I BCHPAT S X="AE",P=BCHPAT
  1. I BCHNRPAT S X="ANRE",P=BCHNRPAT
  1. S (C,D)=0 F S D=$O(^BCHR(X,P,D)) Q:D'=+D!(C=N) S V=0 F S V=$O(^BCHR(X,P,D,V)) Q:V'=+V!(C=N) S C=C+1,BCHV(D,V)=""
  1. Q
  1. A ;all visits
  1. S D=0,V=0
  1. I BCHPAT S X="AE",P=BCHPAT
  1. I BCHNRPAT S X="ANRE",P=BCHNRPAT
  1. F S D=$O(^BCHR(X,P,D)) Q:D'=+D S V=0 F S V=$O(^BCHR(X,P,D,V)) Q:V'=+V S BCHV(D,V)=""
  1. Q
  1. D ;date range
  1. K BCHED,BCHBD
  1. K DIR W ! S DIR(0)="DO^::EXP",DIR("A")="Enter Beginning Date of Visit"
  1. D ^DIR S:Y<1 BCHQUIT=1 Q:Y<1 S BCHBD=Y
  1. K DIR S DIR(0)="DO^::EXP",DIR("A")="Enter Ending Date of Visit"
  1. D ^DIR S:Y<1 BCHQUIT=1 Q:Y<1 S BCHED=Y
  1. ;
  1. I BCHED<BCHBD D G D
  1. . W !!,$C(7),"Sorry, Ending Date MUST not be earlier than Beginning Date."
  1. I BCHPAT S X="AE",P=BCHPAT
  1. I BCHNRPAT S X="ANRE",P=BCHNRPAT
  1. S E=9999999-BCHBD,D=9999999-BCHED-1_".99" F S D=$O(^BCHR(X,P,D)) Q:D'=+D!($P(D,".")>E) S V=0 F S V=$O(^BCHR(X,P,D,V)) Q:V'=+V S BCHV(D,V)=""
  1. Q
  1. XIT ;
  1. D EN^XBVK("BCH")
  1. D KILL^AUPNPAT
  1. D ^XBFMK
  1. Q