Skip to main content

Crate hl7v2_datetime

Crate hl7v2_datetime 

Source
Expand description

HL7 v2 date/time parsing and validation.

This crate provides comprehensive date/time handling for HL7 v2 messages, supporting various HL7 timestamp formats and precision levels.

§Supported Formats

  • DT (Date): YYYYMMDD
  • TM (Time): HHMM[SS[.S[S[S[S]]]]]
  • TS (Timestamp): YYYYMMDD[HHMM[SS[.S[S[S[S]]]]]]

§Example

use hl7v2_datetime::{parse_hl7_ts, parse_hl7_dt, parse_hl7_tm, parse_hl7_ts_with_precision, TimestampPrecision};
use chrono::Datelike;

// Parse date (DT)
let date = parse_hl7_dt("20250128").unwrap();
assert_eq!(date.year(), 2025);
assert_eq!(date.month(), 1);
assert_eq!(date.day(), 28);

// Parse timestamp (TS) with precision
let ts = parse_hl7_ts_with_precision("20250128152312").unwrap();
assert_eq!(ts.precision, TimestampPrecision::Second);

// Compare timestamps with different precisions
let ts1 = parse_hl7_ts_with_precision("20250128").unwrap();
let ts2 = parse_hl7_ts_with_precision("20250128120000").unwrap();
assert!(ts1.is_same_day(&ts2));

Structs§

ParsedTimestamp
Parsed HL7 timestamp with precision information

Enums§

DateTimeError
Error type for date/time parsing
TimestampPrecision
Precision levels for HL7 timestamps

Functions§

is_valid_hl7_date
Check if a string is a valid HL7 date (DT)
is_valid_hl7_time
Check if a string is a valid HL7 time (TM)
is_valid_hl7_timestamp
Check if a string is a valid HL7 timestamp (TS)
now_hl7
Get current timestamp in HL7 format
parse_hl7_dt
Parse HL7 date (DT format: YYYYMMDD)
parse_hl7_tm
Parse HL7 time (TM format: HHMM[SS[.S…]])
parse_hl7_ts
Parse HL7 timestamp (TS format: YYYYMMDD[HHMM[SS[.S…]]])
parse_hl7_ts_with_precision
Parse HL7 timestamp with precision information
today_hl7
Get current date in HL7 format