Back to packs

FHIR Patient Resource Quality

HL7_FHIRfree

Validate HL7 FHIR R4 Patient resources — identifiers, names, gender, birth dates, addresses, marital status, contact points, and linked records.

15 rules 2250 downloads4.9 avg (127)
fhirhl7patienthealthcareinteroperabilityehr
4.9(127 ratings)

Sign in to rate this pack

Test this pack with your data

Download the template, fill in your data, and see quality results instantly.

Test This Pack

Download & Install

Choose your tool — get a ready-to-run file

Run this on your data? Upload your CSV — we'll auto-map the columns, validate, and report the bad rows.Test my dataWant this certified on your data? Book a 30-min demo.Book a demo
Or use the CLI
$ npx dqhub install fhir-patient-data --format soda --table YOUR_TABLE

About this pack

Data quality rules for HL7 FHIR R4 Patient resource compliance. Covers: - Patient identifier completeness - Birth date format (partial dates allowed per FHIR spec) - Administrative gender controlled terminology - Telecom system values - FHIR date format (ISO 8601 partial) Based on HL7 FHIR R4 StructureDefinitions.

Sources & References

Date values in FHIR resources must match the format YYYY, YYYY-MM, or YYYY-MM-DD

ISO — ISO 8601:2004 Date and time format

FHIR date format is a constrained subset of ISO 8601 calendar dates

Patient.gender is bound to AdministrativeGender with required strength; only the four defined codes are permitted

The gender field uses a required binding to the AdministrativeGender value set

HumanName.use is bound to NameUse with required strength

The use element indicates the purpose of the name

Patient.maritalStatus uses an extensible binding to the MaritalStatus value set

Address.use is bound to AddressUse with required strength

The use element distinguishes between different roles of an address

Address.type is bound to AddressType with required strength

Patient.link.type is bound to LinkType with required strength

What's included

11format rules
3completeness rules
1uniqueness rules

Checks included (15)

FHIR Patient BirthDate Format(birth_date)

Validates that Patient.birthDate values conform to the HL7 FHIR R4 date data type. FHIR allows partial-precision dates for birth dates: YYYY (year only), YYYY-MM (year and month), or YYYY-MM-DD (full date). This accommodates clinical scenarios where exact birth date is unknown, such as refugee or elderly patient records.

FHIR Telecom System Values(telecom_system)

Validates that ContactPoint.system values conform to the HL7 FHIR R4 ContactPointSystem value set. The system element indicates what kind of telecommunications device the contact point represents. Only the defined codes are permitted: phone, fax, email, pager, url, sms, and other.

FHIR Date Format (ISO 8601 Partial Dates)(effective_date)

Validates that values conform to the HL7 FHIR R4 date data type format. FHIR dates follow ISO 8601 and allow partial precision: YYYY (year only), YYYY-MM (year and month), or YYYY-MM-DD (full date). This flexibility supports clinical scenarios where only partial date information is known.

FHIR Administrative Gender Values(gender)

Validates that values are one of the four allowed codes in the HL7 FHIR AdministrativeGender value set: male, female, other, or unknown. This is a required binding in FHIR Patient and other resources. Values are case-sensitive lowercase per the FHIR code data type.

Valid Email Format(email)

Validates that values conform to a simplified RFC 5322 email address format. Checks for a local part containing alphanumeric characters and common special characters, an @ symbol, and a domain with at least one dot-separated label.

Valid Date String Format(event_date)

Validates that date string values match the expected format. Supports configurable formats including YYYY-MM-DD (ISO 8601), MM/DD/YYYY, DD/MM/YYYY, YYYY/MM/DD, and DD-Mon-YYYY. Validates month (01-12), day (01-31), and reasonable year ranges.

FHIR Patient Name Use Values(name_use)

Validates that HumanName.use values conform to the HL7 FHIR R4 NameUse value set. Only the defined codes are permitted: usual, official, temp, nickname, anonymous, old, and maiden.

FHIR Marital Status Values(marital_status)

Validates that values conform to the HL7 FHIR MaritalStatus value set: A (Annulled), D (Divorced), I (Interlocutory), L (Legally Separated), M (Married), P (Polygamous), S (Never Married), T (Domestic Partner), U (Unmarried), W (Widowed), or UNK (Unknown).

FHIR Address Use Values(address_use)

Validates that Address.use values conform to the HL7 FHIR R4 AddressUse value set. Only the defined codes are permitted: home, work, temp, old, and billing.

FHIR Address Type Values(address_type)

Validates that Address.type values conform to the HL7 FHIR R4 AddressType value set. Only the defined codes are permitted: postal, physical, and both.

FHIR Patient Link Type Values(link_type)

Validates that Patient.link.type values conform to the HL7 FHIR R4 LinkType value set. Only the defined codes are permitted: replaced-by, replaces, refer, and seealso.

FHIR Patient Identifier Required(patient_identifier)

Validates that FHIR Patient resources have a non-null, non-empty identifier. Per the HL7 FHIR R4 specification, Patient.identifier is used to carry official patient identifiers such as MRN, SSN, or national IDs. While FHIR marks this field as 0..*, most implementations require at least one identifier for patient matching and record linkage.

Column Not Null

Asserts that a specified column contains no null values. This is the most fundamental completeness check — every row must have a value present in the target column.

Column Completeness Threshold

Asserts that a column meets a minimum completeness threshold, measured as the percentage of non-null values. Useful when some nulls are acceptable but the overall population rate must stay above a defined level (e.g., 95%).

Column Unique

Validates that all non-null values in a specified column are unique. Useful for natural keys, email addresses, identifiers, and any column where duplicates indicate a data quality issue.