hpk-parser
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseHPK Message Parser and Explainer
HPK消息解析与解释工具
Overview
概述
This skill parses and explains HPK (Healthcare Protocol Kernel) messages - a proprietary pipe-delimited healthcare message format used in the Hexagone system for French healthcare environments. The parser supports 100+ message types across multiple domains (patient administration, supply chain, inventory, financial, organizational), identifies message types, extracts all fields, validates structure, and provides human-readable explanations based on the official HPK dictionary and specifications.
Primary Sources of Truth:
- HPK Dictionary () - GitLab repository with complete message schemas, field definitions, and validation rules
@erp-pas/hpk-dictionary - HPK ADT Message Specification - Comprehensive field definitions for patient administration messages
- HPK GEF Specification - Workflow integration and economic/financial management messages
Coverage:
- Patient Administration: Identity (ID), Movements (MV), Coverage (CV) - 12+ message types
- Supply Chain: Products (PR), Suppliers (FO), Markets (MA), Orders (CO), Deliveries (LI), Receptions (RO) - 20+ message types
- Financial: Invoices (FA), Miscellaneous Receipts (RD) - 4+ message types
- Inventory: Stock movements (SO), Asset inventory (IM) - 5+ message types
- Organizational: Structures (ST), Users (UT) - 6+ message types
- Requests: Creation requests (DD) - 2+ message types
When to use this skill:
- Parse and explain any HPK message (raw text input from any system domain)
- Identify HPK message type and mode (ID|M1|C, MV|M2|C, PR|M0|C, etc.)
- Extract and label all HPK fields according to specification
- Validate HPK message structure, field count, and data types
- Understand HPK business rules and field mappings
- Debug HPK message issues or data quality problems
- Document HPK message examples with explanations
- Verify HPK dictionary compliance and field definitions
- Map HPK messages to HL7 v2.5 or IHE PAM equivalents
- Analyze HPK message flows in Hexagone WEB integration scenarios
- Support development of HPK message generators or parsers
- Troubleshoot Hexagone WEB to external system interfaces
本工具用于解析和解释HPK(Healthcare Protocol Kernel)消息,这是法国医疗体系Hexagone系统中使用的专有竖线分隔医疗消息格式。解析器支持跨多个领域的100+种消息类型(患者管理、供应链、库存、财务、组织架构),可识别消息类型、提取所有字段、校验结构,并基于官方HPK字典和规范提供人类可读的解释。
核心真值来源:
- HPK字典 () - 包含完整消息 schema、字段定义和校验规则的GitLab仓库
@erp-pas/hpk-dictionary - HPK ADT消息规范 - 患者管理消息的完整字段定义
- HPK GEF规范 - 工作流集成与经济/财务管理消息规范
覆盖范围:
- 患者管理: 身份(ID)、流转(MV)、医保(CV) - 12+种消息类型
- 供应链: 产品(PR)、供应商(FO)、合约(MA)、订单(CO)、配送(LI)、签收(RO) - 20+种消息类型
- 财务: 发票(FA)、杂项收据(RD) - 4+种消息类型
- 库存: 库存变动(SO)、资产盘点(IM) - 5+种消息类型
- 组织架构: 结构(ST)、用户(UT) - 6+种消息类型
- 请求: 创建请求(DD) - 2+种消息类型
适用场景:
- 解析并解释任意HPK消息(来自任意系统域的原始文本输入)
- 识别HPK消息类型和模式(ID|M1|C、MV|M2|C、PR|M0|C等)
- 根据规范提取并标注所有HPK字段
- 校验HPK消息结构、字段数量和数据类型
- 理解HPK业务规则和字段映射关系
- 调试HPK消息问题或数据质量问题
- 生成带解释的HPK消息示例文档
- 校验HPK字典合规性和字段定义
- 将HPK消息映射为HL7 v2.5或IHE PAM等价格式
- 分析Hexagone WEB集成场景下的HPK消息流
- 支持HPK消息生成器或解析器的开发
- 排查Hexagone WEB与外部系统的接口问题
HPK Message Format
HPK消息格式
HPK messages use pipe () as field delimiter with the following structure:
|Type|Message|Mode|Emetteur|Date|User|...additional fields...Core Fields (positions 0-5):
- Field 0: Message Type (= Identity,
ID= Movement,MV= Coverage)CV - Field 1: Message Code (,
M1,M2,M3,M6,M8,M9,MT,CE, etc.)B1 - Field 2: Mode (= Creation,
C= Modification,M= Deletion)D - Field 3: Emetteur (Sender/Source System)
- Field 4: Date/Time (format: )
YYYYMMDDHHmmss - Field 5: User ID
HPK消息使用竖线()作为字段分隔符,结构如下:
|Type|Message|Mode|Emetteur|Date|User|...additional fields...核心字段(位置0-5):
- 字段0: 消息类型(= 身份、
ID= 流转、MV= 医保)CV - 字段1: 消息编码(、
M1、M2、M3、M6、M8、M9、MT、CE等)B1 - 字段2: 操作模式(= 新建、
C= 修改、M= 删除)D - 字段3: 发送方(Sender/Source System)
- 字段4: 日期/时间(格式: )
YYYYMMDDHHmmss - 字段5: 用户ID
Message Types
消息类型
Identity Messages (ID|*)
身份消息 (ID|*)
ID|M1 - Patient Identity (Creation/Modification)
ID|M1 - 患者身份(新建/修改)
Purpose: Patient demographic information (registration)
Field Structure (38 fields total):
0: Type (ID)
1: Message (M1)
2: Mode (C/M/D)
3: Emetteur (Sender)
4: Date (YYYYMMDDHHmmss)
5: User
6: IPP (Patient ID)
7: Nom (Last Name)
8: Prénom (First Name)
9: Date de naissance (YYYYMMDD)
10: Sexe (M/F/U)
11: Adresse
12: Code postal
13: Ville
14: Pays
15: Téléphone
16: Téléphone portable
17: Email
18: Nom de naissance
19: Prénom usuel
20: Situation familiale
21: Nombre d'enfants
22: Profession
23: Médecin traitant
24: Établissement de naissance
25: Ville de naissance
26: Pays de naissance
27: Nationalité
28: INS (Identifiant National de Santé)
29: INS-C (Calcul)
30: NIR (Numéro de Sécurité Sociale)
31: Clé NIR
32: OID NIR
33: Matricule d'identité
34: Pays identité
35: Date décès (YYYYMMDD)
36: Indicateur de décès
37: CommentaireExample:
ID|M1|C|HEXAGONE|20260122120000|USER001|PAT12345|DUPONT|JEAN|19750315|M|15 RUE DE LA PAIX|75001|PARIS|FRA|0612345678||||||||||||||||||||||||||||||Explanation:
- Type: Identity message
- Code: M1 (Patient demographics)
- Mode: C (Creation - new patient registration)
- Patient: DUPONT JEAN, born 15/03/1975, Male
- Contact: 06 12 34 56 78, 15 RUE DE LA PAIX, 75001 PARIS, France
- System: Message from HEXAGONE system, user USER001, timestamp 22/01/2026 12:00:00
用途: 患者人口统计学信息(登记)
字段结构(共38个字段):
0: Type (ID)
1: Message (M1)
2: Mode (C/M/D)
3: Emetteur (Sender)
4: Date (YYYYMMDDHHmmss)
5: User
6: IPP (Patient ID)
7: Nom (Last Name)
8: Prénom (First Name)
9: Date de naissance (YYYYMMDD)
10: Sexe (M/F/U)
11: Adresse
12: Code postal
13: Ville
14: Pays
15: Téléphone
16: Téléphone portable
17: Email
18: Nom de naissance
19: Prénom usuel
20: Situation familiale
21: Nombre d'enfants
22: Profession
23: Médecin traitant
24: Établissement de naissance
25: Ville de naissance
26: Pays de naissance
27: Nationalité
28: INS (Identifiant National de Santé)
29: INS-C (Calcul)
30: NIR (Numéro de Sécurité Sociale)
31: Clé NIR
32: OID NIR
33: Matricule d'identité
34: Pays identité
35: Date décès (YYYYMMDD)
36: Indicateur de décès
37: Commentaire示例:
ID|M1|C|HEXAGONE|20260122120000|USER001|PAT12345|DUPONT|JEAN|19750315|M|15 RUE DE LA PAIX|75001|PARIS|FRA|0612345678||||||||||||||||||||||||||||||解释:
- 类型: 身份消息
- 编码: M1 (患者人口统计信息)
- 模式: C (新建 - 新患者登记)
- 患者: DUPONT JEAN,1975年3月15日出生,男
- 联系方式: 06 12 34 56 78,15 RUE DE LA PAIX,75001 巴黎,法国
- 系统: 消息来自HEXAGONE系统,操作用户USER001,时间戳2026年1月22日12:00:00
ID|MT - Treating Physician
ID|MT - 主治医生
Purpose: Assign or update patient's treating physician (médecin traitant)
Field Structure (13 fields total):
0: Type (ID)
1: Message (MT)
2: Mode (C/M/D)
3: Emetteur
4: Date
5: User
6: IPP
7: Code médecin traitant
8: Nom médecin traitant
9: Prénom médecin traitant
10: Spécialité
11: Date début
12: Date finExample:
ID|MT|C|HEXAGONE|20260122120000|USER001|PAT12345|PR_MARTIN|MARTIN|SOPHIE|CARDIOLOGUE|20260122||Explanation:
- Type: Identity message
- Code: MT (Médecin Traitant - Treating Physician)
- Mode: C (Creation - assign new treating physician)
- Patient: PAT12345
- Physician: Dr. MARTIN SOPHIE, Cardiologist, code PR_MARTIN
- Effective: From 22/01/2026 (no end date)
用途: 分配或更新患者的主治医生(médecin traitant)
字段结构(共13个字段):
0: Type (ID)
1: Message (MT)
2: Mode (C/M/D)
3: Emetteur
4: Date
5: User
6: IPP
7: Code médecin traitant
8: Nom médecin traitant
9: Prénom médecin traitant
10: Spécialité
11: Date début
12: Date fin示例:
ID|MT|C|HEXAGONE|20260122120000|USER001|PAT12345|PR_MARTIN|MARTIN|SOPHIE|CARDIOLOGUE|20260122||解释:
- 类型: 身份消息
- 编码: MT (主治医生)
- 模式: C (新建 - 分配新的主治医生)
- 患者: PAT12345
- 医生: MARTIN SOPHIE医生,心脏科医生,编码PR_MARTIN
- 生效时间: 2026年1月22日起(无结束日期)
ID|CE - Informed Consent
ID|CE - 知情同意
Purpose: Record patient consent for treatment/data processing
Field Structure (11 fields total):
0: Type (ID)
1: Message (CE)
2: Mode (C/M/D)
3: Emetteur
4: Date
5: User
6: IPP
7: Type consentement
8: Statut (OUI/NON)
9: Date début validité
10: Date fin validité用途: 记录患者对治疗/数据处理的同意情况
字段结构(共11个字段):
0: Type (ID)
1: Message (CE)
2: Mode (C/M/D)
3: Emetteur
4: Date
5: User
6: IPP
7: Type consentement
8: Statut (OUI/NON)
9: Date début validité
10: Date fin validitéMovement Messages (MV|*)
流转消息 (MV|*)
MV|M2 - Patient Admission
MV|M2 - 患者入院
Purpose: Hospital admission (admission hospitalière)
Field Structure (19 fields total):
0: Type (MV)
1: Message (M2)
2: Mode (C/M/D)
3: Emetteur
4: Date
5: User
6: IPP
7: Numéro de séjour (Visit ID)
8: Date/heure entrée (YYYYMMDDHHmmss)
9: Mode d'entrée (URGENCE/MUTATION/DOMICILE)
10: Établissement
11: Service
12: Unité fonctionnelle (UF)
13: Lit
14: Médecin responsable
15: Provenance
16: Type hospitalisation
17: Mode de traitement
18: Motif d'admissionExample:
MV|M2|C|HEXAGONE|20260122140000|USER001|PAT12345|VIS20260122001|20260122140000|URGENCE|CHU_PARIS|CARDIO|UF_CARDIO_01|LIT_001|PR_MARTIN|||||||Explanation:
- Type: Movement message
- Code: M2 (Hospital admission)
- Mode: C (Creation - new admission)
- Patient: PAT12345
- Visit: VIS20260122001 (unique visit identifier)
- Admission: 22/01/2026 14:00:00 via Emergency Department
- Location: CHU_PARIS, Cardiology service, UF_CARDIO_01, Bed LIT_001
- Care Team: Attending physician PR_MARTIN
用途: 医院入院(admission hospitalière)
字段结构(共19个字段):
0: Type (MV)
1: Message (M2)
2: Mode (C/M/D)
3: Emetteur
4: Date
5: User
6: IPP
7: Numéro de séjour (Visit ID)
8: Date/heure entrée (YYYYMMDDHHmmss)
9: Mode d'entrée (URGENCE/MUTATION/DOMICILE)
10: Établissement
11: Service
12: Unité fonctionnelle (UF)
13: Lit
14: Médecin responsable
15: Provenance
16: Type hospitalisation
17: Mode de traitement
18: Motif d'admission示例:
MV|M2|C|HEXAGONE|20260122140000|USER001|PAT12345|VIS20260122001|20260122140000|URGENCE|CHU_PARIS|CARDIO|UF_CARDIO_01|LIT_001|PR_MARTIN|||||||解释:
- 类型: 流转消息
- 编码: M2 (医院入院)
- 模式: C (新建 - 新入院)
- 患者: PAT12345
- 就诊号: VIS20260122001(唯一就诊标识)
- 入院时间: 2026年1月22日14:00:00,通过急诊入院
- 位置: 巴黎大学医院,心脏科,UF_CARDIO_01单元,床位LIT_001
- 医疗团队: 主治医生PR_MARTIN
MV|M3 - Status Change
MV|M3 - 状态变更
Purpose: Change in patient administrative status
Field Structure:
0-5: Common fields (Type, Message, Mode, Emetteur, Date, User)
6: IPP
7: Numéro de séjour
8: Ancien statut
9: Nouveau statut
10: Date changement statut
11: Motif changement用途: 患者管理状态变更
字段结构:
0-5: 公共字段(类型、消息编码、模式、发送方、日期、用户)
6: IPP
7: 就诊号
8: 旧状态
9: 新状态
10: 状态变更日期
11: 变更原因MV|M6 - Unit Entry/Transfer
MV|M6 - 单元入科/转科
Purpose: Patient transfer between units or services
Field Structure (18 fields total):
0: Type (MV)
1: Message (M6)
2: Mode (C/M/D)
3: Emetteur
4: Date
5: User
6: IPP
7: Numéro de séjour
8: Nouvelle UF
9: Nouveau lit
10: Nouveau service
11: Ancienne UF
12: Ancien lit
13: Ancien service
14: Date/heure mouvement
15: Mode de transfert
16: Nouveau médecin responsable
17: Motif de transfertExample:
MV|M6|C|HEXAGONE|20260123090000|USER002|PAT12345|VIS20260122001|UF_NEURO_01|LIT_102|NEURO|UF_CARDIO_01|LIT_001|CARDIO||||||Explanation:
- Type: Movement message
- Code: M6 (Unit transfer)
- Mode: C (Creation - new transfer event)
- Patient: PAT12345 in visit VIS20260122001
- From: Cardiology UF_CARDIO_01, Bed LIT_001
- To: Neurology UF_NEURO_01, Bed LIT_102
- Timestamp: 23/01/2026 09:00:00
用途: 患者在单元或科室之间流转
字段结构(共18个字段):
0: Type (MV)
1: Message (M6)
2: Mode (C/M/D)
3: Emetteur
4: Date
5: User
6: IPP
7: Numéro de séjour
8: Nouvelle UF
9: Nouveau lit
10: Nouveau service
11: Ancienne UF
12: Ancien lit
13: Ancien service
14: Date/heure mouvement
15: Mode de transfert
16: Nouveau médecin responsable
17: Motif de transfert示例:
MV|M6|C|HEXAGONE|20260123090000|USER002|PAT12345|VIS20260122001|UF_NEURO_01|LIT_102|NEURO|UF_CARDIO_01|LIT_001|CARDIO||||||解释:
- 类型: 流转消息
- 编码: M6 (单元转科)
- 模式: C (新建 - 新流转事件)
- 患者: PAT12345,就诊号VIS20260122001
- 转出: 心脏科UF_CARDIO_01单元,床位LIT_001
- 转入: 神经科UF_NEURO_01单元,床位LIT_102
- 时间戳: 2026年1月23日09:00:00
MV|M8 - Unit Exit
MV|M8 - 单元出科
Purpose: Exit from functional unit (without discharge)
Field Structure:
0-5: Common fields
6: IPP
7: Numéro de séjour
8: UF de sortie
9: Date/heure sortie UF
10: Destination
11: Mode de sortie用途: 从功能单元出科(未出院)
字段结构:
0-5: 公共字段
6: IPP
7: 就诊号
8: 转出单元
9: 单元转出日期/时间
10: 目的地
11: 转出模式MV|M9 - Hospital Discharge
MV|M9 - 医院出院
Purpose: Patient discharge from hospital
Field Structure (14 fields total):
0: Type (MV)
1: Message (M9)
2: Mode (C/M/D)
3: Emetteur
4: Date
5: User
6: IPP
7: Numéro de séjour
8: Date/heure sortie (YYYYMMDDHHmmss)
9: Mode de sortie (DOMICILE/MUTATION/DECES)
10: Destination
11: État à la sortie (AMELIORE/STATIONNAIRE/AGGRAVE)
12: Médecin ayant autorisé la sortie
13: Motif de sortieExample:
MV|M9|C|HEXAGONE|20260125180000|USER003|PAT12345|VIS20260122001|20260125180000|DOMICILE||AMELIORE||||Explanation:
- Type: Movement message
- Code: M9 (Hospital discharge)
- Mode: C (Creation - new discharge event)
- Patient: PAT12345, visit VIS20260122001
- Discharge: 25/01/2026 18:00:00
- Destination: DOMICILE (Home)
- Status: AMELIORE (Improved condition)
用途: 患者从医院出院
字段结构(共14个字段):
0: Type (MV)
1: Message (M9)
2: Mode (C/M/D)
3: Emetteur
4: Date
5: User
6: IPP
7: Numéro de séjour
8: Date/heure sortie (YYYYMMDDHHmmss)
9: Mode de sortie (DOMICILE/MUTATION/DECES)
10: Destination
11: État à la sortie (AMELIORE/STATIONNAIRE/AGGRAVE)
12: Médecin ayant autorisé la sortie
13: Motif de sortie示例:
MV|M9|C|HEXAGONE|20260125180000|USER003|PAT12345|VIS20260122001|20260125180000|DOMICILE||AMELIORE||||解释:
- 类型: 流转消息
- 编码: M9 (医院出院)
- 模式: C (新建 - 新出院事件)
- 患者: PAT12345,就诊号VIS20260122001
- 出院时间: 2026年1月25日18:00:00
- 目的地: 家(DOMICILE)
- 出院状态: 好转(AMELIORE)
MV|B1 - Urgency/Box Movement
MV|B1 - 急诊/隔间流转
Purpose: Emergency department box movement
Field Structure:
0-5: Common fields
6: IPP
7: Numéro de passage aux urgences
8: Box de départ
9: Box d'arrivée
10: Date/heure mouvement
11: Motif用途: 急诊隔间流转
字段结构:
0-5: 公共字段
6: IPP
7: 急诊就诊号
8: 转出隔间
9: 转入隔间
10: 流转日期/时间
11: 原因MV|MT - Temporary Movement
MV|MT - 临时流转
Purpose: Temporary patient movement (exam, procedure)
Field Structure:
0-5: Common fields
6: IPP
7: Numéro de séjour
8: Lieu de départ
9: Lieu d'arrivée
10: Date/heure départ
11: Date/heure retour prévue
12: Motif (EXAMEN/BLOC/RADIOLOGIE)用途: 患者临时流转(检查、手术)
字段结构:
0-5: 公共字段
6: IPP
7: 就诊号
8: 出发地点
9: 到达地点
10: 出发日期/时间
11: 预计返回日期/时间
12: 原因(EXAMEN/BLOC/RADIOLOGIE)Coverage Messages (CV|*)
医保消息 (CV|*)
CV|M1 - Insurance Coverage
CV|M1 - 保险覆盖
Purpose: Patient insurance and coverage information
Field Structure (20 fields total):
0: Type (CV)
1: Message (M1)
2: Mode (C/M/D)
3: Emetteur
4: Date
5: User
6: IPP
7: Organisme payeur
8: Code régime
9: Caisse
10: Centre
11: Numéro adhérent
12: Clé adhérent
13: Rang bénéficiaire
14: Date début droits
15: Date fin droits
16: Type couverture (CPAM/MUTUELLE/AME)
17: Taux de remboursement
18: ALD (Affection Longue Durée)
19: CMU/CMUCExample:
CV|M1|C|HEXAGONE|20260122120000|USER001|PAT12345|CPAM75|01|750|001|1234567890|12|00|20260101|20261231|CPAM|100|OUI|NONExplanation:
- Type: Coverage message
- Code: M1 (Insurance information)
- Patient: PAT12345
- Insurer: CPAM 75 (Paris Social Security), code 01/750/001
- Member: #1234567890, key 12, rank 00 (primary insured)
- Validity: 01/01/2026 to 31/12/2026
- Coverage: CPAM (National Health Insurance), 100% reimbursement
- Special: ALD (Long-term condition) = YES, CMU = NO
用途: 患者保险和覆盖信息
字段结构(共20个字段):
0: Type (CV)
1: Message (M1)
2: Mode (C/M/D)
3: Emetteur
4: Date
5: User
6: IPP
7: Organisme payeur
8: Code régime
9: Caisse
10: Centre
11: Numéro adhérent
12: Clé adhérent
13: Rang bénéficiaire
14: Date début droits
15: Date fin droits
16: Type couverture (CPAM/MUTUELLE/AME)
17: Taux de remboursement
18: ALD (Affection Longue Durée)
19: CMU/CMUC示例:
CV|M1|C|HEXAGONE|20260122120000|USER001|PAT12345|CPAM75|01|750|001|1234567890|12|00|20260101|20261231|CPAM|100|OUI|NON解释:
- 类型: 医保消息
- 编码: M1 (保险信息)
- 患者: PAT12345
- 承保机构: CPAM 75(巴黎社保),编码01/750/001
- 参保人: 编号1234567890,校验码12,优先级00(主参保人)
- 有效期: 2026年1月1日至2026年12月31日
- 覆盖类型: CPAM(国家医保),100%报销
- 特殊标注: ALD(长期慢性病)= 是,CMU = 否
Parsing Logic
解析逻辑
When asked to parse an HPK message:
当收到解析HPK消息的请求时:
Step 1: Split and Identify
步骤1: 拆分与识别
-
Split by pipe delimiter:
fields = message.split('|') -
Identify message type: Check fields[0], fields[1], and fields[2]
- Type: fields[0] (ID, MV, CV, PR, FO, MA, CO, LI, RO, FA, SO, RD, IM, DD, UT, ST)
- Message code: fields[1] (M1, M2, M3, M6, M8, M9, MT, CE, B1, etc.)
- Mode: fields[2] (C=Creation, M=Modification, S/D=Suppression/Deletion)
-
Look up in HPK Dictionary: Use message keyto get field definitions from
{Type}|{Message}@erp-pas/hpk-dictionary
-
按竖线分隔符拆分:
fields = message.split('|') -
识别消息类型: 检查fields[0]、fields[1]和fields[2]
- 类型: fields[0](ID、MV、CV、PR、FO、MA、CO、LI、RO、FA、SO、RD、IM、DD、UT、ST)
- 消息编码: fields[1](M1、M2、M3、M6、M8、M9、MT、CE、B1等)
- 模式: fields[2](C=新建、M=修改、S/D=删除)
-
查询HPK字典: 使用消息键从
{Type}|{Message}获取字段定义@erp-pas/hpk-dictionary
Step 2: Extract Base Fields
步骤2: 提取基础字段
Extract standard header fields (always present in positions 0-5):
| Position | Field | Format | Description |
|---|---|---|---|
| 0 | Type | 2 chars | Message category |
| 1 | Message | 2 chars | Specific message type |
| 2 | Mode | 1 char | Operation (C/M/S/D) |
| 3 | Emetteur | 15 chars | Sender system |
| 4 | Date | 16 chars | Timestamp (YYYYMMDDHHMISSnn) |
| 5 | User | 50 chars | User identifier |
提取标准头部字段(始终位于位置0-5):
| 位置 | 字段 | 格式 | 描述 |
|---|---|---|---|
| 0 | Type | 2字符 | 消息分类 |
| 1 | Message | 2字符 | 具体消息类型 |
| 2 | Mode | 1字符 | 操作类型(C/M/S/D) |
| 3 | Emetteur | 15字符 | 发送方系统 |
| 4 | Date | 16字符 | 时间戳(YYYYMMDDHHMISSnn) |
| 5 | User | 50字符 | 用户标识 |
Step 3: Extract Type-Specific Fields
步骤3: 提取类型专属字段
Based on message type, extract remaining fields:
ID|M1 (Identity - fields 6-37):
- 6: IPP (Patient ID)
- 7: Nom (Last Name)
- 8: Prénom (First Name)
- 9: Date de naissance (YYYYMMDD)
- 10: Sexe (M/F/U)
- 11-37: Additional demographic fields
MV|M2 (Admission - fields 6-18):
- 6: IPP
- 7: Numéro de séjour (Visit ID)
- 8: Date/heure entrée
- 9: Mode d'entrée
- 10-18: Location and care team details
MV|M6 (Transfer - fields 6-17):
- 6: IPP
- 7: Numéro de séjour
- 8-10: New location (UF, Bed, Service)
- 11-13: Previous location
- 14-17: Transfer details
MV|M9 (Discharge - fields 6-13):
- 6: IPP
- 7: Numéro de séjour
- 8: Date/heure sortie
- 9: Mode de sortie
- 10-13: Discharge details
CV|M1 (Coverage - fields 6-19):
- 6: IPP
- 7-19: Insurance and coverage details
根据消息类型,提取剩余字段:
ID|M1(身份 - 字段6-37):
- 6: IPP(患者ID)
- 7: 姓氏
- 8: 名字
- 9: 出生日期(YYYYMMDD)
- 10: 性别(M/F/U)
- 11-37: 其他人口统计字段
MV|M2(入院 - 字段6-18):
- 6: IPP
- 7: 就诊号(Visit ID)
- 8: 入院日期/时间
- 9: 入院模式
- 10-18: 位置和医疗团队详情
MV|M6(转科 - 字段6-17):
- 6: IPP
- 7: 就诊号
- 8-10: 新位置(单元、床位、科室)
- 11-13: 原位置
- 14-17: 转科详情
MV|M9(出院 - 字段6-13):
- 6: IPP
- 7: 就诊号
- 8: 出院日期/时间
- 9: 出院模式
- 10-13: 出院详情
CV|M1(医保 - 字段6-19):
- 6: IPP
- 7-19: 保险和覆盖详情
Step 4: Format Data
步骤4: 格式化数据
Apply formatting based on data types:
-
Date fields (YYYYMMDD):
- Parse: →
2026012222/01/2026 - Validation: Check valid date
- Parse:
-
DateTime fields (YYYYMMDDHHMISSnn):
- Parse: →
2026012214053022/01/2026 14:05:30 - nn = centiseconds (usually ignored in display)
- Parse:
-
Enumerated values:
- Gender: M (Male), F (Female), U (Unknown)
- Mode: C (Creation), M (Modification), S/D (Suppression)
- Entry modes: URGENCE, MUTATION, DOMICILE, etc.
-
Empty fields:
- Empty string or consecutive pipes
|| - Display as "Not provided" or leave blank
- Empty string or consecutive pipes
根据数据类型应用格式化规则:
-
日期字段(YYYYMMDD):
- 解析: →
202601222026/01/22 - 校验: 检查日期有效性
- 解析:
-
日期时间字段(YYYYMMDDHHMISSnn):
- 解析: →
202601221405302026/01/22 14:05:30 - nn = 厘秒(展示时通常忽略)
- 解析:
-
枚举值:
- 性别: M(男)、F(女)、U(未知)
- 模式: C(新建)、M(修改)、S/D(删除)
- 入院模式: URGENCE(急诊)、MUTATION(转院)、DOMICILE(家)等
-
空字段:
- 空字符串或连续竖线
|| - 展示为"未提供"或留空
- 空字符串或连续竖线
Step 5: Validate Message
步骤5: 校验消息
Using HPK Dictionary definitions:
-
Field count validation:
expected_count = len(dictionary[message_key].fields) actual_count = len(fields) if actual_count != expected_count: warn("Field count mismatch") -
Required field validation:
for field_def in dictionary[message_key].fields: if field_def.isMandatory and not fields[field_def.position]: error(f"Missing required field: {field_def.description}") -
Type validation:
- Date: Check format YYYYMMDD and valid date
- Number: Check numeric and within range
- String: Check length <= maximum
-
Length validation:
if len(field_value) > field_def.length: warn(f"Field exceeds maximum length: {field_def.description}")
使用HPK字典定义进行校验:
-
字段数量校验:
expected_count = len(dictionary[message_key].fields) actual_count = len(fields) if actual_count != expected_count: warn("字段数量不匹配") -
必填字段校验:
for field_def in dictionary[message_key].fields: if field_def.isMandatory and not fields[field_def.position]: error(f"缺失必填字段: {field_def.description}") -
类型校验:
- 日期: 检查格式为YYYYMMDD且日期有效
- 数字: 检查为数字且在范围内
- 字符串: 检查长度不超过最大值
-
长度校验:
if len(field_value) > field_def.length: warn(f"字段超出最大长度: {field_def.description}")
Step 6: Generate Explanation
步骤6: 生成解释
Provide context and interpretation:
- Message purpose: Describe what this message does
- Operation type: Explain C/M/S/D mode
- Key data points: Highlight important clinical/administrative data
- Business context: Explain workflow implications
- Related messages: Mention typical message sequences
提供上下文和解读:
- 消息用途: 描述该消息的作用
- 操作类型: 解释C/M/S/D模式
- 关键数据点: 高亮重要的临床/管理数据
- 业务上下文: 解释工作流影响
- 关联消息: 说明典型的消息序列
Validation Rules
校验规则
Structural Validation
结构校验
- Message format: Must start with valid Type|Message|Mode pattern
- Uppercase header: First 6 fields must be uppercase
- Pipe delimiter: Fields separated by (ASCII 124)
| - No spaces: Empty fields represented as not
||| | - Trailing pipes: May have trailing pipes for optional fields
- 消息格式: 必须以有效的Type|Message|Mode模式开头
- 头部大写: 前6个字段必须为大写
- 竖线分隔符: 字段使用(ASCII 124)分隔
| - 无空格: 空字段使用表示,而非
||| | - 末尾竖线: 可选字段可以保留末尾竖线
Field-Level Validation
字段级校验
From HPK Dictionary and properties:
isMandatorytype- Required fields: Must not be empty if
isMandatory: true - Date format: Must match YYYYMMDD or YYYYMMDDHHMISSnn
- Numeric fields: Must contain only digits (and decimal point if applicable)
- Length limits: Must not exceed property from dictionary
length - Enumerated values: Must match allowed values (check field)
comment
来自HPK字典的和属性:
isMandatorytype- 必填字段: 如果则不能为空
isMandatory: true - 日期格式: 必须匹配YYYYMMDD或YYYYMMDDHHMISSnn
- 数字字段: 必须仅包含数字(适用时可包含小数点)
- 长度限制: 不得超过字典中定义的属性
length - 枚举值: 必须匹配允许的值(检查字段)
comment
Business Logic Validation
业务逻辑校验
From HPK specifications and business rules:
- IPP consistency: Same IPP across related messages in a sequence
- Visit number: MV messages for same episode must share visit number
- Date sequences:
- Admission date ≤ Transfer date ≤ Discharge date
- Start date ≤ End date for coverage periods
- Location references: Service/Unit/Bed must exist in organizational structure
- Practitioner references: Physician codes must be valid in system
来自HPK规范和业务规则:
- IPP一致性: 同一序列中关联消息的IPP必须相同
- 就诊号: 同一就诊的MV消息必须共享就诊号
- 日期序列:
- 入院日期 ≤ 转科日期 ≤ 出院日期
- 医保覆盖周期的开始日期 ≤ 结束日期
- 位置引用: 科室/单元/床位必须存在于组织架构中
- 医生引用: 医生编码必须在系统中有效
Data Quality Checks
数据质量检查
-
Date reasonableness:
- Birth date not in future
- Admission date within reasonable range
- Not more than 120 years old (unless special case)
-
Identifier formats:
- IPP: Check format and checksum (if applicable)
- NIR: 15 digits (13 + 2 key) with Luhn validation
- FINESS: 9 digits for facilities
-
Code validity:
- Gender codes: M, F, U only
- Country codes: ISO 3166-1 alpha-3 (FRA, etc.)
- Insurance regime codes: Check against référentiel
-
日期合理性:
- 出生日期不能为未来
- 入院日期在合理范围内
- 年龄不超过120岁(特殊情况除外)
-
标识格式:
- IPP: 检查格式和校验和(如适用)
- NIR: 15位数字(13位+2位校验码),需通过Luhn校验
- FINESS: 机构编码为9位数字
-
编码有效性:
- 性别编码: 仅允许M、F、U
- 国家编码: ISO 3166-1 alpha-3(如FRA)
- 医保制度编码: 对照参考库检查
Error Reporting
错误上报
When validation fails, report:
markdown
**Validation Issues**:
❌ **Error**: Missing required field at position 7 (Last Name)
⚠️ **Warning**: Field 9 (Birth Date) exceeds maximum length
⚠️ **Warning**: Field count mismatch - expected 38, got 35
ℹ️ **Info**: Optional field 16 (Mobile phone) not providedSeverity levels:
- Error (❌): Message cannot be processed
- Warning (⚠️): Message may have issues but can be processed
- Info (ℹ️): Optional fields or minor issues
当校验失败时,上报如下内容:
markdown
**校验问题**:
❌ **错误**: 位置7缺失必填字段(姓氏)
⚠️ **警告**: 字段9(出生日期)超出最大长度
⚠️ **警告**: 字段数量不匹配 - 期望38个,实际35个
ℹ️ **信息**: 可选字段16(手机号)未提供严重级别:
- 错误(❌): 消息无法处理
- 警告(⚠️): 消息可能存在问题但可处理
- 信息(ℹ️): 可选字段或次要问题
Example Output Format
输出格式示例
When parsing a message, provide:
markdown
undefined解析消息时,提供如下内容:
markdown
undefinedHPK Message Analysis
HPK消息分析
Raw Message:
[original HPK message]Message Identification:
- Type: [ID/MV/CV]
- Code: [M1/M2/M6/M9/etc.]
- Full Name: [descriptive name]
- Operation: [Creation/Modification/Deletion]
Core Fields:
- Sender System: [emetteur]
- Timestamp: [formatted date/time]
- User: [user ID]
[Type]-Specific Fields:
[List all relevant fields with labels and values]
Business Context:
[Explain what this message represents and its purpose]
Validation:
- Field count: [actual] (expected: [expected for this type])
- Required fields: [✓ or ✗ for each required field]
- Date formats: [✓ or ✗]
- Enumerated values: [✓ or ✗]
undefined原始消息:
[原始HPK消息]消息识别:
- 类型: [ID/MV/CV]
- 编码: [M1/M2/M6/M9等]
- 全称: [描述性名称]
- 操作: [新建/修改/删除]
核心字段:
- 发送方系统: [emetteur]
- 时间戳: [格式化后的日期/时间]
- 用户: [用户ID]
[类型]专属字段:
[列出所有相关字段的标签和值]
业务上下文:
[解释该消息代表的含义和用途]
校验:
- 字段数量: [实际数量](期望: [该类型期望数量])
- 必填字段: [每个必填字段的✓或✗]
- 日期格式: [✓或✗]
- 枚举值: [✓或✗]
undefinedHPK Dictionary Integration
HPK字典集成
GitLab Repository
GitLab仓库
Repository: https://gitlab-erp-pas.dedalus.lan/erp-pas/hexagone/hpk-dictionary
Package: (NPM)
Version: 1.0.5+
Purpose: Authoritative source of truth for all HPK message definitions
Package:
@erp-pas/hpk-dictionaryVersion: 1.0.5+
Purpose: Authoritative source of truth for all HPK message definitions
仓库地址: https://gitlab-erp-pas.dedalus.lan/erp-pas/hexagone/hpk-dictionary
包名:(NPM)
版本: 1.0.5+
用途: 所有HPK消息定义的权威真值来源
包名:
@erp-pas/hpk-dictionary版本: 1.0.5+
用途: 所有HPK消息定义的权威真值来源
Dictionary Structure
字典结构
The HPK dictionary is an NPM package that provides comprehensive message definitions for the Hexagone healthcare system. Each message type includes:
javascript
{
description: String, // Human-readable message description
fields: Array[{
position: Number, // Field position (1-based)
description: String, // Field description
length: Number, // Maximum field length
type: String, // Data type (String, Number, Date, etc.)
isMandatory: Boolean, // Required field flag
comment: String // Additional notes/rules
}]
}HPK字典是一个NPM包,为Hexagone医疗系统提供全面的消息定义。每个消息类型包含:
javascript
{
description: String, // 人类可读的消息描述
fields: Array[{
position: Number, // 字段位置(从1开始)
description: String, // 字段描述
length: Number, // 字段最大长度
type: String, // 数据类型(字符串、数字、日期等)
isMandatory: Boolean, // 必填字段标识
comment: String // 附加说明/规则
}]
}Dictionary Access Example
字典访问示例
javascript
const hpk = require('@erp-pas/hpk-dictionary')
// Access message definition
const idM1 = hpk.segments['ID|M1']
console.log(idM1.description) // "Suppression Identité Patient"
// Iterate through field definitions
idM1.fields.forEach(field => {
console.log(`${field.position}. ${field.description} (${field.type}, max: ${field.length})`)
if (field.isMandatory) console.log(' ⚠️ Required')
})javascript
const hpk = require('@erp-pas/hpk-dictionary')
// 获取消息定义
const idM1 = hpk.segments['ID|M1']
console.log(idM1.description) // "删除患者身份"
// 遍历字段定义
idM1.fields.forEach(field => {
console.log(`${field.position}. ${field.description} (${field.type}, 最大长度: ${field.length})`)
if (field.isMandatory) console.log(' ⚠️ 必填')
})Message Categories in Dictionary
字典中的消息分类
The HPK dictionary defines 100+ message types across these domains:
HPK字典定义了跨以下领域的100+种消息类型:
Identity & User Management (ID, UT)
身份与用户管理(ID、UT)
- ID|M1: Patient identity creation/modification
- ID|MT: Treating physician assignment
- ID|CE: Informed consent
- UT|A1: User account management
- ID|M1: 患者身份新建/修改
- ID|MT: 主治医生分配
- ID|CE: 知情同意
- UT|A1: 用户账号管理
Patient Movements (MV)
患者流转(MV)
- MV|M2: Hospital admission
- MV|M3: Administrative status change
- MV|M6: Unit/service transfer
- MV|M8: Functional unit exit
- MV|M9: Hospital discharge
- MV|B1: Emergency box movement
- MV|MT: Temporary movement (exam, procedure)
- MV|M2: 医院入院
- MV|M3: 管理状态变更
- MV|M6: 单元/科室转科
- MV|M8: 功能单元出科
- MV|M9: 医院出院
- MV|B1: 急诊隔间流转
- MV|MT: 临时流转(检查、手术)
Coverage & Financial (CV, FA)
医保与财务(CV、FA)
- CV|M1: Insurance coverage information
- FA|FE: Invoice header
- FA|FL: Invoice lines
- CV|M1: 保险覆盖信息
- FA|FE: 发票头部
- FA|FL: 发票行
Organizational Structure (ST)
组织架构(ST)
- ST|EJ: Legal establishment (Établissement Juridique)
- ST|EG: Geographic establishment (Établissement Géographique)
- ST|BA: Building (Bâtiment)
- ST|ET: Floor (Étage)
- ST|CH: Room (Chambre)
- ST|EJ: 法人机构(Établissement Juridique)
- ST|EG: 地理机构(Établissement Géographique)
- ST|BA: 楼宇(Bâtiment)
- ST|ET: 楼层(Étage)
- ST|CH: 房间(Chambre)
Supply Chain Management (PR, FO, MA, CO, LI, RO)
供应链管理(PR、FO、MA、CO、LI、RO)
- PR|M0-M5: Product management
- FO|M1-M3: Supplier management
- MA|M1-M3: Contract/market management
- CO|M1-M2: Orders
- LI|M1-M2: External deliveries
- RO|M1-M2: Receptions
- PR|M0-M5: 产品管理
- FO|M1-M3: 供应商管理
- MA|M1-M3: 合约/集采管理
- CO|M1-M2: 订单
- LI|M1-M2: 外部配送
- RO|M1-M2: 签收
Inventory & Stock (SO, IM)
库存与仓储(SO、IM)
- SO|S1: Stock output
- SO|I1: Inventory
- SO|T1: Stock transfer
- SO|L1: Pre-established lists
- IM|M1: Asset inventory
- SO|S1: 出库
- SO|I1: 盘点
- SO|T1: 库存调拨
- SO|L1: 预设清单
- IM|M1: 资产盘点
Miscellaneous (RD, DD)
杂项(RD、DD)
- RD|E1/L1: Miscellaneous receipts
- DD|M1/K1: Request messages
- RD|E1/L1: 杂项收据
- DD|M1/K1: 请求消息
Using Dictionary for Validation
使用字典进行校验
When parsing HPK messages, use the dictionary to:
- Validate field count: Check actual vs. expected field count from dictionary
- Verify required fields: Use flag to ensure all required fields present
isMandatory - Type validation: Use field to validate data format (Date, Number, String)
type - Length validation: Use field to ensure values don't exceed maximum
length - Business rules: Use field for additional validation logic
comment
解析HPK消息时,使用字典完成以下操作:
- 校验字段数量: 对比实际字段数与字典中期望的字段数
- 校验必填字段: 使用标识确保所有必填字段存在
isMandatory - 类型校验: 使用字段校验数据格式(日期、数字、字符串)
type - 长度校验: 使用字段确保值不超过最大长度
length - 业务规则: 使用字段执行附加校验逻辑
comment
Field Type Reference
字段类型参考
From HPK dictionary:
- String: Text fields (alphanumeric)
- Number: Numeric fields (may include decimal precision like )
9999.99 - Date: Date fields (YYYYMMDD or YYYYMMDDHHMISSnn format)
- Boolean: True/False values (represented as T/F or O/N in French: Oui/Non)
来自HPK字典:
- String: 文本字段(字母数字)
- Number: 数字字段(可包含小数精度,如)
9999.99 - Date: 日期字段(格式为YYYYMMDD或YYYYMMDDHHMISSnn)
- Boolean: 布尔值(表示为T/F或法语的O/N: 是/否)
Reference Documentation
参考文档
Primary Source of Truth:
- HPK Dictionary Repository - Complete message definitions with field schemas, validation rules, and data types
Internal Documentation:
- HPK ADT Message Specification - Complete field definitions and business rules for ADT messages
- HPK GEF Specification - Workflow and integration details for economic and financial management
Related Standards (for context):
- IHE PAM 2.10 Specification: https://github.com/Interop-Sante/ihe.iti.pam.fr
- HL7 v2.5 Standard: http://www.hl7.eu/HL7v2x/v25/std25/ch02.html
核心真值来源:
- HPK字典仓库 - 完整的消息定义,包含字段schema、校验规则和数据类型
内部文档:
- HPK ADT消息规范 - ADT消息的完整字段定义和业务规则
- HPK GEF规范 - 经济和财务管理的工作流与集成细节
相关标准(供参考):
- IHE PAM 2.10规范: https://github.com/Interop-Sante/ihe.iti.pam.fr
- HL7 v2.5标准: http://www.hl7.eu/HL7v2x/v25/std25/ch02.html
Important Notes
重要注意事项
Message Format Standards
消息格式标准
- First 6 fields MUST be uppercase (Type, Message, Mode, Emetteur, Date, User)
- Pipe separator: Use as field delimiter
| - Empty fields: Represented by consecutive pipes (no spaces)
|| - Maximum lengths: Specified in dictionary - do not exceed
- Date format: YYYYMMDDHHMISSnn (where nn = centiseconds)
- 前6个字段必须为大写(类型、消息编码、模式、发送方、日期、用户)
- 竖线分隔符: 使用作为字段分隔符
| - 空字段: 使用连续竖线表示(无空格)
|| - 最大长度: 字典中已定义,不得超出
- 日期格式: YYYYMMDDHHMISSnn(nn = 厘秒)
HPK to HL7 Mapping
HPK到HL7映射
Standard Message Mappings
标准消息映射
HPK messages are often mapped to HL7 v2.5 / IHE PAM format for interoperability. The fixtures directory contains examples of these mappings.
HPK消息通常映射为HL7 v2.5 / IHE PAM格式以实现互操作性。fixtures目录包含这些映射的示例。
Identity Messages (ID) → HL7 ADT Messages
身份消息(ID)→ HL7 ADT消息
| HPK Message | HL7 Message | IHE Event | Description |
|---|---|---|---|
| ID|M1|C | ADT^A28 | Patient Add | Register new patient |
| ID|M1|M | ADT^A31 | Patient Update | Update patient demographics |
| ID|M1|D | ADT^A29 | Patient Delete | Delete patient record |
| ID|MT|C | ADT^A28 | - | Add/update treating physician |
| ID|CE|C | ADT^A28 | - | Record informed consent |
| HPK消息 | HL7消息 | IHE事件 | 描述 |
|---|---|---|---|
| ID|M1|C | ADT^A28 | 新增患者 | 登记新患者 |
| ID|M1|M | ADT^A31 | 更新患者 | 更新患者人口统计信息 |
| ID|M1|D | ADT^A29 | 删除患者 | 删除患者记录 |
| ID|MT|C | ADT^A28 | - | 新增/更新主治医生 |
| ID|CE|C | ADT^A28 | - | 记录知情同意 |
Movement Messages (MV) → HL7 ADT Messages
流转消息(MV)→ HL7 ADT消息
| HPK Message | HL7 Message | IHE Event | Description |
|---|---|---|---|
| MV|M2|C | ADT^A01 | Admit Patient [ITI-31] | Hospital admission |
| MV|M3|C | ADT^A06 | - | Status change (to outpatient) |
| MV|M6|C | ADT^A02 | Transfer Patient [ITI-32] | Unit/service transfer |
| MV|M8|C | ADT^A02 | - | Unit exit (internal transfer) |
| MV|M9|C | ADT^A03 | Discharge Patient [ITI-33] | Hospital discharge |
| MV|B1|C | ADT^A02 | - | Emergency box movement |
| MV|MT|C | ADT^A09/A10 | - | Temporary leave/return |
| HPK消息 | HL7消息 | IHE事件 | 描述 |
|---|---|---|---|
| MV|M2|C | ADT^A01 | 患者入院 [ITI-31] | 医院入院 |
| MV|M3|C | ADT^A06 | - | 状态变更(转为门诊) |
| MV|M6|C | ADT^A02 | 患者转科 [ITI-32] | 单元/科室转科 |
| MV|M8|C | ADT^A02 | - | 单元出科(内部流转) |
| MV|M9|C | ADT^A03 | 患者出院 [ITI-33] | 医院出院 |
| MV|B1|C | ADT^A02 | - | 急诊隔间流转 |
| MV|MT|C | ADT^A09/A10 | - | 临时离院/返回 |
Coverage Messages (CV) → HL7 Segments
医保消息(CV)→ HL7段
| HPK Message | HL7 Segments | Description |
|---|---|---|
| CV|M1|C | IN1 + IN2 | Primary insurance |
| CV|M1|M | IN1 + IN2 | Insurance update |
| HPK消息 | HL7段 | 描述 |
|---|---|---|
| CV|M1|C | IN1 + IN2 | 主保险 |
| CV|M1|M | IN1 + IN2 | 保险更新 |
Key Field Mappings
关键字段映射
HPK ID|M1 → HL7 ADT PID Segment
HPK ID|M1 → HL7 ADT PID段
| HPK Field (Position) | HPK Description | HL7 Field | HL7 Description |
|---|---|---|---|
| 6 | IPP | PID-3 | Patient Identifier List |
| 7 | Nom | PID-5.1 | Patient Name - Family Name |
| 8 | Prénom | PID-5.2 | Patient Name - Given Name |
| 9 | Date de naissance | PID-7 | Date/Time of Birth |
| 10 | Sexe | PID-8 | Administrative Sex |
| 11-14 | Adresse, CP, Ville, Pays | PID-11 | Patient Address |
| 15-16 | Téléphone | PID-13 | Phone Number - Home |
| 28 | INS | PID-3 | National Health ID (OID 1.2.250.1.213.1.4.8) |
| 30-31 | NIR + Clé | PID-3 | Social Security Number (OID 1.2.250.1.213.1.4.10) |
| HPK字段(位置) | HPK描述 | HL7字段 | HL7描述 |
|---|---|---|---|
| 6 | IPP | PID-3 | 患者标识列表 |
| 7 | 姓氏 | PID-5.1 | 患者姓名 - 姓氏 |
| 8 | 名字 | PID-5.2 | 患者姓名 - 名字 |
| 9 | 出生日期 | PID-7 | 出生日期/时间 |
| 10 | 性别 | PID-8 | 行政性别 |
| 11-14 | 地址、邮编、城市、国家 | PID-11 | 患者地址 |
| 15-16 | 电话 | PID-13 | 家庭电话号码 |
| 28 | INS | PID-3 | 国家健康ID(OID 1.2.250.1.213.1.4.8) |
| 30-31 | NIR + 校验码 | PID-3 | 社保号(OID 1.2.250.1.213.1.4.10) |
HPK MV|M2 → HL7 ADT PV1 Segment
HPK MV|M2 → HL7 ADT PV1段
| HPK Field (Position) | HPK Description | HL7 Field | HL7 Description |
|---|---|---|---|
| 7 | Numéro de séjour | PV1-19 | Visit Number |
| 8 | Date/heure entrée | PV1-44 | Admit Date/Time |
| 9 | Mode d'entrée | PV1-4 | Admission Type |
| 10 | Établissement | PV1-3.1 | Assigned Patient Location - Facility |
| 11 | Service | PV1-3.2 | Assigned Patient Location - Building |
| 12 | Unité fonctionnelle | PV1-3.3 | Assigned Patient Location - Floor |
| 13 | Lit | PV1-3.4 | Assigned Patient Location - Bed |
| 14 | Médecin responsable | PV1-7 | Attending Doctor |
| HPK字段(位置) | HPK描述 | HL7字段 | HL7描述 |
|---|---|---|---|
| 7 | 就诊号 | PV1-19 | 就诊号 |
| 8 | 入院日期/时间 | PV1-44 | 入院日期/时间 |
| 9 | 入院模式 | PV1-4 | 入院类型 |
| 10 | 机构 | PV1-3.1 | 分配的患者位置 - 机构 |
| 11 | 科室 | PV1-3.2 | 分配的患者位置 - 楼宇 |
| 12 | 功能单元 | PV1-3.3 | 分配的患者位置 - 楼层 |
| 13 | 床位 | PV1-3.4 | 分配的患者位置 - 床位 |
| 14 | 主治医生 | PV1-7 | 接诊医生 |
HPK MV|M9 → HL7 ADT PV1 Segment
HPK MV|M9 → HL7 ADT PV1段
| HPK Field (Position) | HPK Description | HL7 Field | HL7 Description |
|---|---|---|---|
| 8 | Date/heure sortie | PV1-45 | Discharge Date/Time |
| 9 | Mode de sortie | PV1-36 | Discharge Disposition |
| 11 | État à la sortie | PV1-52 | Patient Condition Code |
| HPK字段(位置) | HPK描述 | HL7字段 | HL7描述 |
|---|---|---|---|
| 8 | 出院日期/时间 | PV1-45 | 出院日期/时间 |
| 9 | 出院模式 | PV1-36 | 出院处置 |
| 11 | 出院状态 | PV1-52 | 患者状态码 |
Integration Patterns
集成模式
Pattern 1: Hexagone WEB → Service Echange → External System
模式1: Hexagone WEB → 交换服务 → 外部系统
[Hexagone WEB] --HPK--> [Service Echange] --HPK/HL7--> [External System]
↓
[HPK Dictionary]
[Mapping Rules]Flow:
- Event occurs in Hexagone WEB (admission, transfer, discharge)
- HPK message generated using dictionary definitions
- Message stored in Oracle database queue
- Service Echange/Hexaflux processes message
- Message transformed to HL7 (if needed) using mapping rules
- Message sent to external system via configured connector
- Acknowledgment received and logged
[Hexagone WEB] --HPK--> [交换服务] --HPK/HL7--> [外部系统]
↓
[HPK字典]
[映射规则]流程:
- Hexagone WEB中发生事件(入院、转科、出院)
- 使用字典定义生成HPK消息
- 消息存储在Oracle数据库队列中
- 交换服务/Hexaflux处理消息
- 如需则使用映射规则将消息转换为HL7格式
- 消息通过配置的连接器发送到外部系统
- 接收确认并记录日志
Pattern 2: External System → Hexagone WEB (Synchronous)
模式2: 外部系统 → Hexagone WEB(同步)
[External System] --Request--> [Hexagone WEB API] --HPK Event--> [Database]
↓
[HPK Message]
↓
[Service Echange] --HPK--> [Other Systems]Flow:
- External system makes synchronous request to Hexagone WEB
- Hexagone WEB processes request and updates database
- Database trigger generates HPK message
- Message prioritized (high priority for synchronous requests)
- Service Echange broadcasts message to other systems
- Response returned to original requester
[外部系统] --请求--> [Hexagone WEB API] --HPK事件--> [数据库]
↓
[HPK消息]
↓
[交换服务] --HPK--> [其他系统]流程:
- 外部系统向Hexagone WEB发起同步请求
- Hexagone WEB处理请求并更新数据库
- 数据库触发器生成HPK消息
- 消息设置为高优先级(同步请求适用)
- 交换服务将消息广播到其他系统
- 响应返回给原始请求方
Pattern 3: Message Sequencing
模式3: 消息序列
Typical HPK message sequences for common workflows:
New Patient Admission:
1. ID|M1|C - Register patient identity
2. CV|M1|C - Add insurance coverage
3. MV|M2|C - Admit patient to hospital
4. [Optional] ID|MT|C - Assign treating physicianPatient Transfer:
1. MV|M8|C - Exit from current unit
2. MV|M6|C - Transfer to new unit
3. [If needed] MV|M3|C - Status changePatient Discharge:
1. MV|M9|C - Discharge from hospital
2. [Optional] ID|M1|M - Update address if changed
3. [Optional] CV|M1|M - Update coverage end date常见工作流的典型HPK消息序列:
新患者入院:
1. ID|M1|C - 登记患者身份
2. CV|M1|C - 添加医保覆盖
3. MV|M2|C - 患者入院
4. [可选] ID|MT|C - 分配主治医生患者转科:
1. MV|M8|C - 从当前单元出科
2. MV|M6|C - 转入新单元
3. [如需] MV|M3|C - 状态变更患者出院:
1. MV|M9|C - 医院出院
2. [可选] ID|M1|M - 地址变更则更新
3. [可选] CV|M1|M - 更新医保结束日期OID References (French Healthcare)
OID参考(法国医疗)
Important OIDs for HPK to HL7 mapping:
| Identifier Type | OID | Description |
|---|---|---|
| INS-C | 1.2.250.1.213.1.4.8 | Identifiant National de Santé Calculé |
| INS-A | 1.2.250.1.213.1.4.9 | Identifiant National de Santé Attesté |
| NIR | 1.2.250.1.213.1.4.10 | Numéro de Sécurité Sociale |
| IPP | 1.2.250.1.213.1.4.2 | Identifiant Permanent du Patient (local) |
| FINESS | 1.2.250.1.71.4.2.2 | Identifiant Établissement |
| RPPS | 1.2.250.1.71.4.2.1 | Répertoire Partagé des Professionnels de Santé |
HPK到HL7映射的重要OID:
| 标识类型 | OID | 描述 |
|---|---|---|
| INS-C | 1.2.250.1.213.1.4.8 | 计算生成的国家健康ID |
| INS-A | 1.2.250.1.213.1.4.9 | 认证的国家健康ID |
| NIR | 1.2.250.1.213.1.4.10 | 社保号 |
| IPP | 1.2.250.1.213.1.4.2 | 患者永久标识(本地) |
| FINESS | 1.2.250.1.71.4.2.2 | 机构标识 |
| RPPS | 1.2.250.1.71.4.2.1 | 医疗从业人员共享目录 |
Troubleshooting Common Issues
常见问题排查
Issue 1: Field Count Mismatch
问题1: 字段数量不匹配
Symptom: Message has fewer/more fields than expected
Expected 38 fields for ID|M1, got 35Causes:
- Missing trailing pipes for optional fields
- Extra pipes in text data (address, names)
- Message truncated during transmission
Solution:
- Check HPK dictionary for expected field count
- Verify all required fields present
- Check for unescaped pipes in data
- Add missing trailing pipes for optional fields
症状: 消息字段数多于/少于预期
ID|M1期望38个字段,实际35个原因:
- 可选字段缺失末尾竖线
- 文本数据(地址、姓名)中存在额外竖线
- 传输过程中消息被截断
解决方案:
- 查看HPK字典确认期望字段数
- 验证所有必填字段存在
- 检查数据中是否存在未转义的竖线
- 为可选字段补充缺失的末尾竖线
Issue 2: Date Format Errors
问题2: 日期格式错误
Symptom: Invalid date format or parsing errors
Field 9 (Birth Date): "1975/03/15" - expected YYYYMMDDCauses:
- Wrong date format (slashes instead of numeric)
- Invalid date values (e.g., 20260231)
- Missing leading zeros
Solution:
- Verify format is exactly YYYYMMDD (8 digits)
- For DateTime: YYYYMMDDHHMISSnn (16 digits)
- Validate date is real (no Feb 31, etc.)
- Pad with zeros if needed (e.g., "2026315" → "20260315")
症状: 无效的日期格式或解析错误
字段9(出生日期): "1975/03/15" - 期望格式为YYYYMMDD原因:
- 日期格式错误(使用斜杠而非纯数字)
- 无效的日期值(如20260231)
- 缺失前导零
解决方案:
- 验证格式严格为YYYYMMDD(8位数字)
- 日期时间格式为YYYYMMDDHHMISSnn(16位数字)
- 校验日期真实存在(无2月31日等)
- 必要时补零(如"2026315" → "20260315")
Issue 3: Uppercase Requirement
问题3: 大写要求
Symptom: Message rejected by receiver
Field 3 (Emetteur): "Hexagone" - must be uppercaseCauses:
- Mixed case in header fields (positions 0-5)
- Case sensitive validation in receiving system
Solution:
- Convert first 6 fields to uppercase
- Keep patient names in proper case (fields 7-8 in ID|M1)
- Check specification for case requirements per field
症状: 消息被接收方拒绝
字段3(发送方): "Hexagone" - 必须为大写原因:
- 头部字段(位置0-5)大小写混合
- 接收方系统的校验区分大小写
解决方案:
- 将前6个字段转换为大写
- 患者姓名(ID|M1的字段7-8)保留正确大小写
- 查看规范确认每个字段的大小写要求
Issue 4: Empty vs Missing Fields
问题4: 空字段与缺失字段
Symptom: Required field appears empty
Field 7 (Last Name): "" - required field missingCauses:
- Consecutive pipes instead of value
|| - Space character interpreted as empty
- Null vs empty string handling
Solution:
- For required fields: must contain non-empty value
- For optional fields: use (consecutive pipes)
|| - Never use spaces to represent empty: is wrong
| | - Trim whitespace from field values
症状: 必填字段显示为空
字段7(姓氏): "" - 缺失必填字段原因:
- 使用连续竖线而非实际值
|| - 空格字符被判定为空
- Null与空字符串的处理差异
解决方案:
- 必填字段必须包含非空值
- 可选字段使用(连续竖线)表示
|| - 禁止使用空格表示空: 是错误写法
| | - 去除字段值的前后空格
Issue 5: Character Encoding
问题5: 字符编码
Symptom: Special characters corrupted
"Hôpital" appears as "H?pital"Causes:
- UTF-8 vs ISO-8859-1 encoding mismatch
- Accented characters not properly encoded
Solution:
- Verify encoding specification (usually UTF-8 or ISO-8859-1)
- Ensure consistent encoding throughout pipeline
- Test with accented characters: é, è, à, ô, ç
- Consider normalization for comparison (remove accents)
症状: 特殊字符损坏
"Hôpital"显示为"H?pital"原因:
- UTF-8与ISO-8859-1编码不匹配
- 带重音字符未正确编码
解决方案:
- 确认编码规范(通常为UTF-8或ISO-8859-1)
- 确保整个链路编码一致
- 使用带重音字符测试: é、è、à、ô、ç
- 比较时可考虑归一化(去除重音)
Practical Usage Examples
实际使用示例
Example 1: Parse Identity Message
示例1: 解析身份消息
Input:
ID|M1|C|HEXAGONE|20260122120000|USER001|PAT12345|DUPONT|JEAN|19750315|M|15 RUE DE LA PAIX|75001|PARIS|FRA|0612345678||||||||||||||||||||||||||||||||||||||Expected Output:
markdown
undefined输入:
ID|M1|C|HEXAGONE|20260122120000|USER001|PAT12345|DUPONT|JEAN|19750315|M|15 RUE DE LA PAIX|75001|PARIS|FRA|0612345678||||||||||||||||||||||||||||||||||||||预期输出:
markdown
undefinedHPK Message Analysis
HPK消息分析
Message Type: ID|M1|C - Patient Identity Creation
Core Information:
- System: HEXAGONE
- Timestamp: 22/01/2026 12:00:00
- User: USER001
- Operation: Creation (new patient registration)
Patient Demographics:
- IPP: PAT12345
- Name: DUPONT JEAN
- Birth Date: 15/03/1975 (50 years old)
- Gender: Male
- Address: 15 RUE DE LA PAIX, 75001 PARIS, France
- Phone: 06 12 34 56 78
Business Context:
This message registers a new patient in the system. The IPP (PAT12345) will be used to identify this patient in all subsequent messages (admissions, transfers, etc.). The message was generated by USER001 on 22/01/2026 at 12:00.
Validation: ✓ All required fields present, correct format
undefined消息类型: ID|M1|C - 新建患者身份
核心信息:
- 系统: HEXAGONE
- 时间戳: 2026年1月22日 12:00:00
- 用户: USER001
- 操作: 新建(新患者登记)
患者人口统计信息:
- IPP: PAT12345
- 姓名: DUPONT JEAN
- 出生日期: 1975年3月15日(50岁)
- 性别: 男
- 地址: 15 RUE DE LA PAIX,75001 巴黎,法国
- 电话: 06 12 34 56 78
业务上下文:
该消息在系统中登记一名新患者。IPP(PAT12345)将用于在所有后续消息(入院、转科等)中标识该患者。该消息由USER001于2026年1月22日12:00生成。
校验: ✓ 所有必填字段存在,格式正确
undefinedExample 2: Parse Admission Message
示例2: 解析入院消息
Input:
MV|M2|C|HEXAGONE|20260122140000|USER001|PAT12345|VIS20260122001|20260122140000|URGENCE|CHU_PARIS|CARDIO|UF_CARDIO_01|LIT_001|PR_MARTIN|||||||Expected Output:
markdown
undefined输入:
MV|M2|C|HEXAGONE|20260122140000|USER001|PAT12345|VIS20260122001|20260122140000|URGENCE|CHU_PARIS|CARDIO|UF_CARDIO_01|LIT_001|PR_MARTIN|||||||预期输出:
markdown
undefinedHPK Message Analysis
HPK消息分析
Message Type: MV|M2|C - Patient Admission
Core Information:
- System: HEXAGONE
- Timestamp: 22/01/2026 14:00:00
- User: USER001
- Operation: Creation (new admission)
Patient & Visit:
- IPP: PAT12345
- Visit Number: VIS20260122001
- Admission Date/Time: 22/01/2026 14:00:00
Admission Details:
- Entry Mode: URGENCE (Emergency admission)
- Facility: CHU_PARIS
- Service: CARDIO (Cardiology)
- Functional Unit: UF_CARDIO_01
- Bed: LIT_001
- Attending Physician: PR_MARTIN
Business Context:
Patient PAT12345 admitted to CHU Paris Cardiology department via emergency room on 22/01/2026 at 14:00. The visit is assigned number VIS20260122001 which will track all movements during this hospital stay. Patient assigned to bed LIT_001 in functional unit UF_CARDIO_01 under care of Dr. PR_MARTIN.
HL7 Mapping: Maps to ADT^A01 (Admit Patient) - IHE PAM [ITI-31]
Validation: ✓ All required fields present
undefined消息类型: MV|M2|C - 患者入院
核心信息:
- 系统: HEXAGONE
- 时间戳: 2026年1月22日14:00:00
- 用户: USER001
- 操作: 新建(新入院)
患者与就诊信息:
- IPP: PAT12345
- 就诊号: VIS20260122001
- 入院日期/时间: 2026年1月22日14:00:00
入院详情:
- 入院模式: 急诊(URGENCE)
- 机构: CHU_PARIS
- 科室: 心脏科(CARDIO)
- 功能单元: UF_CARDIO_01
- 床位: LIT_001
- 主治医生: PR_MARTIN
业务上下文:
患者PAT12345于2026年1月22日14:00通过急诊入住巴黎大学医院心脏科。本次就诊分配编号VIS20260122001,用于跟踪本次住院期间的所有流转。患者被分配到UF_CARDIO_01单元的LIT_001床位,由PR_MARTIN医生负责治疗。
HL7映射: 对应ADT^A01(患者入院)- IHE PAM [ITI-31]
校验: ✓ 所有必填字段存在
undefinedExample 3: Parse Message Sequence
示例3: 解析消息序列
Input (Multiple Messages):
1. ID|M1|C|HEXAGONE|20260122120000|USER001|PAT12345|DUPONT|JEAN|19750315|M|...
2. CV|M1|C|HEXAGONE|20260122120100|USER001|PAT12345|CPAM75|01|750|...
3. MV|M2|C|HEXAGONE|20260122140000|USER002|PAT12345|VIS001|20260122140000|URGENCE|...
4. MV|M6|C|HEXAGONE|20260123090000|USER003|PAT12345|VIS001|UF_NEURO|...
5. MV|M9|C|HEXAGONE|20260125180000|USER002|PAT12345|VIS001|20260125180000|DOMICILE|...Expected Output:
markdown
undefined输入(多条消息):
1. ID|M1|C|HEXAGONE|20260122120000|USER001|PAT12345|DUPONT|JEAN|19750315|M|...
2. CV|M1|C|HEXAGONE|20260122120100|USER001|PAT12345|CPAM75|01|750|...
3. MV|M2|C|HEXAGONE|20260122140000|USER002|PAT12345|VIS001|20260122140000|URGENCE|...
4. MV|M6|C|HEXAGONE|20260123090000|USER003|PAT12345|VIS001|UF_NEURO|...
5. MV|M9|C|HEXAGONE|20260125180000|USER002|PAT12345|VIS001|20260125180000|DOMICILE|...预期输出:
markdown
undefinedHPK Message Sequence Analysis
HPK消息序列分析
Workflow: Complete Patient Episode
Timeline:
22/01/2026 12:00 - Patient Registration (ID|M1|C)
- Patient DUPONT JEAN (IPP: PAT12345) registered by USER001
22/01/2026 12:01 - Insurance Added (CV|M1|C) [+1 min]
- CPAM Paris coverage added by USER001
22/01/2026 14:00 - Emergency Admission (MV|M2|C) [+2h]
- Admitted via emergency, Visit: VIS001 by USER002
23/01/2026 09:00 - Transfer (MV|M6|C) [+19h]
- Transferred to Neurology by USER003
25/01/2026 18:00 - Discharge (MV|M9|C) [+2d 9h]
- Discharged home by USER002
Summary:
- Episode duration: 3 days 6 hours
- Visit VIS001 completed
- 3 users involved
- ✓ Logical sequence maintained
- ✓ Chronological order correct
HL7 Equivalent: ADT^A28 → ADT^A28 → ADT^A01 → ADT^A02 → ADT^A03
undefined工作流: 完整患者就诊周期
时间线:
2026年1月22日 12:00 - 患者登记(ID|M1|C)
- 患者DUPONT JEAN(IPP: PAT12345)由USER001登记
2026年1月22日 12:01 - 添加医保(CV|M1|C)[+1分钟]
- USER001添加巴黎CPAM医保覆盖
2026年1月22日 14:00 - 急诊入院(MV|M2|C)[+2小时]
- USER002登记急诊入院,就诊号: VIS001
2026年1月23日 09:00 - 转科(MV|M6|C)[+19小时]
- USER003将患者转入神经科
2026年1月25日 18:00 - 出院(MV|M9|C)[+2天9小时]
- USER002办理出院,患者回家
总结:
- 就诊时长: 3天6小时
- 就诊VIS001已完成
- 涉及3名用户
- ✓ 逻辑序列正常
- ✓ 时间顺序正确
HL7等价序列: ADT^A28 → ADT^A28 → ADT^A01 → ADT^A02 → ADT^A03
undefinedQuick Reference
快速参考
Core Message Types
核心消息类型
Patient Administration (ID, MV, CV)
患者管理(ID、MV、CV)
| HPK Message | Full Name | Purpose | HL7 Equivalent |
|---|---|---|---|
| ID|M1|C/M/D | Patient Identity | Patient demographics and registration | ADT^A28/A31/A29 |
| ID|MT|C/M/D | Treating Physician | Assign/update médecin traitant | ADT^A28 |
| ID|CE|C/M/D | Informed Consent | Record patient consent | ADT^A28 |
| MV|M2|C/M/D | Admission | Hospital admission | ADT^A01 |
| MV|M3|C/M/D | Status Change | Administrative status change | ADT^A06 |
| MV|M6|C/M/D | Transfer | Unit/service transfer | ADT^A02 |
| MV|M8|C/M/D | Unit Exit | Exit from functional unit | ADT^A02 |
| MV|M9|C/M/D | Discharge | Hospital discharge | ADT^A03 |
| MV|B1|C/M/D | Box Movement | Emergency department box movement | ADT^A02 |
| MV|MT|C/M/D | Temporary Movement | Temporary movement (exam, procedure) | ADT^A09/A10 |
| CV|M1|C/M/D | Coverage | Insurance and coverage information | IN1/IN2 |
| HPK消息 | 全称 | 用途 | HL7等价 |
|---|---|---|---|
| ID|M1|C/M/D | 患者身份 | 患者人口统计与登记 | ADT^A28/A31/A29 |
| ID|MT|C/M/D | 主治医生 | 分配/更新主治医生 | ADT^A28 |
| ID|CE|C/M/D | 知情同意 | 记录患者同意情况 | ADT^A28 |
| MV|M2|C/M/D | 入院 | 医院入院 | ADT^A01 |
| MV|M3|C/M/D | 状态变更 | 管理状态变更 | ADT^A06 |
| MV|M6|C/M/D | 转科 | 单元/科室转科 | ADT^A02 |
| MV|M8|C/M/D | 单元出科 | 从功能单元出科 | ADT^A02 |
| MV|M9|C/M/D | 出院 | 医院出院 | ADT^A03 |
| MV|B1|C/M/D | 隔间流转 | 急诊隔间流转 | ADT^A02 |
| MV|MT|C/M/D | 临时流转 | 临时流转(检查、手术) | ADT^A09/A10 |
| CV|M1|C/M/D | 医保 | 保险和覆盖信息 | IN1/IN2 |
User Management (UT)
用户管理(UT)
| HPK Message | Full Name | Purpose |
|---|---|---|
| UT|A1|C/M/S | User Account | Create/modify/delete user accounts |
| HPK消息 | 全称 | 用途 |
|---|---|---|
| UT|A1|C/M/S | 用户账号 | 新建/修改/删除用户账号 |
Organizational Structure (ST)
组织架构(ST)
| HPK Message | Full Name | Purpose |
|---|---|---|
| ST|EJ|C/M | Legal Establishment | Établissement Juridique (legal entity) |
| ST|EG|C/M | Geographic Establishment | Établissement Géographique (physical site) |
| ST|BA|C/M/S | Building | Bâtiment (building structure) |
| ST|ET|C/M/S | Floor | Étage (floor level) |
| ST|CH|C/M/S | Room | Chambre/Pièce (room/space) |
| HPK消息 | 全称 | 用途 |
|---|---|---|
| ST|EJ|C/M | 法人机构 | 法律实体 |
| ST|EG|C/M | 地理机构 | 物理站点 |
| ST|BA|C/M/S | 楼宇 | 建筑结构 |
| ST|ET|C/M/S | 楼层 | 楼层级别 |
| ST|CH|C/M/S | 房间 | 房间/空间 |
Supply Chain - Products & Suppliers (PR, FO)
供应链 - 产品与供应商(PR、FO)
| HPK Message | Full Name | Purpose |
|---|---|---|
| PR|M0|C/M/S | Product - General Data | General product information |
| PR|M1|C/M/S | Product - Pharmacy Info | Pharmacy-specific product data |
| PR|M2|C/M/S | Product - Therapeutic Book | Therapeutic formulary information |
| PR|M3|C/M/S | Product - Accounting Info | Accounting and financial data |
| PR|M4|C/M/S | Product - Economic Info | Economic management information |
| PR|M5|C/M/S | Product - Store Info | Store/warehouse information |
| FO|M1|C/M/S | Supplier - General Info | General supplier information |
| FO|M2|C/M/S | Supplier - Bank Details | Bank domiciliation details |
| FO|M3|C/M/S | Supplier - Order Points | Order contact points |
| HPK消息 | 全称 | 用途 |
|---|---|---|
| PR|M0|C/M/S | 产品 - 通用数据 | 通用产品信息 |
| PR|M1|C/M/S | 产品 - 药房信息 | 药房专属产品数据 |
| PR|M2|C/M/S | 产品 - 治疗目录 | 治疗处方集信息 |
| PR|M3|C/M/S | 产品 - 财务信息 | 会计和财务数据 |
| PR|M4|C/M/S | 产品 - 经济信息 | 经济管理信息 |
| PR|M5|C/M/S | 产品 - 仓储信息 | 仓库/库房信息 |
| FO|M1|C/M/S | 供应商 - 通用信息 | 通用供应商信息 |
| FO|M2|C/M/S | 供应商 - 银行信息 | 银行账户信息 |
| FO|M3|C/M/S | 供应商 - 下单点 | 订单联系点 |
Supply Chain - Orders & Deliveries (MA, CO, LI, RO)
供应链 - 订单与配送(MA、CO、LI、RO)
| HPK Message | Full Name | Purpose |
|---|---|---|
| MA|M1|C/M/S | Market - Header | Contract/market header |
| MA|M2|C/M/S | Market - Lines | Contract/market line items |
| MA|M3|C/M/S | Market - Suppliers | Suppliers by market |
| CO|M1|C/M/S | Order - Header | Purchase order header |
| CO|M2|C/M/S | Order - Lines | Purchase order line items |
| LI|M1|C/M | Delivery - Lines | External delivery lines |
| LI|M2|C/M | Delivery - Lot Lines | Delivery lines with lot management |
| RO|M1|C/M/S | Reception - Lines | Reception lines |
| RO|M2|C/M | Reception - Lot Lines | Reception lines with lot management |
| HPK消息 | 全称 | 用途 |
|---|---|---|
| MA|M1|C/M/S | 集采 - 头部 | 合约/集采头部 |
| MA|M2|C/M/S | 集采 - 行 | 合约/集采行项 |
| MA|M3|C/M/S | 集采 - 供应商 | 集采对应供应商 |
| CO|M1|C/M/S | 订单 - 头部 | 采购订单头部 |
| CO|M2|C/M/S | 订单 - 行 | 采购订单行项 |
| LI|M1|C/M | 配送 - 行 | 外部配送行 |
| LI|M2|C/M | 配送 - 批次行 | 带批次管理的配送行 |
| RO|M1|C/M/S | 签收 - 行 | 签通行 |
| RO|M2|C/M | 签收 - 批次行 | 带批次管理的签通行 |
Financial (FA, RD)
财务(FA、RD)
| HPK Message | Full Name | Purpose |
|---|---|---|
| FA|FE|C | Invoice - Header | Facture Entête (invoice header) |
| FA|FL|C | Invoice - Lines | Facture Lignes (invoice line items) |
| RD|E1|C | Misc Receipt - Header | Recettes diverses header |
| RD|L1|C | Misc Receipt - Lines | Recettes diverses line items |
| HPK消息 | 全称 | 用途 |
|---|---|---|
| FA|FE|C | 发票 - 头部 | 发票头部 |
| FA|FL|C | 发票 - 行 | 发票行项 |
| RD|E1|C | 杂项收据 - 头部 | 杂项收据头部 |
| RD|L1|C | 杂项收据 - 行 | 杂项收据行项 |
Inventory & Stock (SO, IM)
库存与仓储(SO、IM)
| HPK Message | Full Name | Purpose |
|---|---|---|
| SO|S1|C | Stock Output | Sortie (stock withdrawal) |
| SO|I1|C | Inventory | Inventaire (stock count) |
| SO|T1|C | Stock Transfer | Transfert (internal transfer) |
| SO|L1|C | Pre-established Lists | Listes pré établies |
| IM|M1|C | Asset Inventory | Inventaire mobilier (asset tracking) |
| HPK消息 | 全称 | 用途 |
|---|---|---|
| SO|S1|C | 出库 | 库存领用 |
| SO|I1|C | 盘点 | 库存清点 |
| SO|T1|C | 库存调拨 | 内部调拨 |
| SO|L1|C | 预设清单 | 预制清单 |
| IM|M1|C | 资产盘点 | 资产跟踪 |
Requests (DD)
请求(DD)
| HPK Message | Full Name | Purpose |
|---|---|---|
| DD|M1|C | Identity Request | Demande de création identité |
| DD|K1|C | Act Request | Demande de création acte |
| HPK消息 | 全称 | 用途 |
|---|---|---|
| DD|M1|C | 身份请求 | 身份创建请求 |
| DD|K1|C | 服务请求 | 服务创建请求 |
Operation Modes
操作模式
| Mode | French | English | Description |
|---|---|---|---|
| C | Création | Creation | Create new record |
| M | Modification | Modification | Update existing record |
| S | Suppression | Deletion | Delete/remove record |
| D | Deletion | Deletion | Delete (alternate notation) |
| 模式 | 法语 | 中文 | 描述 |
|---|---|---|---|
| C | Création | 新建 | 创建新记录 |
| M | Modification | 修改 | 更新现有记录 |
| S | Suppression | 删除 | 删除/移除记录 |
| D | Deletion | 删除 | 删除(替代写法) |
Common Field Patterns
通用字段模式
Standard Header (all messages):
Type|Message|Mode|Emetteur|Date|User|...Date Formats:
- Short date: (e.g.,
YYYYMMDD)20260122 - Full timestamp: (e.g.,
YYYYMMDDHHMISSnn)20260122140530 - nn = centiseconds (1/100 second)
Gender Codes:
- = Male (Masculin)
M - = Female (Féminin)
F - = Unknown (Inconnu)
U
French Administrative Terms:
- IPP = Identifiant Permanent du Patient (Patient Permanent ID)
- INS = Identifiant National de Santé (National Health ID)
- NIR = Numéro d'Inscription au Répertoire (Social Security Number)
- UF = Unité Fonctionnelle (Functional Unit)
- FINESS = Fichier National des Établissements Sanitaires et Sociaux
- CPAM = Caisse Primaire d'Assurance Maladie (Health Insurance Fund)
- ALD = Affection Longue Durée (Long-term Condition)
- CMU = Couverture Maladie Universelle (Universal Health Coverage)
标准头部(所有消息):
Type|Message|Mode|Emetteur|Date|User|...日期格式:
- 短日期: (如
YYYYMMDD)20260122 - 完整时间戳: (如
YYYYMMDDHHMISSnn)20260122140530 - nn = 厘秒(1/100秒)
性别编码:
- = 男(Masculin)
M - = 女(Féminin)
F - = 未知(Inconnu)
U
法国医疗术语:
- IPP = Identifiant Permanent du Patient(患者永久标识)
- INS = Identifiant National de Santé(国家健康ID)
- NIR = Numéro d'Inscription au Répertoire(社保号)
- UF = Unité Fonctionnelle(功能单元)
- FINESS = 法国医疗社会机构国家编码库
- CPAM = 初级医保基金(法国国家医保经办机构)
- ALD = 长期慢性病
- CMU = 全民医保覆盖