Skip to content

Commit

Permalink
Address PR review feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
Thiyanwso2 committed Sep 3, 2024
1 parent adb0337 commit 58992de
Showing 1 changed file with 9 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This is a ballerina template for the insurance payers who are developing the sol

This will contain the CDS hooks as service. The [documentation](https://build.fhir.org/ig/HL7/davinci-crd/hooks.html#hook-categories) states: “The **primary** hooks are `Appointment Book`, `Orders Sign`, and `Order Dispatch`. CRD Servers SHALL, at minimum, return a Coverage Information system action for these hooks, even if the response indicates that further information is needed or that the level of detail provided is insufficient to determine coverage. The **secondary** hooks are `Orders Select`, `Encounter Start`, and `Encounter Discharge`. These hooks MAY return cards or system actions, but are not expected to, and CRD clients are free to ignore any cards or actions returned.”

The following features are implmented,
The following features are implemented,
> 1. **CDS hooks as ballerina service**: All six hooks will be implemented as ballerina service. Since it is not mandatory to support all the hooks, the payer can define the relevant hooks for their services. `Config.bal` will contain all the hooks.
> 2. **Ballerina Records for CRD**: All of the types will be implemented as ballerina records to support type safety. `health.fhir.cds.records.bal` contains the implemented records.
> 3. **Methods to connect with Rule Repository**: These methods will be defined to connect the CDS service with the DDS server (Decision support systems). This will be used to process the received CDS request, prefetch the resources from the EHR repository (if needed), and construct the CDS response from the response received from the CRD server. `impl_decision_system_connection.bal` contains the interface to implement.
Expand All @@ -18,34 +18,24 @@ The Developer needs to implement the `impl_decision_system_connection` methods t

# How to use

## Prerequisites
#[[##]]# Prerequisites

Before running this sample, make sure you have the following:

- Download and install [Ballerina Swan Lake](https://ballerina.io/downloads/) 2201.8.5 or above.

## Getting Started
#[[##]]# Getting Started

To get started with this sample, follow these steps:

1. Run ```bal new crd_service -t ballerinax/health.fhir.templates.crd```
2. Navigate to crd_server folder.
3. Create a Config.toml file in the root level of the project.
3. Add the relevant CDS hooks to the Config.toml file. The property name should contains the fully qualified name with package name. Please check the sample below.
3. Complete the decision system connectivity implementation. The ```impl_decision_system_connection``` file contains placeholder functions that must be implemented to connect with external decision systems. Please follow the instructions in that file itself.
1. Complete the decision system connectivity implementation. The ```impl_decision_system_connection``` file contains placeholder functions that must be implemented to connect with external decision systems. Please follow the instructions in that file itself.

2. Complete the feedback system connectivity implementation. The ```implFeedbackSystemConnection``` file contains placeholder functions that must be implemented to connect with external feedback systems. Please follow the instructions in that file itself.

3. [Optional] By default this service will run in port 8080, if needed, you can change the port in the service.bal file.

4. Run the project using the following command:

```bash
$ bal run
```

### Sample Config.toml file
```
[[ballerinax.health.fhir.cds.cds_services]]
hook = "patient-view"
title = "Static CDS Service Example"
description = "An example of a CDS Service that returns a static set of cards"
id = "static-patient-greeter"
[ballerinax.health.fhir.cds.cds_services.prefetch]
patientToGreet = "Patient/{{context.patientId}}"
```

0 comments on commit 58992de

Please sign in to comment.