FHIR Profile Design and Implementation: Utilizing FSH, SUSHI, and Validator CLI
FHIR Profiles: Design and Implementation with FSH, SUSHI, and the Validator CLI
Summary
A FHIR profile is a StructureDefinition resource that constrains or extends a base FHIR resource to meet specific use case requirements. This article details design guidelines, emphasizing the importance of starting with logical models and understanding concepts like 'obligations' introduced in R5.
Details
FHIR profiles transform merely 'valid FHIR' into 'clinically meaningful data exchange' by applying constraints to base resources (e.g., Patient, Observation). Effective design requires defining not only structure but also mandatory elements and appropriate cardinalities. The standard authoring approach is using FHIR Shorthand (FSH), a domain-specific language for describing profiles. The SUSHI compiler translates this FSH into JSON StructureDefinitions consumed by validators and servers. A critical technical point is that most FHIR servers consume the 'snapshot'—the fully resolved element list—rather than just the differential. Therefore, generating the snapshot using flags like `--snapshot` is recommended for deployment readiness. Validation is performed using the official FHIR Validator CLI, which checks instances against a profile and reports violations with path-level detail. These tools are essential for ensuring both the structural integrity and semantic correctness of exchanged clinical data.
Original content copyright by respective publishers