NCPI FHIR Implementation Guide
0.2.0 - ci-build
NCPI FHIR Implementation Guide - Local Development build (v0.2.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Official URL: https://nih-ncpi.github.io/ncpi-fhir-ig/StructureDefinition/phenotype | Version: 0.2.0 | |||
Draft as of 2024-03-04 | Computable Name: Phenotype |
Representation of phenotypic observations (present or absent)
The Phenotype profile is used to associate a patient with one or more phenotypic observations. These observations can be either present or absent and will likely have an age associated with when the phenotype was observed.
The primary code system employed by this profile is Human Phenotype Ontology.
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from Condition
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Condition | 0..* | Condition | Detailed information about conditions, problems or diagnoses | |
code | ||||
Slices for coding | 1..* | Coding | Code defined by a terminology system Slice: Ordered, Open At End by pattern:code | |
coding:pheno-code | 1..* | Coding | Code defined by a terminology system | |
code | 0..1 | code | Symbol in syntax defined by the system Binding: Phenotype Codes (required) | |
Documentation for this format |
Path | Conformance | ValueSet | URI |
Condition.code.coding:pheno-code.code | required | PhenotypeCodes (a valid code from Human Phenotype Ontology)https://nih-ncpi.github.io/ncpi-fhir-ig/ValueSet/phenotype-codes from this IG |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Condition | C | 0..* | Condition | Detailed information about conditions, problems or diagnoses con-3: Condition.clinicalStatus SHOULD 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 |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
clinicalStatus | ?!ΣC | 0..1 | CodeableConcept | active | recurrence | relapse | inactive | remission | resolved Binding: ConditionClinicalStatusCodes (required): The clinical status of the condition or diagnosis. |
verificationStatus | ?!ΣC | 0..1 | CodeableConcept | unconfirmed | provisional | differential | confirmed | refuted | entered-in-error Binding: ConditionVerificationStatus (required): The verification status to support or decline the clinical status of the condition or diagnosis. |
subject | Σ | 1..1 | Reference(Patient | Group) | Who has the condition? |
Documentation for this format |
Path | Conformance | ValueSet | URI |
Condition.clinicalStatus | required | ConditionClinicalStatusCodeshttp://hl7.org/fhir/ValueSet/condition-clinical|4.3.0 from the FHIR Standard | |
Condition.verificationStatus | required | ConditionVerificationStatushttp://hl7.org/fhir/ValueSet/condition-ver-status|4.3.0 from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
con-3 | best practice | Condition | Condition.clinicalStatus SHOULD be present if verificationStatus is not entered-in-error and category is problem-list-item : verificationStatus.empty().not() and verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').exists().not() and category.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-category' and code='problem-list-item').exists() implies clinicalStatus.empty().not() | |
con-4 | error | Condition | If 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-5 | error | Condition | Condition.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-2 | error | Condition | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Condition | 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 : contained.where(((id.exists() and ('#'+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(uri) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | Condition | If 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-5 | error | Condition | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Condition | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
Condition | C | 0..* | Condition | Detailed information about conditions, problems or diagnoses con-3: Condition.clinicalStatus SHOULD 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 | ||||
id | Σ | 0..1 | id | Logical id of this artifact | ||||
meta | Σ | 0..1 | Meta | Metadata about the resource | ||||
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): IETF language tag
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources dom-r4b: Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
identifier | Σ | 0..* | Identifier | External Ids for this condition | ||||
clinicalStatus | ?!ΣC | 0..1 | CodeableConcept | active | recurrence | relapse | inactive | remission | resolved Binding: ConditionClinicalStatusCodes (required): The clinical status of the condition or diagnosis. | ||||
verificationStatus | ?!ΣC | 0..1 | CodeableConcept | unconfirmed | provisional | differential | confirmed | refuted | entered-in-error Binding: ConditionVerificationStatus (required): The verification status to support or decline the clinical status of the condition or diagnosis. | ||||
category | 0..* | CodeableConcept | problem-list-item | encounter-diagnosis Binding: ConditionCategoryCodes (extensible): A category assigned to the condition. | |||||
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 | Σ | 0..1 | CodeableConcept | Identification of the condition, problem or diagnosis Binding: Condition/Problem/DiagnosisCodes (example): Identification of the condition or diagnosis. | ||||
id | 0..1 | id | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
Slices for coding | Σ | 1..* | Coding | Code defined by a terminology system Slice: Ordered, Open At End by pattern:code | ||||
coding:pheno-code | Σ | 1..* | Coding | Code defined by a terminology system | ||||
id | 0..1 | id | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
system | Σ | 0..1 | uri | Identity of the terminology system | ||||
version | Σ | 0..1 | string | Version of the system - if relevant | ||||
code | Σ | 0..1 | code | Symbol in syntax defined by the system Binding: Phenotype Codes (required) | ||||
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 | ||||
bodySite | Σ | 0..* | CodeableConcept | Anatomical location, if relevant Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body site concepts | ||||
subject | Σ | 1..1 | Reference(Patient | Group) | Who has the condition? | ||||
encounter | Σ | 0..1 | Reference(Encounter) | Encounter created as part of | ||||
onset[x] | Σ | 0..1 | Estimated or actual date, date-time, or age | |||||
onsetDateTime | dateTime | |||||||
onsetAge | Age | |||||||
onsetPeriod | Period | |||||||
onsetRange | Range | |||||||
onsetString | string | |||||||
abatement[x] | C | 0..1 | When in resolution/remission | |||||
abatementDateTime | dateTime | |||||||
abatementAge | Age | |||||||
abatementPeriod | Period | |||||||
abatementRange | Range | |||||||
abatementString | string | |||||||
recordedDate | Σ | 0..1 | dateTime | Date record was first recorded | ||||
recorder | Σ | 0..1 | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | Who recorded the condition | ||||
asserter | Σ | 0..1 | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | Person who asserts this condition | ||||
stage | C | 0..* | BackboneElement | Stage/grade, usually assessed formally con-1: Stage SHALL have summary or assessment | ||||
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 | ||||
summary | C | 0..1 | CodeableConcept | Simple summary (disease specific) Binding: ConditionStage (example): Codes describing condition stages (e.g. Cancer stages). | ||||
assessment | C | 0..* | Reference(ClinicalImpression | DiagnosticReport | Observation) | Formal record of assessment | ||||
type | 0..1 | CodeableConcept | Kind of staging Binding: ConditionStageType (example): Codes describing the kind of condition staging (e.g. clinical or pathological). | |||||
evidence | C | 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. | ||||
detail | ΣC | 0..* | Reference(Resource) | Supporting information found elsewhere | ||||
note | 0..* | Annotation | Additional information about the Condition | |||||
Documentation for this format |
Path | Conformance | ValueSet | URI | |||
Condition.language | preferred | CommonLanguages
http://hl7.org/fhir/ValueSet/languages from the FHIR Standard | ||||
Condition.clinicalStatus | required | ConditionClinicalStatusCodeshttp://hl7.org/fhir/ValueSet/condition-clinical|4.3.0 from the FHIR Standard | ||||
Condition.verificationStatus | required | ConditionVerificationStatushttp://hl7.org/fhir/ValueSet/condition-ver-status|4.3.0 from the FHIR Standard | ||||
Condition.category | extensible | ConditionCategoryCodeshttp://hl7.org/fhir/ValueSet/condition-category from the FHIR Standard | ||||
Condition.severity | preferred | Condition/DiagnosisSeverityhttp://hl7.org/fhir/ValueSet/condition-severity from the FHIR Standard | ||||
Condition.code | example | Condition/Problem/DiagnosisCodeshttp://hl7.org/fhir/ValueSet/condition-code from the FHIR Standard | ||||
Condition.code.coding:pheno-code.code | required | PhenotypeCodes (a valid code from Human Phenotype Ontology)https://nih-ncpi.github.io/ncpi-fhir-ig/ValueSet/phenotype-codes from this IG | ||||
Condition.bodySite | example | SNOMEDCTBodyStructureshttp://hl7.org/fhir/ValueSet/body-site from the FHIR Standard | ||||
Condition.stage.summary | example | ConditionStagehttp://hl7.org/fhir/ValueSet/condition-stage from the FHIR Standard | ||||
Condition.stage.type | example | ConditionStageTypehttp://hl7.org/fhir/ValueSet/condition-stage-type from the FHIR Standard | ||||
Condition.evidence.code | example | ManifestationAndSymptomCodeshttp://hl7.org/fhir/ValueSet/manifestation-or-symptom from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
con-1 | error | Condition.stage | Stage SHALL have summary or assessment : summary.exists() or assessment.exists() | |
con-2 | error | Condition.evidence | evidence SHALL have code or details : code.exists() or detail.exists() | |
con-3 | best practice | Condition | Condition.clinicalStatus SHOULD be present if verificationStatus is not entered-in-error and category is problem-list-item : verificationStatus.empty().not() and verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').exists().not() and category.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-category' and code='problem-list-item').exists() implies clinicalStatus.empty().not() | |
con-4 | error | Condition | If 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-5 | error | Condition | Condition.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-2 | error | Condition | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Condition | 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 : contained.where(((id.exists() and ('#'+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(uri) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | Condition | If 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-5 | error | Condition | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Condition | A resource should have narrative for robust management : text.`div`.exists() | |
dom-r4b | warning | Condition.contained | Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems : ($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic) | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
Differential View
This structure is derived from Condition
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Condition | 0..* | Condition | Detailed information about conditions, problems or diagnoses | |
code | ||||
Slices for coding | 1..* | Coding | Code defined by a terminology system Slice: Ordered, Open At End by pattern:code | |
coding:pheno-code | 1..* | Coding | Code defined by a terminology system | |
code | 0..1 | code | Symbol in syntax defined by the system Binding: Phenotype Codes (required) | |
Documentation for this format |
Path | Conformance | ValueSet | URI |
Condition.code.coding:pheno-code.code | required | PhenotypeCodes (a valid code from Human Phenotype Ontology)https://nih-ncpi.github.io/ncpi-fhir-ig/ValueSet/phenotype-codes from this IG |
Key Elements View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Condition | C | 0..* | Condition | Detailed information about conditions, problems or diagnoses con-3: Condition.clinicalStatus SHOULD 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 |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
clinicalStatus | ?!ΣC | 0..1 | CodeableConcept | active | recurrence | relapse | inactive | remission | resolved Binding: ConditionClinicalStatusCodes (required): The clinical status of the condition or diagnosis. |
verificationStatus | ?!ΣC | 0..1 | CodeableConcept | unconfirmed | provisional | differential | confirmed | refuted | entered-in-error Binding: ConditionVerificationStatus (required): The verification status to support or decline the clinical status of the condition or diagnosis. |
subject | Σ | 1..1 | Reference(Patient | Group) | Who has the condition? |
Documentation for this format |
Path | Conformance | ValueSet | URI |
Condition.clinicalStatus | required | ConditionClinicalStatusCodeshttp://hl7.org/fhir/ValueSet/condition-clinical|4.3.0 from the FHIR Standard | |
Condition.verificationStatus | required | ConditionVerificationStatushttp://hl7.org/fhir/ValueSet/condition-ver-status|4.3.0 from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
con-3 | best practice | Condition | Condition.clinicalStatus SHOULD be present if verificationStatus is not entered-in-error and category is problem-list-item : verificationStatus.empty().not() and verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').exists().not() and category.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-category' and code='problem-list-item').exists() implies clinicalStatus.empty().not() | |
con-4 | error | Condition | If 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-5 | error | Condition | Condition.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-2 | error | Condition | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Condition | 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 : contained.where(((id.exists() and ('#'+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(uri) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | Condition | If 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-5 | error | Condition | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Condition | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
Condition | C | 0..* | Condition | Detailed information about conditions, problems or diagnoses con-3: Condition.clinicalStatus SHOULD 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 | ||||
id | Σ | 0..1 | id | Logical id of this artifact | ||||
meta | Σ | 0..1 | Meta | Metadata about the resource | ||||
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): IETF language tag
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources dom-r4b: Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
identifier | Σ | 0..* | Identifier | External Ids for this condition | ||||
clinicalStatus | ?!ΣC | 0..1 | CodeableConcept | active | recurrence | relapse | inactive | remission | resolved Binding: ConditionClinicalStatusCodes (required): The clinical status of the condition or diagnosis. | ||||
verificationStatus | ?!ΣC | 0..1 | CodeableConcept | unconfirmed | provisional | differential | confirmed | refuted | entered-in-error Binding: ConditionVerificationStatus (required): The verification status to support or decline the clinical status of the condition or diagnosis. | ||||
category | 0..* | CodeableConcept | problem-list-item | encounter-diagnosis Binding: ConditionCategoryCodes (extensible): A category assigned to the condition. | |||||
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 | Σ | 0..1 | CodeableConcept | Identification of the condition, problem or diagnosis Binding: Condition/Problem/DiagnosisCodes (example): Identification of the condition or diagnosis. | ||||
id | 0..1 | id | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
Slices for coding | Σ | 1..* | Coding | Code defined by a terminology system Slice: Ordered, Open At End by pattern:code | ||||
coding:pheno-code | Σ | 1..* | Coding | Code defined by a terminology system | ||||
id | 0..1 | id | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
system | Σ | 0..1 | uri | Identity of the terminology system | ||||
version | Σ | 0..1 | string | Version of the system - if relevant | ||||
code | Σ | 0..1 | code | Symbol in syntax defined by the system Binding: Phenotype Codes (required) | ||||
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 | ||||
bodySite | Σ | 0..* | CodeableConcept | Anatomical location, if relevant Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body site concepts | ||||
subject | Σ | 1..1 | Reference(Patient | Group) | Who has the condition? | ||||
encounter | Σ | 0..1 | Reference(Encounter) | Encounter created as part of | ||||
onset[x] | Σ | 0..1 | Estimated or actual date, date-time, or age | |||||
onsetDateTime | dateTime | |||||||
onsetAge | Age | |||||||
onsetPeriod | Period | |||||||
onsetRange | Range | |||||||
onsetString | string | |||||||
abatement[x] | C | 0..1 | When in resolution/remission | |||||
abatementDateTime | dateTime | |||||||
abatementAge | Age | |||||||
abatementPeriod | Period | |||||||
abatementRange | Range | |||||||
abatementString | string | |||||||
recordedDate | Σ | 0..1 | dateTime | Date record was first recorded | ||||
recorder | Σ | 0..1 | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | Who recorded the condition | ||||
asserter | Σ | 0..1 | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | Person who asserts this condition | ||||
stage | C | 0..* | BackboneElement | Stage/grade, usually assessed formally con-1: Stage SHALL have summary or assessment | ||||
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 | ||||
summary | C | 0..1 | CodeableConcept | Simple summary (disease specific) Binding: ConditionStage (example): Codes describing condition stages (e.g. Cancer stages). | ||||
assessment | C | 0..* | Reference(ClinicalImpression | DiagnosticReport | Observation) | Formal record of assessment | ||||
type | 0..1 | CodeableConcept | Kind of staging Binding: ConditionStageType (example): Codes describing the kind of condition staging (e.g. clinical or pathological). | |||||
evidence | C | 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. | ||||
detail | ΣC | 0..* | Reference(Resource) | Supporting information found elsewhere | ||||
note | 0..* | Annotation | Additional information about the Condition | |||||
Documentation for this format |
Path | Conformance | ValueSet | URI | |||
Condition.language | preferred | CommonLanguages
http://hl7.org/fhir/ValueSet/languages from the FHIR Standard | ||||
Condition.clinicalStatus | required | ConditionClinicalStatusCodeshttp://hl7.org/fhir/ValueSet/condition-clinical|4.3.0 from the FHIR Standard | ||||
Condition.verificationStatus | required | ConditionVerificationStatushttp://hl7.org/fhir/ValueSet/condition-ver-status|4.3.0 from the FHIR Standard | ||||
Condition.category | extensible | ConditionCategoryCodeshttp://hl7.org/fhir/ValueSet/condition-category from the FHIR Standard | ||||
Condition.severity | preferred | Condition/DiagnosisSeverityhttp://hl7.org/fhir/ValueSet/condition-severity from the FHIR Standard | ||||
Condition.code | example | Condition/Problem/DiagnosisCodeshttp://hl7.org/fhir/ValueSet/condition-code from the FHIR Standard | ||||
Condition.code.coding:pheno-code.code | required | PhenotypeCodes (a valid code from Human Phenotype Ontology)https://nih-ncpi.github.io/ncpi-fhir-ig/ValueSet/phenotype-codes from this IG | ||||
Condition.bodySite | example | SNOMEDCTBodyStructureshttp://hl7.org/fhir/ValueSet/body-site from the FHIR Standard | ||||
Condition.stage.summary | example | ConditionStagehttp://hl7.org/fhir/ValueSet/condition-stage from the FHIR Standard | ||||
Condition.stage.type | example | ConditionStageTypehttp://hl7.org/fhir/ValueSet/condition-stage-type from the FHIR Standard | ||||
Condition.evidence.code | example | ManifestationAndSymptomCodeshttp://hl7.org/fhir/ValueSet/manifestation-or-symptom from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
con-1 | error | Condition.stage | Stage SHALL have summary or assessment : summary.exists() or assessment.exists() | |
con-2 | error | Condition.evidence | evidence SHALL have code or details : code.exists() or detail.exists() | |
con-3 | best practice | Condition | Condition.clinicalStatus SHOULD be present if verificationStatus is not entered-in-error and category is problem-list-item : verificationStatus.empty().not() and verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').exists().not() and category.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-category' and code='problem-list-item').exists() implies clinicalStatus.empty().not() | |
con-4 | error | Condition | If 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-5 | error | Condition | Condition.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-2 | error | Condition | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Condition | 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 : contained.where(((id.exists() and ('#'+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(uri) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | Condition | If 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-5 | error | Condition | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Condition | A resource should have narrative for robust management : text.`div`.exists() | |
dom-r4b | warning | Condition.contained | Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems : ($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic) | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
Other representations of profile: CSV, Excel, Schematron
The Condition.code must have one Coding from the Human Phenotype Ontology. For cases where there is no ideal HPO code to suit a researcher’s needs, users may use a general HPO code as the first entry in the code array and one or more codes from other systems which are more technically accurate.
Condition.verificationStatus is used to convey presence/absence of a given phenotype using a subset of the Hl7 codes as follows:
Present/Absent | Verification Status |
---|---|
Present | Confirmed |
Absent | Refuted |
Depending on the data available the condition may be tagged using recordedDate or onset.
Condition.recordedDate is described as “date record was first recorded” and, therefore, is expected to be the earliest date associated with the ascertainment of the diagnosis. Condition.onset is expected only for cases where there is confidence that the date is an actual onset date. Both dates should be provided as relativeDateTime relative to the patient’s birth date.