Skip to main content

Process ๐Ÿ”ฌ

Maturity

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, the status_code and status_description attributes may optionally be defined as well.
    • Both status_code and status_description attributes shall not be defined if the status attribute is not present.

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 and code_system attributes).
    • Recipient systems may elect to parse the status, status_code and status_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.
NameCardinalityTypeDescription & Constraints
Coding1..1CodingA Coding is a representation of a defined concept using a symbol from a defined Code System.
status0..1stringAn 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_code0..1stringAn optional codified representation of the status attribute. Status codes may be defined by the line of business.
status_description0..1stringAn optional description of the status if present.

Specificationโ€‹

Loading ....

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.

Referencesโ€‹