[613] | 1 | PXAIPRV ;ISL/JVS,ESW - SET THE PROVIDER NODES ;6/3/05 12:29pm
|
---|
| 2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**5,108,124**;Aug 12, 1996
|
---|
| 3 | ;
|
---|
| 4 | Q
|
---|
| 5 | PRV ;--CREAT PROVIDERS
|
---|
| 6 | ;
|
---|
| 7 | SET ;--SET AND NEW VARIABLES
|
---|
| 8 | N AFTER0,AFTER12,AFTER801,AFTER811,AFTER812
|
---|
| 9 | N BEFOR0,BEFOR12,BEFOR801,BEFOR811,BEFOR812
|
---|
| 10 | N PXAA,PXAB,SUB,PIECE,PXAAX,IENB,STOP
|
---|
| 11 | ;
|
---|
| 12 | K PXAERR
|
---|
| 13 | S PXAERR(8)=PXAK
|
---|
| 14 | S PXAERR(7)="PROVIDER"
|
---|
| 15 | ;
|
---|
| 16 | S SUB="" F S SUB=$O(@PXADATA@("PROVIDER",PXAK,SUB)) Q:SUB="" D
|
---|
| 17 | .S PXAA(SUB)=@PXADATA@("PROVIDER",PXAK,SUB)
|
---|
| 18 | ;
|
---|
| 19 | ;--VALIDATE ENOUGH DATA
|
---|
| 20 | D VAL^PXAIPRVV Q:$G(STOP)
|
---|
| 21 | ;
|
---|
| 22 | SETVARA ;--SET VISIT VARIABLES
|
---|
| 23 | S $P(AFTER0,"^",1)=$G(PXAA("NAME"))
|
---|
| 24 | I $G(PXAA("DELETE")) S $P(AFTER0,"^",1)="@"
|
---|
| 25 | S $P(AFTER0,"^",2)=$G(PATIENT)
|
---|
| 26 | S $P(AFTER0,"^",3)=$G(PXAVISIT)
|
---|
| 27 | S $P(AFTER0,"^",4)=$S($G(PXAA("PRIMARY"))=1:"P",1:"S")
|
---|
| 28 | S $P(AFTER0,"^",5)=$S($G(PXAA("ATTENDING"))=1:"A",$G(PXAA("ATTENDING"))=0:"@",1:"")
|
---|
| 29 | S $P(AFTER811,"^",1)=$G(PXAA("COMMENT"))
|
---|
| 30 | ;
|
---|
| 31 | ;
|
---|
| 32 | S $P(AFTER812,"^",2)=$G(PXAPKG)
|
---|
| 33 | S $P(AFTER812,"^",3)=$G(PXASOURC)
|
---|
| 34 | ;
|
---|
| 35 | SETPXKA ;--SET PXK ARRAY AFTER
|
---|
| 36 | S ^TMP("PXK",$J,"PRV",PXAK,0,"AFTER")=AFTER0
|
---|
| 37 | S ^TMP("PXK",$J,"PRV",PXAK,811,"AFTER")=AFTER811
|
---|
| 38 | S ^TMP("PXK",$J,"PRV",PXAK,812,"AFTER")=AFTER812
|
---|
| 39 | ;
|
---|
| 40 | SETVARB ;--SET VARIABLES BEFORE
|
---|
| 41 | ;
|
---|
| 42 | ;--CHECK FOR PRIMARY DESIGNATION
|
---|
| 43 | N ITEM,PXBSKY,PXBKY,PXBSAM,PXBCNT,PRVDR,FPRI
|
---|
| 44 | D PRV^PXBGPRV(PXAVISIT,.PXBSKY,.PXBKY,.PXBSAM,.PXBCNT,.PRVDR,.FPRI)
|
---|
| 45 | ;CHECK NAME
|
---|
| 46 | S PXAAX("NAME")=$P($G(^VA(200,$G(PXAA("NAME")),0)),"^",1)
|
---|
| 47 | I '$G(PXAPREDT) D
|
---|
| 48 | 1 .I $D(PRVDR),$P($G(PRVDR("PRIMARY")),U)'=PXAAX("NAME") S PRI=1
|
---|
| 49 | 2 .I $G(PRI),$P(AFTER0,"^",4)="P",$P(AFTER0,"^",1)'="@" D VAL04^PXAIPRVV,ERR^PXAI
|
---|
| 50 | 3 .I $G(PRI) S $P(^TMP("PXK",$J,"PRV",PXAK,0,"AFTER"),"^",4)="S"
|
---|
| 51 | 4 .I $P(AFTER0,"^",4)="P" S PRI=1
|
---|
| 52 | ;
|
---|
| 53 | ;--GET IEN FOR 'PXK NODE'
|
---|
| 54 | I $G(PXAA("DELETE"))=1 S PXAAX("NAME")=$P($G(^VA(200,PXAA("NAME"),0)),"^",1)
|
---|
| 55 | S ITEM="" I PXBCNT>0,$G(PXAAX("NAME"))]"" S ITEM=$O(PXBKY(PXAAX("NAME"),0))
|
---|
| 56 | I ITEM]"" S (^TMP("PXK",$J,"PRV",PXAK,"IEN"),IENB)=$O(PXBSKY(ITEM,0))
|
---|
| 57 | ;
|
---|
| 58 | I $G(IENB) D
|
---|
| 59 | .F PIECE=0,811,812 S ^TMP("PXK",$J,"PRV",PXAK,PIECE,"BEFORE")=$G(^AUPNVPRV(IENB,PIECE))
|
---|
| 60 | E D
|
---|
| 61 | .S (BEFOR0,BEFOR811,BEFOR812)=""
|
---|
| 62 | .;
|
---|
| 63 | SETPXKB .;--SET PXK ARRAY BEFORE
|
---|
| 64 | .S ^TMP("PXK",$J,"PRV",PXAK,0,"BEFORE")=BEFOR0
|
---|
| 65 | .S ^TMP("PXK",$J,"PRV",PXAK,811,"BEFORE")=BEFOR811
|
---|
| 66 | .S ^TMP("PXK",$J,"PRV",PXAK,812,"BEFORE")=BEFOR812
|
---|
| 67 | .S ^TMP("PXK",$J,"PRV",PXAK,"IEN")=""
|
---|
| 68 | ;
|
---|
| 69 | MISC ;--MISCELLANEOUS NODE
|
---|
| 70 | ;
|
---|
| 71 | Q
|
---|
| 72 | OTHER ;---ADD OTHER PROVIDERS TO V PROVIDER FOR OTHER ENTRIES
|
---|
| 73 | ;
|
---|
| 74 | ; generate data, PXBSKY(), about currently filed providers
|
---|
| 75 | ;
|
---|
| 76 | N PXBSKY
|
---|
| 77 | I $G(PXAVISIT) D PRV^PXBGPRV(PXAVISIT,.PXBSKY)
|
---|
| 78 | ;
|
---|
| 79 | N IEN,AFTER0,CNT,PXAK,STOP,FF
|
---|
| 80 | S IEN="",CNT=1000
|
---|
| 81 | ;
|
---|
| 82 | ;---^TMP("PXAIADDPRV",$J,'IEN')=""
|
---|
| 83 | ;
|
---|
| 84 | F S IEN=$O(^TMP("PXAIADDPRV",$J,IEN)),CNT=CNT+1 Q:IEN="" D
|
---|
| 85 | .;
|
---|
| 86 | .;verify if an entry for a provider already exists
|
---|
| 87 | .;
|
---|
| 88 | .S STOP=0
|
---|
| 89 | .I $D(^TMP("PXK",$J,"PRV")) S PXAK="" D Q:STOP
|
---|
| 90 | ..F S PXAK=$O(^TMP("PXK",$J,"PRV",PXAK)) Q:PXAK="" D Q:STOP
|
---|
| 91 | ...I +$G(^TMP("PXK",$J,"PRV",PXAK,0,"AFTER"))=IEN S STOP=1
|
---|
| 92 | .S FF="PXBSKY" F S FF=$Q(@FF) Q:FF="" I @FF=IEN S STOP=1 Q
|
---|
| 93 | .Q:STOP
|
---|
| 94 | .;
|
---|
| 95 | .S $P(AFTER0,"^",1)=IEN
|
---|
| 96 | .S $P(AFTER0,"^",2)=$P(^AUPNVSIT(PXAVISIT,0),"^",5)
|
---|
| 97 | .S $P(AFTER0,"^",3)=PXAVISIT
|
---|
| 98 | .S $P(AFTER0,"^",4)="S"
|
---|
| 99 | .S $P(AFTER812,"^",2)=$G(PXAPKG)
|
---|
| 100 | .S $P(AFTER812,"^",3)=$G(PXASOURC)
|
---|
| 101 | .S ^TMP("PXK",$J,"PRV",CNT,0,"AFTER")=$G(AFTER0)
|
---|
| 102 | .S ^TMP("PXK",$J,"PRV",CNT,811,"AFTER")=""
|
---|
| 103 | .S ^TMP("PXK",$J,"PRV",CNT,812,"AFTER")=$G(AFTER812)
|
---|
| 104 | .S ^TMP("PXK",$J,"PRV",CNT,0,"BEFORE")=""
|
---|
| 105 | .S ^TMP("PXK",$J,"PRV",CNT,811,"BEFORE")=""
|
---|
| 106 | .S ^TMP("PXK",$J,"PRV",CNT,812,"BEFORE")=""
|
---|
| 107 | .S ^TMP("PXK",$J,"PRV",CNT,"IEN")=""
|
---|
| 108 | K ^TMP("PXAIADDPRV",$J)
|
---|
| 109 | Q
|
---|
| 110 | PRIM ;--SET A PROVIDER AS PRIMARY
|
---|
| 111 | N PXBCNT,PXBKY,PXBSAM,PXBSKY,AFTER0,FPRI,PRVDR,PXASOR
|
---|
| 112 | D PRV^PXBGPRV(PXAVISIT,.PXBSKY,.PXBKY,.PXBSAM,.PXBCNT,.PRVDR,.FPRI)
|
---|
| 113 | I $D(PRVDR) Q
|
---|
| 114 | I '$D(PXBSKY) Q
|
---|
| 115 | ;----ADDED
|
---|
| 116 | S PXASOR=$G(^TMP("PXK",$J,"SOR"))
|
---|
| 117 | K ^TMP("PXK",$J)
|
---|
| 118 | S ^TMP("PXK",$J,"SOR")=$G(PXASOR)
|
---|
| 119 | S ^TMP("PXK",$J,"VST",1,"IEN")=PXAVISIT
|
---|
| 120 | ;-------
|
---|
| 121 | ;
|
---|
| 122 | S $P(AFTER0,"^",1)=$P(^AUPNVPRV($O(PXBSKY(1,0)),0),"^",1)
|
---|
| 123 | S $P(AFTER0,"^",2)=$P(^AUPNVSIT(PXAVISIT,0),"^",5)
|
---|
| 124 | S $P(AFTER0,"^",3)=PXAVISIT
|
---|
| 125 | S $P(AFTER0,"^",4)="P"
|
---|
| 126 | S ^TMP("PXK",$J,"PRV",22222,0,"AFTER")=AFTER0
|
---|
| 127 | S ^TMP("PXK",$J,"PRV",22222,0,"BEFORE")=$G(^AUPNVPRV($O(PXBSKY(1,0)),0))
|
---|
| 128 | S ^TMP("PXK",$J,"PRV",22222,"IEN")=$O(PXBSKY(1,0))
|
---|
| 129 | D EN1^PXKMAIN
|
---|
| 130 | K PXRDR
|
---|
| 131 | Q
|
---|