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

零基础搭建医院档案数字化收费标准计算系统

发布时间:2026年08月26日 08:55:29 浏览量:0

环境准备与依赖安装

在开始编写代码之前,需要确保本地计算机已经安装了Python环境。本系统基于Python 3.8开发,利用Pandas库进行数据处理和Excel文件的读写操作。请打开终端(CMD、PowerShell或Terminal),依次执行以下命令安装必要的依赖库:

```bash pip install pandas openpyxl ```

执行完毕后,若无报错信息,即代表环境准备就绪。接下来我们将直接构建核心计算逻辑。

定义核心费率配置

医院档案数字化收费通常由基础扫描费、图像处理费、OCR识别费和挂接服务费组成。为了方便后续维护和调整,我们采用字典结构来配置不同类型档案的单价。请在项目根目录下创建一个名为config.py的文件,并输入以下代码:

```python config.py 档案类型对应的单页扫描基础单价(单位:元) SCAN_RATES = { "病历档案": 0.15, "检查报告": 0.10, "影像胶片": 0.50, "行政文书": 0.08, "科研档案": 0.12 } 附加服务单价配置 EXTRA_RATES = { "ocr_per_page": 0.05, OCR识别每页单价 "binding_per_bag": 2.00, 重新装订每袋单价 "pdf_conversion": 0.02 转PDF每页单价 } 基础服务费(每次项目的最低启动费用) BASE_SERVICE_FEE = 100.00 ```

上述配置文件将业务规则与技术代码分离,当医院调整收费标准时,只需修改此文件,无需改动主程序逻辑。

编写计算引擎核心代码

创建主程序文件calculator.py。该文件将包含读取Excel数据、应用费率逻辑、计算总价并导出结果的所有功能。以下是完整的代码实现:

```python calculator.py import pandas as pd import config def calculate_row(row): """ 根据单行数据计算费用 """ archive_type = row['档案类型'] pages = row['页数/张数'] needs_ocr = row['是否OCR'] 值应为 '是' 或 '否' needs_binding = row['是否装订'] 值应为 '是' 或 '否' 1. 获取基础扫描费,处理未知档案类型 base_rate = config.SCAN_RATES.get(archive_type, 0) scan_cost = pages base_rate 2. 计算OCR费用 ocr_cost = 0 if str(needs_ocr).strip() == '是': ocr_cost = pages config.EXTRA_RATES['ocr_per_page'] 3. 计算装订费用 (假设每袋/卷对应一行数据,若需特殊逻辑可在此修改) binding_cost = 0 if str(needs_binding).strip() == '是': binding_cost = config.EXTRA_RATES['binding_per_bag'] 4. PDF转换费用 (默认开启) pdf_cost = pages config.EXTRA_RATES['pdf_conversion'] 5. 汇总单行总费用 total_row_cost = scan_cost + ocr_cost + binding_cost + pdf_cost return { "基础扫描费": round(scan_cost, 2), "OCR识别费": round(ocr_cost, 2), "装订费": round(binding_cost, 2), "PDF转换费": round(pdf_cost, 2), "单项合计": round(total_row_cost, 2) } def process_excel(input_file, output_file): try: 读取Excel文件 df = pd.read_excel(input_file) 检查必要列是否存在 required_columns = ['档案类型', '页数/张数', '是否OCR', '是否装订'] for col in required_columns: if col not in df.columns: raise ValueError(f"Excel模板缺少必要列: {col}") 初始化结果列 result_columns = ["基础扫描费", "OCR识别费", "装订费", "PDF转换费", "单项合计"] for col in result_columns: df[col] = 0.0 遍历每一行进行计算 使用列表推导式提高处理大数据量时的效率 calculations = [calculate_row(row) for index, row in df.iterrows()] 将计算结果合并回DataFrame result_df = pd.DataFrame(calculations) for col in result_columns: df[col] = result_df[col] 计算项目总金额 grand_total = df['单项合计'].sum() final_total = grand_total + config.BASE_SERVICE_FEE 添加汇总行 summary_data = {col: "" for col in df.columns} summary_data['档案类型'] = "项目总计(含基础服务费)" summary_data['单项合计'] = round(final_total, 2) 使用pd.concat追加汇总行 summary_df = pd.DataFrame([summary_data]) final_output_df = pd.concat([df, summary_df], ignore_index=True) 导出结果 final_output_df.to_excel(output_file, index=False) print(f"计算完成!结果已保存至: {output_file}") print(f"项目总金额: {round(final_total, 2)} 元") except FileNotFoundError: print(f"错误:找不到输入文件 {input_file}") except Exception as e: print(f"计算过程中发生错误: {str(e)}") if __name__ == "__main__": input_filename = "hospital_data_input.xlsx" output_filename = "hospital_bill_output.xlsx" process_excel(input_filename, output_filename) ```

准备Excel数据模板

零基础搭建医院档案数字化收费标准计算系统

为了让程序能够正确运行,需要准备一个名为hospital_data_input.xlsx的Excel文件作为输入数据。请确保该文件与calculator.py在同一目录下,并且第一行的表头(列名)严格与以下列表一致:

以下是Excel表格的具体数据示例,你可以直接复制到Excel中:

档案类型 页数/张数 是否OCR 是否装订
病历档案 50
检查报告 10
影像胶片 2
行政文书 120

执行计算与结果验证

完成数据准备后,在终端中运行主程序:

```bash python calculator.py ```

程序运行成功后,会在当前目录下生成hospital_bill_output.xlsx文件。打开该文件,你将看到原始数据后方新增了5列费用明细,并在表格最后一行显示了项目总计(含基础服务费)

让我们手动验证一下第一行数据(病历档案,50页,OCR是,装订是)的计算逻辑是否正确:

如果Excel输出文件中第一行的“单项合计”显示为13.00,则证明系统运行逻辑完全正确。你可以通过修改config.py中的费率来适配不同医院或不同年份的数字化项目需求,无需修改任何核心代码。

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