クリニックの患者アンケートデータを効率的にデジタル化するためのツールと入力データの検証とセキュリティを強化
クリニックの患者アンケートデータを効率的にデジタル化するためのツールには、以下のような要素が必要です:
1. **データ入力フォーム**:使いやすいインターフェースで、項目ごとに入力できるフォーム。
2. **データベース**:入力されたデータを保存するためのデータベース(例:SQLite)。
3. **データ集計機能**:入力されたデータを集計し、分析しやすい形式で出力。
4. **エクスポート機能**:集計結果をCSVやExcel形式でエクスポートする機能。
以下はPythonとFlaskを使用して簡単なデータ入力ツールを作成するためのサンプルコードです。このツールは、Webインターフェースを提供し、データをSQLiteデータベースに保存します。
### 準備
1. **Pythonと必要なライブラリをインストール**
```sh
pip install Flask Flask-SQLAlchemy pandas openpyxl
```
2. **プロジェクト構成**
```
patient_survey/
├── app.py
├── templates/
│ └── index.html
└── data/
└── database.db
```
### `app.py`
```python
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
import pandas as pd
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///data/database.db'
db = SQLAlchemy(app)
class PatientSurvey(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100))
birth_date = db.Column(db.String(10))
disease_1 = db.Column(db.Integer)
disease_2 = db.Column(db.Integer)
# 他の必要な項目を追加
@app.route('/')
def index():
return render_template('index.html')
@app.route('/submit', methods=['POST'])
def submit():
name = request.form['name']
birth_date = request.form['birth_date']
disease_1 = request.form['disease_1']
disease_2 = request.form['disease_2']
# 他の必要な項目を取得
survey = PatientSurvey(
name=name,
birth_date=birth_date,
disease_1=disease_1,
disease_2=disease_2
# 他の必要な項目を設定
)
db.session.add(survey)
db.session.commit()
return redirect(url_for('index'))
@app.route('/export')
def export():
surveys = PatientSurvey.query.all()
survey_data = [
{
'name': survey.name,
'birth_date': survey.birth_date,
'disease_1': survey.disease_1,
'disease_2': survey.disease_2,
# 他の必要な項目を追加
}
for survey in surveys
]
df = pd.DataFrame(survey_data)
df.to_excel('data/survey_data.xlsx', index=False)
return 'データがエクスポートされました!'
if __name__ == '__main__':
db.create_all()
app.run(debug=True)
```
### `templates/index.html`
```html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>患者アンケート</title>
ここから先は
¥ 4,500
この記事が気に入ったらチップで応援してみませんか?