Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: VPRHST1

VPRHST1.m

Go to the documentation of this file.
  1. VPRHST1 ;SLC/KCM,MKB - Display XML object ;09/18/18 4:36pm
  1. ;;1.0;VIRTUAL PATIENT RECORD;**8,25,27**;Sep 01, 2011;Build 10
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. XML(OBJ) ; -- display XML OBJect in hierarchy, returns DONE if ^
  1. N XSTRING,ORSTK,ORNXT,ORCNT K DONE,QUIT
  1. S XSTRING=$G(OBJ) Q:'$L(XSTRING)
  1. S ORSTK=-1,ORCNT=0 D OPEN
  1. ;
  1. F S ORNXT=$E(XSTRING,1,2) D @$S(ORNXT="</":"CLOSE",ORNXT?1"<"1.A.E:"OPEN",1:"XDATA") Q:XSTRING="" Q:$G(DONE)
  1. Q
  1. ;
  1. OPEN ; -- opening tag
  1. N TAG S TAG=$P(XSTRING,">")_">",XSTRING=$E(XSTRING,$L(TAG)+1,999999999)
  1. S ORCNT=ORCNT+1 I ORCNT>(IOSL-4) D READ Q:$G(DONE) S ORCNT=1
  1. S ORSTK=ORSTK+1 W !,?((ORSTK*2)),TAG
  1. Q
  1. ;
  1. XDATA ; -- data + closing tag
  1. N DATA,TAG
  1. S DATA=$P(XSTRING,"</") W DATA
  1. S XSTRING=$E(XSTRING,$L(DATA)+1,999999999)
  1. S TAG=$P(XSTRING,">")_">" W TAG
  1. S XSTRING=$E(XSTRING,$L(TAG)+1,999999999),ORSTK=ORSTK-1
  1. Q
  1. ;
  1. CLOSE ; -- closing tag, pop stack
  1. N TAG S TAG=$P(XSTRING,">")_">",XSTRING=$E(XSTRING,$L(TAG)+1,999999999)
  1. S ORCNT=ORCNT+1 I ORCNT>(IOSL-4) D READ Q:$G(DONE) S ORCNT=1
  1. W !,?((ORSTK*2)),TAG S ORSTK=ORSTK-1
  1. Q
  1. ;
  1. READ ; -- continue?
  1. N X K DONE,QUIT
  1. R1 W !!,"Press <return> to continue or ^ to exit item ..." R X:DTIME
  1. I X["?" W !,"Enter ^ to skip the rest of this item, or ^^ to exit the option." G R1
  1. S:X["^" DONE=1 S:X["^^" QUIT=1
  1. Q
  1. ;
  1. JSON(OBJ) ; -- display JSON OBJect in hierarchy, returns DONE if ^
  1. N XSTRING,ORSTK,ORNXT,ORCNT
  1. S XSTRING=$G(OBJ) Q:'$L(XSTRING)
  1. S ORSTK=-1,ORCNT=0
  1. ;
  1. F D TAG S ORNXT=$E(XSTRING) D @$S(ORNXT="{":"BRACE",ORNXT="[":"LIST",1:"JDATA") Q:XSTRING="" Q:$G(DONE)
  1. Q
  1. ;
  1. TAG ; -- display tag
  1. N TAG S TAG=$P(XSTRING,":")_":",XSTRING=$E(XSTRING,$L(TAG)+1,999999999)
  1. S ORCNT=ORCNT+1 I ORCNT>(IOSL-4) D READ Q:$G(DONE) S ORCNT=1
  1. S ORSTK=ORSTK+1 W !,?((ORSTK*2)),TAG
  1. Q
  1. ;
  1. BRACE ; -- braces
  1. W "{"
  1. S XSTRING=$E(XSTRING,2,999999999)
  1. Q
  1. ;
  1. LIST ; -- list
  1. W "["
  1. S XSTRING=$E(XSTRING,2,999999999)
  1. ; ??
  1. Q
  1. ;
  1. JDATA ; -- display value, pop stack
  1. N X,I S X=$P(XSTRING,", ")
  1. S:$E(XSTRING,$L(X)+1,$L(X)+2)=", " X=X_", "
  1. S XSTRING=$E(XSTRING,$L(X)+1,999999999)
  1. W X S ORSTK=ORSTK-1
  1. ; pop stack one more time for every closing brace
  1. F I=1:1:$L(X) I $E(X,I)="}" S ORSTK=ORSTK-1
  1. Q