MCC eCare Plan Draft Implementation Guide - Local Development build (v0.1.0). See the Directory of published versions
Defining URL: | http://hl7.org/fhir/us/mcc/StructureDefinition/ChronicKidneyDisease |
Version: | 0.1.0 |
Name: | ChronicKidneyDiseaseCondition |
Title: | Chronic Kidney Disease Conditions |
Status: | Draft as of 2020-06-29 |
Definition: | This profile constrains US Core Condition to chronic kidney disease conditions and supporting information. |
Publisher: | HL7 International - Patient Care WG |
Source Resource: | XML / JSON / Turtle |
The official URL for this profile is:
http://hl7.org/fhir/us/mcc/StructureDefinition/ChronicKidneyDisease
This profile sets additional expectations for the US Core Condition profile to record, search, and fetch condition or diagnosis terms representing chronic kidney disease (CKD) conditions associated with a patient. In addition to the requirements set in the US Core Condition profile, conditionCode is bound to a chronic kidney disease condition or diagnosis value set and the Condition.onset and Condition.recordedDate are set to “must support ‘’. In addition the profile seeks to record, search, fetch and associate supporting evidence for the diagnosis or state of CKD. While not limiting the possible evidence asserted, the profile explicitly seeks to find and represent evidence of end stage renal disease by looking for assertions of stage 5 chronic kidney disease conditions, evidence the patient is receiving dialysis or has had a kidney transplant. In addition, evidence may be expressed within a lab result profile. CKD relevant lab results may also be expressed elsewhere in the Care Plan. If present, family history of chronic kidney disease may also exist as pertinent information in the evidence element. The profile leverages the “Condition-Due To’’ extension defined on the base condition resource, which contains a profile on condition “CKD Type or Cause”. The profile allows expression of the kidney disease stage either through a pre-coordinated ICD10 or SNOMED CT code in the “CKD All stages” profile or through the “Stage” backbone element where post-coordinated stage can be expressed. The MCC IG Draft 1.0 CKD Profile, allows, but does not define post- coordinated staging. If the backbone element where post-coordinated stage can be expressed is used, care must be taken that the condition.code and condition.stage do not conflict.
Description of Profiles, Differentials, Snapshots and how the different presentations work.
Other representations of profile: Schematron
Path | Conformance | ValueSet |
Condition.language | preferred | CommonLanguages Max Binding: AllLanguages |
Condition.extension:Condition-dueTo.value[x] | required | https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1222.6/expansion |
Condition.clinicalStatus | required | ConditionClinicalStatusCodes |
Condition.verificationStatus | required | ConditionVerificationStatus |
Condition.category | extensible | USCoreConditionCategoryCodes |
Condition.severity | preferred | Condition/DiagnosisSeverity |
Condition.code | required | https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1222.159/expansion |
Condition.bodySite | example | SNOMEDCTBodyStructures |
Condition.stage.summary | example | ConditionStage |
Condition.stage.type | example | ConditionStageType |
Condition.evidence.code | example | ManifestationAndSymptomCodes |
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.extension:Condition-dueTo | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Condition.extension:Condition-dueTo | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Condition.extension:Condition-dueTo.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Condition.extension:Condition-dueTo.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Condition.extension:Condition-dueTo.value[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Condition.extension:resource-pertainsToGoal | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Condition.extension:resource-pertainsToGoal | 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.evidence.detail:EndStageRenalDiseaseCondition | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Condition.evidence.detail:RenalTransplant | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Condition.evidence.detail:Dialysis | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Condition.evidence.detail:ChronicKidneyDiseaseFamilyHistory | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Condition.evidence.detail:EstimatedGlomerularFiltrationRate | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Condition.evidence.detail:SerumCreatinine | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Condition.evidence.detail:UrineAlbuminCreatinineRatio | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Condition.evidence.detail:BloodUreaNitrogen | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Condition.evidence.detail:KidneyBiopsy | 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()) |