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

Programs 모듈

목적 및 이점

Programs 모듈은 다음 작업에 사용할 수 있습니다.

  1. 질병이나 질환과 관련된 프로그램 생성
  2. 환자를 질환별 프로그램에 등록
  3. 설치 환경별 Program Attributes 구성
  4. 프로그램을 통한 환자의 진행 상태 모니터링
  5. 프로그램에서 환자 제거

절차

1. Bahmni 홈 페이지에 Programs 앱 구성

구현 담당자는 애플리케이션 대시보드에 별도의 "Programs" 앱을 구성할 수 있습니다. "Programs" 앱은 환자 대기열에 별도 구성을 적용한 Clinical 앱과 같습니다.

확장 구성 이름은 앱 URL에서 가져옵니다. 앱 URL에서 # 뒤의 첫 번째 매개변수가 사용할 확장 구성 이름입니다. 예: https://<IP_or_domain_name>/bahmni/clinical/#/{{extension_name}}/patient/search

아래와 같이 home/extension.json을 편집합니다.

"programs": {
  "id": "bahmni.programs",
  "extensionPointId": "org.bahmni.home.dashboard", 
  "type": "link",
  "label": "Programs",
  "url": "../clinical/#/programs/patient/search",
  "icon": "fa-tasks",
  "order": 2,
  "requiredPrivilege": "app:clinical"
}

Programs 앱은 /var/www/bahmni_config/openmrs/apps/clinical/extension-programs.json에 자체 구성을 갖습니다. 특정 검색 탭과 관찰 표시 컨트롤을 구성하려면 관련 구성을 extension-programs.json에 넣습니다.

환자 대기열(검색 탭) 구성

{
  "bahmniClinicalPatientsSearchActivePatientsForPrograms": {
    "id": "bahmni.clinical.patients.search.activePatients",
    "extensionPointId": "org.bahmni.patient.search",
    "type": "config",
    "extensionParams": {
      "searchHandler": "emrapi.sqlSearch.activePatients",
      "display": "Programs",
      "forwardUrl": "#/patient/{{patientUuid}}/consultationContext"
    },
    "label": "Active",
    "order": 1,
    "requiredPrivilege": "app:clinical"
  }

등록된 모든 환자에서 검색하도록 두 번째 탭을 구성합니다.

{
  "bahmniClinicalPatientsSearchAllPatients": {
    "id": "bahmni.clinical.patients.search.allPatients",
    "extensionPointId": "org.bahmni.patient.search",
    "type": "config",
    "extensionParams": {
      "display": "All",
      "forwardUrl": "#/patient/{{patientUuid}}/consultationContext"
    },
    "label": "All",
    "order": 2,
    "requiredPrivilege": "app:clinical"
  }

2. Clinical 모듈에 "Programs" 탭 구성

Clinical 모듈에 "Programs" 탭을 표시하려면 /var/www/bahmni_config/openmrs/apps/clinical/extension.json 파일에 다음 구성을 추가합니다.

아래 코드 조각을 포함하도록 "extension.json"을 수정합니다.

"bahmniCLinicalPatientsSearchActicePatientsForPrograms" : {
  "id": "bahmni.clinical.patients.search.allPatients",
  "extensionPointId": "org.bahmni.patient.search",
  "type": "config",
  "extensionParams": {
    "searchHandler": "emrapi.sqlSearch.activePatientsByProvider",
    "display":"Programs",
    "forwardUrl" : "#/default/patient/{{patientUuid}}/consultationContext"
 },
  "label": "Programs",
  "order": 1,
  "requiredPrivilege": "app:clinical"
}

위와 같이 JSON 파일을 구성하면 임상 환자 검색 페이지에 새 "Programs" 탭이 표시됩니다.

Screen Shot 2015-10-05 at 6.46.09 pm.png

환자 검색 페이지의 Programs 탭

3. OpenMRS에서 새 프로그램 생성

관련 문서를 참조하십시오.관련 문서: 프로그램 구성

4. 프로그램을 진료 유형에 연결

프로그램을 진료 유형과 연결하기 위해 Bahmni는 아래와 같이 구성할 수 있는 일반 엔터티 매핑 개념을 사용합니다.

a) entity_mapping_type 테이블에 프로그램과 진료 유형 사이의 매핑을 정의하는 레코드를 추가합니다.

insert into entity_mapping_type(name, uuid, entity1_type, entity2_type, date_created) values ('program_encountertype', uuid(), 'org.openmrs.Program', 'org.openmrs.EncounterType', now());
insert into entity_mapping(uuid, entity_mapping_type_id, entity1_uuid, entity2_uuid, date_created) values (uuid(), <id_of_the_record_created_in_step_4a>, <uuid_of_program>, <uuid_of_encounter_type>, now());

5. 관찰 템플릿을 프로그램에 연결

관찰 템플릿을 개념으로 프로그램에 연결할 때도 위와 같은 일반 엔터티 매핑을 사용합니다. 다음 단계를 따릅니다.

a) entity_mapping_type 테이블에 프로그램과 개념 사이의 매핑을 정의하는 레코드를 추가합니다.

insert into entity_mapping_type(name, uuid, entity1_type, entity2_type, date_created) values ('program_obstemplate', uuid(), 'org.openmrs.Program', 'org.openmrs.Concept', now());
insert into entity_mapping(uuid, entity_mapping_type_id, entity1_uuid, entity2_uuid, date_created) values (uuid(), <id_of_the_record_created_in_step_5a>, <uuid_of_program>, <uuid_of_concept>, now());

6. Program Attributes 구성

환자가 프로그램에 등록되면 해당 등록에만 적용되는 추가 속성 유형이 있을 수 있습니다. 이를 Program Attributes라고 하며 환자에 따라 값이 달라집니다. 예: Program Identifier, Date of Enrollment, Facility of Enrollment.

Bahmni는 Program Attribute 유형의 값을 입력하는 기능을 지원합니다. 프로그램 시작 시점이나 진행 중에 입력·편집할 수 있으며 사용 요구에 따라 구성할 수 있습니다.

설치 환경의 프로그램 속성을 구성하려면 아래 SQL 쿼리로 프로그램 속성을 추가합니다. 데이터 유형은 다음 중 하나일 수 있습니다.

org.openmrs.customdatatype.datatype.FreeTextDatatype
org.openmrs.customdatatype.datatype.BooleanDatatype 
org.openmrs.customdatatype.datatype.DateDatatype 
org.openmrs.customdatatype.datatype.RegexValidatedTextDatatype
org.openmrs.customdatatype.datatype.ConceptDatatype
Adding program attributes
insert into program_attribute_type(name, description, datatype, min_occurs, creator, date_created, uuid) values('Sample attribute1','This is a test attribute', 'org.openmrs.customdatatype.datatype.FreeTextDatatype', 0, 1, NOW(), UUID());
 
insert into program_attribute_type(name, description, datatype, datatype_config, min_occurs, creator, date_created, uuid) values('Sample attribute3','This is a NumericRegex attribute', 'org.openmrs.customdatatype.datatype.RegexValidatedTextDatatype', '[0-9]*', 0, 1, NOW(), UUID());

insert into program_attribute_type(name, description, datatype, datatype_config, min_occurs, creator, date_created, uuid) values('Sample attribute2','This is a CodedConcept attribute', 'org.openmrs.customdatatype.datatype.ConceptDatatype', 123, 0, 1, NOW(), UUID());

******* 123 is Concept Id

7. 필수 Program Attributes 구성

Clinical 모듈의 app.json에 다음 구성을 추가합니다.

Configuring mandatory program attributes
"config" : {
    "program": {
        "programAttributeName" : {
            "required" : true
        }
    }
}

8. 프로그램별 특정 Program Attributes 숨기기

선택한 프로그램에 따라 특정 Program Attributes를 숨기려면 Clinical 모듈의 app.json에 다음 구성을 추가합니다. 이 기능은 release-0.90부터 사용할 수 있습니다.

Hiding specific Program Attributes
"config" : {
    "program": {
        "programAttributeName" : {
            "excludeFrom" : ["ProgramName"]
        }
    }
}

9. 나이를 연도로 표시하도록 환자 속성 구성

Clinical 모듈의 app.json에 다음 구성을 추가합니다. 프로그램 관리 페이지에서 환자 나이를 연 단위로만 표시합니다.

"config" : {
	"program": {
    	"patientInformation": {
     		"ageLimit":100
    	}
	}
}

10. Program Attributes 표시 컨트롤 구성

Clinical 모듈의 app.json에 다음 구성을 추가합니다.

Configuring mandatory program attributes
"config" : {
    "programDisplayControl": {
    	"showProgramStateInTimeline": true,
    	"programAttributes": [
        	"Treatment_Date",
			"Doctor",
			"Id"
    	]
	}
}

11. 프로그램 사용 중지

Retire Programs 문서를 참조하십시오.

12. 과거 프로그램에 관찰 추가

프로그램에 관찰을 추가할 수 있습니다. 프로그램을 종료하면 과거 프로그램 아래에 표시됩니다. 과거 프로그램에서 환자 대시보드로 이동하여 관찰을 추가하면 해당 프로그램에 연결됩니다. 이 방식으로 과거 프로그램에도 관찰을 추가할 수 있습니다.

13. Forms Display Control 구성

프로그램 등록 페이지에 Forms Display Control을 표시할 수 있습니다. 간호사가 먼저 환자를 분류한 뒤 의사가 양식을 검토하고 환자 범주를 지정합니다. 간호사의 절차는 다음과 같습니다.

  • 환자를 프로그램에 등록(예: 사전 환자 분류)
  • 분류 양식 작성

의사의 절차는 다음과 같습니다.

  • 분류 양식 검토
  • 프로그램 상태 및 진료과 업데이트

간호사와 의사가 쉽게 이동할 수 있도록 프로그램 등록 페이지에 양식을 표시합니다. clinical/app.json의 config 영역에 다음 구성을 추가합니다.

"observationForms": {
     "numberOfVisits": 10
}
원문 정보

Bahmni Wiki · CC BY-SA 4.0

원문 보기 ↗