<목적>
데이터베이스를 구축해 의사, 환자, 간호사의 정보를 쉽게 관리할 수 있도록 한다.
<내용>
- 의사 한 명은 여러 명의 환자를 맡고, 환자 한 명은 한 명의 의사에게 진료를 받는다.
- 의사는 환자에 대한 모든 정보를 검색할 수 있다.
- 간호사는 병원 진료 차트 정보를 검색할 수 있으며 의사와 더불어 환자를 관리한다. 간호사 업무는 여러 환자들의 진료접수, 환자관리, 차트관리 등 을 수행하는 것이다.
- 모든 의사는 의사ID를 부여하여 식별하며 담당진료과목, 성명, 성별, 연락처, 이메일, 직급을 가진다.
- 모든 환자는 환자ID를 부여하여 식별하며 담당의사, 담당간호사, 환자성명, 주민번호, 성별, 주소, 연락처, 이메일, 직업을 가진다.
- 모든 간호사는 간호사ID를 부여하여 식별하며 담당업무, 성명, 성별, 전화번호, 이메일, 직급을 가진다.
- 진료ID는 날짜+진료순번으로 부여하고 진료한 의사ID, 환자ID, 진료내용,진료날짜를 포함한다.
- 진료를 받은 환자에 대한 내용은 차트에 기록하고, 차트는 차트번호를 부여하여 식별하며 담당 의사ID, 간호사ID와 환자ID와 진료ID 그리고 의사 소견을 차트 내용에 기록한다.
1단계 요구사항 수집과 분석
요구사항에 명시된 테이블 외 추가적으로 구현한 테이블:
TREATMENT(TxID, DoctorID, PatientID, TxContent, TxDate)
- TREATMENT에는 날짜+진료순번으로 이루어진 TxID를 부여하여 식별함
- 해당 진료를 진행한 의사ID, 진료를 받은 환자 ID, 진료 내용, 진료 날짜가 포함됨
2단계 개념적 설계 - ER 다이어그램

3단계 논리적 설계 - ER 다이어그램을 릴레이션들로 사상하고 정규화과정
관계데이터모델로 사상된 릴레이션들이 제3정규형까지는 만족하도록 합니다.
병원 데이터베이스를 생성하고 데이터를 삽입합니다.
▶ 릴레이션 스키마 정보와 테이블 생성 및 데이터 입력 SQL문과 결과를 첨부합니다. 실제와 유사한 데이터(2주 분량, 평일 만 진료 1일 10건 이상)를 INSERT 합니다.
< 의사 테이블 >

< 간호사 테이블 >

<환자 테이블>


< 진료 테이블>


< 차트 테이블>



4단계 물리적 설계 - 인덱스 생성

5단계 웹 구현
① 환자 이름으로 정보 검색
<?php
$conn = mysqli_connect("localhost", "root", "", "assignment");
if (!$conn) {
echo "ERROR!";
exit();
}
$query = "SELECT P.Name,P.PatientID,P.A_DoctorID,P.A_NurseID,P.RRNum,P.Sex,P.Address,P.Contact,P.Email,P.Job,T.TxContent,C.DoctorOP,T.TxDate FROM PATIENT P,TREATMENT T,CHART C WHERE P.PatientID=T.PatientID AND T.PatientID=C.PatientID";
$result = mysqli_query($conn, $query);
if (isset($_POST['submit1'])) {
$patientName = $_POST['patientname'];
$query = "SELECT P.Name,P.PatientID,P.A_DoctorID,P.A_NurseID,P.RRNum,P.Sex,P.Address,P.Contact,P.Email,P.Job,T.TxContent,C.DoctorOP,T.TxDate FROM PATIENT P,TREATMENT T,CHART C WHERE P.PatientID=T.PatientID AND T.PatientID=C.PatientID AND Name LIKE '%$patientName%'";
$result = mysqli_query($conn, $query);
}
?>
<HTML>
<HEAD>
<TITLE>환자정보</TITLE>
</HEAD>
<BODY>
<FORM name="form1" action="" method="post">
<TABLE>
<TR>
<TD>환자 이름</TD>
<TD><input type="text" name="patientname"></TD>
<TD colspan="2" align="center">
<input type="submit" name="submit1" value="search">
</TD>
</TR>
</TABLE>
</FORM>
<TABLE BORDER=1>
<TR>
<TD>이름</TD>
<TD>환자ID</TD>
<TD>의사ID</TD>
<TD>간호사ID</TD>
<TD>주민번호</TD>
<TD>성별</TD>
<TD>주소</TD>
<TD>전화번호</TD>
<TD>이메일</TD>
<TD>직업</TD>
<TD>증상</TD>
<TD>처리내용</TD>
<TD>날짜</TD>
</TR>
<?php
while ($row = mysqli_fetch_array($result)) {
?>
<TR>
<TD><?php echo $row['Name']; ?></TD>
<TD><?php echo $row['PatientID']; ?></TD>
<TD><?php echo $row['A_DoctorID']; ?></TD>
<TD><?php echo $row['A_NurseID']; ?></TD>
<TD><?php echo $row['RRNum']; ?></TD>
<TD><?php echo $row['Sex']; ?></TD>
<TD><?php echo $row['Address']; ?></TD>
<TD><?php echo $row['Contact']; ?></TD>
<TD><?php echo $row['Email']; ?></TD>
<TD><?php echo $row['Job']; ?></TD>
<TD><?php echo $row['TxContent']; ?></TD>
<TD><?php echo $row['DoctorOP']; ?></TD>
<TD><?php echo $row['TxDate']; ?></TD>
</TR>
<?php } ?>
</TABLE>
<?php
mysqli_free_result($result);
mysqli_close($conn);
?>
</BODY>
</HTML>
② 진료 과목 별 환자 수
<?php
$conn = mysqli_connect("localhost", "root", "", "assignment");
if (!$conn) {
echo "ERROR!";
exit();
}
$query = "SELECT * FROM SC";
$result = mysqli_query($conn, $query);
?>
<HTML>
<HEAD>
<TITLE>진료 과목 별 환자 수</TITLE>
</HEAD>
<BODY>
<TABLE BORDER=1>
<TR>
<TD>진료과목</TD>
<TD>환자 수</TD>
</TR>
<?php
while ($row = mysqli_fetch_array($result)) {
?>
<TR>
<TD><?php echo $row['Speciality']; ?></TD>
<TD><?php echo $row['COUNT']; ?></TD>
<?php } ?>
</TABLE>
<?php
mysqli_free_result($result);
mysqli_close($conn);
?>
</BODY>
</HTML>
'포트폴리오 > 웹 개발 프로젝트' 카테고리의 다른 글
의료 건강 관리 앱 (2) | 2024.02.24 |
---|---|
개발자 커뮤니티 앱 - UIUX 제작 (0) | 2024.02.24 |
카페 지도 & 추천 웹사이트 - ECHub (0) | 2024.02.24 |
백엔드 - 기능 정의 계획 (0) | 2023.05.19 |
EWHADULE (0) | 2023.05.06 |