LK NEHR Sri Lanka Patient Summary (IPS based) Implementation Guide
0.1.0 - STU1

LK NEHR Sri Lanka Patient Summary (IPS based) Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

## Resource Profile: Cardiovascular Risk Assessment

Official URL: http://fhir.health.gov.lk/ips/StructureDefinition/cvd-risk-category | Version: 0.1.0
Active as of 2025-06-18 | Computable Name: CVDRiskCategory

Represents the patient's CVD risk score.

Usages:

- Use this Profile: HIMS IPS Bundle and HIMS Transactional Bundle
- Refer to this Profile: HIMS Composition
- Examples for this Profile: RiskAssessment/CVDRiskCategoryExample

### Formal Views of Profile Content

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

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
RiskAssessment |  | 0..* | RiskAssessment | Potential outcomes for a subject with likelihood
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | Σ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): The status of the risk assessment; e.g. preliminary, final, amended, etc.
code | Σ | 1..1 | CodeableConcept | Type of assessment Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 441829007
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
subject | Σ | 1..1 | Reference(Patient) | Who/what does assessment apply to?
encounter | Σ | 1..1 | Reference(Target Facility Encounter) | Where was assessment performed?
Slices for occurrence[x] | Σ | 1..1 | dateTime | When was assessment made? Slice: Unordered, Closed by type:$this
occurrence[x]:occurrenceDateTime | Σ | 1..1 | dateTime | When was assessment made?
performer | Σ | 1..1 | Reference(Practitioner | Device Information) | Who did assessment?
prediction | C | 1..* | BackboneElement | Outcome predicted Constraints: ras-2
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
outcome |  | 1..1 | CodeableConcept | Possible outcome for the subject Binding Description: (example): The condition or other outcome; e.g. death, remission, amputation, infection, etc.
Slices for probability[x] | C | 0..1 |  | Likelihood of specified outcome Slice: Unordered, Open by type:$this Constraints: ras-1
probabilityDecimal |  |  | decimal |
probabilityRange |  |  | Range |
probability[x]:probabilityDecimal | S C | 0..1 | decimal | Likelihood of specified outcome Constraints: ras-1
qualitativeRisk |  | 1..1 | CodeableConcept | Likelihood of specified outcome as a qualitative value Binding: Cardiovascular Risk Categories (extensible)
Slices for when[x] |  | 1..1 | Range | Timeframe or age range Slice: Unordered, Closed by type:$this
when[x]:whenRange |  | 1..1 | Range | Timeframe or age range
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
RiskAssessment.status | required | ObservationStatus `http://hl7.org/fhir/ValueSet/observation-status|4.0.1` From the FHIR Standard
RiskAssessment.prediction.outcome | example |
RiskAssessment.prediction.qualitativeRisk | extensible | VSCVDRiskCategory(a valid code from Cardiovascular Risk Categories) `http://fhir.health.gov.lk/ips/ValueSet/vs-cvd-risk-category` From this IG

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | RiskAssessment | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | RiskAssessment | 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 | error | RiskAssessment | 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 | RiskAssessment | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | RiskAssessment | 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() |
ras-1 | error | RiskAssessment.prediction.probability[x], RiskAssessment.prediction.probability[x]:probabilityDecimal | low and high must be percentages, if present : (low.empty() or ((low.code = '%') and (low.system = %ucum))) and (high.empty() or ((high.code = '%') and (high.system = %ucum))) |
ras-2 | error | RiskAssessment.prediction | Must be <= 100 : probability is decimal implies (probability as decimal) <= 100 |

This structure is derived from RiskAssessment

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
RiskAssessment |  | 0..* | RiskAssessment | Potential outcomes for a subject with likelihood
code |  | 1..1 | CodeableConcept | Type of assessment Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 441829007
subject |  | 1..1 | Reference(Patient) | Who/what does assessment apply to?
encounter |  | 1..1 | Reference(Target Facility Encounter) | Where was assessment performed?
Slices for occurrence[x] |  | 1..1 | dateTime | When was assessment made? Slice: Unordered, Open by type:$this
occurrence[x]:occurrenceDateTime |  | 1..1 | dateTime | When was assessment made?
performer |  | 1..1 | Reference(Practitioner | Device Information) | Who did assessment?
prediction |  | 1..* | BackboneElement | Outcome predicted
outcome |  | 1..1 | CodeableConcept | Possible outcome for the subject
Slices for probability[x] |  | 0..1 | decimal, Range | Likelihood of specified outcome Slice: Unordered, Open by type:$this
probability[x]:probabilityDecimal | S | 0..1 | decimal | Likelihood of specified outcome
qualitativeRisk |  | 1..1 | CodeableConcept | Likelihood of specified outcome as a qualitative value Binding: Cardiovascular Risk Categories (extensible)
Slices for when[x] |  | 1..1 | Range | Timeframe or age range Slice: Unordered, Open by type:$this
when[x]:whenRange |  | 1..1 | Range | Timeframe or age range
Documentation for this format

#### Terminology Bindings (Differential)

Path | Conformance | ValueSet | URI
RiskAssessment.prediction.qualitativeRisk | extensible | VSCVDRiskCategory(a valid code from Cardiovascular Risk Categories) `http://fhir.health.gov.lk/ips/ValueSet/vs-cvd-risk-category` From this IG

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
RiskAssessment |  | 0..* | RiskAssessment | Potential outcomes for a subject with likelihood
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): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
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 | Unique identifier for the assessment
basedOn |  | 0..1 | Reference(Resource) | Request fulfilled by this assessment
parent |  | 0..1 | Reference(Resource) | Part of this occurrence
status | Σ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): The status of the risk assessment; e.g. preliminary, final, amended, etc.
method | Σ | 0..1 | CodeableConcept | Evaluation mechanism Binding Description: (example): The mechanism or algorithm used to make the assessment; e.g. TIMI, PRISM, Cardiff Type 2 diabetes, etc.
code | Σ | 1..1 | CodeableConcept | Type of assessment Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 441829007
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
subject | Σ | 1..1 | Reference(Patient) | Who/what does assessment apply to?
encounter | Σ | 1..1 | Reference(Target Facility Encounter) | Where was assessment performed?
Slices for occurrence[x] | Σ | 1..1 | dateTime | When was assessment made? Slice: Unordered, Closed by type:$this
occurrence[x]:occurrenceDateTime | Σ | 1..1 | dateTime | When was assessment made?
condition | Σ | 0..1 | Reference(Condition) | Condition assessed
performer | Σ | 1..1 | Reference(Practitioner | Device Information) | Who did assessment?
reasonCode |  | 0..* | CodeableConcept | Why the assessment was necessary?
reasonReference |  | 0..* | Reference(Condition | Observation | DiagnosticReport | DocumentReference) | Why the assessment was necessary?
basis |  | 0..* | Reference(Resource) | Information used in assessment
prediction | C | 1..* | BackboneElement | Outcome predicted Constraints: ras-2
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
outcome |  | 1..1 | CodeableConcept | Possible outcome for the subject Binding Description: (example): The condition or other outcome; e.g. death, remission, amputation, infection, etc.
Slices for probability[x] | C | 0..1 |  | Likelihood of specified outcome Slice: Unordered, Open by type:$this Constraints: ras-1
probabilityDecimal |  |  | decimal |
probabilityRange |  |  | Range |
probability[x]:probabilityDecimal | S C | 0..1 | decimal | Likelihood of specified outcome Constraints: ras-1
qualitativeRisk |  | 1..1 | CodeableConcept | Likelihood of specified outcome as a qualitative value Binding: Cardiovascular Risk Categories (extensible)
relativeRisk |  | 0..1 | decimal | Relative likelihood
Slices for when[x] |  | 1..1 | Range | Timeframe or age range Slice: Unordered, Closed by type:$this
when[x]:whenRange |  | 1..1 | Range | Timeframe or age range
rationale |  | 0..1 | string | Explanation of prediction
mitigation |  | 0..1 | string | How to reduce risk
note |  | 0..* | Annotation | Comments on the risk assessment
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
RiskAssessment.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` From the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
RiskAssessment.status | required | ObservationStatus `http://hl7.org/fhir/ValueSet/observation-status|4.0.1` From the FHIR Standard
RiskAssessment.method | example |
RiskAssessment.prediction.outcome | example |
RiskAssessment.prediction.qualitativeRisk | extensible | VSCVDRiskCategory(a valid code from Cardiovascular Risk Categories) `http://fhir.health.gov.lk/ips/ValueSet/vs-cvd-risk-category` From this IG

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | RiskAssessment | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | RiskAssessment | 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 | error | RiskAssessment | 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 | RiskAssessment | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | RiskAssessment | 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() |
ras-1 | error | RiskAssessment.prediction.probability[x], RiskAssessment.prediction.probability[x]:probabilityDecimal | low and high must be percentages, if present : (low.empty() or ((low.code = '%') and (low.system = %ucum))) and (high.empty() or ((high.code = '%') and (high.system = %ucum))) |
ras-2 | error | RiskAssessment.prediction | Must be <= 100 : probability is decimal implies (probability as decimal) <= 100 |

This structure is derived from RiskAssessment

Summary

Mandatory: 10 elements
Must-Support: 1 element

Structures

This structure refers to these other structures:

- Patient (http://fhir.health.gov.lk/ips/StructureDefinition/ips-patient)
- Target Facility Encounter (http://fhir.health.gov.lk/ips/StructureDefinition/target-facility-encounter)
- Practitioner (http://fhir.health.gov.lk/ips/StructureDefinition/practitioner)
- Device Information (http://fhir.health.gov.lk/ips/StructureDefinition/device-information)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of RiskAssessment.occurrence[x]
- The element 1 is sliced based on the value of RiskAssessment.prediction.probability[x]
- The element 1 is sliced based on the value of RiskAssessment.prediction.when[x]

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
RiskAssessment |  | 0..* | RiskAssessment | Potential outcomes for a subject with likelihood
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | Σ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): The status of the risk assessment; e.g. preliminary, final, amended, etc.
code | Σ | 1..1 | CodeableConcept | Type of assessment Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 441829007
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
subject | Σ | 1..1 | Reference(Patient) | Who/what does assessment apply to?
encounter | Σ | 1..1 | Reference(Target Facility Encounter) | Where was assessment performed?
Slices for occurrence[x] | Σ | 1..1 | dateTime | When was assessment made? Slice: Unordered, Closed by type:$this
occurrence[x]:occurrenceDateTime | Σ | 1..1 | dateTime | When was assessment made?
performer | Σ | 1..1 | Reference(Practitioner | Device Information) | Who did assessment?
prediction | C | 1..* | BackboneElement | Outcome predicted Constraints: ras-2
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
outcome |  | 1..1 | CodeableConcept | Possible outcome for the subject Binding Description: (example): The condition or other outcome; e.g. death, remission, amputation, infection, etc.
Slices for probability[x] | C | 0..1 |  | Likelihood of specified outcome Slice: Unordered, Open by type:$this Constraints: ras-1
probabilityDecimal |  |  | decimal |
probabilityRange |  |  | Range |
probability[x]:probabilityDecimal | S C | 0..1 | decimal | Likelihood of specified outcome Constraints: ras-1
qualitativeRisk |  | 1..1 | CodeableConcept | Likelihood of specified outcome as a qualitative value Binding: Cardiovascular Risk Categories (extensible)
Slices for when[x] |  | 1..1 | Range | Timeframe or age range Slice: Unordered, Closed by type:$this
when[x]:whenRange |  | 1..1 | Range | Timeframe or age range
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
RiskAssessment.status | required | ObservationStatus `http://hl7.org/fhir/ValueSet/observation-status|4.0.1` From the FHIR Standard
RiskAssessment.prediction.outcome | example |
RiskAssessment.prediction.qualitativeRisk | extensible | VSCVDRiskCategory(a valid code from Cardiovascular Risk Categories) `http://fhir.health.gov.lk/ips/ValueSet/vs-cvd-risk-category` From this IG

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | RiskAssessment | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | RiskAssessment | 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 | error | RiskAssessment | 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 | RiskAssessment | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | RiskAssessment | 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() |
ras-1 | error | RiskAssessment.prediction.probability[x], RiskAssessment.prediction.probability[x]:probabilityDecimal | low and high must be percentages, if present : (low.empty() or ((low.code = '%') and (low.system = %ucum))) and (high.empty() or ((high.code = '%') and (high.system = %ucum))) |
ras-2 | error | RiskAssessment.prediction | Must be <= 100 : probability is decimal implies (probability as decimal) <= 100 |

Differential View

This structure is derived from RiskAssessment

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
RiskAssessment |  | 0..* | RiskAssessment | Potential outcomes for a subject with likelihood
code |  | 1..1 | CodeableConcept | Type of assessment Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 441829007
subject |  | 1..1 | Reference(Patient) | Who/what does assessment apply to?
encounter |  | 1..1 | Reference(Target Facility Encounter) | Where was assessment performed?
Slices for occurrence[x] |  | 1..1 | dateTime | When was assessment made? Slice: Unordered, Open by type:$this
occurrence[x]:occurrenceDateTime |  | 1..1 | dateTime | When was assessment made?
performer |  | 1..1 | Reference(Practitioner | Device Information) | Who did assessment?
prediction |  | 1..* | BackboneElement | Outcome predicted
outcome |  | 1..1 | CodeableConcept | Possible outcome for the subject
Slices for probability[x] |  | 0..1 | decimal, Range | Likelihood of specified outcome Slice: Unordered, Open by type:$this
probability[x]:probabilityDecimal | S | 0..1 | decimal | Likelihood of specified outcome
qualitativeRisk |  | 1..1 | CodeableConcept | Likelihood of specified outcome as a qualitative value Binding: Cardiovascular Risk Categories (extensible)
Slices for when[x] |  | 1..1 | Range | Timeframe or age range Slice: Unordered, Open by type:$this
when[x]:whenRange |  | 1..1 | Range | Timeframe or age range
Documentation for this format

#### Terminology Bindings (Differential)

Path | Conformance | ValueSet | URI
RiskAssessment.prediction.qualitativeRisk | extensible | VSCVDRiskCategory(a valid code from Cardiovascular Risk Categories) `http://fhir.health.gov.lk/ips/ValueSet/vs-cvd-risk-category` From this IG

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
RiskAssessment |  | 0..* | RiskAssessment | Potential outcomes for a subject with likelihood
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): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
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 | Unique identifier for the assessment
basedOn |  | 0..1 | Reference(Resource) | Request fulfilled by this assessment
parent |  | 0..1 | Reference(Resource) | Part of this occurrence
status | Σ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): The status of the risk assessment; e.g. preliminary, final, amended, etc.
method | Σ | 0..1 | CodeableConcept | Evaluation mechanism Binding Description: (example): The mechanism or algorithm used to make the assessment; e.g. TIMI, PRISM, Cardiff Type 2 diabetes, etc.
code | Σ | 1..1 | CodeableConcept | Type of assessment Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 441829007
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
subject | Σ | 1..1 | Reference(Patient) | Who/what does assessment apply to?
encounter | Σ | 1..1 | Reference(Target Facility Encounter) | Where was assessment performed?
Slices for occurrence[x] | Σ | 1..1 | dateTime | When was assessment made? Slice: Unordered, Closed by type:$this
occurrence[x]:occurrenceDateTime | Σ | 1..1 | dateTime | When was assessment made?
condition | Σ | 0..1 | Reference(Condition) | Condition assessed
performer | Σ | 1..1 | Reference(Practitioner | Device Information) | Who did assessment?
reasonCode |  | 0..* | CodeableConcept | Why the assessment was necessary?
reasonReference |  | 0..* | Reference(Condition | Observation | DiagnosticReport | DocumentReference) | Why the assessment was necessary?
basis |  | 0..* | Reference(Resource) | Information used in assessment
prediction | C | 1..* | BackboneElement | Outcome predicted Constraints: ras-2
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
outcome |  | 1..1 | CodeableConcept | Possible outcome for the subject Binding Description: (example): The condition or other outcome; e.g. death, remission, amputation, infection, etc.
Slices for probability[x] | C | 0..1 |  | Likelihood of specified outcome Slice: Unordered, Open by type:$this Constraints: ras-1
probabilityDecimal |  |  | decimal |
probabilityRange |  |  | Range |
probability[x]:probabilityDecimal | S C | 0..1 | decimal | Likelihood of specified outcome Constraints: ras-1
qualitativeRisk |  | 1..1 | CodeableConcept | Likelihood of specified outcome as a qualitative value Binding: Cardiovascular Risk Categories (extensible)
relativeRisk |  | 0..1 | decimal | Relative likelihood
Slices for when[x] |  | 1..1 | Range | Timeframe or age range Slice: Unordered, Closed by type:$this
when[x]:whenRange |  | 1..1 | Range | Timeframe or age range
rationale |  | 0..1 | string | Explanation of prediction
mitigation |  | 0..1 | string | How to reduce risk
note |  | 0..* | Annotation | Comments on the risk assessment
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
RiskAssessment.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` From the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
RiskAssessment.status | required | ObservationStatus `http://hl7.org/fhir/ValueSet/observation-status|4.0.1` From the FHIR Standard
RiskAssessment.method | example |
RiskAssessment.prediction.outcome | example |
RiskAssessment.prediction.qualitativeRisk | extensible | VSCVDRiskCategory(a valid code from Cardiovascular Risk Categories) `http://fhir.health.gov.lk/ips/ValueSet/vs-cvd-risk-category` From this IG

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | RiskAssessment | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | RiskAssessment | 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 | error | RiskAssessment | 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 | RiskAssessment | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | RiskAssessment | 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() |
ras-1 | error | RiskAssessment.prediction.probability[x], RiskAssessment.prediction.probability[x]:probabilityDecimal | low and high must be percentages, if present : (low.empty() or ((low.code = '%') and (low.system = %ucum))) and (high.empty() or ((high.code = '%') and (high.system = %ucum))) |
ras-2 | error | RiskAssessment.prediction | Must be <= 100 : probability is decimal implies (probability as decimal) <= 100 |

This structure is derived from RiskAssessment

Summary

Mandatory: 10 elements
Must-Support: 1 element

Structures

This structure refers to these other structures:

- Patient (http://fhir.health.gov.lk/ips/StructureDefinition/ips-patient)
- Target Facility Encounter (http://fhir.health.gov.lk/ips/StructureDefinition/target-facility-encounter)
- Practitioner (http://fhir.health.gov.lk/ips/StructureDefinition/practitioner)
- Device Information (http://fhir.health.gov.lk/ips/StructureDefinition/device-information)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of RiskAssessment.occurrence[x]
- The element 1 is sliced based on the value of RiskAssessment.prediction.probability[x]
- The element 1 is sliced based on the value of RiskAssessment.prediction.when[x]

Other representations of profile: CSV, Excel, Schematron