Index: ccr/trunk/p/C0CACTOR.m
===================================================================
--- ccr/trunk/p/C0CACTOR.m	(revision 560)
+++ ccr/trunk/p/C0CACTOR.m	(revision 561)
@@ -85,7 +85,16 @@
 PATIENT(INXML,AIEN,AOID,OUTXML)	; PROCESS A PATIENT ACTOR
  I DEBUG W "PROCESSING ACTOR PATIENT ",AIEN,!
- N AMAP,ZX
+ ;GPL SEPARATED EXTRACT FROM MAP FOR PROCESSING PATIENTS - TO MAKE
+ ; CODE REUSABLE FROM ERX
+ N AMAP
  S AMAP=$NA(^TMP($J,"AMAP"))
  K @AMAP
+ D PEXTRACT(AMAP,AIEN,AOID) ;EXTRACT THE PATIENT ACTOR
+ D MAP(INXML,AMAP,OUTXML) ;MAP TO XML
+ K @AMAP ; CLEAN UP BEHIND US
+ Q
+ ;
+PEXTRACT(AMAP,AIEN,AOID) ; EXTRACT TO RETURN ARRAY RARY PASSED BY NAME
+ N ZX
  S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID
  S @AMAP@("ACTORGIVENNAME")=$$GIVEN^C0CDPT(AIEN)
@@ -139,4 +148,7 @@
  S @AMAP@("ACTORSUFFIXNAME")="" ; DOES VISTA STORE THE SUFFIX
  S @AMAP@("ACTORSOURCEID")="ACTORSYSTEM_1" ; THE SYSTEM IS THE SOURCE
+ Q
+ ;
+MAP(INXML,AMAP,OUTXML) ;MAP ANY ACTOR TO XML
  D MAP^C0CXPATH(INXML,AMAP,OUTXML) ; MAP THE VARIABLE
  Q
Index: ccr/trunk/p/C0CXPATH.m
===================================================================
--- ccr/trunk/p/C0CXPATH.m	(revision 560)
+++ ccr/trunk/p/C0CXPATH.m	(revision 561)
@@ -226,4 +226,5 @@
  I $D(VDX) S DVDX=1 ; IF NAME PASSED, DO VDX
  S C0CSTK(0)=0 ; INITIALIZE STACK
+ K LKASD ; KILL LOOKASIDE ARRAY
  D MKLASD(.LKASD,IZXML) ;MAKE LOOK ASIDE BUFFER FOR MULTIPLES
  F I=1:1:LCNT  D  ; PROCESS THE ENTIRE ARRAY
@@ -309,5 +310,5 @@
  F  S ZI=$O(OUTBUF(ZI)) Q:ZI=""  D  ; FOR EACH KIND OF MULTIPLE
  . S ZN=$O(OUTBUF(ZI,"")) ; LINE NUMBER OF SECOND MULTIPLE
- . F  S ZN=$O(@IZXML@(ZN),-1) Q:ZN=""  I $P(@IZXML@(ZN),"<"_ZI,2)=">" Q  ;
+ . F  S ZN=$O(@IZXML@(ZN),-1) Q:ZN=""  I $E($P(@IZXML@(ZN),"<"_ZI,2),1,1)=">" Q  ;
  . S OUTBUF(ZI,ZN)=""
  S ZA=1,ZI="",ZN=""
