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

PXBPPOV1.m

Go to the documentation of this file.
PXBPPOV1 ;ISL/JVS,ESW - PROMPT POV ;4/6/05 2:41pm
 ;;1.0;PCE PATIENT CARE ENCOUNTER;**11,112,121,124,199**;Aug 12, 1996;Build 51
 ;
 ;
 ;
 ;
 ;
ADDM ;--------If Multiple POV entries have been entered.
 ;
 ;
 ;
 N BDATA,OK,PXBLEN,PXDXDATE
 S PXDXDATE=$$CSDATE^PXDXUTL(PXBVST)
 D WIN17^PXBCC(PXBCNT)
 S NF=0,PXBLEN=0
 I DATA[",",$E(DATA,1)'["@" S NF=1 D
 .S PXBLEN=$L(DATA,",") F PXI=1:1:PXBLEN S PXBPIECE=$P(DATA,",",PXI) D
 ..S Y=$$ICDDATA^ICDXCODE("DIAG",PXBPIECE,PXDXDATE,"E")
 ..I $P(Y,U)=-1!($P(Y,U,10)'=1) S BAD($G(PXBPIECE))="" Q
 ..S $P(REQI,"^",5)=+Y
 ..S PXBNPOV(PXBPIECE)=""
 ..;
 ..;--Prompt for Primary or Secondary DIAGNOSIS
 ..; ICD-10 Remediation note:  the next two lines display code--code (ex. 369.65--369.65)
 ..; we think this is wrong but do not have specs to fix it.
 ..W !,"For the DIAGNOSIS: ",PXBPIECE,"--"
 ..W $P(Y,U,2),!
 ..D WIN17^PXBCC(PXBCNT)
 ..D PRI^PXBPPOV1
 ..I $D(DIRUT) D RSET^PXBDREQ("POV") Q
 ..D ORD^PXBPPOV1
 ..N PXCEVIEN,PXCEAFTR,PXD
 ..S PXCEVIEN=PXBVST,PXD=$P(REQI,U,5)
 ..D WIN17^PXBCC(PXBCNT),GET800^PXCEC800 ;CI's
 ..S PXBREQ(PXD,"I")=$G(PXCEAFTR(800))
 ..;
 ..D EN0^PXBSTOR(PXBVST,PATIENT,REQI)
 ..D EN1^PXKMAIN
 ..D RSET^PXBDREQ("POV")
 I $G(NF)&($D(BAD)) D  Q
 .S (BDATA,EDATA)="" F  S BDATA=$O(BAD(BDATA)) Q:BDATA=""  S EDATA=EDATA_BDATA_"  "
 .W ! D HELP^PXBUTL0("CPTM") W !
 .S DIR(0)="E" D ^DIR K DIR,DIRUT
 .S:Y=1 DATA="^P" S:Y=0!(Y="") DATA="^" K Y
 I $G(NF)&('$D(BAD)) S DATA="^P" Q
 ;
 Q
 ;
DELM ;--------If Multiple deleting
 N BAD,BDATA,DELM,PXBJ,PXBLEN
 S NF=0,PXBLEN=0 S $P(DELM,"^",3)=1
 I $E(DATA,1)="@" S DATA=$P(DATA,"@",2),NF=1 D
 .S PXBLEN=$L(DATA,",") F PXI=1:1:PXBLEN S PXBPIECE=$P(DATA,",",PXI) D
 ..I PXBPIECE'["-"&(PXBPIECE'>0!(PXBPIECE'<(PXBCNT+1))) S BAD(+$G(PXBPIECE))="" Q
 ..I PXBPIECE'["-" D
 ...I $D(GONE(PXBPIECE)) Q
 ...Q:PXBPIECE'?.N
 ...S $P(REQI,"^",9)=$O(PXBSKY(PXBPIECE,0)) ;-IEN
 ...S X=$P(PXBSAM(PXBPIECE),U,1),Y=$$ICDDATA^ICDXCODE("DIAG",X,PXDXDATE,"E")
 ...I $P(Y,U)'=-1&($P(Y,U,10)=1) D
 ....S $P(REQI,"^",5)=+Y K Y
 ....S GONE(PXBPIECE)=""
 ....D EN0^PXBSTOR(PXBVST,PATIENT,REQI)
 ....D EN1^PXKMAIN
 ..I PXBPIECE["-" D
 ...F PXBJ=$P(PXBPIECE,"-",1):1:$P(PXBPIECE,"-",2) D
 ....I $D(GONE(PXBJ)) Q
 ....I PXBJ'>0!(PXBJ'<(PXBCNT+1)) S BAD(PXBJ)="" Q
 ....S $P(REQI,"^",9)=$O(PXBSKY(PXBJ,0)) ;-IEN
 ....S X=$P(PXBSAM(PXBJ),U,1),Y=$$ICDDATA^ICDXCODE("DIAG",X,PXDXDATE,"E")
 ....I $P(Y,U)'=-1&($P(Y,U,10)=1) D
 .....S $P(REQI,"^",5)=+Y K Y
 .....S GONE(PXBJ)=""
 .....D EN0^PXBSTOR(PXBVST,PATIENT,REQI)
 .....D EN1^PXKMAIN
 K GONE
 I $G(NF)&($D(BAD)) D  Q
 .S (BDATA,EDATA)="" F  S BDATA=$O(BAD(BDATA)) Q:BDATA=""  S EDATA=EDATA_BDATA_"  "
 .W ! D HELP^PXBUTL0("CPTMD") W !
 .S DIR(0)="E" D ^DIR K DIR
 .S:Y=1 DATA="^P" S:Y=0!(Y="") DATA="^" K Y
 I $G(NF)&('$D(BAD)) S DATA="^P" Q
 Q
PRI ;--Prompt for primary secondary DIAGNOSIS
 N DIR,Y,X,SEQ
 S SEQ=0 I $D(PXBKY(DATA)) S SEQ=+$O(PXBKY(DATA,"")) ;PX112
 I $G(FPRI),$P($G(PXBKY(DATA,SEQ)),U,4)'="PRIMARY" Q  ;PX112
 W IOCUD,IOELALL,IOCUU
 S DIR("A",1)="ONE primary diagnosis must be established for each encounter!"
 S DIR("A")="Is this the PRIMARY DIAGNOSIS for this ENCOUNTER? "
 S DIR("B")="YES"
 S DIR("?")="One PRIMARY DIAGNOSIS must be established for each patient encounter. 'Yes' will mean PRIMARY and 'No' will mean SECONDARY."
 S DIR(0)="Y,A,O"
 D ^DIR I $G(DIRUT) G PPXIT
PPFIN ;--Finish off variables
 I Y=1 S PRI="P^PRIMARY"
 I Y=0 S PRI="S^SECONDARY"
 S $P(REQI,"^",6)=$P(PRI,"^",1)
 S $P(REQE,"^",6)=$P(PRI,"^",2)
PPXIT ;--EXIT
 Q
ORD ;--Prompt for ordering resulting DIAGNOSIS
 N DIR,Y,X,SEQ
 S SEQ=0 I $D(PXBKY(DATA)) S SEQ=+$O(PXBKY(DATA,""))
 W IOCUD,IOELALL,IOCUU
 S DIR("A")="Is this Diagnosis Ordering or Resulting:"
 S DIR("B")=$P($G(PXBKY(DATA,SEQ)),U,7)
 S DIR("?")="Resulting and/or Ordering indicators are only entered if at least one of each diagnosis type exists."
 S DIR(0)="SO^O:ORDERING;R:RESULTING;OR:BOTH O&R"
 D ^DIR I $G(DIRUT) G PPXIT
ORFIN ;--Finish off variables
 S $P(REQI,"^",7)=Y
 S $P(REQE,"^",7)=$S(Y="O":"ORDERING",Y="R":"RESULTING",1:"BOTH O&R")
 Q
PRBLM ;--Prompt for Problem list
 N DIR,Y,X,VALL
 W IOCUD,IOELALL,IOCUU
 D WIN17^PXBCC(PXBCNT)
 S DIR("?")="^S VALL=1,VALL=$$DOUBLE1^PXBGPL2(WHAT)"
 S DIR("A")="Do you want this DIAGNOSIS added to the PROBLEM LIST? "
 S DIR("B")="NO"
 S DIR(0)="Y,A,O"
 D ^DIR
 I X="+"!(X="-") S DIR("?")="D DPOV4^PXBDPL(X)"
 I $G(DIRUT) G PPXIT
PRPFIN ;--Finish off variables
 K PXBKYPL,PXBSKYPL,PXBSAMPL,PXBCNTPL
 K ^TMP("PXBKYPL",$J),^TMP("PXBSAMPL",$J)
 S PXBPRBLM=+Y
PRPXIT ;--EXIT
 Q
 ;