International Patient Summary Implementation Guide
1.0.0 - STU 1

This page is part of the International Patient Summary Implementation Guide (v1.0.0: STU 1) based on FHIR R4. The current version which supercedes this version is 1.1.0. For a full list of available versions, see the Directory of published versions

StructureDefinition: ConditionUvIps

This profile represents the constraints applied to the Condition resource by the International Patient Summary (IPS) FHIR Implementation Guide. A record of a problem is represented in the patient summary as an instance of the Condition resource constrained by this profile.

The official URL for this profile is:

http://hl7.org/fhir/uv/ips/StructureDefinition/Condition-uv-ips

Formal Views of Profile Content

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

This structure is derived from Condition

Summary

Mandatory: 3 elements
Must-Support: 14 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element Condition.code is sliced based on the value of pattern:$this
  • The element Condition.onset[x] is sliced based on the value of type:$this (Closed)
  • The element Condition.abatement[x] is sliced based on the value of type:$this (Closed)

This structure is derived from Condition

NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition S0..*ConditionDocumentation of a health problem of the patient
... clinicalStatus S1..1CodeableConceptIPSConcept - reference to a terminology or just text
... verificationStatus S0..1CodeableConceptIPSConcept - reference to a terminology or just text
... category S0..*CodeableConceptIPSConcept - reference to a terminology or just text
Binding: Problem Type - IPS (extensible)
... code S1..1(Slice Definition)Concept - reference to a terminology or just text
Slice: Unordered, Open by pattern:$this
.... code:problemGPSCode S0..1CodeableConceptCode for a problem from the SNOMED CT GPS code set
Binding: CORE Problem List Finding/Situation/Event (GPS) - IPS (required)
.... code:absentOrUnknownProblem S0..1CodeableConceptCode for absent problem or for unknown problem
Binding: Absent or Unknown Problems - IPS (required)
... bodySite 0..*CodeableConceptIPSConcept - reference to a terminology or just text
Binding: SNOMEDCTBodyStructures (example)
... subject S1..1Reference(Patient (IPS))Who has the condition?
.... reference S1..1stringLiteral reference, Relative, internal or absolute URL
... onset[x] S0..1(Slice Definition)Estimated or actual date, date-time, or age
Slice: Unordered, Closed by type:$this
.... onsetDateTime:onsetDateTime S0..1dateTimeEstimated or actual date, date-time, or age
.... onsetPeriod:onsetPeriod 0..1PeriodEstimated or actual date, date-time, or age
... abatement[x] S0..1(Slice Definition)When in resolution/remission
Slice: Unordered, Closed by type:$this
.... abatement[x]:abatementDateTime S0..1dateTimeWhen in resolution/remission
.... abatement[x]:abatementPeriod 0..1PeriodWhen in resolution/remission
... asserter S0..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson)Person who asserts this condition

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition SI0..*ConditionDocumentation of a health problem of the patient
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier ΣI0..*IdentifierExternal Ids for this condition
... clinicalStatus SI1..1CodeableConceptIPSConcept - reference to a terminology or just text
Binding: ConditionClinicalStatusCodes (required)
... verificationStatus SI0..1CodeableConceptIPSConcept - reference to a terminology or just text
Binding: ConditionVerificationStatus (required)
... category SI0..*CodeableConceptIPSConcept - reference to a terminology or just text
Binding: Problem Type - IPS (extensible)
... severity SI0..1CodeableConceptIPSConcept - reference to a terminology or just text
Binding: Problem Severity - IPS (preferred)
... code SΣI1..1(Slice Definition)Concept - reference to a terminology or just text
Slice: Unordered, Open by pattern:$this
Binding: Condition/Problem/DiagnosisCodes (example)
.... code:problemGPSCode SΣI0..1CodeableConceptCode for a problem from the SNOMED CT GPS code set
Binding: CORE Problem List Finding/Situation/Event (GPS) - IPS (required)
.... code:absentOrUnknownProblem SΣI0..1CodeableConceptCode for absent problem or for unknown problem
Binding: Absent or Unknown Problems - IPS (required)
... bodySite SI0..*CodeableConceptIPSConcept - reference to a terminology or just text
Binding: SNOMEDCTBodyStructures (example)
... subject SΣI1..1Reference(Patient (IPS))Who has the condition?
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... reference SΣI1..1stringLiteral reference, Relative, internal or absolute URL
.... type ΣI0..1uriType the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible)
.... identifier ΣI0..1IdentifierLogical reference, when literal reference is not known
.... display ΣI0..1stringText alternative for the resource
... encounter ΣI0..1Reference(Encounter)Encounter created as part of
... onset[x] SΣI0..1(Slice Definition)Estimated or actual date, date-time, or age
Slice: Unordered, Closed by type:$this
.... onsetDateTimedateTime
.... onsetAgeAge
.... onsetPeriodPeriod
.... onsetRangeRange
.... onsetStringstring
.... onset[x]:onsetDateTime SΣI0..1dateTimeEstimated or actual date, date-time, or age
.... onset[x]:onsetPeriod ΣI0..1PeriodEstimated or actual date, date-time, or age
... abatement[x] SI0..1(Slice Definition)When in resolution/remission
Slice: Unordered, Closed by type:$this
.... abatementDateTimedateTime
.... abatementAgeAge
.... abatementPeriodPeriod
.... abatementRangeRange
.... abatementStringstring
.... abatement[x]:abatementDateTime SI0..1dateTimeWhen in resolution/remission
.... abatement[x]:abatementPeriod I0..1PeriodWhen in resolution/remission
... recordedDate ΣI0..1dateTimeDate record was first recorded
... recorder ΣI0..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson)Who recorded the condition
... asserter SΣI0..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson)Person who asserts this condition
... stage I0..*BackboneElementStage/grade, usually assessed formally
con-1: Stage SHALL have summary or assessment
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... summary I0..1CodeableConceptSimple summary (disease specific)
Binding: ConditionStage (example)
.... assessment I0..*Reference(ClinicalImpression | DiagnosticReport | Observation)Formal record of assessment
.... type I0..1CodeableConceptKind of staging
Binding: ConditionStageType (example)
... evidence I0..*BackboneElementSupporting evidence
con-2: evidence SHALL have code or details
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code ΣI0..*CodeableConceptManifestation/symptom
Binding: ManifestationAndSymptomCodes (example)
.... detail ΣI0..*Reference(Resource)Supporting information found elsewhere
... note I0..*AnnotationAdditional information about the Condition

doco Documentation for this format

This structure is derived from Condition

Summary

Mandatory: 3 elements
Must-Support: 14 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element Condition.code is sliced based on the value of pattern:$this
  • The element Condition.onset[x] is sliced based on the value of type:$this (Closed)
  • The element Condition.abatement[x] is sliced based on the value of type:$this (Closed)

Differential View

This structure is derived from Condition

NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition S0..*ConditionDocumentation of a health problem of the patient
... clinicalStatus S1..1CodeableConceptIPSConcept - reference to a terminology or just text
... verificationStatus S0..1CodeableConceptIPSConcept - reference to a terminology or just text
... category S0..*CodeableConceptIPSConcept - reference to a terminology or just text
Binding: Problem Type - IPS (extensible)
... code S1..1(Slice Definition)Concept - reference to a terminology or just text
Slice: Unordered, Open by pattern:$this
.... code:problemGPSCode S0..1CodeableConceptCode for a problem from the SNOMED CT GPS code set
Binding: CORE Problem List Finding/Situation/Event (GPS) - IPS (required)
.... code:absentOrUnknownProblem S0..1CodeableConceptCode for absent problem or for unknown problem
Binding: Absent or Unknown Problems - IPS (required)
... bodySite 0..*CodeableConceptIPSConcept - reference to a terminology or just text
Binding: SNOMEDCTBodyStructures (example)
... subject S1..1Reference(Patient (IPS))Who has the condition?
.... reference S1..1stringLiteral reference, Relative, internal or absolute URL
... onset[x] S0..1(Slice Definition)Estimated or actual date, date-time, or age
Slice: Unordered, Closed by type:$this
.... onsetDateTime:onsetDateTime S0..1dateTimeEstimated or actual date, date-time, or age
.... onsetPeriod:onsetPeriod 0..1PeriodEstimated or actual date, date-time, or age
... abatement[x] S0..1(Slice Definition)When in resolution/remission
Slice: Unordered, Closed by type:$this
.... abatement[x]:abatementDateTime S0..1dateTimeWhen in resolution/remission
.... abatement[x]:abatementPeriod 0..1PeriodWhen in resolution/remission
... asserter S0..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson)Person who asserts this condition

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition SI0..*ConditionDocumentation of a health problem of the patient
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier ΣI0..*IdentifierExternal Ids for this condition
... clinicalStatus SI1..1CodeableConceptIPSConcept - reference to a terminology or just text
Binding: ConditionClinicalStatusCodes (required)
... verificationStatus SI0..1CodeableConceptIPSConcept - reference to a terminology or just text
Binding: ConditionVerificationStatus (required)
... category SI0..*CodeableConceptIPSConcept - reference to a terminology or just text
Binding: Problem Type - IPS (extensible)
... severity SI0..1CodeableConceptIPSConcept - reference to a terminology or just text
Binding: Problem Severity - IPS (preferred)
... code SΣI1..1(Slice Definition)Concept - reference to a terminology or just text
Slice: Unordered, Open by pattern:$this
Binding: Condition/Problem/DiagnosisCodes (example)
.... code:problemGPSCode SΣI0..1CodeableConceptCode for a problem from the SNOMED CT GPS code set
Binding: CORE Problem List Finding/Situation/Event (GPS) - IPS (required)
.... code:absentOrUnknownProblem SΣI0..1CodeableConceptCode for absent problem or for unknown problem
Binding: Absent or Unknown Problems - IPS (required)
... bodySite SI0..*CodeableConceptIPSConcept - reference to a terminology or just text
Binding: SNOMEDCTBodyStructures (example)
... subject SΣI1..1Reference(Patient (IPS))Who has the condition?
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... reference SΣI1..1stringLiteral reference, Relative, internal or absolute URL
.... type ΣI0..1uriType the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible)
.... identifier ΣI0..1IdentifierLogical reference, when literal reference is not known
.... display ΣI0..1stringText alternative for the resource
... encounter ΣI0..1Reference(Encounter)Encounter created as part of
... onset[x] SΣI0..1(Slice Definition)Estimated or actual date, date-time, or age
Slice: Unordered, Closed by type:$this
.... onsetDateTimedateTime
.... onsetAgeAge
.... onsetPeriodPeriod
.... onsetRangeRange
.... onsetStringstring
.... onset[x]:onsetDateTime SΣI0..1dateTimeEstimated or actual date, date-time, or age
.... onset[x]:onsetPeriod ΣI0..1PeriodEstimated or actual date, date-time, or age
... abatement[x] SI0..1(Slice Definition)When in resolution/remission
Slice: Unordered, Closed by type:$this
.... abatementDateTimedateTime
.... abatementAgeAge
.... abatementPeriodPeriod
.... abatementRangeRange
.... abatementStringstring
.... abatement[x]:abatementDateTime SI0..1dateTimeWhen in resolution/remission
.... abatement[x]:abatementPeriod I0..1PeriodWhen in resolution/remission
... recordedDate ΣI0..1dateTimeDate record was first recorded
... recorder ΣI0..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson)Who recorded the condition
... asserter SΣI0..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson)Person who asserts this condition
... stage I0..*BackboneElementStage/grade, usually assessed formally
con-1: Stage SHALL have summary or assessment
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... summary I0..1CodeableConceptSimple summary (disease specific)
Binding: ConditionStage (example)
.... assessment I0..*Reference(ClinicalImpression | DiagnosticReport | Observation)Formal record of assessment
.... type I0..1CodeableConceptKind of staging
Binding: ConditionStageType (example)
... evidence I0..*BackboneElementSupporting evidence
con-2: evidence SHALL have code or details
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code ΣI0..*CodeableConceptManifestation/symptom
Binding: ManifestationAndSymptomCodes (example)
.... detail ΣI0..*Reference(Resource)Supporting information found elsewhere
... note I0..*AnnotationAdditional information about the Condition

doco Documentation for this format

 

Other representations of profile: Schematron

Terminology Bindings

Terminology Bindings

PathConformanceValueSet
Condition.languagepreferredCommonLanguages
Max Binding: AllLanguages
Condition.clinicalStatusrequiredConditionClinicalStatusCodes
Condition.verificationStatusrequiredConditionVerificationStatus
Condition.categoryextensibleProblemTypeUvIps
Condition.severitypreferredProblemSeverityUvIps
Condition.codeexampleCondition/Problem/DiagnosisCodes
Condition.code:problemGPSCoderequiredCoreProblemListFindingSituationEventGpsUvIps
Condition.code:absentOrUnknownProblemrequiredNoProbsInfoUvIps
Condition.bodySiteexampleSNOMEDCTBodyStructures
Condition.subject.typeextensibleResourceType
Condition.stage.summaryexampleConditionStage
Condition.stage.typeexampleConditionStageType
Condition.evidence.codeexampleManifestationAndSymptomCodes

Constraints

Constraints

IdPathDetailsRequirements
con-3ConditionCondition.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-4ConditionIf 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-5ConditionCondition.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-2ConditionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3ConditionIf 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-4ConditionIf 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-5ConditionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6ConditionA resource should have narrative for robust management
: text.`div`.exists()
ele-1Condition.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Condition.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Condition.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Condition.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Condition.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.clinicalStatusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.verificationStatusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.categoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.severityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.code:problemGPSCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.code:absentOrUnknownProblemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.bodySiteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.subjectAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.subject.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Condition.subject.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Condition.subject.referenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.subject.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.subject.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.subject.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.encounterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.onset[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.onset[x]:onsetDateTimeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.onset[x]:onsetPeriodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.abatement[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.abatement[x]:abatementDateTimeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.abatement[x]:abatementPeriodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.recordedDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.recorderAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.asserterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
con-1Condition.stageStage SHALL have summary or assessment
: summary.exists() or assessment.exists()
ele-1Condition.stageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.stage.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Condition.stage.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Condition.stage.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Condition.stage.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Condition.stage.summaryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.stage.assessmentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.stage.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
con-2Condition.evidenceevidence SHALL have code or details
: code.exists() or detail.exists()
ele-1Condition.evidenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.evidence.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Condition.evidence.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Condition.evidence.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Condition.evidence.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Condition.evidence.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.evidence.detailAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Condition.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())