kookmin-sw / 2018-cap1-4 Goto Github PK
View Code? Open in Web Editor NEWOriental medical and Expert system convergence
Oriental medical and Expert system convergence
최종 결과 페이지에 필요한 사진 첨부해 주시면 같이 연동하겠습니다.
매주 회의를 목요일로 정했는데 시간이 가능한지 답글 남겨 줄 것
또한 저번 교수님과 회의에서 웹에서 의사가 아닌 일반사람들도 웹을 접근 후 이용
가능하게 하려면 앞단에 아파치서버 를 추가해서 로드밸런싱을 구성하는 부분에
대해서 검토가 필요 할 것 같습니다.
또한, 아래 내용에 대해서 준비해서 회의를 가졌음 하고 에로 사항 등 답글 부탁드립니다.
장원용: 로드밸런싱 (아파치서버 단점 보완한 엔진엑스 검토)
김태우 : 수지침 Rule 추가 및 정리, 아파치 서버 검토
류준영 : 사상체질 Rule 추가 및 정리 (기존 Rule 진단과 연결)
차은채 : UI 구성 하기위한 개발 환경 구축
Expert System 도메인 Rule 결정에 대해서 회의가 필요합니다.
기존 인턴에서 사용하던 Rule을 토대로 시스템을 구현할지
새로운 도메인 Rule을 결정해서 진행 할지 각자 의견이 필요할 것 같습니다.
@KimTaeWoo-CS / 대기자명단 디비테이블 추가됨
현재 대기자 명단에서 설문지를 클릭했을 때 해당 환자의 환자 번호를 가지고 설문지가 팝업창으로 열리게 됩니다.
설문은 기타 항목 전까지 현재 연동한 상태이며, 작성완료하고 저장을 눌르게 되면 map 으로 id 와 value 을 가진 리스트를 가지게 되면 SurveyVO 클래스를 수정해 주시면 될꺼같습니다.
아래는 SurveyVO 클래스에서 소스코드 일부이며 설문지 항목 head_1 일때 updateSymptom 테이블에 넣을 증상 이름인 symptom 를 입력해 주시고 테스트 해보시면 디비테이블에 항목이 들어갈것입니다.
또한 drools 연동을 위해서 rule 테이블, prescription 테이블을 같이 만들어 주시면 됩니다.
///////////////////////////////////////////////////////////////////////////////////////////////////////////
public String fromSurveyToSymptom(String str) {
String symptom="";
switch(str)
{
case "head_1": symptom = "head";
break;
case "head_2": symptom = "head2";
break;
}
return symptom;
$ git rm -r --cached .
$ git add .
$ git commit -m "fixed untracked files”
다음의 명령을 사용하시면 곧바로 설정이 적용됩니다.
저장소에 이미 올라가있는 파일들도 삭제됩니다. (물론 푸시했을때)
UI 화면구성을 하는 과정에서 의견을 듣고싶습니다. 환자정보, 로그인창, 설문결과, 증상, 증상을 선택할 수 있는 리스트, 진단, 처방 칸 외에 넣었으면 하는 추가사항들 있으면 말해주세요.
현재 로그인을 시도하면
LoginCheck는 정상적으로 호출되지만,
실질적인 로그인은 이뤄지지 않고 있습니다.
확인 부탁드립니다.
DB 연동에 문제로 아래 소스 코드를 주석처리 해놓은 상태입니다.
git pull 하고 아래 코드 주석을 제거하면 정상 작동 합니다.
위치는 RuleController.java를 찾아 가시면 됩니다.
@PostConstruct // 생성자 annotation
public void initialize(){
patient = new PatientVO(); // 추후 빈객체로 사용할 예정
symptomVO = new PatientSymptomVO();
//patient = (PatientVO) BeanUtils.getBean("patientVO");
List<DomainRuleVO> ruleList = null; // rules
try {
ruleList = ruleService.selectDomain();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Map<String,Object>ruleMap = new HashMap<String,Object>();
for(DomainRuleVO obj : ruleList) // hashmap
{
ruleMap.put(obj.getRuleID(), obj);
obj.countAndSymptom(); //
}
drools = new DroolsSpringTest();
drools.setRuleMap(ruleMap); // drools hash map setting
logger.info("setRuleDomain complete!");
}
초기 ER 다이어그램모델로 수정이 더 필요로 할것 같습니다.
추가 수정 사항 있으시면 의견 남겨주세요.
(doc / ER다이어그램.pptx 확인해주시면 됩니다)
사상체질 판독 설문 모델로 2가지 검색해보았는데
한가지는 1989년도 경희대학교 대학원 한의학과 체질의학전공 석사학위 논문인 "사상체질감별을 위한 전문가 시스템의 지식베이스 구축에 관한 연구" 에서 나온 설문중 27가지 정도의 문항으로 추려진 내용으로 약 70%의 판별도를 가지고 있는 모델이고
27문항중 18문항 이상이 된다면 높은확률로 4가지 체질중 나온 체질에 해당한다는 내용이고 /
다른 한가지는 2006년도 우석대학교 한의과 대학 사상체질과 학위논문인 "사상체질 진단을 위한 2단계 설문지 의 개발 연구" 논문에서 나온 설문 입니다. 해당 설문은 2단계 설문으로 먼저 음인/ 양인 으로 나누고
태양/소양 or 태음/ 소음 인으로 나눈다고 합니다. 감별 결과 좀더 높은 판별도를 가지는 것으로 판단 되는데 설문 요소가 더 많아지는 것과 함꼐 표본이 좀더 적었던 것이 문제입니다. (음/양 나누는데 22문항 / 태양/소양 나누는데 10문항 태음/소음 나누는데 18문항 총 32문항 / 40문항 )
두가지 모델중 한가지 선택하여 작업하려합니다. 제가 보기에는 두가지 모델다 괜찮아 보여서
판단이 어렵습니다. 회의때 의견 주시면 감사하겠습니다.
저번 회의에서 인턴에서 분석했던 Rule을 사용하되 추가적인 Rule 도메인을 적용하여
기존에 존재하는 Medical Expert System 과 차별화가 되어야 한다는 의견이 나왔고
모두 동의하였습니다.
이를 바탕으로 캡스톤 계획서 작성에 대해 역할분담을 하여 조사하고 정리한 내용을
보내주시면 됩니다.
장원용 - Expert System 구조, 기술적 요구사항, 개발 목표 확립
김태우 - use case, sequence diagram 수정 및 보완, 새로 적용 할 Rule 분석
류준영 - 사상체질 , 수지침에 대한 Rule 조사 (대한한의학협회 참고)
차은채 - 대중화 되어있는 IBM 닥터 왓슨 사례, 보건복지부 통계 자료 조사
조사한 내용을 보내주시고
장원용, 류준영은 계획서 수정 및 보완
김태우, 차은채 발표 PPT 작성으로 역할 분담을 하겠습니다.
계획서 내용 수정 사항은 다음과 같습니다.
4월 3일 교수님 회의때 피드백 받을 예정이니 각자 생각한 내용을 정리해서 올려주시면
종합하겠습니다.
교수님께서 로드밸런싱 구축함에따라 웹서버 성능 평가할 필요성에 대해 말씀 해주셔서 apache ab 를 사용하기 위한 정리를 하였습니다.
ab는 "Apache HTTP server Benchmarking tool"의 약어로서 아파치 서버의 응답속도를 측정하는 벤치마킹툴이다.
옵션
호출 예
ab -n 100 -c 2 http://test.com/ => 2개 클라이언트가 총 100회 호출
ab -t 10 -c 2 http://test.com/ => 2개 클라이언트가 10초 동안 호출
주요 결과
예)
[]# ab http://www.naver.com/
This is ApacheBench, Version 1.3d <$Revision: 1.69 $> apache-1.3
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
Benchmarking www.naver.com (be patient).....done
; 아파치 버전
Server Software: Apache
; 도메인명
Server Hostname: www.naver.com
; 웹서비스 사용 포트
Server Port: 80
; 초기문서가 위치하는 웹문서 root(서버내의 절대경로가 아님)
Document Path: /
; 초기문서의 용량
Document Length: 72226 bytes
Concurrency Level: 1
; 응답속도(사실 이값만 확인하면 된다.)
Time taken for tests: 0.016 seconds
; 요구에 응답한 세션수
Complete requests: 1
; 요구에 응답실패한 세션수
Failed requests: 0
; 실패한 에러수
Broken pipe errors: 0
; 총 전송 바이트수
Total transferred: 72539 bytes
; 총 전송한 HTML 바이트수
HTML transferred: 72226 bytes
; 초당 응답요구수
Requests per second: 62.50 [#/sec] (mean)
; 요구에 응답한 시간 (이값도 중요하다)
Time per request: 16.00 [ms] (mean)
; 요구에 응답한 시간
Time per request: 16.00 [ms] (mean, across all concurrent requests)
; 초당 전송 가능한 용량
Transfer rate: 4533.69 [Kbytes/sec] received
2018.03.09 지도교수님과 회의 후 피드백 받은 내용을 수정하였고,
최종본을 올리기전 각자 최종 검토가 필요할 것 같습니다.
계획서의 문서 정보/ 수정 내역에 팀원들 이름을 올려두었으니
각자 최종검토 후 수정 내역을 적어주셔서 다시 보내주시면 됩니다.
rule들을 모두 drl 파일에 업데이트 했습니다.
증상 검색 및 추가 삭제 기능을 모두 구현했기 때문에
충분한 테스트를 해봐야 할것 같습니다.
진단하기 버튼 누르기 전에 defaultPage 에서 반드시 이름으로 먼저 검색을 하신 후
증상을 추가 및 삭제 하시면 됩니다.
쿠키와 세션 이용한 로그인 구현시 mysql connector 에러 발생
빌드에는 이상 없는데 추후에도 이상이 없는지 조금더 찾아 봐야 할 것 같습니다.
Sat Mar 31 20:22:37 KST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
http://webdevnovice.tistory.com/12?category=615997 ==> (리눅스) 자바 설치 및 tomcat
http://moomini.tistory.com/66 ==> mysql
http://jaesu.tistory.com/entry/ubuntu-mysql-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0 ==> mysql (한글 설정 등)
jdk ( /usr/local/java )
java -version 확인 => jdk 1.8 되어있는지 확인
안되어 있다면
$ source /etc/profile
톰캣 시작
$ /usr/local/server/tomcat/bin/startup.sh
mysql 시작
$ sudo vi /etc/mysql/my.cnf (설정 파일 위치)
sudo /etc/init.d/mysql restart (재시작)
1.Stop Tomcat (if it's running)
2.Open the "Servers" view: Window > Show view > Other > Server > Servers
3.Right Click on Tomcat Server > Clean Tomcat Work Directory.
4.Right Click on Tomcat Server > Clean
5.Restart the server
@junyeongRue / 현재 GeneralSurvey에서 22문항을 작성하고 나면 ajax를 통해 SurveyController 로 받아오게 됩니다. 아래는 소스코드 일부이며, 처음 for문에서 배열에 받아온 값을 모두 더해줍니다(인덱스 0번부터 시작) 그 후 sum값에 따라 페이지 전환하는 소스가 추가되었으며 확인후 수정할 부분을 해주시면 됩니다.
마찬가지로 B ,C 도 Controller에서 받아올수 있으며 디비테이블 생성 후 최종 결과페이지에 보여줄 데이터를 넣어서 보내주시면 연동하겠습니다.
/**
* GeneralSurvey 설문 작성 완료 한 후 save 버튼 클릭시
*/
@RequestMapping(value ="/saveGeneralSurvey", method = RequestMethod.POST)
public @ResponseBody String G_SurveySaveButton(@RequestBody SurveyVO surveyResult) throws Exception
{
logger.info("saveGeneralSurvey");
int sum =0;
for(Integer val : surveyResult.generalSurvey)
{
// receive the value from 0 index sequentially in the array (0 ~ 21)
System.out.print(val+" "); // confirm message
if(val != null)
{
sum += val;
}
}
System.out.println("\ntotalSum : "+sum);
if(sum <= 10)return "/home/generalSurvey_B";
else if(sum >= 12) return "/home/generalSurvey_C";
else { // 판단 Rule
int a = surveyResult.generalSurvey.get(3); // 4번 문제
int b = surveyResult.generalSurvey.get(13);
int c = surveyResult.generalSurvey.get(19);
System.out.println(a+" "+b+" "+c);
return "/home/generalSurvey";
}
}
팀원들 개발 환경을 맞추기 위해서 반드시 한번씩 확인해 주시면 감사하겠습니다.
현재 프로젝트를 빌드 했을때 경로가 localhost:8080/mybatis 로 시작한다면 반드시 아래 과정을
확인해 주셔야 합니다.
<Context docBase="2018-cap1-4" path="/home" reloadable="true" source="org.eclipse.jst.jee.server:2018-cap1-4"/></Host>
또한 git pull 했을때 한글 깨짐 의경우 이클립스 메뉴 -> 서브메뉴 -> 폴더 -> 서브메뉴 -> "text file encoding"을 "UTF-8"으로 설정- 저장
<div class="col-md-6 mx-auto">
<br>
<h5><strong>환자정보</strong></h5>
<div style="width:100%; height:416px; overflow:auto;background-color:white">
<div class="col-md-6 mx-auto">
<br>
<h5><strong>환자 대기자 명단</strong></h5>
<div style="width:100%; height:418px; overflow:auto; background-color:white">
접수페이지 코드변경
페이지 밖으로 빠져나간 부분들이랑 버튼 위치 안맞는 부분 조정했습니다.
데이터베이스와 워크벤치를 설치 후
@jjcec 아래 주소에서 똑같이 설정하시면 됩니다.
grant all privileges on test_db01 ~ //이부분까지만 하면 됩니다.
http://all-record.tistory.com/96
중간발표 데모하기 위한 전체적인 프로세스와 URL 정립이 필요할 것 같습니다.
현재 defaultPage를 doctorPage로 정정했습니다. 수정할 부분이나 의견 남겨주시면 됩니다.
/home (의사, 일반유저 선택 페이지) > /home/login->로그인 체크->/home/receptionPage환자 접수 페이지
->/home/doctorPage 의사 페이지
> 일반유저버튼 클릭시 -> /home/generalSurvey -> /home/generalSurvey/resultPage
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.