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

Bahmni Mart 개요

MSF는 환자 데이터를 활용하여 효율성을 높이고 불필요한 변동과 낭비를 줄이며 진료 품질의 격차를 식별하고 해결하려 합니다. 현재 보고와 데이터 분석이 충분히 효과적이지 않은 주된 이유 중 하나는 Bahmni에서 데이터를 추출하여 적절한 도구로 사용하기 어렵기 때문입니다. 즉석 보고서를 생성하고 데이터를 분석하기보다 데이터를 관리·생성하고, 여러 프로젝트 센터에서 종이 기반 Excel 보고서를 수집하며, Excel 같은 사용자 지정 소프트웨어에서 데이터 집합을 구성하는 데 대부분의 시간이 쓰입니다.

보고를 쉽게 만드는 한 단계는 병원과 미션에서 생성되는 입력 데이터를 저장하는 방식을 설계하는 것입니다. 이를 위해 계층형 데이터베이스를 평면화하고 피벗한 분석 데이터베이스를 설계했습니다. 이를 Mart DB 또는 간단히 Analytics DB라고 합니다. 이 해결책은 다음을 가능하게 합니다.

  • 여러 데이터 분석 도구가 Bahmni Analytics 데이터베이스를 직접 쉽게 사용
  • 구현 담당자가 OpenMRS 데이터 모델을 완전히 이해하지 않아도 데이터를 추출하거나 기존 데이터 집합을 수정
  • 개발자가 새 보고서를 정의하거나 관심 데이터 집합을 더 빠르게 추출

피벗되고 평면화된 구조는 데이터의 계층적 특성을 제거합니다.

사용자와 통계 담당자의 요구에 따라 분석 DB의 평면화 테이블로 여러 뷰도 만들었습니다. 간단한 SQL 쿼리로 여러 테이블의 데이터를 제공합니다.

작업 유형 및 그룹화된 테이블:

bahmni-mart 애플리케이션에 제공하는 구성량을 줄이기 위해 유사한 테이블을 해당 유형 아래에 묶었습니다. 이제 사용자는 패키지 유형의 작업 하나만 추가하여 그 유형의 모든 테이블을 얻을 수 있습니다.

패키지된 작업 유형과 그 아래의 작업은 다음과 같습니다.

Job TypeGrouped tables
ProgramsPrograms_default, program_outcomes_default,patient_program_data_default,program_workflow_default, program_workflow_states_default, program_attributes
Patients Patient_state_default, patient_allergy_status_default, patient_identifier
appointmentsPatient_appointment_default, appointment_service_default, service_availability_default, appointment_speciality_default
bedManagementBed_patient_assignment_default, bed_tags_default, current_bed_details_default
locationLocation_default, location_tag_map_default, location_attribute_details_default
operationTheaterSurgical_block_default, surgical_appointment_default, surgical_appointment_attribute_type_details_default, surgical_appointment_attributes
personPerson_details_default, person_address_default, person_attribute_info_default, address_hierarchy_level_default, person_attributes
providerProvider_default, provider_attribute_details_default, provider_attributes
visitsAndEncountersPatient_visit_details_default,patient_encounter_details_default,visit_attribute_details_default,visit_attributes
medicationAndOrdersMedication_data_default, [All forms under All Orderables as tables]
diagnosesAndConditionsConditions_default, [All forms under Visit Diagnoses as tables]
bacteriology[All forms under Bacteriology Concept Set as tables]
metadataAll concept related information class, datatype, with respect to source.
obs[All forms under All Observation Templates as tables]
Forms 2.0[All forms which are created with Implementer Interface ]
regreg_{table Name}
disposition[All forms under Disposition Set as tables]

그룹화 작업 구성 예시 링크

사용자 지정 작업/뷰 추가

Bahmni Mart에서는 기본 작업 외에 사용자 지정 작업과 뷰를 추가할 수 있습니다. 각각의 구성 예시는 다음과 같습니다.

참고: Reader SQL은 OpenMRS 데이터베이스에서 실행 가능해야 합니다. 증분 구성은 선택 사항이며 이 작업에 증분 업데이트가 필요할 때만 지정합니다.

사용자 지정 뷰 구성:

참고: 분석 데이터베이스에 뷰를 생성하므로 SQL은 분석 데이터베이스에서 실행 가능해야 합니다.

여러 작업의 뷰 목록:

  1. https://msfprojects.atlassian.net/wiki/spaces/BAH/pages/330268771/Programs+Module#Mart-Views
  2. https://msfprojects.atlassian.net/wiki/spaces/BAH/pages/342392845/Patients#Mart-Views
  3. https://msfprojects.atlassian.net/wiki/spaces/BAH/pages/329678986/Appointment+Scheduling#Mart-views
  4. https://msfprojects.atlassian.net/wiki/spaces/BAH/pages/330268840/Bed+Management#Mart-Views
  5. https://msfprojects.atlassian.net/wiki/spaces/BAH/pages/330268862/Operation+Theatre#Mart-Views
  6. https://msfprojects.atlassian.net/wiki/spaces/BAH/pages/329678956/Visits+and+Encounters#Mart-Views
  7. https://msfprojects.atlassian.net/wiki/spaces/BAH/pages/329678902/Registration+Second+Page#Mart-Views

표준 그룹화 작업, 사용자 지정 작업 및 뷰의 차이:

표준 그룹화 작업은 OpenMRS의 데이터를 평면화하지만 각 작업의 readerSql은 볼 수 없습니다. readerSql은 코드에서 동적으로 생성됩니다. 따라서 새 열을 추가하려면 코드 수준의 변경이 필요합니다.

사용자 지정 작업에서는 readerSql을 직접 볼 수 있고 출력을 분석 데이터베이스의 원하는 테이블로 보냅니다. SQL 쿼리만 변경하면 되므로 분석 테이블에 새 열을 쉽게 추가할 수 있습니다.

  • 현재 그룹화 작업과 사용자 지정 작업에서 가능한 구성은 columnsToIgnore뿐입니다. columnsToIgnore JSON에 지정된 OpenMRS 데이터베이스 열을 분석 데이터베이스로 옮길 때 무시합니다. 무시할 열은 테이블마다 각각 지정해야 합니다. 작업 수준이 아니라 해당 작업의 특정 테이블 이름 아래에 지정합니다. 전체 bahmni-mart 작업 유형과 관계없이 특정 작업을 증분 적재 또는 전체 적재로 선택할 수 있습니다.

예: bahmni-mart가 증분 적재로 실행되더라도 일부 작업을 전체 적재로 실행하도록 지정할 수 있습니다.

뷰에서는 SQL 쿼리를 볼 수 있지만 쿼리는 OpenMRS 테이블이 아니라 분석 테이블에서 실행됩니다. 일반적으로 뷰 쿼리에서 하나 이상의 분석 테이블을 결합하여 테이블(뷰)을 만듭니다. 기반 분석 테이블의 데이터가 변경되면 뷰가 자동으로 업데이트됩니다.

  • 뷰에는 열 무시나 증분/전체 적재 옵션이 없습니다. 특정 열을 추가하거나 제외하려면 해당 뷰 쿼리에서 직접 처리합니다.

bahmni-mart용 CronJob 설정:

분석 DB를 OpenMRS DB와 동기화하려면 bahmni-mart를 정기적으로 실행할 수 있습니다. 요구 사항에 따라 하루 또는 일주일에 한 번 실행합니다. bahmni-mart 명령을 자동 실행하려면 하루 중 지정된 시간에 명령을 실행하는 CronJob을 구성합니다.

  • bahmni-mart용 샘플 CronJob

위 CronJob은 매일 오후 11시에 Bahmni Mart 명령을 실행합니다. 구현 환경의 업무 시간 이후에 실행하는 것이 좋습니다. 증분 적재로 실행하므로 전체 작업에 많은 시간이 걸리지 않습니다.

하위 문서

원문 정보

Bahmni Wiki · CC BY-SA 4.0

원문 보기 ↗