데이터 품질 대시보드 설정
목적
이 기능은 선택한 변수의 데이터 품질을 보장하는 데 도움이 됩니다. 해당 변수에 정의한 규칙을 환자 데이터에 실행하면 데이터가 불완전하거나 잘못된 환자 목록을 얻을 수 있습니다. 모든 데이터 불일치 결과는 Data Quality Dashboard에 목록으로 표시됩니다.
구현 담당자가 규칙을 사용자 지정할 수 있습니다(관련 단계는 추후 업데이트 예정). 규칙이 매우 복잡할 수 있으므로 복잡도에 따라 Java, SQL, Groovy로 작성할 수 있습니다.
이 기능은 OpenMRS Data Integrity 모듈(https://wiki.openmrs.org/display/docs/Data+Integrity+Module)의 영향을 받아 요구사항에 맞게 일부 수정되었습니다.
데이터 품질 대시보드 설정
1. 백그라운드 작업 실행
Data Integrity 작업은 기본적으로 매일 오전 12:00에 실행되도록 예약됩니다. 설정을 변경하려면 OpenMRS Administration > Manage Scheduler로 이동하여 Data Integrity Task 링크 > Schedule을 클릭한 뒤 반복 간격을 변경하세요.

2. Data Integrity 모듈 이름 국제화
각 home/locale_${en,fr, .. }.json 파일에 키 값을 추가합니다.
{
"MODULE_LABEL_DATA_INTEGRITY_KEY": "Data integrity"
}3. 열 머리글 국제화
clinical/locale_en.json에서 설정합니다.
{
"MODULE_LABEL_ERROR_REPORTS_KEY": "Error Reports",
"DQ_PRINT_TITLE_DATA_QUALITY_REPORT": "Data Quality Report",
"DQ_DASHBOARD": "Data Quality Dashboard",
"DQ_COLUMN_TITLE_TREATMENT_REG_NO": "Treatment Reg No",
"DQ_COLUMN_TITLE_NAME": "Name",
"DQ_COLUMN_TITLE_EMR_ID": "EMR ID",
"DQ_COLUMN_TITLE_NOTES": "Notes",
"DQ_COLUMN_TITLE_ACTION": "Action",
"DQ_COLUMN_TITLE_RULE_NAME":"Rule Name",
"DQ_COLUMN_TITLE_REG_FACILITY":"Treatment facility"
}4. 인쇄 버튼 및 HTML 위치 설정
아래 설정을 extension-dataintegrity.json에 추가합니다.
{
"bahmni_clinical_patients_search_allpatients_app_clinical": {
"id": "bahmni.clinical.patients.search.allPatients",
"extensionPointId": "org.bahmni.patient.search",
"type": "config",
"extensionParams": {
"searchHandler": "endtb.sqlSearch.dataIntegrity",
"forwardUrl": "#/default/patient/{{patientUuid}}/dashboard?programUuid={{programUuid}}&enrollment={{enrollment}}",
"translationKey": "MODULE_LABEL_ERROR_REPORTS_KEY",
"view" : "tabular",
"showPrint": true,
"printHtmlLocation": "/bahmni_config/openmrs/apps/dataintegrity/patientListPrint.html",
"searchColumns" : ["DQ_COLUMN_TITLE_TREATMENT_REG_NO", "DQ_COLUMN_TITLE_NAME"]
},
"order": 1,
"requiredPrivilege": "app:clinical"
}
}5. 인쇄 버튼 숨기기
DQ Dashboard에서 인쇄 버튼을 숨기려면 해당 값을 설정합니다.
6. 검색 가능한 열 설정
DQ Dashboard에서 검색할 열을 설정하려면 searchColumns 목록에 열 키를 추가합니다. 모든 열에서 검색 기능을 활성화할 수 있습니다.
아래 설정은 Treatment Reg No와 Name of the patient 열의 검색을 활성화합니다.
DQRule 구현
- 실행되는 규칙 목록은 OpenMRS 데이터베이스의 dataintegrity_rule 테이블에서 확인할 수 있습니다. EndTB용 DQ Rule은 openmrs-module-bahmniendtb 저장소에 작성되어 있습니다.
새 사용자 지정 규칙 작성
- 사용자 지정 규칙을 작성하려면 저장소를 복제합니다.
2. 다음 단계에 따라 새 DQ Rule을 추가합니다.
- Java로 작성한 규칙은 저장소의 openmrs-modulebahmniendtb/api/src/main/java/org/openmrs/module/bahmniendtb/dataintegrity/rules 폴더에 있습니다. 각 규칙은 RuleDefn<PatientProgram> 인터페이스를 구현하는 Java 클래스로 작성합니다. 규칙 로직은 evaluate 메서드에 작성합니다. 규칙은 아래와 같이 dataintegrity_rule 테이블에 삽입할 수 있습니다.
INSERT INTO dataintegrity_rule ( rule_name, rule_category, handler_config, handler_classname, uuid ) VALUES ( "Baseline Firstling DST missing", "java", "java", "org.openmrs.module.bahmniendtb.dataintegrity.rules.RuleName", uuid());로컬 테스트용 최신 DQ Rule 배포
- openmrs-module-bahmniendtb 디렉터리에서 아래 명령을 실행합니다.
- OMOD는 openmrs-module-bahmniendtb/omod/target/bahmniendtb-1.4-SNAPSHOT.omod 위치에 생성됩니다. Vagrant Box의 /opt/openmrs/modules 폴더에 있는 기존 OMOD를 위에서 생성한 파일로 교체합니다.
- OpenMRS 서비스를 다시 시작합니다.
DQ Rule 예시
다음은 DQ Rule의 몇 가지 예입니다.
- 잘못된 사망일, 잘못된 Observation, 잘못된 Program Enrollment.
Bahmni Wiki · CC BY-SA 4.0