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

PXBUTL.m

Go to the documentation of this file.
  1. PXBUTL ;ISL/JVS,ESW - UTILITIES FOR PROMPTS ; 10/31/02 12:13pm
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;**32,108**;Aug 12, 1996
  1. ;
  1. ;
  1. ;
  1. WAIT ;--SPINNING CURSOR
  1. I PXBMOD=20 W IOCUB,"\"
  1. I PXBMOD=40 W IOCUB,"|"
  1. I PXBMOD=60 W IOCUB,"/"
  1. I PXBMOD=80 W IOCUB,"-"
  1. Q
  1. CASE ;--CHANGE LOWER CASE TO UPPER CASE
  1. I $D(DATA) S DATA=$TR(DATA,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. I $D(EDATA) S EDATA=$TR(EDATA,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. I $D(NARR) S NARR=$TR(NARR,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. Q
  1. PRIM ;--PRIMARY PROVIDER
  1. N PXBSKY,PXBKY,PXBSAM,PXBCNT,PRVDR,FPRI
  1. D PRV^PXBGPRV(PXBVST,.PXBSKY,.PXBKY,.PXBSAM,.PXBCNT,.PRVDR,.FPRI)
  1. I $D(PRVDR) Q
  1. I '$D(PXBSKY) Q
  1. ;
  1. D RSET^PXBDREQ("PRV")
  1. S $P(REQI,"^",7)=$O(PXBSKY(1,0))
  1. S $P(REQI,"^",2)="P"
  1. S $P(REQI,"^",1)=$P(^AUPNVPRV($O(PXBSKY(1,0)),0),"^",1)
  1. ;
  1. D EN0^PXBSTOR(PXBVST,PATIENT,REQI)
  1. D EN1^PXKMAIN
  1. Q
  1. PRIMD ;--PRIMARY DIAGNOSIS
  1. D POV^PXBGPOV(PXBVST)
  1. I $D(PXDIGNS) Q
  1. I '$D(PXBSKY) Q
  1. ;
  1. D RSET^PXBDREQ("POV")
  1. S $P(REQI,"^",9)=$O(PXBSKY(1,0))
  1. S $P(REQI,"^",6)="P"
  1. S $P(REQI,"^",5)=$P(^AUPNVPOV($O(PXBSKY(1,0)),0),"^",1)
  1. ;
  1. D EN0^PXBSTOR(PXBVST,PATIENT,REQI)
  1. D EN1^PXKMAIN
  1. Q
  1. ;
  1. ;
  1. HDR(PXBVST,NO,PXBIOF) ;--Header for each screen PATIENT and DATE/TIME of Visit
  1. N DATE,DIC,DIQ,DATE,DA,DR
  1. N CLINICE
  1. I '$D(IORVON) D TERM^PXBCC
  1. S DIC=9000010,DR=".01;.05;.22",DA=PXBVST,DIQ="AMANDA(",DIQ(0)="EI" D EN^DIQ1
  1. S PATIENT=$G(AMANDA(9000010,PXBVST,.05,"I"))
  1. S NAME=$G(AMANDA(9000010,PXBVST,.05,"E"))
  1. S DATE=$G(AMANDA(9000010,PXBVST,.01,"E"))
  1. S IDATE=$G(AMANDA(9000010,PXBVST,.01,"I"))
  1. S CLINIC=$G(AMANDA(9000010,PXBVST,.22,"I"))
  1. S CLINICE=$G(AMANDA(9000010,PXBVST,.22,"E"))
  1. I $L(CLINICE)>20 S CLINICE=$E(CLINICE,1,20)
  1. K AMANDA
  1. I '$G(PXBIOF) W @IOF
  1. ;
  1. I '$G(NO) W !
  1. I $G(NO) D
  1. .W IOINHI,!,IOCUU,"PAT/APPT/CLINIC: ",$E(NAME,1,18)," ",DATE,?((IOM-2)-$L(CLINICE)),CLINICE,IOINLOW
  1. Q
  1. HDR2(FROM) ;--SECOND LINE IN THE HEADER
  1. I '$D(FROM) Q
  1. I FROM="STP" D LOC^PXBCC(1,0) D
  1. .I PXBCNT=0 W "STOP CODE: ..There are ",$G(PXBCNT)," STOP CODES associated with this ENCOUNTER",IOELEOL
  1. .I PXBCNT=1 W "STOP CODE: ..There is ",$G(PXBCNT)," STOP CODE associated with this ENCOUNTER",IOELEOL
  1. .I PXBCNT>1 W "STOP CODE: ..There are ",$G(PXBCNT)," STOP CODES associated with this ENCOUNTER",IOELEOL
  1. .D UNDON^PXBCC
  1. .W !
  1. .F W $C(32) Q:$X=(IOM-(4))
  1. .D UNDOFF^PXBCC
  1. ;
  1. ;
  1. ;
  1. I FROM="PRV" D LOC^PXBCC(1,0) D
  1. .I PXBCNT=0 W "PROVIDER: ..There are ",$G(PXBCNT)," PROVIDERS associated with this ENCOUNTER",IOELEOL
  1. .I PXBCNT=1 W "PROVIDER: ..There is ",$G(PXBCNT)," PROVIDER associated with this ENCOUNTER",IOELEOL
  1. .I PXBCNT>1 W "PROVIDER: ..There are ",$G(PXBCNT)," PROVIDERS associated with this ENCOUNTER",IOELEOL
  1. .D UNDON^PXBCC
  1. .W !
  1. .F W $C(32) Q:$X=(IOM-(4))
  1. .D UNDOFF^PXBCC
  1. Q
  1. HDR3(DFN,NO,PXBIOF) ;--Header for each screen PATIENT and DATE/TIME of Visit
  1. ;
  1. ; NO = IF 1 then just do line feed don't do header
  1. ; PXBIOF = IF 1 then don't W @IOF
  1. ;
  1. ;
  1. N DATE,DIC,DIQ,DATE,DA,DR
  1. N NAME,SEX,AGE,SSN
  1. I '$D(IORVON) D TERM^PXBCC
  1. S DIC=2,DR=".01;.02;.033;.09",DA=DFN,DIQ="AMANDA(",DIQ(0)="EI" D EN^DIQ1
  1. S NAME=$G(AMANDA(2,DFN,.01,"E"))
  1. S SEX=$G(AMANDA(2,DFN,.02,"E"))
  1. S AGE=$G(AMANDA(2,DFN,.033,"E"))
  1. S SSN=$G(AMANDA(2,DFN,.09,"E"))
  1. S SSN=$E(SSN,1,3)_"-"_$E(SSN,4,5)_"-"_$E(SSN,6,9)
  1. K AMANDA
  1. I '$G(PXBIOF) W @IOF
  1. ;
  1. I '$G(NO) W !
  1. I $G(NO) W IOINHI,!,IOCUU,"PAT/SEX/AGE/SSN: ",$E(NAME,1,18)," ",SEX," ",AGE_" Years ",?67,SSN W IOINLOW
  1. Q
  1. ;
  1. TIMES(ENT) ;--Number of time the selection appears in v file from PXBKY
  1. ;
  1. N N
  1. S N=0,Q=0 F S N=$O(PXBKY(ENT,N)) Q:N="" S Q=Q+1,Q(N)=""
  1. Q
  1. ;
  1. CPTOK(CODE,IDATE) ;--check the historical date to see if it was active
  1. ;TO BE USED AS A FUNCTION (W $$CPT......)
  1. ; OK=1-- IT WAS ACTIVE
  1. ; OK=0-- IT WAS NOT ACTIVE
  1. ; RETURNS OK^INTERNAL FORM OF STATUS DATE^EXTERNAL FORM
  1. N STADATE,STAFLAG,EDATE,STATUS,Y,DATE
  1. S DATE=$P(IDATE,".",1)
  1. S STATUS=$P($$CPT^ICPTCOD(CODE,DATE),U,6,7),STADATE=+STATUS,OK=+$P(STATUS,U,2)
  1. S X=STADATE D H^%DTC,YX^%DTC S EDATE=Y K X,Y,%H,%T,%Y
  1. Q OK_"^"_STADATE_"^"_EDATE
  1. ;
  1. CPTSCREN(CODE,IDATE) ;
  1. N OK,DATE
  1. S DATE=$P(IDATE,".",1)
  1. S OK=$P($$CPT^ICPTCOD(CODE,DATE),U,7)
  1. Q +OK
  1. ;
  1. CONPRV(PRV) ;---FUNCTION-Convert internal form or provider to external form
  1. N DIC,DA,DR,DIQ,PXBPRV
  1. S DIC=200,DA=PRV,DR=.01,DIQ="PRVA(",DIQ(0)="E" D EN^DIQ1
  1. S PRV=$G(PRVA(200,PRV,.01,"E")) K PRVA
  1. Q PXBPRV_"^"_PRV
  1. ;
  1. NONE(NO) ;----Display's a None message to the screen if none is found
  1. N X
  1. I NO=1 S X="No PROVIDERS for this Encounter." D W
  1. I NO=2 S X="No CPT CODES for this Encounter." D W
  1. I NO=3 S X="No DIAGNOSIS for this Encounter." D W
  1. I NO=4 S X="No PROBLEM LIST for this PATIENT." D W
  1. I NO=5 S X="No STOP CODE for this ENCOUNTER." D W
  1. I NO=6 S X="No ENCOUNTERS for this PATIENT." D W
  1. Q
  1. W W !,?(IOM-$L(X))\2,IOINHI,X,IOINLOW
  1. Q