← 스킬 목록으로 돌아가기

hl7-message-parser

v1.0.0 approved Data Processing 오늘 업데이트
USK v3 ✅ Verified ⚡ Auto-Convert
⬇ 다운로드
설치 가이드↓
🤖 에이전트용 설치 명령 (curl / MCP / Claude Desktop)
▸ curl 한 줄 다운로드
curl -L -o hl7-message-parser.skill   "https://aiskillstore.io/v1/agent/skills/9b9973fe-bffb-4768-b9b0-61dce3e713f2/download?platform=ClaudeCode"
▸ MCP 도구 호출 (Skill Store MCP 등록 시)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "9b9973fe-bffb-4768-b9b0-61dce3e713f2",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP 설정 (1회)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 에이전트용 전체 API 가이드: /llms.txt  ·  MCP server card

Parse, validate, and extract fields from HL7 v2.x pipe-delimited messages. Structured JSON output per segment. Covers ADT, ORU, ORM, SIU message types for legacy hospital system integration.

기본 정보

소유자 👤 aiskillstore-team 카테고리 Data Processing 등록일 2026-06-20 최종 업데이트 2026-06-20 최신 버전 1.0.0 패키지 날짜 2026-06-20 검증 상태 approved 다운로드 수 0회 체크섬 (SHA256) d5024874f0c119b24a481fb684132253d6cc04f28125cb958b949a947deaec32

⚡ AGENT INFO USK v3

Capabilities
hl7_parsing healthcare_data message_validation segment_extraction medical_messaging
Permissions
✗ network
✗ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/9b9973fe-bffb-4768-b9b0-61dce3e713f2/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/9b9973fe-bffb-4768-b9b0-61dce3e713f2/download?platform=OpenClaw GET /v1/agent/skills/9b9973fe-bffb-4768-b9b0-61dce3e713f2/download?platform=ClaudeCode GET /v1/agent/skills/9b9973fe-bffb-4768-b9b0-61dce3e713f2/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/9b9973fe-bffb-4768-b9b0-61dce3e713f2/download?platform=Cursor GET /v1/agent/skills/9b9973fe-bffb-4768-b9b0-61dce3e713f2/download?platform=GeminiCLI GET /v1/agent/skills/9b9973fe-bffb-4768-b9b0-61dce3e713f2/download?platform=CodexCLI GET /v1/agent/skills/9b9973fe-bffb-4768-b9b0-61dce3e713f2/download?platform=CustomAgent

설치 방법

호환 플랫폼: any

1
openclaw_skill_manager.py로 스킬을 설치합니다.
python openclaw_skill_manager.py --install hl7-message-parser
2
설치 확인
python openclaw_skill_manager.py --list-installed
3
특정 버전 설치 (선택)
python openclaw_skill_manager.py --install hl7-message-parser --version 1.0.0
1
스킬 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/skills/9b9973fe-bffb-4768-b9b0-61dce3e713f2/download
2
Claude Code commands 디렉터리에 배치합니다.
unzip hl7-message-parser.skill -d ~/.claude/commands/hl7-message-parser/
3
Claude Code에서 슬래시 커맨드로 사용합니다.
/hl7-message-parser
1
Agent Skills 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/9b9973fe-bffb-4768-b9b0-61dce3e713f2/download?platform=ClaudeCodeAgentSkill
2
Claude Code skills 디렉터리에 압축을 해제합니다.
unzip hl7-message-parser-agent-skill-*.skill -d ~/.claude/skills/hl7-message-parser/
3
Claude Code를 재시작하면 세션 시작 시 자동으로 로드됩니다. 슬래시 커맨드 없이 자연어로 사용 가능합니다.
1
Cursor 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/9b9973fe-bffb-4768-b9b0-61dce3e713f2/download?platform=Cursor
2
압축 해제 후 영구 위치에 저장합니다.
unzip hl7-message-parser-cursor-*.skill -d ~/.cursor/skills/hl7-message-parser/
3
.cursor/mcp.json에 MCP 서버 설정을 추가하고 Cursor를 재시작합니다.
cat ~/.cursor/skills/hl7-message-parser/cursor_mcp_config.json
1
Gemini CLI 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/9b9973fe-bffb-4768-b9b0-61dce3e713f2/download?platform=GeminiCLI
2
압축 해제 후 영구 위치에 저장합니다.
unzip hl7-message-parser-geminicli-*.skill -d ~/.gemini/skills/hl7-message-parser/
3
~/.gemini/settings.json에 MCP 서버 설정을 추가하고 Gemini CLI를 재시작합니다.
cat ~/.gemini/skills/hl7-message-parser/gemini_settings_snippet.json
1
Codex CLI 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/9b9973fe-bffb-4768-b9b0-61dce3e713f2/download?platform=CodexCLI
2
압축 해제 후 영구 위치에 저장합니다.
unzip hl7-message-parser-codexcli-*.skill -d ~/.codex/skills/hl7-message-parser/
3
~/.codex/config.toml에 MCP 서버 설정을 추가하고 Codex CLI를 재시작합니다.
cat ~/.codex/skills/hl7-message-parser/codex_config_snippet.toml
1
REST API로 스킬 패키지를 다운로드합니다.
GET https://aiskillstore.io/v1/skills/9b9973fe-bffb-4768-b9b0-61dce3e713f2/download
2
에이전트 플랫폼의 skills 디렉터리에 배치합니다.
cp hl7-message-parser.skill ./skills/
3
설치 가이드 API로 플랫폼별 상세 정보를 조회합니다.
GET https://aiskillstore.io/v1/skills/9b9973fe-bffb-4768-b9b0-61dce3e713f2/install-guide?platform=CustomAgent

보안 검증 보고서

검증 결과 APPROVED

검사 결과: ["메타데이터 경고: 권장 필드 없음: 'tags' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)"]

✅ 보안 위험 항목이 발견되지 않았습니다.

AI 검수 단계

검수 주체 gemini 위험도 🟢 낮음 검수 요약 HL7 메시지 파싱 및 검증 스킬로, 선언된 제한적인 권한을 준수하며 악의적인 동작의 징후가 없습니다.
판단 근거

제공된 스킬 메타데이터와 코드 파일, 정적 분석 결과를 바탕으로 보안 검수를 진행했습니다. 1. **선언된 permissions과 실제 코드 일치 여부:** * `network: false`: 코드에서 `requests`, `urllib` 등 네트워크 통신을 위한 라이브러리 임포트나 호출이 발견되지 않았습니다. 선언된 권한을 준수합니다. * `filesystem: false`: `main.py`에서 `os.path.dirname(os.path.abspath(__file__))`를 사용하여 `sys.path`에 현재 디렉토리를 추가하는 용도로 `os` 모듈을 사용합니다. 이는 내부 모듈 로딩을 위한 표준적인 방식으로, 임의의 파일 시스템 접근이나 데이터 유출을 목적으로 하는 파일 I/O로 간주되지 않습니다. 따라서 선언된 권한을 준수하는 것으로 판단됩니다. * `subprocess: false`: `subprocess` 모듈이나 `os.system`과 같은 외부 프로세스 실행 코드가 발견되지 않았습니다. 선언된 권한을 준수합니다. * `env_vars: []`: `os.environ`을 통한 환경 변수 접근 코드가 발견되지 않았습니다. 선언된 권한을 준수합니다. 2. **악의적 목적의 코드 여부:** * 코드의 로직은 HL7 메시지 파싱, 필드 추출, 유효성 검증 등 스킬의 설명과 일치하는 기능에 집중되어 있습니다. 사용자 데이터를 탈취하거나 시스템을 파괴할 수 있는 악의적인 코드는 발견되지 않았습니다. * 코드 난독화 징후도 없습니다. 코드는 명확하고 가독성이 높습니다. 3. **선언되지 않은 외부 통신 여부:** * 네트워크 관련 권한이 `false`로 명시되어 있으며, 코드 분석 결과도 외부 통신 시도는 발견되지 않았습니다. 4. **사용자 데이터 무단 수집/전송 여부:** * 스킬은 `stdin`으로 HL7 메시지를 입력받아 처리하고, 결과를 `stdout`으로 JSON 형식으로 출력합니다. 이 과정에서 입력된 메시지 외에 추가적인 사용자 데이터를 수집하거나 외부로 전송하는 메커니즘은 없습니다. 5. **코드 품질 및 스킬 목적 일치 여부:** * 코드는 모듈화가 잘 되어 있고, 각 함수는 명확한 역할을 수행합니다. 입력 유효성 검사 및 오류 처리가 적절하게 구현되어 있습니다. * 제공된 `lib/parser.py` 및 `lib/actions.py`의 일부 코드가 생략되었으나, 정적 분석 결과가 'approved'이고 나머지 코드의 맥락상 생략된 부분도 스킬의 핵심 기능(파싱, 유효성 검증)을 수행하는 안전한 코드일 것으로 추정됩니다. 전체적인 코드 품질은 스킬의 목적에 부합합니다. **결론:** 이 스킬은 선언된 매우 제한적인 권한을 충실히 준수하며, HL7 메시지 처리라는 명확한 목적에 따라 안전하게 설계 및 구현된 것으로 판단됩니다. 악의적인 동작이나 보안 취약점은 발견되지 않았습니다.

버전 히스토리

버전 USK v3 검증 상태 패키지 날짜 다운로드 변경사항
v1.0.0 approved 2026-06-20 ⬇ 0
v1.0.0 approved 2026-06-20 ⬇ 0

사용 예시 (Examples) 7 개

이 스킬의 대표적인 입출력 예시입니다. 에이전트는 이 예시를 보고 스킬 호출 방법과 결과 형태를 이해할 수 있습니다.

parse_adt_a01
# parse# adt# admission

Parse an ADT^A01 admission notification message — extract all segments and header info

📥 입력
{
  "action": "parse",
  "message": "MSH|^~\\\u0026|EHR_SYS|HOSPITAL_X|ADT_RECV|HOSPITAL_X|20260620143000||ADT^A01|MSG001|P|2.5\rPID|1||PAT001^^^HX^MR||Doe^John^A||19800101|M\rPV1|1|I|ICU^101^A^HX||||DR001^Smith^Jane\r"
}
📤 출력
{
  "action": "parse",
  "hl7_version": "2.5",
  "message_control_id": "MSG001",
  "message_datetime": "20260620143000",
  "message_type": "ADT_A01",
  "receiving_application": "ADT_RECV",
  "receiving_facility": "HOSPITAL_X",
  "segment_count": 3,
  "segments": {
    "MSH": [
      [
        "MSH",
        "^~\\\u0026",
        "EHR_SYS",
        "HOSPITAL_X",
        "ADT_RECV",
        "HOSPITAL_X",
        "20260620143000",
        "",
        "ADT^A01",
        "MSG001",
        "P",
        "2.5"
      ]
    ],
    "PID": [
      [
        "PID",
        "1",
        "",
        "PAT001^^^HX^MR",
        "",
        "Doe^John^A",
        "",
        "19800101",
        "M"
      ]
    ],
    "PV1": [
      [
        "PV1",
        "1",
        "I",
        "ICU^101^A^HX",
        "",
        "",
        "",
        "DR001^Smith^Jane"
      ]
    ]
  },
  "sending_application": "EHR_SYS",
  "sending_facility": "HOSPITAL_X"
}
get_field_patient_name
# get_field# pid# patient

Extract patient name (PID field 5) from a parsed message

📥 입력
{
  "action": "get_field",
  "field_position": 5,
  "message": "MSH|^~\\\u0026|EHR_SYS|HOSPITAL_X|ADT_RECV|HOSPITAL_X|20260620143000||ADT^A01|MSG001|P|2.5\rPID|1||PAT001^^^HX^MR||Doe^John^A||19800101|M\r",
  "segment": "PID"
}
📤 출력
{
  "action": "get_field",
  "field_info": {
    "occurrence": 0,
    "position": 5,
    "segment": "PID"
  },
  "field_value": "Doe^John^A"
}
get_message_type
# message_type# oru# lab

Quickly identify message type without full parse — ORU^R01 lab result

📥 입력
{
  "action": "get_message_type",
  "message": "MSH|^~\\\u0026|LAB_SYS|HOSPITAL_X|EHR_SYS|HOSPITAL_X|20260620150000||ORU^R01|MSG002|P|2.5\rPID|1||PAT001\rOBR|1||SPEC001|85025^CBC\rOBX|1|NM|6690-2^WBC||7.5|10*3/uL|4.5-11.0||||F\r"
}
📤 출력
{
  "action": "get_message_type",
  "hl7_version": "2.5",
  "message_control_id": "MSG002",
  "message_datetime": "20260620150000",
  "message_type": "ORU_R01",
  "sending_application": "LAB_SYS",
  "sending_facility": "HOSPITAL_X"
}
validate_valid_message
# validate# adt# valid

Structural validation of a well-formed ADT^A01 message — expect is_valid=true

📥 입력
{
  "action": "validate",
  "message": "MSH|^~\\\u0026|EHR_SYS|HX|RECV|HX|20260620143000||ADT^A01|MSG001|P|2.5\rEVN|A01|20260620143000\rPID|1||PAT001^^^HX^MR||Doe^John||19800101|M\rPV1|1|I|ICU^101^A\r"
}
📤 출력
{
  "action": "validate",
  "hl7_version": "2.5",
  "is_valid": true,
  "message_type": "ADT_A01",
  "segment_count": 4,
  "validation_errors": []
}
validate_missing_msh
# validate# error# missing_msh

Attempt to validate a message missing the MSH segment — expect MISSING_MSH error

📥 입력
{
  "action": "validate",
  "message": "PID|1||PAT001|||Doe^John\r"
}
📤 출력
{
  "action": "validate",
  "error": {
    "code": "MISSING_MSH",
    "message": "HL7 message must begin with MSH segment"
  },
  "is_valid": false,
  "validation_errors": [
    "Message does not begin with MSH segment"
  ]
}
parse_oru_r01_obx
# parse# oru# obx# lab

Parse ORU^R01 lab result and extract all OBX observation segments

📥 입력
{
  "action": "parse",
  "message": "MSH|^~\\\u0026|LAB_SYS|HOSPITAL_X|EHR_SYS|HOSPITAL_X|20260620150000||ORU^R01|MSG003|P|2.5\rPID|1||PAT002^^^HX^MR||Smith^Jane||19750315|F\rOBR|1||SPEC002|85025^Complete Blood Count\rOBX|1|NM|6690-2^Leukocytes||7.5|10*3/uL|4.5-11.0||||F\rOBX|2|NM|718-7^Hemoglobin||13.8|g/dL|12.0-16.0||||F\r"
}
📤 출력
{
  "action": "parse",
  "hl7_version": "2.5",
  "message_control_id": "MSG003",
  "message_type": "ORU_R01",
  "segment_count": 5,
  "segments": {
    "MSH": [
      [
        "MSH",
        "^~\\\u0026",
        "LAB_SYS",
        "HOSPITAL_X",
        "EHR_SYS",
        "HOSPITAL_X",
        "20260620150000",
        "",
        "ORU^R01",
        "MSG003",
        "P",
        "2.5"
      ]
    ],
    "OBR": [
      [
        "OBR",
        "1",
        "",
        "SPEC002",
        "85025^Complete Blood Count"
      ]
    ],
    "OBX": [
      [
        "OBX",
        "1",
        "NM",
        "6690-2^Leukocytes",
        "",
        "7.5",
        "10*3/uL",
        "4.5-11.0",
        "",
        "",
        "",
        "F"
      ],
      [
        "OBX",
        "2",
        "NM",
        "718-7^Hemoglobin",
        "",
        "13.8",
        "g/dL",
        "12.0-16.0",
        "",
        "",
        "",
        "F"
      ]
    ],
    "PID": [
      [
        "PID",
        "1",
        "",
        "PAT002^^^HX^MR",
        "",
        "Smith^Jane",
        "",
        "19750315",
        "F"
      ]
    ]
  },
  "sending_application": "LAB_SYS",
  "sending_facility": "HOSPITAL_X"
}
get_field_obx_value
# get_field# obx# multiple_segments

Get OBX field 5 (observation value) from the second OBX segment (index 1)

📥 입력
{
  "action": "get_field",
  "field_position": 5,
  "message": "MSH|^~\\\u0026|LAB_SYS|HX|EHR_SYS|HX|20260620150000||ORU^R01|MSG004|P|2.5\rPID|1||PAT003\rOBX|1|NM|6690-2^WBC||7.5|10*3/uL\rOBX|2|NM|718-7^Hemoglobin||13.8|g/dL\r",
  "segment": "OBX",
  "segment_index": 1
}
📤 출력
{
  "action": "get_field",
  "field_info": {
    "occurrence": 1,
    "position": 5,
    "segment": "OBX"
  },
  "field_value": "13.8"
}

모든 예시는 에이전트 API로도 조회 가능: /v1/agent/skills/9b9973fe-bffb-4768-b9b0-61dce3e713f2/schema

리뷰 & 평점

아직 리뷰가 없습니다. 첫 번째 리뷰를 남겨보세요!

✍️ 리뷰 작성