Bahmni 테스트 데이터 생성기
소스 코드

사용자 설정 입력
- Patient Count(PATIENT_COUNT) - Bahmni에 새로 등록할 환자 수. Create Encounters(S_CREATE_ENCOUNTER) - y/n - 위에서 등록한 환자의 Encounter 생성 여부. Encounter Count(ENCOUNTER_COUNT) - Encounter가 필요한 환자 수. Upload Data(S_UPLOAD_CSV) - y/n - 생성한 CSV 파일을 Bahmni에 업로드할지 여부.
config.yaml
용어 설명
- PATIENT_PROFILE_FILE_NAME - 새 환자 정보가 있는 registrations.csv 파일 경로. ENCOUNTER_PROFILE_FILE_NAME - Encounter(환자의 이전 Visit 관련 정보)가 있는 encounters.csv 파일 경로. REGISTRATION_INDEX_START_POINT - 환자에게 생성할 고유 ID의 마지막 네 자리. PATIENT_REGISTRATION_START_DAY - 무작위 등록일 생성을 위한 기준 날짜. BASEURL - 생성한 CSV 파일을 업로드할 Bahmni URL. USERNAME - Admin 사용자. PASSWORD - Admin 비밀번호. LOCATION - Admin 사용자의 로그인 위치. REG_INITIAL - 환자 ID의 첫 네 글자. PATIENT_COUNT - 기본 환자 수, 값: 10. S_CREATE_ENCOUNTER - 위 환자의 Encounter 생성을 위해 기본 y(yes). ENCOUNTER_COUNT - 환자별 기본 Encounter 수, 값: 10. S_UPLOAD_CSV - 생성한 CSV 파일을 Bahmni 데이터베이스에 업로드하도록 기본 y(yes).
CSV Generator는 사용자 설정 입력을 받아 환자(registration.csv)와 Encounter(encounters.csv)를 만들고 Bahmni에 업로드합니다. 사용자 설정을 제공하지 않으면 config.yaml의 기본값을 CSV Generator에 전달합니다.
환자의 현실적인 테스트 데이터를 만들기 위해 CSV Generator는 Faker 서비스를 사용하여 이름, 주소 등을 생성합니다.
내부에서 테스트 데이터가 생성되면 output 폴더에 registration.csv와 선택 사항인 encounters.csv로 저장됩니다.
CSV 파일 예시
registration.csv
"Registration Number","Registration Date","First Name","Middle Name","Last Name","Gender","Birth Date","Address.Village","Address.Tehsil","Address.District","Address.State"
"GAN1019","2021-07-13","Brahmabrata","Agarwal","Mehra","M","1935-09-04","Hyderabad","Apt. 680","Hyderabad","Manipur"
"GAN1020","2017-04-04","Sarisha","Nehru","Dubashi","F","1950-07-10","Mumbai","Apt. 807","Mumbai","Rajasthan"encounters.csv
CSV 파일 업로드
- OpenMRS 및 BahmniCore API를 사용해 Registration과 Encounter CSV 파일을 모두 업로드합니다. 올바른 Cookie가 생성되어야 CSV 파일을 Bahmni 데이터베이스에 성공적으로 업로드할 수 있습니다. 업로드 전에 Cookie를 설정하기 위해 여러 API 서비스를 호출하고 필요한 Cookie 정보를 얻어 Cookie Store에 저장합니다.
참고: Cookie Store는 런타임에 Cookie를 저장하고 조회하도록 만든 객체입니다.
실행 순서
Get Location Service
/openmrs/ws/rest/v1/location
위치와 위치 UUID를 Cookie Store에 제공합니다.
Get User Service
/openmrs/ws/rest/v1/user
config.yaml에서 ‘user’와 ‘password’를 가져와 사용자의 JSESSION ID를 Cookie Store에 제공합니다.
Get Session Service
/openmrs/ws/rest/v1/session
CookieStore의 현재 Cookie를 사용하고 Reporting Session ID를 Cookie Store에 제공합니다.
Upload Patient Service
/openmrs/ws/rest/v1/bahmnicore/admin/upload/patient
CookieStore의 현재 Cookie를 사용해 Multipart Upload 방식으로 registration.csv 파일을 업로드합니다.
Get Upload Status Service
/openmrs/ws/rest/v1/bahmnicore/admin/upload/status
CSV 파일 업로드가 성공적으로 완료되었는지 검증하는 서비스입니다. 상태가 ‘Completed’로 조회된 경우에만 Encounter Upload Service를 호출합니다.
Upload Encounter Service
/openmrs/ws/rest/v1/bahmnicore/admin/upload/encounter
CookieStore의 현재 Cookie를 사용해 Multipart Upload 방식으로 encounters.csv 파일을 업로드합니다.
Get Upload Status Service
/openmrs/ws/rest/v1/bahmnicore/admin/upload/status
CSV 파일 업로드가 성공적으로 완료되었는지 검증하는 서비스입니다. 상태가 ‘Completed’로 조회된 경우에만 빌드를 성공으로 처리합니다.
Bahmni Wiki · CC BY-SA 4.0