OpenMRS Core FHIR Implementation Guide
0.1.0 - ci-build

OpenMRS Core FHIR Implementation Guide - Local Development build (v0.1.0). See the Directory of published versions

Resource Profile: OpenMRS condition

Official URL: http://fhir.openmrs.org/core/StructureDefinition/omrs-Condition Version: 0.1.0
Active as of 2023-06-23 Computable Name: OMRSCondition

A FHIR Condition as understood by OpenMRS

Usage:

Formal Views of Profile Content

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

This structure is derived from Condition

NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition 0..*ConditionDetailed information about conditions, problems or diagnoses
... id 1..1idLogical id of this artifact
... clinicalStatus 0..0
... verificationStatus 0..0
... severity 0..0
... code 0..1CodeableConceptIdentification of the condition, problem or diagnosis
... bodySite 0..0
... subject 1..1Reference(OpenMRS Patient)Who has the condition?
... encounter 0..0
... Slices for onset[x] 0..1dateTime, Age, Period, Range, stringEstimated or actual date, date-time, or age
Slice: Unordered, Open by type:$this
.... onset[x]:onsetDateTime 0..1dateTimeEstimated or actual date, date-time, or age
... recordedDate 0..1dateTimeDate record was first recorded
... recorder 0..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson)Who recorded the condition
... asserter 0..0
... stage 0..0
... evidence 0..0

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition C0..*ConditionDetailed information about conditions, problems or diagnoses
... id Σ1..1idLogical id of this artifact
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... subject Σ1..1Reference(OpenMRS Patient)Who has the condition?
... Slices for onset[x] Σ0..1Estimated or actual date, date-time, or age
Slice: Unordered, Open by type:$this
.... onsetDateTimedateTime
.... onsetAgeAge
.... onsetPeriodPeriod
.... onsetRangeRange
.... onsetStringstring
.... onset[x]:onsetDateTime Σ0..1dateTimeEstimated or actual date, date-time, or age
... recordedDate Σ0..1dateTimeDate record was first recorded
... recorder Σ0..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson)Who recorded the condition

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Condition.codeexampleCondition/Problem/DiagnosisCodes

Constraints

IdGradePath(s)DetailsRequirements
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()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition C0..*ConditionDetailed information about conditions, problems or diagnoses
... id Σ1..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierExternal Ids for this condition
... code Σ0..1CodeableConceptIdentification of the condition, problem or diagnosis
Binding: Condition/Problem/DiagnosisCodes (example): Identification of the condition or diagnosis.

... subject Σ1..1Reference(OpenMRS Patient)Who has the condition?
... Slices for onset[x] Σ0..1Estimated or actual date, date-time, or age
Slice: Unordered, Open by type:$this
.... onsetDateTimedateTime
.... onsetAgeAge
.... onsetPeriodPeriod
.... onsetRangeRange
.... onsetStringstring
.... onset[x]:onsetDateTime Σ0..1dateTimeEstimated or actual date, date-time, or age
... abatement[x] C0..1When in resolution/remission
.... abatementDateTimedateTime
.... abatementAgeAge
.... abatementPeriodPeriod
.... abatementRangeRange
.... abatementStringstring
... recordedDate Σ0..1dateTimeDate record was first recorded
... recorder Σ0..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson)Who recorded the condition
... note 0..*AnnotationAdditional information about the Condition

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Condition.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Condition.codeexampleCondition/Problem/DiagnosisCodes
Condition.stage.summaryexampleConditionStage
Condition.stage.typeexampleConditionStageType
Condition.evidence.codeexampleManifestationAndSymptomCodes

Constraints

IdGradePath(s)DetailsRequirements
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

Summary

Mandatory: 1 element
Prohibited: 9 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element Condition.onset[x] is sliced based on the value of type:$this

Differential View

This structure is derived from Condition

NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition 0..*ConditionDetailed information about conditions, problems or diagnoses
... id 1..1idLogical id of this artifact
... clinicalStatus 0..0
... verificationStatus 0..0
... severity 0..0
... code 0..1CodeableConceptIdentification of the condition, problem or diagnosis
... bodySite 0..0
... subject 1..1Reference(OpenMRS Patient)Who has the condition?
... encounter 0..0
... Slices for onset[x] 0..1dateTime, Age, Period, Range, stringEstimated or actual date, date-time, or age
Slice: Unordered, Open by type:$this
.... onset[x]:onsetDateTime 0..1dateTimeEstimated or actual date, date-time, or age
... recordedDate 0..1dateTimeDate record was first recorded
... recorder 0..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson)Who recorded the condition
... asserter 0..0
... stage 0..0
... evidence 0..0

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition C0..*ConditionDetailed information about conditions, problems or diagnoses
... id Σ1..1idLogical id of this artifact
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... subject Σ1..1Reference(OpenMRS Patient)Who has the condition?
... Slices for onset[x] Σ0..1Estimated or actual date, date-time, or age
Slice: Unordered, Open by type:$this
.... onsetDateTimedateTime
.... onsetAgeAge
.... onsetPeriodPeriod
.... onsetRangeRange
.... onsetStringstring
.... onset[x]:onsetDateTime Σ0..1dateTimeEstimated or actual date, date-time, or age
... recordedDate Σ0..1dateTimeDate record was first recorded
... recorder Σ0..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson)Who recorded the condition

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Condition.codeexampleCondition/Problem/DiagnosisCodes

Constraints

IdGradePath(s)DetailsRequirements
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()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition C0..*ConditionDetailed information about conditions, problems or diagnoses
... id Σ1..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierExternal Ids for this condition
... code Σ0..1CodeableConceptIdentification of the condition, problem or diagnosis
Binding: Condition/Problem/DiagnosisCodes (example): Identification of the condition or diagnosis.

... subject Σ1..1Reference(OpenMRS Patient)Who has the condition?
... Slices for onset[x] Σ0..1Estimated or actual date, date-time, or age
Slice: Unordered, Open by type:$this
.... onsetDateTimedateTime
.... onsetAgeAge
.... onsetPeriodPeriod
.... onsetRangeRange
.... onsetStringstring
.... onset[x]:onsetDateTime Σ0..1dateTimeEstimated or actual date, date-time, or age
... abatement[x] C0..1When in resolution/remission
.... abatementDateTimedateTime
.... abatementAgeAge
.... abatementPeriodPeriod
.... abatementRangeRange
.... abatementStringstring
... recordedDate Σ0..1dateTimeDate record was first recorded
... recorder Σ0..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson)Who recorded the condition
... note 0..*AnnotationAdditional information about the Condition

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Condition.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Condition.codeexampleCondition/Problem/DiagnosisCodes
Condition.stage.summaryexampleConditionStage
Condition.stage.typeexampleConditionStageType
Condition.evidence.codeexampleManifestationAndSymptomCodes

Constraints

IdGradePath(s)DetailsRequirements
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

Summary

Mandatory: 1 element
Prohibited: 9 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element Condition.onset[x] is sliced based on the value of type:$this

 

Other representations of profile: CSV, Excel, Schematron