조건부 속성
설명
이 구성을 사용하면 조건에 따라 등록의 새 환자 생성 페이지에서 영역을 표시하거나 숨길 수 있습니다. 이를 위해 ‘attributesConditions.js’라는 특정 파일을 정의해야 합니다.
‘attributesConditions.js’ 파일은 ‘/var/www/bahmni_config/openmrs/apps/registration/’ 디렉터리에 있어야 합니다.
예: 나이가 18세 미만인 경우에만 ‘Guardian Details’ 영역을 표시합니다.
Config for sections
"patientInformation": {
"patientContact": {
"title": "Patient Contact",
"translationKey": "Patient Contact",
"attributes": [
"phoneNumber1",
"phoneNumber2",
"emailAddress",
]
},
"guardian": {
"title": "Guardian Details",
"translationKey": "Guardian Details",
"attributes": [
"guardianNameEnglish",
"guardianGender",
"guardianDob",
"guardianAge",
"guardianNationality"
]
},
}여기서 ‘patientContact’와 ‘guardian’은 영역입니다. 아래 JavaScript는 환자 나이가 18세 미만일 때 guardian 영역을 표시하는 데 필요합니다.
attributesConditions.js
var showOrHideGuardianSection = function (patient) {
var returnValues = {
show: [],
hide: []
};
if (patient["age"].years < 18) {
returnValues.show.push("guardian")
} else {
returnValues.hide.push("guardian")
}
return returnValues
};
Bahmni.Registration.AttributesConditions.rules = {
'age': function (patient) {
return showOrHideGuardianSection(patient);
},
'birthdate': function (patient) {
return showOrHideGuardianSection(patient);
},
'isGuardianRequired': function(patient) {
var returnValues = {
show: [],
hide: []
};
if (patient["isGuardianRequired"]) {
returnValues.show.push("guardian");
} else {
returnValues.hide.push("guardian");
}
return returnValues;
}
};- 여기서 ‘age’는 조건을 작성할 필드입니다. ‘patient’를 매개변수로 받는 함수를 작성해야 합니다. patient는 양식에 입력된 모든 값을 포함하는 객체이며 ‘patient["<attribute name>"]’ 형식으로 값에 접근할 수 있습니다. 특정 환자 속성(이 예에서는 age)의 값이 변경될 때마다 이 함수가 호출됩니다. 함수는 ‘show’와 ‘hide’ 변수가 포함된 객체를 반환해야 합니다. 이 변수들은 숨기거나 표시할 영역 이름의 배열입니다. age, gender, birthdate, birthtime, birthdateEstimated 및 기타 환자 속성을 기준으로 조건을 작성할 수 있습니다. 예를 들어 세 번째 함수의 ‘isGuardianRequired’는 환자 속성입니다. 이를 선택하면 ‘Guardian Details’ 영역을 표시하고, 그렇지 않으면 숨깁니다. ‘returnValues.show.push("guardian")’의 ‘guardian’은 위 첫 번째 코드 블록에 정의된 영역 키입니다.
원문 정보
원문 보기 ↗Bahmni Wiki · CC BY-SA 4.0