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

EDPWSL.m

Go to the documentation of this file.
  1. EDPWSL ;SLC/KCM - Load Worksheet and Models ;3/1/12 10:43am
  1. ;;2.0;EMERGENCY DEPARTMENT;;May 2, 2012;Build 103
  1. ;
  1. LOAD(REQ) ; Load Worksheet and Models (data)
  1. ; expected: area, log, role, dfn
  1. ; optional: worksheet, preserve XML
  1. ;
  1. ; -- save the previous worksheet state, if any
  1. D PRESERVE^EDPWSP(.REQ)
  1. ; -- set context
  1. N EDPCTXT,WKS,MIENS,SPEC,MODELS
  1. D SETCTXT(.EDPCTXT,.REQ)
  1. DB ; -- determine worksheet
  1. S WKS=$G(REQ("worksheet",1))
  1. I 'WKS S WKS=$$DFLTWKS(EDPCTXT("role"),EDPCTXT("area"))
  1. I 'WKS D XML^EDPX("<worksheet />") Q ;TODO -- trigger error section?
  1. ;
  1. D BLDWS(WKS,.SPEC,.MIENS)
  1. D BLDMDL^EDPWSLM(.EDPCTXT,.MIENS,.MODELS)
  1. ; put it all together and return the XML
  1. M MODELS("worksheet",1)=SPEC K SPEC
  1. D TOXML^EDPXML(.MODELS,.EDPXML) K MODELS
  1. Q
  1. DFLTWKS(ROLE,AREA) ; Return default worksheet for this role
  1. N IEN S IEN=$O(^EDPB(232.5,"C",EDPSITE,AREA,ROLE,0))
  1. Q:'IEN 0
  1. Q $P(^EDPB(232.5,IEN,0),U,4)
  1. ;
  1. BLDWS(WSID,SPEC,MIENS) ; build XML for worksheet
  1. ;
  1. ; returned XML:
  1. ;
  1. ; <worksheet id={worksheetIEN} name={worksheetName} scroll={lastScrollPos}>
  1. ; <section detailPlugin={full class name} displayName={name} id={sectionIEN}
  1. ; initialOpen={false|true} summaryPlugin={full class name} taskType={1|2|3} >
  1. ; <config>{configuration XML for plugin</config>
  1. ; <state>{visual state XML</state>
  1. ; <model id={modelIEN} name={full class name for required model}/>
  1. ; ...
  1. ; </section>
  1. ; ...
  1. ; </worksheet>
  1. ;
  1. ; worksheet state saved in:
  1. ;
  1. ; ^XTMP("EDPWS-dfn-duz",0)=DT+7^DT^Worksheet State
  1. ; ^XTMP("EDPWS-dfn-duz",worksheetID)={scroll position}
  1. ; ^XTMP("EDPWS-dfn-duz",worksheetID,sectionID)={isOpen}
  1. ; ^XTMP("EDPWS-dfn-duz",worksheetID,sectionID,n)={visual state XML}
  1. ; ^XTMP("EDPWS-dfn-duz",modelID,n)={uncommitted data XML}
  1. ;
  1. N SEQ,SEQ1,SECID,WROOT
  1. ; -- load the worksheet spec
  1. D GETWKS^EDPBWS(WSID,.SPEC)
  1. S WROOT="EDPWS-"_EDPCTXT("dfn")_"-"_DUZ
  1. S SPEC("scroll")=+$G(^XTMP(WROOT,WSID))
  1. ; -- iterate thru loaded sections
  1. S SEQ=0 F S SEQ=$O(SPEC("section",SEQ)) Q:'SEQ D
  1. . S SECID=SPEC("section",SEQ,"id")
  1. . ; -- apply visual state to section
  1. . I $D(^XTMP(WROOT,WSID,SECID)) D
  1. . . S SPEC("section",SEQ,"initialOpen")=$G(^XTMP(WROOT,WSID,SECID),SPEC("section",SEQ,"initialOpen"))
  1. . . ; TODO: load the XML visual state
  1. . ; -- build list of unique models
  1. . S SEQ1=0 F S SEQ1=$O(SPEC("section",SEQ,"model",SEQ1)) Q:'SEQ1 D
  1. . . S MIENS(SPEC("section",SEQ,"model",SEQ1,"id"))=""
  1. Q
  1. SETCTXT(EDPCTXT,REQ) ; Set the context from the request
  1. S EDPCTXT("area")=$G(REQ("area",1))
  1. S EDPCTXT("log")=$G(REQ("log",1))
  1. S EDPCTXT("dfn")=$G(REQ("dfn",1))
  1. S EDPCTXT("role")=$G(REQ("role",1))
  1. S EDPCTXT("session")=$G(REQ("session",1))
  1. Q
  1. TEST ;
  1. S EDPSITE=DUZ(2)
  1. S REQ("area",1)=1
  1. S REQ("log",1)=11
  1. S REQ("dfn",1)=100642
  1. S REQ("role",1)=459
  1. S REQ("session",1)=12345
  1. D LOAD(.REQ)
  1. ;ZW EDPXML
  1. Q