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