upgrades to actor extract and xpath processing for eRx
This commit is contained in:
parent
4e868108b6
commit
6a3c31c484
14
p/C0CACTOR.m
14
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
|
||||
;
|
||||
|
|
|
@ -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]
|
||||
|
|
Loading…
Reference in New Issue