@aehrc/sdc-assemble
v1.3.1
Published
Performs the $assemble operation for modular forms from the HL7 FHIR SDC (Structured Data Capture) specification: http://hl7.org/fhir/uv/sdc/modular.html
Downloads
6
Readme
SDC-Assemble
A Typescript reference implementation of the $assemble operation from the HL7 FHIR Structured Data Capture Specification and is designed for Modular Questionnaires.
Usage
You would need to implement the following interfaces:
InputParameters
- Input parameters for the $assemble operation
{
resourceType: 'Parameters'
parameter: [
{
name: 'questionnaire',
resource: YOUR_QUESTIONNAIRE_RESOURCE
}
]
}
FetchQuestionnaireCallback
- A callback to fetch resources from your FHIR server
function fetchQuestionnaireCallback (canonicalUrl: string, requestConfig: any) {
const { endpoint, token } = requestConfig;
return axios.get(`${endpoint}/Questionnaire?url=${canonicalUrl}`, {
method: 'GET',
headers: { Accept: 'application/json+fhir; charset=utf-8', Authorization: `Bearer ${token}`, }
});
};
Both of these interfaces are required to be implement as arguments to the assemble()
function.
Note for Vite users (or if you facing CommonJS/ESM issues)
If you are using Vite, you might need to add the following to your vite.config.ts
file:
This package is a CommonJS module for backwards compatibility with Node.js, so this configuration is required so that Vite can correctly bundle the module.
export default defineConfig({
// ...
optimizeDeps: {
include: [
'@aehrc/sdc-assemble',
// other modules as required...
],
},
build: {
commonjsOptions: {
include: [
/node_modules/,
'@aehrc/sdc-assemble',
// other modules as required...
]
}
}
});
Sample implementation
We have used this module as a microservice in our forms server https://smartforms.csiro.au/api/fhir/Questionnaire/$assemble.
A sample implementation can be found here