diff --git a/p/C0CACTOR.m b/p/C0CACTOR.m index 8ff4b99..9308166 100644 --- a/p/C0CACTOR.m +++ b/p/C0CACTOR.m @@ -84,9 +84,18 @@ EXTRACT(IPXML,ALST,AXML) ; EXTRACT ACTOR FROM ALST INTO PROVIDED XML TEMPLATE ; 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) S @AMAP@("ACTORMIDDLENAME")=$$MIDDLE^C0CDPT(AIEN) @@ -138,6 +147,9 @@ PATIENT(INXML,AIEN,AOID,OUTXML) ; PROCESS A PATIENT ACTOR S @AMAP@("ACTORIEN")=AIEN 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 ; diff --git a/p/C0CXPATH.m b/p/C0CXPATH.m index 710ee30..929d862 100644 --- a/p/C0CXPATH.m +++ b/p/C0CXPATH.m @@ -225,6 +225,7 @@ INDEX(IZXML,VDX,NOINX,TEMPLATE) ; parse XML in IZXML and produce an XPATH index S DVDX=0 ; DEFAULT DO NOT PRODUCE VDX INDEX 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 . S LINE=@IZXML@(I) @@ -308,7 +309,7 @@ MKLASD(OUTBUF,INARY) ; CREATE A LOOKASIDE BUFFER FOR MULTILPLES S ZI="" 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="" F S ZI=$O(OUTBUF(ZI)) Q:ZI="" D ; ADDING THE COUNT FOR THE MULIPLES [x]