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

PXCAPRV.m

Go to the documentation of this file.
  1. PXCAPRV ;ISL/dee - Translates data from the PCE Device Interface into PCE's PXK for Providers ;3/14/97
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;**27**;Aug 12, 1996
  1. Q
  1. ;
  1. PROVIDER(PXCAENC) ;Provider
  1. ; Variables
  1. ; PXCAPRV Pointer to the provider (200)
  1. ; PXCAPS Primary or Secondary provider for above
  1. ; PXCAATND Pointer to the Attending provider (200)
  1. ; PXCAFTER Temp used to build ^TMP(PXCAGLB,$J,"PRV",PXCANPRV,0,"AFTER")
  1. N PXCAPRV,PXCAPS,PXCAATND,PXCAFTER
  1. S PXCAPRV=$P(PXCAENC,"^",4)
  1. S PXCAPS=$P(PXCAENC,"^",15)
  1. S PXCAATND=$P(PXCAENC,"^",16)
  1. I PXCAPRV>0 D
  1. . S PXCAFTER=PXCAPRV_"^"
  1. . S PXCAFTER=PXCAFTER_PXCAPAT_"^"_PXCAVSIT_"^"
  1. . S PXCAFTER=PXCAFTER_PXCAPS_"^"
  1. . I PXCAATND>0 D
  1. .. I PXCAATND=PXCAPRV S PXCAFTER=PXCAFTER_"A"
  1. .. E D ATTEND
  1. . S PXCANPRV=PXCANPRV+1
  1. . S ^TMP(PXCAGLB,$J,"PRV",PXCANPRV,"IEN")=""
  1. . S ^TMP(PXCAGLB,$J,"PRV",PXCANPRV,0,"BEFORE")=""
  1. . S ^TMP(PXCAGLB,$J,"PRV",PXCANPRV,0,"AFTER")=PXCAFTER
  1. . S ^TMP(PXCAGLB,$J,"PRV",PXCANPRV,812,"BEFORE")=""
  1. . S ^TMP(PXCAGLB,$J,"PRV",PXCANPRV,812,"AFTER")="^"_PXCAPKG_"^"_PXCASOR
  1. E I PXCAATND>0 D ATTEND
  1. Q
  1. ;
  1. ATTEND ;Add the attending provider.
  1. S PXCANPRV=PXCANPRV+1
  1. S ^TMP(PXCAGLB,$J,"PRV",PXCANPRV,"IEN")=""
  1. S ^TMP(PXCAGLB,$J,"PRV",PXCANPRV,0,"BEFORE")=""
  1. S ^TMP(PXCAGLB,$J,"PRV",PXCANPRV,0,"AFTER")=PXCAATND_"^"_PXCAPAT_"^"_PXCAVSIT_"^S^A"
  1. S ^TMP(PXCAGLB,$J,"PRV",PXCANPRV,812,"BEFORE")=""
  1. S ^TMP(PXCAGLB,$J,"PRV",PXCANPRV,812,"AFTER")="^"_PXCAPKG_"^"_PXCASOR
  1. Q
  1. ;
  1. ANOTHPRV(PXCAAPRV) ;
  1. ;Add the provider to V Provider if they are not there.
  1. ;Quit if the provider subscript is zero
  1. ; Variables
  1. ; PXCAAPRV Pointer to the provider (200)
  1. ; PXCAINDX Subscirpt of the provider in the temp array used to
  1. ; look to see if the above provider is already know.
  1. Q:PXCAAPRV'>0
  1. N PXCAINDX
  1. S PXCAINDX=0
  1. F PXCAINDX=1:1:PXCANPRV I PXCAAPRV=+^TMP(PXCAGLB,$J,"PRV",PXCAINDX,0,"AFTER") S PXCAINDX=0 Q
  1. Q:PXCAINDX'>0
  1. S PXCANPRV=PXCANPRV+1
  1. S ^TMP(PXCAGLB,$J,"PRV",PXCANPRV,"IEN")=""
  1. S ^TMP(PXCAGLB,$J,"PRV",PXCANPRV,0,"BEFORE")=""
  1. S ^TMP(PXCAGLB,$J,"PRV",PXCANPRV,0,"AFTER")=PXCAAPRV_"^"_PXCAPAT_"^"_PXCAVSIT_"^S"
  1. S ^TMP(PXCAGLB,$J,"PRV",PXCANPRV,812,"BEFORE")=""
  1. S ^TMP(PXCAGLB,$J,"PRV",PXCANPRV,812,"AFTER")="^"_PXCAPKG_"^"_PXCASOR
  1. Q
  1. ;
  1. PRV(PXCAPRV,PXCANPRV,PXCAIEN,PXCAERRS) ;Process the provider nodes
  1. N PXCAINDX,PXCANEW
  1. S PXCANEW=1
  1. F PXCAINDX=1:1:PXCANPRV I PXCAIEN=+^TMP(PXCAGLB,$J,"PRV",PXCAINDX,0,"AFTER") S PXCANEW=0 Q
  1. I PXCANEW D
  1. . S (PXCANPRV,PXCAINDX)=PXCANPRV+1
  1. . S ^TMP(PXCAGLB,$J,"PRV",PXCAINDX,"IEN")=""
  1. . S ^TMP(PXCAGLB,$J,"PRV",PXCAINDX,0,"BEFORE")=""
  1. . S ^TMP(PXCAGLB,$J,"PRV",PXCAINDX,0,"AFTER")=PXCAIEN_"^"_PXCAPAT_"^"_PXCAVSIT
  1. . S ^TMP(PXCAGLB,$J,"PRV",PXCAINDX,812,"BEFORE")=""
  1. . S ^TMP(PXCAGLB,$J,"PRV",PXCAINDX,812,"AFTER")="^"_PXCAPKG_"^"_PXCASOR
  1. S $P(^TMP(PXCAGLB,$J,"PRV",PXCAINDX,0,"AFTER"),"^",4)=$P(PXCAPRV,"^",1)
  1. S:$P(PXCAPRV,"^",2)]"" $P(^TMP(PXCAGLB,$J,"PRV",PXCAINDX,0,"AFTER"),"^",5)=$S($P(PXCAPRV,"^",2)=1:"A",1:"")
  1. Q
  1. ;
  1. PROV(PXCA,PXCABULD,PXCAERRS) ;Validate the provider nodes
  1. Q:'$D(PXCA("PROVIDER"))
  1. N PXCAIEN,PXCAPRV,PXCAITEM
  1. S PXCAIEN=""
  1. F S PXCAIEN=$O(PXCA("PROVIDER",PXCAIEN)) Q:PXCAIEN']"" D
  1. . I '$$ACTIVPRV^PXAPI(PXCAIEN,PXCADT) S PXCA("ERROR","PROVIDER",PXCAIEN,0,0)="Provider is not active or valid^"_PXCAIEN
  1. . S PXCAPRV=$G(PXCA("PROVIDER",PXCAIEN))
  1. . S PXCAITEM=$P(PXCAPRV,"^",1)
  1. . I '(PXCAITEM="P"!(PXCAITEM="S")) S PXCA("ERROR","PROVIDER",PXCAIEN,0,1)="Provider indicator code must be P|S^"_PXCAITEM
  1. . E I PXCAITEM="P" D
  1. .. I 'PXCAPPRV S PXCAPPRV=PXCAIEN
  1. .. E I PXCAPPRV'=PXCAIEN D
  1. ... S PXCA("WARNING","PROVIDER",PXCAIEN,0,1)="There is already a Primary Provider this one is changed to Secondary^"_PXCAITEM
  1. ... S $P(PXCAPRV,"^",1)="S"
  1. . S PXCAITEM=$P(PXCAPRV,"^",2)
  1. . I '(PXCAITEM=1!(PXCAITEM=0)!(PXCAITEM="")) S PXCA("ERROR","PROVIDER",PXCAIEN,0,2)="Attending flag bad^"_PXCAITEM
  1. . I PXCABULD&'$D(PXCA("ERROR","PROVIDER",PXCAIEN))!PXCAERRS D PRV(PXCAPRV,.PXCANPRV,PXCAIEN,PXCAERRS)
  1. Q
  1. ;