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

EDPWSLM.m

Go to the documentation of this file.
  1. EDPWSLM ;SLC/KCM - Load & Register Models ;2/28/12 08:33am
  1. ;;2.0;EMERGENCY DEPARTMENT;;May 2, 2012;Build 103
  1. ;
  1. BLDMDL(EDPCTXT,MIENS,MODELS) ; Build models as array to convert to XML
  1. ; returned XML will be:
  1. ;
  1. ; <model name={full class name} type={visit|reference}>
  1. ; <data>{xml specific for this model}</data>
  1. ; <state>{xml for uncommitted state for this model}</state>
  1. ; </model>
  1. ; ...
  1. ;
  1. ; Structures to track which models have been sent to client:
  1. ;
  1. ; ^XTMP("EDPWSV-dfn-session",0)=DT+1^DT^EDIS Visit Models
  1. ; ^XTMP("EDPWSV-dfn-session",IEN)=1 if fresh ^ DUZ
  1. ; ^XTMP("EDPWSR-area-session",0)=DT+1^DT
  1. ; ^XTMP("EDPWSR-area-session",IEN)=1 if fresh ^ DUZ
  1. ;
  1. ; Structure to keep uncommitted state
  1. ;
  1. ; ^XTMP("EDPWS-dfn-duz",IEN,n)={uncommitted data XML}
  1. ;
  1. ; Models desired: MIENS(ptr 232.72)=""
  1. ;
  1. N IEN,VROOT,RROOT,WROOT,MTYPE,LOADCALL
  1. S VROOT="EDPWSV-"_EDPCTXT("dfn")_"-"_EDPCTXT("session")
  1. S RROOT="EDPWSR-"_EDPCTXT("area")_"-"_EDPCTXT("session")
  1. S WROOT="EDPWS-"_EDPCTXT("dfn")_"-"_DUZ
  1. S IEN=0 F S IEN=$O(MIENS(IEN)) Q:'IEN D ; loop thru models req'd by client
  1. . S MTYPE=$P(^EDPB(232.72,IEN,0),U,4)
  1. . I MTYPE="V",$G(^XTMP(VROOT,IEN)) Q ; client visit model still fresh
  1. . I MTYPE="R",$G(^XTMP(RROOT,IEN)) Q ; client ref model still fresh
  1. . S EDPCTXT("model")=IEN
  1. . S LOADCALL=$P($G(^EDPB(232.72,IEN,1)),U,1,2)
  1. . Q:'$L(LOADCALL)
  1. . I $P(^EDPB(232.72,IEN,1),U,3) D
  1. . . N EDPXML
  1. . . D @(LOADCALL_"(.EDPCTXT)")
  1. . . D TOARR^EDPXML(.EDPXML,.EDPDATA)
  1. . E D @(LOADCALL_"(.EDPCTXT,.EDPDATA)")
  1. . I $D(EDPDATA) M MODELS("model",IEN,"data",1)=EDPDATA
  1. . K EDPDATA
  1. . ; add any uncommitted state
  1. . I $D(^XTMP(WROOT,IEN))>1 M MODELS("model",IEN,"state",1)=^XTMP(WROOT,IEN)
  1. ;
  1. ; NOTE: when updating the structures that track models
  1. ; F S X=$O(^XTMP("EDPWSV-dfn")) Q:$P(X,"-",2)'=DFN D
  1. ; . S ^XTMP(X,moniker)=0 ; check DUZ, logID etc.
  1. Q