The BLC (Blood Code) segment carries the blood-product detail needed to charge for a blood transfusion or blood-product issue. It pairs a blood product code with an amount, so that a financial message can record exactly which blood product was used and in what quantity for billing purposes. It is a compact, special-purpose financial segment used in the context of blood-bank charging.
The BLC segment has just two fields, but both are load-bearing: Blood Product Code (BLC-1) identifies the product, and Blood Amount (BLC-2) quantifies it.
Purpose
The BLC segment exists to attach blood-product charge detail to a financial transaction. It does the following:
- Identifies the specific blood product being charged.
- Records the amount of that blood product used or issued.
- Supplies the granularity a billing system needs to generate an accurate blood-product charge.
BLC carries neither price nor account — those come from the surrounding financial transaction and charge-master resolution. It supplies the clinical-financial fact of what blood product, and how much, was involved.
Used in
BLC (Blood Code) carries blood-product charge data in BAR/DFT financial messages. It appears in the financial-transaction context where a blood product needs to be itemized for billing, accompanying the financial-transaction detail that records the charge. It is used where blood-bank charges flow into the patient-accounting or detailed-financial-transaction stream.
Typical placement in a financial-transaction context:
- FT1 (Financial Transaction) — the financial transaction detail
- BLC (Blood Code) — blood-product code and amount for that transaction
Field-by-field reference
Source: HAPI HL7v2 v2.5.1 javadocs (BLC). Length —; Required and Table # from the HL7 v2.5.1 standard where well-established.
| Seq | Name | Data Type | Length | Req | Repeat | Table # | Description |
|---|---|---|---|---|---|---|---|
| BLC-1 | Blood Product Code | ce | — | O | — | HL70426 | Code identifying the blood product |
| BLC-2 | Blood Amount | cq | — | O | — | — | Quantity of the blood product |
Most-used fields
- BLC-1 Blood Product Code is the identity of the product being charged and the key the billing system uses to resolve a charge-master entry.
- BLC-2 Blood Amount quantifies the product (for example a number of units or a volume) and drives the multiplier on the resolved price.
Both fields are normally sent together; a Blood Product Code with no amount, or an amount with no product code, is rarely useful to a billing receiver.
Version differences (2.3 to 2.8.2)
- BLC is a specialized blood-bank financial segment introduced in the blood-bank message work; the two-field shape of Blood Product Code plus Blood Amount has been stable in the v2.4 and v2.5/2.5.1 releases where it appears.
- The CQ type used for Blood Amount carries a quantity and an associated units component; this structure is unchanged across the versions in which BLC is defined.
- In v2.6 through v2.8.2 the segment retains both fields in the same order with no deprecations.
- Because BLC is narrow and special-purpose, support varies by receiving system more than by HL7 version; not every vendor implements it even when their version nominally includes it.
Common mistakes
- Sending Blood Amount (BLC-2) without its units component, leaving the receiver to guess whether the value is units, milliliters, or something else.
- Sending a Blood Product Code (BLC-1) without an amount and expecting the receiver to default a quantity of one.
- Assuming BLC carries a price — it does not; the charge is resolved downstream from the product code and amount.
- Treating BLC as repeating; in v2.5.1 it is a single, non-repeating segment, so multiple products require separate transaction contexts.
- Using a local blood-product code without a coding system in BLC-1, which prevents the receiver from mapping it to a charge.
- Confusing BLC with BLG. BLC itemizes a blood product for charging; BLG carries general billing instructions on an order.
Examples
Minimal BLC (product code only):
BLC|PRBC^Packed Red Blood Cells^HL70426
Fully populated BLC:
BLC|PRBC^Packed Red Blood Cells^HL70426|2^units^HL70126
Annotated breakdown of the fully populated example:
BLC-1 Blood Product Code PRBC^Packed Red Blood Cells^HL70426 (packed red blood cells)
BLC-2 Blood Amount 2^units^HL70126 (two units)
In-context excerpt 1 — BLC following an FT1 in a DFT blood-product charge:
MSH|^~&|BLOODBANK|MERCYGEN|PATACCT|MERCYGEN|20260610120000||DFT^P03^DFT_P03|MSG00845|P|2.5.1
PID|1||MRN778412^^^MERCYGEN^MR||Rivera^Daniela^A||19840312|F
FT1|1|TXN-330118|||20260610120000||CG|PRBC^Packed Red Blood Cells^L|||2|||BB^Blood Bank^L
BLC|PRBC^Packed Red Blood Cells^HL70426|2^units^HL70126
In-context excerpt 2 — BLC in a BAR patient-accounting blood-product charge context:
MSH|^~&|BLOODBANK|MERCYGEN|PATACCT|MERCYGEN|20260610124500||BAR^P01^BAR_P01|MSG00846|P|2.5.1
PID|1||MRN778412^^^MERCYGEN^MR||Rivera^Daniela^A||19840312|F
FT1|1|TXN-330122|||20260610124500||CG|FFP^Fresh Frozen Plasma^L|||1|||BB^Blood Bank^L
BLC|FFP^Fresh Frozen Plasma^HL70426|1^units^HL70126
FHIR mapping
BLC is not mapped at the segment level. No segment-level ConceptMap is published in the v2-to-FHIR Implementation Guide for BLC. Conceptually, a BLC blood-product charge corresponds most closely to a FHIR ChargeItem for a blood product, where Blood Product Code maps to ChargeItem.code and Blood Amount maps to ChargeItem.quantity. Because the published IG does not define a normalized field-by-field mapping for BLC, any such projection is an integration design decision rather than a standard transform.
Engine considerations
- BLC is narrow and not universally supported; confirm the receiving system consumes it before relying on it, and have a fallback (such as itemizing the product in FT1) where it does not.
- The CQ type in BLC-2 carries a quantity plus a units component; parse and preserve the units so the downstream multiplier is correct.
- Keep BLC bound to the financial transaction it itemizes so the product detail is not separated from its charge.
- Validate Blood Product Code (BLC-1) against the blood-product vocabulary and require a coding system so the receiver can resolve a charge.
- Because BLC does not repeat, model multiple blood products as separate transactions rather than packing them into one segment.
How Vorro parses and produces BLC
When consuming a BAR or DFT message, Vorro binds each BLC to the financial transaction it accompanies, decomposing Blood Amount (BLC-2) into its numeric quantity and units component and validating Blood Product Code (BLC-1) against the blood-product vocabulary. The product code and amount are carried together so downstream charge resolution can compute an accurate blood-product charge.
When producing BLC, Vorro emits it only where a blood product must be itemized for charging, populating both the product code (with an explicit coding system) and the amount with its units. Each blood product is emitted in its own transaction context rather than packed into a single segment, and BLC is kept adjacent to its financial-transaction detail so receivers can associate the product with the correct charge.
