1 | C0CMXP ; GPL - MXML based XPath utilities;12/04/09 17:05
|
---|
2 | ;;0.1;C0C;nopatch;noreleasedate
|
---|
3 | ;Copyright 2009 George Lilly. Licensed under the terms of the GNU
|
---|
4 | ;General Public License See attached copy of the License.
|
---|
5 | ;
|
---|
6 | ;This program is free software; you can redistribute it and/or modify
|
---|
7 | ;it under the terms of the GNU General Public License as published by
|
---|
8 | ;the Free Software Foundation; either version 2 of the License, or
|
---|
9 | ;(at your option) any later version.
|
---|
10 | ;
|
---|
11 | ;This program is distributed in the hope that it will be useful,
|
---|
12 | ;but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
13 | ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
---|
14 | ;GNU General Public License for more details.
|
---|
15 | ;
|
---|
16 | ;You should have received a copy of the GNU General Public License along
|
---|
17 | ;with this program; if not, write to the Free Software Foundation, Inc.,
|
---|
18 | ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
---|
19 | ;
|
---|
20 | Q
|
---|
21 | ;
|
---|
22 | TEST ;
|
---|
23 | S C0CXMLIN=$NA(^TMP("C0CMXML",$J))
|
---|
24 | K GARY
|
---|
25 | W $$FTG^%ZISH("/home/vademo2/EHR/p/","mxml-test.xml",$NA(@C0CXMLIN@(1)),3)
|
---|
26 | S C0CDOCID=$$PARSE(C0CXMLIN) W !,"DocID: ",C0CDOCID
|
---|
27 | S REDUX="//ContinuityOfCareRecord/Body"
|
---|
28 | D XPATH(1,"/","GIDX","GARY",,REDUX)
|
---|
29 | Q
|
---|
30 | ;
|
---|
31 | TEST2 ;
|
---|
32 | S REDUX="//soap:Envelope/soap:Body/GetPatientFullMedicationHistory5Response/GetPatientFullMedicationHistory5Result/patientDrugDetail"
|
---|
33 | D XPATH(1,"/","GIDX","GARY","",REDUX)
|
---|
34 | Q
|
---|
35 | ;
|
---|
36 | TEST3
|
---|
37 | S C0CXMLIN=$NA(^TMP("C0CMXML",$J))
|
---|
38 | K GARY,GTMP,GIDX
|
---|
39 | K @C0CXMLIN
|
---|
40 | W $$FTG^%ZISH("/home/vademo2/CCR/","SampleCCDDocument.xml",$NA(@C0CXMLIN@(1)),3)
|
---|
41 | D CLEANARY("GTMP",C0CXMLIN) ; REMOVE CONTROL CHARACTERS
|
---|
42 | K @C0CXMLIN
|
---|
43 | M @C0CXMLIN=GTMP
|
---|
44 | K GTMP
|
---|
45 | D STRIPTXT("GTMP",C0CXMLIN)
|
---|
46 | K @C0CXMLIN
|
---|
47 | M @C0CXMLIN=GTMP
|
---|
48 | K GTMP
|
---|
49 | S C0CDOCID=$$PARSCCD(C0CXMLIN,"W") W !,"DocID: ",C0CDOCID
|
---|
50 | S REDUX="//ClinicalDocument/component/structuredBody"
|
---|
51 | D FINDTID ; FIND THE TEMPLATE IDS
|
---|
52 | D FINDALT ; FIND ALTERNATE TAGS
|
---|
53 | D SETCBK ; SET THE CALLBACK ROUTINE FOR TAGS
|
---|
54 | D XPATH(1,"/","GIDX","GARY",,REDUX)
|
---|
55 | K C0CCBK("TAG")
|
---|
56 | D SEPARATE("GARY2","GARY") ; SEPARATE FOR EASIER BROWSING
|
---|
57 | ;S C0CDOCID=$$PARSE(C0CXMLIN) W !,"DOCID: ",C0CDOCID ;CALL REGULAR PARSER
|
---|
58 | ;D XPATH(1,"/","GIDX2","GARY2",,REDUX)
|
---|
59 | Q
|
---|
60 | ;
|
---|
61 | TEST4 ; TEST OF OUTPUTING AN XML FILE FROM THE DOM .. this one is the CCR
|
---|
62 | ;
|
---|
63 | D TEST ; SET UP THE DOM
|
---|
64 | D START^C0CMXMLB($$TAG(1),,"G")
|
---|
65 | D NDOUT($$FIRST(1))
|
---|
66 | D END^C0CMXMLB ;END THE DOCUMENT
|
---|
67 | M ZCCR=^TMP("MXMLBLD",$J)
|
---|
68 | ZWR ZCCR
|
---|
69 | Q
|
---|
70 | ;
|
---|
71 | TEST5 ; SAME AS TEST4, BUT THIS TIME THE CCD
|
---|
72 | S C0CXMLIN=$NA(^TMP("C0CMXML",$J))
|
---|
73 | K GARY,GTMP,GIDX
|
---|
74 | K @C0CXMLIN
|
---|
75 | W $$FTG^%ZISH("/home/vademo2/CCR/","SampleCCDDocument.xml",$NA(@C0CXMLIN@(1)),3)
|
---|
76 | D CLEANARY("GTMP",C0CXMLIN) ; REMOVE CONTROL CHARACTERS
|
---|
77 | K @C0CXMLIN
|
---|
78 | M @C0CXMLIN=GTMP
|
---|
79 | K GTMP
|
---|
80 | D STRIPTXT("GTMP",C0CXMLIN)
|
---|
81 | K @C0CXMLIN
|
---|
82 | M @C0CXMLIN=GTMP
|
---|
83 | K GTMP
|
---|
84 | S C0CDOCID=$$PARSE(C0CXMLIN) W !,"DOCID: ",C0CDOCID ;CALL REGULAR PARSER
|
---|
85 | ;D XPATH(1,"/","GIDX2","GARY2",,REDUX)
|
---|
86 | D OUTXML("ZCCD",C0CDOCID)
|
---|
87 | ;D START^C0CMXMLB($$TAG(1),,"G")
|
---|
88 | ;D NDOUT($$FIRST(1))
|
---|
89 | ;D END^C0CMXMLB ;END THE DOCUMENT
|
---|
90 | ;M ZCCD=^TMP("MXMLBLD",$J)
|
---|
91 | ZWR ZCCD(1:30)
|
---|
92 | Q
|
---|
93 | ;
|
---|
94 | MKTPLATE(INXML,OUTT) ;MAKE A TEMPLATE FROM INXML, RETURNED IN OUTT
|
---|
95 | ; BOTH PASSED BY NAME
|
---|
96 | ;
|
---|
97 | S C0CDOCID=$$PARSE(INXML,"C0CMKT")
|
---|
98 | S C0CDOM=$NA(^TMP("MXMLDOM",$J,C0CDOCID))
|
---|
99 | N ZI S ZI=""
|
---|
100 | F S ZI=$O(@C0CDOM@(ZI)) Q:ZI="" D ; FOR EACH NODE IN THE DOM
|
---|
101 | . W !,ZI,$$TAG(ZI)
|
---|
102 | Q
|
---|
103 | ;
|
---|
104 | UPDIE ; INTERNAL ROUTINE TO CALL UPDATE^DIE AND CHECK FOR ERRORS
|
---|
105 | K ZERR
|
---|
106 | D CLEAN^DILF
|
---|
107 | D UPDATE^DIE("","C0CFDA","","ZERR")
|
---|
108 | I $D(ZERR) D ;
|
---|
109 | . W "ERROR",!
|
---|
110 | . ZWR ZERR
|
---|
111 | . B
|
---|
112 | K C0CFDA
|
---|
113 | Q
|
---|
114 | ;
|
---|