Skip to content

Commit

Permalink
Merge pull request #50 from jy95/modifierExtension
Browse files Browse the repository at this point in the history
feat: modifierExtension
  • Loading branch information
jy95 authored Apr 28, 2024
2 parents 063e65f + 5797886 commit b30728a
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 0 deletions.
72 changes: 72 additions & 0 deletions __tests__/fromDosageToText/modifierExtension.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
// For typings autocomplete whatever your IDE
import { expect, test, describe } from "@jest/globals";
import FhirDosageUtils from "../../src/index";

// types
import type { Dosage } from "fhir/r4";

describe("fromDosageToText - modifierExtension", () => {
let dosageUtils: FhirDosageUtils;

beforeAll(async () => {
dosageUtils = await FhirDosageUtils.build({
displayOrder: ["modifierExtension"],
});
});

test("No modifierExtension", () => {
const dosage: Dosage = {
text: "no modifierExtension",
};

let result = dosageUtils.fromDosageToText(dosage);
expect(result).toBe("");
});

test("Empty", () => {
const dosage: Dosage = {
modifierExtension: [],
};

let result = dosageUtils.fromDosageToText(dosage);
expect(result).toBe("");
});

test("1 item", () => {
const dosage: Dosage = {
modifierExtension: [
{
url: "https://www.ehealth.fgov.be/standards/fhir/medication/StructureDefinition/DosageOverride",
valueBoolean: true,
},
],
};

let result = dosageUtils.fromDosageToText(dosage);
expect(result).toBe(
'{"url":"https://www.ehealth.fgov.be/standards/fhir/medication/StructureDefinition/DosageOverride","valueBoolean":true}',
);
});

test("N+1 items", () => {
const dosage: Dosage = {
modifierExtension: [
{
url: "https://www.ehealth.fgov.be/standards/fhir/medication/StructureDefinition/DosageOverride",
valueBoolean: true,
},
{
url: "https://www.ehealth.fgov.be/standards/fhir/medication/StructureDefinition/DosageOverrideReason",
valueCodeableConcept: {
text: "Respect my authority ! - Eric Cartman",
},
},
],
};

let result = dosageUtils.fromDosageToText(dosage);
expect(result).toBe(
'{"url":"https://www.ehealth.fgov.be/standards/fhir/medication/StructureDefinition/DosageOverride","valueBoolean":true} {"url":"https://www.ehealth.fgov.be/standards/fhir/medication/StructureDefinition/DosageOverrideReason","valueCodeableConcept":{"text":"Respect my authority ! - Eric Cartman"}}',
);
});
});
4 changes: 4 additions & 0 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,10 @@ export enum DisplayOrderEnum {
* Display "timing.repeat.extension"
*/
timingRepeatExtension = "timingRepeatExtension",
/**
* Display "modifierExtension"
*/
modifierExtension = "modifierExtension",
}

export type DisplayOrder = keyof typeof DisplayOrderEnum;
Expand Down
5 changes: 5 additions & 0 deletions src/utils/fromDisplayOrderToResult.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,11 @@ const displayOrders = {
language: config.language,
extensions: dos.timing?.repeat?.extension,
}),
modifierExtension: ({ dos, config }) =>
config.fromExtensionsToString({
language: config.language,
extensions: dos.modifierExtension,
}),
} satisfies Record<DisplayOrder, ResultFct>;

type fromDisplayOrderToResultFct = DisplayOrderParams & {
Expand Down

0 comments on commit b30728a

Please sign in to comment.