Index: /ccr/trunk/p/C0CMXML.m
===================================================================
--- /ccr/trunk/p/C0CMXML.m	(revision 616)
+++ /ccr/trunk/p/C0CMXML.m	(revision 617)
@@ -29,37 +29,4 @@
 	Q
 	;
-TEST4 ; TEST OF OUTPUTING AN XML FILE FROM THE DOM .. this one is the CCR
- ;
- D TEST ; SET UP THE DOM
- D START^C0CMXMLB($$TAG(1),,"G")
- D NDOUT($$FIRST(1))
- D END^C0CMXMLB ;END THE DOCUMENT
- M ZCCR=^TMP("MXMLBLD",$J)
- ZWR ZCCR
- Q
- ;
-TEST5 ; SAME AS TEST4, BUT THIS TIME THE CCD
- S C0CXMLIN=$NA(^TMP("C0CMXML",$J))
- K GARY,GTMP,GIDX
- K @C0CXMLIN
- W $$FTG^%ZISH("/home/vademo2/CCR/","SampleCCDDocument.xml",$NA(@C0CXMLIN@(1)),3)
- D CLEANARY("GTMP",C0CXMLIN) ; REMOVE CONTROL CHARACTERS
- K @C0CXMLIN
- M @C0CXMLIN=GTMP
- K GTMP
- D STRIPTXT("GTMP",C0CXMLIN)
- K @C0CXMLIN
- M @C0CXMLIN=GTMP
- K GTMP
- S C0CDOCID=$$PARSE(C0CXMLIN) W !,"DOCID: ",C0CDOCID  ;CALL REGULAR PARSER
- ;D XPATH(1,"/","GIDX2","GARY2",,REDUX)
- D OUTXML("ZCCD",C0CDOCID)
- ;D START^C0CMXMLB($$TAG(1),,"G")
- ;D NDOUT($$FIRST(1))
- ;D END^C0CMXMLB ;END THE DOCUMENT
- ;M ZCCD=^TMP("MXMLBLD",$J)
- ZWR ZCCD(1:30)
- Q
- ; 
 TEST2	;
 	S REDUX="//soap:Envelope/soap:Body/GetPatientFullMedicationHistory5Response/GetPatientFullMedicationHistory5Result/patientDrugDetail"
@@ -92,4 +59,37 @@
  Q
  ;
+TEST4 ; TEST OF OUTPUTING AN XML FILE FROM THE DOM .. this one is the CCR
+ ;
+ D TEST ; SET UP THE DOM
+ D START^C0CMXMLB($$TAG(1),,"G")
+ D NDOUT($$FIRST(1))
+ D END^C0CMXMLB ;END THE DOCUMENT
+ M ZCCR=^TMP("MXMLBLD",$J)
+ ZWR ZCCR
+ Q
+ ;
+TEST5 ; SAME AS TEST4, BUT THIS TIME THE CCD
+ S C0CXMLIN=$NA(^TMP("C0CMXML",$J))
+ K GARY,GTMP,GIDX
+ K @C0CXMLIN
+ W $$FTG^%ZISH("/home/vademo2/CCR/","SampleCCDDocument.xml",$NA(@C0CXMLIN@(1)),3)
+ D CLEANARY("GTMP",C0CXMLIN) ; REMOVE CONTROL CHARACTERS
+ K @C0CXMLIN
+ M @C0CXMLIN=GTMP
+ K GTMP
+ D STRIPTXT("GTMP",C0CXMLIN)
+ K @C0CXMLIN
+ M @C0CXMLIN=GTMP
+ K GTMP
+ S C0CDOCID=$$PARSE(C0CXMLIN) W !,"DOCID: ",C0CDOCID  ;CALL REGULAR PARSER
+ ;D XPATH(1,"/","GIDX2","GARY2",,REDUX)
+ D OUTXML("ZCCD",C0CDOCID)
+ ;D START^C0CMXMLB($$TAG(1),,"G")
+ ;D NDOUT($$FIRST(1))
+ ;D END^C0CMXMLB ;END THE DOCUMENT
+ ;M ZCCD=^TMP("MXMLBLD",$J)
+ ZWR ZCCD(1:30)
+ Q
+ ; 
 XPATH(ZOID,ZPATH,ZXIDX,ZXPARY,ZNUM,ZREDUX)	; RECURSIVE ROUTINE TO POPULATE
 	; THE XPATH INDEX ZXIDX, PASSED BY NAME
@@ -181,13 +181,13 @@
  ;
 NDOUT(ZOID) ;CALLBACK ROUTINE - IT IS RECURSIVE
- I $$FIRST(ZOID)'=0 D  ; THERE IS A CHILD
- . N ZI S ZI=$$FIRST(ZOID)
- . N ZATT D ATT("ZATT",ZOID)
- . D MULTI^C0CMXMLB("",$$TAG(ZOID),.ZATT,"NDOUT^C0CMXML(ZI)")
- E  D  ; NO CHILD
+ N ZI S ZI=$$FIRST(ZOID)
+ I ZI'=0 D  ; THERE IS A CHILD
+ . N ZATT D ATT("ZATT",ZOID) ; THESE ARE THE ATTRIBUTES MOVED TO ZATT
+ . D MULTI^C0CMXMLB("",$$TAG(ZOID),.ZATT,"NDOUT^C0CMXML(ZI)") ;HAVE CHILDREN
+ E  D  ; NO CHILD - IF NO CHILDREN, A NODE HAS DATA, IS AN ENDPOINT
  . ;W "DOING",ZOID,!
- . N ZD D DATA("ZD",ZOID)
- . N ZATT D ATT("ZATT",ZOID)
- . D ITEM^C0CMXMLB("",$$TAG(ZOID),.ZATT,$G(ZD(1)))
+ . N ZD D DATA("ZD",ZOID) ;NODES WITHOUT CHILDREN HAVE DATA
+ . N ZATT D ATT("ZATT",ZOID) ;ATTRIBUTES
+ . D ITEM^C0CMXMLB("",$$TAG(ZOID),.ZATT,$G(ZD(1))) ;NO CHILDREN
  I $$NXTSIB(ZOID)'=0 D  ; THERE IS A SIBLING
  . D NDOUT($$NXTSIB(ZOID)) ;RECURSE FOR SIBLINGS
@@ -332,4 +332,9 @@
  . . W ZI," ",TAG," ",ALTTAG," ",NAME,!
  . . S C0CTAGS(ZI)=ALTTAG
+ . E  D  ; NOT A SECTION NODE
+ . . N ZJ
+ . . S ZJ=$O(^C0CXDS(178.101,"D",ZIEN,ZPAR,"") ;IS THERE A WHEREUSED POINTER?
+ . . I ZJ'="" D  ; THERE IS A NEW LABEL FOR THIS NODE
+ . . . ;S C0CTAGS(ZI)=$$GET1^DIQ(178.101
  Q
  ;
