KBAIQLD ; GPL - QRDA loader entry routines ; 3/8/15 6:03pm ;;0.1;QRDA LOADER;nopatch;noreleasedate ; Q ; EN ; import QRDA files into VistA ; N ROOT S ROOT=$NA(^XTMP("KBAIQLD")) N GNX S GNX=$$FILEIN^KBAIQLDF() Q:'GNX ; N QROOT S QROOT=$NA(@ROOT@(GNX)) N QXML S QXML=$NA(@QROOT@("XML")) N QDOM S QDOM=$NA(@QROOT@("DOM")) ; D CLEANXML(QXML) ; N DOCID K ^TMP("MXMLERR",$J) S DOCID=$$PARSE^KBAIQLDE(QXML,"QRDA "_GNX) I $D(^TMP("MXMLERR",$J)) D Q . ZWR ^TMP("MXMLERR",$J,*) M @QDOM=^TMP("MXMLDOM",$J,DOCID) ; N QDOMO S QDOMO=$NA(@QROOT@("DOMO")) d domo3^KBAIQLDE(QDOMO,,,QDOM) ZWR ^XTMP("KBAIQLD",GNX,"DOMO",*) N QVARS S QVARS=$NA(@QROOT@("VARS")) d peel^KBAIQLDU(QVARS,QDOMO) Q ; CLEANXML(INXML) ; correct xml syntax errors in qrda file ; N ZI S ZI="" F S ZI=$O(@INXML@(ZI)) Q:ZI="" D ; . I @INXML@(ZI)["" D ; . . N LEFT,RIGHT . . S LEFT=$P(@INXML@(ZI),"",1) . . S @INXML@(ZI)=LEFT_"" . I @INXML@(ZI)["" D ; . . N LEFT,RIGHT . . S LEFT=$P(@INXML@(ZI),"",1) . . S @INXML@(ZI)=LEFT_"" . I @INXML@(ZI)["" D ; . . N LEFT,RIGHT . . S LEFT=$P(@INXML@(ZI),"",1) . . S @INXML@(ZI)=LEFT_"" Q ; wsQRDA(RTN,FILTER) ; display an imported QRDA xml file ; N GNX S GNX=$G(FILTER("ien")) Q:'GNX N GXML S GXML=$NA(^XTMP("KBAIQLD",GNX,"XML")) S RTN=$NA(^TMP("KBAIOUT",$J)) K @RTN I $G(FILTER("format"))="outline" D Q ; . S HTTPRSP("mime")="text/html" . S @RTN@(.5)="
"
 . S DIQUIET=1
 . D tree^KBAIQLDT(1,,GNX,RTN)
 . S @RTN@($O(@RTN@(""),-1)+1)="
" . D ADDCRLF^VPRJRUT(RTN) S HTTPRSP("mime")="text/xml" S RTN=GXML Q ;