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

증분 업데이트

Bahmni-mart는 데이터 평탄화 중 증분 업데이트를 지원합니다. 일부 특정 작업은 /var/www/bahmni_config/bahmni-mart/bahmni-mart.json에 증분 업데이트 설정을 추가하여 쉽게 활성화할 수 있습니다. 모든 작업이 이 범주에 해당하는 것은 아닙니다. 자세한 내용은 이 섹션을 확인하세요.관련 문서: this

예제는 여기에서 확인하십시오.관련 문서: here

Key NameDescriptionDefault ValueRequired
updateOnColumn name in the analytics database depends on which incremental update should workN/Ayes
eventCategoryCategory name present in event_records table (openmrs database)N/Ayes
openmrsTableNameTable name in OpenMRS for given eventCategoryN/Ayes

특정 작업의 증분 구성 활성화/비활성화: 아래 작업은 기본적으로 증분 구성이 활성화되어 있어 bahmni-mart를 적재할 때마다 작업별 테이블이 증분 방식으로 적재됩니다. 특정 작업의 테이블을 매번 전체 적재하려면 해당 작업 JSON 파일의 테이블에서 incrementalUpdateConfig 절을 제거할 수 있습니다.

  1. Person, Patients, Programs, Appointments, Bed Management, Operation Theater, Visits and Encounters, Medication And Orders, Diagnoses And Conditions, Provider

이는 Bahmni 인스턴스의 bahmni-mart.json에서 직접 바꾸는 단순 구성 변경이 아닙니다. 작업별 JSON 파일을 변경하려면 bahmni-mart RPM을 빌드하여 Bahmni 인스턴스에 배포해야 합니다.

1. Person 작업 - 평면화된 Mart 테이블: person_details_default와 person_address_default Mart 테이블은 기본적으로 incrementalUpdateConfig가 활성화되어 있고 나머지 테이블은 전체 적재로 실행됩니다.

person_details_default 
person_address_default
person_attribute_info_default
address_hierarchy_level_default

person.json:

{
  "jobs": [
    {
      "name": "Person details",
      "type": "customSql",
      "readerSql": "SELECT p.person_id, pn.person_name_id, pn.preferred, pn.prefix, pn.given_name, pn.middle_name, pn.family_name_prefix, pn.family_name, pn.family_name2, pn.family_name_suffix, p.gender, p.birthdate, EXTRACT(YEAR FROM p.birthdate) AS birthyear, p.birthtime, p.birthdate_estimated, FORMAT((DATEDIFF(CURRENT_DATE, p.birthdate) / 365), 0) AS age, CASE WHEN ROUND(DATEDIFF(CURRENT_DATE(), p.birthdate) / 365, 0) < '5' THEN '0-5' WHEN ROUND(DATEDIFF(CURRENT_DATE(), p.birthdate) / 365, 0) BETWEEN '5' AND '14' THEN '05-14' WHEN ROUND(DATEDIFF(CURRENT_DATE(), p.birthdate) / 365, 0) BETWEEN '15' AND '24' THEN '15-24' WHEN ROUND(DATEDIFF(CURRENT_DATE(), p.birthdate) / 365, 0) BETWEEN '25' AND '34' THEN '25-34' WHEN ROUND(DATEDIFF(CURRENT_DATE(), p.birthdate) / 365, 0) BETWEEN '35' AND '44' THEN '35-44' WHEN ROUND(DATEDIFF(CURRENT_DATE(), p.birthdate) / 365, 0) BETWEEN '45' AND '54' THEN '45-54' WHEN ROUND(DATEDIFF(CURRENT_DATE(), p.birthdate) / 365, 0) BETWEEN '55' AND '64' THEN '55-64' WHEN ROUND(DATEDIFF(CURRENT_DATE(), p.birthdate) / 365, 0) >= '65' THEN '65+' END AS age_group, p.dead, p.death_date, p.deathdate_estimated, p.cause_of_death FROM person p INNER JOIN person_name pn ON p.person_id = pn.person_id AND p.voided = FALSE AND pn.voided = FALSE",
      "tableName": "person_details_default",
      "incrementalUpdateConfig": {
        "updateOn": "person_id",
        "eventCategory": "patient",
        "openmrsTableName": "person"
      }
    },
    {
      "name": "Person address",
      "type": "customSql",
      "readerSql": "SELECT person_id, preferred, address1, address2, address3, address4, address5, address6, address7, address8, address9, address10, address11, address12, address13, address14, address15, city_village, state_province, postal_code, country, county_district, latitude, longitude, start_date, end_date FROM person_address WHERE voided = FALSE",
      "tableName": "person_address_default",
      "incrementalUpdateConfig": {
        "updateOn": "person_id",
        "eventCategory": "patient",
        "openmrsTableName": "person"
      }
    },
    {
      "name": "Person Attribute Info",
      "type": "customSql",
      "readerSql": "SELECT person_attribute_type_id, name, description FROM person_attribute_type",
      "tableName": "person_attribute_info_default"
    },
    {
      "name": "Address hierarchy levels",
      "type": "customSql",
      "readerSql": "SELECT address_hierarchy_level_id, name, parent_level_id, address_field FROM address_hierarchy_level",
      "tableName": "address_hierarchy_level_default"
    }
  ]
}

2. Patients 작업:

평면화된 Mart 테이블

모든 환자 Mart 테이블은 기본적으로 incrementalUpdateConfig가 활성화되어 있습니다.

patients.json:

3. Programs 작업 - 평면화된 Mart 테이블: patient_program_data_default와 program_attributes 테이블은 기본적으로 incrementalUpdateConfig가 활성화되어 있고 나머지 Mart 테이블은 전체 적재로 실행됩니다.

programs_default
program_outcomes_default
patient_program_data_default
program_workflow_default
program_workflow_states_default
program_attributes

Programs.json:

4. Appointments 작업 - 평면화된 Mart 테이블: 아래 Mart 테이블은 customSql 작업 유형으로 생성됩니다. patient_appointment_default, appointment_service_default 및 service_availability_default는 기본적으로 incrementalUpdateConfig가 활성화되어 있고 appointment_speciality_default는 전체 적재로 실행됩니다.

patient_appointment_default
appointment_service_default
appointment_speciality_default
service_availability_default

appointments.json:

5. Bed Management 작업:

평면화된 Mart 테이블

참고: 아래 Mart 테이블은 customSql 작업 유형으로 생성됩니다.

bed_patient_assignment_default와 bed_tags_default는 기본적으로 incrementalUpdateConfig가 활성화되어 있고 current_bed_details_default는 전체 적재로 실행됩니다.

bedManagement.json:

6. Operation Theater 작업:

평면화된 Mart 테이블

surgical_block_default, surgical_appointment_default 및 surgical_appointment_attributes 테이블은 기본적으로 incrementalUpdateConfig가 활성화되어 있습니다.

surgical_appointment_attribute_type_details_default 테이블은 전체 적재로 실행됩니다.

operationTheater.json:

7. Visits and Encounters 작업:

평면화된 Mart 테이블

patient_encounter_details_default 테이블만 기본적으로 incrementalUpdateConfig가 활성화되어 있고 나머지는 전체 적재로 실행됩니다.

visitsAndEncounters.json:

8. Medication And Orders 작업: Medication과 Orders가 하나의 작업과 단일 JSON 파일로 결합되어 있습니다.

평면화된 Mart 테이블: Medication 및 Orders 관련 위 Mart 테이블은 모두 기본적으로 incrementalUpdateConfig가 활성화되어 있습니다.

medication_data_default
lab_samples
radiology_orders

medicationAndOrders.json:

9. Diagnoses And Conditions 작업:

Diagnoses와 Conditions가 하나의 작업과 단일 JSON 파일로 결합되어 있습니다.

Mart 테이블

Diagnosis 관련 테이블만 기본적으로 incrementalUpdateConfig가 활성화되어 있고 conditions_default는 기본적으로 전체 적재로 실행됩니다.

diagnosesAndConditions.json:

10. Provider 작업:

평면화된 Mart 테이블

provider_attributes 테이블만 기본적으로 incrementalUpdateConfig가 활성화되어 있고 나머지 테이블은 기본적으로 전체 적재로 실행됩니다.

provider.json:

원문 정보

Bahmni Wiki · CC BY-SA 4.0

원문 보기 ↗