source: ccr/trunk/p/C0CMXP.m@ 630

Last change on this file since 630 was 630, checked in by George Lilly, 14 years ago

reorganizing MXML routines

File size: 3.4 KB
Line 
1C0CMXP ; 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 ;
22TEST ;
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 ;
31TEST2 ;
32 S REDUX="//soap:Envelope/soap:Body/GetPatientFullMedicationHistory5Response/GetPatientFullMedicationHistory5Result/patientDrugDetail"
33 D XPATH(1,"/","GIDX","GARY","",REDUX)
34 Q
35 ;
36TEST3
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 ;
61TEST4 ; 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 ;
71TEST5 ; 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 ;
94MKTPLATE(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 ;
104UPDIE ; 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 ;
Note: See TracBrowser for help on using the repository browser.