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

ORWEB.m

Go to the documentation of this file.
ORWEB ;SLC/JM - HTML DIALOG WEB CONTENT ;Jan 21, 2025@11:23:21
 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**508**;Dec 17, 1997;Build 39
 ;
 Q
GETWEBCONTENT(RESULTS,INPUTJSON) ;
 N INPUT,NAME,IEN,INDEX,IDX,SIDX,SIEN,JSON,ERROR,ROOT,X0,SYSTEM
 S JSON("success")="false",(INDEX,SYSTEM,IEN)=0
 D DECODE^XLFJSON("INPUTJSON","INPUT","ERROR")
 I $D(ERROR) D  G GETWEBCONTENTX
 . S JSON("error","\",1)="Invalid Input JSON"_$C(13)_$C(10)
 . S IDX=0 F  S IDX=$O(ERROR(IDX)) Q:'IDX  D
 .. S JSON("error","\",IDX+1)=ERROR(IDX)_$C(13)_$C(10)
 S NAME=$G(INPUT("contentName"))
 I $D(INPUT("system")) S SYSTEM=1
 I NAME="",'SYSTEM S JSON("error")="No content name entered" G GETWEBCONTENTX
 I NAME'="" D
 . S IEN=$O(^ORW(101.76,"B",NAME,0)) I 'IEN D  G GETWEBCONTENTX
 . . S JSON("error")="Web content '"_NAME_"' not found."
 S ROOT="JSON(""contents"","
 I SYSTEM D
 . S SIEN=0 F  S SIEN=$O(^ORW(101.76,SIEN)) Q:'SIEN  D
 . . I '+$P($G(^ORW(101.76,SIEN,0)),U,3) Q
 . . D GETCONTENT(ROOT,SIEN)
 I IEN D
 . S X0=$G(^ORW(101.76,IEN,0))
 . I $O(^ORW(101.76,IEN,1,0)) D GETCONTENT(ROOT,IEN)
 . S IDX=0 F  S IDX=$O(^ORW(101.76,IEN,2,"B",IDX)) Q:'IDX  D
 . . S SIDX=$O(^ORW(101.76,IEN,2,"B",IDX,0))
 . . S SIEN=$P($G(^ORW(101.76,IEN,2,SIDX,0)),U,2)
 . . D GETCONTENT(ROOT,SIEN)
 S JSON("success")="true"
GETWEBCONTENTX ;
 D ENCODE^XLFJSON("JSON","RESULTS","ERROR")
 Q
 ;
GETWEBCONTENTID(RESULTS,INPUT) ;
 N IEN,INDEX,IDX,SIDX,SIEN,JSON,ERROR,ROOT,X0,SYSTEM
 S (INDEX,SYSTEM,IEN)=0
 S IEN=$G(INPUT("id")) I IEN=0 Q
 I $D(INPUT("system")) S SYSTEM=1
 S ROOT="JSON(""contents"","
 I SYSTEM D
 . S SIEN=0 F  S SIEN=$O(^ORW(101.76,SIEN)) Q:'SIEN  D
 . . I '+$P($G(^ORW(101.76,SIEN,0)),U,3) Q
 . . D GETCONTENT(ROOT,SIEN)
 I IEN D
 . S X0=$G(^ORW(101.76,IEN,0))
 . I $O(^ORW(101.76,IEN,1,0)) D GETCONTENT(ROOT,IEN)
 . S IDX=0 F  S IDX=$O(^ORW(101.76,IEN,2,"B",IDX)) Q:'IDX  D
 . . S SIDX=$O(^ORW(101.76,IEN,2,"B",IDX,0))
 . . S SIEN=$P($G(^ORW(101.76,IEN,2,SIDX,0)),U,2)
 . . D GETCONTENT(ROOT,SIEN)
 S JSON("success")="true"
GETWEBCONTENTIDX ;
 M RESULTS=JSON
 Q
 ;
GETCONTENT(ROOT,IEN) ;
 N X0,IDX,TYPEIEN,TYPE,LINE
 S X0=$G(^ORW(101.76,IEN,0))
 S TYPEIEN=$P(X0,U,2) I '+TYPEIEN Q
 S TYPE=$P($G(^ORW(101.77,TYPEIEN,0)),U,2) I TYPE="" Q
 S INDEX=INDEX+1,ROOT=ROOT_INDEX_")"
 S @ROOT@("name")=$P(X0,U)
 S @ROOT@("contentType")=TYPE
 I +$P(X0,U,3) S @ROOT@("reservedForSystem")="true"
 S IDX=0 F  S IDX=$O(^ORW(101.76,IEN,1,IDX)) Q:'IDX  D
 . S LINE=$G(^ORW(101.76,IEN,1,IDX,0))
 . S @ROOT@("data","\",IDX)=$$REMOVECOMMENTS(LINE)
 Q
 ;
REMOVECOMMENTS(TEXT) ; Remove comments but not URLs
 N LINE,POS,DONE
 S LINE=TEXT
 S POS=1,DONE=0 F  D  Q:DONE
 . S DONE=1,POS=$F(LINE,"//",POS) I POS>0 D
 .. I $E(LINE,POS-3)=":" S DONE=0
 .. E  S LINE=$E(LINE,1,POS-3)
 Q LINE
 ;