HL7 MFR_M04 Charge Description Master File Response

HL7 message structure MFR_M04 groups and segments from HL7 v2.5.1 Hide structure

These are the generated groups and segments for the version selected at the top of the page. The article explains the workflow, and this panel follows the chosen HL7 version.

Message Structure

SegmentNameRequiredRepeatable
Message Header Yes No
Software Segment No Yes
Message Acknowledgment Yes No
Error No Yes
Query Acknowledgment No No
Original-Style Query Definition Yes No
Original style query filter No No
Master File Identification Yes No
MFR_M04.MF_QUERY
Mf Query group Yes Yes
Master File Entry Yes No
Charge Description Master Yes No
Pricing No Yes
Continuation Pointer No No

MFR_M04 returns charge description master records in response to a master-file query. It is the response side of the older MFQ_M01/MFR pattern, using original-style query segments rather than the newer QBP/RSP style.

If MFN_M04 is a push notification, MFR_M04 is the pull answer: "here are the CDM records that match your query."

A small MFR M04 example

MSH|^~\&|BILLING|CITYHOSP|CATALOG|CITYHOSP|20260722123000||MFR^M04^MFR_M04|MFR040001|P|2.5.1 MSA|AA|MFQ040001 QAK|Q040001|OK|MFQ^Master file query^HL70471|1|1|0 QRD|20260722122900|R|I|Q040001|||1^RD|CATALOG^Charge master query|MFQ^Master file query^HL7|LABGLU^Glucose serum charge^L|R MFI|CDM^Charge description master^HL70175|BILLING^CITYHOSP|UPD|20260722100000|20260722103000|AL MFE|MAD|MFQ040001|20260722103000|LABGLU^Glucose serum charge^L|CE CDM|LABGLU^Glucose serum charge^L|GLU^Glucose^L|Glucose Serum|Serum glucose laboratory charge|||82947^Glucose quantitative^CPT|A PRC|LABGLU^Glucose serum charge^L|CITYHOSP^City Hospital^L|LAB^Laboratory^L|O|45.00^USD|STANDARD

What workflow it represents

A receiver asks for one or more charge master records. The owner responds with MFR_M04, acknowledging the query and returning matching charge descriptions and optional pricing rows.

This pattern is useful for legacy systems that query reference data on demand instead of receiving a scheduled MFN feed. In modern projects I would still ask whether a push feed or a newer query profile is easier to operate.

How to read the structure

MSH identifies the response. MSA acknowledges the query message, ERR reports errors, and QAK can carry query status and hit counts. QRD and QRF echo the original-style query definition and filter.

MFI identifies the charge master file. Each MF_QUERY group starts with MFE, then returns the matching CDM charge record and optional repeating PRC pricing rows. DSC supports continuation when the response is paged.

Implementation traps

Do not treat MSA-1 alone as the query result. The message can acknowledge the request while QAK or the returned record groups tell you whether anything useful was found.

Also watch pagination. A response with a continuation pointer is not complete just because it contains one CDM record.

Finally, keep the query key and returned MFE key aligned. If the response returns a different primary key format from the requested one, cache updates become unreliable.

Reference notes

HL7 master-file query material describes the MFQ/MFR transaction as a way to query a particular record or group of records in a master file. MFR_M04 uses that response envelope and returns charge records as MFE, CDM, and optional PRC detail.