Programs 모듈
목적 및 이점
Programs 모듈은 다음 작업에 사용할 수 있습니다.
- 질병이나 질환과 관련된 프로그램 생성
- 환자를 질환별 프로그램에 등록
- 설치 환경별 Program Attributes 구성
- 프로그램을 통한 환자의 진행 상태 모니터링
- 프로그램에서 환자 제거
절차
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" 탭이 표시됩니다.

환자 검색 페이지의 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.ConceptDatatypeinsert 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 Id7. 필수 Program Attributes 구성
Clinical 모듈의 app.json에 다음 구성을 추가합니다.
"config" : {
"program": {
"programAttributeName" : {
"required" : true
}
}
}8. 프로그램별 특정 Program Attributes 숨기기
선택한 프로그램에 따라 특정 Program Attributes를 숨기려면 Clinical 모듈의 app.json에 다음 구성을 추가합니다. 이 기능은 release-0.90부터 사용할 수 있습니다.
"config" : {
"program": {
"programAttributeName" : {
"excludeFrom" : ["ProgramName"]
}
}
}9. 나이를 연도로 표시하도록 환자 속성 구성
Clinical 모듈의 app.json에 다음 구성을 추가합니다. 프로그램 관리 페이지에서 환자 나이를 연 단위로만 표시합니다.
"config" : {
"program": {
"patientInformation": {
"ageLimit":100
}
}
}10. Program Attributes 표시 컨트롤 구성
Clinical 모듈의 app.json에 다음 구성을 추가합니다.
"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