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

PXCEPRV.m

Go to the documentation of this file.
  1. PXCEPRV ;ISL/dee - Used to edit and display V PROVIDER ;03/16/2022
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;**7,27,124,211,217**;Aug 12, 1996;Build 134
  1. ;
  1. Q
  1. ;
  1. ;Line with the line label "FORMAT"
  1. ;;Long name~File Number~Node Subscripts~Allow Duplicate entries (1=yes, 0=no)~File global name
  1. ; 1 2 3 4 5
  1. ;
  1. ;Followning lines:
  1. ;;Node~Piece~,Field Number~Edit Label~Display Label~Display Routine~Edit Routine~Help Text for DIR("?")~Set of PXCEKEYS that can Edit~D if Detail Display Only~
  1. ; 1 ~ 2 ~ 3 ~ 4 ~ 5 ~ 6 ~ 7 ~ 8 ~ 9 ~ 10
  1. ;The Display & Edit routines are for special cases.
  1. ; (The .01 field cannot have a special edit.)
  1. ;
  1. FORMAT ;;Provider~9000010.06~0,12,811,812~0~^AUPNVPRV
  1. ;;0~1~.01~Provider: ~Provider: ~$$DISPLY01^PXCEPRV~EPROV^PXCEPRV~^D HELP^PXCEHELP~~B
  1. ;;0~4~.04~Is this Provider Primary: ~Primary: ~$$DISPPRIM^PXCEPRV~EPRIMSEC^PXCEPRV~~~N
  1. ;;0~5~.05~Is this Provider Attending: ~Attending: ~~EATTEND^PXCEPRV~~~N
  1. ;;12~1~1201~Event Date and Time: ~Event Date and Time: ~~EVENTDT^PXCEPRV(.PXCEAFTR)~~~D
  1. ;;812~2~81202~Package: ~Package: ~~SKIP^PXCEPRV~~~D
  1. ;;812~3~81203~Data Source: ~Data Source: ~~SKIP^PXCEPRV~~~D
  1. ;;
  1. ;
  1. ;The interface for AICS to get list on form for help.
  1. INTRFACE ;;SD SELECT PROVIDER
  1. ;
  1. ;********************************
  1. ;Special cases for display.
  1. ;
  1. DISPPRIM(PXCEPRIM) ;
  1. Q $S(PXCEPRIM="P":$$EXTERNAL^DILFD(9000010.06,".04","",PXCEPRIM,"PXCEDILF"),1:"")
  1. ;
  1. ;********************************
  1. ;Special cases for edit.
  1. ;
  1. EPROV ;
  1. K DIRUT
  1. N DIC,DA,PXPRVDT
  1. S PXPRVDT=+^TMP("PXK",$J,"VST",1,0,"AFTER")
  1. I $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))'="" D
  1. . N DIERR,PXCEDILF,PXCEINT,PXCEEXT
  1. . S PXCEINT=$P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))
  1. . S PXCEEXT=$$EXTERNAL^DILFD(PXCEFILE,$P(PXCETEXT,"~",3),"",PXCEINT,"PXCEDILF")
  1. . S DIC("B")=$S('$D(DIERR):PXCEEXT,1:PXCEINT)
  1. S DIC=200
  1. S DIC(0)="AEMQ"
  1. S DIC("A")=$P(PXCETEXT,"~",4)
  1. S DIC("S")="I $$ACTIVPRV^PXAPI(Y,PXPRVDT)"
  1. S DIC("W")="W !,""NPI: "",$$GET1^DIQ(200,Y_"","",41.99)"
  1. D ^DIC
  1. K DIR
  1. I $D(DUOUT)!$D(DTOUT)!(X="") S DIRUT=1 Q
  1. Q:$D(DIRUT)
  1. S:'($D(X)#2) X=+Y
  1. Q
  1. ;
  1. EPRIMSEC ;For Primary/Secondary field only allows one primary.
  1. ; Also used by V-POV
  1. K Y,DTOUT,DUOUT,PXCEPRIM
  1. ;See if there is already a primary provider in V Provider for this Visit
  1. S PXCEPRIM=$$PRIMSEC^PXUTL1(PXCEVIEN,PXCEAUPN,$P(PXCETEXT,"~",1),$P(PXCETEXT,"~",2))
  1. I 'PXCEPRIM S Y="PRIMARY"
  1. I $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))'="" D
  1. . N DIERR,PXCEDILF,PXCEEXT,PXCEINT
  1. . S PXCEINT=$P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))
  1. . S PXCEEXT=$$EXTERNAL^DILFD(PXCEFILE,$P(PXCETEXT,"~",3),"",PXCEINT,"PXCEDILF")
  1. . S Y=$S('$D(DIERR):PXCEEXT,1:PXCEINT)
  1. I $D(Y),'PXCEPRIM!($E(Y)="P") D
  1. . S DIR("B")=$S($E(Y)="P":"YES",1:"NO")
  1. . S DIR(0)="YAO"
  1. . S DIR("A")=$P(PXCETEXT,"~",4)
  1. . S:$P(PXCETEXT,"~",8)]"" DIR("?")=$P(PXCETEXT,"~",8)
  1. . D ^DIR
  1. . K DIR,DA
  1. . S Y=$S(Y:"P",1:"S")
  1. E S Y="S"
  1. I $D(DTOUT)!$D(DUOUT) S (PXCEEND,PXCEQUIT)=1 Q ;This field is required.
  1. S $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))=$P(Y,"^")
  1. Q
  1. ;
  1. EATTEND ;Attending/Operating field only ask for Attending
  1. S DIR("B")=$S($P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))="A":"YES",1:"NO")
  1. S DIR(0)="YAO"
  1. S DIR("A")=$P(PXCETEXT,"~",4)
  1. S:$P(PXCETEXT,"~",8)]"" DIR("?")=$P(PXCETEXT,"~",8)
  1. D ^DIR
  1. K DIR,DA
  1. I X="@" S Y="@"
  1. E I $D(DTOUT)!$D(DUOUT) S PXCEEND=1 Q
  1. E I +Y S Y="A"
  1. E I $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))="A" S Y="@"
  1. E S Y=""
  1. S $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))=$P(Y,"^")
  1. Q
  1. ;
  1. EPROV12 ;
  1. K DIRUT
  1. N DIC,DA,PXPRVDT
  1. S PXPRVDT=+^TMP("PXK",$J,"VST",1,0,"AFTER")
  1. I $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))'="" D
  1. . N DIERR,PXCEDILF,PXCEINT,PXCEEXT
  1. . S PXCEINT=$P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))
  1. . S PXCEEXT=$$EXTERNAL^DILFD(PXCEFILE,$P(PXCETEXT,"~",3),"",PXCEINT,"PXCEDILF")
  1. . S DIC("B")=$S('$D(DIERR):PXCEEXT,1:PXCEINT)
  1. S DIC=200
  1. S DIC(0)="AEMQ"
  1. S DIC("A")=$P(PXCETEXT,"~",4)
  1. S DIC("S")="I $$ACTIVPRV^PXAPI(Y,PXPRVDT)"
  1. D ^DIC
  1. K DIR
  1. I $D(DUOUT)!$D(DTOUT) S PXCEEND=1 Q
  1. Q:X=""
  1. S $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))=$P(Y,"^")
  1. ;S:'($D(X)#2) X=+Y
  1. Q
  1. ;
  1. ;********************************
  1. EVENTDT(PXCEAFTR) ;Edit the Event Date and Time.
  1. N DEFAULT,EVENTDT,HELP,PROMPT
  1. S DEFAULT=$P(^TMP("PXK",$J,"PRV",1,12,"BEFORE"),U,1)
  1. S HELP="D EVDTHELP^PXCEPRV"
  1. S PROMPT="Enter the Event Date and Time"
  1. S EVENTDT=$$GETDT^PXDATE(-1,-1,-1,DEFAULT,PROMPT,HELP)
  1. S $P(PXCEAFTR(12),U,1)=EVENTDT
  1. Q
  1. ;
  1. ;********************************
  1. EVDTHELP ;Event Date and Time help.
  1. N ERR,RESULT,TEXT
  1. S RESULT=$$GET1^DID(9000010.06,1201,"","DESCRIPTION","TEXT","ERR")
  1. D BROWSE^DDBR("TEXT(""DESCRIPTION"")","NR","V Provider Event Date and Time Help")
  1. I $D(DDS) D REFRESH^DDSUTL S DY=IOSL-7,DX=0 X IOXY S $Y=DY,$X=DX
  1. Q
  1. ;
  1. ;********************************
  1. PERCLASS(PXCEPRV) ;Returns text for person class
  1. N PXCEPERC
  1. S PXCEPERC=$$OCCUP^PXBGPRV(PXCEPRV,+^AUPNVSIT(PXCEVIEN,0),"",2)
  1. G PRCL
  1. DPERCLAS(PXCECLAS) ;Returns text for person class
  1. N PXCEPERC
  1. S PXCEPERC=$S(PXCECLAS>0:$$OCCUP^PXBGPRV("","","",2,PXCECLAS),1:"")
  1. PRCL ;
  1. I PXCEPERC="" S PXCEPERC="## No Person Class ##"
  1. E I PXCEPERC=-1 S PXCEPERC="!! No Person Class Defined !!"
  1. E I PXCEPERC=-2 S PXCEPERC="** No Active Person Class **"
  1. E I +PXCEPERC<0 S PXCEPERC=""
  1. Q PXCEPERC
  1. ;
  1. ;********************************
  1. ;Display text for the .01 field which is a pointer to ^ICPT.
  1. ;(Must have is called by ASK^PXCEVFI2 and DEL^PXCEVFI2.)
  1. DISPLY01(PXCEPRV,PXCEDT) ;
  1. N DIERR,PXCEDILF,PXCEEPRV,PXCEEPS,PXCEEAO,PXCEPERC,PXCERET
  1. S PXCEEPRV=$$EXTERNAL^DILFD(9000010.06,".01","",$P(PXCEPRV,"^",1),"PXCEDILF")
  1. S PXCEEPS=$$EXTERNAL^DILFD(9000010.06,".04","",$P(PXCEPRV,"^",4),"PXCEDILF")
  1. S PXCEEAO=$$EXTERNAL^DILFD(9000010.06,".05","",$P(PXCEPRV,"^",5),"PXCEDILF")
  1. S PXCEPERC=$$DPERCLAS($P(PXCEPRV,"^",6))
  1. S PXCERET=PXCEEPRV_" "_$S($E(PXCEEPS)="P":PXCEEPS_" ",1:"")_$S(PXCEEAO]"":PXCEEAO_" ",1:"")
  1. S PXCERET=PXCERET_$E(PXCEPERC,1,(65-$L(PXCERET)))
  1. Q PXCERET
  1. ;
  1. ;********************************
  1. SKIP ;Used to by-pass roll and scroll editing of a field.
  1. S (X,Y)=""
  1. Q
  1. ;