Order Manager Conceptual Specification
Link back to solution specification
Contents
Overview
Service Description and Purpose
The purpose of the order request manager is that of a service which provides functionality to manage requests for clinical services and access to the results of their fulfillment.
Scope
The Order Manager Service describes the communication patterns between members of a healthcare team that support request and fulfillment, and specifically those pertaining to the management and performance of a request for service(s). This order is considered separately from any process of fulfillment or reporting, except in terms of offering communications to support documentation as an ultimate result of an order request. Since these steps are common regardless of clinical service offered, they form a consistent pattern of behavior that may be applied in many situations. In so doing, the Order Manager Service distinguishes between the order for a lab test, the promise of fulfillment, and the lab test itself, which may have a different lifecycle or which may serve a broader audience. More specifically, the Order Manager is explicitly built to provide services for the initiators of the request and fulfillment pattern.
Reason why the service is necessary
The Order Manager Service provides a key integration component between systems involved in the distributed practice of patient-centric clinical care. It allows these various systems tied to clinical services to be decoupled from the requests for fulfillment that come from healthcare practitioners. Organizations engaged across organizational boundaries that need to share the business processes around request and fulfillment can benefit from this boundary, as well as more centrally controlled systems within a single jurisdiction. For example, the Order Manager Service enables a lab to operate completely independently from the Order Entry system, and for the clinical process to be managed completely separately from the financial management process that may happen in parallel. Additionally, this separation can happen at an institution or across several institutions or facilities.
In practice, this separation of concerns provides a clear boundary for the Order Manager's own capabilities. An order is typically accompanied by a set of expectations around the fulfillment of that order; one of which may be that the requester can expect the order management system to reliably capture the status of the eventual fulfillment. The Order Manager Service provides a specification of how this order request can be handled and several different configurations that support different means of systems communicating regarding the status of that request.
Note here that this service establishes expectations around the management of the order requests, and hides the details of the fulfillments of that request. Thus, a single order may generate multiple requests for promises of fulfillment, or one, or the Order Manager Service implementation may return a business error (“Request cannot be handled”). By the same token, fulfillment is managed separately as detailed in the Fulfillment Management (FM) Service. A complicated use case serves to demonstrate the flexibility of separating concerns in this way. A promise of fulfillment may be generated without an initiating order. These services support those sorts of behavioral patterns, but also allow policies to be enforced such that the promise of fulfillment requires an explicit order to be generated. In other words, these services support various policies and means of implementation without unduly binding them all together.
Structure of the Service
The Order Manager Conceptual Diagram is shown below. A separate functional profile is defined for organizations that need only specimen collection operations (for instance, third party specimen collectors).
Assumptions and Dependencies
The Order Manager is a part of an overarching Fulfillment Pattern that describes the contracts that must be implemented by all parties in order to manage the complex business process that underlie Orders and Observations. The Fulfillment Pattern is a choreographed behavioral specification that utilizes these profiles to provide support for key use cases in the Orders and Observations Process provisioned across multiple interfaces. The Fulfillment Pattern has the following components:
- The Order Manager Service, with its Order Request State Machine
- At least one Fulfillment Management (FM) Service
- The Fulfillment Behavioral Model, including Fulfillment Pattern’s State Machine
The Order Manager, while deployed separately from these other components, fits within the Fulfillment Behavioral Model as the state of an Order Request may lead to subsequent Fulfillment Behavioral States. In addition, it likely requires the following components in a deployed architecture:
- A unique identification scheme for requestors and trackers. For example, the requestor of an order will require identification for security and auditing concerns, and the order tracker will need a unique address for communication, such as email, application proxy, etc.
- A shared identification scheme for patients about whom orders are written. This shared scheme should be manifest to all clinical service components as well (labs, images, consults, etc.).
- [Optional] A Service Registry would provide authoritative listings of potential types of orders
Note however that Order Manager may be deployed without these other components as it effectively provides Order Manager clients with the core ability to manage their requests and to view a condensed view of fulfillment per se. That is often enough. In short, consumers of the Order Manager will need to have the ability to appropriately form requests and handle responses about them. This interaction with the Order Manager will preclude any explicit knowledge of the fulfillment of the Order itself via the service interface; that is, any knowledge of the fulfillment will happen through other mechanisms (policy, configuration, and so on).
Implementation Considerations
None at this time
Detailed Functional Model for Each Operation
Create Order
- Description: Allows the client to create an order for a service
- Pre-Conditions:
- The client has sufficient information to create the request
- User or requestor has permissions to create a request within the context
- Conceptual Information Objects
- Inputs: Order
- Outputs: Order
- Post-Conditions: The returned order structure has been updated with order identifier
- Exception Conditions: None identified
- Aspects left for Technical Bindings (optional)
- Reference to Functional Profiles (optional)
- Notes
Change Order
- Description: Allows the client to submit a change to an existing Order.
- Pre-Conditions:
- An order exists and the identifier is known
- The order is not completed
- The user or requestor has permission to update an order
- Conceptual Information Objects
- Inputs: Order, Order Identifier
- Outputs: Order, Promise
- Post-Conditions:
- The order referenced by order identifier has been updated to match the requirements in the input order
- The modified order is returned
- Exception Conditions:
- Order is not known to the fulfiller
- Order has already been completed
- Aspects left for Technical Bindings (optional)
- Reference to Functional Profiles (optional)
- Notes
Cancel Order
- Description: Used when a requestor (placer) would like for a previously requested, and not yet completed, order to not be performed.
- Pre-Conditions:
- An order exists and the identifier is known
- The order is not completed
- The user or requestor has permission to update an order
- Conceptual Information Objects
- Inputs: Order, Order Identifier
- Outputs: Order
- Post-Conditions:
- The order referenced by order identifier has been cancelled and will not be acted upon.
- The cancel order is returned
- Exception Conditions:
- Order is not known to the fulfiller
- Order has already been completed
Query Orders
- Description: Used to obtain a list of Orders relevant to a specific Subject.
- Pre-Conditions:
- Conceptual Information Objects
- Inputs: Subject
- Outputs: a list of Orders
- Post-Conditions
- Exception Conditions
- Aspects left for Technical Bindings (optional)
- Reference to Functional Profiles (optional)
- Notes:
- At the logical level, addition query criteria (eg date ranges, result status, etc) may be defined
Retrieve Order
- Description: Allows the client to retrieve a specific Order, given an order identifier
- Pre-Conditions:
- The order identifier is known
- The client has permission to retrieve orders
- Conceptual Information Objects
- Inputs: Order Identifier
- Outputs: Order
- Post-Conditions
- Exception Conditions
- Aspects left for Technical Bindings (optional)
- Reference to Functional Profiles (optional)
- Notes
Update Order Status
- Description: Allows the client to identify a change in status of the order (e.g. update the status to 'specimen collected')
- Pre-Conditions:
- Conceptual Information Objects
- Inputs: Order Identifier, Status
- Outputs: Order
- Post-Conditions: The order status has been changed to the new value
- Exception Conditions: The order identifier cannot be found.
The status change request is an invalid state transition
- Aspects left for Technical Bindings (optional)
- Reference to Functional Profiles (optional)
- Notes
Update Result Status
- Description: Allows the fulfiller (or performer) of the order (whom is also the author of the result) to change the status of the result.
- Pre-Conditions:
- Result must already exist
- Conceptual Information Objects
- Inputs: Result, Result Identifier
- Outputs: Result
- Post-Conditions
- Result updated with new status
- Exception Conditions: Order does not previously exist
- Aspects left for Technical Bindings (optional)
- Reference to Functional Profiles (optional)
- Notes
Profiles
TBD
Introduction
Functional Profiles
Information Profiles
Recommendations for Conformance and Compliance
These will be elaborated in the next round of specification development