Pharmacist Services and Summaries - FHIR (PhCP)
1.0.0 - STU Release 1.0.0 for FHIR R4

Publication Build: This will be filled in by the publication tooling

## Resource Profile: PhCP-Medication-Therapy-Condition

Defining URL: | http://hl7.org/fhir/us/phcp/StructureDefinition/PhCP-Medication-Therapy-Condition
Version: | 1.0.0
Name: | PhCPMedicationTherapyCondition
Title: | PhCP Medication Therapy Condition
Status: | Draft as of 2021-02-11T17:07:56+00:00
Definition: | This profile represents a medication therapy problem. A medication therapy problem is any undesirable event experienced by a patient that involves, or is suspected to involve, drug therapy, and that interferes with achieving the desired goals of therapy and requires professional judgment to resolve. This profile constrains the US Core Condition profile. It includes value sets intended for use by pharmacy systems. Everywhere it is referenced, an unconstrained US Core Condition reference is also allowed.
Publisher: | HL7 Structured Documents Work Group
Source Resource: | XML / JSON / Turtle

The official URL for this profile is:

    http://hl7.org/fhir/us/phcp/StructureDefinition/PhCP-Medication-Therapy-Condition

### Formal Views of Profile Content

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

- Text Summary
- Differential Table
- Snapshot Table
- Snapshot Table (Must Support)
- All

This structure is derived from USCoreCondition

Summary

Must-Support: 2 elements

This structure is derived from USCoreCondition

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Condition |  | 0..* | USCoreCondition | Detailed information about conditions, problems or diagnoses
code | S | 1..1 | CodeableConcept | Identification of the condition, problem or diagnosis Binding: VSAC 2.16.840.1.113762.1.4.1096.213 (preferred)
evidence | S | 0..* | BackboneElement | Supporting evidence
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Condition | I | 0..* | USCoreCondition | Detailed information about conditions, problems or diagnoses
id | Σ | 0..1 | string | 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) Max Binding: AllLanguages: A human language.
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation
contained |  | 0..* | Resource | Contained, inline Resources
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 | ?!S Σ I | 0..1 | CodeableConcept | active | recurrence | relapse | inactive | remission | resolved Binding: ConditionClinicalStatusCodes (required)
verificationStatus | ?!S Σ I | 0..1 | CodeableConcept | unconfirmed | provisional | differential | confirmed | refuted | entered-in-error Binding: ConditionVerificationStatus (required)
category | S I | 1..* | CodeableConcept | problem-list-item | encounter-diagnosis | health-concern Binding: US Core Condition Category Codes (extensible)
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: VSAC 2.16.840.1.113762.1.4.1096.213 (preferred)
bodySite | Σ | 0..* | CodeableConcept | Anatomical location, if relevant Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
subject | S Σ | 1..1 | Reference(US Core Patient Profile) | 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] | I | 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 | I | 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 | I | 0..1 | CodeableConcept | Simple summary (disease specific) Binding: ConditionStage (example): Codes describing condition stages (e.g. Cancer stages).
assessment | I | 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 | S I | 0..* | BackboneElement | Supporting evidence
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 | Σ I | 0..* | CodeableConcept | Manifestation/symptom Binding: ManifestationAndSymptomCodes (example): Codes that describe the manifestation or symptoms of a condition.
detail | Σ I | 0..* | Reference(Resource) | Supporting information found elsewhere
note |  | 0..* | Annotation | Additional information about the Condition
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Condition | I | 0..* | USCoreCondition | Detailed information about conditions, problems or diagnoses
clinicalStatus | ?!Σ I | 0..1 | CodeableConcept | active | recurrence | relapse | inactive | remission | resolved Binding: ConditionClinicalStatusCodes (required)
verificationStatus | ?!Σ I | 0..1 | CodeableConcept | unconfirmed | provisional | differential | confirmed | refuted | entered-in-error Binding: ConditionVerificationStatus (required)
category | I | 1..* | CodeableConcept | problem-list-item | encounter-diagnosis | health-concern Binding: US Core Condition Category Codes (extensible)
code | Σ | 1..1 | CodeableConcept | Identification of the condition, problem or diagnosis Binding: VSAC 2.16.840.1.113762.1.4.1096.213 (preferred)
subject | Σ | 1..1 | Reference(US Core Patient Profile) | Who has the condition?
evidence | I | 0..* | BackboneElement | Supporting evidence
Documentation for this format

This structure is derived from USCoreCondition

Summary

Must-Support: 2 elements

Differential View

This structure is derived from USCoreCondition

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Condition |  | 0..* | USCoreCondition | Detailed information about conditions, problems or diagnoses
code | S | 1..1 | CodeableConcept | Identification of the condition, problem or diagnosis Binding: VSAC 2.16.840.1.113762.1.4.1096.213 (preferred)
evidence | S | 0..* | BackboneElement | Supporting evidence
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Condition | I | 0..* | USCoreCondition | Detailed information about conditions, problems or diagnoses
id | Σ | 0..1 | string | 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) Max Binding: AllLanguages: A human language.
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation
contained |  | 0..* | Resource | Contained, inline Resources
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 | ?!S Σ I | 0..1 | CodeableConcept | active | recurrence | relapse | inactive | remission | resolved Binding: ConditionClinicalStatusCodes (required)
verificationStatus | ?!S Σ I | 0..1 | CodeableConcept | unconfirmed | provisional | differential | confirmed | refuted | entered-in-error Binding: ConditionVerificationStatus (required)
category | S I | 1..* | CodeableConcept | problem-list-item | encounter-diagnosis | health-concern Binding: US Core Condition Category Codes (extensible)
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: VSAC 2.16.840.1.113762.1.4.1096.213 (preferred)
bodySite | Σ | 0..* | CodeableConcept | Anatomical location, if relevant Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
subject | S Σ | 1..1 | Reference(US Core Patient Profile) | 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] | I | 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 | I | 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 | I | 0..1 | CodeableConcept | Simple summary (disease specific) Binding: ConditionStage (example): Codes describing condition stages (e.g. Cancer stages).
assessment | I | 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 | S I | 0..* | BackboneElement | Supporting evidence
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 | Σ I | 0..* | CodeableConcept | Manifestation/symptom Binding: ManifestationAndSymptomCodes (example): Codes that describe the manifestation or symptoms of a condition.
detail | Σ I | 0..* | Reference(Resource) | Supporting information found elsewhere
note |  | 0..* | Annotation | Additional information about the Condition
Documentation for this format

Other representations of profile: Schematron

#### Terminology Bindings

Path | Conformance | ValueSet
Condition.language | preferred | CommonLanguages Max Binding: AllLanguages
Condition.clinicalStatus | required | ConditionClinicalStatusCodes
Condition.verificationStatus | required | ConditionVerificationStatus
Condition.category | extensible | USCoreConditionCategoryCodes
Condition.severity | preferred | Condition/DiagnosisSeverity
Condition.code | preferred | http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1096.213
Condition.bodySite | example | SNOMEDCTBodyStructures
Condition.stage.summary | example | ConditionStage
Condition.stage.type | example | ConditionStageType
Condition.evidence.code | example | ManifestationAndSymptomCodes

#### Constraints

Id | Path | Details | Requirements
con-3 | Condition | Condition.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-4 | 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 | 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 | Condition | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | 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 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-4 | 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 | Condition | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | Condition | A resource should have narrative for robust management : text.`div`.exists() |
us-core-1 | Condition | A code in Condition.category SHOULD be from US Core Condition Category Codes value set. : where(category.memberOf('http://hl7.org/fhir/us/core/ValueSet/us-core-condition-category')).exists() |
ele-1 | Condition.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | Condition.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | Condition.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | Condition.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | Condition.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.clinicalStatus | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.verificationStatus | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.category | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.severity | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.bodySite | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.subject | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.encounter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.onset[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.abatement[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.recordedDate | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.recorder | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.asserter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
con-1 | Condition.stage | Stage SHALL have summary or assessment : summary.exists() or assessment.exists() |
ele-1 | Condition.stage | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.stage.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | Condition.stage.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | Condition.stage.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | Condition.stage.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | Condition.stage.summary | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.stage.assessment | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.stage.type | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
con-2 | Condition.evidence | evidence SHALL have code or details : code.exists() or detail.exists() |
ele-1 | Condition.evidence | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.evidence.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | Condition.evidence.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | Condition.evidence.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | Condition.evidence.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | Condition.evidence.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.evidence.detail | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | Condition.note | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |