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

DGRRLU4.m

Go to the documentation of this file.
  1. DGRRLU4 ;BPFO/MM RPCs for Division preferences - ;11/15/04 11:38
  1. ;;5.3;Registration;**538**;Aug 13, 1993
  1. ;
  1. START(RESULT,PARAMS) ;Generates division/package preferences in xml format
  1. ;
  1. ;Called from DGRR PATIENT LKUP PREFERENCES remote procedure call
  1. ;
  1. ;Input: PARAMS("stationNumber")= station number for institution
  1. ; If not defined, defaults to package parameter values.
  1. ;
  1. ;Output: RESULT contains the preferences for the division. If not
  1. ; specified contains the default package parameters.
  1. ;
  1. N LINE,DGRRI,DGRRVAL,DGRRATT,DGRRDIV,DGRRDIVN,DGRRLINE,DGRRESLT
  1. S DGRRDIVN=$G(PARAMS("stationNumber"))
  1. S DGRRDIV=$$IEN^XUAF4(DGRRDIVN)
  1. S DGRRLINE=0
  1. K ^TMP($J,"PLU-DIVPREF")
  1. S DGRRESLT="^TMP($J,""PLU-DIVPREF"")"
  1. S RESULT=$NA(@DGRRESLT)
  1. D ADD^DGRRUTL($$XMLHDR^DGRRUTL())
  1. D ADD^DGRRUTL("<preferences>")
  1. D ADD^DGRRUTL("<error/>")
  1. D ADD^DGRRUTL("<institutionPreferences>")
  1. D ADD^DGRRUTL("<stationNumber>"_$$CHARCHK^DGRRUTL($G(DGRRDIVN))_"</stationNumber>")
  1. ;
  1. ; Gather preference values and build xml file
  1. F DGRRI=1:1 S LINE=$P($T(PREF+DGRRI),";;",2) Q:LINE="QUIT" D
  1. .;Return preferences in precedence order set in Parameter Definition.
  1. .;Will return division values if found. If not defined, returns
  1. .;package default values
  1. .S DGRRVAL=$$GET^XPAR("ALL^DIV.`"_DGRRDIV,$P(LINE,U),1,"E")
  1. .S DGRRATT=$P(LINE,U,2)
  1. .D ADD^DGRRUTL("<"_DGRRATT_">"_$$CHARCHK^DGRRUTL(DGRRVAL)_"</"_DGRRATT_">")
  1. D ADD^DGRRUTL("</institutionPreferences>")
  1. D ADD^DGRRUTL("</preferences>")
  1. Q
  1. ;
  1. UPDATE(RESULT,PARAMS) ;Entry point to add or change preference values
  1. ;
  1. ;Input: PARAMS("stationNumber")=Station # for the institution (Required)
  1. ; PARAMS("divPreference",Preference Name)=Value (Required)
  1. ;
  1. ;Output: Results in xml format
  1. ;
  1. N DGRRARY,DGRRDIV,DGRRDIVN,DGRRERR,DGRRI,DGRRESLT,DGRRPREF,DGRRUPD,LINE
  1. S DGRRDIVN=$G(PARAMS("stationNumber"))
  1. S DGRRDIV=+$$IEN^XUAF4(DGRRDIVN)
  1. K ^TMP($J,"PLU-DIVPREF-UPD")
  1. S RESULT=$NA(^TMP($J,"PLU-DIVPREF-UPD"))
  1. ; Log error for xml document and quit if invalid station number passed to call.
  1. I 'DGRRDIV D Q
  1. .S DGRRERR="Invalid stationNumber"
  1. .S DGRRUPD="false"
  1. .D XML(DGRRERR,DGRRUPD,RESULT)
  1. ; Build array of preferences from parameter preference names.
  1. F DGRRI=1:1 S LINE=$P($T(PREF+DGRRI),";;",2) Q:LINE="QUIT" D
  1. .S DGRRARY($P(LINE,U,2))=$P(LINE,U)
  1. S DGRRPREF=""
  1. F DGRRI=1:1 S DGRRPREF=$O(DGRRARY(DGRRPREF)) Q:DGRRPREF="" D Q:DGRRUPD="false"
  1. .N DGRRPR,DGRRVAL,ERR
  1. .S (DGRRERR,DGRRUPD)=""
  1. .S DGRRPR=$G(DGRRARY(DGRRPREF))
  1. .S DGRRVAL=$G(PARAMS(DGRRPREF))
  1. .;Value and Preference must be defined
  1. .I DGRRPR=""!(DGRRVAL="") D Q
  1. ..S DGRRUPD="false"
  1. ..S DGRRERR="Invalid Preference "_$S(DGRRPR="":"Name",1:"Value")
  1. .D EN^XPAR("DIV.`"_DGRRDIV,DGRRPR,1,DGRRVAL,.ERR)
  1. .; If no errors, ERR=0. Errors are returned in the format:
  1. .; internal entry number in Dialog file^error text describing error
  1. .I ERR'=0 D Q
  1. ..S DGRRUPD="false"
  1. ..S DGRRERR=$P(ERR,U,2)
  1. .S DGRRUPD="true"
  1. D XML(DGRRERR,DGRRUPD,RESULT)
  1. Q
  1. XML(DGRRERR,DGRRUPD,DGRRESLT) ;Builds xml document
  1. N DGRRLINE
  1. S DGRRERR=$G(DGRRERR)
  1. S DGRRUPD=$G(DGRRUPD)
  1. S DGRRLINE=0
  1. K @DGRRESLT
  1. D ADD^DGRRUTL($$XMLHDR^DGRRUTL())
  1. D ADD^DGRRUTL("<preferences>")
  1. D ADD^DGRRUTL("<error>"_$$CHARCHK^DGRRUTL(DGRRERR)_"</error>")
  1. D ADD^DGRRUTL("<institutionPreferences>")
  1. D ADD^DGRRUTL("<stationNumber>"_$$CHARCHK^DGRRUTL($G(DGRRDIVN))_"</stationNumber>")
  1. D ADD^DGRRUTL("<preferencesUpdated>"_$$CHARCHK^DGRRUTL(DGRRUPD)_"</preferencesUpdated>")
  1. D ADD^DGRRUTL("</institutionPreferences>")
  1. D ADD^DGRRUTL("</preferences>")
  1. Q
  1. ;
  1. PREF ;Parameter definition^divPref received from/returned to calling app
  1. ;;DGRR PL MAX NUM PATIENTS RET^maxNumPatients
  1. ;;DGRR PL NUM PATIENTS PER PAGE^patientsPerPage
  1. ;;DGRR PL PATIENT TYPE^patientType
  1. ;;DGRR PL GENDER^gender
  1. ;;DGRR PL PRIMARY ELIGIBILITY^primaryEligibility
  1. ;;DGRR PL ROOM BED^roomBed
  1. ;;DGRR PL SERVICE CONNECTED^serviceConnected
  1. ;;DGRR PL VETERAN STATUS^veteranStatus
  1. ;;DGRR PL WARD^ward
  1. ;;DGRR PL VETERAN IMAGE^veteranImage
  1. ;;QUIT
  1. Q