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

PXBPPOV.m

Go to the documentation of this file.
  1. PXBPPOV ;ISL/JVS - PROMPT POV ; 5/1/01 2:58pm
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;**11,28,92**;Aug 12, 1996
  1. ;
  1. ; VARIABLE LIST
  1. ; SELINE= Line number of selected item
  1. ;
  1. POV ;--DIAGNOSIS
  1. I $D(PXBNPOVL) D LOC^PXBCC(2,0) W IOUON,"Previous Entry: ",$G(PXBNPOVL(1)) F I=1:1:10 W " "
  1. W IOUOFF
  1. N TIMED,EDATA,DIC,LINE,XFLAG,SELINE,PXBEDIS,FPL
  1. I '$D(^DISV(DUZ,"PXBPOV-3")) S ^DISV(DUZ,"PXBPOV-3")=" "
  1. I '$D(IOSC) D TERM^PXBCC
  1. S DOUBLEQQ=0
  1. S TIMED="I '$T!(DATA=""^"")"
  1. S DIC("S")="I $P($G(^ICD9(Y,0)),""^"",9)'=1!($P(^(0),""^"",11)'=""""&(IDATE<($P(^(0),""^"",11))))"
  1. P ;--Second Entry point
  1. W IOSC K FPL
  1. ;---DYNAMIC HEADER---
  1. I '$D(CYCL) D
  1. .I PXBCNT=0,DOUBLEQQ=0 D LOC^PXBCC(1,10) W "...There are "_$G(PXBCNT)_" ICD CODES associated with this encounter."
  1. .I PXBCNT=1,DOUBLEQQ=0 D LOC^PXBCC(1,10) W "...There is "_$G(PXBCNT)_" ICD CODE associated with this encounter."
  1. .I PXBCNT>1,DOUBLEQQ=0 D LOC^PXBCC(1,10) W "...There are "_$G(PXBCNT)_" ICD CODES associated with this encounter."
  1. ;
  1. D LOC^PXBCC(15,0)
  1. I PXBCNT>10&('$G(DOUBLEQQ)) W !,"Enter '+' for next page, '-' for previous page."
  1. I '$D(^TMP("PXK",$J,"POV")) W !,"Enter Diagnosis : "_$G(PXBDPOV) W:$D(PXBDPOV) " //" W IOELEOL
  1. I $D(^TMP("PXK",$J,"POV")) W !,"Enter ",IOINHI,"NEXT",IOINLOW," Diagnosis : "_$G(PXBDPOV) W:$D(PXBDPOV) " //" W IOELEOL
  1. R DATA:DTIME S EDATA=DATA
  1. P1 ;--Third entry point
  1. X TIMED I S PXBUT=1,LEAVE=1,DATA="^" G POVX
  1. I DATA?1.N1"E".NAP S DATA=" "_DATA
  1. I DATA?24.N S (DATA,EDATA)=$E(DATA,1,24)
  1. I $L(DATA)>200 S (DATA,EDATA)=$E(DATA,1,199)
  1. D CASE^PXBUTL
  1. ;----SPACE BAR---
  1. I DATA=" ",$D(^DISV(DUZ,"PXBPOV-3")) S DATA=^DISV(DUZ,"PXBPOV-3") W DATA
  1. ;-----------------
  1. I DATA="^^" S PXBEXIT=0 G POVX
  1. ;---I Prompt can jump to others put symbols in here
  1. I DATA["^P" G POVX
  1. ;------PXBDPOV=DEFAULT POV---
  1. I DATA="",$D(PXBDPOV) S DATA=$P($G(PXBDPOV),"--",1)
  1. I DATA="",'$D(PXBDPOV) S PXBUT=1,PXBSPL="",LEAVE=1 G POVX
  1. ;
  1. I PXBCNT>10&((DATA="+")!(DATA="-")) D DPOV4^PXBDPOV(DATA) G P
  1. ;
  1. M ;--------IF Multiple entries have been entered
  1. D ADDM^PXBPPOV1
  1. I $G(NF) G P1
  1. ;
  1. ;--------IF Multiple deleting of entries
  1. D DELM^PXBPPOV1
  1. I $G(NF) G P1
  1. ;
  1. LI ;--------If picked a line number
  1. I (DATA>0)&(DATA<(PXBCNT+1))&($L(DATA)'>$L(PXBCNT)) S XFLAG=1 D REVPOV^PXBCC(DATA) S SELINE=DATA D
  1. .F I=1:1:$L(DATA) W IOCUB,IOECH
  1. .S PRISEC=$P($G(PXBSAM(DATA)),"^",4) S:PRISEC["PRI" FPRI=0
  1. .S DATA=$P($G(PXBSAM(DATA)),"^",1)
  1. I $D(XFLAG),XFLAG=1 S (Y,EDATA)=DATA G PFIN
  1. LI1 ;
  1. ;--------If POV is already in the file
  1. I '$G(DOUBLEQQ),$D(PXBKY(DATA)) D
  1. .I PXBCNT>10 D DPOV4^PXBDPOV($O(PXBKY(DATA,0)))
  1. .K Q D TIMES^PXBUTL(DATA)
  1. .I Q=1 S LINE=$O(PXBKY(DATA,0)) S XFLAG=1 D REVPOV^PXBCC(LINE) S PRISEC=$P($G(PXBSAM(LINE)),"^",2) S:PRISEC["PRI" FPRI=0
  1. .I Q>1 S NLINE=0 F S NLINE=$O(Q(NLINE)) Q:NLINE="" D REVPOV^PXBCC(NLINE)
  1. I $D(Q),Q>1 D WHICH^PXBPWCH G LI
  1. I $D(XFLAG),XFLAG=1 S Y=DATA G PFIN
  1. ;
  1. ;--------Need to do a DIC lookup on data
  1. I DATA'="??" D:DATA="?" EN1^PXBHLP0("PXB","POV",1,"",1) G:DATA="^P" P1 I DATA="?" G P
  1. I DATA="??" S DOUBLEQQ=1 D EN1^PXBHLP0("PXB","POV","",1,2) S:$L(DATA,"^")>1 (Y,DATA,EDATA)=$P($P(DATA,"^",2),"--",1) G:Y>1 PFIN G:Y?1A1.NP PFIN I DATA<1 S DATA="^P" G P1
  1. ;
  1. ;--If a "?" is NOT entered during lookup
  1. S (VAL,Y)=$$DOUBLE1^PXBGPOV2(WHAT) I Y<1 S DATA="^P" G P1
  1. ;<-*92*-< S (X,DATA,EDATA)=$P(VAL,"^",2),DIC=80,DIC(0)="MZ" D ^DIC
  1. S (DATA,EDATA)=$P(VAL,"^",2),X="`"_+$P(Y,"^",1) K Y S DIC=80,DIC(0)="MZ" D ^DIC ;** PX*1.0*92 05/01/2001 make ^DIC selection "exact."
  1. ;
  1. ;--If Y is good and already in file...
  1. I '$G(DOUBLEQQ),$D(Y),$D(PXBKY($P(Y,"^",2))) D
  1. .S LINE=$O(PXBKY($P(Y,"^",2),0)) ;---D REVPOV^PXBCC(LINE)
  1. .S PRISEC=$P($G(PXBSAM(LINE)),"^",4) S:PRISEC["PRI" FPRI=0
  1. S POV=Y(0)
  1. ;
  1. PFIN ;--Finish the DIAGNOSIS
  1. I $L(Y,"^")'>1 S X=Y,DIC=80,DIC(0)="IZM" D ^DIC
  1. I +Y<0 D HELP1^PXBUTL1("POV") G P
  1. S POV=Y(0)
  1. S PXBNPOV($P(POV,"^",1))=""
  1. S PXBNPOVL(1)=$P(POV,"^",1) S ^DISV(DUZ,"PXBPOV-3")=DATA
  1. I $D(PXBKY($P(Y(0),"^"))),$G(SELINE) S $P(REQI,"^",9)=$O(PXBSKY(SELINE,0))
  1. I $D(PXBKY($P(Y(0),"^"))),'$G(SELINE) S $P(REQI,"^",9)=$O(PXBSKY($O(PXBKY($P(Y(0),"^"),0)),0))
  1. I +Y>0 S PXBEDIS=$$EXTTEXT^PXUTL1(+Y,1,80,3)
  1. S $P(REQI,"^",5)=+Y,$P(REQI,"^",6)="S"
  1. S $P(REQE,"^",5)=$P(POV,"^",1)_" --"_$G(PXBEDIS),$P(REQE,"^",6)="SECONDARY"
  1. POVX ;--EXIT AND CLEAN UP
  1. I $G(WHAT)="INTV",DATA="^" S PXBEXIT="^^"
  1. I '$D(REQE) S REQE=""
  1. I $P(REQE,"^",5)="" S $P(REQE,"^",5)="...No Diagnosis Selected..."
  1. Q