홈 › 구현자 가이드 › 보고서 모듈 › 보고서 구성 › 기본 제공 보고서(Canned Reports) 기본 제공 보고서(Canned Reports)
목적과 이점 Canned Reports는 Bahmni의 이전 보고서 기능입니다. 신규 사용자는 대신 Bahmni의 최신 일반 보고서 기능을 사용하는 것이 좋습니다. 이 보고서는 Bahmni의 특정 사전 정의 정보를 제공합니다. 구성 범위가 작아 비슷한 보고서가 있어도 새 요구 사항에 재사용하기 어렵습니다. 그 결과 Canned Report가 계속 늘어나 유지보수 부담이 커집니다. Generic Reports는 이 문제를 해결하기 위한 기능입니다.
Bahmni에서는 이름이 있는 여러 연령 그룹 유형을 설정하고 각 보고서 구성에서 해당 이름을 지정할 수 있습니다. 일부 보고서에는 개념의 참조 범위도 설정할 수 있습니다.
예를 들어 다음 보고서는 연령 그룹별 건수를 표시합니다.
이런 보고서를 표시하려면 참조 표 "reporting_age_group"에 연령 그룹 구성을 삽입한 뒤 보고서 구성에서 참조합니다.
코드 조각 js"nutritionProgram": {
"name": "Nutrition Program - <5 years children receiving (Vitamin A)",
"type": "obsCount",
"config": {
"ageGroupName": "Nutrition Program Vitamin A",
"conceptNames": ["Childhood Illness, Vitamin A Capsules Provided"]
}
} SQL 명령으로 reporting_age_group에 항목을 삽입할 수 있습니다. 다음은 INSERT SQL 명령 예시입니다.
INSERT INTO reporting_age_group (name,report_group_name, min_years, min_days, max_years, max_days)
VALUES ('6 - 11 months', 'Nutrition Program Vitamin A',0,180,1,-1);INSERT INTO reporting_age_group (name,report_group_name, min_years, min_days, max_years, max_days)
VALUES ('12 - 59 months', 'Nutrition Program Vitamin A',1,0,5,-1);
1. 관찰 건수 보고서 세 가지 변형이 있습니다. 구성에 개념 이름을 둘 이상 지정할 때는 모두 같은 데이터 유형(코드화 개념 또는 불리언 개념)이어야 합니다. 유형을 섞으면 항상 일반 관찰 건수 보고서가 생성됩니다.
1.1 관찰 건수 불리언이나 코드화 유형이 아닌 개념에 생성된 관찰 수만 세려면 사용합니다. OpenMRS에 위치 태그 ‘Report location’을 추가하고 구성에 예: "locationTagNames": ["Report Location"]로 지정합니다.
코드 조각 js"nutritionProgram": {
"name": "Nutrition Program - <5 years children receiving (Vitamin A)",
"type": "obsCount",
"config": {
"ageGroupName": "Nutrition Program Vitamin A",
"conceptNames": ["Childhood Illness, Vitamin A Capsules Provided"],
"locationTagNames": ["Report Location"],
"countOnlyClosedVisits":"false"
}
}
1.2 코드화 관찰 건수 사용자가 선택한 코드화 답변별로 코드화 개념의 관찰 수를 집계합니다.
OpenMRS에 ‘Report location’ 위치 태그를 추가하고 구성에 예: "locationTagNames": ["Report Location"]로 지정합니다.
코드 조각 js"nutritionProgram": {
"name": "Nutrition Program - Nutritional status of registered children"
,
"type":
"obsCount",
"config": {
"ageGroupName": "Nutritional Status For Registered Children",
"conceptNames": ["Nutrition, Nutritional Status"],
"locationTagNames": ["Report Location"]
}
}
1.3 불리언 개념 건수 (Boolean Observations Count로 이름 변경 예정) 사용자가 선택한 예/아니요(True/False)별로 불리언 관찰 수를 집계할 때 사용합니다.
코드 조각 js"nutritionProgram": {
"name": "Nutrition Program - <5 yrs Children receiving (Deworming)",
"type": "obsCount",
"config": {
"ageGroupName": "All Ages",
"conceptNames": ["Childhood Illness, Albendazole Given"]
}
}
2. 코드화 관찰별 코드화 관찰 두 코드화 관찰을 집계하고 서로 교차한 피벗 표로 표시합니다.
코드 조각 js"safeMotherhoodProgram": {
"name": "Safe Motherhood program - Type of delivery",
"type": "CodedObsByCodedObs",
"config": {
"ageGroupName": "All Ages",
"conceptPair": ["Delivery Note, Method of Delivery", "Delivery Note, Fetal Presentation"],
"rowsGroupBy": ["Delivery Note, Method of Delivery"],
"columnsGroupBy": ["Delivery Note, Fetal Presentation"]
}
}
3. 진단 건수 Bahmni 시스템에 입력된 모든 진단의 건수를 나열합니다.
코드 조각 js"nameOfReport": {
"name": "Name of Report",
"type": "diagnosisCount", // Mandatory. Value should be exactly diagnosisCount
"config": {
"dateRangeRequired": false, // Optional. Used to display reports that do not require a date range in a different section. Default true
"applyDateRangeFor": "visitStopDate|diagnosisDate", // Optional. Default value = 'visitStopDate'. Valid only when dateRangeRequire=true
"visitsToConsider": "open|closed|all", // Optional field. Default value = 'all'
"ageGroupName": "age group name defined in reporting_age_group.report_group_name" //Optional
"concept": "concept_set_name", // Mandatory. Three level concept set structure, with a root_concept, header_concepts and leaf_concepts
"rowsGroupBy": ["gender|agegroup_name|header_concept_name|leaf_concept_name"], // Optional field but when rowsGroupBy is specified, columnsGroupBy should also be specified. Default value is ["header_concept_name", "leaf_concept_name]
"columnsGroupBy": ["gender|agegroup_name|header_concept_name|leaf_concept_name"], //Optional field but when rowsGroupBy is specified, columnsGroupBy should also be specified. Default value is ["agegroup_name"]
"icd10ConceptSource": "ICD10-BD", // Optional field. Default value = 'ICD 10 - WHO'. If any implementation is using a different concept source for diagnosis coding, it can be set here.
"locationTagNames":["Report Location"] // Optional field. If any location tag is provided, only the encounters associated with the locations with those tags are counted. If this parameter is not set, all the encounters would be counted.
}
} 현재 concept 필드를 지정하면 보고서에 ICD10 코드가 없습니다. 진단 보고서 동작에 ICD10 설정이 필요한지는 아직 정해지지 않았으며 결정 후 모든 보고서가 동일한 규칙을 따릅니다.
연령 그룹은 OpenMRS 데이터베이스의 reporting_age_group 표에 있어야 합니다.
코드 조각 jsDiagnosis Summary report
"OralnDentalReport": {
"name": "Dental and Oral Report",
"type": "diagnosisCount",
"config": {
"concept": "Oral diagnosis",
"ageGroupName": "Age Groups",
"rowsGroupBy": ["header_concept_name","leaf_concept_name"],
"columnsGroupBy": ["gender","agegroup_name"]
}
} 코드 조각 js"OralnDentalReport1": {
"name": "Dental and Oral Report 1",
"type": "diagnosisCount",
"config": {
"locationTagNames":["Report Location"],
"icd10ConceptSource":"ICD10-BD",
"rowsGroupBy": [
"header_concept_name",
"leaf_concept_name"
],
"visitTypes":["IPD","OPD"],
"columnsGroupBy": [
"gender",
"agegroup_name"
]
}
}, 코드 조각 js"OralnDentalReport2": {
"name": "Dental and Oral Report 2",
"type": "diagnosisCount",
"config": {
"locationTagNames":["Report Location"],
"icd10ConceptSource":"ICD10-BD",
"ageGroupName": "Registration",
"rowsGroupBy": [
"header_concept_name",
"leaf_concept_name"
],
"visitTypes":["IPD","OPD"],
"columnsGroupBy": [
"gender",
"agegroup_name"
]
}
},
4. 검사 건수 코드 조각 js"name": "Malaria Control Programme - Diagnosis and Result [check for Microscopy= 'PBS for Malaria, Filaria parasite', RDT= SUM('Malaria Ags', 'Malaria Abs')]",
"type": "TestCount"
5. 관찰 템플릿 보고서 지정 기간에 입력된 템플릿의 모든 필드와 값을 보여 주는 보고서입니다.
OpenMRS에 ‘Report location’ 위치 태그를 추가하고 구성에 예: "locationTagNames": ["Report Location"]로 지정합니다.
코드 조각 xml"vitalsTemplateReport":{
"name": "Vitals Template Report",
"type": "obsTemplate",
"config": {
"templateName": "Vitals",
"patientAttributes": ["caste", "education"],
"locationTagNames": ["Report Location"],
"applyDateRangeFor": "encounterCreateDate"
}
} name: 보고서 이름 templateName: 보고서를 생성할 관찰 템플릿 patientAttributes: 보고서에서 환자별로 표시할 카스트, 교육 등의 환자 속성 applyDateRangeFor: 날짜 범위 필터 기준. encounterCreateDate 또는 encounterDate이며 기본값은 encounterDate
6. OPD/IPD 방문 건수 보고서 지정 기간의 신규/기존 OPD/IPD 환자 수를 나열합니다.
코드 조각 js"ipdOPd": {
"name": "OPD/IPD Visit Count",
"type": "IpdOpdVisitCount"
}
7. 숫자 개념값 보고서 지정한 연령 그룹에서 결과값 범위별 숫자 개념 관찰 건수를 나열합니다.
코드 조각
js"HaemoglobinRange": {
"name": "Haemoglobin Range Based Report
",
"type":
"NumericConceptValuesCount",
"config": {
"rangeGroupName": "Haemoglobin",
"ageGroupName": "Haemoglobin",
"conceptNames": ["Haemoglobin"],
"countOncePerPatient": false
}
} "countOncePerPatient" 기본값은 false여야 합니다. 이 경우 관찰이 기록된 횟수만큼 집계합니다.
한 진료 사건 안에서는 관찰을 한 번만 집계하며, 같은 사건에서 관찰을 여러 번 변경해도 하나로 봅니다.
"countOncePerPatient"가 true이면 지정 날짜 범위에서 환자별 최신 관찰값만 집계합니다.
8. 개념 클래스별 관찰 건수 보고서 지정 날짜 범위에서 개념 클래스별 관찰 건수를 나열합니다.
코드 조각
js"radiologyCount": {
"name": "Radiology(X-Ray) Count",
"type": "ObsCountByConceptClass",
"config": {
"conceptClassNames": ["Radiology"]
}
}
9. 관찰값 건수 보고서 지정한 개념 이름별로 각 관찰값의 건수를 나열합니다.
코드 조각
js"ObsValueCount": {
"name": "Obs Value Counts for Albumin, MCH, Surgery Date and Posture(blood pressure)",
"type": "ObsValueCount",
"config": {
"conceptNames": ["Albumin","MCH","Date of Surgery","Posture"]
}
}
10. 검사 결과가 있는 환자 보고서 지정한 검사 목록과 결과 조건(비정상 및/또는 정상)에 따라 검사 결과와 함께 환자를 나열합니다.
코드 조각 js"patientsWithLabTest": {
"name": "Patients with labtest results for HIV ELISA, Albumin and MCH",
"type": "PatientsWithLabtestResults",
"config": {
"conceptNames": ["HIV ELISA (Blood)","Albumin","MCH"]
"testOutcome": ["abnormal","normal"]
}
}
11. IPD 환자 보고서 IPD 환자 목록과 환자 정보, 확정 진단(여러 개면 쉼표 구분), 구성한 개념의 관찰값(여러 개면 쉼표 구분), 환자 속성 목록, 주소 속성 목록을 생성합니다.
코드 조각 js"ipdPatients": {
"name": "IPD Patients Report",
"type": "ipdPatients",
"config": {
"addressAttributes": ["address1", "city_village"],
"patientAttributes": ["caste", "education"],
"conceptNames": ["Height", "Weight"],
"locationTagNames": ["Report Location"],
"filterBy": "Date of Discharge"
}
} 참고: addressAttributes는 항상 snake case여야 합니다. 예: "cityVillage"가 아니라 "city_village".
날짜 범위는 "Date of Admission" 또는 "Date of Discharge"에 적용할 수 있습니다. "filterBy" 매개변수로 선택하며 미설정 시 기본값은 "Date of Admission"입니다.
OpenMRS에 ‘Report location’ 위치 태그를 추가하고 구성에 예: "locationTagNames": ["Report Location"]로 지정합니다.
12. 방문 집계 건수 보고서 지정 날짜 범위에 발생한 입원·퇴원 건수를 방문 유형별로 생성합니다.
코드 조각 js"visitAggregateCount": {
"name": "Visit Aggregate Count Report",
"type": "VisitAggregateCount",
"config": {
"type": "VisitAggregateCountReport",
"locationTagNames": ["Report Location"],
"visitTypes": "'IPD','OPD','EMERGENCY'"
}
} OpenMRS에 ‘Report location’ 위치 태그를 추가하고 구성에 예: "locationTagNames": ["Report Location"]로 지정합니다.
13. 환자 프로그램 상태 건수 보고서 프로그램의 각 상태에 들어간 환자 수를 생성합니다.
참고: 프로그램에 상태가 없으면 빈 페이지가 열립니다. "programName"은 OpenMRS에 미리 구성된 프로그램이어야 합니다.
코드 조각 js"patientProgram": {
"name": "Patient Program State Count Report",
"type": "programStateCount",
"config": {
"programName": "Patient Overall Status"
}
} 예: Patient Overall Status 프로그램에 'Attending Clinic', 'Transferred OutOf', 'Dead' 상태를 추가하면 2015-08-01~2015-08-13 기간에 각 상태에 들어간 환자 수를 표시합니다.
환자가 현재 다른 상태에 있어도 원래 상태가 날짜 범위 안에 있고 삭제되지 않았다면 해당 상태 건수에 포함합니다.
14. 환자 프로그램 상태 전환 건수 보고서 프로그램 상태 전환을 겪은 환자 수를 생성합니다.
참고: 프로그램에 상태가 없으면 빈 페이지가 열립니다. "programName"은 OpenMRS에 미리 구성된 프로그램이어야 합니다.
코드 조각 js"malariaProgram": {
"name":"Malaria Program State Transition Report",
"type":"programStateTransitionReport",
"config":{
"programName":"Malaria Program"
}
} 예: Malaria Program에 'First State', 'Second State', 'Third State'를 추가하면 상태 전환 환자 수를 표시합니다.
2015-08-02~2015-08-06 기간의 'First State'→'Second State' 및 'Second State'→'Third State' 전환을 집계합니다.
15. 환자 데이터 보고서 - 환자 ID
- 환자 이름
- 나이
- 성별
- 생년월일
- 주소 필드
- 환자 속성
- 등록일
참고: 날짜 범위를 지정하지 않으면 모든 환자 데이터를 반환합니다.
코드 조각 js"patientInformation": {
"name": "Patient Information",
"type": "PatientReport"
}
16. 프로그램 환자 상태 보고서 - 일련번호
- 환자 식별자
- 환자 이름
- 환자 나이
- 프로그램 등록일
- 환자 상태
- 상태 시작일
- 상태 종료일
- 환자 프로그램 종료일
- 환자 결과
코드 조각 js"programPatientStateReport":{
"name": "Program Patient State Report",
"type": "PatientProgramReport",
"config": {
"programName": "Malaria Program"
}
},
17. 프로그램 등록 보고서 코드 조각 js"programEnrollmentTemplateReport": {
"name": "Program Enrollments",
"type": "ProgramEnrollmentReport"
} 코드 조각 js"obsCannedReport": {
"name": "Obs Canned Report",
"type": "obsCannedReport",
"config": {
"patientAttributes": ["caste", "education"],
"applyDateRangeFor": "ObsRecording",
"addressAttributes": ["postal_code", "city_village"],
"conceptNames": ["WEIGHT","Pulse", "Systolic"],
"visitIndependentConcept": ["HEIGHT"],
"enrolledProgram" :"HIV Program" ,
"showObsOnlyForProgramDuration": false
}
} Patient Attributes: personattributetype.name 열의 가능한 값(예: {"HEIGHT","WEIGHT","Pulse"}) (필수) Apply Date Range For: 날짜/일시 유형의 "<tablename>.<columnname>". 표는 [obs,encounter,patientidentifier,patientprogram,program,concept_view] 중 하나이며 patientidentifier와 patientprogram은 구성에 enrolledProgram이 있을 때만 결합 (필수) Values, ObsRecording, ProgramEnrollment Address Attributes: person_address 표 열 이름 (필수) concept names: 말단 개념 이름만 지원하며 개념 집합은 미지원 (필수) visit independent concepts: 방문과 무관하게 최신 관찰을 선택하며 최신 관찰이 없는 다른 방문에는 값이 없음 (필수)관련 문서: type.name enrolled program: 프로그램 이름 하나만 지원. 필요 없으면 구성 전체 제거 (선택) show obs only for program duration: 지정 프로그램 기간의 관찰만 필터링 (필수)
19. 약물 처방 보고서 지정 날짜 범위에 약물을 처방받은 환자 정보를 표시하며 환자 정보와 약물 정보로 구성됩니다.
코드 조각 js"drugOrderReport":{
"name": "Drug Order report",
"type":"DrugOrder"
}
20. 프로그램 관찰 템플릿 보고서 지정 기간에 입력된 템플릿의 모든 필드와 값을 보여 주는 보고서입니다.
코드 조각 xml"vitalsTemplateReport":{
"name": "Vitals Template Report",
"type": "programObsTemplate",
"config": {
"templateName": "Vitals",
"patientAttributes": ["caste", "education"],
"programAttributes":[ "Doctor","Enrollment","Id","Treatment_Date"],
"programNames": ["Malaria","Tuberculosis"],
"addressAttributes":["city", "state_province"]
}
} templateName: 보고서를 생성할 관찰 템플릿
patientAttributes: 보고서에서 환자별로 표시할 카스트, 교육 등의 환자 속성
programAttributes: 보고서에서 프로그램별로 표시할 의사, 치료일 등의 프로그램 속성
programNames: 관찰을 표시할 프로그램 이름 목록. 미지정 시 모든 프로그램의 관찰을 가져옵니다.
OpenMRS에 ‘Report location’ 위치 태그를 추가합니다.
구성에 예: "locationTagNames": ["Report Location"]로 위치 태그를 지정합니다.
addressAttributes: 표시할 주소 속성 목록. 항상 snake case여야 합니다. 예: "cityVillage"가 아니라 "city_village".
21. 프로그램별 약물 처방 보고서 지정 날짜 범위에서 활성 프로그램만 고려해 약물 처방과 활성 프로그램의 모든 데이터를 내보냅니다. 표시할 프로그램과 프로그램 속성을 구성할 수 있습니다.
코드 조각 js"programDrugOrder": {
"name": "Program Drug Order Report",
"type": "ProgramDrugOrder",
"config": {
"programs": [
"Second-line TB treatment register",
"Basic management unit TB register"
],
"patientAttributes": [
"PatientCountry",
"TelephoneNumber"
],
"programAttributes": [
"Registration Number",
"Registration Facility"
]
}
} 원문 정보 Bahmni Wiki · CC BY-SA 4.0
원문 보기 ↗