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

EDPWSP.m

Go to the documentation of this file.
  1. EDPWSP ;SLC/KCM - Preserve Worksheet State ;3/1/12 10:40am
  1. ;;2.0;EMERGENCY DEPARTMENT;;May 2, 2012;Build 103
  1. ;
  1. PRESERVE(REQ) ; loop thru XML and preserve nodes for each model/plugin
  1. ;
  1. ; Source (XML passed in via REQ("preserve",n)):
  1. ;
  1. ; <worksheet id={worksheetIEN} scroll={scrollPosition}>
  1. ; <section id={sectionIEN} open={true|false}>
  1. ; <state>{XML for visual state of plugin}</state>
  1. ; </section>
  1. ; ...
  1. ; </worksheet>
  1. ; <models>
  1. ; <model name={unique name} >
  1. ; <state>{uncommitted data}</state>
  1. ; </model>
  1. ; ...
  1. ; </models>
  1. ;
  1. ; Destination:
  1. ;
  1. ; ^XTMP("EDPWSS-log-duz",0)=DT+7^DT^Worksheet State
  1. ; ^XTMP("EDPWSS-log-duz",worksheetID)={scroll position}
  1. ; ^XTMP("EDPWSS-log-duz",worksheetID,sectionID)={isOpen}
  1. ; ^XTMP("EDPWSS-log-duz",worksheetID,sectionID,...)={visual state XML}
  1. ; ^XTMP("EDPWSS-log-duz",modelID,...)={uncommitted data XML}
  1. ;
  1. N WSXML,STATE,XROOT,LOG
  1. M WSXML=REQ("preserve") K REQ("preserve")
  1. D TOARR^EDPXML(.WSXML,.STATE,"preserve") K WSXML
  1. S LOG=$G(REQ("log",1)) Q:'LOG
  1. S XROOT="EDPWSS-"_LOG_"-"_DUZ
  1. S ^XTMP(XROOT,0)=$$FMADD^XLFDT(DT,1)_U_DT_U_"EDIS Worksheet State"
  1. D PWORKS,PMODEL
  1. Q
  1. PWORKS ; preserve worksheet state
  1. ; from: PRESERVE
  1. ; expects: STATE,XROOT
  1. N WKS,SCROLL,I,SEC,SECS,OPEN
  1. S WKS=$G(STATE("worksheet",1,"id")) Q:'WKS
  1. S SCROLL=$G(STATE("worksheet",1,"scroll"),0)
  1. S I=0 F S I=$O(STATE("worksheet",1,"section",I)) Q:'I D
  1. . S SEC=$G(STATE("worksheet",1,"section",I,"id")) Q:'SEC
  1. . S OPEN=$G(STATE("worksheet",1,"section",I,"open"))
  1. . S SECS(SEC)=OPEN
  1. . M SECS(SEC)=STATE("worksheet",1,"section",I,"state",1)
  1. S ^XTMP(XROOT,WKS)=SCROLL
  1. M ^XTMP(XROOT,WKS)=SECS
  1. Q
  1. PMODEL ; preserve state for models
  1. ; from: PRESERVE
  1. ; expects: STATE,XROOT
  1. N I,MODEL
  1. S I=0 F S I=$O(STATE("models",1,"model",I)) Q:'I D
  1. . S MODEL=$G(STATE("models",1,"model",I,"id")) Q:'MODEL
  1. . M ^XTMP(XROOT,MODEL)=STATE("models",1,"section",I,"state",1)
  1. Q
  1. SAVE(REQ) ; Save the uncommitted models from the worksheet
  1. N WSXML,STATE,VROOT,EDPCTXT
  1. M WSXML=REQ("preserve") K REQ("preserve")
  1. D TOARR^EDPXML(.WSXML,.STATE,"preserve") K WSXML
  1. D SETCTXT^EDPWSL(.EDPCTXT,.REQ)
  1. ;
  1. N I,MODEL,EDPDATA,SAVECALL
  1. S I=0 F S I=$O(STATE("models",1,"model",I)) Q:'I D
  1. . S MODEL=$G(STATE("models",1,"model",I,"id")) Q:'MODEL
  1. . M EDPDATA=STATE("models",1,"section",I,"state",1)
  1. . S SAVECALL=$P($G(^EDPB(232.72,MODEL,2)),U,1,2) Q:'$L(SAVECALL)
  1. . D @(SAVECALL_"(.EDPCTXT,.EDPDATA)")
  1. . I $G(^XTMP(VROOT,EDPCTXT("log"),MODEL)) S ^XTMP(VROOT,EDPCTXT("log"),MODEL)=0
  1. Q