Index: ccr/trunk/p/GPLACTORS.m
===================================================================
--- ccr/trunk/p/GPLACTORS.m	(revision 44)
+++ ccr/trunk/p/GPLACTORS.m	(revision 45)
@@ -4,8 +4,10 @@
            ;  PROCESS THE ACTORS SECTION OF THE CCR
            ;
-EXTRACT(IPXML,ALST,OUTXML) ; EXTRACT ACTOR FROM ALST INTO PROVIDED XML TEMPLATE
+EXTRACT(IPXML,ALST,AXML) ; EXTRACT ACTOR FROM ALST INTO PROVIDED XML TEMPLATE
            ;
-           N I,J,ATMP,FIRST,AMAP,AOID,ATYP,AIEN
-           S FIRST=1 ; NEED TO KNOW WHICH IS THE FIRST ACTOR
+           N I,J,AMAP,AOID,ATYP,AIEN
+           D CP^GPLXPATH(IPXML,AXML) ; MAKE A COPY OF ACTORS XML
+           D REPLACE^GPLXPATH(AXML,"","//Actors") ; DELETE THE INSIDES
+           W "PROCESSING ACTORS ",!
            F I=1:1:@ALST@(0) D  ; PROCESS ALL ACTORS IN THE LIST
            . I @ALST@(I)["@@" Q ; NOT A VALID ACTOR
@@ -15,4 +17,5 @@
            . I ATYP="" Q ; NOT A VALID ACTOR
            . ;
+           . W AOID_" "_ATYP_" "_AIEN,!
            . I ATYP="PATIENT" D  ; PATIENT ACTOR TYPE
            . . D QUERY^GPLXPATH(IPXML,"//Actors/ACTOR-PATIENT","ATMP")
@@ -31,11 +34,7 @@
            . . D PROVIDER("ATMP",@ALST@(I),"ATMP2")
            . ;
-           . I FIRST D  ; FIRST TIME , ONLY COPY THE ARRAY
-           . . D CP^GPLXPATH("ATMP",OUTXML) ;
-           . . S FIRST=0 ; NO LONGER THE FIRST TIME
-           . I 'FIRST D  ; ALL NON-FIRST ACTORS MUST BE INSERTED
-           . . D INSERT^GPLXPATH("ATMP","//",OUTXML) ; INSERT AT ROOT
+           . D INSINNER^GPLXPATH(AXML,"ATMP2") ; INSERT INTO ROOT
            ;
-           D MISSING^GPLXPATH(OUTXML,"ACTTMP") ; SEARCH XML FOR MISSING VARS
+           D MISSING^GPLXPATH(AXML,"ACTTMP") ; SEARCH XML FOR MISSING VARS
            I ACTTMP(0)>0  D  ; IF THERE ARE MISSING VARS -
            . ; STRINGS MARKED AS @@X@@
@@ -46,5 +45,7 @@
 PATIENT(INXML,ACTREC,OUTXML) ; PROCESS A PATIENT ACTOR
      ;
-     N AMAP
+     W "PROCESSING ACTOR PATIENT ",ACTREC,!
+     ; N AMAP
+     S AMAP=$NA(^TMP($J,"AMAP"))
      S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID
      S @AMAP@("ACTORGIVENNAME")=""
@@ -70,5 +71,6 @@
 SYSTEM(INXML,ACTREC,OUTXML) ; PROCESS A SYSTEM ACTOR
      ;
-     N AMAP
+     ; N AMAP
+     S AMAP=$NA(^TMP($J,"AMAP"))
      S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID
      S @AMAP@("ACTORINFOSYSNAME")=""
@@ -79,5 +81,6 @@
 NOK(INXML,ACTREC,OUTXML) ; PROCESS A NEXT OF KIN TYPE ACTOR
      ;
-     N AMAP
+     ; N AMAP
+     S AMAP=$NA(^TMP($J,"AMAP"))
      S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID
      S @AMAP@("ACTORDISPLAYNAME")=""
@@ -89,5 +92,6 @@
 PROVIDER(INXML,ACTREC,OUTXML) ; PROCESS A PROVIDER TYPE ACTOR
      ;
-     N AMAP
+     ; N AMAP
+     S AMAP=$NA(^TMP($J,"AMAP"))
      S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID
      S @AMAP@("ACTORGIVENNAME")=""
Index: ccr/trunk/p/GPLCCR.m
===================================================================
--- ccr/trunk/p/GPLCCR.m	(revision 44)
+++ ccr/trunk/p/GPLCCR.m	(revision 45)
@@ -67,4 +67,7 @@
     . I DEBUG F GPLI=1:1:@OXML@(0) W @OXML@(GPLI),!
     D ACTLST^GPLCCR(CCRGLO,ACTGLO) ; GEN THE ACTOR LIST
+    D QUERY^GPLXPATH(TGLOBAL,"//ContinuityOfCareRecord/Actors","ACTT")
+    D EXTRACT^GPLACTORS("ACTT",ACTGLO,"ACTT2")
+    D INSINNER^GPLXPATH(CCRGLO,"ACTT2","//ContinuityOfCareRecord/Actors")
     Q
     ;
@@ -83,5 +86,5 @@
     . S @VMAP@("ACTORPATIENT")="ACTORPATIENT_"_DFN
     . S @VMAP@("ACTORFROM")="ACTORPROVIDER_"_DUZ ; FROM DUZ - ???
-    . S @VMAP@("ACTORFROM2")="ACTORPROVIDER_"_DUZ ; NEED BETTER WAY
+    . S @VMAP@("ACTORFROM2")="ACTORSYSTEM_1" ; SECOND FROM IS THE SYSTEM
     . S @VMAP@("ACTORTO")="ACTORPATIENT_"_DFN  ; FOR TEST PURPOSES,
     . ; THIS IS THE USE CASE FOR THE PHR WHERE "TO" IS THE PATIENT
@@ -151,3 +154,7 @@
  ;;>>>D CCRRPC^GPLCCR(.GPL,"2","CCR","","","")
  ;;>>>D ACTLST^GPLCCR(GPL,"ACTTEST")
+ ;;><ACTORS>
+ ;;>>>D ZTEST^GPLCCR("ACTLST")
+ ;;>>>D QUERY^GPLXPATH(TGLOBAL,"//ContinuityOfCareRecord/Actors","G2")
+ ;;>>>D EXTRACT^GPLACTORS("G2","ACTTEST","G3")
  ;;></TEST>
