BBahmni 한국어 매뉴얼검색
한국어 번역 완료
한국어English

조건부 속성

설명

이 구성을 사용하면 조건에 따라 등록의 새 환자 생성 페이지에서 영역을 표시하거나 숨길 수 있습니다. 이를 위해 ‘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

원문 보기 ↗