news 2026/5/7 17:23:28

宠物医疗记录程序,病史,用药上链,避免过度医疗,误诊。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
宠物医疗记录程序,病史,用药上链,避免过度医疗,误诊。

一、实际应用场景描述

在宠物医疗场景中,宠物主通常面临以下情况:

- 宠物在不同医院就诊

- 过往病史、用药记录不连续

- 新医生无法全面了解历史治疗方案

- 出现重复检查、重复用药或过度医疗

典型流程包括:

- 初诊、检查、开药

- 复诊、换药、调整剂量

- 转诊至其他医院

由于缺乏统一、可信的医疗档案,宠物主往往处于信息弱势。

本示例程序旨在构建一个教学级、可验证的宠物医疗记录上链系统,通过 Python 将病史与关键用药信息上链,为跨机构诊疗提供可信参考数据,辅助降低误诊与过度医疗风险。

二、引入痛点(Why Blockchain)

传统方式 存在问题

纸质病历 易丢失、难跨院共享

医院内部系统 数据孤岛、不互通

口头描述 不准确、不完整

重复检查 增加负担与风险

区块链在该场景中的核心价值不是“去中心化医疗”,而是:

- 病史不可篡改:就诊即上链

- 跨机构可核验:授权后可查询

- 用药连续性:避免重复/冲突用药

- 责任清晰:医生、医院、时间均可追溯

三、核心逻辑讲解(简化模型)

1️⃣ 基本对象

- Pet(宠物)

- 宠物ID

- MedicalRecord(就诊记录)

- 诊断结果

- 用药清单

- 医生ID

- Medication(用药)

- 药品名称

- 剂量

- 频次

2️⃣ 上链内容

宠物ID

就诊时间

诊断摘要

用药摘要

医生ID

哈希值

3️⃣ 业务流程

宠物就诊 → 医生录入病史与用药 → 上链存储 → 下次就诊授权查询 → 辅助决策

四、代码模块化设计

📁 项目结构

pet_medical_chain/

├── blockchain.py # 区块链结构

├── models.py # 数据模型

├── medical_service.py # 医疗记录

├── medication_checker.py # 用药冲突检测

├── verification.py # 记录核验

├── cli.py # 命令行入口

├── utils.py # 工具函数

└── README.md

五、核心代码示例(Python)

✅ 仅用于教学与原型验证

✅ 不上链完整隐私数据,仅上链摘要与哈希

✅ 注释清晰,便于理解

1️⃣ models.py(数据模型)

from dataclasses import dataclass

from datetime import datetime

import hashlib

@dataclass

class Medication:

drug_name: str

dosage: str

frequency: str

@dataclass

class MedicalRecord:

pet_id: str

diagnosis: str

medications: list[Medication]

doctor_id: str

visit_time: datetime

def medication_summary(self) -> str:

return ",".join(

f"{m.drug_name}({m.dosage},{m.frequency})"

for m in self.medications

)

def compute_hash(self) -> str:

content = (

f"{self.pet_id}"

f"{self.diagnosis}"

f"{self.medication_summary()}"

f"{self.doctor_id}"

f"{self.visit_time.isoformat()}"

)

return hashlib.sha256(content.encode()).hexdigest()

2️⃣ blockchain.py(简化区块链)

from typing import List

import hashlib

import json

class Block:

def __init__(self, index: int, record: dict, previous_hash: str):

self.index = index

self.record = record

self.previous_hash = previous_hash

self.timestamp = None

self.hash = self.compute_hash()

def compute_hash(self) -> str:

block_string = json.dumps(self.record, sort_keys=True)

return hashlib.sha256(block_string.encode()).hexdigest()

class MedicalChain:

def __init__(self):

self.chain: List[Block] = []

self.create_genesis_block()

def create_genesis_block(self):

genesis = Block(0, {"info": "genesis"}, "0")

self.chain.append(genesis)

def add_record(self, record: dict):

last_block = self.chain[-1]

new_block = Block(

index=last_block.index + 1,

record=record,

previous_hash=last_block.hash

)

self.chain.append(new_block)

3️⃣ medical_service.py(医疗记录)

from blockchain import MedicalChain

from models import MedicalRecord

class MedicalService:

def __init__(self):

self.chain = MedicalChain()

def record_visit(self, record: MedicalRecord):

data = {

"pet_id": record.pet_id,

"diagnosis": record.diagnosis,

"medications": record.medication_summary(),

"doctor_id": record.doctor_id,

"visit_time": record.visit_time.isoformat(),

"hash": record.compute_hash()

}

self.chain.add_record(data)

return data["hash"]

4️⃣ medication_checker.py(用药冲突检测)

from models import Medication

class MedicationChecker:

def check_duplication(self, existing: list[Medication], new: Medication) -> bool:

"""

简化示例:检测是否重复开具相同药物

"""

return any(e.drug_name == new.drug_name for e in existing)

5️⃣ cli.py(命令行入口)

from models import MedicalRecord, Medication

from medical_service import MedicalService

from medication_checker import MedicationChecker

from datetime import datetime

medical_service = MedicalService()

checker = MedicationChecker()

record = MedicalRecord(

pet_id="PET001",

diagnosis="皮肤过敏",

medications=[

Medication("氯雷他定", "5mg", "每日一次")

],

doctor_id="DOC003",

visit_time=datetime.now()

)

tx = medical_service.record_visit(record)

print("就诊记录上链哈希:", tx)

new_med = Medication("氯雷他定", "5mg", "每日一次")

is_duplicate = checker.check_duplication(record.medications, new_med)

print("是否重复用药:", "是" if is_duplicate else "否")

六、README 文件(示例)

# 宠物医疗记录上链系统(教学原型)

## 项目简介

本项目为课程示例,展示如何利用 Python 构建简化区块链结构,实现宠物病史与用药记录的上链与核验。

## 运行环境

- Python 3.9+

## 运行方式

bash

python cli.py

## 注意事项

- 本系统仅用于教学与实验

- 不涉及真实医疗诊断与治疗

- 不上链完整病历隐私数据

七、使用说明(面向学生/开发者)

1. 阅读

"models.py" 理解医疗记录结构

2. 修改

"cli.py" 模拟不同宠物与就诊记录

3. 可扩展:

- 增加“跨机构授权查询”

- 增加“过敏史提示”

- 改为 Web API 供医院系统调用

八、核心知识点卡片(课程向)

模块 关键知识点

区块链 哈希锚定、不可篡改

医疗信息 病史连续性、用药安全

隐私保护 摘要存证 vs 原始病历

软件工程 模块化、单一职责

Python 实践 dataclass、CLI、列表处理

九、总结

本方案从宠物医疗中“信息孤岛与过度医疗”问题出发,剥离商业与营销色彩,仅从技术视角展示:

- 区块链如何作为“跨机构可信病历见证人”

- 如何通过“摘要 + 哈希”兼顾隐私与安全

- 如何在课程中讨论技术与医疗伦理的平衡

它不是一个完整的医疗系统,而是一个可用于课堂讨论、兽医教育、创新实验的教学原型。

如果你愿意,下一步可以:

- 改造成 Web API(FastAPI)

- 设计 宠物主授权与隐私控制

- 或结合 智能合约 + 权限管理

利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/7 17:18:33

构建个人数字图书馆:novel-downloader 小说下载解决方案

构建个人数字图书馆:novel-downloader 小说下载解决方案 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader novel-downloader 是一个基于 TypeScript 构建的可扩展浏览器脚本…

作者头像 李华
网站建设 2026/5/7 17:17:51

在自动化测试流水线中集成TaotokenAPI进行智能结果分析与报告生成

在自动化测试流水线中集成Taotoken API进行智能结果分析与报告生成 现代软件开发中,持续集成与持续交付(CI/CD)流水线是保障代码质量的关键环节。每一次代码提交都会触发自动化测试,产生大量的测试日志和结果数据。面对成百上千条…

作者头像 李华
网站建设 2026/5/7 17:14:02

删除 基于Spring AI的课程查询与卡片展示实现

一、背景与需求在天机AI助手中,学生可以通过自然语言查询课程信息。例如,学生提供课程ID后,系统需要调用课程微服务的接口,获取课程详细信息,并在前端以卡片形式展示(包含课程名称、价格、适用人群、详情等…

作者头像 李华
网站建设 2026/5/7 17:13:17

实现锁的方式之中断的开关

如大家所了解的,关于编程中锁的具体实现,需要脱离我们的编程语言,往操作系统、硬件的支持这些更下的一层去探究。中断的开关在线程切换的时候需要用到中断,因此若关闭了中断,则可以阻止当前 CPU 运行的任务被其他任务所…

作者头像 李华