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

PXAIPRV.m

Go to the documentation of this file.
  1. PXAIPRV ;ISL/JVS,ESW - SET THE PROVIDER NODES ; 11/25/02 3:36pm
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;**5,108**;Aug 12, 1996
  1. ;
  1. Q
  1. PRV ;--CREAT PROVIDERS
  1. ;
  1. SET ;--SET AND NEW VARIABLES
  1. N AFTER0,AFTER12,AFTER801,AFTER811,AFTER812
  1. N BEFOR0,BEFOR12,BEFOR801,BEFOR811,BEFOR812
  1. N PXAA,PXAB,SUB,PIECE,PXAAX,IENB,STOP
  1. ;
  1. K PXAERR
  1. S PXAERR(8)=PXAK
  1. S PXAERR(7)="PROVIDER"
  1. ;
  1. S SUB="" F S SUB=$O(@PXADATA@("PROVIDER",PXAK,SUB)) Q:SUB="" D
  1. .S PXAA(SUB)=@PXADATA@("PROVIDER",PXAK,SUB)
  1. ;
  1. ;--VALIDATE ENOUGH DATA
  1. D VAL^PXAIPRVV Q:$G(STOP)
  1. ;
  1. SETVARA ;--SET VISIT VARIABLES
  1. S $P(AFTER0,"^",1)=$G(PXAA("NAME"))
  1. I $G(PXAA("DELETE")) S $P(AFTER0,"^",1)="@"
  1. S $P(AFTER0,"^",2)=$G(PATIENT)
  1. S $P(AFTER0,"^",3)=$G(PXAVISIT)
  1. S $P(AFTER0,"^",4)=$S($G(PXAA("PRIMARY"))=1:"P",1:"S")
  1. S $P(AFTER0,"^",5)=$S($G(PXAA("ATTENDING"))=1:"A",$G(PXAA("ATTENDING"))=0:"@",1:"")
  1. S $P(AFTER811,"^",1)=$G(PXAA("COMMENT"))
  1. ;
  1. ;
  1. S $P(AFTER812,"^",2)=$G(PXAPKG)
  1. S $P(AFTER812,"^",3)=$G(PXASOURC)
  1. ;
  1. SETPXKA ;--SET PXK ARRAY AFTER
  1. S ^TMP("PXK",$J,"PRV",PXAK,0,"AFTER")=AFTER0
  1. S ^TMP("PXK",$J,"PRV",PXAK,811,"AFTER")=AFTER811
  1. S ^TMP("PXK",$J,"PRV",PXAK,812,"AFTER")=AFTER812
  1. ;
  1. SETVARB ;--SET VARIABLES BEFORE
  1. ;
  1. ;--CHECK FOR PRIMARY DESIGNATION
  1. N ITEM,PXBSKY,PXBKY,PXBSAM,PXBCNT,PRVDR,FPRI
  1. D PRV^PXBGPRV(PXAVISIT,.PXBSKY,.PXBKY,.PXBSAM,.PXBCNT,.PRVDR,.FPRI)
  1. ;CHECK NAME
  1. S PXAAX("NAME")=$P($G(^VA(200,$G(PXAA("NAME")),0)),"^",1)
  1. I '$G(PXAPREDT) D
  1. 1 .I $D(PRVDR),$P($G(PRVDR("PRIMARY")),U)'=PXAAX("NAME") S PRI=1
  1. 2 .I $G(PRI) S $P(^TMP("PXK",$J,"PRV",PXAK,0,"AFTER"),"^",4)="S"
  1. 3 .I $G(PRI),$G(PXAA("NAME"))'["@" D VAL04^PXAIPRVV,ERR^PXAI
  1. 4 .I $P(AFTER0,"^",4)="P" S PRI=1
  1. ;
  1. ;--GET IEN FOR 'PXK NODE'
  1. I $G(PXAA("DELETE"))=1 S PXAAX("NAME")=$P($G(^VA(200,PXAA("NAME"),0)),"^",1)
  1. S ITEM="" I PXBCNT>0,$G(PXAAX("NAME"))]"" S ITEM=$O(PXBKY(PXAAX("NAME"),0))
  1. I ITEM]"" S (^TMP("PXK",$J,"PRV",PXAK,"IEN"),IENB)=$O(PXBSKY(ITEM,0))
  1. ;
  1. I $G(IENB) D
  1. .F PIECE=0,811,812 S ^TMP("PXK",$J,"PRV",PXAK,PIECE,"BEFORE")=$G(^AUPNVPRV(IENB,PIECE))
  1. E D
  1. .S (BEFOR0,BEFOR811,BEFOR812)=""
  1. .;
  1. SETPXKB .;--SET PXK ARRAY BEFORE
  1. .S ^TMP("PXK",$J,"PRV",PXAK,0,"BEFORE")=BEFOR0
  1. .S ^TMP("PXK",$J,"PRV",PXAK,811,"BEFORE")=BEFOR811
  1. .S ^TMP("PXK",$J,"PRV",PXAK,812,"BEFORE")=BEFOR812
  1. .S ^TMP("PXK",$J,"PRV",PXAK,"IEN")=""
  1. ;
  1. MISC ;--MISCELLANEOUS NODE
  1. ;
  1. Q
  1. OTHER ;---ADD OTHER PROVIDERS TO V PROVIDER FOR OTHER ENTRIES
  1. ;
  1. ; generate data, PXBSKY(), about currently filed providers
  1. ;
  1. N PXBSKY
  1. I $G(PXAVISIT) D PRV^PXBGPRV(PXAVISIT,.PXBSKY)
  1. ;
  1. N IEN,AFTER0,CNT,PXAK,STOP,FF
  1. S IEN="",CNT=1000
  1. ;
  1. ;---^TMP("PXAIADDPRV",$J,'IEN')=""
  1. ;
  1. F S IEN=$O(^TMP("PXAIADDPRV",$J,IEN)),CNT=CNT+1 Q:IEN="" D
  1. .;
  1. .;verify if an entry for a provider already exists
  1. .;
  1. .S STOP=0
  1. .I $D(^TMP("PXK",$J,"PRV")) S PXAK="" D Q:STOP
  1. ..F S PXAK=$O(^TMP("PXK",$J,"PRV",PXAK)) Q:PXAK="" D Q:STOP
  1. ...I +$G(^TMP("PXK",$J,"PRV",PXAK,0,"AFTER"))=IEN S STOP=1
  1. .S FF="PXBSKY" F S FF=$Q(@FF) Q:FF="" I @FF=IEN S STOP=1 Q
  1. .Q:STOP
  1. .;
  1. .S $P(AFTER0,"^",1)=IEN
  1. .S $P(AFTER0,"^",2)=$P(^AUPNVSIT(PXAVISIT,0),"^",5)
  1. .S $P(AFTER0,"^",3)=PXAVISIT
  1. .S $P(AFTER0,"^",4)="S"
  1. .S $P(AFTER812,"^",2)=$G(PXAPKG)
  1. .S $P(AFTER812,"^",3)=$G(PXASOURC)
  1. .S ^TMP("PXK",$J,"PRV",CNT,0,"AFTER")=$G(AFTER0)
  1. .S ^TMP("PXK",$J,"PRV",CNT,811,"AFTER")=""
  1. .S ^TMP("PXK",$J,"PRV",CNT,812,"AFTER")=$G(AFTER812)
  1. .S ^TMP("PXK",$J,"PRV",CNT,0,"BEFORE")=""
  1. .S ^TMP("PXK",$J,"PRV",CNT,811,"BEFORE")=""
  1. .S ^TMP("PXK",$J,"PRV",CNT,811,"BEFORE")=""
  1. .S ^TMP("PXK",$J,"PRV",CNT,"IEN")=""
  1. Q
  1. PRIM ;--SET A PROVIDER AS PRIMARY
  1. N PXBCNT,PXBKY,PXBSAM,PXBSKY,AFTER0,FPRI,PRVDR,PXASOR
  1. D PRV^PXBGPRV(PXAVISIT,.PXBSKY,.PXBKY,.PXBSAM,.PXBCNT,.PRVDR,.FPRI)
  1. I $D(PRVDR) Q
  1. I '$D(PXBSKY) Q
  1. ;----ADDED
  1. S PXASOR=$G(^TMP("PXK",$J,"SOR"))
  1. K ^TMP("PXK",$J)
  1. S ^TMP("PXK",$J,"SOR")=$G(PXASOR)
  1. S ^TMP("PXK",$J,"VST",1,"IEN")=PXAVISIT
  1. ;-------
  1. ;
  1. S $P(AFTER0,"^",1)=$P(^AUPNVPRV($O(PXBSKY(1,0)),0),"^",1)
  1. S $P(AFTER0,"^",2)=$P(^AUPNVSIT(PXAVISIT,0),"^",5)
  1. S $P(AFTER0,"^",3)=PXAVISIT
  1. S $P(AFTER0,"^",4)="P"
  1. S ^TMP("PXK",$J,"PRV",22222,0,"AFTER")=AFTER0
  1. S ^TMP("PXK",$J,"PRV",22222,0,"BEFORE")=$G(^AUPNVPRV($O(PXBSKY(1,0)),0))
  1. S ^TMP("PXK",$J,"PRV",22222,"IEN")=$O(PXBSKY(1,0))
  1. D EN1^PXKMAIN
  1. K PXRDR
  1. Q