网站首页/ 信息中心/ 档案百科/

妇幼保健院档案制度建设全流程技术实操

发布时间:2026年08月26日 01:35:32 浏览量:0

一、开发环境初始化与依赖安装

在构建妇幼保健院电子档案系统之前,必须先准备好运行环境。本指南采用Python作为开发语言,结合Streamlit框架实现零代码前端快速开发,SQLite作为轻量级数据库,确保系统可以单机运行且无需复杂的数据库服务器配置。

需要在终端中检查Python版本。建议使用Python 3.8及以上版本以确保库的兼容性。打开命令行工具(CMD或Terminal),执行以下命令检查版本:

```bash python --version ```

确认版本无误后,创建一个项目目录用于存放所有档案系统的文件。在命令行中执行:

```bash mkdir maternity_archive_system cd maternity_archive_system ```

接下来,安装项目所需的第三方依赖库。我们需要Streamlit用于构建Web界面,Pandas用于数据处理。执行以下安装命令:

```bash pip install streamlit pandas ```

为了确保依赖环境的一致性,建议生成并锁定版本号。执行以下命令生成requirements.txt文件,这对于后续的系统迁移和部署至关重要:

```bash pip freeze > requirements.txt ```

二、数据库模型设计与初始化

妇幼保健院的档案数据具有高度的结构化需求,必须包含孕产妇基本信息、产检记录及儿童保健记录。为了规范数据存储,我们需要编写一个数据库初始化脚本。

在项目根目录下创建一个名为init_db.py的文件。该文件将负责创建数据库表结构,这是档案制度建设的核心数据基础。请复制以下完整代码到文件中:

```python import sqlite3 def init_database(): conn = sqlite3.connect('maternity_data.db') cursor = conn.cursor() 创建孕产妇档案表 cursor.execute(''' CREATE TABLE IF NOT EXISTS maternal_archive ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER, id_card TEXT UNIQUE, phone TEXT, address TEXT, last_checkup_date DATE, high_risk_flag TEXT DEFAULT 'Normal' ) ''') 创建儿童保健档案表 cursor.execute(''' CREATE TABLE IF NOT EXISTS child_archive ( id INTEGER PRIMARY KEY AUTOINCREMENT, mother_id INTEGER, child_name TEXT NOT NULL, birth_date DATE, gender TEXT, birth_weight REAL, vaccine_status TEXT DEFAULT 'Incomplete', FOREIGN KEY(mother_id) REFERENCES maternal_archive(id) ) ''') conn.commit() conn.close() print("数据库初始化完成,表结构已建立。") if __name__ == "__main__": init_database() ```

保存文件后,在命令行执行以下命令运行脚本,完成数据库的创建:

```bash python init_db.py ``>

执行成功后,项目目录下会生成一个名为maternity_data.db的数据库文件,这是所有档案数据的物理载体。

三、核心业务逻辑代码实现

妇幼保健院档案制度建设全流程技术实操

为了实现档案的增删改查(CRUD)功能,我们需要封装数据库操作逻辑。创建一个名为db_utils.py的文件,将所有底层的SQL操作封装成函数,便于前端调用。

将以下完整代码复制到db_utils.py中。这部分代码包含了档案录入、查询以及高危标记更新的具体逻辑:

```python import sqlite3 import pandas as pd def get_connection(): return sqlite3.connect('maternity_data.db') def add_maternal_archive(name, age, id_card, phone, address): conn = get_connection() cursor = conn.cursor() try: cursor.execute(''' INSERT INTO maternal_archive (name, age, id_card, phone, address, last_checkup_date) VALUES (?, ?, ?, ?, ?, date('now')) ''', (name, age, id_card, phone, address)) conn.commit() return True, "档案录入成功" except sqlite3.IntegrityError: return False, "错误:身份证号已存在,请勿重复录入" finally: conn.close() def get_all_archives(): conn = get_connection() df = pd.read_sql_query("SELECT FROM maternal_archive", conn) conn.close() return df def update_risk_status(id_card, risk_flag): conn = get_connection() cursor = conn.cursor() cursor.execute(''' UPDATE maternal_archive SET high_risk_flag = ? WHERE id_card = ? ''', (risk_flag, id_card)) conn.commit() conn.close() def add_child_archive(mother_id_card, child_name, birth_date, gender, birth_weight): conn = get_connection() cursor = conn.cursor() 先根据母亲身份证查ID cursor.execute("SELECT id FROM maternal_archive WHERE id_card = ?", (mother_id_card,)) mother = cursor.fetchone() if not mother: conn.close() return False, "未找到对应的母亲档案,无法关联" try: cursor.execute(''' INSERT INTO child_archive (mother_id, child_name, birth_date, gender, birth_weight) VALUES (?, ?, ?, ?, ?) ''', (mother[0], child_name, birth_date, gender, birth_weight)) conn.commit() return True, "儿童档案录入成功" except Exception as e: return False, str(e) finally: conn.close() ```

四、前端界面构建与交互实现

使用Streamlit构建用户界面,让非技术人员也能通过浏览器操作档案系统。创建主程序文件app.py,并编写以下代码。该代码将实现侧边栏导航、档案录入表单以及数据展示表格。

```python import streamlit as st import pandas as pd from db_utils import add_maternal_archive, get_all_archives, update_risk_status, add_child_archive 页面配置 st.set_page_config(page_title="妇幼保健院档案管理系统", layout="wide") 侧边栏导航 st.sidebar.title("功能导航") page = st.sidebar.radio("选择操作", ["孕产妇档案录入", "儿童保健录入", "档案查询与管理"]) if page == "孕产妇档案录入": st.header("新建孕产妇档案") with st.form("maternal_form", clear_on_submit=True): col1, col2 = st.columns(2) name = col1.text_input("姓名", key="m_name") age = col1.number_input("年龄", min_value=0, max_value=150, key="m_age") id_card = col2.text_input("身份证号", key="m_id") phone = col2.text_input("联系电话", key="m_phone") address = st.text_area("家庭住址", key="m_addr") submitted = st.form_submit_button("提交档案") if submitted: if not name or not id_card: st.error("姓名和身份证号为必填项") else: success, msg = add_maternal_archive(name, age, id_card, phone, address) if success: st.success(msg) else: st.error(msg) elif page == "儿童保健录入": st.header("关联录入儿童档案") with st.form("child_form", clear_on_submit=True): mother_id_card = st.text_input("母亲身份证号(用于关联)", key="c_mother_id") child_name = st.text_input("儿童姓名", key="c_name") col1, col2 = st.columns(2) birth_date = col1.date_input("出生日期", key="c_dob") gender = col1.selectbox("性别", ["男", "女"], key="c_gender") birth_weight = col2.number_input("出生体重", min_value=0.0, max_value=10.0, step=0.01, key="c_weight") submitted = st.form_submit_button("提交儿童档案") if submitted: success, msg = add_child_archive(mother_id_card, child_name, birth_date, gender, birth_weight) if success: st.success(msg) else: st.error(msg) elif page == "档案查询与管理": st.header("全院档案概览") df = get_all_archives() 搜索框 search_term = st.text_input("搜索姓名或身份证号") if search_term: df = df[df['name'].str.contains(search_term) | df['id_card'].str.contains(search_term)] if not df.empty: st.dataframe(df, use_container_width=True) st.subheader("高危人群管理") with st.expander("更新高危标记"): with st.form("risk_form"): target_id = st.text_input("输入身份证号") risk_level = st.selectbox("高危等级", ["Normal", "Yellow (Risk)", "Red (High Risk)", "Purple (Infectious)"]) if st.form_submit_button("更新状态"): update_risk_status(target_id, risk_level) st.success("状态已更新") st.experimental_rerun() else: st.warning("暂无档案数据") ```

五、系统启动与使用流程

代码编写完成后,即可启动系统进行实际操作。在命令行终端中,确保位于项目根目录下,执行以下命令启动Web服务:

```bash streamlit run app.py ```

命令执行后,终端会显示本地访问地址,通常是http://localhost:8501。按住Ctrl键并点击该链接,即可在浏览器中打开系统界面。

实操步骤一:录入孕产妇档案
进入系统默认页面,在“孕产妇档案录入”模块中,输入测试数据:姓名“张三”,年龄“28”,身份证号“110101199001011234”,点击“提交档案”。系统若提示“档案录入成功”,说明数据库写入正常。

实操步骤二:关联儿童档案
点击左侧侧边栏的“儿童保健录入”。在母亲身份证号栏输入刚才录入的“110101199001011234”,输入儿童姓名“张小三”,选择出生日期和体重,点击提交。这测试了数据库的外键关联逻辑。

实操步骤三:查询与高危标记
切换至“档案查询与管理”页面。在搜索框输入“张三”,下方表格将实时过滤显示对应记录。展开“高危人群管理”折叠面板,输入该身份证号,选择“Yellow (Risk)”并提交。刷新页面后,表格中该记录的high_risk_flag字段将更新为黄色预警状态。

至此,一套符合妇幼保健院基本需求的数字化档案制度建设已完成,涵盖了数据结构定义、业务逻辑封装以及可视化交互的全套技术落地。

太原档案数字化服务流程是怎样的?大概需要多少钱?
太原档案数字化服务流程是怎样的?大概需要多少钱?
太原档案数字化服务通常包含需求分析、方案制定、现场整理、扫描加工、数据挂接、验收交付等核心流程,费用根据档案数量、纸张状况、数字化标准等因素综合计算,2026年市场价格范围大致在每页0.5元至2元之间...
2026年08月26日 01:35:32
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818