Groovy 스크립트
배경
Groovy 스크립트는 특정 이벤트가 발생할 때 실행할 수 있는 확장 스크립트로 사용됩니다.
이벤트의 예는 다음과 같습니다.
- Display Control 표시, Observation 저장.
Groovy 스크립트에서 무엇을 설정해야 하나요?
모든 Groovy 스크립트에서 다음 항목을 설정할 수 있습니다.
- 이벤트 발생 시 실행할 스크립트, 스크립트에서 구현할 내용.
Groovy 스크립트 유형
설정할 수 있는 Groovy 스크립트 유형은 다음과 같습니다.
- 표준 확장, 사용자 지정 확장.
표준 확장
- 표준 확장 파일의 이름은 변경할 수 없습니다. 명시적으로 설정할 필요가 없고 이름이 표준화되어 있기 때문에 표준 확장이라고 부릅니다. 스크립트 구현만 사용자 지정할 수 있습니다. 파일이 있으면 해당 이벤트 발생 시 기본적으로 실행됩니다. 이러한 확장에는 BahmniObsValueCalcuator와 TreatmentRegimenExtension이 있습니다.
| 파일 이름 | 위치 및 예시 파일 | 참고 |
|---|---|---|
| BahmniObsValueCalculator.groovy | 파일 위치: /var/www/bahmni_config/openmrs/obscalculator/; BahmniObsValueCalculator.groovy 예시 파일 | Consultation 저장 버튼을 클릭할 때 실행됩니다. ObsValueCalculator를 구현해야 하며 요구사항에 맞게 run() 메서드를 재정의합니다. |
| TreatmentRegimenExtension.groovy | 파일 위치: /var/www/bahmni_config/openmrs/treatmentRegimenExtension/; TreatmentRegimenExtension.groovy 예시 파일 | ‘Chronic Treatment’ Control을 표시하기 전에 실행됩니다. BaseTableExtension<TreatmentRegimen>을 확장해야 하며 요구사항에 맞게 update() 메서드를 재정의합니다. |
사용자 지정 확장
- 사용자 지정 파일과 구현을 사용할 수 있는 Groovy 확장입니다. Obs To Obs Flowsheet 같은 Display Control은 사용자 지정 확장을 유연하게 지원합니다. 이 스크립트는 확장이 설정된 Display Control을 표시할 때 실행됩니다.
Obs To Obs Flowsheet
| 설정 | 위치 및 예시 | 참고 |
|---|---|---|
| ObsToObsFlowSheet Control의 configuration 절에서 "type" 키 값으로 Groovy 확장 이름을 추가합니다. | 모든 사용자 지정 Groovy 파일은 /var/www/bahmni_config/openmrs/flowSheetExtension/ 아래에 있어야 합니다. 예시: https://github.com/Bahmni/endtb-config/blob/master/openmrs/flowsheetExtension/DstExtension.groovy | BaseTableExtension<PivotTable>을 확장하고 요구사항에 맞게 update() 메서드를 재정의해야 합니다. |
개발자 팁
개발 중 Groovy 스크립트를 디버깅하는 한 가지 방법은 임시 파일에 내용을 기록하는 것입니다. 예를 들어 BahmniObsValueCalculator.groovy에서 아래 코드를 사용합니다. groovy_debug.txt에는 쓰기 권한이 있어야 합니다. 배포 전 디버깅 구문과 임시 파일을 반드시 제거하세요.
def file1 = new File(OpenmrsUtil.getApplicationDataDirectory() + "obscalculator/groovy_debug.txt")file1.append 'debugging statement\n'원문 정보
원문 보기 ↗Bahmni Wiki · CC BY-SA 4.0