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
status
attribute.- The
status
attribute acts as a free text field which represents the specific status value that may be stored or encoded in the transmitting system. - If
status
is defined, thestatus_code
andstatus_description
attributes may optionally be defined as well. - Both
status_code
andstatus_description
attributes shall not be defined if thestatus
attribute 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_set
andcode_system
attributes).- Recipient systems may elect to parse the
status
,status_code
andstatus_description
attributes 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.