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

EDPBRM.m

Go to the documentation of this file.
  1. EDPBRM ;SLC/KCM - Room/Bed Configuration ;2/28/12 08:33am
  1. ;;2.0;EMERGENCY DEPARTMENT;**6**;Feb 24, 2012;Build 200
  1. ;
  1. LOAD(AREA) ; Load the list of rooms/beds for this area
  1. N BED,SEQ,BEDS,X0,TOKEN
  1. ;
  1. D READL^EDPBLK(AREA,"bed",.TOKEN) ; read bed config -- LOCK
  1. D XML^EDPX("<bedToken>"_TOKEN_"</bedToken>")
  1. ;
  1. ; Get a list of all the beds in sequence for this area
  1. S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D
  1. . S SEQ=$P(^EDPB(231.8,BED,0),U,5) S:'SEQ SEQ=99999
  1. . S BEDS(SEQ,BED)=""
  1. ;
  1. ; Build the XML for each bed in sequence
  1. D XML^EDPX("<beds>")
  1. S SEQ=0 F S SEQ=$O(BEDS(SEQ)) Q:'SEQ D
  1. . S BED=0 F S BED=$O(BEDS(SEQ,BED)) Q:'BED D
  1. . . S X0=^EDPB(231.8,BED,0)
  1. . . ; Patch 6 (BWF) 4/24/2013 - do not display EDIS_DEFAULT bed
  1. . . I $P(X0,U)="EDIS_DEFAULT" Q
  1. . . N X
  1. . . S X("id")=BED
  1. . . S X("name")=$P(X0,U)
  1. . . S X("site")=$P(X0,U,2)
  1. . . S X("area")=$P(X0,U,3)
  1. . . S X("inactive")=$P(X0,U,4)
  1. . . S X("seq")=$P(X0,U,5)
  1. . . S X("display")=$P(X0,U,6)
  1. . . S X("when")=$P(X0,U,7)
  1. . . S X("status")=$P(X0,U,8)
  1. . . S X("category")=$P(X0,U,9)
  1. . . S X("shared")=$P(X0,U,10)
  1. . . S X("board")=$P(X0,U,11)
  1. . . S X("color")=$P(X0,U,12)
  1. . . S X("primary")=$S($P(X0,U,13)=2:2,1:1,1:"") ; ""=unknown,1=primary,2=secondary
  1. . . D XML^EDPX($$XMLA^EDPX("bed",.X))
  1. D XML^EDPX("</beds>")
  1. ;
  1. D READU^EDPBLK(AREA,"bed",.TOKEN) ; read bed config -- UNLOCK
  1. Q
  1. SAVE(REQ,AREA) ; Save the updated bed list
  1. ; loop thru the records and update where changed
  1. N X,BED,ERR,TOKEN,LOCKERR
  1. ;
  1. S TOKEN=$G(REQ("bedToken",1))
  1. D SAVEL^EDPBLK(AREA,"bed",.TOKEN,.LOCKERR) ; save bed config -- LOCK
  1. I $L(LOCKERR) D SAVERR^EDPX("collide",LOCKERR),LOAD(AREA),DFLTRM(AREA) Q
  1. ;
  1. S X="bed-",ERR=""
  1. F S X=$O(REQ(X)) Q:$E(X,1,4)'="bed-" D
  1. . K BED S BED=""
  1. . D NVPARSE^EDPX(.BED,REQ(X,1))
  1. . S BED("name")=$$TRIM^XLFSTR(BED("name"))
  1. . I '$L(BED("name")) S ERR=ERR_"Name may not be blank. " Q
  1. . I BED("changed") D UPD(.BED,.ERR)
  1. D SAVEU^EDPBLK(AREA,"bed",.TOKEN) ; save bed config -- UNLOCK
  1. ;
  1. I $L(ERR) D SAVERR^EDPX("fail",ERR) Q
  1. D XML^EDPX("<save status='ok' />")
  1. D LOAD(AREA) ; return updated list of beds
  1. D DFLTRM(AREA) ; return new default lists of beds
  1. Q
  1. UPD(FLD,ERRMSG) ; Add/Update Record
  1. N EDPIEN
  1. S EDPIEN=FLD("id")_","
  1. I FLD("id")=0 S EDPIEN="+1,"
  1. ;
  1. N FDA,FDAIEN,DIERR,ERR
  1. S FDA(231.8,EDPIEN,.01)=FLD("name")
  1. S FDA(231.8,EDPIEN,.02)=EDPSITE
  1. S FDA(231.8,EDPIEN,.03)=FLD("area")
  1. S FDA(231.8,EDPIEN,.04)=FLD("inactive")
  1. S FDA(231.8,EDPIEN,.05)=FLD("seq")
  1. S FDA(231.8,EDPIEN,.06)=FLD("display")
  1. S FDA(231.8,EDPIEN,.07)=FLD("when")
  1. S FDA(231.8,EDPIEN,.08)=FLD("status")
  1. S FDA(231.8,EDPIEN,.09)=FLD("category")
  1. S FDA(231.8,EDPIEN,.1)=FLD("shared")
  1. S FDA(231.8,EDPIEN,.11)=FLD("board")
  1. S FDA(231.8,EDPIEN,.12)=FLD("color")
  1. S FDA(231.8,EDPIEN,.13)=$S($G(FLD("primary"))=1:1,2:2,1:"")
  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. D CLEAN^DILF
  1. Q
  1. DFLTRM(AREA) ; Load the multi-areas
  1. N BED,X,X0,ALPHA
  1. D XML^EDPX("<defaultRoomList>")
  1. ; bwf patch 6 4/26/2013 - removed following line, do not want "None Selected"
  1. ;D XML^EDPX($$XMLS^EDPX("item",-1,"(None Selected)")) ;non-selected (-1 will delete)
  1. S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D
  1. . S X0=^EDPB(231.8,BED,0)
  1. . ; bwf patch 6 4/25/2013 - filter EDIS_DEFAULT
  1. . I $P(X0,U)="EDIS_DEFAULT" Q
  1. . I $P(X0,U,4) Q ; inactive
  1. . I ($P(X0,U,9)=1)!($P(X0,U,9)=2) S ALPHA($P(X0,U)_" ("_$P(X0,U,6)_")")=BED
  1. S X="" F S X=$O(ALPHA(X)) Q:X="" D XML^EDPX($$XMLS^EDPX("item",ALPHA(X),X))
  1. D XML^EDPX("</defaultRoomList>")
  1. Q
  1. CHOICES ; Load the choice lists
  1. N I,X
  1. F I=1:1 S X=$P($T(WHEN+I),";",3,99) Q:X="ZZZZZ" D XML^EDPX(X)
  1. F I=1:1 S X=$P($T(CATS+I),";",3,99) Q:X="ZZZZZ" D XML^EDPX(X)
  1. D CODES^EDPQLE1("status","status")
  1. Q
  1. WHEN ; Display When Choices
  1. ;;<displayWhen>
  1. ;;<when label="Occupied" data="0" />
  1. ;;<when label="Always" data="1" />
  1. ;;<when label="Never" data="2" />
  1. ;;</displayWhen>
  1. ;;ZZZZZ
  1. CATS ; Category Choices
  1. ;;<roomCategories>
  1. ;;<item abbr="Single Pt" data="0" label="Single Pt (one patient assigned)" />
  1. ;;<item abbr="Multiple Pt" data="1" label="Multiple Pt (multiple patients assigned)" />
  1. ;;<item abbr="Waiting Area" data="2" label="Waiting Area (multiple patients assigned)" />
  1. ;;<item abbr="Single Non-ED" data="3" label="Single Non-ED (one patient assigned, outside of ED)" />
  1. ;;<item abbr="Multiple Non-ED" data="4" label="Multiple Non-ED (multiple patients assigned, outside of ED)" />
  1. ;;</roomCategories>
  1. ;;ZZZZZ