Process ๐ฌ
Official URL: https://bcgov.github.io/nr-pies/docs/spec/element/data/process
JSON Schema URL: https://raw.githubusercontent.com/bcgov/nr-pies/refs/heads/main/docs/spec/element/data/process.schema.json
Represents a process tracking concept.
Scopeโ
This data type is intended to represent the core concept of a defined process.
Loosely taking inspiration from HL7 Timing.
Structureโ
Fundamentally, a Process is a representation of a defined process tracking concept. It is, at minimum, an in-line composition of a Coding element and an optional set of status related attributes.
- A Process element leverages the Coding element structure.
- A Process may contain a
statusattribute.- The
statusattribute acts as a free text field which represents the specific status value that may be stored or encoded in the transmitting system. - If
statusis defined, thestatus_codeandstatus_descriptionattributes may optionally be defined as well. - Both
status_codeandstatus_descriptionattributes shall not be defined if thestatusattribute is not present.
- The
There are certain nuances for recipient systems to be aware of when processing the process element.
- Recipient systems shall primarily rely on the Coding elements in this Process element (i.e. the
code,code_setandcode_systemattributes).- Recipient systems may elect to parse the
status,status_codeandstatus_descriptionattributes as auxiliary or supplementary data. - Recipient systems shall not depend on these attributes as they are not guaranteed to exist, nor do they convey the standard concept hierarchy as defined by this specification.
- Recipient systems may elect to parse the
| Name | Cardinality | Type | Description & Constraints |
|---|---|---|---|
| Coding | 1..1 | Coding | A Coding is a representation of a defined concept using a symbol from a defined Code System. |
| status | 0..1 | string | An optional description of the current condition or update of an application or authorization. Additional details about the current state are frequently conveyed (e.g., 'Pending Review', 'Under Inspection'). Statuses may be defined by the line of business. |
| status_code | 0..1 | string | An optional codified representation of the status attribute. Status codes may be defined by the line of business. |
| status_description | 0..1 | string | An optional description of the status if present. |
Specificationโ
- Schema
- Source
- Example
{
"$id": "https://raw.githubusercontent.com/bcgov/nr-pies/refs/heads/main/docs/spec/element/data/process.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Process",
"description": "Represents a process tracking concept.",
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "An optional description of the current condition or update of an application or authorization. Additional details about the current state are frequently conveyed (e.g., 'Pending Review', 'Under Inspection'). Statuses may be defined by the line of business."
},
"status_code": {
"type": "string",
"description": "An optional codified representation of the status attribute. Status codes may be defined by the line of business."
},
"status_description": {
"description": "An optional description of the status if present.",
"type": "string"
}
},
"allOf": [
{
"$ref": "https://raw.githubusercontent.com/bcgov/nr-pies/refs/heads/main/docs/spec/element/data/coding.schema.json"
}
]
}
{
"code": "REFERRAL",
"code_display": "Referral",
"code_set": [
"APPLICATION",
"TECH_REVIEW_COMMENT",
"REFERRAL"
],
"code_system": "https://bcgov.github.io/nr-pies/docs/spec/code_system/application_process",
"status": "Auditing",
"status_code": "AU",
"status_description": "The authorization request is under review by subject matter expert."
}
Implementation Notesโ
The core of the process type is the structural representation of some form of a process tracking concept. The process type is conceptually aligned with the Process Tracking Code System to represent the various levels of abstractions that are possible. The hierarchical nature of these abstractions are mapped via the Application Process Concept Map to represent the various levels of abstraction that are possible.
Process tracking itself is a complex domain as it involves many different contexts and levels of abstraction. One of
the Code Systems that leverage this data element is the
Application Process Code System. This is represented through a standard
Coding element structure. In the Coding element, there is a code, a code_set and a
code_system attribute.
The code attribute is the primary code value, while the code_set attribute is an ordered
set of code symbols. The code_set attribute is an ordered set of code symbols, where the last element must match the
code. For example, the code_set value of ["APPLICATION", "TECH_REVIEW_COMMENT", "REFERRAL"] would indicate that
the application process concept being conveyed is representing the REFERRAL State within the
Technical Review and Comment Stage of an Application Phase. This coding element would have a code of REFERRAL as
it is the most specific and primary concept being conveyed.
The code_set attribute may be populated with fewer elements in situations where the concept being mapped represents a
higher level conceptual abstraction. For example, if the code attribute is "TECH_REVIEW_COMMENT", the code_set
would have a value of ["APPLICATION", "TECH_REVIEW_COMMENT"]. In this case, this means that the conceptual idea being
conveyed is the Technical Review and Comment Stage of an Application Phase. Systems reading the code_set attribute
may extract a subset of the transmitted ordered array for processing since the lower level codes map to higher level
hierarchical code concepts within the Application Process Code System.
The code_system attribute is a static URI reference to the documentation for the current code system being used. This
URI is not intended to be machine readable as it is designed to act as a signal for human readers to see and understand
the context of which terminologies and concepts are being conveyed.
The status attribute is optional, but is designed to be an explicit "escape hatch" for specific lines of business to
share their most detailed system concepts, should they choose to do so. Statuses declared here will be implicitly
mapped under the code attribute. If a status is defined, the status_code and status_description attributes may
also be defined in order to assist with clarifying the status value.
Recipient systems may look at status, status_code and status_description as a reference point. However, the core
intent of this data type is to ensure that the core code and code_set attributes are to be the main source of truth
when handling and interpreting the data for processing. Recipient systems SHOULD NOT depend on either status,
status_code or status_description attributes when parsing and interpreting the process concept.