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

릴리스 노트 0.81

보고서는 Home > Reports 화면에서 생성할 수 있습니다. 일반적으로 사용자가 지정한 기간(Start date, End date)에 특정 조건을 충족하는 집계(환자 수 등)나 상세 정보가 포함된 환자 목록 형태입니다. 약간의 설정만 필요한 사전 정의 보고서 또는 사용자 정의 SQL 쿼리로 생성할 수 있습니다.

??(reports/app.json)

app.json
"config": {
   "paperSize": "A3", //The default paper size is A4. Supported sizes are A3 and A4.
   "supportedFormats": ["pdf"], //List of available formats are html, pdf, excel, csv, custom excel. When not defined, all the available formats will be listed.
}

사전 정의 보고서

Bahmni는 요구 사항에 맞게 구성할 수 있는 사전 정의 보고서 모음을 제공합니다. 아래에서 각 보고서 유형의 예, 구성 설정 및 UI 출력을 확인할 수 있습니다. 별도 언급이 없으면 방문당 한 번만 집계합니다. 각 유형에 여러 보고서를 정의할 수 있습니다.

참조 표

  • Bahmni에서는 이름이 지정된 여러 연령 그룹 유형을 설정할 수 있습니다. 각 보고서 구성에서 그룹 이름을 지정하여 자체 연령 그룹을 사용할 수 있습니다.

?:

아래 보고서는 연령 그룹별 집계를 보여 줍니다.

Obscount.png

이런 보고서를 표시하려면 참조 표 "reporting_age_group"에 연령 그룹 구성을 삽입한 뒤 보고서 구성에서 참조합니다.

table_agegroup.png

구성

"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. 관찰 건수 보고서

세 가지 변형이 있습니다.

참고: 구성에 둘 이상의 개념 이름을 지정할 경우 모두 같은 데이터 유형(코딩 개념 또는 불리언 개념)인지 확인하십시오. 데이터 유형을 혼합하면 항상 obs count 보고서가 생성됩니다.

1.1 관찰 건수

Boolean이나 Coded가 아닌 개념에 생성된 관찰 수만 집계하려는 경우 사용합니다.

예시

Obscountform.png

구성

"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"    }

}

  • OpenMRS에 &ldquo;Report location&rdquo; 위치 태그를 추가하고 구성에 위치 태그를 지정합니다. 예: "locationTagNames": ["Report Location&rdquo; ],
Obscount.png

1.2 코드화 관찰 건수

코딩 개념의 관찰 수를 사용자 선택(코딩 답변)에 따라 분류하여 집계합니다.

codedObsform.png

구성

"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"]
}

}

  • OpenMRS에 &ldquo;Report location&rdquo; 위치 태그를 추가하고 구성에 위치 태그를 지정합니다. 예: "locationTagNames": ["Report Location&rdquo; ]
CodedObscount.png

1.3 불리언 개념 건수

(Boolean Observations Count로 이름 변경 예정) 불리언 유형 관찰을 사용자 선택 Yes/No(True/False)에 따라 분류하여 집계할 때 사용합니다.

예시

BooleanObs.png

구성

"nutritionProgram": {
"name": "Nutrition Program - <5 yrs Children receiving (Deworming)",
"type": "obsCount",  "config": {    "ageGroupName": "All Ages",    "conceptNames": ["Childhood Illness, Albendazole Given"]  }

}

BooleabObsCount.png

2. 코딩 관찰별 코딩 관찰(집계)

두 코딩 관찰을 집계하고 서로 교차한 피벗 테이블로 표시합니다.

예시

CodedVsCoded.png

구성

"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"]  }

}

codedObsByCodedObs.png

3. 진단 건수

Bahmni 시스템에 입력된 모든 진단의 건수를 나열합니다.

구성

"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 테이블에 있어야 합니다.

예시

Diagnosis 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"]           } }
diagnosis count sample.png

연령 그룹 없는 진단 보고서

"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" ] } },

DiagnosiswithoutAgegroup.png

연령 그룹 포함 진단 보고서

"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" ] } },

DiagnosiswithAgegroup.png

4. 검사 건수

모든 검사, 결과와 건수를 나열합니다.

구성

"name": "Malaria Control Programme - Diagnosis and Result [check for Microscopy= 'PBS for Malaria, Filaria parasite', RDT= SUM('Malaria Ags', 'Malaria Abs')]",    "type": "TestCount"

예시

testcount.png

5. 사용자 정의

사전 정의 보고서가 요구 사항을 충족하지 않으면 필요한 형식으로 데이터를 수집하는 임시 SQL 파일을 만들 수 있습니다. 아래에서 구성 설정과 SQL 파일 예시를 확인하십시오. 이 구성을 사용하면 사용자 정의 보고서도 다른 보고서와 함께 표시됩니다.

구성

"hospitalActivities": {
"name": "Hospital Activities - Number of Clients Served (New and Total)",    "type": "MRSGeneric",    "config": {      "sqlPath": "/var/www/bahmni_config/openmrs/reports/hmis/number_of_clients.sql"    }

}

6. 관찰 템플릿 보고서

지정 기간에 입력된 템플릿의 모든 필드와 값을 보여 주는 보고서입니다.

구성

"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입니다.

OpenMRS에 &ldquo;Report location&rdquo; 위치 태그를 추가합니다.

구성에 예: "locationTagNames": ["Report Location"]로 위치 태그를 지정합니다.

예시

Vitals_Template_Report.png

7. OPD/IPD 방문 수 보고서

지정한 기간의 신규/기존 OPD/IPD 환자 수를 표시합니다.

구성

"ipdOPd": {
"name": "OPD/IPD Visit Count",
"type": "IpdOpdVisitCount"

}

예:

opd-ipd-count.png

8. 숫자 개념 값 보고서

지정된 연령 그룹에 대해 결과 값 범위를 기준으로 숫자 개념 관찰 수를 표시합니다.

구성

"HaemoglobinRange": {
"name": "Haemoglobin Range Based Report",
"type": "NumericConceptValuesCount",
"config": {            "rangeGroupName": "Haemoglobin",            "ageGroupName": "Haemoglobin",            "conceptNames": ["Haemoglobin"],            "countOncePerPatient": false
}
}

"countOncePerPatient" 기본값은 false여야 합니다. 이 경우 관찰이 기록된 횟수만큼 집계합니다.

한 진료 사건 안에서는 관찰을 한 번만 집계하며, 같은 사건에서 관찰을 여러 번 변경해도 하나로 봅니다.

"countOncePerPatient"가 true이면 지정 날짜 범위에서 환자별 최신 관찰값만 집계합니다.

예:

numeric-concpet-values-report.png

9. 개념 클래스별 관찰 수 보고서

지정한 날짜 범위의 개념 클래스를 기준으로 관찰 수를 표시합니다.

구성

"radiologyCount": {
"name": "Radiology(X-Ray) Count",
"type": "ObsCountByConceptClass",
"config": {            "conceptClassNames": ["Radiology"]        }
}

예:

obsCountByConceptClass.png

10. 관찰 값 수 보고서

지정된 개념 이름의 각 값별 관찰 수를 표시합니다.

구성

"ObsValueCount": {
"name": "Obs Value Counts for Albumin, MCH, Surgery Date and Posture(blood pressure)",
"type": "ObsValueCount",
"config": {            "conceptNames": ["Albumin","MCH","Date of Surgery","Posture"]        }

}

예:

obsValueCount.png

11. 검사실 검사 결과가 있는 환자 보고서

지정된 검사실 검사 목록과 검사 결과(비정상 및/또는 정상)를 기준으로 검사 결과와 함께 환자 목록을 표시합니다.

구성

"patientsWithLabTest": {
"name": "Patients with labtest results for HIV ELISA, Albumin and MCH",
"type": "PatientsWithLabtestResults",
"config": {            "conceptNames": ["HIV ELISA (Blood)","Albumin","MCH"]
"testOutcome": ["abnormal","normal"]        }
}
patients_with_labtest_results.png

12. IPD 환자 보고서

이 보고서는 환자 상세 정보, 확정 진단(여러 개면 쉼표로 구분), 구성 가능한 개념 목록의 관찰 값(여러 개면 쉼표로 구분), 환자 속성 목록 및 주소 속성 목록 등 여러 필드를 포함한 IPD 환자 목록을 생성합니다.

구성

"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에 &ldquo;Report location&rdquo; 위치 태그를 추가하고 구성에 위치 태그를 지정합니다. 예: "locationTagNames": ["Report Location&rdquo; ],
IPD_Patients_Report.png

13. 방문 집계 수 보고서

지정 날짜 범위에 발생한 입원·퇴원 건수를 방문 유형별로 생성합니다.

구성

"visitAggregateCount": {    "name": "Visit Aggregate Count Report",    "type": "VisitAggregateCount",    "config": {               "type": "VisitAggregateCountReport",
"locationTagNames": ["Report Location"],
"visitTypes": "'IPD','OPD','EMERGENCY'"    }}
  • OpenMRS에 &ldquo;Report location&rdquo; 위치 태그를 추가하고 구성에 위치 태그를 지정합니다. 예: "locationTagNames": ["Report Location&rdquo; ],
visit_aggregate_count.png

14. 환자 프로그램 상태 수 보고서

프로그램의 각 상태에 들어간 환자 수를 생성합니다.

참고: 프로그램에 상태가 없으면 빈 페이지가 열립니다. "programName"은 OpenMRS에 미리 구성된 프로그램이어야 합니다.

구성

"patientProgram": {    "name": "Patient Program State Count Report",    "type": "programStateCount",    "config": {               "programName": "Patient Overall Status"    }}

예: Patient Overall Status 프로그램을 만들고 'Attending Clinic', 'Transferred OutOf', 'Dead'라는 세 상태를 추가했습니다. 이 보고서는 특정 상태에 진입한 환자 수를 보여 줍니다.

지정한 날짜 범위 "From 2015-08-01 to 2015-08-13" 내에서 집계합니다.

환자가 현재 다른 상태에 있어도 원래 상태가 날짜 범위 안에 있고 삭제되지 않았다면 해당 상태 건수에 포함합니다.

Screen Shot 2015-08-07 at 4.51.36 pm.png

15. 환자 프로그램 상태 전환 수 보고서

프로그램 상태 전환을 겪은 환자 수를 생성합니다.

참고: 프로그램에 상태가 없으면 빈 페이지가 열립니다. "programName"은 OpenMRS에 미리 구성된 프로그램이어야 합니다.

구성

"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' 전환을 집계합니다.

Screen Shot 2015-08-13 at 11.40.21 am.png

16. 환자 데이터 보고서

다음 필드로 환자 정보를 생성합니다.

- 환자 ID - 환자 이름 - 나이 - 성별 - 생년월일 - 주소 필드 - 환자 속성 - 등록일

참고: 날짜 범위를 지정하지 않으면 모든 환자 데이터를 반환합니다.

구성

"patientInformation": { "name": "Patient Information", "type": "PatientReport" }

Screen Shot 2015-08-10 at 11.00.49 am.png

17. 프로그램 환자 상태 보고서

환자 상세 정보는 다음 필드로 생성됩니다.

- 일련번호 - 환자 식별자 - 환자 이름 - 환자 나이 - 프로그램 등록일 - 환자 상태 - 상태 시작일 - 상태 종료일 - 환자 프로그램 종료일 - 환자 결과

구성

"programPatientStateReport":{    "name": "Program Patient State Report",    "type": "PatientProgramReport",    "config": {        "programName": "Malaria Program" }},

18. 프로그램 등록 사전 정의 보고서

Screen Shot 2016-02-12 at 2.10.01 PM.png

??

"programEnrollmentTemplateReport": {    "name": "Program Enrollments",  "type": "ProgramEnrollmentReport"}

19. 관찰 사전 정의 보고서

image2015-12-11 14:38:22.png

??

"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"}). (REQUIRED)
  • Apply Date Rage For: 날짜 또는 날짜/시간 유형의 "<tablename&gt;<columnname>". 테이블은 [obs,encounter,patientidentifier,patientprogram,program,concept_view] 중 하나여야 합니다. patientidentifier 및 patientprogram은 구성에 enrolledProgram이 있을 때만 조인됩니다. (REQUIRED)
  • Values, ObsRecording,ProgramEnrollment
  • Addrress Attributes: person_addrress 테이블의 열 이름. (REQUIRED)
  • concept names: 최하위 개념 이름만 지원하며 개념 집합은 지원하지 않습니다. (REQUIRED)
  • visit independent concepts: 방문과 관계없이 최신 obs를 선택합니다. 최신 obs가 있는 방문 외에는 이 필드 값이 없습니다. (REQUIRED)
  • enrolled program: 하나의 프로그램 이름만 지원합니다. (OPTIONAL: 필요 없으면 전체 구성을 제거)
  • show obs only for program duration: 해당 프로그램 기간에 기록된 obs만 필터링합니다. (REQUIRED)

20. 의약품 주문 보고서:

지정 날짜 범위에 약물을 처방받은 환자 정보를 표시하며 환자 정보와 약물 정보로 구성됩니다.

??:

"drugOrderReport":{        "name": "Drug Order report",        "type":"DrugOrder"}

21. 프로그램 관찰 템플릿 보고서

지정 기간에 입력된 템플릿의 모든 필드와 값을 보여 주는 보고서입니다.

구성

"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"]
	}
}

name: 보고서 이름

templateName: 보고서를 생성할 관찰 템플릿

patientAttributes: 보고서에서 환자별로 표시할 카스트, 교육 등의 환자 속성

programAttributes: 보고서에서 프로그램별로 표시할 의사, 치료일 등의 프로그램 속성

programNames: 관찰을 표시할 프로그램 이름 목록. 미지정 시 모든 프로그램의 관찰을 가져옵니다.

OpenMRS에 &ldquo;Report location&rdquo; 위치 태그를 추가합니다.

구성에 예: "locationTagNames": ["Report Location"]로 위치 태그를 지정합니다.

addressAttributes: 표시할 주소 속성 목록. 항상 snake case여야 합니다. 예: "cityVillage"가 아니라 "city_village".

예시

image2016-2-15 12:14:58.png

22. 프로그램별 의약품 주문 보고서

지정 날짜 범위에서 활성 프로그램만 고려해 약물 처방과 활성 프로그램의 모든 데이터를 내보냅니다. 표시할 프로그램과 프로그램 속성을 구성할 수 있습니다.

사용 가능한 구성은 아래 코드 조각을 참조하십시오.

예:

image2016-2-24 11:54:58.png

생성된 보고서를 매크로가 있는 기존 통합 문서 템플릿에 포함

Bahmni에서는 보고서가 내보낸 데이터를 기존 통합 문서 템플릿에 포함할 수 있습니다. 템플릿에는 생성 데이터로 피벗 테이블을 만드는 수식이 들어갈 수 있으며 .xls 형식이어야 합니다.

보고서는 Home > Reports 화면에서 생성할 수 있습니다. 통합 문서 템플릿 수식을 데이터에 적용하려면 형식으로 'CUSTOM EXCEL'을 선택하고 Excel 수식 템플릿을 업로드한 뒤 'Run Report'를 클릭합니다. 실제 데이터는 'Report' 시트에, 템플릿 수식으로 생성된 데이터는 'Sheet1'에 들어갑니다. 매번 업로드하지 않도록 Macro 파일을 구성하는 방법은 아래를 참조하십시오.관련 문서: below

매크로가 포함된 Excel 템플릿을 사용할 수 있습니다. 위 템플릿의 'Sheet1'에 수식을 추가한 뒤 업로드하여 보고서를 생성할 수 있습니다. 생성된 Excel 보고서를 열면 다음과 같이 작동합니다.관련 문서: template.xls

위 Excel 템플릿의 매크로가 실제 데이터에 수식을 적용합니다. 따라서 생성된 Excel 보고서를 열 때 'Enable macros'를 선택해야 합니다.

수식 예시: =SUM(Report!G9, Report!G10) - 'Report' 시트에는 수식을 적용하지 않은 원시 데이터가 포함됩니다.

참고: 다른 템플릿에 수식을 추가하여 보고서를 생성하면 작동하지 않습니다. 위에 연결된 템플릿만 사용하십시오.

보고서를 생성할 때마다 파일을 업로드하지 않도록 bahmni_config에 macroTemplate xls 파일 구성

구성 절차:

  1. 매크로 수식이 포함된 xls(Microsoft 1997-2000) 파일을 bahmni_config에 복사합니다.
  2. 아래와 같이 report.json에서 bahmni_config의 xls 파일 경로를 구성합니다.
    "diabetes":{
            "name": "Diabetes",
            "type": "obsCount",
            "config": {
                "ageGroupName": "All Ages",
                "conceptNames": ["Diabetes, Intake"],
                "visitTypes": ["OPD","IPD"],
                "macroTemplatePath" : "/var/www/bahmni_config/openmrs/apps/reports/macroTemplates/Diabetes.xls"
            }
        },
  3. xml
원문 정보

Bahmni Wiki · CC BY-SA 4.0

원문 보기 ↗