Skip to content

Commit

Permalink
Refactor pre-pop package to add pre-processing code
Browse files Browse the repository at this point in the history
  • Loading branch information
fongsean committed May 19, 2024
1 parent 6eb151c commit 4365a73
Show file tree
Hide file tree
Showing 44 changed files with 1,325 additions and 22 deletions.
30 changes: 28 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/sdc-populate/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@aehrc/sdc-populate",
"version": "1.9.0",
"version": "2.0.0",
"description": "Performs the $populate operation from the HL7 FHIR SDC (Structured Data Capture) specification: http://hl7.org/fhir/uv/sdc",
"main": "lib/index.js",
"scripts": {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/*
* Copyright 2024 Commonwealth Scientific and Industrial Research
* Organisation (CSIRO) ABN 41 687 119 230.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

// Export interfaces
export * from './interfaces';

// Export utils
export * from './utils';
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ export interface IssuesParameter extends ParametersParameter {
}

// This is used for debugging purposes, it does not exist in the FHIR spec
// It is used to return the context result to the renderer
export interface CustomContextResultParameter extends ParametersParameter {
name: 'contextResult-custom';
valueAttachment: Attachment;
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ import { isEncounterContextParameter } from './typePredicates';
import { addDisplayToInitialExpressionsCodings } from './addDisplayToCodings';

/**
* Main function of this populate module.
* Executes the SDC Populate Questionnaire operation - $populate.
* Input and output specific parameters conformant to the SDC populate specification.
* @see {@link https://hl7.org/fhir/uv/sdc/OperationDefinition-Questionnaire-populate.html}
* Added populationContextResults for visual and debugging purposes.
* Added custom output parameters populationContextResults for visual and debugging purposes.
*
* @author Sean Fong
*/
Expand Down
18 changes: 18 additions & 0 deletions packages/sdc-populate/src/inAppPopulation/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/*
* Copyright 2024 Commonwealth Scientific and Industrial Research
* Organisation (CSIRO) ABN 41 687 119 230.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

export * from './utils';
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
/*
* Copyright 2024 Commonwealth Scientific and Industrial Research
* Organisation (CSIRO) ABN 41 687 119 230.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

// interfaces
import type { Coding, Expression, Extension, Reference } from 'fhir/r4';

export interface LaunchContext extends Extension {
url: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-launchContext';
extension: LaunchContextExtensions;
}

type LaunchContextExtensions =
| [LaunchContextName, LaunchContextType]
| [LaunchContextName, LaunchContextType, LaunchContextDescription];

type LaunchContextName = LaunchContextNameId | LaunchContextNameCoding;

// for backwards compatibility with old questionnaires (though it is not conformant)
interface LaunchContextNameId extends Extension {
url: 'name';
valueId: string;
}

interface LaunchContextNameCoding extends Extension {
url: 'name';
valueCoding: LaunchContextNameCodingValueCoding;
}

interface LaunchContextNameCodingValueCoding extends Coding {
code: 'patient' | 'encounter' | 'location' | 'user' | 'study';
}

interface LaunchContextType extends Extension {
url: 'type';
valueCode: string;
}

interface LaunchContextDescription extends Extension {
url: 'description';
valueString: string;
}

export interface SourceQuery extends Extension {
url: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-sourceQueries';
valueReference: Reference;
}

export interface QuestionnaireLevelXFhirQueryVariable extends Extension {
url: 'http://hl7.org/fhir/StructureDefinition/variable';
valueExpression: XFhirQueryVariableExpression;
}

interface XFhirQueryVariableExpression extends Expression {
name: string;
language: 'application/x-fhir-query';
expression: string;
}
Loading

0 comments on commit 4365a73

Please sign in to comment.