[613] | 1 | DGRRLU4 ;BPFO/MM RPCs for Division preferences - ;11/15/04 11:38
|
---|
| 2 | ;;5.3;Registration;**538**;Aug 13, 1993
|
---|
| 3 | ;
|
---|
| 4 | START(RESULT,PARAMS) ;Generates division/package preferences in xml format
|
---|
| 5 | ;
|
---|
| 6 | ;Called from DGRR PATIENT LKUP PREFERENCES remote procedure call
|
---|
| 7 | ;
|
---|
| 8 | ;Input: PARAMS("stationNumber")= station number for institution
|
---|
| 9 | ; If not defined, defaults to package parameter values.
|
---|
| 10 | ;
|
---|
| 11 | ;Output: RESULT contains the preferences for the division. If not
|
---|
| 12 | ; specified contains the default package parameters.
|
---|
| 13 | ;
|
---|
| 14 | N LINE,DGRRI,DGRRVAL,DGRRATT,DGRRDIV,DGRRDIVN,DGRRLINE,DGRRESLT
|
---|
| 15 | S DGRRDIVN=$G(PARAMS("stationNumber"))
|
---|
| 16 | S DGRRDIV=$$IEN^XUAF4(DGRRDIVN)
|
---|
| 17 | S DGRRLINE=0
|
---|
| 18 | K ^TMP($J,"PLU-DIVPREF")
|
---|
| 19 | S DGRRESLT="^TMP($J,""PLU-DIVPREF"")"
|
---|
| 20 | S RESULT=$NA(@DGRRESLT)
|
---|
| 21 | D ADD^DGRRUTL($$XMLHDR^DGRRUTL())
|
---|
| 22 | D ADD^DGRRUTL("<preferences>")
|
---|
| 23 | D ADD^DGRRUTL("<error/>")
|
---|
| 24 | D ADD^DGRRUTL("<institutionPreferences>")
|
---|
| 25 | D ADD^DGRRUTL("<stationNumber>"_$$CHARCHK^DGRRUTL($G(DGRRDIVN))_"</stationNumber>")
|
---|
| 26 | ;
|
---|
| 27 | ; Gather preference values and build xml file
|
---|
| 28 | F DGRRI=1:1 S LINE=$P($T(PREF+DGRRI),";;",2) Q:LINE="QUIT" D
|
---|
| 29 | .;Return preferences in precedence order set in Parameter Definition.
|
---|
| 30 | .;Will return division values if found. If not defined, returns
|
---|
| 31 | .;package default values
|
---|
| 32 | .S DGRRVAL=$$GET^XPAR("ALL^DIV.`"_DGRRDIV,$P(LINE,U),1,"E")
|
---|
| 33 | .S DGRRATT=$P(LINE,U,2)
|
---|
| 34 | .D ADD^DGRRUTL("<"_DGRRATT_">"_$$CHARCHK^DGRRUTL(DGRRVAL)_"</"_DGRRATT_">")
|
---|
| 35 | D ADD^DGRRUTL("</institutionPreferences>")
|
---|
| 36 | D ADD^DGRRUTL("</preferences>")
|
---|
| 37 | Q
|
---|
| 38 | ;
|
---|
| 39 | UPDATE(RESULT,PARAMS) ;Entry point to add or change preference values
|
---|
| 40 | ;
|
---|
| 41 | ;Input: PARAMS("stationNumber")=Station # for the institution (Required)
|
---|
| 42 | ; PARAMS("divPreference",Preference Name)=Value (Required)
|
---|
| 43 | ;
|
---|
| 44 | ;Output: Results in xml format
|
---|
| 45 | ;
|
---|
| 46 | N DGRRARY,DGRRDIV,DGRRDIVN,DGRRERR,DGRRI,DGRRESLT,DGRRPREF,DGRRUPD,LINE
|
---|
| 47 | S DGRRDIVN=$G(PARAMS("stationNumber"))
|
---|
| 48 | S DGRRDIV=+$$IEN^XUAF4(DGRRDIVN)
|
---|
| 49 | K ^TMP($J,"PLU-DIVPREF-UPD")
|
---|
| 50 | S RESULT=$NA(^TMP($J,"PLU-DIVPREF-UPD"))
|
---|
| 51 | ; Log error for xml document and quit if invalid station number passed to call.
|
---|
| 52 | I 'DGRRDIV D Q
|
---|
| 53 | .S DGRRERR="Invalid stationNumber"
|
---|
| 54 | .S DGRRUPD="false"
|
---|
| 55 | .D XML(DGRRERR,DGRRUPD,RESULT)
|
---|
| 56 | ; Build array of preferences from parameter preference names.
|
---|
| 57 | F DGRRI=1:1 S LINE=$P($T(PREF+DGRRI),";;",2) Q:LINE="QUIT" D
|
---|
| 58 | .S DGRRARY($P(LINE,U,2))=$P(LINE,U)
|
---|
| 59 | S DGRRPREF=""
|
---|
| 60 | F DGRRI=1:1 S DGRRPREF=$O(DGRRARY(DGRRPREF)) Q:DGRRPREF="" D Q:DGRRUPD="false"
|
---|
| 61 | .N DGRRPR,DGRRVAL,ERR
|
---|
| 62 | .S (DGRRERR,DGRRUPD)=""
|
---|
| 63 | .S DGRRPR=$G(DGRRARY(DGRRPREF))
|
---|
| 64 | .S DGRRVAL=$G(PARAMS(DGRRPREF))
|
---|
| 65 | .;Value and Preference must be defined
|
---|
| 66 | .I DGRRPR=""!(DGRRVAL="") D Q
|
---|
| 67 | ..S DGRRUPD="false"
|
---|
| 68 | ..S DGRRERR="Invalid Preference "_$S(DGRRPR="":"Name",1:"Value")
|
---|
| 69 | .D EN^XPAR("DIV.`"_DGRRDIV,DGRRPR,1,DGRRVAL,.ERR)
|
---|
| 70 | .; If no errors, ERR=0. Errors are returned in the format:
|
---|
| 71 | .; internal entry number in Dialog file^error text describing error
|
---|
| 72 | .I ERR'=0 D Q
|
---|
| 73 | ..S DGRRUPD="false"
|
---|
| 74 | ..S DGRRERR=$P(ERR,U,2)
|
---|
| 75 | .S DGRRUPD="true"
|
---|
| 76 | D XML(DGRRERR,DGRRUPD,RESULT)
|
---|
| 77 | Q
|
---|
| 78 | XML(DGRRERR,DGRRUPD,DGRRESLT) ;Builds xml document
|
---|
| 79 | N DGRRLINE
|
---|
| 80 | S DGRRERR=$G(DGRRERR)
|
---|
| 81 | S DGRRUPD=$G(DGRRUPD)
|
---|
| 82 | S DGRRLINE=0
|
---|
| 83 | K @DGRRESLT
|
---|
| 84 | D ADD^DGRRUTL($$XMLHDR^DGRRUTL())
|
---|
| 85 | D ADD^DGRRUTL("<preferences>")
|
---|
| 86 | D ADD^DGRRUTL("<error>"_$$CHARCHK^DGRRUTL(DGRRERR)_"</error>")
|
---|
| 87 | D ADD^DGRRUTL("<institutionPreferences>")
|
---|
| 88 | D ADD^DGRRUTL("<stationNumber>"_$$CHARCHK^DGRRUTL($G(DGRRDIVN))_"</stationNumber>")
|
---|
| 89 | D ADD^DGRRUTL("<preferencesUpdated>"_$$CHARCHK^DGRRUTL(DGRRUPD)_"</preferencesUpdated>")
|
---|
| 90 | D ADD^DGRRUTL("</institutionPreferences>")
|
---|
| 91 | D ADD^DGRRUTL("</preferences>")
|
---|
| 92 | Q
|
---|
| 93 | ;
|
---|
| 94 | PREF ;Parameter definition^divPref received from/returned to calling app
|
---|
| 95 | ;;DGRR PL MAX NUM PATIENTS RET^maxNumPatients
|
---|
| 96 | ;;DGRR PL NUM PATIENTS PER PAGE^patientsPerPage
|
---|
| 97 | ;;DGRR PL PATIENT TYPE^patientType
|
---|
| 98 | ;;DGRR PL GENDER^gender
|
---|
| 99 | ;;DGRR PL PRIMARY ELIGIBILITY^primaryEligibility
|
---|
| 100 | ;;DGRR PL ROOM BED^roomBed
|
---|
| 101 | ;;DGRR PL SERVICE CONNECTED^serviceConnected
|
---|
| 102 | ;;DGRR PL VETERAN STATUS^veteranStatus
|
---|
| 103 | ;;DGRR PL WARD^ward
|
---|
| 104 | ;;DGRR PL VETERAN IMAGE^veteranImage
|
---|
| 105 | ;;QUIT
|
---|
| 106 | Q
|
---|