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

AMHLEIV3.m

Go to the documentation of this file.
  1. AMHLEIV3 ; IHS/CMI/LAB - treatment plan update ;
  1. ;;4.0;IHS BEHAVIORAL HEALTH;**1**;JUN 18, 2010;Build 8
  1. ;
  1. PRINT ;EP
  1. NEW DFN,AMHPAT,AMHDPT,Y,X,AMHBROW,AMHAO,AMHINTR
  1. I '$G(AMHRINTI) W !!,"ERROR - IEN OF INTAKE not defined!" Q
  1. S (DFN,AMHPAT)=$P(^AMHRINTK(AMHRINTI,0),U,2)
  1. D FULL^VALM1
  1. S AMHDPT=""
  1. S DIR(0)="S^I:Intake Document Only;U:Update Document Only;B:Both the Intake and Update Documents;Q:Quit/Exit",DIR("A")="What would you like to print",DIR("B")="I" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) Q
  1. I Y="Q" Q
  1. S AMHDPT=Y
  1. I AMHDPT="I" G DEVICE
  1. S AMHAO=""
  1. K AMHREVS,AMHREVP
  1. I AMHDPT="U",'$O(^AMHRINTK("AI",AMHRINTI,0)) W !!,"There are no updates on file to print." D PAUSE G PRINT
  1. I AMHDPT="B",'$O(^AMHRINTK("AI",AMHRINTI,0)) W !!,"There are no updates to print...printing intake only." G DEVICE
  1. ;display all updates and have user choose
  1. W !?4,"0) ",?10,"Quit/Exit (or type '^')"
  1. S (AMHX,AMHC)=0 F S AMHX=$O(^AMHRINTK("AI",AMHRINTI,AMHX)) Q:AMHX'=+AMHX D
  1. .S AMHC=AMHC+1,AMHREVS(AMHC)=AMHX
  1. .S AMHINTR=$P(^AMHRINTK(AMHX,0),U,3)
  1. .W !,?4,AMHC,") ",?10,"Date: ",$$D^AMHLEIV($$VALI^XBDIQ1(9002011.13,AMHX,.01))," Provider: ",$E($$VAL^XBDIQ1(9002011.13,AMHX,.04),1,15),?51,$E($$VAL^XBDIQ1(9002011.13,AMHX,.05),1,13),?65,$$VAL^XBDIQ1(9002011.13,AMHX,.09)
  1. S AMHC=AMHC+1 W !?4,AMHC,") ",?10,"ALL Updates"
  1. K DIR
  1. S DIR(0)="L^0:"_AMHC,DIR("A")="Which Updates would you like to Print",DIR("B")=AMHC KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) G PRINT
  1. I Y[0 G PRINT
  1. I Y[AMHC D K AMHREVS G DEVICE
  1. .F I=1:1:(AMHC-1) S AMHREVP(AMHREVS(I))=""
  1. S A=Y,C="" F I=1:1 S C=$P(A,",",I) Q:C="" S J=AMHREVS(C) S AMHREVP(J)=""
  1. K AMHREVS
  1. DEVICE ;print or browse
  1. W ! S DIR(0)="S^P:PRINT Output on Paper;B:BROWSE Output on Screen",DIR("A")="Do you wish to",DIR("B")="P" K DA D ^DIR K DIR
  1. I $D(DIRUT) D PAUSE,EXIT^AMHLEIV Q
  1. I $G(Y)="B" D BROWSE D EXIT^AMHLEIV Q
  1. D EN1
  1. D EXIT^AMHLEIV
  1. Q
  1. BROWSE ;
  1. S AMHBROW=1 D VIEWR^XBLM("PRINT1^AMHLEIV3","Display of Intake Document") K AMHBROW
  1. Q
  1. EN1 ;EP - called from protocol
  1. ;DFN must be equal to patient
  1. ;get device
  1. S XBRP="PRINT1^AMHLEIV3",XBRC="",XBRX="XIT^AMHLEIV3",XBNS="AMH;DFN"
  1. D ^XBDBQUE
  1. D EXIT^AMHLEIV
  1. Q
  1. XIT ;
  1. Q
  1. PAUSE ;EP
  1. S DIR(0)="EO",DIR("A")="Press enter to continue...." D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. Q
  1. GUI(AMHDPT,DFN,AMHRINTI,AMHREVP,AMHARRAY) ;EP - gui call
  1. I '$G(DFN) Q ""
  1. I '$G(AMHRINTI) Q ""
  1. NEW AMHGUI
  1. S AMHGUI=1
  1. D GUIR^XBLM("PRINT1^AMHLEIV3",AMHARRAY)
  1. Q
  1. PRINT1 ;EP - called from xbdbque
  1. ;NOW REORDER THE UPDATES WITH THE INTAKE BY LATEST FIRST
  1. S AMHIOSL=$S($G(AMHGUI):55,1:IOSL)
  1. K AMHREVD
  1. S X=0 F S X=$O(AMHREVP(X)) Q:X'=+X S AMHREVD((9999999-$P(^AMHRINTK(X,0),U)),X)=""
  1. I AMHDPT'="U" S AMHREVD((9999999-$P(^AMHRINTK(AMHRINTI,0),U)),AMHRINTI)=""
  1. ;I '$D(^AMHRINTK(AMHRINTI)) D HEAD W !!,"No INTAKE Document on file for ",$P(^DPT(DFN,0),U) Q
  1. NEW AMHQUIT,AMHPG,AMHX,AMHV,AMHPRNM,AMHPCNT,AMHFILE,AMHNOD,AMHRD,AMHRP
  1. S (AMHQUIT,AMHPG)=0
  1. S AMHRD=0 F S AMHRD=$O(AMHREVD(AMHRD)) Q:AMHRD'=+AMHRD!(AMHQUIT) D
  1. .S AMHRP=99999999999 F S AMHRP=$O(AMHREVD(AMHRD,AMHRP),-1) Q:AMHRP'=+AMHRP!(AMHQUIT) D PRINT2
  1. .Q
  1. Q
  1. PRINT2 ;
  1. NEW X,Y,I,AMHINTT,AMHINTR
  1. ;S AMHIOSL=$S($G(AMHGUI):55,1:IOSL)
  1. S AMHINTT=$P(^AMHRINTK(AMHRP,0),U,9)
  1. D HEAD
  1. S AMHINTR=$P(^AMHRINTK(AMHRP,0),U,3)
  1. W !?2,"Date "_$S(AMHINTT="I":"Established",1:"Updated")_": ",?22,$$VAL^XBDIQ1(9002011.13,AMHRP,.01)
  1. W !?2,"Provider: ",?22,$$VAL^XBDIQ1(9002011.13,AMHRP,.04)
  1. W !?2,"Program:",?22,$$VAL^XBDIQ1(9002011.13,AMHRP,.05)
  1. W !?2,"Type of Document:",?22,$$VAL^XBDIQ1(9002011.13,AMHRP,.09)
  1. W !!?2,"Intake Documentation/Narrative:",!
  1. K AMHPCNT,AMHPRNM S AMHPCNT=0,AMHNODE=41,AMHDA=AMHRP ;,AMHFILE=9002011.13 D WP^AMHLETP4
  1. S AMHX=0 F S AMHX=$O(^AMHRINTK(AMHDA,AMHNODE,AMHX)) Q:AMHX'=+AMHX S AMHPCNT=AMHPCNT+1,AMHPRNM(AMHPCNT)=^AMHRINTK(AMHDA,AMHNODE,AMHX,0)
  1. I $D(AMHPRNM) S X=0 F S X=$O(AMHPRNM(X)) Q:X'=+X!(AMHQUIT) D:$Y>(AMHIOSL-3) HEAD Q:AMHQUIT W $TR(AMHPRNM(X),$C(10)),! ;cmi/maw 1/13/10 pr593
  1. I $G(AMHBROW) G SIG
  1. I $Y>(AMHIOSL-8) D HEAD Q:AMHQUIT
  1. S X=AMHIOSL-$Y S X=X-8 F I=1:1:X W !
  1. I '$P(^AMHRINTK(AMHRP,0),U,11) D
  1. .W !,"________________________________________",?52,"__________________"
  1. .W !?60,"DATE"
  1. SIG I $P(^AMHRINTK(AMHRP,0),U,11) D
  1. .W !?2,"PROVIDER SIGNATURE: /es/ "_$P(^AMHRINTK(AMHRP,0),U,12)
  1. .I $P(^AMHRINTK(AMHRP,0),U,16)]"" W !?29,$P(^AMHRINTK(AMHRP,0),U,16)
  1. .W !?5,"Signed: "_$P($$FMTE^XLFDT($P(^AMHRINTK(AMHRP,0),U,11)),"@",1)_" "_$P($$FMTE^XLFDT($P(^AMHRINTK(AMHRP,0),U,11)),"@",2)
  1. W !!!,"________________________________________",?52,"__________________"
  1. W !?60,"DATE"
  1. Q
  1. I 'AMHPG G HEAD1
  1. NEW X
  1. I '$G(AMHBROW),$E(IOST)="C",IO=IO(0) W ! S DIR(0)="EO" D ^DIR K DIR I Y=0!(Y="^")!($D(DTOUT)) S AMHQUIT=1 Q
  1. HEAD1 ;EP
  1. I AMHPG W:$D(IOF) @IOF
  1. S AMHPG=AMHPG+1
  1. W:$G(AMHGUI) "ZZZZZZZ",!
  1. W !?13,"********** CONFIDENTIAL PATIENT INFORMATION **********"
  1. W !,$TR($J("",80)," ","*")
  1. W !,"*",?79,"*"
  1. W !,"* INTAKE DOCUMENT "_$S(AMHINTT="U":"UPDATE",1:""),?45,"Printed: ",$$FMTE^XLFDT($$NOW^XLFDT),?79,"*"
  1. W !,"* Name: ",$P(^DPT(DFN,0),U),?68,"Page ",AMHPG,?79,"*"
  1. W !,"* ",$E($P(^DIC(4,DUZ(2),0),U),1,25),?30,"DOB: ",$$FMTE^XLFDT($P(^DPT(DFN,0),U,3),"2D"),?46,"Sex: ",$P(^DPT(DFN,0),U,2),?54," Chart #: ",$P(^AUTTLOC(DUZ(2),0),U,7),$P($G(^AUPNPAT(DFN,41,DUZ(2),0)),U,2),?79,"*"
  1. W !,"*",?79,"*"
  1. W !,$TR($J("",80)," ","*"),!
  1. Q
  1. CTR(X,Y) ;EP - Center X in a field Y wide.
  1. Q $J("",$S($D(Y):Y,1:IOM)-$L(X)\2)_X
  1. ;----------