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

PXBPSTP1.m

Go to the documentation of this file.
  1. PXBPSTP1 ;ISL/JVS - STOP CODE,ACTIVE,MULTIPLE ADD/DELETE ;7/24/96 08:24
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;;Aug 12, 1996
  1. ;
  1. ;
  1. ;
  1. ACTIVE(REQI,REQE) ;---Check to see if stop code is active on visit date
  1. N STOPI,STOPE,VISIT,DR,DA,INACTIVE,OK
  1. S NOT=0
  1. S STOPI=$P(REQI,"^",10) ;--STOP CODE IEN IN STOP CODE FILE
  1. S STOPE=$P(REQE,"^",10) ;--STOP CODE EXTERNAL VALUE
  1. S VISIT=$P(IDATE,".",1) ;--VISIT DATE INTERNAL FORM
  1. S DIC=40.7,DR=2,DA=STOPI,DIQ="INACTIVE",DIQ(0)="IN" D EN^DIQ1
  1. I $D(INACTIVE),$G(INACTIVE(40.7,2,"I"))<VISIT S NOT=1
  1. I $G(NOT) W !,IOEDEOP,IORVON,"--INACTIVE!-",STOPE," was INACTIVE on the date of this ENCOUNTER.",IORVOFF
  1. Q NOT
  1. ADDM ;--------If Multiple STOP CODE entries have been entered.
  1. ;
  1. N OK,PXBLEN,BAD,BDATA
  1. S NF=0,PXBLEN=0
  1. I DATA'["," Q
  1. I $P(DATA,",",1)'>0,$P(DATA,",",1)'<(PXBCNT+(1)) Q
  1. I DATA[",",$E(DATA,1)'["@" S NF=1 D WAIT^DICD D
  1. .S PXBLEN=$L(DATA,",") F PXI=1:1:PXBLEN S PXBPIECE=$P(DATA,",",PXI) D
  1. ..S X=PXBPIECE,DIC=40.7,DIC(0)="IMZ" D ^DIC
  1. ..I Y=-1 S BAD(+$G(PXBPIECE))="" Q
  1. ..S $P(REQI,"^",10)=+Y
  1. ..S PXBNSTP(PXBPIECE)=""
  1. ..S PXBNSTP($P(Y,"^",2))=""
  1. ..D STP^PXBSTOR1
  1. ..D RSET^PXBDREQ("STP")
  1. I $G(NF)&($D(BAD)) D Q
  1. .S (BDATA,EDATA)="" F S BDATA=$O(BAD(BDATA)) Q:BDATA="" S EDATA=EDATA_BDATA_" "
  1. .W ! D HELP^PXBUTL0("CPTM") W !
  1. .S DIR(0)="E" D ^DIR K DIR,DIRUT
  1. .S:Y=1 DATA="^S" S:Y=0!(Y="") DATA="^" K Y
  1. I $G(NF)&('$D(BAD)) S DATA="^S" Q
  1. ;
  1. Q
  1. ;
  1. DELM ;--------If Multiple deleting
  1. I DATA'["@" Q
  1. N DELM,PXBJ,BAD,PXBLEN,BDATA
  1. S NF=0,PXBLEN=0 S $P(DELM,"^",3)=1
  1. I $E(DATA,1)="@" S DATA=$P(DATA,"@",2),NF=1 D WAIT^DICD D
  1. .S PXBLEN=$L(DATA,",") F PXI=1:1:PXBLEN S PXBPIECE=$P(DATA,",",PXI) D
  1. ..I PXBPIECE'["-"&(PXBPIECE'>0!(PXBPIECE'<(PXBCNT+1))) S BAD(+$G(PXBPIECE))="" Q
  1. ..I PXBPIECE'["-" D
  1. ...I $D(GONE(PXBPIECE)) Q
  1. ...Q:PXBPIECE'?.N
  1. ...;S $P(REQI,"^",9)=$O(PXBSKY(PXBPIECE,0)) ;-IEN
  1. ...S $P(REQI,"^",10)="@"
  1. ...S $P(REQI,"^",11)=$O(PXBSKY(PXBPIECE,0))
  1. ...S GONE(PXBPIECE)=""
  1. ...D STP^PXBSTOR1
  1. ..I PXBPIECE["-" D
  1. ...I DATA'?.N1"-".N S BAD(PXBPIECE)="" Q
  1. ...F PXBJ=$P(PXBPIECE,"-",1):1:$P(PXBPIECE,"-",2) D
  1. ....I $D(GONE(PXBJ)) Q
  1. ....I PXBJ'>0!(PXBJ'<(PXBCNT+1)) S BAD(PXBJ)="" Q
  1. ....S $P(REQI,"^",10)="@"
  1. ....S $P(REQI,"^",11)=$O(PXBSKY(PXBJ,0))
  1. ....S GONE(PXBJ)=""
  1. ....D STP^PXBSTOR1
  1. K GONE
  1. I $G(NF)&($D(BAD)) D Q
  1. .S (BDATA,EDATA)="" F S BDATA=$O(BAD(BDATA)) Q:BDATA="" S EDATA=EDATA_BDATA_" "
  1. .W ! D HELP^PXBUTL0("CPTMD") W !
  1. .S DIR(0)="E" D ^DIR K DIR
  1. .S:Y=1 DATA="^S" S:Y=0!(Y="") DATA="^" K Y
  1. I $G(NF)&('$D(BAD)) S DATA="^S" Q
  1. Q
  1. ;
  1. PROMPT(PXBCNT) ;--DETERMINE WHERE PROMPT SHOULD START
  1. ;
  1. N START,DIFF
  1. S START=$G(^TMP("PXBDSTP",$J,"START"))
  1. S DIFF=PXBCNT-START
  1. I DIFF<10 S LINE=DIFF+5
  1. I DIFF>9 S LINE=15
  1. Q LINE
  1. ;