SDOH Clinical Care
2.3.0 - STU 2.3 United States of America flag

This page is part of the SDOH Clinical Care for Multiple Domains (v2.3.0: STU 2.3) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Resource Profile: SDOHCC Condition

Official URL: http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-Condition Version: 2.3.0
Standards status: Trial-use Maturity Level: 2 Computable Name: SDOHCCCondition

Profile for Social Determinants of Health (SDOH) conditions.

Purpose

SDOHCC Condition is generally intended to represent a health concern, problem, or diagnosis related to a social risk or need. SDOHCC Condition may be the result of a screening response Observation (e.g., SDOHCC Observation Screening Response or other Observations) made as part of an encounter assessment (e.g., SDOHCC Observation Assessment). SDOHCC Condition may be addressed by a Goal (SDOHCC Goal) or be the reason for a ServiceRequest (SDOHCC Service Request) or Procedure (SDOHCC Procedure). See the Data Modeling Framework for more detail on the relationships between SDOHCC Condition and the other profiles in this IG.

Usage

Condition.code has a binding to US Core Condition Codes (required). Condition.code also has additional bindings to SDOH domain-specific value sets (e.g., for Food Insecurity) which are determined by the value selected for Condition.category. When Condition.category is a value from SDOHCC ValueSet SDOH Category (e.g., food-insecurity), Condition.code SHALL be selected from the corresponding domain-specific value set found in Additional Bindings (i.e. Food Insecurity Diagnoses). If more than one value is selected from SDOHCC ValueSet SDOH Category (e.g., food-insecurity and financial-insecurity) for Condition.category, then Condition.code SHALL be selected from at least one of the corresponding domain-specific value sets found in Additional Bindings (e.g. Food Insecurity Diagnoses).

Of note, Gravity Project is continuously developing terminology for new SDOH domains. Sometimes, a new SDOH domain may already be represented by a category code in SDOHCC ValueSet SDOH Category, but a domain-specific value set may not yet be available in VSAC. In this case, the Additional Binding for the new SDOH domain/category is the default binding for the profile element. Additionally, sometimes a domain-specific value set for a new domain is available in VSAC but does not yet include all standardized codes identified during the domain’s terminology development cycle. In this case, the value set’s “Description” tab in VSAC will state, “In progress”. Additional information related to Gravity value sets is provided on the Social Risk Terminology Value Sets page on the Gravity Project Confluence site.

Additionally, some SDOH domains may not yet be represented in SDOHCC ValueSet SDOH Category. In this case, Condition.category: sdoh-category-unspecified can be used so that the Condition instance can still be categorized as SDOH-related. If desired, Condition.category.text can also be used to further specify the domain. For example, at the time of publication of this IG, “disability-status” is not yet included in SDOHCC ValueSet SDOH Category. In this case, Condition.category: sdoh-category-unspecified can be used along with Condition.category.text: Disability Status. For Condition.category: sdoh-category-unspecified, there will not be domain-specific value sets and Additional Bindings for Condition.code will designate the default binding to US Core Condition Codes (required).

For more information on the correlation between Condition.category and the domain-specific value sets in Additional Bindings for Condition.code, see Gravity Project Value Sets.

US Core Conformance

US Core 6.1.0 and beyond profiles two Condition profiles: Encounter Diagnosis Condition Profile and Problems and Health Concerns Condition profile. The primary difference between these two profiles is in the Condition.category data element, where each profile requires different values to determine the category of the Condition resource. Instances derived from the SDOHCC Condition profile will be conformant to one of the US Core Condition profiles. Condition.category SHALL be one of encounter-diagnosis, problem-list-item, or health-concern.

Usage:

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition C 0..* Condition Detailed information about SDOH conditions, problems or diagnoses
con-3: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item
con-4: If condition is abated, then clinicalStatus must be either inactive, resolved, or remission
con-5: Condition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
SDOH-Con-1: Can only have a max of one asserter.
SDOH-Con-2: At least one Condition.category SHALL be encounter-diagnosis, problem-list-item, or health-concern
SDOH-Con-3: At least one Condition.category SHALL be sdoh
... meta SΣ 0..1 Meta Metadata about the resource
ele-1: All FHIR elements must have a @value or children
.... lastUpdated SΣ 0..1 instant When the resource last changed
ele-1: All FHIR elements must have a @value or children
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:asserterDevice SC 0..1 Reference(Device) Optional Extensions Element
URL: http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-ExtensionConditionAsserter
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:assertedDate S 0..1 dateTime Date the condition was first asserted
URL: http://hl7.org/fhir/StructureDefinition/condition-assertedDate
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... clinicalStatus ?!SΣC 0..1 CodeableConcept active | recurrence | relapse | inactive | remission | resolved
Binding: ConditionClinicalStatusCodes (required)
ele-1: All FHIR elements must have a @value or children
... verificationStatus ?!SΣC 0..1 CodeableConcept unconfirmed | provisional | differential | confirmed | refuted | entered-in-error
Binding: ConditionVerificationStatus (required)
ele-1: All FHIR elements must have a @value or children
... Slices for category SC 2..* CodeableConcept category codes
Slice: Unordered, Open by value:$this
Binding: ConditionCategoryCodes (extensible): A category assigned to the condition.


ele-1: All FHIR elements must have a @value or children
.... category:encounter-diagnosis S 0..1 CodeableConcept encounter-diagnosis
Binding: ConditionCategoryCodes (extensible): A category assigned to the condition.


ele-1: All FHIR elements must have a @value or children

Required Pattern: At least the following
..... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/condition-category
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: encounter-diagnosis
.... category:problem-or-health-concern S 0..* CodeableConcept problem-list-item | health-concern
Binding: USCoreProblemOrHealthConcern (7.0.0) (required)
ele-1: All FHIR elements must have a @value or children
.... category:screening-assessment SC 1..* CodeableConcept USCDI Health Status/Assessments Data Class. Requires at least a category code 'sdoh'
Binding: USCoreScreeningAssessmentConditionCategory (7.0.0) (required)
ele-1: All FHIR elements must have a @value or children
.... category:SDOHCC S 0..* CodeableConcept e.g., food-insecurity | transportation-insecurity
Binding: SDOHCC ValueSet SDOH Category (required): Codes for high-level SDOH categories.


ele-1: All FHIR elements must have a @value or children
... code SΣ 1..1 CodeableConcept Identification of the condition, problem or diagnosis
Binding: USCoreConditionCodes (7.0.0) (required): Valueset to describe the actual problem experienced by the patient

Additional BindingsPurposeUsage
USCoreConditionCodes (7.0.0) Current
Digital Access Diagnoses . Extensible Condition.category = digital-access
Digital Literacy Diagnoses . Extensible Condition.category = digital-literacy
LessThanHighSchoolEducationDiagnoses (20240604) . Extensible Condition.category = educational-attainment
Elder Abuse Diagnoses . Extensible Condition.category = elder-abuse
UnemploymentDiagnoses (20240604) . Extensible Condition.category = employment-status
FinancialInsecurityDiagnoses (20240604) . Extensible Condition.category = financial-insecurity
FoodInsecurityDiagnoses (20240604) . Extensible Condition.category = food-insecurity
HealthInsuranceCoverageStatusDiagnoses (20240604) . Extensible Condition.category = health-insurance-coverage-status
HomelessnessDiagnoses (20240604) . Extensible Condition.category = homelessness
HousingInstabilityDiagnoses (20240604) . Extensible Condition.category = housing-instability
InadequateHousingDiagnoses (20240604) . Extensible Condition.category = inadequate-housing
VSAC 2.16.840.1.113762.1.4.1247.258 . Extensible Condition.category = incarceration-status
IntimatePartnerViolenceDiagnoses (20240604) . Extensible Condition.category = intimate-partner-violence
VSAC 2.16.840.1.113762.1.4.1247.262 . Extensible Condition.category = language-access
MaterialHardshipDiagnoses (20240604) . Extensible Condition.category = material-hardship
MedicalCostBurdenDiagnoses (20240604) . Extensible Condition.category = medical-cost-burden
HealthLiteracyDiagnoses (20240604) . Extensible Condition.category = personal-health-literacy
SocialConnectionDiagnoses (20240604) . Extensible Condition.category = social-connection
StressDiagnoses (20240604) . Extensible Condition.category = stress
TransportationInsecurityDiagnoses (20240604) . Extensible Condition.category = transportation-insecurity
Utility Insecurity Diagnoses . Extensible Condition.category = utility-insecurity
VeteranStatusDiagnoses (20240604) . Extensible Condition.category = veteran-status
USCoreConditionCodes (7.0.0) Required Condition.category = sdoh-category-unspecified

ele-1: All FHIR elements must have a @value or children
... subject SΣ 1..1 Reference(US Core Patient Profile(7.0.0)) Who has the condition?
ele-1: All FHIR elements must have a @value or children
... encounter SΣ 0..1 Reference(US Core Encounter Profile(7.0.0)) Encounter created as part of
ele-1: All FHIR elements must have a @value or children
... onset[x] SΣ 0..1 Estimated or actual date, date-time, or age
ele-1: All FHIR elements must have a @value or children
.... onsetDateTime dateTime
... abatement[x] SC 0..1 When in resolution/remission
ele-1: All FHIR elements must have a @value or children
.... abatementDateTime dateTime
... recordedDate SΣ 0..1 dateTime Date record was first recorded
ele-1: All FHIR elements must have a @value or children
... recorder Σ 0..1 Reference(Practitioner | PractitionerRole) Who recorded the condition
ele-1: All FHIR elements must have a @value or children
... asserter SΣC 0..1 Reference(RelatedPerson | US Core Patient Profile(7.0.0) | US Core Practitioner Profile(7.0.0) | SDOHCC PractitionerRole) Person or device that asserts this condition
ele-1: All FHIR elements must have a @value or children
... evidence SC 0..* BackboneElement Supporting evidence
con-2: evidence SHALL have code or details
ele-1: All FHIR elements must have a @value or children
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... code ΣC 0..* CodeableConcept Manifestation/symptom
Binding: ManifestationAndSymptomCodes (example): Codes that describe the manifestation or symptoms of a condition.


ele-1: All FHIR elements must have a @value or children
.... Slices for detail ΣC 0..* Reference(Resource) Supporting information found elsewhere
Slice: Unordered, Open by profile:resolve()
ele-1: All FHIR elements must have a @value or children
..... detail:SupportedDetail SΣC 0..* Reference(SDOHCC Observation Screening Response | SDOHCC Condition | SDOHCC Observation Assessment | SDC Questionnaire Response) Supporting information found elsewhere
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Condition.clinicalStatusrequiredConditionClinicalStatusCodes
http://hl7.org/fhir/ValueSet/condition-clinical
from the FHIR Standard
Condition.verificationStatusrequiredConditionVerificationStatus
http://hl7.org/fhir/ValueSet/condition-ver-status
from the FHIR Standard
Condition.categoryextensibleConditionCategoryCodes
http://hl7.org/fhir/ValueSet/condition-category
from the FHIR Standard
Condition.category:encounter-diagnosisextensiblePattern: encounter-diagnosis
http://hl7.org/fhir/ValueSet/condition-category
from the FHIR Standard
Condition.category:problem-or-health-concernrequiredUSCoreProblemOrHealthConcern
http://hl7.org/fhir/us/core/ValueSet/us-core-problem-or-health-concern|7.0.0
Condition.category:screening-assessmentrequiredUSCoreScreeningAssessmentConditionCategory
http://hl7.org/fhir/us/core/ValueSet/us-core-screening-assessment-condition-category|7.0.0
Condition.category:SDOHCCrequiredSDOHCCValueSetSDOHCategory
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetSDOHCategory
from this IG
Condition.coderequiredUSCoreConditionCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-condition-code|7.0.0
Condition.evidence.codeexampleManifestationAndSymptomCodes
http://hl7.org/fhir/ValueSet/manifestation-or-symptom
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
SDOH-Con-1errorConditionCan only have a max of one asserter.
: extension('http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-ExtensionConditionAsserter').count()+asserter.count()<=1
SDOH-Con-2errorConditionAt least one Condition.category SHALL be encounter-diagnosis, problem-list-item, or health-concern
: category.where(coding.where(system = 'http://terminology.hl7.org/CodeSystem/condition-category' and code='encounter-diagnosis').exists()).exists() or category.where(coding.memberOf('http://hl7.org/fhir/us/core/ValueSet/us-core-problem-or-health-concern')).exists()
SDOH-Con-3errorConditionAt least one Condition.category SHALL be sdoh
: category.where(coding.where(system = 'http://hl7.org/fhir/us/core/CodeSystem/us-core-category' and code='sdoh').exists()).exists()
con-2errorCondition.evidenceevidence SHALL have code or details
: code.exists() or detail.exists()
con-3best practiceConditionCondition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item
: clinicalStatus.exists() or verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code = 'entered-in-error').exists() or category.select($this='problem-list-item').empty()
con-4errorConditionIf condition is abated, then clinicalStatus must be either inactive, resolved, or remission
: abatement.empty() or clinicalStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-clinical' and (code='resolved' or code='remission' or code='inactive')).exists()
con-5errorConditionCondition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error
: verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').empty() or clinicalStatus.empty()
dom-2errorConditionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorConditionIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorConditionIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorConditionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceConditionA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Condition

NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition C 0..* Condition Detailed information about SDOH conditions, problems or diagnoses
SDOH-Con-1: Can only have a max of one asserter.
SDOH-Con-2: At least one Condition.category SHALL be encounter-diagnosis, problem-list-item, or health-concern
SDOH-Con-3: At least one Condition.category SHALL be sdoh
... meta S 0..1 Meta Metadata about the resource
.... lastUpdated S 0..1 instant When the resource last changed
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:asserterDevice SC 0..1 Reference(Device) Optional Extensions Element
URL: http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-ExtensionConditionAsserter
.... extension:assertedDate S 0..1 dateTime Date the condition was first asserted
URL: http://hl7.org/fhir/StructureDefinition/condition-assertedDate
... clinicalStatus S 0..1 CodeableConcept active | recurrence | relapse | inactive | remission | resolved
Binding: ConditionClinicalStatusCodes (required)
... Slices for category SC 2..* CodeableConcept category codes
Slice: Unordered, Open by value:$this
.... category:encounter-diagnosis S 0..1 CodeableConcept encounter-diagnosis
Required Pattern: At least the following
..... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/condition-category
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: encounter-diagnosis
.... category:problem-or-health-concern S 0..* CodeableConcept problem-list-item | health-concern
Binding: USCoreProblemOrHealthConcern (7.0.0) (required)
.... category:screening-assessment SC 1..* CodeableConcept USCDI Health Status/Assessments Data Class. Requires at least a category code 'sdoh'
Binding: USCoreScreeningAssessmentConditionCategory (7.0.0) (required)
.... category:SDOHCC S 0..* CodeableConcept e.g., food-insecurity | transportation-insecurity
Binding: SDOHCC ValueSet SDOH Category (required): Codes for high-level SDOH categories.


... code S 1..1 CodeableConcept Identification of the condition, problem or diagnosis
Binding: USCoreConditionCodes (7.0.0) (required): Valueset to describe the actual problem experienced by the patient

Additional BindingsPurposeUsage
USCoreConditionCodes (7.0.0) Current
Digital Access Diagnoses . Extensible Condition.category = digital-access
Digital Literacy Diagnoses . Extensible Condition.category = digital-literacy
LessThanHighSchoolEducationDiagnoses (20240604) . Extensible Condition.category = educational-attainment
Elder Abuse Diagnoses . Extensible Condition.category = elder-abuse
UnemploymentDiagnoses (20240604) . Extensible Condition.category = employment-status
FinancialInsecurityDiagnoses (20240604) . Extensible Condition.category = financial-insecurity
FoodInsecurityDiagnoses (20240604) . Extensible Condition.category = food-insecurity
HealthInsuranceCoverageStatusDiagnoses (20240604) . Extensible Condition.category = health-insurance-coverage-status
HomelessnessDiagnoses (20240604) . Extensible Condition.category = homelessness
HousingInstabilityDiagnoses (20240604) . Extensible Condition.category = housing-instability
InadequateHousingDiagnoses (20240604) . Extensible Condition.category = inadequate-housing
VSAC 2.16.840.1.113762.1.4.1247.258 . Extensible Condition.category = incarceration-status
IntimatePartnerViolenceDiagnoses (20240604) . Extensible Condition.category = intimate-partner-violence
VSAC 2.16.840.1.113762.1.4.1247.262 . Extensible Condition.category = language-access
MaterialHardshipDiagnoses (20240604) . Extensible Condition.category = material-hardship
MedicalCostBurdenDiagnoses (20240604) . Extensible Condition.category = medical-cost-burden
HealthLiteracyDiagnoses (20240604) . Extensible Condition.category = personal-health-literacy
SocialConnectionDiagnoses (20240604) . Extensible Condition.category = social-connection
StressDiagnoses (20240604) . Extensible Condition.category = stress
TransportationInsecurityDiagnoses (20240604) . Extensible Condition.category = transportation-insecurity
Utility Insecurity Diagnoses . Extensible Condition.category = utility-insecurity
VeteranStatusDiagnoses (20240604) . Extensible Condition.category = veteran-status
USCoreConditionCodes (7.0.0) Required Condition.category = sdoh-category-unspecified
... bodySite 0..0
... subject S 1..1 Reference(US Core Patient Profile(7.0.0)) Who has the condition?
... encounter S 0..1 Reference(US Core Encounter Profile(7.0.0)) Encounter created as part of
... onset[x] S 0..1 Estimated or actual date, date-time, or age
.... onsetDateTime dateTime S
.... onsetPeriod Period
... abatement[x] S 0..1 When in resolution/remission
.... abatementDateTime dateTime S
.... abatementPeriod Period
... recordedDate S 0..1 dateTime Date record was first recorded
... recorder 0..1 Reference(Practitioner | PractitionerRole) Who recorded the condition
... asserter SC 0..1 Reference(RelatedPerson | US Core Patient Profile(7.0.0) | US Core Practitioner Profile(7.0.0) | SDOHCC PractitionerRole) Person or device that asserts this condition
... stage 0..0
... evidence S 0..* BackboneElement Supporting evidence
.... code 0..* CodeableConcept Manifestation/symptom
.... Slices for detail 0..* Reference(Resource) Supporting information found elsewhere
Slice: Unordered, Open by profile:resolve()
..... detail:SupportedDetail S 0..* Reference(SDOHCC Observation Screening Response | SDOHCC Condition | SDOHCC Observation Assessment | SDC Questionnaire Response) Supporting information found elsewhere

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Condition.clinicalStatusrequiredConditionClinicalStatusCodes
http://hl7.org/fhir/ValueSet/condition-clinical
from the FHIR Standard
Condition.verificationStatusrequiredConditionVerificationStatus
http://hl7.org/fhir/ValueSet/condition-ver-status
from the FHIR Standard
Condition.category:problem-or-health-concernrequiredUSCoreProblemOrHealthConcern
http://hl7.org/fhir/us/core/ValueSet/us-core-problem-or-health-concern|7.0.0
Condition.category:screening-assessmentrequiredUSCoreScreeningAssessmentConditionCategory
http://hl7.org/fhir/us/core/ValueSet/us-core-screening-assessment-condition-category|7.0.0
Condition.category:SDOHCCrequiredSDOHCCValueSetSDOHCategory
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetSDOHCategory
from this IG
Condition.coderequiredUSCoreConditionCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-condition-code|7.0.0

Constraints

IdGradePath(s)DetailsRequirements
SDOH-Con-1errorConditionCan only have a max of one asserter.
: extension('http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-ExtensionConditionAsserter').count()+asserter.count()<=1
SDOH-Con-2errorConditionAt least one Condition.category SHALL be encounter-diagnosis, problem-list-item, or health-concern
: category.where(coding.where(system = 'http://terminology.hl7.org/CodeSystem/condition-category' and code='encounter-diagnosis').exists()).exists() or category.where(coding.memberOf('http://hl7.org/fhir/us/core/ValueSet/us-core-problem-or-health-concern')).exists()
SDOH-Con-3errorConditionAt least one Condition.category SHALL be sdoh
: category.where(coding.where(system = 'http://hl7.org/fhir/us/core/CodeSystem/us-core-category' and code='sdoh').exists()).exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition C 0..* Condition Detailed information about SDOH conditions, problems or diagnoses
con-3: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item
con-4: If condition is abated, then clinicalStatus must be either inactive, resolved, or remission
con-5: Condition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error
SDOH-Con-1: Can only have a max of one asserter.
SDOH-Con-2: At least one Condition.category SHALL be encounter-diagnosis, problem-list-item, or health-concern
SDOH-Con-3: At least one Condition.category SHALL be sdoh
... id Σ 0..1 id Logical id of this artifact
... meta SΣ 0..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated SΣ 0..1 instant When the resource last changed
.... source Σ 0..1 uri Identifies where the resource comes from
.... profile Σ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
.... security Σ 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... tag Σ 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:asserterDevice SC 0..1 Reference(Device) Optional Extensions Element
URL: http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-ExtensionConditionAsserter
.... extension:assertedDate S 0..1 dateTime Date the condition was first asserted
URL: http://hl7.org/fhir/StructureDefinition/condition-assertedDate
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier External Ids for this condition
... clinicalStatus ?!SΣC 0..1 CodeableConcept active | recurrence | relapse | inactive | remission | resolved
Binding: ConditionClinicalStatusCodes (required)
... verificationStatus ?!SΣC 0..1 CodeableConcept unconfirmed | provisional | differential | confirmed | refuted | entered-in-error
Binding: ConditionVerificationStatus (required)
... Slices for category SC 2..* CodeableConcept category codes
Slice: Unordered, Open by value:$this
Binding: ConditionCategoryCodes (extensible): A category assigned to the condition.


.... category:encounter-diagnosis S 0..1 CodeableConcept encounter-diagnosis
Binding: ConditionCategoryCodes (extensible): A category assigned to the condition.



Required Pattern: At least the following
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/condition-category
...... version 0..1 string Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: encounter-diagnosis
...... display 0..1 string Representation defined by the system
...... userSelected 0..1 boolean If this coding was chosen directly by the user
..... text 0..1 string Plain text representation of the concept
.... category:problem-or-health-concern S 0..* CodeableConcept problem-list-item | health-concern
Binding: USCoreProblemOrHealthConcern (7.0.0) (required)
.... category:screening-assessment SC 1..* CodeableConcept USCDI Health Status/Assessments Data Class. Requires at least a category code 'sdoh'
Binding: USCoreScreeningAssessmentConditionCategory (7.0.0) (required)
.... category:SDOHCC S 0..* CodeableConcept e.g., food-insecurity | transportation-insecurity
Binding: SDOHCC ValueSet SDOH Category (required): Codes for high-level SDOH categories.


... severity 0..1 CodeableConcept Subjective severity of condition
Binding: Condition/DiagnosisSeverity (preferred): A subjective assessment of the severity of the condition as evaluated by the clinician.

... code SΣ 1..1 CodeableConcept Identification of the condition, problem or diagnosis
Binding: USCoreConditionCodes (7.0.0) (required): Valueset to describe the actual problem experienced by the patient

Additional BindingsPurposeUsage
USCoreConditionCodes (7.0.0) Current
Digital Access Diagnoses . Extensible Condition.category = digital-access
Digital Literacy Diagnoses . Extensible Condition.category = digital-literacy
LessThanHighSchoolEducationDiagnoses (20240604) . Extensible Condition.category = educational-attainment
Elder Abuse Diagnoses . Extensible Condition.category = elder-abuse
UnemploymentDiagnoses (20240604) . Extensible Condition.category = employment-status
FinancialInsecurityDiagnoses (20240604) . Extensible Condition.category = financial-insecurity
FoodInsecurityDiagnoses (20240604) . Extensible Condition.category = food-insecurity
HealthInsuranceCoverageStatusDiagnoses (20240604) . Extensible Condition.category = health-insurance-coverage-status
HomelessnessDiagnoses (20240604) . Extensible Condition.category = homelessness
HousingInstabilityDiagnoses (20240604) . Extensible Condition.category = housing-instability
InadequateHousingDiagnoses (20240604) . Extensible Condition.category = inadequate-housing
VSAC 2.16.840.1.113762.1.4.1247.258 . Extensible Condition.category = incarceration-status
IntimatePartnerViolenceDiagnoses (20240604) . Extensible Condition.category = intimate-partner-violence
VSAC 2.16.840.1.113762.1.4.1247.262 . Extensible Condition.category = language-access
MaterialHardshipDiagnoses (20240604) . Extensible Condition.category = material-hardship
MedicalCostBurdenDiagnoses (20240604) . Extensible Condition.category = medical-cost-burden
HealthLiteracyDiagnoses (20240604) . Extensible Condition.category = personal-health-literacy
SocialConnectionDiagnoses (20240604) . Extensible Condition.category = social-connection
StressDiagnoses (20240604) . Extensible Condition.category = stress
TransportationInsecurityDiagnoses (20240604) . Extensible Condition.category = transportation-insecurity
Utility Insecurity Diagnoses . Extensible Condition.category = utility-insecurity
VeteranStatusDiagnoses (20240604) . Extensible Condition.category = veteran-status
USCoreConditionCodes (7.0.0) Required Condition.category = sdoh-category-unspecified
... subject SΣ 1..1 Reference(US Core Patient Profile(7.0.0)) Who has the condition?
... encounter SΣ 0..1 Reference(US Core Encounter Profile(7.0.0)) Encounter created as part of
... onset[x] SΣ 0..1 Estimated or actual date, date-time, or age
.... onsetDateTime dateTime S
.... onsetPeriod Period
... abatement[x] SC 0..1 When in resolution/remission
.... abatementDateTime dateTime S
.... abatementPeriod Period
... recordedDate SΣ 0..1 dateTime Date record was first recorded
... recorder Σ 0..1 Reference(Practitioner | PractitionerRole) Who recorded the condition
... asserter SΣC 0..1 Reference(RelatedPerson | US Core Patient Profile(7.0.0) | US Core Practitioner Profile(7.0.0) | SDOHCC PractitionerRole) Person or device that asserts this condition
... evidence SC 0..* BackboneElement Supporting evidence
con-2: evidence SHALL have code or details
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code ΣC 0..* CodeableConcept Manifestation/symptom
Binding: ManifestationAndSymptomCodes (example): Codes that describe the manifestation or symptoms of a condition.


.... Slices for detail ΣC 0..* Reference(Resource) Supporting information found elsewhere
Slice: Unordered, Open by profile:resolve()
..... detail:SupportedDetail SΣC 0..* Reference(SDOHCC Observation Screening Response | SDOHCC Condition | SDOHCC Observation Assessment | SDC Questionnaire Response) Supporting information found elsewhere
... note 0..* Annotation Additional information about the Condition

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Condition.meta.securityextensibleAll Security Labels
http://hl7.org/fhir/ValueSet/security-labels
from the FHIR Standard
Condition.meta.tagexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Condition.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Condition.clinicalStatusrequiredConditionClinicalStatusCodes
http://hl7.org/fhir/ValueSet/condition-clinical
from the FHIR Standard
Condition.verificationStatusrequiredConditionVerificationStatus
http://hl7.org/fhir/ValueSet/condition-ver-status
from the FHIR Standard
Condition.categoryextensibleConditionCategoryCodes
http://hl7.org/fhir/ValueSet/condition-category
from the FHIR Standard
Condition.category:encounter-diagnosisextensiblePattern: encounter-diagnosis
http://hl7.org/fhir/ValueSet/condition-category
from the FHIR Standard
Condition.category:problem-or-health-concernrequiredUSCoreProblemOrHealthConcern
http://hl7.org/fhir/us/core/ValueSet/us-core-problem-or-health-concern|7.0.0
Condition.category:screening-assessmentrequiredUSCoreScreeningAssessmentConditionCategory
http://hl7.org/fhir/us/core/ValueSet/us-core-screening-assessment-condition-category|7.0.0
Condition.category:SDOHCCrequiredSDOHCCValueSetSDOHCategory
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetSDOHCategory
from this IG
Condition.severitypreferredCondition/DiagnosisSeverity
http://hl7.org/fhir/ValueSet/condition-severity
from the FHIR Standard
Condition.coderequiredUSCoreConditionCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-condition-code|7.0.0
Condition.stage.summaryexampleConditionStage
http://hl7.org/fhir/ValueSet/condition-stage
from the FHIR Standard
Condition.stage.typeexampleConditionStageType
http://hl7.org/fhir/ValueSet/condition-stage-type
from the FHIR Standard
Condition.evidence.codeexampleManifestationAndSymptomCodes
http://hl7.org/fhir/ValueSet/manifestation-or-symptom
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
SDOH-Con-1errorConditionCan only have a max of one asserter.
: extension('http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-ExtensionConditionAsserter').count()+asserter.count()<=1
SDOH-Con-2errorConditionAt least one Condition.category SHALL be encounter-diagnosis, problem-list-item, or health-concern
: category.where(coding.where(system = 'http://terminology.hl7.org/CodeSystem/condition-category' and code='encounter-diagnosis').exists()).exists() or category.where(coding.memberOf('http://hl7.org/fhir/us/core/ValueSet/us-core-problem-or-health-concern')).exists()
SDOH-Con-3errorConditionAt least one Condition.category SHALL be sdoh
: category.where(coding.where(system = 'http://hl7.org/fhir/us/core/CodeSystem/us-core-category' and code='sdoh').exists()).exists()
con-2errorCondition.evidenceevidence SHALL have code or details
: code.exists() or detail.exists()
con-3best practiceConditionCondition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item
: clinicalStatus.exists() or verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code = 'entered-in-error').exists() or category.select($this='problem-list-item').empty()
con-4errorConditionIf condition is abated, then clinicalStatus must be either inactive, resolved, or remission
: abatement.empty() or clinicalStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-clinical' and (code='resolved' or code='remission' or code='inactive')).exists()
con-5errorConditionCondition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error
: verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').empty() or clinicalStatus.empty()
dom-2errorConditionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorConditionIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorConditionIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorConditionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceConditionA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition C 0..* Condition Detailed information about SDOH conditions, problems or diagnoses
con-3: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item
con-4: If condition is abated, then clinicalStatus must be either inactive, resolved, or remission
con-5: Condition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
SDOH-Con-1: Can only have a max of one asserter.
SDOH-Con-2: At least one Condition.category SHALL be encounter-diagnosis, problem-list-item, or health-concern
SDOH-Con-3: At least one Condition.category SHALL be sdoh
... meta SΣ 0..1 Meta Metadata about the resource
ele-1: All FHIR elements must have a @value or children
.... lastUpdated SΣ 0..1 instant When the resource last changed
ele-1: All FHIR elements must have a @value or children
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:asserterDevice SC 0..1 Reference(Device) Optional Extensions Element
URL: http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-ExtensionConditionAsserter
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:assertedDate S 0..1 dateTime Date the condition was first asserted
URL: http://hl7.org/fhir/StructureDefinition/condition-assertedDate
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... clinicalStatus ?!SΣC 0..1 CodeableConcept active | recurrence | relapse | inactive | remission | resolved
Binding: ConditionClinicalStatusCodes (required)
ele-1: All FHIR elements must have a @value or children
... verificationStatus ?!SΣC 0..1 CodeableConcept unconfirmed | provisional | differential | confirmed | refuted | entered-in-error
Binding: ConditionVerificationStatus (required)
ele-1: All FHIR elements must have a @value or children
... Slices for category SC 2..* CodeableConcept category codes
Slice: Unordered, Open by value:$this
Binding: ConditionCategoryCodes (extensible): A category assigned to the condition.


ele-1: All FHIR elements must have a @value or children
.... category:encounter-diagnosis S 0..1 CodeableConcept encounter-diagnosis
Binding: ConditionCategoryCodes (extensible): A category assigned to the condition.


ele-1: All FHIR elements must have a @value or children

Required Pattern: At least the following
..... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/condition-category
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: encounter-diagnosis
.... category:problem-or-health-concern S 0..* CodeableConcept problem-list-item | health-concern
Binding: USCoreProblemOrHealthConcern (7.0.0) (required)
ele-1: All FHIR elements must have a @value or children
.... category:screening-assessment SC 1..* CodeableConcept USCDI Health Status/Assessments Data Class. Requires at least a category code 'sdoh'
Binding: USCoreScreeningAssessmentConditionCategory (7.0.0) (required)
ele-1: All FHIR elements must have a @value or children
.... category:SDOHCC S 0..* CodeableConcept e.g., food-insecurity | transportation-insecurity
Binding: SDOHCC ValueSet SDOH Category (required): Codes for high-level SDOH categories.


ele-1: All FHIR elements must have a @value or children
... code SΣ 1..1 CodeableConcept Identification of the condition, problem or diagnosis
Binding: USCoreConditionCodes (7.0.0) (required): Valueset to describe the actual problem experienced by the patient

Additional BindingsPurposeUsage
USCoreConditionCodes (7.0.0) Current
Digital Access Diagnoses . Extensible Condition.category = digital-access
Digital Literacy Diagnoses . Extensible Condition.category = digital-literacy
LessThanHighSchoolEducationDiagnoses (20240604) . Extensible Condition.category = educational-attainment
Elder Abuse Diagnoses . Extensible Condition.category = elder-abuse
UnemploymentDiagnoses (20240604) . Extensible Condition.category = employment-status
FinancialInsecurityDiagnoses (20240604) . Extensible Condition.category = financial-insecurity
FoodInsecurityDiagnoses (20240604) . Extensible Condition.category = food-insecurity
HealthInsuranceCoverageStatusDiagnoses (20240604) . Extensible Condition.category = health-insurance-coverage-status
HomelessnessDiagnoses (20240604) . Extensible Condition.category = homelessness
HousingInstabilityDiagnoses (20240604) . Extensible Condition.category = housing-instability
InadequateHousingDiagnoses (20240604) . Extensible Condition.category = inadequate-housing
VSAC 2.16.840.1.113762.1.4.1247.258 . Extensible Condition.category = incarceration-status
IntimatePartnerViolenceDiagnoses (20240604) . Extensible Condition.category = intimate-partner-violence
VSAC 2.16.840.1.113762.1.4.1247.262 . Extensible Condition.category = language-access
MaterialHardshipDiagnoses (20240604) . Extensible Condition.category = material-hardship
MedicalCostBurdenDiagnoses (20240604) . Extensible Condition.category = medical-cost-burden
HealthLiteracyDiagnoses (20240604) . Extensible Condition.category = personal-health-literacy
SocialConnectionDiagnoses (20240604) . Extensible Condition.category = social-connection
StressDiagnoses (20240604) . Extensible Condition.category = stress
TransportationInsecurityDiagnoses (20240604) . Extensible Condition.category = transportation-insecurity
Utility Insecurity Diagnoses . Extensible Condition.category = utility-insecurity
VeteranStatusDiagnoses (20240604) . Extensible Condition.category = veteran-status
USCoreConditionCodes (7.0.0) Required Condition.category = sdoh-category-unspecified

ele-1: All FHIR elements must have a @value or children
... subject SΣ 1..1 Reference(US Core Patient Profile(7.0.0)) Who has the condition?
ele-1: All FHIR elements must have a @value or children
... encounter SΣ 0..1 Reference(US Core Encounter Profile(7.0.0)) Encounter created as part of
ele-1: All FHIR elements must have a @value or children
... onset[x] SΣ 0..1 Estimated or actual date, date-time, or age
ele-1: All FHIR elements must have a @value or children
.... onsetDateTime dateTime
... abatement[x] SC 0..1 When in resolution/remission
ele-1: All FHIR elements must have a @value or children
.... abatementDateTime dateTime
... recordedDate SΣ 0..1 dateTime Date record was first recorded
ele-1: All FHIR elements must have a @value or children
... recorder Σ 0..1 Reference(Practitioner | PractitionerRole) Who recorded the condition
ele-1: All FHIR elements must have a @value or children
... asserter SΣC 0..1 Reference(RelatedPerson | US Core Patient Profile(7.0.0) | US Core Practitioner Profile(7.0.0) | SDOHCC PractitionerRole) Person or device that asserts this condition
ele-1: All FHIR elements must have a @value or children
... evidence SC 0..* BackboneElement Supporting evidence
con-2: evidence SHALL have code or details
ele-1: All FHIR elements must have a @value or children
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... code ΣC 0..* CodeableConcept Manifestation/symptom
Binding: ManifestationAndSymptomCodes (example): Codes that describe the manifestation or symptoms of a condition.


ele-1: All FHIR elements must have a @value or children
.... Slices for detail ΣC 0..* Reference(Resource) Supporting information found elsewhere
Slice: Unordered, Open by profile:resolve()
ele-1: All FHIR elements must have a @value or children
..... detail:SupportedDetail SΣC 0..* Reference(SDOHCC Observation Screening Response | SDOHCC Condition | SDOHCC Observation Assessment | SDC Questionnaire Response) Supporting information found elsewhere
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Condition.clinicalStatusrequiredConditionClinicalStatusCodes
http://hl7.org/fhir/ValueSet/condition-clinical
from the FHIR Standard
Condition.verificationStatusrequiredConditionVerificationStatus
http://hl7.org/fhir/ValueSet/condition-ver-status
from the FHIR Standard
Condition.categoryextensibleConditionCategoryCodes
http://hl7.org/fhir/ValueSet/condition-category
from the FHIR Standard
Condition.category:encounter-diagnosisextensiblePattern: encounter-diagnosis
http://hl7.org/fhir/ValueSet/condition-category
from the FHIR Standard
Condition.category:problem-or-health-concernrequiredUSCoreProblemOrHealthConcern
http://hl7.org/fhir/us/core/ValueSet/us-core-problem-or-health-concern|7.0.0
Condition.category:screening-assessmentrequiredUSCoreScreeningAssessmentConditionCategory
http://hl7.org/fhir/us/core/ValueSet/us-core-screening-assessment-condition-category|7.0.0
Condition.category:SDOHCCrequiredSDOHCCValueSetSDOHCategory
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetSDOHCategory
from this IG
Condition.coderequiredUSCoreConditionCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-condition-code|7.0.0
Condition.evidence.codeexampleManifestationAndSymptomCodes
http://hl7.org/fhir/ValueSet/manifestation-or-symptom
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
SDOH-Con-1errorConditionCan only have a max of one asserter.
: extension('http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-ExtensionConditionAsserter').count()+asserter.count()<=1
SDOH-Con-2errorConditionAt least one Condition.category SHALL be encounter-diagnosis, problem-list-item, or health-concern
: category.where(coding.where(system = 'http://terminology.hl7.org/CodeSystem/condition-category' and code='encounter-diagnosis').exists()).exists() or category.where(coding.memberOf('http://hl7.org/fhir/us/core/ValueSet/us-core-problem-or-health-concern')).exists()
SDOH-Con-3errorConditionAt least one Condition.category SHALL be sdoh
: category.where(coding.where(system = 'http://hl7.org/fhir/us/core/CodeSystem/us-core-category' and code='sdoh').exists()).exists()
con-2errorCondition.evidenceevidence SHALL have code or details
: code.exists() or detail.exists()
con-3best practiceConditionCondition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item
: clinicalStatus.exists() or verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code = 'entered-in-error').exists() or category.select($this='problem-list-item').empty()
con-4errorConditionIf condition is abated, then clinicalStatus must be either inactive, resolved, or remission
: abatement.empty() or clinicalStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-clinical' and (code='resolved' or code='remission' or code='inactive')).exists()
con-5errorConditionCondition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error
: verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').empty() or clinicalStatus.empty()
dom-2errorConditionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorConditionIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorConditionIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorConditionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceConditionA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Differential View

This structure is derived from Condition

NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition C 0..* Condition Detailed information about SDOH conditions, problems or diagnoses
SDOH-Con-1: Can only have a max of one asserter.
SDOH-Con-2: At least one Condition.category SHALL be encounter-diagnosis, problem-list-item, or health-concern
SDOH-Con-3: At least one Condition.category SHALL be sdoh
... meta S 0..1 Meta Metadata about the resource
.... lastUpdated S 0..1 instant When the resource last changed
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:asserterDevice SC 0..1 Reference(Device) Optional Extensions Element
URL: http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-ExtensionConditionAsserter
.... extension:assertedDate S 0..1 dateTime Date the condition was first asserted
URL: http://hl7.org/fhir/StructureDefinition/condition-assertedDate
... clinicalStatus S 0..1 CodeableConcept active | recurrence | relapse | inactive | remission | resolved
Binding: ConditionClinicalStatusCodes (required)
... Slices for category SC 2..* CodeableConcept category codes
Slice: Unordered, Open by value:$this
.... category:encounter-diagnosis S 0..1 CodeableConcept encounter-diagnosis
Required Pattern: At least the following
..... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/condition-category
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: encounter-diagnosis
.... category:problem-or-health-concern S 0..* CodeableConcept problem-list-item | health-concern
Binding: USCoreProblemOrHealthConcern (7.0.0) (required)
.... category:screening-assessment SC 1..* CodeableConcept USCDI Health Status/Assessments Data Class. Requires at least a category code 'sdoh'
Binding: USCoreScreeningAssessmentConditionCategory (7.0.0) (required)
.... category:SDOHCC S 0..* CodeableConcept e.g., food-insecurity | transportation-insecurity
Binding: SDOHCC ValueSet SDOH Category (required): Codes for high-level SDOH categories.


... code S 1..1 CodeableConcept Identification of the condition, problem or diagnosis
Binding: USCoreConditionCodes (7.0.0) (required): Valueset to describe the actual problem experienced by the patient

Additional BindingsPurposeUsage
USCoreConditionCodes (7.0.0) Current
Digital Access Diagnoses . Extensible Condition.category = digital-access
Digital Literacy Diagnoses . Extensible Condition.category = digital-literacy
LessThanHighSchoolEducationDiagnoses (20240604) . Extensible Condition.category = educational-attainment
Elder Abuse Diagnoses . Extensible Condition.category = elder-abuse
UnemploymentDiagnoses (20240604) . Extensible Condition.category = employment-status
FinancialInsecurityDiagnoses (20240604) . Extensible Condition.category = financial-insecurity
FoodInsecurityDiagnoses (20240604) . Extensible Condition.category = food-insecurity
HealthInsuranceCoverageStatusDiagnoses (20240604) . Extensible Condition.category = health-insurance-coverage-status
HomelessnessDiagnoses (20240604) . Extensible Condition.category = homelessness
HousingInstabilityDiagnoses (20240604) . Extensible Condition.category = housing-instability
InadequateHousingDiagnoses (20240604) . Extensible Condition.category = inadequate-housing
VSAC 2.16.840.1.113762.1.4.1247.258 . Extensible Condition.category = incarceration-status
IntimatePartnerViolenceDiagnoses (20240604) . Extensible Condition.category = intimate-partner-violence
VSAC 2.16.840.1.113762.1.4.1247.262 . Extensible Condition.category = language-access
MaterialHardshipDiagnoses (20240604) . Extensible Condition.category = material-hardship
MedicalCostBurdenDiagnoses (20240604) . Extensible Condition.category = medical-cost-burden
HealthLiteracyDiagnoses (20240604) . Extensible Condition.category = personal-health-literacy
SocialConnectionDiagnoses (20240604) . Extensible Condition.category = social-connection
StressDiagnoses (20240604) . Extensible Condition.category = stress
TransportationInsecurityDiagnoses (20240604) . Extensible Condition.category = transportation-insecurity
Utility Insecurity Diagnoses . Extensible Condition.category = utility-insecurity
VeteranStatusDiagnoses (20240604) . Extensible Condition.category = veteran-status
USCoreConditionCodes (7.0.0) Required Condition.category = sdoh-category-unspecified
... bodySite 0..0
... subject S 1..1 Reference(US Core Patient Profile(7.0.0)) Who has the condition?
... encounter S 0..1 Reference(US Core Encounter Profile(7.0.0)) Encounter created as part of
... onset[x] S 0..1 Estimated or actual date, date-time, or age
.... onsetDateTime dateTime S
.... onsetPeriod Period
... abatement[x] S 0..1 When in resolution/remission
.... abatementDateTime dateTime S
.... abatementPeriod Period
... recordedDate S 0..1 dateTime Date record was first recorded
... recorder 0..1 Reference(Practitioner | PractitionerRole) Who recorded the condition
... asserter SC 0..1 Reference(RelatedPerson | US Core Patient Profile(7.0.0) | US Core Practitioner Profile(7.0.0) | SDOHCC PractitionerRole) Person or device that asserts this condition
... stage 0..0
... evidence S 0..* BackboneElement Supporting evidence
.... code 0..* CodeableConcept Manifestation/symptom
.... Slices for detail 0..* Reference(Resource) Supporting information found elsewhere
Slice: Unordered, Open by profile:resolve()
..... detail:SupportedDetail S 0..* Reference(SDOHCC Observation Screening Response | SDOHCC Condition | SDOHCC Observation Assessment | SDC Questionnaire Response) Supporting information found elsewhere

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Condition.clinicalStatusrequiredConditionClinicalStatusCodes
http://hl7.org/fhir/ValueSet/condition-clinical
from the FHIR Standard
Condition.verificationStatusrequiredConditionVerificationStatus
http://hl7.org/fhir/ValueSet/condition-ver-status
from the FHIR Standard
Condition.category:problem-or-health-concernrequiredUSCoreProblemOrHealthConcern
http://hl7.org/fhir/us/core/ValueSet/us-core-problem-or-health-concern|7.0.0
Condition.category:screening-assessmentrequiredUSCoreScreeningAssessmentConditionCategory
http://hl7.org/fhir/us/core/ValueSet/us-core-screening-assessment-condition-category|7.0.0
Condition.category:SDOHCCrequiredSDOHCCValueSetSDOHCategory
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetSDOHCategory
from this IG
Condition.coderequiredUSCoreConditionCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-condition-code|7.0.0

Constraints

IdGradePath(s)DetailsRequirements
SDOH-Con-1errorConditionCan only have a max of one asserter.
: extension('http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-ExtensionConditionAsserter').count()+asserter.count()<=1
SDOH-Con-2errorConditionAt least one Condition.category SHALL be encounter-diagnosis, problem-list-item, or health-concern
: category.where(coding.where(system = 'http://terminology.hl7.org/CodeSystem/condition-category' and code='encounter-diagnosis').exists()).exists() or category.where(coding.memberOf('http://hl7.org/fhir/us/core/ValueSet/us-core-problem-or-health-concern')).exists()
SDOH-Con-3errorConditionAt least one Condition.category SHALL be sdoh
: category.where(coding.where(system = 'http://hl7.org/fhir/us/core/CodeSystem/us-core-category' and code='sdoh').exists()).exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition C 0..* Condition Detailed information about SDOH conditions, problems or diagnoses
con-3: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item
con-4: If condition is abated, then clinicalStatus must be either inactive, resolved, or remission
con-5: Condition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error
SDOH-Con-1: Can only have a max of one asserter.
SDOH-Con-2: At least one Condition.category SHALL be encounter-diagnosis, problem-list-item, or health-concern
SDOH-Con-3: At least one Condition.category SHALL be sdoh
... id Σ 0..1 id Logical id of this artifact
... meta SΣ 0..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated SΣ 0..1 instant When the resource last changed
.... source Σ 0..1 uri Identifies where the resource comes from
.... profile Σ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
.... security Σ 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... tag Σ 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:asserterDevice SC 0..1 Reference(Device) Optional Extensions Element
URL: http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-ExtensionConditionAsserter
.... extension:assertedDate S 0..1 dateTime Date the condition was first asserted
URL: http://hl7.org/fhir/StructureDefinition/condition-assertedDate
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier External Ids for this condition
... clinicalStatus ?!SΣC 0..1 CodeableConcept active | recurrence | relapse | inactive | remission | resolved
Binding: ConditionClinicalStatusCodes (required)
... verificationStatus ?!SΣC 0..1 CodeableConcept unconfirmed | provisional | differential | confirmed | refuted | entered-in-error
Binding: ConditionVerificationStatus (required)
... Slices for category SC 2..* CodeableConcept category codes
Slice: Unordered, Open by value:$this
Binding: ConditionCategoryCodes (extensible): A category assigned to the condition.


.... category:encounter-diagnosis S 0..1 CodeableConcept encounter-diagnosis
Binding: ConditionCategoryCodes (extensible): A category assigned to the condition.



Required Pattern: At least the following
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/condition-category
...... version 0..1 string Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: encounter-diagnosis
...... display 0..1 string Representation defined by the system
...... userSelected 0..1 boolean If this coding was chosen directly by the user
..... text 0..1 string Plain text representation of the concept
.... category:problem-or-health-concern S 0..* CodeableConcept problem-list-item | health-concern
Binding: USCoreProblemOrHealthConcern (7.0.0) (required)
.... category:screening-assessment SC 1..* CodeableConcept USCDI Health Status/Assessments Data Class. Requires at least a category code 'sdoh'
Binding: USCoreScreeningAssessmentConditionCategory (7.0.0) (required)
.... category:SDOHCC S 0..* CodeableConcept e.g., food-insecurity | transportation-insecurity
Binding: SDOHCC ValueSet SDOH Category (required): Codes for high-level SDOH categories.


... severity 0..1 CodeableConcept Subjective severity of condition
Binding: Condition/DiagnosisSeverity (preferred): A subjective assessment of the severity of the condition as evaluated by the clinician.

... code SΣ 1..1 CodeableConcept Identification of the condition, problem or diagnosis
Binding: USCoreConditionCodes (7.0.0) (required): Valueset to describe the actual problem experienced by the patient

Additional BindingsPurposeUsage
USCoreConditionCodes (7.0.0) Current
Digital Access Diagnoses . Extensible Condition.category = digital-access
Digital Literacy Diagnoses . Extensible Condition.category = digital-literacy
LessThanHighSchoolEducationDiagnoses (20240604) . Extensible Condition.category = educational-attainment
Elder Abuse Diagnoses . Extensible Condition.category = elder-abuse
UnemploymentDiagnoses (20240604) . Extensible Condition.category = employment-status
FinancialInsecurityDiagnoses (20240604) . Extensible Condition.category = financial-insecurity
FoodInsecurityDiagnoses (20240604) . Extensible Condition.category = food-insecurity
HealthInsuranceCoverageStatusDiagnoses (20240604) . Extensible Condition.category = health-insurance-coverage-status
HomelessnessDiagnoses (20240604) . Extensible Condition.category = homelessness
HousingInstabilityDiagnoses (20240604) . Extensible Condition.category = housing-instability
InadequateHousingDiagnoses (20240604) . Extensible Condition.category = inadequate-housing
VSAC 2.16.840.1.113762.1.4.1247.258 . Extensible Condition.category = incarceration-status
IntimatePartnerViolenceDiagnoses (20240604) . Extensible Condition.category = intimate-partner-violence
VSAC 2.16.840.1.113762.1.4.1247.262 . Extensible Condition.category = language-access
MaterialHardshipDiagnoses (20240604) . Extensible Condition.category = material-hardship
MedicalCostBurdenDiagnoses (20240604) . Extensible Condition.category = medical-cost-burden
HealthLiteracyDiagnoses (20240604) . Extensible Condition.category = personal-health-literacy
SocialConnectionDiagnoses (20240604) . Extensible Condition.category = social-connection
StressDiagnoses (20240604) . Extensible Condition.category = stress
TransportationInsecurityDiagnoses (20240604) . Extensible Condition.category = transportation-insecurity
Utility Insecurity Diagnoses . Extensible Condition.category = utility-insecurity
VeteranStatusDiagnoses (20240604) . Extensible Condition.category = veteran-status
USCoreConditionCodes (7.0.0) Required Condition.category = sdoh-category-unspecified
... subject SΣ 1..1 Reference(US Core Patient Profile(7.0.0)) Who has the condition?
... encounter SΣ 0..1 Reference(US Core Encounter Profile(7.0.0)) Encounter created as part of
... onset[x] SΣ 0..1 Estimated or actual date, date-time, or age
.... onsetDateTime dateTime S
.... onsetPeriod Period
... abatement[x] SC 0..1 When in resolution/remission
.... abatementDateTime dateTime S
.... abatementPeriod Period
... recordedDate SΣ 0..1 dateTime Date record was first recorded
... recorder Σ 0..1 Reference(Practitioner | PractitionerRole) Who recorded the condition
... asserter SΣC 0..1 Reference(RelatedPerson | US Core Patient Profile(7.0.0) | US Core Practitioner Profile(7.0.0) | SDOHCC PractitionerRole) Person or device that asserts this condition
... evidence SC 0..* BackboneElement Supporting evidence
con-2: evidence SHALL have code or details
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code ΣC 0..* CodeableConcept Manifestation/symptom
Binding: ManifestationAndSymptomCodes (example): Codes that describe the manifestation or symptoms of a condition.


.... Slices for detail ΣC 0..* Reference(Resource) Supporting information found elsewhere
Slice: Unordered, Open by profile:resolve()
..... detail:SupportedDetail SΣC 0..* Reference(SDOHCC Observation Screening Response | SDOHCC Condition | SDOHCC Observation Assessment | SDC Questionnaire Response) Supporting information found elsewhere
... note 0..* Annotation Additional information about the Condition

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Condition.meta.securityextensibleAll Security Labels
http://hl7.org/fhir/ValueSet/security-labels
from the FHIR Standard
Condition.meta.tagexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Condition.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Condition.clinicalStatusrequiredConditionClinicalStatusCodes
http://hl7.org/fhir/ValueSet/condition-clinical
from the FHIR Standard
Condition.verificationStatusrequiredConditionVerificationStatus
http://hl7.org/fhir/ValueSet/condition-ver-status
from the FHIR Standard
Condition.categoryextensibleConditionCategoryCodes
http://hl7.org/fhir/ValueSet/condition-category
from the FHIR Standard
Condition.category:encounter-diagnosisextensiblePattern: encounter-diagnosis
http://hl7.org/fhir/ValueSet/condition-category
from the FHIR Standard
Condition.category:problem-or-health-concernrequiredUSCoreProblemOrHealthConcern
http://hl7.org/fhir/us/core/ValueSet/us-core-problem-or-health-concern|7.0.0
Condition.category:screening-assessmentrequiredUSCoreScreeningAssessmentConditionCategory
http://hl7.org/fhir/us/core/ValueSet/us-core-screening-assessment-condition-category|7.0.0
Condition.category:SDOHCCrequiredSDOHCCValueSetSDOHCategory
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetSDOHCategory
from this IG
Condition.severitypreferredCondition/DiagnosisSeverity
http://hl7.org/fhir/ValueSet/condition-severity
from the FHIR Standard
Condition.coderequiredUSCoreConditionCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-condition-code|7.0.0
Condition.stage.summaryexampleConditionStage
http://hl7.org/fhir/ValueSet/condition-stage
from the FHIR Standard
Condition.stage.typeexampleConditionStageType
http://hl7.org/fhir/ValueSet/condition-stage-type
from the FHIR Standard
Condition.evidence.codeexampleManifestationAndSymptomCodes
http://hl7.org/fhir/ValueSet/manifestation-or-symptom
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
SDOH-Con-1errorConditionCan only have a max of one asserter.
: extension('http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-ExtensionConditionAsserter').count()+asserter.count()<=1
SDOH-Con-2errorConditionAt least one Condition.category SHALL be encounter-diagnosis, problem-list-item, or health-concern
: category.where(coding.where(system = 'http://terminology.hl7.org/CodeSystem/condition-category' and code='encounter-diagnosis').exists()).exists() or category.where(coding.memberOf('http://hl7.org/fhir/us/core/ValueSet/us-core-problem-or-health-concern')).exists()
SDOH-Con-3errorConditionAt least one Condition.category SHALL be sdoh
: category.where(coding.where(system = 'http://hl7.org/fhir/us/core/CodeSystem/us-core-category' and code='sdoh').exists()).exists()
con-2errorCondition.evidenceevidence SHALL have code or details
: code.exists() or detail.exists()
con-3best practiceConditionCondition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item
: clinicalStatus.exists() or verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code = 'entered-in-error').exists() or category.select($this='problem-list-item').empty()
con-4errorConditionIf condition is abated, then clinicalStatus must be either inactive, resolved, or remission
: abatement.empty() or clinicalStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-clinical' and (code='resolved' or code='remission' or code='inactive')).exists()
con-5errorConditionCondition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error
: verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').empty() or clinicalStatus.empty()
dom-2errorConditionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorConditionIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorConditionIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorConditionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceConditionA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

 

Other representations of profile: CSV, Excel, Schematron