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

EDPBST.m

Go to the documentation of this file.
  1. EDPBST ;SLC/KCM - Staff Configuration ;5/2/12 3:36pm
  1. ;;2.0;EMERGENCY DEPARTMENT;**6**;Feb 24, 2012;Build 200
  1. ;
  1. MATCH(X) ; Return matching providers
  1. Q
  1. LOAD(AREA) ; Return nurse and provider sources, staff config
  1. N TOKEN,RIEN,RXMLNM,X0,RABBR
  1. D READL^EDPBLK(AREA,"staff",.TOKEN) ; read staff config -- LOCK
  1. D XML^EDPX("<staffToken>"_TOKEN_"</staffToken>")
  1. S RIEN=0 F S RIEN=$O(^EDPB(232.5,RIEN)) Q:'RIEN D
  1. .S X0=$G(^EDPB(232.5,RIEN,0)),RABBR=$P(X0,U,2),RXMLNM=$P(X0,U,7)
  1. .D XML^EDPX("<"_RXMLNM_">"),ACTIVE(AREA,RIEN,RABBR),XML^EDPX("</"_RXMLNM_">")
  1. ;D XML^EDPX("<providers>"),ACTIVE(AREA,"P"),XML^EDPX("</providers>")
  1. ;D XML^EDPX("<residents>"),ACTIVE(AREA,"R"),XML^EDPX("</residents>")
  1. ;D XML^EDPX("<nurses>"),ACTIVE(AREA,"N"),XML^EDPX("</nurses>")
  1. D READU^EDPBLK(AREA,"staff",.TOKEN) ; read staff config -- UNLOCK
  1. Q
  1. ACTIVE(AREA,ROLE,ABBR) ; build list of active for a role
  1. N IEN,X0,X,EDPNURS
  1. I ABBR="N" S EDPNURS=$$GET^XPAR("ALL","EDPF NURSE STAFF SCREEN")
  1. S IEN=0 F S IEN=$O(^EDPB(231.7,"AC",EDPSITE,AREA,ROLE,IEN)) Q:'IEN D
  1. . S X0=^EDPB(231.7,IEN,0)
  1. . I '$$ALLOW^EDPFPER(+X0,ABBR) Q
  1. . ;I '$$ALLOW^EDPFPER(+X0,ROLE) Q
  1. . S X("duz")=$P(X0,U)
  1. . S X("nm")=$P(^VA(200,X("duz"),0),U)
  1. . S X("role")=$P(X0,U,6) I $G(X("role")) S X("role")=$$GET1^DIQ(232.5,X("role"),.02,"E")
  1. . S X("itl")=$P(^VA(200,X("duz"),0),U,2)
  1. . S X("clr")=$P(X0,U,8)
  1. . D XML^EDPX($$XMLA^EDPX("staff",.X))
  1. Q
  1. SAVE(REQ) ; save updated staff members
  1. N X,STAFF,ERR,EDPAREA,TOKEN,LOCKERR
  1. S EDPAREA=$G(REQ("area",1))
  1. I EDPAREA="" D SAVERR^EDPX("fail","Missing Area") Q
  1. ;
  1. S TOKEN=$G(REQ("staffToken",1))
  1. D SAVEL^EDPBLK(EDPAREA,"staff",.TOKEN,.LOCKERR) ; save staff config -- LOCK
  1. I $L(LOCKERR) D SAVERR^EDPX("collide",LOCKERR),LOAD(EDPAREA) Q
  1. ;
  1. S X="staff-",ERR=""
  1. F S X=$O(REQ(X)) Q:$E(X,1,6)'="staff-" D
  1. . K STAFF S STAFF=""
  1. . D NVPARSE^EDPX(.STAFF,REQ(X,1))
  1. . I STAFF("chg") D UPD(.STAFF,.ERR)
  1. D SAVEU^EDPBLK(EDPAREA,"staff",.TOKEN) ; save staff config -- UNLOCK
  1. ;
  1. I $L(ERR) D SAVERR^EDPX("fail",ERR) Q
  1. D XML^EDPX("<save status='ok' />")
  1. D LOAD(EDPAREA)
  1. S ^EDPB(231.9,EDPAREA,231)=$H ; update choices timestamp
  1. Q
  1. UPD(FLD,ERRMSG) ; Add/Update Record (expects EDPAREA, EDPSITE to be defined)
  1. N EDPIEN
  1. S EDPIEN=$O(^EDPB(231.7,"AD",EDPSITE,EDPAREA,+FLD("duz"),0))_","
  1. I 'EDPIEN,FLD("inact") Q ; don't add inactive selection
  1. I 'EDPIEN S EDPIEN="+1,"
  1. ;
  1. N FDA,FDAIEN,DIERR,ERR
  1. S FDA(231.7,EDPIEN,.01)=FLD("duz")
  1. S FDA(231.7,EDPIEN,.02)=EDPSITE
  1. S FDA(231.7,EDPIEN,.03)=EDPAREA
  1. S FDA(231.7,EDPIEN,.04)=FLD("inact")
  1. S FDA(231.7,EDPIEN,.06)=$S(FLD("role")="":"",1:$O(^EDPB(232.5,"C",FLD("role"),"")))
  1. ;S FDA(231.7,EDPIEN,.07)=FLD("itl") --NtoL
  1. S FDA(231.7,EDPIEN,.08)=FLD("clr")
  1. I EDPIEN="+1," D
  1. . D UPDATE^DIE("","FDA","FDAIEN","ERR")
  1. . I $D(DIERR) S ERRMSG=ERRMSG_"Adding "_FLD("name")_" failed. "
  1. E D
  1. . D FILE^DIE("","FDA","ERR")
  1. . I $D(DIERR) S ERRMSG=ERRMSG_"Updating "_FLD("name")_" failed. "
  1. Q