AnpherosAnpheros PlatformDevelopers

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

HL7 v2에서 FHIR로 매핑

HL7 v2 ORU^R01에서 FHIR R4로의 세그먼트-리소스 및 OBX 필드별 매핑, 통합을 방해하는 함정, HTTPS를 통해 호출할 수 있는 변환기.

HL7 v2를 FHIR로 매핑한다는 것은 파이프 구분 v2 메시지의 각 세그먼트를 FHIR R4 리소스로 변환하는 것을 의미합니다. PID는 Patient로, OBR은 DiagnosticReport(또는 ServiceRequest)로, 각 OBX는 Observation으로 변환되며, 코드, 단위, 범위 및 시간은 필드별로 전달됩니다. HL7은 일반적인 세그먼트에 대한 개념 맵을 포함하는 공식 V2-to-FHIR 구현 가이드를 게시합니다. 이 페이지에서는 실험실 결과(ORU^R01)에 대한 실제 매핑, 실제 통합을 방해하는 함정, 그리고 HTTPS를 통해 호출할 수 있는 컨버터인 Anpheros lab connector에 대해 설명합니다.

An ORU^R01 message becoming FHIR
  1. MSHSeparators, message type, message id → MessageHeader or provenance
  2. PIDPatient identity → Patient (or, in Anpheros, the patient in the URL)
  3. OBRThe order and report → DiagnosticReport, report id and date
  4. OBXOne result each → Observation with LOINC, value, range, flag
  5. FHIR recordCoded, versioned resources your apps can read

세그먼트를 리소스로 변환

HL7 v2 세그먼트 전달 내용 FHIR R4 리소스 Anpheros 랩 커넥터에서의 처리
MSH 구분자, 전송 시스템, 메시지 유형, 메시지 ID MessageHeader (또는 provenance) MSH에서 구분자 읽기; ORU^R01에 대한 유형 확인; 추적성을 위해 메시지 ID 유지
PID 환자 식별자, 이름, 생년월일, 성별 Patient 사용 안 함: 환자는 요청 URL에 있는 환자이므로, 메시지가 잘못된 레코드에 기록될 수 없음
PV1 방문 정보 Encounter 사용 안 함
ORC / OBR 주문 및 보고: filler/placer ID, 날짜 ServiceRequest, DiagnosticReport OBR-3 (또는 OBR-2)는 보고서 ID, OBR-7은 기본 날짜
OBX 단일 결과 Observation OBX당 하나의 실험실 관찰(Observation)
NTE 자유 텍스트 메모 Observation.note 사용 안 함

OBX 필드별 설명

OBX 필드 FHIR Observation 요소 비고
OBX-2 value type (NM, SN, ST, CWE) value[x] 선택 NM 및 SN은 valueQuantity으로 변환되며, 텍스트는 그대로 유지됩니다.
OBX-3 identifier code^text^system code.coding OBX-3.3의 LN은 LOINC를 의미하며, 다른 시스템은 해당 실험실의 로컬 코드입니다.
OBX-5 value, OBX-6 unit valueQuantity.value, .unit / .code (UCUM) <5 및 6,4은 의도적으로 파싱해야 합니다.
OBX-7 reference range referenceRange.low / .high 3.5-5.1, <200, >40
OBX-8 abnormal flag interpretation H, L, HH, LL, A, N
OBX-11 result status status F → final, C → amended, P → preliminary, I → registered
OBX-14 observation time effectiveDateTime v2 시간 정보에는 종종 시간대가 누락되어 있습니다. FHIR는 시간대를 요구합니다.

하나의 요청으로 메시지 변환

curl -X POST "https://platform.anpheros.com/v1/patients/$PID/labs/import" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: x-application/hl7-v2+er7" \
  -H "Idempotency-Key: $(uuidgen)" \
  --data-binary @oru_r01.hl7

응답은 생성된 Observation 수, 이미 가져온 것으로 건너뛴 수, 매핑할 수 없었던 마커, 그리고 코드와 함께 새로 생성된 Observation을 나열합니다. 각 Observation은 보고서, 테스트, 시간 및 값에서 파생된 안정적인 식별자를 받으므로, 동일한 메시지를 다시 보내는 실험실은 중복을 생성하지 않습니다.

실제 통합을 방해하는 함정

  1. 시간대. 20261002074500에는 오프셋이 없습니다. 발신자의 시간대를 명시적으로 결정하십시오.
  2. 로컬 코드. LOINC가 없는 경우 실험실 자체 코드를 유지하십시오. 절대 삭제하지 마십시오.
  3. 재전송. 결과당 안정적인 식별자가 없으면 재시도가 중복이 됩니다.
  4. 수정. OBX-11 C은 수정입니다. 대체할지 추가할지 결정하고 이전 결과를 표시하십시오.
  5. 비수치 값. positive, <5, 6,4은 추측이 아닌 명시적인 규칙이 필요합니다.

커넥터의 기능 범위

이 커넥터는 HTTPS를 통해 ORU^R01 형식의 검사 결과를 수신합니다. ADT 또는 오더 메시지는 수신하지 않으며, TCP를 통한 MLLP 통신(앞단의 인터페이스 엔진이 전달 가능)을 지원하지 않습니다. DiagnosticReport를 생성하지 않으며, PID를 통한 환자 매칭도 수행하지 않습니다.

자주 묻는 질문

HL7 v2를 FHIR로 어떻게 매핑하나요?

세그먼트별로 매핑합니다: PID는 Patient, PV1은 Encounter, ORC/OBR은 ServiceRequest 및 DiagnosticReport, OBX는 Observation, NTE는 notes에 해당합니다. HL7의 V2-to-FHIR 구현 가이드에서 필드 수준 개념 매핑을 정의합니다.

HL7 v2를 FHIR로 변환하는 도구가 있나요?

네. 인터페이스 엔진과 오픈 소스 라이브러리가 메시지를 변환합니다. 실험실 결과의 경우, Anpheros 실험실 커넥터는 ORU^R01 메시지를 하나의 HTTPS 요청으로 FHIR R4 Observations로 변환하여 환자의 기록에 저장합니다.

Anpheros는 어떤 HL7 v2 메시지 유형을 지원하나요?

ORU^R01 실험실 결과. 다른 유형의 메시지는 경고가 표시되며 OBX 세그먼트만 읽습니다. ADT, 주문 및 기타 메시지는 지원되지 않습니다.

HL7 v2 비정상 플래그는 FHIR에서 어떻게 표현되나요?

OBX-8은 HL7 ObservationInterpretation 코드(H, L, HH, LL, A, N)를 사용하여 Observation.interpretation로 변환됩니다.

관련 자료

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Product updates by email

New features, guides and the end of the beta. One email a month at most.

Send me occasional Anpheros Platform updates by email (new features, API changes, guides). I'll confirm by email and can unsubscribe in one click from any email. Privacy