diff --git a/docs/guides/testing-generators.md b/docs/guides/testing-generators.md index 6087ed86..b487ee9c 100644 --- a/docs/guides/testing-generators.md +++ b/docs/guides/testing-generators.md @@ -66,10 +66,11 @@ describe("TypeScript Writer Generator", async () => { .generate(); expect(result.success).toBeTrue(); - expect(Object.keys(result.filesGenerated).length).toEqual(236); + const files = result.filesGenerated.typescript!; + expect(Object.keys(files).length).toEqual(236); it("generates Patient resource with snapshot", async () => { - expect(result.filesGenerated["generated/types/hl7-fhir-r4-core/Patient.ts"]) + expect(files["generated/types/hl7-fhir-r4-core/Patient.ts"]) .toMatchSnapshot(); }); }); @@ -84,13 +85,13 @@ describe("TypeScript Writer Generator", async () => { **Generation Result:** - Contains `success` boolean flag -- Contains `filesGenerated` object with paths as keys and content as values +- Contains `filesGenerated` nested by generator name, then by path: `filesGenerated[generator][path] = content` - Can be accessed and asserted in tests **Assertions:** - Validate success: `expect(result.success).toBeTrue()` -- Check file count: `expect(Object.keys(result.filesGenerated).length).toEqual(expected)` -- Snapshot specific files: `expect(result.filesGenerated[path]).toMatchSnapshot()` +- Check file count for a generator: `expect(Object.keys(result.filesGenerated.typescript!).length).toEqual(expected)` +- Snapshot specific files: `expect(result.filesGenerated.typescript![path]).toMatchSnapshot()` ## Configuration Notes @@ -147,7 +148,7 @@ This updates all snapshot files to match current output. ```typescript it("generates fields with camelCase names", async () => { // Changed from PascalCase to camelCase to match TypeScript conventions - expect(result.filesGenerated["generated/types/Patient.ts"]) + expect(result.filesGenerated.typescript!["generated/types/Patient.ts"]) .toMatchSnapshot(); }); ``` diff --git a/src/api/builder.ts b/src/api/builder.ts index 93987e0b..e44fd18e 100644 --- a/src/api/builder.ts +++ b/src/api/builder.ts @@ -50,7 +50,8 @@ export interface APIBuilderOptions { export type GenerationReport = { success: boolean; outputDir: string; - filesGenerated: Record; + /** Generated files nested by generator name, then by path: `filesGenerated[generator][path] = content`. */ + filesGenerated: Record>; errors: string[]; warnings: string[]; duration: number; @@ -62,21 +63,67 @@ function countLinesByMatches(text: string): number { return m ? m.length + 1 : 1; } -export const prettyReport = (report: GenerationReport): string => { +const formatLoc = (loc: number): string => { + if (loc >= 10000) return `${Math.round(loc / 1000)} kloc`; + if (loc >= 1000) return `${(loc / 1000).toFixed(1)} kloc`; + return `${loc} loc`; +}; + +export interface PrettyReportOptions { + /** When a generator produces more than this many files, aggregate them by directory instead of listing each file. */ + fileLimit?: number; +} + +export const prettyReport = (report: GenerationReport, options: PrettyReportOptions = {}): string => { const { success, filesGenerated, errors, warnings, duration } = report; + const fileLimit = options.fileLimit ?? 20; const errorsStr = errors.length > 0 ? `Errors: ${errors.join(", ")}` : undefined; const warningsStr = warnings.length > 0 ? `Warnings: ${warnings.join(", ")}` : undefined; - let allLoc = 0; - const files = Object.entries(filesGenerated) - .map(([path, content]) => { + + let totalFiles = 0; + let totalLoc = 0; + + const aggregateByDir = (files: Record): { dir: string; count: number; loc: number }[] => { + const byDir: Record = {}; + for (const [p, loc] of Object.entries(files)) { + const dir = Path.dirname(p); + byDir[dir] ??= { count: 0, loc: 0 }; + byDir[dir].count += 1; + byDir[dir].loc += loc; + } + return Object.entries(byDir) + .map(([dir, v]) => ({ dir, count: v.count, loc: v.loc })) + .sort((a, b) => a.dir.localeCompare(b.dir)); + }; + + const groupStrs = Object.entries(filesGenerated).map(([name, files]) => { + const locByPath: Record = {}; + let groupLoc = 0; + for (const [path, content] of Object.entries(files)) { const loc = countLinesByMatches(content); - allLoc += loc; - return ` - ${path} (${loc} loc)`; - }) - .join("\n"); + locByPath[path] = loc; + groupLoc += loc; + } + const count = Object.keys(files).length; + totalFiles += count; + totalLoc += groupLoc; + + const header = ` ${name} (${count} files, ${formatLoc(groupLoc)}):`; + if (count === 0) return header; + if (count > fileLimit) { + const dirs = aggregateByDir(locByPath); + const dirLines = dirs.map((d) => ` - ${d.dir}/ (${d.count} files, ${formatLoc(d.loc)})`).join("\n"); + return `${header}\n${dirLines}`; + } + const fileLines = Object.entries(locByPath) + .map(([p, loc]) => ` - ${p} (${loc} loc)`) + .join("\n"); + return `${header}\n${fileLines}`; + }); + return [ - `Generated files (${Math.round(allLoc / 1000)} kloc):`, - files, + `Generated files (${totalFiles} files, ${formatLoc(totalLoc)}):`, + ...groupStrs, errorsStr, warningsStr, `Duration: ${Math.round(duration)}ms`, @@ -447,7 +494,8 @@ export class APIBuilder { result.success = result.errors.length === 0; - this.logger.debug(`Generation completed: ${result.filesGenerated.length} files`); + const totalFiles = Object.values(result.filesGenerated).reduce((n, f) => n + Object.keys(f).length, 0); + this.logger.debug(`Generation completed: ${totalFiles} files`); } catch (error) { this.logger.error(`Code generation failed: ${error instanceof Error ? error.message : String(error)}`); result.errors.push(error instanceof Error ? error.message : String(error)); @@ -483,8 +531,9 @@ export class APIBuilder { try { await gen.writer.generateAsync(tsIndex); const fileBuffer: FileBuffer[] = gen.writer.writtenFiles(); + const files = (result.filesGenerated[gen.name] ??= {}); fileBuffer.forEach((buf) => { - result.filesGenerated[buf.relPath] = buf.content; + files[buf.relPath] = buf.content; }); this.logger.info(`Generating ${gen.name} finished successfully`); } catch (error) { diff --git a/test/api/mustache.test.ts b/test/api/mustache.test.ts index 7e99626d..dd77a1da 100644 --- a/test/api/mustache.test.ts +++ b/test/api/mustache.test.ts @@ -15,10 +15,11 @@ describe("Mustache Template Based Generation", async () => { .throwException() .generate(); expect(report.success).toBeTrue(); - expect(Object.keys(report.filesGenerated).length).toEqual(192); + const files = report.filesGenerated["mustache[./examples/mustache/java]"]!; + expect(Object.keys(files).length).toEqual(192); it("Patient resource", async () => { expect( - report.filesGenerated["generated/model/src/main/java/de/solutio/fhir/models/resources/PatientDTO.java"], + files["generated/model/src/main/java/de/solutio/fhir/models/resources/PatientDTO.java"], ).toMatchSnapshot(); }); }); diff --git a/test/api/write-generator/__snapshots__/introspection.test.ts.snap b/test/api/write-generator/__snapshots__/introspection.test.ts.snap index 694bea9e..0b11f4eb 100644 --- a/test/api/write-generator/__snapshots__/introspection.test.ts.snap +++ b/test/api/write-generator/__snapshots__/introspection.test.ts.snap @@ -1410,337 +1410,8 @@ exports[`IntrospectionWriter - Fhir Schema Output Check all introspection data i " `; -exports[`IntrospectionWriter - TypeSchema output Generated file list 1`] = ` +exports[`IntrospectionWriter - StructureDefinition output Generated file list 1`] = ` [ - "generated/README.md", - "generated/introspection/hl7.fhir.r4.core/BackboneElement(BackboneElement).json", - "generated/introspection/hl7.fhir.r4.core/boolean(boolean).json", - "generated/introspection/hl7.fhir.r4.core/canonical(canonical).json", - "generated/introspection/hl7.fhir.r4.core/code(code).json", - "generated/introspection/hl7.fhir.r4.core/CodeableConcept(CodeableConcept).json", - "generated/introspection/hl7.fhir.r4.core/Coding(Coding).json", - "generated/introspection/hl7.fhir.r4.core/DomainResource(DomainResource).json", - "generated/introspection/hl7.fhir.r4.core/Element(Element).json", - "generated/introspection/hl7.fhir.r4.core/id(id).json", - "generated/introspection/hl7.fhir.r4.core/instant(instant).json", - "generated/introspection/hl7.fhir.r4.core/Meta(Meta).json", - "generated/introspection/hl7.fhir.r4.core/Narrative(Narrative).json", - "generated/introspection/hl7.fhir.r4.core/OperationOutcome(OperationOutcome).json", - "generated/introspection/hl7.fhir.r4.core/Resource(Resource).json", - "generated/introspection/hl7.fhir.r4.core/string(string).json", - "generated/introspection/hl7.fhir.r4.core/uri(uri).json", - "generated/introspection/hl7.fhir.r4.core/xhtml(xhtml).json", - "generated/introspection/shared/collisions/CommunicationReason(urnfhirbindingCommunicationReason)/1.json", - "generated/introspection/shared/collisions/CommunicationReason(urnfhirbindingCommunicationReason)/2.json", - "generated/introspection/shared/collisions/ObservationCategory(urnfhirbindingObservationCategory)/1.json", - "generated/introspection/shared/collisions/ObservationCategory(urnfhirbindingObservationCategory)/2.json", - "generated/introspection/shared/collisions/ObservationCategory(urnfhirbindingObservationCategory)/3.json", - "generated/introspection/shared/collisions/ObservationRangeMeaning(urnfhirbindingObservationRangeMeaning)/1.json", - "generated/introspection/shared/collisions/ObservationRangeMeaning(urnfhirbindingObservationRangeMeaning)/2.json", - "generated/introspection/shared/collisions/ObservationRangeMeaning(urnfhirbindingObservationRangeMeaning)/3.json", - "generated/introspection/shared/collisions/ObservationRangeMeaning(urnfhirbindingObservationRangeMeaning)/4.json", - "generated/introspection/shared/collisions/ObservationRangeMeaning(urnfhirbindingObservationRangeMeaning)/5.json", - "generated/introspection/shared/collisions/ObservationRangeMeaning(urnfhirbindingObservationRangeMeaning)/6.json", - "generated/introspection/shared/collisions/PaymentType(urnfhirbindingPaymentType)/1.json", - "generated/introspection/shared/collisions/PaymentType(urnfhirbindingPaymentType)/2.json", - "generated/introspection/shared/collisions/PaymentType(urnfhirbindingPaymentType)/3.json", - "generated/introspection/shared/collisions/ProcessPriority(urnfhirbindingProcessPriority)/1.json", - "generated/introspection/shared/collisions/ProcessPriority(urnfhirbindingProcessPriority)/2.json", - "generated/introspection/shared/collisions/ProcessPriority(urnfhirbindingProcessPriority)/3.json", - "generated/introspection/shared/collisions/TargetDisease(urnfhirbindingTargetDisease)/1.json", - "generated/introspection/shared/collisions/TargetDisease(urnfhirbindingTargetDisease)/2.json", - "generated/introspection/shared/IssueDetails(urnfhirbindingIssueDetails).json", - "generated/introspection/shared/IssueSeverity(urnfhirbindingIssueSeverity).json", - "generated/introspection/shared/IssueType(urnfhirbindingIssueType).json", - "generated/introspection/shared/Language(urnfhirbindingLanguage).json", - "generated/introspection/shared/NarrativeStatus(urnfhirbindingNarrativeStatus).json", - "generated/introspection/shared/SecurityLabels(urnfhirbindingSecurityLabels).json", - "generated/introspection/shared/Tags(urnfhirbindingTags).json", - "generated/introspection.ndjson", -] -`; - -exports[`IntrospectionWriter - TypeSchema output Check OperationOutcome introspection schema 1`] = ` -"{ - "identifier": { - "kind": "resource", - "package": "hl7.fhir.r4.core", - "version": "4.0.1", - "name": "OperationOutcome", - "url": "http://hl7.org/fhir/StructureDefinition/OperationOutcome" - }, - "base": { - "kind": "resource", - "package": "hl7.fhir.r4.core", - "version": "4.0.1", - "name": "DomainResource", - "url": "http://hl7.org/fhir/StructureDefinition/DomainResource" - }, - "fields": { - "issue": { - "type": { - "kind": "nested", - "package": "hl7.fhir.r4.core", - "version": "4.0.1", - "name": "issue", - "url": "http://hl7.org/fhir/StructureDefinition/OperationOutcome#issue" - }, - "array": true, - "required": true, - "excluded": false - } - }, - "nested": [ - { - "identifier": { - "kind": "nested", - "package": "hl7.fhir.r4.core", - "version": "4.0.1", - "name": "issue", - "url": "http://hl7.org/fhir/StructureDefinition/OperationOutcome#issue" - }, - "base": { - "kind": "complex-type", - "package": "hl7.fhir.r4.core", - "version": "4.0.1", - "name": "BackboneElement", - "url": "http://hl7.org/fhir/StructureDefinition/BackboneElement" - }, - "fields": { - "severity": { - "type": { - "kind": "primitive-type", - "package": "hl7.fhir.r4.core", - "version": "4.0.1", - "name": "code", - "url": "http://hl7.org/fhir/StructureDefinition/code" - }, - "required": true, - "excluded": false, - "array": false, - "binding": { - "kind": "binding", - "package": "shared", - "version": "1.0.0", - "name": "IssueSeverity", - "url": "urn:fhir:binding:IssueSeverity" - }, - "enum": { - "isOpen": false, - "values": [ - "fatal", - "error", - "warning", - "information" - ] - } - }, - "code": { - "type": { - "kind": "primitive-type", - "package": "hl7.fhir.r4.core", - "version": "4.0.1", - "name": "code", - "url": "http://hl7.org/fhir/StructureDefinition/code" - }, - "required": true, - "excluded": false, - "array": false, - "binding": { - "kind": "binding", - "package": "shared", - "version": "1.0.0", - "name": "IssueType", - "url": "urn:fhir:binding:IssueType" - }, - "enum": { - "isOpen": false, - "values": [ - "invalid", - "structure", - "required", - "value", - "invariant", - "security", - "login", - "unknown", - "expired", - "forbidden", - "suppressed", - "processing", - "not-supported", - "duplicate", - "multiple-matches", - "not-found", - "deleted", - "too-long", - "code-invalid", - "extension", - "too-costly", - "business-rule", - "conflict", - "transient", - "lock-error", - "no-store", - "exception", - "timeout", - "incomplete", - "throttled", - "informational" - ] - } - }, - "details": { - "type": { - "kind": "complex-type", - "package": "hl7.fhir.r4.core", - "version": "4.0.1", - "name": "CodeableConcept", - "url": "http://hl7.org/fhir/StructureDefinition/CodeableConcept" - }, - "required": false, - "excluded": false, - "array": false, - "binding": { - "kind": "binding", - "package": "shared", - "version": "1.0.0", - "name": "IssueDetails", - "url": "urn:fhir:binding:IssueDetails" - } - }, - "diagnostics": { - "type": { - "kind": "primitive-type", - "package": "hl7.fhir.r4.core", - "version": "4.0.1", - "name": "string", - "url": "http://hl7.org/fhir/StructureDefinition/string" - }, - "required": false, - "excluded": false, - "array": false - }, - "location": { - "type": { - "kind": "primitive-type", - "package": "hl7.fhir.r4.core", - "version": "4.0.1", - "name": "string", - "url": "http://hl7.org/fhir/StructureDefinition/string" - }, - "required": false, - "excluded": false, - "array": true - }, - "expression": { - "type": { - "kind": "primitive-type", - "package": "hl7.fhir.r4.core", - "version": "4.0.1", - "name": "string", - "url": "http://hl7.org/fhir/StructureDefinition/string" - }, - "required": false, - "excluded": false, - "array": true - } - } - } - ], - "description": "A collection of error, warning, or information messages that result from a system action.", - "dependencies": [ - { - "kind": "complex-type", - "package": "hl7.fhir.r4.core", - "version": "4.0.1", - "name": "BackboneElement", - "url": "http://hl7.org/fhir/StructureDefinition/BackboneElement" - }, - { - "kind": "primitive-type", - "package": "hl7.fhir.r4.core", - "version": "4.0.1", - "name": "code", - "url": "http://hl7.org/fhir/StructureDefinition/code" - }, - { - "kind": "complex-type", - "package": "hl7.fhir.r4.core", - "version": "4.0.1", - "name": "CodeableConcept", - "url": "http://hl7.org/fhir/StructureDefinition/CodeableConcept" - }, - { - "kind": "resource", - "package": "hl7.fhir.r4.core", - "version": "4.0.1", - "name": "DomainResource", - "url": "http://hl7.org/fhir/StructureDefinition/DomainResource" - }, - { - "kind": "primitive-type", - "package": "hl7.fhir.r4.core", - "version": "4.0.1", - "name": "string", - "url": "http://hl7.org/fhir/StructureDefinition/string" - }, - { - "kind": "binding", - "package": "shared", - "version": "1.0.0", - "name": "IssueDetails", - "url": "urn:fhir:binding:IssueDetails" - }, - { - "kind": "binding", - "package": "shared", - "version": "1.0.0", - "name": "IssueSeverity", - "url": "urn:fhir:binding:IssueSeverity" - }, - { - "kind": "binding", - "package": "shared", - "version": "1.0.0", - "name": "IssueType", - "url": "urn:fhir:binding:IssueType" - } - ] -}" -`; - -exports[`IntrospectionWriter - TypeSchema output Check all introspection data in a single ndjson file 1`] = ` -"{"identifier":{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"OperationOutcome","url":"http://hl7.org/fhir/StructureDefinition/OperationOutcome"},"base":{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"DomainResource","url":"http://hl7.org/fhir/StructureDefinition/DomainResource"},"fields":{"issue":{"type":{"kind":"nested","package":"hl7.fhir.r4.core","version":"4.0.1","name":"issue","url":"http://hl7.org/fhir/StructureDefinition/OperationOutcome#issue"},"array":true,"required":true,"excluded":false}},"nested":[{"identifier":{"kind":"nested","package":"hl7.fhir.r4.core","version":"4.0.1","name":"issue","url":"http://hl7.org/fhir/StructureDefinition/OperationOutcome#issue"},"base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"BackboneElement","url":"http://hl7.org/fhir/StructureDefinition/BackboneElement"},"fields":{"severity":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},"required":true,"excluded":false,"array":false,"binding":{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueSeverity","url":"urn:fhir:binding:IssueSeverity"},"enum":{"isOpen":false,"values":["fatal","error","warning","information"]}},"code":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},"required":true,"excluded":false,"array":false,"binding":{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueType","url":"urn:fhir:binding:IssueType"},"enum":{"isOpen":false,"values":["invalid","structure","required","value","invariant","security","login","unknown","expired","forbidden","suppressed","processing","not-supported","duplicate","multiple-matches","not-found","deleted","too-long","code-invalid","extension","too-costly","business-rule","conflict","transient","lock-error","no-store","exception","timeout","incomplete","throttled","informational"]}},"details":{"type":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"CodeableConcept","url":"http://hl7.org/fhir/StructureDefinition/CodeableConcept"},"required":false,"excluded":false,"array":false,"binding":{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueDetails","url":"urn:fhir:binding:IssueDetails"}},"diagnostics":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"required":false,"excluded":false,"array":false},"location":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"required":false,"excluded":false,"array":true},"expression":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"required":false,"excluded":false,"array":true}}}],"description":"A collection of error, warning, or information messages that result from a system action.","dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"BackboneElement","url":"http://hl7.org/fhir/StructureDefinition/BackboneElement"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"CodeableConcept","url":"http://hl7.org/fhir/StructureDefinition/CodeableConcept"},{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"DomainResource","url":"http://hl7.org/fhir/StructureDefinition/DomainResource"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueDetails","url":"urn:fhir:binding:IssueDetails"},{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueSeverity","url":"urn:fhir:binding:IssueSeverity"},{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueType","url":"urn:fhir:binding:IssueType"}]} -{"identifier":{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"DomainResource","url":"http://hl7.org/fhir/StructureDefinition/DomainResource"},"base":{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Resource","url":"http://hl7.org/fhir/StructureDefinition/Resource"},"fields":{"text":{"type":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Narrative","url":"http://hl7.org/fhir/StructureDefinition/Narrative"},"required":false,"excluded":false,"array":false},"contained":{"type":{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Resource","url":"http://hl7.org/fhir/StructureDefinition/Resource"},"required":false,"excluded":false,"array":true}},"description":"A resource that includes narrative, extensions, and contained resources.","dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Narrative","url":"http://hl7.org/fhir/StructureDefinition/Narrative"},{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Resource","url":"http://hl7.org/fhir/StructureDefinition/Resource"}],"typeFamily":{"resources":[{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"OperationOutcome","url":"http://hl7.org/fhir/StructureDefinition/OperationOutcome"}]}} -{"identifier":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"BackboneElement","url":"http://hl7.org/fhir/StructureDefinition/BackboneElement"},"base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"fields":{},"description":"Base StructureDefinition for BackboneElement Type: Base definition for all elements that are defined inside a resource - but not those in a data type.","dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"}],"typeFamily":{"complexTypes":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Dosage","url":"http://hl7.org/fhir/StructureDefinition/Dosage"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"ElementDefinition","url":"http://hl7.org/fhir/StructureDefinition/ElementDefinition"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"MarketingStatus","url":"http://hl7.org/fhir/StructureDefinition/MarketingStatus"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Population","url":"http://hl7.org/fhir/StructureDefinition/Population"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"ProdCharacteristic","url":"http://hl7.org/fhir/StructureDefinition/ProdCharacteristic"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"ProductShelfLife","url":"http://hl7.org/fhir/StructureDefinition/ProductShelfLife"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"SubstanceAmount","url":"http://hl7.org/fhir/StructureDefinition/SubstanceAmount"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Timing","url":"http://hl7.org/fhir/StructureDefinition/Timing"}]}} -{"identifier":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"fields":{"id":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"required":false,"excluded":false,"array":false}},"description":"Base StructureDefinition for Element Type: Base definition for all elements in a resource.","dependencies":[{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"}],"typeFamily":{"complexTypes":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"BackboneElement","url":"http://hl7.org/fhir/StructureDefinition/BackboneElement"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"CodeableConcept","url":"http://hl7.org/fhir/StructureDefinition/CodeableConcept"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Narrative","url":"http://hl7.org/fhir/StructureDefinition/Narrative"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Coding","url":"http://hl7.org/fhir/StructureDefinition/Coding"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Meta","url":"http://hl7.org/fhir/StructureDefinition/Meta"}]}} -{"identifier":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},"description":"Base StructureDefinition for code type: A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents","base":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"dependencies":[{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"}]} -{"identifier":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"CodeableConcept","url":"http://hl7.org/fhir/StructureDefinition/CodeableConcept"},"base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"fields":{"coding":{"type":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Coding","url":"http://hl7.org/fhir/StructureDefinition/Coding"},"required":false,"excluded":false,"array":true},"text":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"required":false,"excluded":false,"array":false}},"description":"Base StructureDefinition for CodeableConcept Type: A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.","dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Coding","url":"http://hl7.org/fhir/StructureDefinition/Coding"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"}]} -{"identifier":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"description":"Base StructureDefinition for string Type: A sequence of Unicode characters","base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"}]} -{"identifier":{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueDetails","url":"urn:fhir:binding:IssueDetails"},"valueset":{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"OperationOutcome","url":"http://hl7.org/fhir/ValueSet/operation-outcome"},"strength":"example","dependencies":[{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"OperationOutcome","url":"http://hl7.org/fhir/ValueSet/operation-outcome"}]} -{"identifier":{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueSeverity","url":"urn:fhir:binding:IssueSeverity"},"valueset":{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"IssueSeverity","url":"http://hl7.org/fhir/ValueSet/issue-severity"},"strength":"required","enum":{"isOpen":false,"values":["fatal","error","warning","information"]},"dependencies":[{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"IssueSeverity","url":"http://hl7.org/fhir/ValueSet/issue-severity"}]} -{"identifier":{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueType","url":"urn:fhir:binding:IssueType"},"valueset":{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"IssueType","url":"http://hl7.org/fhir/ValueSet/issue-type"},"strength":"required","enum":{"isOpen":false,"values":["invalid","structure","required","value","invariant","security","login","unknown","expired","forbidden","suppressed","processing","not-supported","duplicate","multiple-matches","not-found","deleted","too-long","code-invalid","extension","too-costly","business-rule","conflict","transient","lock-error","no-store","exception","timeout","incomplete","throttled","informational"]},"dependencies":[{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"IssueType","url":"http://hl7.org/fhir/ValueSet/issue-type"}]} -{"identifier":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Narrative","url":"http://hl7.org/fhir/StructureDefinition/Narrative"},"base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"fields":{"status":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},"required":true,"excluded":false,"array":false,"binding":{"kind":"binding","package":"shared","version":"1.0.0","name":"NarrativeStatus","url":"urn:fhir:binding:NarrativeStatus"},"enum":{"isOpen":false,"values":["generated","extensions","additional","empty"]}},"div":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"xhtml","url":"http://hl7.org/fhir/StructureDefinition/xhtml"},"required":true,"excluded":false,"array":false}},"description":"Base StructureDefinition for Narrative Type: A human-readable summary of the resource conveying the essential clinical and business information for the resource.","dependencies":[{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"xhtml","url":"http://hl7.org/fhir/StructureDefinition/xhtml"},{"kind":"binding","package":"shared","version":"1.0.0","name":"NarrativeStatus","url":"urn:fhir:binding:NarrativeStatus"}]} -{"identifier":{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Resource","url":"http://hl7.org/fhir/StructureDefinition/Resource"},"fields":{"id":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"required":false,"excluded":false,"array":false},"meta":{"type":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Meta","url":"http://hl7.org/fhir/StructureDefinition/Meta"},"required":false,"excluded":false,"array":false},"implicitRules":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"},"required":false,"excluded":false,"array":false},"language":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},"required":false,"excluded":false,"array":false,"binding":{"kind":"binding","package":"shared","version":"1.0.0","name":"Language","url":"urn:fhir:binding:Language"},"enum":{"isOpen":true,"values":["ar","bn","cs","da","de","de-AT","de-CH","de-DE","el","en","en-AU","en-CA","en-GB","en-IN","en-NZ","en-SG","en-US","es","es-AR","es-ES","es-UY","fi","fr","fr-BE","fr-CH","fr-FR","fy","fy-NL","hi","hr","it","it-CH","it-IT","ja","ko","nl","nl-BE","nl-NL","no","no-NO","pa","pl","pt","pt-BR","ru","ru-RU","sr","sr-RS","sv","sv-SE","te","zh","zh-CN","zh-HK","zh-SG","zh-TW"]}}},"description":"This is the base resource type for everything.","dependencies":[{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Meta","url":"http://hl7.org/fhir/StructureDefinition/Meta"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"},{"kind":"binding","package":"shared","version":"1.0.0","name":"Language","url":"urn:fhir:binding:Language"}],"typeFamily":{"resources":[{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"DomainResource","url":"http://hl7.org/fhir/StructureDefinition/DomainResource"},{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"OperationOutcome","url":"http://hl7.org/fhir/StructureDefinition/OperationOutcome"}]}} -{"identifier":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Coding","url":"http://hl7.org/fhir/StructureDefinition/Coding"},"base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"fields":{"system":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"},"required":false,"excluded":false,"array":false},"version":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"required":false,"excluded":false,"array":false},"code":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},"required":false,"excluded":false,"array":false},"display":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"required":false,"excluded":false,"array":false},"userSelected":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"boolean","url":"http://hl7.org/fhir/StructureDefinition/boolean"},"required":false,"excluded":false,"array":false}},"description":"Base StructureDefinition for Coding Type: A reference to a code defined by a terminology system.","dependencies":[{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"boolean","url":"http://hl7.org/fhir/StructureDefinition/boolean"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"}]} -{"identifier":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"xhtml","url":"http://hl7.org/fhir/StructureDefinition/xhtml"},"description":"Base StructureDefinition for xhtml Type","base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"}]} -{"identifier":{"kind":"binding","package":"shared","version":"1.0.0","name":"NarrativeStatus","url":"urn:fhir:binding:NarrativeStatus"},"valueset":{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"NarrativeStatus","url":"http://hl7.org/fhir/ValueSet/narrative-status"},"strength":"required","enum":{"isOpen":false,"values":["generated","extensions","additional","empty"]},"dependencies":[{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"NarrativeStatus","url":"http://hl7.org/fhir/ValueSet/narrative-status"}]} -{"identifier":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Meta","url":"http://hl7.org/fhir/StructureDefinition/Meta"},"base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"fields":{"versionId":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"id","url":"http://hl7.org/fhir/StructureDefinition/id"},"required":false,"excluded":false,"array":false},"lastUpdated":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"instant","url":"http://hl7.org/fhir/StructureDefinition/instant"},"required":false,"excluded":false,"array":false},"source":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"},"required":false,"excluded":false,"array":false},"profile":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"canonical","url":"http://hl7.org/fhir/StructureDefinition/canonical"},"required":false,"excluded":false,"array":true},"security":{"type":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Coding","url":"http://hl7.org/fhir/StructureDefinition/Coding"},"required":false,"excluded":false,"array":true,"binding":{"kind":"binding","package":"shared","version":"1.0.0","name":"SecurityLabels","url":"urn:fhir:binding:SecurityLabels"}},"tag":{"type":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Coding","url":"http://hl7.org/fhir/StructureDefinition/Coding"},"required":false,"excluded":false,"array":true,"binding":{"kind":"binding","package":"shared","version":"1.0.0","name":"Tags","url":"urn:fhir:binding:Tags"}}},"description":"Base StructureDefinition for Meta Type: The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","dependencies":[{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"canonical","url":"http://hl7.org/fhir/StructureDefinition/canonical"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Coding","url":"http://hl7.org/fhir/StructureDefinition/Coding"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"id","url":"http://hl7.org/fhir/StructureDefinition/id"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"instant","url":"http://hl7.org/fhir/StructureDefinition/instant"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"},{"kind":"binding","package":"shared","version":"1.0.0","name":"SecurityLabels","url":"urn:fhir:binding:SecurityLabels"},{"kind":"binding","package":"shared","version":"1.0.0","name":"Tags","url":"urn:fhir:binding:Tags"}]} -{"identifier":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"},"description":"Base StructureDefinition for uri Type: String of characters used to identify a name or a resource","base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"}]} -{"identifier":{"kind":"binding","package":"shared","version":"1.0.0","name":"Language","url":"urn:fhir:binding:Language"},"valueset":{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Languages","url":"http://hl7.org/fhir/ValueSet/languages"},"strength":"preferred","enum":{"isOpen":true,"values":["ar","bn","cs","da","de","de-AT","de-CH","de-DE","el","en","en-AU","en-CA","en-GB","en-IN","en-NZ","en-SG","en-US","es","es-AR","es-ES","es-UY","fi","fr","fr-BE","fr-CH","fr-FR","fy","fy-NL","hi","hr","it","it-CH","it-IT","ja","ko","nl","nl-BE","nl-NL","no","no-NO","pa","pl","pt","pt-BR","ru","ru-RU","sr","sr-RS","sv","sv-SE","te","zh","zh-CN","zh-HK","zh-SG","zh-TW"]},"dependencies":[{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Languages","url":"http://hl7.org/fhir/ValueSet/languages"}]} -{"identifier":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"boolean","url":"http://hl7.org/fhir/StructureDefinition/boolean"},"description":"Base StructureDefinition for boolean Type: Value of \\"true\\" or \\"false\\"","base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"}]} -{"identifier":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"canonical","url":"http://hl7.org/fhir/StructureDefinition/canonical"},"description":"Base StructureDefinition for canonical type: A URI that is a reference to a canonical URL on a FHIR resource","base":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"},"dependencies":[{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"}]} -{"identifier":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"id","url":"http://hl7.org/fhir/StructureDefinition/id"},"description":"Base StructureDefinition for id type: Any combination of letters, numerals, \\"-\\" and \\".\\", with a length limit of 64 characters. (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.) Ids are case-insensitive.","base":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"dependencies":[{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"}]} -{"identifier":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"instant","url":"http://hl7.org/fhir/StructureDefinition/instant"},"description":"Base StructureDefinition for instant Type: An instant in time - known at least to the second","base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"}]} -{"identifier":{"kind":"binding","package":"shared","version":"1.0.0","name":"SecurityLabels","url":"urn:fhir:binding:SecurityLabels"},"valueset":{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"SecurityLabels","url":"http://hl7.org/fhir/ValueSet/security-labels"},"strength":"extensible","dependencies":[{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"SecurityLabels","url":"http://hl7.org/fhir/ValueSet/security-labels"}]} -{"identifier":{"kind":"binding","package":"shared","version":"1.0.0","name":"Tags","url":"urn:fhir:binding:Tags"},"valueset":{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"CommonTags","url":"http://hl7.org/fhir/ValueSet/common-tags"},"strength":"example","dependencies":[{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"CommonTags","url":"http://hl7.org/fhir/ValueSet/common-tags"}]} -" -`; - -exports[`IntrospectionWriter - StructureDefinition output Generated file list 1`] = ` -[ - "generated/README.md", "generated/structure-definitions/hl7.fhir.r4.core/abatement(familymemberhistory-abatement).json", "generated/structure-definitions/hl7.fhir.r4.core/acceptance(goal-acceptance).json", "generated/structure-definitions/hl7.fhir.r4.core/Accession(auditevent-Accession).json", @@ -4229,3 +3900,330 @@ exports[`IntrospectionWriter - StructureDefinition output Check all StructureDef {"resourceType":"StructureDefinition","meta":{"lastUpdated":"2019-11-01T09:29:23.356+11:00"},"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status","valueCode":"normative"},{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version","valueCode":"4.0.0"}],"url":"http://hl7.org/fhir/StructureDefinition/xhtml","version":"4.0.1","name":"xhtml","status":"active","date":"2019-11-01T09:29:23+11:00","publisher":"HL7 FHIR Standard","contact":[{"telecom":[{"system":"url","value":"http://hl7.org/fhir"}]}],"description":"Base StructureDefinition for xhtml Type","fhirVersion":"4.0.1","kind":"primitive-type","abstract":false,"type":"xhtml","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Element","derivation":"specialization","snapshot":{"element":[{"id":"xhtml","path":"xhtml","short":"Primitive Type xhtml","definition":"XHTML","min":0,"max":"*","base":{"path":"xhtml","min":0,"max":"*"},"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"http://hl7.org/fhir/StructureDefinition/Element"}],"isModifier":false,"isSummary":false},{"id":"xhtml.id","path":"xhtml.id","representation":["xmlAttr"],"short":"xml:id (or equivalent in JSON)","definition":"unique id for the element within a resource (for internal references)","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"http://hl7.org/fhirpath/System.String"}],"isModifier":false,"isSummary":false},{"id":"xhtml.extension","path":"xhtml.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"0","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"http://hl7.org/fhir/StructureDefinition/Element"},{"key":"ext-1","severity":"error","human":"Must have either extensions or value[x], not both","expression":"extension.exists() != value.exists()","xpath":"exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])","source":"http://hl7.org/fhir/StructureDefinition/Extension"}],"isModifier":false,"isSummary":false},{"id":"xhtml.value","path":"xhtml.value","representation":["xhtml"],"short":"Actual xhtml","definition":"Actual xhtml","min":1,"max":"1","base":{"path":"xhtml.value","min":1,"max":"1"},"type":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type","valueUrl":"string"}],"code":"http://hl7.org/fhirpath/System.String"}],"isModifier":false,"isSummary":false}]},"differential":{"element":[{"id":"xhtml","path":"xhtml","short":"Primitive Type xhtml","definition":"XHTML","min":0,"max":"*"},{"id":"xhtml.extension","path":"xhtml.extension","max":"0"},{"id":"xhtml.value","path":"xhtml.value","representation":["xhtml"],"short":"Actual xhtml","definition":"Actual xhtml","min":1,"max":"1","type":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type","valueUrl":"string"}],"code":"http://hl7.org/fhirpath/System.String"}]}]},"package_name":"hl7.fhir.r4.core","package_version":"4.0.1"} " `; + +exports[`IntrospectionWriter - TypeSchema output Generated file list 1`] = ` +[ + "generated/introspection/hl7.fhir.r4.core/BackboneElement(BackboneElement).json", + "generated/introspection/hl7.fhir.r4.core/boolean(boolean).json", + "generated/introspection/hl7.fhir.r4.core/canonical(canonical).json", + "generated/introspection/hl7.fhir.r4.core/code(code).json", + "generated/introspection/hl7.fhir.r4.core/CodeableConcept(CodeableConcept).json", + "generated/introspection/hl7.fhir.r4.core/Coding(Coding).json", + "generated/introspection/hl7.fhir.r4.core/DomainResource(DomainResource).json", + "generated/introspection/hl7.fhir.r4.core/Element(Element).json", + "generated/introspection/hl7.fhir.r4.core/id(id).json", + "generated/introspection/hl7.fhir.r4.core/instant(instant).json", + "generated/introspection/hl7.fhir.r4.core/Meta(Meta).json", + "generated/introspection/hl7.fhir.r4.core/Narrative(Narrative).json", + "generated/introspection/hl7.fhir.r4.core/OperationOutcome(OperationOutcome).json", + "generated/introspection/hl7.fhir.r4.core/Resource(Resource).json", + "generated/introspection/hl7.fhir.r4.core/string(string).json", + "generated/introspection/hl7.fhir.r4.core/uri(uri).json", + "generated/introspection/hl7.fhir.r4.core/xhtml(xhtml).json", + "generated/introspection/shared/collisions/CommunicationReason(urnfhirbindingCommunicationReason)/1.json", + "generated/introspection/shared/collisions/CommunicationReason(urnfhirbindingCommunicationReason)/2.json", + "generated/introspection/shared/collisions/ObservationCategory(urnfhirbindingObservationCategory)/1.json", + "generated/introspection/shared/collisions/ObservationCategory(urnfhirbindingObservationCategory)/2.json", + "generated/introspection/shared/collisions/ObservationCategory(urnfhirbindingObservationCategory)/3.json", + "generated/introspection/shared/collisions/ObservationRangeMeaning(urnfhirbindingObservationRangeMeaning)/1.json", + "generated/introspection/shared/collisions/ObservationRangeMeaning(urnfhirbindingObservationRangeMeaning)/2.json", + "generated/introspection/shared/collisions/ObservationRangeMeaning(urnfhirbindingObservationRangeMeaning)/3.json", + "generated/introspection/shared/collisions/ObservationRangeMeaning(urnfhirbindingObservationRangeMeaning)/4.json", + "generated/introspection/shared/collisions/ObservationRangeMeaning(urnfhirbindingObservationRangeMeaning)/5.json", + "generated/introspection/shared/collisions/ObservationRangeMeaning(urnfhirbindingObservationRangeMeaning)/6.json", + "generated/introspection/shared/collisions/PaymentType(urnfhirbindingPaymentType)/1.json", + "generated/introspection/shared/collisions/PaymentType(urnfhirbindingPaymentType)/2.json", + "generated/introspection/shared/collisions/PaymentType(urnfhirbindingPaymentType)/3.json", + "generated/introspection/shared/collisions/ProcessPriority(urnfhirbindingProcessPriority)/1.json", + "generated/introspection/shared/collisions/ProcessPriority(urnfhirbindingProcessPriority)/2.json", + "generated/introspection/shared/collisions/ProcessPriority(urnfhirbindingProcessPriority)/3.json", + "generated/introspection/shared/collisions/TargetDisease(urnfhirbindingTargetDisease)/1.json", + "generated/introspection/shared/collisions/TargetDisease(urnfhirbindingTargetDisease)/2.json", + "generated/introspection/shared/IssueDetails(urnfhirbindingIssueDetails).json", + "generated/introspection/shared/IssueSeverity(urnfhirbindingIssueSeverity).json", + "generated/introspection/shared/IssueType(urnfhirbindingIssueType).json", + "generated/introspection/shared/Language(urnfhirbindingLanguage).json", + "generated/introspection/shared/NarrativeStatus(urnfhirbindingNarrativeStatus).json", + "generated/introspection/shared/SecurityLabels(urnfhirbindingSecurityLabels).json", + "generated/introspection/shared/Tags(urnfhirbindingTags).json", + "generated/introspection.ndjson", +] +`; + +exports[`IntrospectionWriter - TypeSchema output Check OperationOutcome introspection schema 1`] = ` +"{ + "identifier": { + "kind": "resource", + "package": "hl7.fhir.r4.core", + "version": "4.0.1", + "name": "OperationOutcome", + "url": "http://hl7.org/fhir/StructureDefinition/OperationOutcome" + }, + "base": { + "kind": "resource", + "package": "hl7.fhir.r4.core", + "version": "4.0.1", + "name": "DomainResource", + "url": "http://hl7.org/fhir/StructureDefinition/DomainResource" + }, + "fields": { + "issue": { + "type": { + "kind": "nested", + "package": "hl7.fhir.r4.core", + "version": "4.0.1", + "name": "issue", + "url": "http://hl7.org/fhir/StructureDefinition/OperationOutcome#issue" + }, + "array": true, + "required": true, + "excluded": false + } + }, + "nested": [ + { + "identifier": { + "kind": "nested", + "package": "hl7.fhir.r4.core", + "version": "4.0.1", + "name": "issue", + "url": "http://hl7.org/fhir/StructureDefinition/OperationOutcome#issue" + }, + "base": { + "kind": "complex-type", + "package": "hl7.fhir.r4.core", + "version": "4.0.1", + "name": "BackboneElement", + "url": "http://hl7.org/fhir/StructureDefinition/BackboneElement" + }, + "fields": { + "severity": { + "type": { + "kind": "primitive-type", + "package": "hl7.fhir.r4.core", + "version": "4.0.1", + "name": "code", + "url": "http://hl7.org/fhir/StructureDefinition/code" + }, + "required": true, + "excluded": false, + "array": false, + "binding": { + "kind": "binding", + "package": "shared", + "version": "1.0.0", + "name": "IssueSeverity", + "url": "urn:fhir:binding:IssueSeverity" + }, + "enum": { + "isOpen": false, + "values": [ + "fatal", + "error", + "warning", + "information" + ] + } + }, + "code": { + "type": { + "kind": "primitive-type", + "package": "hl7.fhir.r4.core", + "version": "4.0.1", + "name": "code", + "url": "http://hl7.org/fhir/StructureDefinition/code" + }, + "required": true, + "excluded": false, + "array": false, + "binding": { + "kind": "binding", + "package": "shared", + "version": "1.0.0", + "name": "IssueType", + "url": "urn:fhir:binding:IssueType" + }, + "enum": { + "isOpen": false, + "values": [ + "invalid", + "structure", + "required", + "value", + "invariant", + "security", + "login", + "unknown", + "expired", + "forbidden", + "suppressed", + "processing", + "not-supported", + "duplicate", + "multiple-matches", + "not-found", + "deleted", + "too-long", + "code-invalid", + "extension", + "too-costly", + "business-rule", + "conflict", + "transient", + "lock-error", + "no-store", + "exception", + "timeout", + "incomplete", + "throttled", + "informational" + ] + } + }, + "details": { + "type": { + "kind": "complex-type", + "package": "hl7.fhir.r4.core", + "version": "4.0.1", + "name": "CodeableConcept", + "url": "http://hl7.org/fhir/StructureDefinition/CodeableConcept" + }, + "required": false, + "excluded": false, + "array": false, + "binding": { + "kind": "binding", + "package": "shared", + "version": "1.0.0", + "name": "IssueDetails", + "url": "urn:fhir:binding:IssueDetails" + } + }, + "diagnostics": { + "type": { + "kind": "primitive-type", + "package": "hl7.fhir.r4.core", + "version": "4.0.1", + "name": "string", + "url": "http://hl7.org/fhir/StructureDefinition/string" + }, + "required": false, + "excluded": false, + "array": false + }, + "location": { + "type": { + "kind": "primitive-type", + "package": "hl7.fhir.r4.core", + "version": "4.0.1", + "name": "string", + "url": "http://hl7.org/fhir/StructureDefinition/string" + }, + "required": false, + "excluded": false, + "array": true + }, + "expression": { + "type": { + "kind": "primitive-type", + "package": "hl7.fhir.r4.core", + "version": "4.0.1", + "name": "string", + "url": "http://hl7.org/fhir/StructureDefinition/string" + }, + "required": false, + "excluded": false, + "array": true + } + } + } + ], + "description": "A collection of error, warning, or information messages that result from a system action.", + "dependencies": [ + { + "kind": "complex-type", + "package": "hl7.fhir.r4.core", + "version": "4.0.1", + "name": "BackboneElement", + "url": "http://hl7.org/fhir/StructureDefinition/BackboneElement" + }, + { + "kind": "primitive-type", + "package": "hl7.fhir.r4.core", + "version": "4.0.1", + "name": "code", + "url": "http://hl7.org/fhir/StructureDefinition/code" + }, + { + "kind": "complex-type", + "package": "hl7.fhir.r4.core", + "version": "4.0.1", + "name": "CodeableConcept", + "url": "http://hl7.org/fhir/StructureDefinition/CodeableConcept" + }, + { + "kind": "resource", + "package": "hl7.fhir.r4.core", + "version": "4.0.1", + "name": "DomainResource", + "url": "http://hl7.org/fhir/StructureDefinition/DomainResource" + }, + { + "kind": "primitive-type", + "package": "hl7.fhir.r4.core", + "version": "4.0.1", + "name": "string", + "url": "http://hl7.org/fhir/StructureDefinition/string" + }, + { + "kind": "binding", + "package": "shared", + "version": "1.0.0", + "name": "IssueDetails", + "url": "urn:fhir:binding:IssueDetails" + }, + { + "kind": "binding", + "package": "shared", + "version": "1.0.0", + "name": "IssueSeverity", + "url": "urn:fhir:binding:IssueSeverity" + }, + { + "kind": "binding", + "package": "shared", + "version": "1.0.0", + "name": "IssueType", + "url": "urn:fhir:binding:IssueType" + } + ] +}" +`; + +exports[`IntrospectionWriter - TypeSchema output Check all introspection data in a single ndjson file 1`] = ` +"{"identifier":{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"OperationOutcome","url":"http://hl7.org/fhir/StructureDefinition/OperationOutcome"},"base":{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"DomainResource","url":"http://hl7.org/fhir/StructureDefinition/DomainResource"},"fields":{"issue":{"type":{"kind":"nested","package":"hl7.fhir.r4.core","version":"4.0.1","name":"issue","url":"http://hl7.org/fhir/StructureDefinition/OperationOutcome#issue"},"array":true,"required":true,"excluded":false}},"nested":[{"identifier":{"kind":"nested","package":"hl7.fhir.r4.core","version":"4.0.1","name":"issue","url":"http://hl7.org/fhir/StructureDefinition/OperationOutcome#issue"},"base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"BackboneElement","url":"http://hl7.org/fhir/StructureDefinition/BackboneElement"},"fields":{"severity":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},"required":true,"excluded":false,"array":false,"binding":{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueSeverity","url":"urn:fhir:binding:IssueSeverity"},"enum":{"isOpen":false,"values":["fatal","error","warning","information"]}},"code":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},"required":true,"excluded":false,"array":false,"binding":{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueType","url":"urn:fhir:binding:IssueType"},"enum":{"isOpen":false,"values":["invalid","structure","required","value","invariant","security","login","unknown","expired","forbidden","suppressed","processing","not-supported","duplicate","multiple-matches","not-found","deleted","too-long","code-invalid","extension","too-costly","business-rule","conflict","transient","lock-error","no-store","exception","timeout","incomplete","throttled","informational"]}},"details":{"type":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"CodeableConcept","url":"http://hl7.org/fhir/StructureDefinition/CodeableConcept"},"required":false,"excluded":false,"array":false,"binding":{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueDetails","url":"urn:fhir:binding:IssueDetails"}},"diagnostics":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"required":false,"excluded":false,"array":false},"location":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"required":false,"excluded":false,"array":true},"expression":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"required":false,"excluded":false,"array":true}}}],"description":"A collection of error, warning, or information messages that result from a system action.","dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"BackboneElement","url":"http://hl7.org/fhir/StructureDefinition/BackboneElement"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"CodeableConcept","url":"http://hl7.org/fhir/StructureDefinition/CodeableConcept"},{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"DomainResource","url":"http://hl7.org/fhir/StructureDefinition/DomainResource"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueDetails","url":"urn:fhir:binding:IssueDetails"},{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueSeverity","url":"urn:fhir:binding:IssueSeverity"},{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueType","url":"urn:fhir:binding:IssueType"}]} +{"identifier":{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"DomainResource","url":"http://hl7.org/fhir/StructureDefinition/DomainResource"},"base":{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Resource","url":"http://hl7.org/fhir/StructureDefinition/Resource"},"fields":{"text":{"type":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Narrative","url":"http://hl7.org/fhir/StructureDefinition/Narrative"},"required":false,"excluded":false,"array":false},"contained":{"type":{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Resource","url":"http://hl7.org/fhir/StructureDefinition/Resource"},"required":false,"excluded":false,"array":true}},"description":"A resource that includes narrative, extensions, and contained resources.","dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Narrative","url":"http://hl7.org/fhir/StructureDefinition/Narrative"},{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Resource","url":"http://hl7.org/fhir/StructureDefinition/Resource"}],"typeFamily":{"resources":[{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"OperationOutcome","url":"http://hl7.org/fhir/StructureDefinition/OperationOutcome"}]}} +{"identifier":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"BackboneElement","url":"http://hl7.org/fhir/StructureDefinition/BackboneElement"},"base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"fields":{},"description":"Base StructureDefinition for BackboneElement Type: Base definition for all elements that are defined inside a resource - but not those in a data type.","dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"}],"typeFamily":{"complexTypes":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Dosage","url":"http://hl7.org/fhir/StructureDefinition/Dosage"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"ElementDefinition","url":"http://hl7.org/fhir/StructureDefinition/ElementDefinition"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"MarketingStatus","url":"http://hl7.org/fhir/StructureDefinition/MarketingStatus"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Population","url":"http://hl7.org/fhir/StructureDefinition/Population"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"ProdCharacteristic","url":"http://hl7.org/fhir/StructureDefinition/ProdCharacteristic"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"ProductShelfLife","url":"http://hl7.org/fhir/StructureDefinition/ProductShelfLife"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"SubstanceAmount","url":"http://hl7.org/fhir/StructureDefinition/SubstanceAmount"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Timing","url":"http://hl7.org/fhir/StructureDefinition/Timing"}]}} +{"identifier":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"fields":{"id":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"required":false,"excluded":false,"array":false}},"description":"Base StructureDefinition for Element Type: Base definition for all elements in a resource.","dependencies":[{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"}],"typeFamily":{"complexTypes":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"BackboneElement","url":"http://hl7.org/fhir/StructureDefinition/BackboneElement"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"CodeableConcept","url":"http://hl7.org/fhir/StructureDefinition/CodeableConcept"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Narrative","url":"http://hl7.org/fhir/StructureDefinition/Narrative"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Coding","url":"http://hl7.org/fhir/StructureDefinition/Coding"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Meta","url":"http://hl7.org/fhir/StructureDefinition/Meta"}]}} +{"identifier":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},"description":"Base StructureDefinition for code type: A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents","base":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"dependencies":[{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"}]} +{"identifier":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"CodeableConcept","url":"http://hl7.org/fhir/StructureDefinition/CodeableConcept"},"base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"fields":{"coding":{"type":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Coding","url":"http://hl7.org/fhir/StructureDefinition/Coding"},"required":false,"excluded":false,"array":true},"text":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"required":false,"excluded":false,"array":false}},"description":"Base StructureDefinition for CodeableConcept Type: A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.","dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Coding","url":"http://hl7.org/fhir/StructureDefinition/Coding"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"}]} +{"identifier":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"description":"Base StructureDefinition for string Type: A sequence of Unicode characters","base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"}]} +{"identifier":{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueDetails","url":"urn:fhir:binding:IssueDetails"},"valueset":{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"OperationOutcome","url":"http://hl7.org/fhir/ValueSet/operation-outcome"},"strength":"example","dependencies":[{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"OperationOutcome","url":"http://hl7.org/fhir/ValueSet/operation-outcome"}]} +{"identifier":{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueSeverity","url":"urn:fhir:binding:IssueSeverity"},"valueset":{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"IssueSeverity","url":"http://hl7.org/fhir/ValueSet/issue-severity"},"strength":"required","enum":{"isOpen":false,"values":["fatal","error","warning","information"]},"dependencies":[{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"IssueSeverity","url":"http://hl7.org/fhir/ValueSet/issue-severity"}]} +{"identifier":{"kind":"binding","package":"shared","version":"1.0.0","name":"IssueType","url":"urn:fhir:binding:IssueType"},"valueset":{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"IssueType","url":"http://hl7.org/fhir/ValueSet/issue-type"},"strength":"required","enum":{"isOpen":false,"values":["invalid","structure","required","value","invariant","security","login","unknown","expired","forbidden","suppressed","processing","not-supported","duplicate","multiple-matches","not-found","deleted","too-long","code-invalid","extension","too-costly","business-rule","conflict","transient","lock-error","no-store","exception","timeout","incomplete","throttled","informational"]},"dependencies":[{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"IssueType","url":"http://hl7.org/fhir/ValueSet/issue-type"}]} +{"identifier":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Narrative","url":"http://hl7.org/fhir/StructureDefinition/Narrative"},"base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"fields":{"status":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},"required":true,"excluded":false,"array":false,"binding":{"kind":"binding","package":"shared","version":"1.0.0","name":"NarrativeStatus","url":"urn:fhir:binding:NarrativeStatus"},"enum":{"isOpen":false,"values":["generated","extensions","additional","empty"]}},"div":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"xhtml","url":"http://hl7.org/fhir/StructureDefinition/xhtml"},"required":true,"excluded":false,"array":false}},"description":"Base StructureDefinition for Narrative Type: A human-readable summary of the resource conveying the essential clinical and business information for the resource.","dependencies":[{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"xhtml","url":"http://hl7.org/fhir/StructureDefinition/xhtml"},{"kind":"binding","package":"shared","version":"1.0.0","name":"NarrativeStatus","url":"urn:fhir:binding:NarrativeStatus"}]} +{"identifier":{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Resource","url":"http://hl7.org/fhir/StructureDefinition/Resource"},"fields":{"id":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"required":false,"excluded":false,"array":false},"meta":{"type":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Meta","url":"http://hl7.org/fhir/StructureDefinition/Meta"},"required":false,"excluded":false,"array":false},"implicitRules":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"},"required":false,"excluded":false,"array":false},"language":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},"required":false,"excluded":false,"array":false,"binding":{"kind":"binding","package":"shared","version":"1.0.0","name":"Language","url":"urn:fhir:binding:Language"},"enum":{"isOpen":true,"values":["ar","bn","cs","da","de","de-AT","de-CH","de-DE","el","en","en-AU","en-CA","en-GB","en-IN","en-NZ","en-SG","en-US","es","es-AR","es-ES","es-UY","fi","fr","fr-BE","fr-CH","fr-FR","fy","fy-NL","hi","hr","it","it-CH","it-IT","ja","ko","nl","nl-BE","nl-NL","no","no-NO","pa","pl","pt","pt-BR","ru","ru-RU","sr","sr-RS","sv","sv-SE","te","zh","zh-CN","zh-HK","zh-SG","zh-TW"]}}},"description":"This is the base resource type for everything.","dependencies":[{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Meta","url":"http://hl7.org/fhir/StructureDefinition/Meta"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"},{"kind":"binding","package":"shared","version":"1.0.0","name":"Language","url":"urn:fhir:binding:Language"}],"typeFamily":{"resources":[{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"DomainResource","url":"http://hl7.org/fhir/StructureDefinition/DomainResource"},{"kind":"resource","package":"hl7.fhir.r4.core","version":"4.0.1","name":"OperationOutcome","url":"http://hl7.org/fhir/StructureDefinition/OperationOutcome"}]}} +{"identifier":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Coding","url":"http://hl7.org/fhir/StructureDefinition/Coding"},"base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"fields":{"system":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"},"required":false,"excluded":false,"array":false},"version":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"required":false,"excluded":false,"array":false},"code":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},"required":false,"excluded":false,"array":false},"display":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"required":false,"excluded":false,"array":false},"userSelected":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"boolean","url":"http://hl7.org/fhir/StructureDefinition/boolean"},"required":false,"excluded":false,"array":false}},"description":"Base StructureDefinition for Coding Type: A reference to a code defined by a terminology system.","dependencies":[{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"boolean","url":"http://hl7.org/fhir/StructureDefinition/boolean"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"code","url":"http://hl7.org/fhir/StructureDefinition/code"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"}]} +{"identifier":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"xhtml","url":"http://hl7.org/fhir/StructureDefinition/xhtml"},"description":"Base StructureDefinition for xhtml Type","base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"}]} +{"identifier":{"kind":"binding","package":"shared","version":"1.0.0","name":"NarrativeStatus","url":"urn:fhir:binding:NarrativeStatus"},"valueset":{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"NarrativeStatus","url":"http://hl7.org/fhir/ValueSet/narrative-status"},"strength":"required","enum":{"isOpen":false,"values":["generated","extensions","additional","empty"]},"dependencies":[{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"NarrativeStatus","url":"http://hl7.org/fhir/ValueSet/narrative-status"}]} +{"identifier":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Meta","url":"http://hl7.org/fhir/StructureDefinition/Meta"},"base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"fields":{"versionId":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"id","url":"http://hl7.org/fhir/StructureDefinition/id"},"required":false,"excluded":false,"array":false},"lastUpdated":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"instant","url":"http://hl7.org/fhir/StructureDefinition/instant"},"required":false,"excluded":false,"array":false},"source":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"},"required":false,"excluded":false,"array":false},"profile":{"type":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"canonical","url":"http://hl7.org/fhir/StructureDefinition/canonical"},"required":false,"excluded":false,"array":true},"security":{"type":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Coding","url":"http://hl7.org/fhir/StructureDefinition/Coding"},"required":false,"excluded":false,"array":true,"binding":{"kind":"binding","package":"shared","version":"1.0.0","name":"SecurityLabels","url":"urn:fhir:binding:SecurityLabels"}},"tag":{"type":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Coding","url":"http://hl7.org/fhir/StructureDefinition/Coding"},"required":false,"excluded":false,"array":true,"binding":{"kind":"binding","package":"shared","version":"1.0.0","name":"Tags","url":"urn:fhir:binding:Tags"}}},"description":"Base StructureDefinition for Meta Type: The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","dependencies":[{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"canonical","url":"http://hl7.org/fhir/StructureDefinition/canonical"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Coding","url":"http://hl7.org/fhir/StructureDefinition/Coding"},{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"id","url":"http://hl7.org/fhir/StructureDefinition/id"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"instant","url":"http://hl7.org/fhir/StructureDefinition/instant"},{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"},{"kind":"binding","package":"shared","version":"1.0.0","name":"SecurityLabels","url":"urn:fhir:binding:SecurityLabels"},{"kind":"binding","package":"shared","version":"1.0.0","name":"Tags","url":"urn:fhir:binding:Tags"}]} +{"identifier":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"},"description":"Base StructureDefinition for uri Type: String of characters used to identify a name or a resource","base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"}]} +{"identifier":{"kind":"binding","package":"shared","version":"1.0.0","name":"Language","url":"urn:fhir:binding:Language"},"valueset":{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Languages","url":"http://hl7.org/fhir/ValueSet/languages"},"strength":"preferred","enum":{"isOpen":true,"values":["ar","bn","cs","da","de","de-AT","de-CH","de-DE","el","en","en-AU","en-CA","en-GB","en-IN","en-NZ","en-SG","en-US","es","es-AR","es-ES","es-UY","fi","fr","fr-BE","fr-CH","fr-FR","fy","fy-NL","hi","hr","it","it-CH","it-IT","ja","ko","nl","nl-BE","nl-NL","no","no-NO","pa","pl","pt","pt-BR","ru","ru-RU","sr","sr-RS","sv","sv-SE","te","zh","zh-CN","zh-HK","zh-SG","zh-TW"]},"dependencies":[{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Languages","url":"http://hl7.org/fhir/ValueSet/languages"}]} +{"identifier":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"boolean","url":"http://hl7.org/fhir/StructureDefinition/boolean"},"description":"Base StructureDefinition for boolean Type: Value of \\"true\\" or \\"false\\"","base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"}]} +{"identifier":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"canonical","url":"http://hl7.org/fhir/StructureDefinition/canonical"},"description":"Base StructureDefinition for canonical type: A URI that is a reference to a canonical URL on a FHIR resource","base":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"},"dependencies":[{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"uri","url":"http://hl7.org/fhir/StructureDefinition/uri"}]} +{"identifier":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"id","url":"http://hl7.org/fhir/StructureDefinition/id"},"description":"Base StructureDefinition for id type: Any combination of letters, numerals, \\"-\\" and \\".\\", with a length limit of 64 characters. (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.) Ids are case-insensitive.","base":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"},"dependencies":[{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"string","url":"http://hl7.org/fhir/StructureDefinition/string"}]} +{"identifier":{"kind":"primitive-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"instant","url":"http://hl7.org/fhir/StructureDefinition/instant"},"description":"Base StructureDefinition for instant Type: An instant in time - known at least to the second","base":{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"},"dependencies":[{"kind":"complex-type","package":"hl7.fhir.r4.core","version":"4.0.1","name":"Element","url":"http://hl7.org/fhir/StructureDefinition/Element"}]} +{"identifier":{"kind":"binding","package":"shared","version":"1.0.0","name":"SecurityLabels","url":"urn:fhir:binding:SecurityLabels"},"valueset":{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"SecurityLabels","url":"http://hl7.org/fhir/ValueSet/security-labels"},"strength":"extensible","dependencies":[{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"SecurityLabels","url":"http://hl7.org/fhir/ValueSet/security-labels"}]} +{"identifier":{"kind":"binding","package":"shared","version":"1.0.0","name":"Tags","url":"urn:fhir:binding:Tags"},"valueset":{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"CommonTags","url":"http://hl7.org/fhir/ValueSet/common-tags"},"strength":"example","dependencies":[{"kind":"value-set","package":"hl7.fhir.r4.core","version":"4.0.1","name":"CommonTags","url":"http://hl7.org/fhir/ValueSet/common-tags"}]} +" +`; diff --git a/test/api/write-generator/csharp.test.ts b/test/api/write-generator/csharp.test.ts index 43f6c523..03a2532f 100644 --- a/test/api/write-generator/csharp.test.ts +++ b/test/api/write-generator/csharp.test.ts @@ -10,12 +10,13 @@ describe("C# Writer Generator", async () => { .throwException() .generate(); expect(result.success).toBeTrue(); - expect(Object.keys(result.filesGenerated).length).toEqual(154); + const files = result.filesGenerated.csharp!; + expect(Object.keys(files).length).toEqual(154); it("generates Patient resource in inMemoryOnly mode with snapshot", async () => { - expect(result.filesGenerated["generated/types/Hl7FhirR4Core/Patient.cs"]).toMatchSnapshot(); + expect(files["generated/types/Hl7FhirR4Core/Patient.cs"]).toMatchSnapshot(); }); it("static files", async () => { - expect(result.filesGenerated["generated/types/Client.cs"]).toMatchSnapshot(); - expect(result.filesGenerated["generated/types/Helper.cs"]).toMatchSnapshot(); + expect(files["generated/types/Client.cs"]).toMatchSnapshot(); + expect(files["generated/types/Helper.cs"]).toMatchSnapshot(); }); }); diff --git a/test/api/write-generator/introspection.test.ts b/test/api/write-generator/introspection.test.ts index 5d180afd..9f656cfd 100644 --- a/test/api/write-generator/introspection.test.ts +++ b/test/api/write-generator/introspection.test.ts @@ -10,18 +10,19 @@ describe("IntrospectionWriter - Fhir Schema Output", async () => { expect(result.success).toBeTrue(); - expect(Object.keys(result.filesGenerated).length).toEqual(656); + const files = result.filesGenerated.introspection!; + expect(Object.keys(files).length).toEqual(656); it("Generated file list", () => { - expect(Object.keys(result.filesGenerated)).toMatchSnapshot(); + expect(Object.keys(files)).toMatchSnapshot(); }); it("Check OperationOutcome introspection schema", () => { const operationOutcome = - result.filesGenerated["generated/introspection/hl7.fhir.r4.core/OperationOutcome(OperationOutcome).json"]; + files["generated/introspection/hl7.fhir.r4.core/OperationOutcome(OperationOutcome).json"]; expect(operationOutcome).toBeDefined(); expect(operationOutcome).toMatchSnapshot(); }); it("Check all introspection data in a single ndjson file", () => { - expect(result.filesGenerated["generated/introspection.ndjson"]).toMatchSnapshot(); + expect(files["generated/introspection.ndjson"]).toMatchSnapshot(); }); }); @@ -49,18 +50,19 @@ describe("IntrospectionWriter - TypeSchema output", async () => { expect(result.success).toBeTrue(); - expect(Object.keys(result.filesGenerated).length).toEqual(45); + const files = result.filesGenerated.introspection!; + expect(Object.keys(files).length).toEqual(44); it("Generated file list", () => { - expect(Object.keys(result.filesGenerated)).toMatchSnapshot(); + expect(Object.keys(files)).toMatchSnapshot(); }); it("Check OperationOutcome introspection schema", () => { const operationOutcome = - result.filesGenerated["generated/introspection/hl7.fhir.r4.core/OperationOutcome(OperationOutcome).json"]; + files["generated/introspection/hl7.fhir.r4.core/OperationOutcome(OperationOutcome).json"]; expect(operationOutcome).toBeDefined(); expect(operationOutcome).toMatchSnapshot(); }); it("Check all introspection data in a single ndjson file", () => { - expect(result.filesGenerated["generated/introspection.ndjson"]).toMatchSnapshot(); + expect(files["generated/introspection.ndjson"]).toMatchSnapshot(); }); }); @@ -84,8 +86,10 @@ describe("IntrospectionWriter - typeTree", async () => { expect(result.success).toBeTrue(); + const files = result.filesGenerated.introspection!; + it("Type tree file should be generated", () => { - expect(result.filesGenerated["generated/type-tree.json"]).toBeDefined(); + expect(files["generated/type-tree.json"]).toBeDefined(); }); }); @@ -113,18 +117,18 @@ describe("IntrospectionWriter - StructureDefinition output", async () => { expect(result.success).toBeTrue(); + const files = result.filesGenerated.introspection!; + it("Generated file list", () => { - expect(Object.keys(result.filesGenerated)).toMatchSnapshot(); + expect(Object.keys(files)).toMatchSnapshot(); }); it("Check OperationOutcome StructureDefinition", () => { const operationOutcome = - result.filesGenerated[ - "generated/structure-definitions/hl7.fhir.r4.core/OperationOutcome(OperationOutcome).json" - ]; + files["generated/structure-definitions/hl7.fhir.r4.core/OperationOutcome(OperationOutcome).json"]; expect(operationOutcome).toBeDefined(); expect(operationOutcome).toMatchSnapshot(); }); it("Check all StructureDefinitions in a single ndjson file", () => { - expect(result.filesGenerated["generated/structure-definitions.ndjson"]).toMatchSnapshot(); + expect(files["generated/structure-definitions.ndjson"]).toMatchSnapshot(); }); }); diff --git a/test/api/write-generator/multi-package/cda.test.ts b/test/api/write-generator/multi-package/cda.test.ts index 7f8bb01c..cb4c73aa 100644 --- a/test/api/write-generator/multi-package/cda.test.ts +++ b/test/api/write-generator/multi-package/cda.test.ts @@ -30,13 +30,14 @@ describe("CDA", async () => { }); it("should generate ClinicalDocument type", () => { - const clinicalDoc = result.filesGenerated["generated/types/hl7-cda-uv-core/ClinicalDocument.ts"]; + const clinicalDoc = + result.filesGenerated.typescript!["generated/types/hl7-cda-uv-core/ClinicalDocument.ts"]; expect(clinicalDoc).toBeDefined(); expect(clinicalDoc).toMatchSnapshot(); }); it("should generate CDA-specific types", () => { - const files = Object.keys(result.filesGenerated); + const files = Object.keys(result.filesGenerated.typescript!); const cdaFiles = files.filter((f) => f.includes("hl7-cda-uv-core")); expect(cdaFiles.length).toBe(124); @@ -56,14 +57,14 @@ describe("CDA", async () => { }); it("should generate ClinicalDocument type (promoted logical)", () => { - const clinicalDoc = result.filesGenerated["generated/hl7_cda_uv_core/clinical_document.py"]; + const clinicalDoc = result.filesGenerated.python!["generated/hl7_cda_uv_core/clinical_document.py"]; expect(clinicalDoc).toBeDefined(); expect(clinicalDoc).toMatchSnapshot(); }); it("should generate base package structure", () => { - expect(result.filesGenerated["generated/__init__.py"]).toBeDefined(); - expect(result.filesGenerated["generated/requirements.txt"]).toBeDefined(); + expect(result.filesGenerated.python!["generated/__init__.py"]).toBeDefined(); + expect(result.filesGenerated.python!["generated/requirements.txt"]).toBeDefined(); }); }); @@ -79,14 +80,14 @@ describe("CDA", async () => { }); it("should generate ClinicalDocument type (promoted logical)", () => { - const clinicalDoc = result.filesGenerated["generated/types/Hl7CdaUvCore/ClinicalDocument.cs"]; + const clinicalDoc = result.filesGenerated.csharp!["generated/types/Hl7CdaUvCore/ClinicalDocument.cs"]; expect(clinicalDoc).toBeDefined(); expect(clinicalDoc).toMatchSnapshot(); }); it("should generate base helper files", () => { - expect(result.filesGenerated["generated/types/base.cs"]).toBeDefined(); - expect(result.filesGenerated["generated/types/Helper.cs"]).toBeDefined(); + expect(result.filesGenerated.csharp!["generated/types/base.cs"]).toBeDefined(); + expect(result.filesGenerated.csharp!["generated/types/Helper.cs"]).toBeDefined(); }); }); }); diff --git a/test/api/write-generator/multi-package/local-package.test.ts b/test/api/write-generator/multi-package/local-package.test.ts index 5719e8bd..5b13c3e2 100644 --- a/test/api/write-generator/multi-package/local-package.test.ts +++ b/test/api/write-generator/multi-package/local-package.test.ts @@ -41,22 +41,24 @@ describe("Local Package Folder - Multi-Package Generation", async () => { }); it("should generate ExampleNotebook type in custom package folder", () => { - const notebookFile = result.filesGenerated["generated/types/example-folder-structures/ExampleNotebook.ts"]; + const notebookFile = + result.filesGenerated.typescript!["generated/types/example-folder-structures/ExampleNotebook.ts"]; expect(notebookFile).toBeDefined(); expect(notebookFile).toMatchSnapshot(); }); it("should resolve R4 dependencies (Identifier, Reference, Coding)", () => { - const notebookFile = result.filesGenerated["generated/types/example-folder-structures/ExampleNotebook.ts"]; + const notebookFile = + result.filesGenerated.typescript!["generated/types/example-folder-structures/ExampleNotebook.ts"]; expect(notebookFile).toContain("Identifier"); expect(notebookFile).toContain("Reference"); expect(notebookFile).toContain("Coding"); }); it("should generate R4 dependency types", () => { - expect(result.filesGenerated["generated/types/hl7-fhir-r4-core/Identifier.ts"]).toBeDefined(); - expect(result.filesGenerated["generated/types/hl7-fhir-r4-core/Reference.ts"]).toBeDefined(); - expect(result.filesGenerated["generated/types/hl7-fhir-r4-core/Coding.ts"]).toBeDefined(); + expect(result.filesGenerated.typescript!["generated/types/hl7-fhir-r4-core/Identifier.ts"]).toBeDefined(); + expect(result.filesGenerated.typescript!["generated/types/hl7-fhir-r4-core/Reference.ts"]).toBeDefined(); + expect(result.filesGenerated.typescript!["generated/types/hl7-fhir-r4-core/Coding.ts"]).toBeDefined(); }); }); @@ -83,7 +85,7 @@ describe("Local Package Folder - Multi-Package Generation", async () => { it("should generate ExampleTypedBundle profile with type-discriminated slices", () => { const profileFile = - result.filesGenerated[ + result.filesGenerated.typescript![ "generated/types/example-folder-structures/profiles/Bundle_ExampleTypedBundle.ts" ]; expect(profileFile).toBeDefined(); @@ -103,25 +105,25 @@ describe("Local Package Folder - Multi-Package Generation", async () => { }); it("should generate ExampleNotebook type (promoted logical)", () => { - const notebook = result.filesGenerated["generated/example_folder_structures/example_notebook.py"]; + const notebook = result.filesGenerated.python!["generated/example_folder_structures/example_notebook.py"]; expect(notebook).toBeDefined(); expect(notebook).toMatchSnapshot(); }); it("should generate R4 dependency types", () => { // Python generator resolves R4 dependencies from tree-shaking - expect(result.filesGenerated["generated/hl7_fhir_r4_core/__init__.py"]).toBeDefined(); - expect(result.filesGenerated["generated/hl7_fhir_r4_core/domain_resource.py"]).toBeDefined(); + expect(result.filesGenerated.python!["generated/hl7_fhir_r4_core/__init__.py"]).toBeDefined(); + expect(result.filesGenerated.python!["generated/hl7_fhir_r4_core/domain_resource.py"]).toBeDefined(); }); it("should generate base types for dependencies", () => { - const domainResource = result.filesGenerated["generated/hl7_fhir_r4_core/domain_resource.py"]; + const domainResource = result.filesGenerated.python!["generated/hl7_fhir_r4_core/domain_resource.py"]; expect(domainResource).toBeDefined(); expect(domainResource).toMatchSnapshot(); }); it("should generate Patient resource", () => { - const patient = result.filesGenerated["generated/hl7_fhir_r4_core/patient.py"]; + const patient = result.filesGenerated.python!["generated/hl7_fhir_r4_core/patient.py"]; expect(patient).toBeDefined(); expect(patient).toMatchSnapshot(); }); @@ -139,31 +141,32 @@ describe("Local Package Folder - Multi-Package Generation", async () => { }); it("should generate ExampleNotebook type (promoted logical)", () => { - const notebook = result.filesGenerated["generated/types/ExampleFolderStructures/ExampleNotebook.cs"]; + const notebook = + result.filesGenerated.csharp!["generated/types/ExampleFolderStructures/ExampleNotebook.cs"]; expect(notebook).toBeDefined(); expect(notebook).toMatchSnapshot(); }); it("should generate R4 dependency types", () => { // C# generator resolves R4 dependencies from tree-shaking - expect(result.filesGenerated["generated/types/Hl7FhirR4Core/DomainResource.cs"]).toBeDefined(); - expect(result.filesGenerated["generated/types/Hl7FhirR4Core/Resource.cs"]).toBeDefined(); + expect(result.filesGenerated.csharp!["generated/types/Hl7FhirR4Core/DomainResource.cs"]).toBeDefined(); + expect(result.filesGenerated.csharp!["generated/types/Hl7FhirR4Core/Resource.cs"]).toBeDefined(); }); it("should generate DomainResource base class", () => { - const domainResource = result.filesGenerated["generated/types/Hl7FhirR4Core/DomainResource.cs"]; + const domainResource = result.filesGenerated.csharp!["generated/types/Hl7FhirR4Core/DomainResource.cs"]; expect(domainResource).toBeDefined(); expect(domainResource).toMatchSnapshot(); }); it("should generate Resource base class", () => { - const resource = result.filesGenerated["generated/types/Hl7FhirR4Core/Resource.cs"]; + const resource = result.filesGenerated.csharp!["generated/types/Hl7FhirR4Core/Resource.cs"]; expect(resource).toBeDefined(); expect(resource).toMatchSnapshot(); }); it("should generate Patient resource", () => { - const patient = result.filesGenerated["generated/types/Hl7FhirR4Core/Patient.cs"]; + const patient = result.filesGenerated.csharp!["generated/types/Hl7FhirR4Core/Patient.cs"]; expect(patient).toBeDefined(); expect(patient).toMatchSnapshot(); }); diff --git a/test/api/write-generator/multi-package/sql-on-fhir.test.ts b/test/api/write-generator/multi-package/sql-on-fhir.test.ts index e447a661..0c2bd722 100644 --- a/test/api/write-generator/multi-package/sql-on-fhir.test.ts +++ b/test/api/write-generator/multi-package/sql-on-fhir.test.ts @@ -32,24 +32,26 @@ describe("SQL-on-FHIR", async () => { }); it("should generate ViewDefinition type", () => { - const viewDef = result.filesGenerated["generated/types/org-sql-on-fhir-ig/ViewDefinition.ts"]; + const viewDef = result.filesGenerated.typescript!["generated/types/org-sql-on-fhir-ig/ViewDefinition.ts"]; expect(viewDef).toBeDefined(); expect(viewDef).toMatchSnapshot(); }); it("should resolve R5 dependencies (required by SQL-on-FHIR)", () => { - const files = Object.keys(result.filesGenerated); + const files = Object.keys(result.filesGenerated.typescript!); const r5Files = files.filter((f) => f.includes("hl7-fhir-r5-core")); expect(r5Files.length).toBe(45); // Core R5 types should be included - expect(result.filesGenerated["generated/types/hl7-fhir-r5-core/Element.ts"]).toBeDefined(); - expect(result.filesGenerated["generated/types/hl7-fhir-r5-core/DomainResource.ts"]).toBeDefined(); + expect(result.filesGenerated.typescript!["generated/types/hl7-fhir-r5-core/Element.ts"]).toBeDefined(); + expect( + result.filesGenerated.typescript!["generated/types/hl7-fhir-r5-core/DomainResource.ts"], + ).toBeDefined(); }); it("should generate package index files", () => { - expect(result.filesGenerated["generated/types/org-sql-on-fhir-ig/index.ts"]).toBeDefined(); - expect(result.filesGenerated["generated/types/hl7-fhir-r5-core/index.ts"]).toBeDefined(); + expect(result.filesGenerated.typescript!["generated/types/org-sql-on-fhir-ig/index.ts"]).toBeDefined(); + expect(result.filesGenerated.typescript!["generated/types/hl7-fhir-r5-core/index.ts"]).toBeDefined(); }); }); @@ -65,19 +67,19 @@ describe("SQL-on-FHIR", async () => { }); it("should generate ViewDefinition type (promoted logical)", () => { - const viewDef = result.filesGenerated["generated/org_sql_on_fhir_ig/view_definition.py"]; + const viewDef = result.filesGenerated.python!["generated/org_sql_on_fhir_ig/view_definition.py"]; expect(viewDef).toBeDefined(); expect(viewDef).toMatchSnapshot(); }); it("should generate R5 dependency package", () => { // Python generator creates R5 base types for dependencies - expect(result.filesGenerated["generated/hl7_fhir_r5_core/__init__.py"]).toBeDefined(); - expect(result.filesGenerated["generated/hl7_fhir_r5_core/domain_resource.py"]).toBeDefined(); + expect(result.filesGenerated.python!["generated/hl7_fhir_r5_core/__init__.py"]).toBeDefined(); + expect(result.filesGenerated.python!["generated/hl7_fhir_r5_core/domain_resource.py"]).toBeDefined(); }); it("should generate domain_resource for R5", () => { - const domainResource = result.filesGenerated["generated/hl7_fhir_r5_core/domain_resource.py"]; + const domainResource = result.filesGenerated.python!["generated/hl7_fhir_r5_core/domain_resource.py"]; expect(domainResource).toBeDefined(); expect(domainResource).toMatchSnapshot(); }); @@ -95,20 +97,20 @@ describe("SQL-on-FHIR", async () => { }); it("should generate ViewDefinition type (promoted logical)", () => { - const viewDef = result.filesGenerated["generated/types/OrgSqlOnFhirIg/ViewDefinition.cs"]; + const viewDef = result.filesGenerated.csharp!["generated/types/OrgSqlOnFhirIg/ViewDefinition.cs"]; expect(viewDef).toBeDefined(); expect(viewDef).toMatchSnapshot(); }); it("should generate R5 dependency namespace", () => { // C# generator creates R5 types for dependencies - const files = Object.keys(result.filesGenerated); + const files = Object.keys(result.filesGenerated.csharp!); const r5Files = files.filter((f) => f.includes("Hl7FhirR5Core")); expect(r5Files.length).toBe(5); }); it("should generate DomainResource for R5", () => { - const domainResource = result.filesGenerated["generated/types/Hl7FhirR5Core/DomainResource.cs"]; + const domainResource = result.filesGenerated.csharp!["generated/types/Hl7FhirR5Core/DomainResource.cs"]; expect(domainResource).toBeDefined(); expect(domainResource).toMatchSnapshot(); }); diff --git a/test/api/write-generator/python.test.ts b/test/api/write-generator/python.test.ts index 007a063b..26ac7f2b 100644 --- a/test/api/write-generator/python.test.ts +++ b/test/api/write-generator/python.test.ts @@ -9,31 +9,32 @@ describe("Python Writer Generator", async () => { }) .generate(); expect(result.success).toBeTrue(); - expect(Object.keys(result.filesGenerated).length).toEqual(153); + const files = result.filesGenerated.python!; + expect(Object.keys(files).length).toEqual(153); it("generates Patient resource in inMemoryOnly mode with snapshot", async () => { - expect(result.filesGenerated["generated/hl7_fhir_r4_core/patient.py"]).toMatchSnapshot(); + expect(files["generated/hl7_fhir_r4_core/patient.py"]).toMatchSnapshot(); }); it("static files", async () => { - expect(result.filesGenerated["generated/requirements.txt"]).toMatchSnapshot(); + expect(files["generated/requirements.txt"]).toMatchSnapshot(); }); it("generates Coding with Generic[T] parameter", async () => { - const basePy = result.filesGenerated["generated/hl7_fhir_r4_core/base.py"]; + const basePy = files["generated/hl7_fhir_r4_core/base.py"]; expect(basePy).toContain("class Coding(Element, Generic[T]):"); expect(basePy).toContain("code: T | None"); }); it("generates CodeableConcept with Generic[T] parameter", async () => { - const basePy = result.filesGenerated["generated/hl7_fhir_r4_core/base.py"]; + const basePy = files["generated/hl7_fhir_r4_core/base.py"]; expect(basePy).toContain("class CodeableConcept(Element, Generic[T]):"); expect(basePy).toContain("coding: PyList[Coding[T]] | None"); }); it("generates CodeableConcept fields with enum bindings", async () => { - const patientPy = result.filesGenerated["generated/hl7_fhir_r4_core/patient.py"]; + const patientPy = files["generated/hl7_fhir_r4_core/patient.py"]; expect(patientPy).toContain( 'marital_status: CodeableConcept[Literal["A", "D", "I", "L", "M", "P", "S", "T", "U", "W", "UNK"] | str] | None', ); }); it("generates base.py with TypeVar import and declaration", async () => { - const basePy = result.filesGenerated["generated/hl7_fhir_r4_core/base.py"]; + const basePy = files["generated/hl7_fhir_r4_core/base.py"]; expect(basePy).toContain("from typing import Any, Generic, List as PyList, Literal"); expect(basePy).toContain("from typing_extensions import TypeVar"); expect(basePy).toContain("T = TypeVar('T', bound=str, default=str)"); diff --git a/test/api/write-generator/typescript.test.ts b/test/api/write-generator/typescript.test.ts index e619f27d..b3381da2 100644 --- a/test/api/write-generator/typescript.test.ts +++ b/test/api/write-generator/typescript.test.ts @@ -10,32 +10,33 @@ describe("TypeScript Writer Generator", async () => { }) .generate(); expect(result.success).toBeTrue(); - expect(Object.keys(result.filesGenerated).length).toEqual(608); + const files = result.filesGenerated.typescript!; + expect(Object.keys(files).length).toEqual(608); it("generates Patient resource in inMemoryOnly mode with snapshot", async () => { - expect(result.filesGenerated["generated/types/hl7-fhir-r4-core/Patient.ts"]).toMatchSnapshot(); + expect(files["generated/types/hl7-fhir-r4-core/Patient.ts"]).toMatchSnapshot(); }); it("generates Coding with generic parameter", async () => { - const codingTs = result.filesGenerated["generated/types/hl7-fhir-r4-core/Coding.ts"]; + const codingTs = files["generated/types/hl7-fhir-r4-core/Coding.ts"]; expect(codingTs).toContain("export interface Coding"); expect(codingTs).toContain("code?: T"); }); it("generates CodeableConcept with generic parameter", async () => { - const ccTs = result.filesGenerated["generated/types/hl7-fhir-r4-core/CodeableConcept.ts"]; + const ccTs = files["generated/types/hl7-fhir-r4-core/CodeableConcept.ts"]; expect(ccTs).toContain("export interface CodeableConcept"); expect(ccTs).toContain("coding?: Coding[]"); }); it("generates BundleEntry with generic type-family parameter", async () => { - const bundleTs = result.filesGenerated["generated/types/hl7-fhir-r4-core/Bundle.ts"]; + const bundleTs = files["generated/types/hl7-fhir-r4-core/Bundle.ts"]; expect(bundleTs).toContain("export interface BundleEntry"); expect(bundleTs).toContain("resource?: T"); }); it("generates BundleEntryResponse with generic type-family parameter", async () => { - const bundleTs = result.filesGenerated["generated/types/hl7-fhir-r4-core/Bundle.ts"]; + const bundleTs = files["generated/types/hl7-fhir-r4-core/Bundle.ts"]; expect(bundleTs).toContain("export interface BundleEntryResponse"); expect(bundleTs).toContain("outcome?: T"); }); it("generates DomainResource with generic type-family parameter", async () => { - const domainResourceTs = result.filesGenerated["generated/types/hl7-fhir-r4-core/DomainResource.ts"]; + const domainResourceTs = files["generated/types/hl7-fhir-r4-core/DomainResource.ts"]; expect(domainResourceTs).toContain("export interface DomainResource"); expect(domainResourceTs).toContain("contained?: T[]"); }); @@ -53,13 +54,14 @@ describe("TypeScript CDA with Logical Model Promotion to Resource", async () => }) .generate(); expect(result.success).toBeTrue(); + const files = result.filesGenerated.typescript!; it("without resourceType", async () => { - expect(result.filesGenerated["generated/types/hl7-cda-uv-core/CV.ts"]).toMatchSnapshot(); - expect(result.filesGenerated["generated/types/hl7-cda-uv-core/index.ts"]).toMatchSnapshot(); - expect(result.filesGenerated["generated/types/hl7-cda-uv-core/profiles/index.ts"]).toMatchSnapshot(); + expect(files["generated/types/hl7-cda-uv-core/CV.ts"]).toMatchSnapshot(); + expect(files["generated/types/hl7-cda-uv-core/index.ts"]).toMatchSnapshot(); + expect(files["generated/types/hl7-cda-uv-core/profiles/index.ts"]).toMatchSnapshot(); }); it("with resourceType", async () => { - expect(result.filesGenerated["generated/types/hl7-cda-uv-core/Material.ts"]).toMatchSnapshot(); + expect(files["generated/types/hl7-cda-uv-core/Material.ts"]).toMatchSnapshot(); }); }); @@ -86,16 +88,16 @@ describe("TypeScript R4 Example (with generateProfile)", async () => { expect(rewriteWarnings).toMatchSnapshot(); }); + const files = result.filesGenerated.typescript!; + it("generates bodyweight profile with validate()", () => { expect( - result.filesGenerated["generated/types/hl7-fhir-r4-core/profiles/Observation_observation_bodyweight.ts"], + files["generated/types/hl7-fhir-r4-core/profiles/Observation_observation_bodyweight.ts"], ).toMatchSnapshot(); }); it("generates bp profile with validate()", () => { - expect( - result.filesGenerated["generated/types/hl7-fhir-r4-core/profiles/Observation_observation_bp.ts"], - ).toMatchSnapshot(); + expect(files["generated/types/hl7-fhir-r4-core/profiles/Observation_observation_bp.ts"]).toMatchSnapshot(); }); }); @@ -129,31 +131,29 @@ describe("TypeScript US Core Example", async () => { expect(result.success).toBeTrue(); }); + const files = result.filesGenerated.typescript!; + it("generates US Core Patient profile", () => { - expect( - result.filesGenerated["generated/types/hl7-fhir-us-core/profiles/Patient_USCorePatientProfile.ts"], - ).toMatchSnapshot(); + expect(files["generated/types/hl7-fhir-us-core/profiles/Patient_USCorePatientProfile.ts"]).toMatchSnapshot(); }); it("generates US Core Blood Pressure profile", () => { expect( - result.filesGenerated[ - "generated/types/hl7-fhir-us-core/profiles/Observation_USCoreBloodPressureProfile.ts" - ], + files["generated/types/hl7-fhir-us-core/profiles/Observation_USCoreBloodPressureProfile.ts"], ).toMatchSnapshot(); }); it("generates US Core Body Weight profile", () => { const key = "generated/types/hl7-fhir-us-core/profiles/Observation_USCoreBodyWeightProfile.ts"; - expect(result.filesGenerated[key]).toMatchSnapshot(); + expect(files[key]).toMatchSnapshot(); }); it("generates US Core Race extension profile", () => { const key = "generated/types/hl7-fhir-us-core/profiles/Extension_USCoreRaceExtension.ts"; - expect(result.filesGenerated[key]).toMatchSnapshot(); + expect(files[key]).toMatchSnapshot(); }); it("generates US Core profiles index", () => { - expect(result.filesGenerated["generated/types/hl7-fhir-us-core/profiles/index.ts"]).toMatchSnapshot(); + expect(files["generated/types/hl7-fhir-us-core/profiles/index.ts"]).toMatchSnapshot(); }); });