Identify the appropriate SDOH domain (e.g., food insecurity, housing instability, transportation insecurity) and select the matching code from the SDOHCC ValueSet SDOH Category
Create an SDOHCCObservationScreeningResponse resource: set Observation.category to 'social-history' and the domain-specific Gravity category; populate Observation.code from the Gravity-curated LOINC panel code for the screening instrument used
Set Observation.value[x] using the domain-specific Gravity answer value set (e.g., SDOHCC ValueSet for Food Insecurity) corresponding to the screening question answered
If the screening response indicates a confirmed social risk, create an SDOHCCCondition resource: set Condition.category to 'health-concern', populate Condition.code from the Gravity SNOMED CT or ICD-10-CM value set for that domain, and link it to the triggering Observation via Condition.evidence.detail
Optionally create an SDOHCCObservationAssessment for clinician-assessed (non-survey) social risk findings, which uses the same category pattern but does not require a panel LOINC code
Submit both resources to the FHIR server; verify they can be retrieved by searching Observation?category=sdoh and Condition?category=health-concern with appropriate patient context
Known gotchas
Gravity domain value sets are additional bindings tied to the Observation.category (SDOH domain) — the correct code set for Observation.code and Observation.value differs per domain; using a food-insecurity LOINC code with a housing-instability category is a common authoring mistake
SDOHCCObservationScreeningResponse requires Observation.derivedFrom to reference the QuestionnaireResponse when the observation is derived from a questionnaire — omitting this breaks traceability
The current published IG is v2.3.0 (FHIR R4); a v3.0 ballot is in progress — check which version your server claims conformance to before assuming newer profile constraints apply
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp