Bahmni 개발 환경 설정
배경
- Bahmni EMR은 AngularJS와 HTML로 만든 클라이언트 측 애플리케이션이며 REST 웹 서비스를 사용해 OpenMRS 백엔드와 통신합니다. Bahmni에는 추가 서버 측 기능을 제공하는 bahmni-core라는 일반 OpenMRS 모듈도 포함됩니다. Bahmni 팀은 검사실 검사 워크플로와 보고를 위해 OpenELIS를 포크했고, 재고 및 청구를 위한 OpenERP(Odoo) 모듈을 작성했습니다. 세 하위 시스템(OpenMRS, OpenERP, OpenELIS)을 통합하기 위해 ATOM Feed 기반 통합 모듈을 작성하여 데이터가 세 시스템 사이에서 흐르도록 했습니다. Bahmni 아키텍처는 관련 문서를 참조하십시오.
설치할 의존성
다음 의존성이 장비에 설치되어 있는지 확인하십시오.
최초 설정
Bower, Grunt 및 Compass 설치
코드 복제
bahmni-environment 하위 폴더가 있는 동일한 폴더에 Bahmni 코드를 복제합니다. 각 clone 명령은 저장소 이름의 하위 폴더를 만듭니다.
Bahmni EMR UI 준비 및 빌드
다음 명령은 Bahmni EMR UI 애플리케이션을 빌드합니다. 이 문서 위쪽에서 설명한 npm, bower, grunt-cli가 장비에 설치되었는지 확인하십시오.
EMR UI용 호스트 장비 폴더 링크 생성
Vagrant 내부의 Apache가 컴파일된 코드를 사용하도록 호스트 장비에서 컴파일한 코드를 Vagrant 파일 시스템에 연결합니다. 기본적으로 Vagrant 내부에 심볼릭 링크를 만듭니다.
# Go back into the openmrs-module-bahmniapps folder (not ui folder)
cd openmrs-module-bahmniapps
# WARNING DO THIS ONLY IF YOU HAVE COMPILED THE UI CODE ALREADY ON YOUR MACHINE. ELSE YOUR EMR UI WON'T WORK
# IF YOU ARE ONLY DOING IMPLEMENTATION SPECIFIC UI CHANGES, THEN READ THE WARNING NOTE ABOVE.
# links app folder
./scripts/vagrant-link.sh
# links dist folder
./scripts/vagrant-link.sh dist위 링크 명령을 실행하면 Vagrant 박스의 /var/www 안에 호스트 장비를 가리키는 새 심볼릭 링크가 생성됩니다.
이전:

이후:

cd /Project/default-config # or jss-config, etc
# Link the configuration
./scripts/vagrant-link.sh구성 연결됨:

Bahmni AngularJS 앱 개발
로컬 장비에 Bahmni 애플리케이션 코드를 체크아웃한 상태입니다. 이는 클라이언트 측 AngularJS 애플리케이션입니다.
HTML, JS, CSS를 편집할 때 원하는 개발 도구를 사용할 수 있습니다. 클라이언트 측과 서버 측 코드를 모두 작업한다면 IntelliJ나 Eclipse 같은 Java IDE가 적합합니다. 클라이언트 앱만 작업한다면 웹 개발에 특화된 도구를 사용할 수 있습니다.
HTML 파일 편집
HTML 파일을 직접 편집하고 변경 사항을 확인할 수 있습니다.
JS 파일 편집
JavaScript 파일을 직접 편집하고 변경 사항을 확인할 수 있습니다.
CSS 파일 편집
Bahmni의 CSS는 SASS로 작성되므로 .scss 파일을 편집한 후 openmrs-module-bahmniapps/ui로 이동하여 전체를 컴파일해야 합니다.
예를 들어 /Project/bahmni/openmrs-module-bahmniapps/ui/app/styles/bahmni-helper/_base.scss 파일에서 body 요소의 색상을 $text에서 #ff0000으로 변경한 다음 grunt로 빌드합니다.
OpenMRS Java 모듈 개발
Bahmni가 타사 모듈로 사용하는 모든 OpenMRS 모듈과 Bahmni 팀이 만든 모듈은 /home/bahmni/.OpenMRS/modules(이전 위치) 또는 /opt/openmrs/modules(새 위치)에 저장됩니다. Vagrant 박스에서 현재 위치를 확인하십시오. OpenMRS/Bahmni 모듈을 변경하거나 새로 추가하려면 다음 절차를 수행합니다.
# Stop Tomcat
sudo service tomcat stop
# Copy the module
cp module_name.omod /home/bahmni/.OpenMRS/modules
# Start Tomcat
sudo service tomcat start# Go to the appropriate project directory
cd bahmni-core
# Build the module using maven
mvn clean installTomcat에서 실행 중인 코드 디버깅
Tomcat에서 실행 중인 코드를 디버깅하려면 IDE가 원격 디버거로 연결할 포트를 열도록 Tomcat을 디버그 모드로 시작해야 합니다. 다음 절차를 수행하십시오.
그런 다음 VagrantFile을 편집하여 게스트와 호스트의 8000번 포트를 연결해야 합니다.
이제 Eclipse, IntelliJ 또는 다른 IDE에서 원격 디버거를 열고 8000번 포트에 연결하여 코드를 디버깅할 수 있습니다.
Bahmni Wiki · CC BY-SA 4.0