@medplum/mock 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -0
- package/dist/cjs/index.js +1158 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/index.min.js +2 -0
- package/dist/cjs/index.min.js.map +1 -0
- package/dist/esm/index.js +1108 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/index.min.js +2 -0
- package/dist/esm/index.min.js.map +1 -0
- package/dist/types/client.d.ts +12 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/mocks/accesspolicy.d.ts +3 -0
- package/dist/types/mocks/alice.d.ts +6 -0
- package/dist/types/mocks/bot.d.ts +2 -0
- package/dist/types/mocks/index.d.ts +7 -0
- package/dist/types/mocks/questionnaire.d.ts +4 -0
- package/dist/types/mocks/simpsons.d.ts +21 -0
- package/dist/types/mocks/subscription.d.ts +5 -0
- package/dist/types/mocks/types.d.ts +14 -0
- package/dist/types/mocks/valueset.d.ts +2 -0
- package/package.json +48 -0
- package/rollup.config.js +43 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/mocks/alice.ts","../../../src/mocks/bot.ts","../../../src/mocks/questionnaire.ts","../../../src/mocks/simpsons.ts","../../../src/mocks/subscription.ts","../../../src/mocks/types.ts","../../../src/mocks/valueset.ts","../../../src/mocks/accesspolicy.ts","../../../src/client.ts"],"sourcesContent":["import { Bundle, Organization, Practitioner } from '@medplum/fhirtypes';\n\nexport const TestOrganization: Organization = {\n resourceType: 'Organization',\n id: '123',\n meta: {\n versionId: '1',\n },\n name: 'Test Organization',\n};\n\nexport const DifferentOrganization: Organization = {\n resourceType: 'Organization',\n id: '456',\n meta: {\n versionId: '1',\n },\n name: 'Different',\n};\n\nexport const OrganizationSearchBundle: Bundle<Organization> = {\n resourceType: 'Bundle',\n type: 'searchset',\n entry: [\n {\n resource: DifferentOrganization,\n },\n ],\n};\n\nexport const DrAliceSmith: Practitioner = {\n resourceType: 'Practitioner',\n id: '123',\n meta: {\n versionId: '2',\n lastUpdated: '2021-01-02T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n name: [\n {\n given: ['Alice'],\n family: 'Smith',\n },\n ],\n};\n\nexport const DrAliceSmithHistoryBundle: Bundle<Practitioner> = {\n resourceType: 'Bundle',\n type: 'history',\n entry: [\n {\n resource: DrAliceSmith,\n },\n {\n resource: {\n resourceType: 'Practitioner',\n id: '123',\n meta: {\n versionId: '1',\n lastUpdated: '2021-01-01T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n name: [{ given: ['Medplum'], family: 'Admin' }],\n },\n },\n ],\n};\n","import { Bot } from '@medplum/fhirtypes';\n\nexport const ExampleBot: Bot = {\n resourceType: 'Bot',\n id: '123',\n name: 'Test Bot',\n code: 'console.log(\"hello world\");',\n};\n","import { Bundle, Questionnaire, QuestionnaireResponse } from '@medplum/fhirtypes';\n\nexport const ExampleQuestionnaire: Questionnaire = {\n resourceType: 'Questionnaire',\n id: '123',\n name: 'Vitals',\n title: 'Vitals',\n item: [\n {\n linkId: '1',\n text: 'First question',\n type: 'string',\n },\n ],\n};\n\nexport const ExampleQuestionnaireBundle: Bundle<Questionnaire> = {\n resourceType: 'Bundle',\n type: 'searchset',\n entry: [\n {\n resource: ExampleQuestionnaire,\n },\n ],\n};\n\nexport const ExampleQuestionnaireResponse: QuestionnaireResponse = {\n resourceType: 'QuestionnaireResponse',\n id: '123',\n questionnaire: 'Questionnaire/123',\n subject: {\n reference: 'Patient/123',\n },\n source: {\n reference: 'Practitioner/123',\n },\n};\n","import {\n Bundle,\n Communication,\n DiagnosticReport,\n Encounter,\n Media,\n Observation,\n Patient,\n ServiceRequest,\n} from '@medplum/fhirtypes';\n\nexport const HomerSimpson: Patient = {\n resourceType: 'Patient',\n id: '123',\n meta: {\n versionId: '2',\n lastUpdated: '2020-01-02T00:00:00.000Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n identifier: [\n { system: 'abc', value: '123' },\n { system: 'def', value: '456' },\n ],\n name: [\n {\n given: ['Homer'],\n family: 'Simpson',\n },\n ],\n photo: [\n {\n contentType: 'image/jpeg',\n url: 'https://example.com/picture.jpg',\n },\n ],\n};\n\nexport const HomerSimpsonHistory: Bundle<Patient> = {\n resourceType: 'Bundle',\n type: 'history',\n entry: [\n {\n resource: HomerSimpson,\n },\n {\n resource: {\n resourceType: 'Patient',\n id: '123',\n meta: {\n versionId: '1',\n lastUpdated: '2020-01-01T00:00:00.000Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n name: [\n {\n given: ['Homer'],\n family: 'Simpson',\n },\n ],\n photo: [\n {\n contentType: 'image/jpeg',\n url: 'https://example.com/picture.jpg',\n },\n ],\n },\n },\n ],\n};\n\nexport const HomerEncounter: Encounter = {\n resourceType: 'Encounter',\n id: '123',\n meta: {\n versionId: '456',\n },\n};\n\nexport const HomerEncounterHistory: Bundle<Encounter> = {\n resourceType: 'Bundle',\n type: 'history',\n entry: [\n {\n resource: HomerEncounter,\n },\n ],\n};\n\nexport const HomerCommunications: Bundle<Communication> = {\n resourceType: 'Bundle',\n entry: [\n {\n resource: {\n resourceType: 'Communication',\n id: '123',\n meta: {\n lastUpdated: '2020-01-01T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n payload: [\n {\n contentString: 'Hello world',\n },\n ],\n },\n },\n ],\n};\n\nexport const HomerMedia: Bundle<Media> = {\n resourceType: 'Bundle',\n entry: [\n {\n resource: {\n resourceType: 'Media',\n id: '123',\n meta: {\n lastUpdated: '2020-01-01T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n content: {\n contentType: 'text/plain',\n url: 'https://example.com/test.txt',\n },\n },\n },\n ],\n};\n\nexport const HomerDiagnosticReport: DiagnosticReport = {\n resourceType: 'DiagnosticReport',\n id: '123',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\n resultsInterpreter: [\n {\n reference: 'Practitioner/123',\n display: 'Dr. Alice Smith',\n },\n ],\n result: [\n { reference: 'Observation/1' },\n { reference: 'Observation/2' },\n { reference: 'Observation/3' },\n { reference: 'Observation/4' },\n { reference: 'Observation/5' },\n { reference: 'Observation/6' },\n ],\n};\n\nexport const HomerDiagnosticReportBundle: Bundle<DiagnosticReport> = {\n resourceType: 'Bundle',\n type: 'searchset',\n entry: [\n {\n resource: HomerDiagnosticReport,\n },\n ],\n};\n\nexport const HomerObservation1: Observation = {\n resourceType: 'Observation',\n id: '1',\n valueString: 'test',\n};\n\nexport const HomerObservation2: Observation = {\n resourceType: 'Observation',\n id: '2',\n valueQuantity: {\n value: 20,\n unit: 'x',\n },\n referenceRange: [\n {\n low: {\n value: 10,\n },\n },\n ],\n};\n\nexport const HomerObservation3: Observation = {\n resourceType: 'Observation',\n id: '3',\n valueQuantity: {\n value: 30,\n unit: 'x',\n },\n referenceRange: [\n {\n high: {\n value: 50,\n },\n },\n ],\n};\n\nexport const HomerObservation4: Observation = {\n resourceType: 'Observation',\n id: '4',\n valueQuantity: {\n value: 50,\n unit: 'x',\n },\n referenceRange: [\n {\n low: {\n value: 10,\n },\n high: {\n value: 50,\n },\n },\n ],\n interpretation: [\n {\n text: 'HIGH',\n },\n ],\n};\n\nexport const HomerObservation5: Observation = {\n resourceType: 'Observation',\n id: '5',\n valueQuantity: {\n value: 100,\n unit: 'x',\n },\n referenceRange: [{}],\n interpretation: [{}],\n};\n\nexport const HomerObservation6: Observation = {\n resourceType: 'Observation',\n component: [\n {\n valueQuantity: {\n value: 110,\n unit: 'mmHg',\n system: 'http://unitsofmeasure.org',\n },\n },\n {\n valueQuantity: {\n value: 75,\n unit: 'mmHg',\n system: 'http://unitsofmeasure.org',\n },\n },\n ],\n};\n\nexport const HomerObservationSearchBundle: Bundle<Observation> = {\n resourceType: 'Bundle',\n total: 1,\n entry: [\n {\n resource: HomerObservation3,\n },\n ],\n};\n\nexport const HomerServiceRequest: ServiceRequest = {\n resourceType: 'ServiceRequest',\n id: '123',\n meta: {\n versionId: '1',\n lastUpdated: '2020-01-01T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n code: {\n coding: [\n {\n system: 'http://snomed.info/sct',\n code: 'SERVICE_REQUEST_CODE',\n },\n ],\n },\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\n};\n\nexport const HomerServiceRequestHistoryBundle: Bundle<ServiceRequest> = {\n resourceType: 'Bundle',\n type: 'history',\n entry: [\n {\n resource: HomerServiceRequest,\n },\n ],\n};\n\nexport const HomerServiceRequestSearchBundle: Bundle<ServiceRequest> = {\n resourceType: 'Bundle',\n type: 'searchset',\n entry: [\n {\n resource: HomerServiceRequest,\n },\n ],\n};\n\nexport const BartSimpson: Patient = {\n resourceType: 'Patient',\n id: '555',\n meta: {\n versionId: '1',\n lastUpdated: '2020-01-01T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n name: [\n {\n given: ['Bart'],\n family: 'Simpson',\n },\n ],\n photo: [\n {\n contentType: 'image/jpeg',\n url: 'https://example.com/picture.jpg',\n },\n ],\n};\n\nexport const SimpsonSearchBundle: Bundle<Patient> = {\n resourceType: 'Bundle',\n type: 'searchset',\n total: 2,\n entry: [\n {\n resource: HomerSimpson,\n },\n {\n resource: BartSimpson,\n },\n ],\n};\n","import { AuditEvent, Bundle, Subscription } from '@medplum/fhirtypes';\n\nexport const ExampleSubscription: Subscription = {\n resourceType: 'Subscription',\n id: '123',\n meta: {\n versionId: '456',\n },\n};\n\nexport const ExampleSubscriptionHistory: Bundle<Subscription> = {\n resourceType: 'Bundle',\n type: 'history',\n entry: [\n {\n resource: ExampleSubscription,\n },\n ],\n};\n\nexport const ExampleAuditEvent: AuditEvent = {\n resourceType: 'AuditEvent',\n id: '123',\n meta: {\n lastUpdated: new Date().toISOString(),\n versionId: '456',\n author: {\n reference: 'Practitioner/123',\n },\n },\n};\n\nexport const ExampleAuditEventBundle: Bundle<AuditEvent> = {\n resourceType: 'Bundle',\n entry: [\n {\n resource: ExampleAuditEvent,\n },\n ],\n};\n","import { Bundle, SearchParameter, StructureDefinition } from '@medplum/fhirtypes';\n\nexport const EmptySearchBundle: Bundle = {\n resourceType: 'Bundle',\n type: 'searchset',\n total: 0,\n entry: [],\n};\n\nexport const ObservationStructureDefinition: StructureDefinition = {\n resourceType: 'StructureDefinition',\n name: 'Observation',\n snapshot: {\n element: [\n {\n path: 'Observation.id',\n type: [\n {\n code: 'code',\n },\n ],\n },\n {\n path: 'Observation.value[x]',\n min: 0,\n max: '1',\n type: [\n {\n code: 'Quantity',\n },\n {\n code: 'CodeableConcept',\n },\n {\n code: 'string',\n },\n {\n code: 'boolean',\n },\n {\n code: 'integer',\n },\n {\n code: 'Range',\n },\n {\n code: 'Ratio',\n },\n {\n code: 'SampledData',\n },\n {\n code: 'time',\n },\n {\n code: 'dateTime',\n },\n {\n code: 'Period',\n },\n ],\n },\n ],\n },\n};\n\nexport const PatientStructureDefinition: StructureDefinition = {\n resourceType: 'StructureDefinition',\n id: '123',\n name: 'Patient',\n snapshot: {\n element: [\n {\n id: 'Patient.name',\n path: 'Patient.name',\n type: [\n {\n code: 'HumanName',\n },\n ],\n max: '*',\n },\n ],\n },\n};\n\nexport const PatientSearchParameters: SearchParameter[] = [\n {\n resourceType: 'SearchParameter',\n id: 'Patient-name',\n base: ['Patient'],\n code: 'name',\n name: 'name',\n type: 'string',\n expression: 'Patient.name',\n },\n {\n resourceType: 'SearchParameter',\n id: 'Patient-birthdate',\n base: ['Patient'],\n code: 'birthdate',\n name: 'birthdate',\n type: 'date',\n expression: 'Patient.birthdate',\n },\n {\n resourceType: 'SearchParameter',\n id: 'Patient-organization',\n base: ['Patient'],\n code: 'organization',\n name: 'organization',\n type: 'reference',\n expression: 'Patient.organization',\n target: ['Organization'],\n },\n];\n\nexport const PractitionerStructureDefinition: StructureDefinition = {\n resourceType: 'StructureDefinition',\n name: 'Practitioner',\n snapshot: {\n element: [\n {\n path: 'Practitioner.id',\n type: [\n {\n code: 'code',\n },\n ],\n },\n {\n path: 'Practitioner.name',\n type: [\n {\n code: 'HumanName',\n },\n ],\n max: '*',\n },\n {\n path: 'Practitioner.gender',\n type: [\n {\n code: 'code',\n },\n ],\n },\n ],\n },\n};\n\nexport const QuestionnaireStructureDefinition: StructureDefinition = {\n resourceType: 'StructureDefinition',\n name: 'Questionnaire',\n snapshot: {\n element: [\n {\n id: 'Questionnaire.item',\n path: 'Questionnaire.item',\n type: [\n {\n code: 'BackboneElement',\n },\n ],\n },\n {\n id: 'Questionnaire.item.answerOption',\n path: 'Questionnaire.item.answerOption',\n type: [\n {\n code: 'BackboneElement',\n },\n ],\n },\n {\n id: 'Questionnaire.item.answerOption.value[x]',\n path: 'Questionnaire.item.answerOption.value[x]',\n min: 1,\n max: '1',\n type: [\n {\n code: 'integer',\n },\n {\n code: 'date',\n },\n {\n code: 'time',\n },\n {\n code: 'string',\n },\n {\n code: 'Coding',\n },\n {\n code: 'Reference',\n targetProfile: ['http://hl7.org/fhir/StructureDefinition/Resource'],\n },\n ],\n },\n ],\n },\n};\n\nexport const ServiceRequestServiceDefinition: StructureDefinition = {\n resourceType: 'StructureDefinition',\n name: 'ServiceRequest',\n snapshot: {\n element: [\n {\n path: 'ServiceRequest.id',\n type: [\n {\n code: 'code',\n },\n ],\n },\n {\n path: 'ServiceRequest.code',\n type: [\n {\n code: 'CodeableConcept',\n },\n ],\n },\n ],\n },\n};\n\nexport const GraphQLSchemaResponse = {\n data: {\n StructureDefinitionList: [\n ObservationStructureDefinition,\n PatientStructureDefinition,\n PractitionerStructureDefinition,\n QuestionnaireStructureDefinition,\n ServiceRequestServiceDefinition,\n ],\n SearchParameterList: [...PatientSearchParameters],\n },\n};\n","import { ValueSet } from '@medplum/fhirtypes';\n\nexport const exampleValueSet: ValueSet = {\n resourceType: 'ValueSet',\n expansion: {\n contains: [\n {\n system: 'x',\n code: 'test-code',\n display: 'Test Display',\n },\n ],\n },\n};\n","import { AccessPolicy, Bundle } from '@medplum/fhirtypes';\n\nexport const ExampleAccessPolicy: AccessPolicy = {\n resourceType: 'AccessPolicy',\n id: '123',\n name: 'Example Access Policy',\n};\n\nexport const ExampleAccessPolicySearchBundle: Bundle<AccessPolicy> = {\n resourceType: 'Bundle',\n type: 'searchset',\n entry: [\n {\n resource: ExampleAccessPolicy,\n },\n ],\n};\n","import { allOk, badRequest, getStatus, LoginState, MedplumClient, notFound, ProfileResource } from '@medplum/core';\nimport { Bundle, BundleEntry, Communication, Media, Practitioner } from '@medplum/fhirtypes';\nimport {\n DifferentOrganization,\n DrAliceSmith,\n DrAliceSmithHistoryBundle,\n EmptySearchBundle,\n ExampleAuditEventBundle,\n ExampleBot,\n ExampleQuestionnaire,\n ExampleQuestionnaireBundle,\n ExampleQuestionnaireResponse,\n ExampleSubscription,\n ExampleSubscriptionHistory,\n exampleValueSet,\n GraphQLSchemaResponse,\n HomerCommunications,\n HomerDiagnosticReport,\n HomerDiagnosticReportBundle,\n HomerEncounter,\n HomerEncounterHistory,\n HomerMedia,\n HomerObservation1,\n HomerObservation2,\n HomerObservation3,\n HomerObservation4,\n HomerObservation5,\n HomerObservation6,\n HomerObservationSearchBundle,\n HomerServiceRequest,\n HomerServiceRequestHistoryBundle,\n HomerServiceRequestSearchBundle,\n HomerSimpson,\n HomerSimpsonHistory,\n OrganizationSearchBundle,\n SimpsonSearchBundle,\n TestOrganization,\n} from './mocks';\nimport { ExampleAccessPolicy, ExampleAccessPolicySearchBundle } from './mocks/accesspolicy';\n\nconst newComment: Communication = {\n resourceType: 'Communication',\n id: 'new-comment',\n payload: [\n {\n contentString: 'Test comment',\n },\n ],\n};\n\nconst newMedia: Media = {\n resourceType: 'Media',\n id: 'new-media',\n content: {\n contentType: 'text/plain',\n url: 'https://example.com/test2.txt',\n },\n};\n\nconst routes: Record<string, Record<string, any>> = {\n 'admin/projects/123': {\n GET: {\n project: { id: '123', name: 'Project 123' },\n members: [{ profile: 'Practitioner/123', name: 'Alice Smith' }],\n },\n },\n 'admin/super/structuredefinitions': {\n POST: {\n ok: true,\n },\n },\n 'admin/super/valuesets': {\n POST: {\n ok: true,\n },\n },\n 'admin/super/reindex': {\n POST: {\n ok: true,\n },\n },\n 'auth/changepassword': {\n POST: (body: string) => {\n const { oldPassword } = JSON.parse(body);\n if (oldPassword === 'orange') {\n return allOk;\n } else {\n return {\n resourceType: 'OperationOutcome',\n issue: [\n {\n expression: ['oldPassword'],\n details: {\n text: 'Incorrect password',\n },\n },\n ],\n };\n }\n },\n },\n 'auth/login': {\n POST: {\n profile: { reference: 'Practitioner/123' },\n },\n },\n 'auth/setpassword': {\n POST: (body: string) => {\n const { password } = JSON.parse(body);\n if (password === 'orange') {\n return allOk;\n } else {\n return {\n resourceType: 'OperationOutcome',\n issue: [\n {\n expression: ['password'],\n details: {\n text: 'Invalid password',\n },\n },\n ],\n };\n }\n },\n },\n 'auth/register': {\n POST: (body: string) => {\n const { email, password } = JSON.parse(body);\n if (email === 'george@example.com' && password === 'password') {\n return allOk;\n } else {\n return {\n resourceType: 'OperationOutcome',\n issue: [\n {\n details: {\n text: 'Invalid',\n },\n },\n ],\n };\n }\n },\n },\n 'auth/resetpassword': {\n POST: (body: string) => {\n const { email } = JSON.parse(body);\n if (email === 'admin@example.com') {\n return allOk;\n } else {\n return {\n resourceType: 'OperationOutcome',\n issue: [\n {\n expression: ['email'],\n details: {\n text: 'Email not found',\n },\n },\n ],\n };\n }\n },\n },\n 'fhir/R4/AccessPolicy?name=Example%20Access%20Policy': {\n GET: ExampleAccessPolicySearchBundle,\n },\n 'fhir/R4/AccessPolicy/123': {\n GET: ExampleAccessPolicy,\n },\n 'fhir/R4/AuditEvent?entity=Subscription/123&_count=20&_sort=-_lastUpdated': {\n GET: ExampleAuditEventBundle,\n },\n 'fhir/R4/Binary?_filename=hello.exe': {\n POST: badRequest('Invalid file type'),\n },\n 'fhir/R4/Bot/123': {\n GET: ExampleBot,\n },\n 'fhir/R4/Communication': {\n POST: newComment,\n },\n 'fhir/R4/Communication?based-on=ServiceRequest/123': {\n GET: HomerCommunications,\n },\n 'fhir/R4/Communication?encounter=Encounter/123': {\n GET: HomerCommunications,\n },\n 'fhir/R4/Communication?subject=Patient/123': {\n GET: HomerCommunications,\n },\n 'fhir/R4/Device?subject=Patient/123': {\n GET: EmptySearchBundle,\n },\n 'fhir/R4/DeviceRequest?patient=Patient/123': {\n GET: EmptySearchBundle,\n },\n 'fhir/R4/DiagnosticReport/123': {\n GET: HomerDiagnosticReport,\n },\n 'fhir/R4/DiagnosticReport/123/_history': {\n GET: HomerDiagnosticReportBundle,\n },\n 'fhir/R4/DiagnosticReport?based-on=ServiceRequest/123': {\n GET: HomerDiagnosticReportBundle,\n },\n 'fhir/R4/DiagnosticReport?subject=Patient/123': {\n GET: HomerDiagnosticReportBundle,\n },\n 'fhir/R4/Encounter/123': {\n GET: HomerEncounter,\n },\n 'fhir/R4/Encounter/123/_history': {\n GET: HomerEncounterHistory,\n },\n 'fhir/R4/Media': {\n POST: newMedia,\n },\n 'fhir/R4/Media?based-on=ServiceRequest/123': {\n GET: HomerMedia,\n },\n 'fhir/R4/Media?encounter=Encounter/123': {\n GET: HomerMedia,\n },\n 'fhir/R4/Media?subject=Patient/123': {\n GET: HomerMedia,\n },\n 'fhir/R4/Observation?_fields=value[x]': {\n GET: HomerObservationSearchBundle,\n },\n 'fhir/R4/Observation/1': {\n GET: HomerObservation1,\n },\n 'fhir/R4/Observation/2': {\n GET: HomerObservation2,\n },\n 'fhir/R4/Observation/3': {\n GET: HomerObservation3,\n },\n 'fhir/R4/Observation/4': {\n GET: HomerObservation4,\n },\n 'fhir/R4/Observation/5': {\n GET: HomerObservation5,\n },\n 'fhir/R4/Observation/6': {\n GET: HomerObservation6,\n },\n 'fhir/R4/Organization?name=Different': {\n GET: OrganizationSearchBundle,\n },\n 'fhir/R4/Organization/123': {\n GET: TestOrganization,\n },\n 'fhir/R4/Organization/456': {\n GET: DifferentOrganization,\n },\n 'fhir/R4/Patient?name=Simpson': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?_fields=id,_lastUpdated,name&name=Simpson': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?_count=20&_fields=id,_lastUpdated,name,birthDate,gender&_sort=-_lastUpdated': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?_fields=id,_lastUpdated,name&_lastUpdated=ge2021-12-01T00%3A00%3A00.000Z': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?name=Bob': {\n GET: EmptySearchBundle,\n },\n 'fhir/R4/Patient/123': {\n GET: HomerSimpson,\n },\n 'fhir/R4/Patient/123/_history': {\n GET: HomerSimpsonHistory,\n },\n 'fhir/R4/Practitioner': {\n POST: HomerSimpson,\n },\n 'fhir/R4/Practitioner/123': {\n GET: DrAliceSmith,\n },\n 'fhir/R4/Practitioner/123/_history': {\n GET: DrAliceSmithHistoryBundle,\n },\n 'fhir/R4/Practitioner/123/_history/1': {\n GET: DrAliceSmith,\n },\n 'fhir/R4/Practitioner/not-found/_history': {\n GET: notFound,\n },\n 'fhir/R4/Questionnaire?subject-type=Patient': {\n GET: ExampleQuestionnaireBundle,\n },\n 'fhir/R4/Questionnaire/not-found': {\n GET: notFound,\n },\n 'fhir/R4/Questionnaire/123': {\n GET: ExampleQuestionnaire,\n },\n 'fhir/R4/QuestionnaireResponse': {\n POST: ExampleQuestionnaireResponse,\n },\n 'fhir/R4/QuestionnaireResponse/123': {\n GET: ExampleQuestionnaireResponse,\n },\n 'fhir/R4/ServiceRequest/123': {\n GET: HomerServiceRequest,\n },\n 'fhir/R4/ServiceRequest/123/_history': {\n GET: HomerServiceRequestHistoryBundle,\n },\n 'fhir/R4/ServiceRequest?subject=Patient/123': {\n GET: HomerServiceRequestSearchBundle,\n },\n 'fhir/R4/Subscription/123': {\n GET: ExampleSubscription,\n },\n 'fhir/R4/Subscription/123/_history': {\n GET: ExampleSubscriptionHistory,\n },\n 'fhir/R4/ValueSet/%24expand?url=https%3A%2F%2Fexample.com%2Ftest&filter=xyz': {\n GET: exampleValueSet,\n },\n 'fhir/R4/%24graphql': {\n POST: GraphQLSchemaResponse,\n },\n 'fhir/R4': {\n POST: (body: string) => {\n const request = JSON.parse(body) as Bundle;\n return {\n resourceType: 'Bundle',\n type: 'batch-response',\n entry: request.entry?.map((e: BundleEntry) => {\n const url = 'fhir/R4/' + e?.request?.url;\n const method = e?.request?.method as string;\n const resource = routes[url]?.[method];\n if (resource?.resourceType === 'OperationOutcome') {\n return { resource, response: { status: getStatus(resource).toString() } };\n } else if (resource) {\n return { resource, response: { status: '200' } };\n } else {\n return { resource: notFound, response: { status: '404' } };\n }\n }),\n };\n },\n },\n};\n\nexport interface MockClientOptions {\n readonly debug?: boolean;\n}\n\nexport class MockClient extends MedplumClient {\n activeLoginOverride?: LoginState;\n\n constructor(clientOptions?: MockClientOptions) {\n super({\n baseUrl: 'https://example.com/',\n clientId: 'my-client-id',\n fetch: (url: string, options: any) => {\n const method = options.method;\n const path = url.replace('https://example.com/', '');\n\n if (clientOptions?.debug) {\n console.log('MockClient', method, path);\n }\n\n let result = routes[path]?.[method];\n if (typeof result === 'function') {\n result = result(options.body);\n }\n\n if (clientOptions?.debug && !result) {\n console.log('MockClient: not found', method, path);\n }\n\n const response: any = {\n request: {\n url,\n options,\n },\n ...result,\n };\n\n if (clientOptions?.debug) {\n console.log('MockClient', JSON.stringify(response, null, 2));\n }\n\n return Promise.resolve({\n json: () => Promise.resolve(response),\n });\n },\n });\n }\n\n clear(): void {\n super.clear();\n this.activeLoginOverride = undefined;\n }\n\n getProfile(): ProfileResource {\n return {\n resourceType: 'Practitioner',\n id: '123',\n meta: {\n versionId: '456',\n },\n } as Practitioner;\n }\n\n setActiveLoginOverride(activeLoginOverride: LoginState): void {\n this.activeLoginOverride = activeLoginOverride;\n }\n\n getActiveLogin(): LoginState | undefined {\n if (this.activeLoginOverride !== undefined) {\n return this.activeLoginOverride;\n }\n return super.getActiveLogin();\n }\n}\n"],"names":["allOk","badRequest","notFound","getStatus","MedplumClient"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@medplum/core")):"function"==typeof define&&define.amd?define(["exports","@medplum/core"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).medplum=e.medplum||{},e.medplum.mock={}),e.medplum.core)}(this,(function(e,t){"use strict";const r={resourceType:"Organization",id:"123",meta:{versionId:"1"},name:"Test Organization"},i={resourceType:"Organization",id:"456",meta:{versionId:"1"},name:"Different"},n={resourceType:"Bundle",type:"searchset",entry:[{resource:i}]},o={resourceType:"Practitioner",id:"123",meta:{versionId:"2",lastUpdated:"2021-01-02T12:00:00Z",author:{reference:"Practitioner/123"}},name:[{given:["Alice"],family:"Smith"}]},a={resourceType:"Bundle",type:"history",entry:[{resource:o},{resource:{resourceType:"Practitioner",id:"123",meta:{versionId:"1",lastUpdated:"2021-01-01T12:00:00Z",author:{reference:"Practitioner/123"}},name:[{given:["Medplum"],family:"Admin"}]}}]},s={resourceType:"Bot",id:"123",name:"Test Bot",code:'console.log("hello world");'},c={resourceType:"Questionnaire",id:"123",name:"Vitals",title:"Vitals",item:[{linkId:"1",text:"First question",type:"string"}]},u={resourceType:"Bundle",type:"searchset",entry:[{resource:c}]},d={resourceType:"QuestionnaireResponse",id:"123",questionnaire:"Questionnaire/123",subject:{reference:"Patient/123"},source:{reference:"Practitioner/123"}},p={resourceType:"Patient",id:"123",meta:{versionId:"2",lastUpdated:"2020-01-02T00:00:00.000Z",author:{reference:"Practitioner/123"}},identifier:[{system:"abc",value:"123"},{system:"def",value:"456"}],name:[{given:["Homer"],family:"Simpson"}],photo:[{contentType:"image/jpeg",url:"https://example.com/picture.jpg"}]},l={resourceType:"Bundle",type:"history",entry:[{resource:p},{resource:{resourceType:"Patient",id:"123",meta:{versionId:"1",lastUpdated:"2020-01-01T00:00:00.000Z",author:{reference:"Practitioner/123"}},name:[{given:["Homer"],family:"Simpson"}],photo:[{contentType:"image/jpeg",url:"https://example.com/picture.jpg"}]}}]},m={resourceType:"Encounter",id:"123",meta:{versionId:"456"}},y={resourceType:"Bundle",type:"history",entry:[{resource:m}]},h={resourceType:"Bundle",entry:[{resource:{resourceType:"Communication",id:"123",meta:{lastUpdated:"2020-01-01T12:00:00Z",author:{reference:"Practitioner/123"}},payload:[{contentString:"Hello world"}]}}]},f={resourceType:"Bundle",entry:[{resource:{resourceType:"Media",id:"123",meta:{lastUpdated:"2020-01-01T12:00:00Z",author:{reference:"Practitioner/123"}},content:{contentType:"text/plain",url:"https://example.com/test.txt"}}}]},T={resourceType:"DiagnosticReport",id:"123",subject:{reference:"Patient/123",display:"Homer Simpson"},resultsInterpreter:[{reference:"Practitioner/123",display:"Dr. Alice Smith"}],result:[{reference:"Observation/1"},{reference:"Observation/2"},{reference:"Observation/3"},{reference:"Observation/4"},{reference:"Observation/5"},{reference:"Observation/6"}]},v={resourceType:"Bundle",type:"searchset",entry:[{resource:T}]},g={resourceType:"Observation",id:"1",valueString:"test"},R={resourceType:"Observation",id:"2",valueQuantity:{value:20,unit:"x"},referenceRange:[{low:{value:10}}]},P={resourceType:"Observation",id:"3",valueQuantity:{value:30,unit:"x"},referenceRange:[{high:{value:50}}]},S={resourceType:"Observation",id:"4",valueQuantity:{value:50,unit:"x"},referenceRange:[{low:{value:10},high:{value:50}}],interpretation:[{text:"HIGH"}]},O={resourceType:"Observation",id:"5",valueQuantity:{value:100,unit:"x"},referenceRange:[{}],interpretation:[{}]},E={resourceType:"Observation",component:[{valueQuantity:{value:110,unit:"mmHg",system:"http://unitsofmeasure.org"}},{valueQuantity:{value:75,unit:"mmHg",system:"http://unitsofmeasure.org"}}]},b={resourceType:"Bundle",total:1,entry:[{resource:P}]},x={resourceType:"ServiceRequest",id:"123",meta:{versionId:"1",lastUpdated:"2020-01-01T12:00:00Z",author:{reference:"Practitioner/123"}},code:{coding:[{system:"http://snomed.info/sct",code:"SERVICE_REQUEST_CODE"}]},subject:{reference:"Patient/123",display:"Homer Simpson"}},G={resourceType:"Bundle",type:"history",entry:[{resource:x}]},B={resourceType:"Bundle",type:"searchset",entry:[{resource:x}]},H={resourceType:"Patient",id:"555",meta:{versionId:"1",lastUpdated:"2020-01-01T12:00:00Z",author:{reference:"Practitioner/123"}},name:[{given:["Bart"],family:"Simpson"}],photo:[{contentType:"image/jpeg",url:"https://example.com/picture.jpg"}]},D={resourceType:"Bundle",type:"searchset",total:2,entry:[{resource:p},{resource:H}]},Q={resourceType:"Subscription",id:"123",meta:{versionId:"456"}},_={resourceType:"Bundle",type:"history",entry:[{resource:Q}]},q={resourceType:"AuditEvent",id:"123",meta:{lastUpdated:(new Date).toISOString(),versionId:"456",author:{reference:"Practitioner/123"}}},j={resourceType:"Bundle",entry:[{resource:q}]},w={resourceType:"Bundle",type:"searchset",total:0,entry:[]},I={resourceType:"StructureDefinition",name:"Observation",snapshot:{element:[{path:"Observation.id",type:[{code:"code"}]},{path:"Observation.value[x]",min:0,max:"1",type:[{code:"Quantity"},{code:"CodeableConcept"},{code:"string"},{code:"boolean"},{code:"integer"},{code:"Range"},{code:"Ratio"},{code:"SampledData"},{code:"time"},{code:"dateTime"},{code:"Period"}]}]}},A={resourceType:"StructureDefinition",id:"123",name:"Patient",snapshot:{element:[{id:"Patient.name",path:"Patient.name",type:[{code:"HumanName"}],max:"*"}]}},C=[{resourceType:"SearchParameter",id:"Patient-name",base:["Patient"],code:"name",name:"name",type:"string",expression:"Patient.name"},{resourceType:"SearchParameter",id:"Patient-birthdate",base:["Patient"],code:"birthdate",name:"birthdate",type:"date",expression:"Patient.birthdate"},{resourceType:"SearchParameter",id:"Patient-organization",base:["Patient"],code:"organization",name:"organization",type:"reference",expression:"Patient.organization",target:["Organization"]}],U={resourceType:"StructureDefinition",name:"Practitioner",snapshot:{element:[{path:"Practitioner.id",type:[{code:"code"}]},{path:"Practitioner.name",type:[{code:"HumanName"}],max:"*"},{path:"Practitioner.gender",type:[{code:"code"}]}]}},k={resourceType:"StructureDefinition",name:"Questionnaire",snapshot:{element:[{id:"Questionnaire.item",path:"Questionnaire.item",type:[{code:"BackboneElement"}]},{id:"Questionnaire.item.answerOption",path:"Questionnaire.item.answerOption",type:[{code:"BackboneElement"}]},{id:"Questionnaire.item.answerOption.value[x]",path:"Questionnaire.item.answerOption.value[x]",min:1,max:"1",type:[{code:"integer"},{code:"date"},{code:"time"},{code:"string"},{code:"Coding"},{code:"Reference",targetProfile:["http://hl7.org/fhir/StructureDefinition/Resource"]}]}]}},z={resourceType:"StructureDefinition",name:"ServiceRequest",snapshot:{element:[{path:"ServiceRequest.id",type:[{code:"code"}]},{path:"ServiceRequest.code",type:[{code:"CodeableConcept"}]}]}},M={data:{StructureDefinitionList:[I,A,U,k,z],SearchParameterList:[...C]}},L={resourceType:"ValueSet",expansion:{contains:[{system:"x",code:"test-code",display:"Test Display"}]}},Z={resourceType:"AccessPolicy",id:"123",name:"Example Access Policy"},N={"admin/projects/123":{GET:{project:{id:"123",name:"Project 123"},members:[{profile:"Practitioner/123",name:"Alice Smith"}]}},"admin/super/structuredefinitions":{POST:{ok:!0}},"admin/super/valuesets":{POST:{ok:!0}},"admin/super/reindex":{POST:{ok:!0}},"auth/changepassword":{POST:e=>{const{oldPassword:r}=JSON.parse(e);return"orange"===r?t.allOk:{resourceType:"OperationOutcome",issue:[{expression:["oldPassword"],details:{text:"Incorrect password"}}]}}},"auth/login":{POST:{profile:{reference:"Practitioner/123"}}},"auth/setpassword":{POST:e=>{const{password:r}=JSON.parse(e);return"orange"===r?t.allOk:{resourceType:"OperationOutcome",issue:[{expression:["password"],details:{text:"Invalid password"}}]}}},"auth/register":{POST:e=>{const{email:r,password:i}=JSON.parse(e);return"george@example.com"===r&&"password"===i?t.allOk:{resourceType:"OperationOutcome",issue:[{details:{text:"Invalid"}}]}}},"auth/resetpassword":{POST:e=>{const{email:r}=JSON.parse(e);return"admin@example.com"===r?t.allOk:{resourceType:"OperationOutcome",issue:[{expression:["email"],details:{text:"Email not found"}}]}}},"fhir/R4/AccessPolicy?name=Example%20Access%20Policy":{GET:{resourceType:"Bundle",type:"searchset",entry:[{resource:Z}]}},"fhir/R4/AccessPolicy/123":{GET:Z},"fhir/R4/AuditEvent?entity=Subscription/123&_count=20&_sort=-_lastUpdated":{GET:j},"fhir/R4/Binary?_filename=hello.exe":{POST:t.badRequest("Invalid file type")},"fhir/R4/Bot/123":{GET:s},"fhir/R4/Communication":{POST:{resourceType:"Communication",id:"new-comment",payload:[{contentString:"Test comment"}]}},"fhir/R4/Communication?based-on=ServiceRequest/123":{GET:h},"fhir/R4/Communication?encounter=Encounter/123":{GET:h},"fhir/R4/Communication?subject=Patient/123":{GET:h},"fhir/R4/Device?subject=Patient/123":{GET:w},"fhir/R4/DeviceRequest?patient=Patient/123":{GET:w},"fhir/R4/DiagnosticReport/123":{GET:T},"fhir/R4/DiagnosticReport/123/_history":{GET:v},"fhir/R4/DiagnosticReport?based-on=ServiceRequest/123":{GET:v},"fhir/R4/DiagnosticReport?subject=Patient/123":{GET:v},"fhir/R4/Encounter/123":{GET:m},"fhir/R4/Encounter/123/_history":{GET:y},"fhir/R4/Media":{POST:{resourceType:"Media",id:"new-media",content:{contentType:"text/plain",url:"https://example.com/test2.txt"}}},"fhir/R4/Media?based-on=ServiceRequest/123":{GET:f},"fhir/R4/Media?encounter=Encounter/123":{GET:f},"fhir/R4/Media?subject=Patient/123":{GET:f},"fhir/R4/Observation?_fields=value[x]":{GET:b},"fhir/R4/Observation/1":{GET:g},"fhir/R4/Observation/2":{GET:R},"fhir/R4/Observation/3":{GET:P},"fhir/R4/Observation/4":{GET:S},"fhir/R4/Observation/5":{GET:O},"fhir/R4/Observation/6":{GET:E},"fhir/R4/Organization?name=Different":{GET:n},"fhir/R4/Organization/123":{GET:r},"fhir/R4/Organization/456":{GET:i},"fhir/R4/Patient?name=Simpson":{GET:D},"fhir/R4/Patient?_fields=id,_lastUpdated,name&name=Simpson":{GET:D},"fhir/R4/Patient?_count=20&_fields=id,_lastUpdated,name,birthDate,gender&_sort=-_lastUpdated":{GET:D},"fhir/R4/Patient?_fields=id,_lastUpdated,name&_lastUpdated=ge2021-12-01T00%3A00%3A00.000Z":{GET:D},"fhir/R4/Patient?name=Bob":{GET:w},"fhir/R4/Patient/123":{GET:p},"fhir/R4/Patient/123/_history":{GET:l},"fhir/R4/Practitioner":{POST:p},"fhir/R4/Practitioner/123":{GET:o},"fhir/R4/Practitioner/123/_history":{GET:a},"fhir/R4/Practitioner/123/_history/1":{GET:o},"fhir/R4/Practitioner/not-found/_history":{GET:t.notFound},"fhir/R4/Questionnaire?subject-type=Patient":{GET:u},"fhir/R4/Questionnaire/not-found":{GET:t.notFound},"fhir/R4/Questionnaire/123":{GET:c},"fhir/R4/QuestionnaireResponse":{POST:d},"fhir/R4/QuestionnaireResponse/123":{GET:d},"fhir/R4/ServiceRequest/123":{GET:x},"fhir/R4/ServiceRequest/123/_history":{GET:G},"fhir/R4/ServiceRequest?subject=Patient/123":{GET:B},"fhir/R4/Subscription/123":{GET:Q},"fhir/R4/Subscription/123/_history":{GET:_},"fhir/R4/ValueSet/%24expand?url=https%3A%2F%2Fexample.com%2Ftest&filter=xyz":{GET:L},"fhir/R4/%24graphql":{POST:M},"fhir/R4":{POST:e=>{var r;return{resourceType:"Bundle",type:"batch-response",entry:null===(r=JSON.parse(e).entry)||void 0===r?void 0:r.map((e=>{var r,i,n;const o="fhir/R4/"+(null===(r=null==e?void 0:e.request)||void 0===r?void 0:r.url),a=null===(i=null==e?void 0:e.request)||void 0===i?void 0:i.method,s=null===(n=N[o])||void 0===n?void 0:n[a];return"OperationOutcome"===(null==s?void 0:s.resourceType)?{resource:s,response:{status:t.getStatus(s).toString()}}:s?{resource:s,response:{status:"200"}}:{resource:t.notFound,response:{status:"404"}}}))}}}};class F extends t.MedplumClient{constructor(e){super({baseUrl:"https://example.com/",clientId:"my-client-id",fetch:(t,r)=>{var i;const n=r.method,o=t.replace("https://example.com/","");(null==e?void 0:e.debug)&&console.log("MockClient",n,o);let a=null===(i=N[o])||void 0===i?void 0:i[n];"function"==typeof a&&(a=a(r.body)),(null==e?void 0:e.debug)&&!a&&console.log("MockClient: not found",n,o);const s=Object.assign({request:{url:t,options:r}},a);return(null==e?void 0:e.debug)&&console.log("MockClient",JSON.stringify(s,null,2)),Promise.resolve({json:()=>Promise.resolve(s)})}})}clear(){super.clear(),this.activeLoginOverride=void 0}getProfile(){return{resourceType:"Practitioner",id:"123",meta:{versionId:"456"}}}setActiveLoginOverride(e){this.activeLoginOverride=e}getActiveLogin(){return void 0!==this.activeLoginOverride?this.activeLoginOverride:super.getActiveLogin()}}e.BartSimpson=H,e.DifferentOrganization=i,e.DrAliceSmith=o,e.DrAliceSmithHistoryBundle=a,e.EmptySearchBundle=w,e.ExampleAuditEvent=q,e.ExampleAuditEventBundle=j,e.ExampleBot=s,e.ExampleQuestionnaire=c,e.ExampleQuestionnaireBundle=u,e.ExampleQuestionnaireResponse=d,e.ExampleSubscription=Q,e.ExampleSubscriptionHistory=_,e.GraphQLSchemaResponse=M,e.HomerCommunications=h,e.HomerDiagnosticReport=T,e.HomerDiagnosticReportBundle=v,e.HomerEncounter=m,e.HomerEncounterHistory=y,e.HomerMedia=f,e.HomerObservation1=g,e.HomerObservation2=R,e.HomerObservation3=P,e.HomerObservation4=S,e.HomerObservation5=O,e.HomerObservation6=E,e.HomerObservationSearchBundle=b,e.HomerServiceRequest=x,e.HomerServiceRequestHistoryBundle=G,e.HomerServiceRequestSearchBundle=B,e.HomerSimpson=p,e.HomerSimpsonHistory=l,e.MockClient=F,e.ObservationStructureDefinition=I,e.OrganizationSearchBundle=n,e.PatientSearchParameters=C,e.PatientStructureDefinition=A,e.PractitionerStructureDefinition=U,e.QuestionnaireStructureDefinition=k,e.ServiceRequestServiceDefinition=z,e.SimpsonSearchBundle=D,e.TestOrganization=r,e.exampleValueSet=L,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
|
+
//# sourceMappingURL=index.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.min.js","sources":["../../../src/mocks/alice.ts","../../../src/mocks/bot.ts","../../../src/mocks/questionnaire.ts","../../../src/mocks/simpsons.ts","../../../src/mocks/subscription.ts","../../../src/mocks/types.ts","../../../src/mocks/valueset.ts","../../../src/mocks/accesspolicy.ts","../../../src/client.ts"],"sourcesContent":["import { Bundle, Organization, Practitioner } from '@medplum/fhirtypes';\n\nexport const TestOrganization: Organization = {\n resourceType: 'Organization',\n id: '123',\n meta: {\n versionId: '1',\n },\n name: 'Test Organization',\n};\n\nexport const DifferentOrganization: Organization = {\n resourceType: 'Organization',\n id: '456',\n meta: {\n versionId: '1',\n },\n name: 'Different',\n};\n\nexport const OrganizationSearchBundle: Bundle<Organization> = {\n resourceType: 'Bundle',\n type: 'searchset',\n entry: [\n {\n resource: DifferentOrganization,\n },\n ],\n};\n\nexport const DrAliceSmith: Practitioner = {\n resourceType: 'Practitioner',\n id: '123',\n meta: {\n versionId: '2',\n lastUpdated: '2021-01-02T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n name: [\n {\n given: ['Alice'],\n family: 'Smith',\n },\n ],\n};\n\nexport const DrAliceSmithHistoryBundle: Bundle<Practitioner> = {\n resourceType: 'Bundle',\n type: 'history',\n entry: [\n {\n resource: DrAliceSmith,\n },\n {\n resource: {\n resourceType: 'Practitioner',\n id: '123',\n meta: {\n versionId: '1',\n lastUpdated: '2021-01-01T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n name: [{ given: ['Medplum'], family: 'Admin' }],\n },\n },\n ],\n};\n","import { Bot } from '@medplum/fhirtypes';\n\nexport const ExampleBot: Bot = {\n resourceType: 'Bot',\n id: '123',\n name: 'Test Bot',\n code: 'console.log(\"hello world\");',\n};\n","import { Bundle, Questionnaire, QuestionnaireResponse } from '@medplum/fhirtypes';\n\nexport const ExampleQuestionnaire: Questionnaire = {\n resourceType: 'Questionnaire',\n id: '123',\n name: 'Vitals',\n title: 'Vitals',\n item: [\n {\n linkId: '1',\n text: 'First question',\n type: 'string',\n },\n ],\n};\n\nexport const ExampleQuestionnaireBundle: Bundle<Questionnaire> = {\n resourceType: 'Bundle',\n type: 'searchset',\n entry: [\n {\n resource: ExampleQuestionnaire,\n },\n ],\n};\n\nexport const ExampleQuestionnaireResponse: QuestionnaireResponse = {\n resourceType: 'QuestionnaireResponse',\n id: '123',\n questionnaire: 'Questionnaire/123',\n subject: {\n reference: 'Patient/123',\n },\n source: {\n reference: 'Practitioner/123',\n },\n};\n","import {\n Bundle,\n Communication,\n DiagnosticReport,\n Encounter,\n Media,\n Observation,\n Patient,\n ServiceRequest,\n} from '@medplum/fhirtypes';\n\nexport const HomerSimpson: Patient = {\n resourceType: 'Patient',\n id: '123',\n meta: {\n versionId: '2',\n lastUpdated: '2020-01-02T00:00:00.000Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n identifier: [\n { system: 'abc', value: '123' },\n { system: 'def', value: '456' },\n ],\n name: [\n {\n given: ['Homer'],\n family: 'Simpson',\n },\n ],\n photo: [\n {\n contentType: 'image/jpeg',\n url: 'https://example.com/picture.jpg',\n },\n ],\n};\n\nexport const HomerSimpsonHistory: Bundle<Patient> = {\n resourceType: 'Bundle',\n type: 'history',\n entry: [\n {\n resource: HomerSimpson,\n },\n {\n resource: {\n resourceType: 'Patient',\n id: '123',\n meta: {\n versionId: '1',\n lastUpdated: '2020-01-01T00:00:00.000Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n name: [\n {\n given: ['Homer'],\n family: 'Simpson',\n },\n ],\n photo: [\n {\n contentType: 'image/jpeg',\n url: 'https://example.com/picture.jpg',\n },\n ],\n },\n },\n ],\n};\n\nexport const HomerEncounter: Encounter = {\n resourceType: 'Encounter',\n id: '123',\n meta: {\n versionId: '456',\n },\n};\n\nexport const HomerEncounterHistory: Bundle<Encounter> = {\n resourceType: 'Bundle',\n type: 'history',\n entry: [\n {\n resource: HomerEncounter,\n },\n ],\n};\n\nexport const HomerCommunications: Bundle<Communication> = {\n resourceType: 'Bundle',\n entry: [\n {\n resource: {\n resourceType: 'Communication',\n id: '123',\n meta: {\n lastUpdated: '2020-01-01T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n payload: [\n {\n contentString: 'Hello world',\n },\n ],\n },\n },\n ],\n};\n\nexport const HomerMedia: Bundle<Media> = {\n resourceType: 'Bundle',\n entry: [\n {\n resource: {\n resourceType: 'Media',\n id: '123',\n meta: {\n lastUpdated: '2020-01-01T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n content: {\n contentType: 'text/plain',\n url: 'https://example.com/test.txt',\n },\n },\n },\n ],\n};\n\nexport const HomerDiagnosticReport: DiagnosticReport = {\n resourceType: 'DiagnosticReport',\n id: '123',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\n resultsInterpreter: [\n {\n reference: 'Practitioner/123',\n display: 'Dr. Alice Smith',\n },\n ],\n result: [\n { reference: 'Observation/1' },\n { reference: 'Observation/2' },\n { reference: 'Observation/3' },\n { reference: 'Observation/4' },\n { reference: 'Observation/5' },\n { reference: 'Observation/6' },\n ],\n};\n\nexport const HomerDiagnosticReportBundle: Bundle<DiagnosticReport> = {\n resourceType: 'Bundle',\n type: 'searchset',\n entry: [\n {\n resource: HomerDiagnosticReport,\n },\n ],\n};\n\nexport const HomerObservation1: Observation = {\n resourceType: 'Observation',\n id: '1',\n valueString: 'test',\n};\n\nexport const HomerObservation2: Observation = {\n resourceType: 'Observation',\n id: '2',\n valueQuantity: {\n value: 20,\n unit: 'x',\n },\n referenceRange: [\n {\n low: {\n value: 10,\n },\n },\n ],\n};\n\nexport const HomerObservation3: Observation = {\n resourceType: 'Observation',\n id: '3',\n valueQuantity: {\n value: 30,\n unit: 'x',\n },\n referenceRange: [\n {\n high: {\n value: 50,\n },\n },\n ],\n};\n\nexport const HomerObservation4: Observation = {\n resourceType: 'Observation',\n id: '4',\n valueQuantity: {\n value: 50,\n unit: 'x',\n },\n referenceRange: [\n {\n low: {\n value: 10,\n },\n high: {\n value: 50,\n },\n },\n ],\n interpretation: [\n {\n text: 'HIGH',\n },\n ],\n};\n\nexport const HomerObservation5: Observation = {\n resourceType: 'Observation',\n id: '5',\n valueQuantity: {\n value: 100,\n unit: 'x',\n },\n referenceRange: [{}],\n interpretation: [{}],\n};\n\nexport const HomerObservation6: Observation = {\n resourceType: 'Observation',\n component: [\n {\n valueQuantity: {\n value: 110,\n unit: 'mmHg',\n system: 'http://unitsofmeasure.org',\n },\n },\n {\n valueQuantity: {\n value: 75,\n unit: 'mmHg',\n system: 'http://unitsofmeasure.org',\n },\n },\n ],\n};\n\nexport const HomerObservationSearchBundle: Bundle<Observation> = {\n resourceType: 'Bundle',\n total: 1,\n entry: [\n {\n resource: HomerObservation3,\n },\n ],\n};\n\nexport const HomerServiceRequest: ServiceRequest = {\n resourceType: 'ServiceRequest',\n id: '123',\n meta: {\n versionId: '1',\n lastUpdated: '2020-01-01T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n code: {\n coding: [\n {\n system: 'http://snomed.info/sct',\n code: 'SERVICE_REQUEST_CODE',\n },\n ],\n },\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\n};\n\nexport const HomerServiceRequestHistoryBundle: Bundle<ServiceRequest> = {\n resourceType: 'Bundle',\n type: 'history',\n entry: [\n {\n resource: HomerServiceRequest,\n },\n ],\n};\n\nexport const HomerServiceRequestSearchBundle: Bundle<ServiceRequest> = {\n resourceType: 'Bundle',\n type: 'searchset',\n entry: [\n {\n resource: HomerServiceRequest,\n },\n ],\n};\n\nexport const BartSimpson: Patient = {\n resourceType: 'Patient',\n id: '555',\n meta: {\n versionId: '1',\n lastUpdated: '2020-01-01T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n name: [\n {\n given: ['Bart'],\n family: 'Simpson',\n },\n ],\n photo: [\n {\n contentType: 'image/jpeg',\n url: 'https://example.com/picture.jpg',\n },\n ],\n};\n\nexport const SimpsonSearchBundle: Bundle<Patient> = {\n resourceType: 'Bundle',\n type: 'searchset',\n total: 2,\n entry: [\n {\n resource: HomerSimpson,\n },\n {\n resource: BartSimpson,\n },\n ],\n};\n","import { AuditEvent, Bundle, Subscription } from '@medplum/fhirtypes';\n\nexport const ExampleSubscription: Subscription = {\n resourceType: 'Subscription',\n id: '123',\n meta: {\n versionId: '456',\n },\n};\n\nexport const ExampleSubscriptionHistory: Bundle<Subscription> = {\n resourceType: 'Bundle',\n type: 'history',\n entry: [\n {\n resource: ExampleSubscription,\n },\n ],\n};\n\nexport const ExampleAuditEvent: AuditEvent = {\n resourceType: 'AuditEvent',\n id: '123',\n meta: {\n lastUpdated: new Date().toISOString(),\n versionId: '456',\n author: {\n reference: 'Practitioner/123',\n },\n },\n};\n\nexport const ExampleAuditEventBundle: Bundle<AuditEvent> = {\n resourceType: 'Bundle',\n entry: [\n {\n resource: ExampleAuditEvent,\n },\n ],\n};\n","import { Bundle, SearchParameter, StructureDefinition } from '@medplum/fhirtypes';\n\nexport const EmptySearchBundle: Bundle = {\n resourceType: 'Bundle',\n type: 'searchset',\n total: 0,\n entry: [],\n};\n\nexport const ObservationStructureDefinition: StructureDefinition = {\n resourceType: 'StructureDefinition',\n name: 'Observation',\n snapshot: {\n element: [\n {\n path: 'Observation.id',\n type: [\n {\n code: 'code',\n },\n ],\n },\n {\n path: 'Observation.value[x]',\n min: 0,\n max: '1',\n type: [\n {\n code: 'Quantity',\n },\n {\n code: 'CodeableConcept',\n },\n {\n code: 'string',\n },\n {\n code: 'boolean',\n },\n {\n code: 'integer',\n },\n {\n code: 'Range',\n },\n {\n code: 'Ratio',\n },\n {\n code: 'SampledData',\n },\n {\n code: 'time',\n },\n {\n code: 'dateTime',\n },\n {\n code: 'Period',\n },\n ],\n },\n ],\n },\n};\n\nexport const PatientStructureDefinition: StructureDefinition = {\n resourceType: 'StructureDefinition',\n id: '123',\n name: 'Patient',\n snapshot: {\n element: [\n {\n id: 'Patient.name',\n path: 'Patient.name',\n type: [\n {\n code: 'HumanName',\n },\n ],\n max: '*',\n },\n ],\n },\n};\n\nexport const PatientSearchParameters: SearchParameter[] = [\n {\n resourceType: 'SearchParameter',\n id: 'Patient-name',\n base: ['Patient'],\n code: 'name',\n name: 'name',\n type: 'string',\n expression: 'Patient.name',\n },\n {\n resourceType: 'SearchParameter',\n id: 'Patient-birthdate',\n base: ['Patient'],\n code: 'birthdate',\n name: 'birthdate',\n type: 'date',\n expression: 'Patient.birthdate',\n },\n {\n resourceType: 'SearchParameter',\n id: 'Patient-organization',\n base: ['Patient'],\n code: 'organization',\n name: 'organization',\n type: 'reference',\n expression: 'Patient.organization',\n target: ['Organization'],\n },\n];\n\nexport const PractitionerStructureDefinition: StructureDefinition = {\n resourceType: 'StructureDefinition',\n name: 'Practitioner',\n snapshot: {\n element: [\n {\n path: 'Practitioner.id',\n type: [\n {\n code: 'code',\n },\n ],\n },\n {\n path: 'Practitioner.name',\n type: [\n {\n code: 'HumanName',\n },\n ],\n max: '*',\n },\n {\n path: 'Practitioner.gender',\n type: [\n {\n code: 'code',\n },\n ],\n },\n ],\n },\n};\n\nexport const QuestionnaireStructureDefinition: StructureDefinition = {\n resourceType: 'StructureDefinition',\n name: 'Questionnaire',\n snapshot: {\n element: [\n {\n id: 'Questionnaire.item',\n path: 'Questionnaire.item',\n type: [\n {\n code: 'BackboneElement',\n },\n ],\n },\n {\n id: 'Questionnaire.item.answerOption',\n path: 'Questionnaire.item.answerOption',\n type: [\n {\n code: 'BackboneElement',\n },\n ],\n },\n {\n id: 'Questionnaire.item.answerOption.value[x]',\n path: 'Questionnaire.item.answerOption.value[x]',\n min: 1,\n max: '1',\n type: [\n {\n code: 'integer',\n },\n {\n code: 'date',\n },\n {\n code: 'time',\n },\n {\n code: 'string',\n },\n {\n code: 'Coding',\n },\n {\n code: 'Reference',\n targetProfile: ['http://hl7.org/fhir/StructureDefinition/Resource'],\n },\n ],\n },\n ],\n },\n};\n\nexport const ServiceRequestServiceDefinition: StructureDefinition = {\n resourceType: 'StructureDefinition',\n name: 'ServiceRequest',\n snapshot: {\n element: [\n {\n path: 'ServiceRequest.id',\n type: [\n {\n code: 'code',\n },\n ],\n },\n {\n path: 'ServiceRequest.code',\n type: [\n {\n code: 'CodeableConcept',\n },\n ],\n },\n ],\n },\n};\n\nexport const GraphQLSchemaResponse = {\n data: {\n StructureDefinitionList: [\n ObservationStructureDefinition,\n PatientStructureDefinition,\n PractitionerStructureDefinition,\n QuestionnaireStructureDefinition,\n ServiceRequestServiceDefinition,\n ],\n SearchParameterList: [...PatientSearchParameters],\n },\n};\n","import { ValueSet } from '@medplum/fhirtypes';\n\nexport const exampleValueSet: ValueSet = {\n resourceType: 'ValueSet',\n expansion: {\n contains: [\n {\n system: 'x',\n code: 'test-code',\n display: 'Test Display',\n },\n ],\n },\n};\n","import { AccessPolicy, Bundle } from '@medplum/fhirtypes';\n\nexport const ExampleAccessPolicy: AccessPolicy = {\n resourceType: 'AccessPolicy',\n id: '123',\n name: 'Example Access Policy',\n};\n\nexport const ExampleAccessPolicySearchBundle: Bundle<AccessPolicy> = {\n resourceType: 'Bundle',\n type: 'searchset',\n entry: [\n {\n resource: ExampleAccessPolicy,\n },\n ],\n};\n","import { allOk, badRequest, getStatus, LoginState, MedplumClient, notFound, ProfileResource } from '@medplum/core';\nimport { Bundle, BundleEntry, Communication, Media, Practitioner } from '@medplum/fhirtypes';\nimport {\n DifferentOrganization,\n DrAliceSmith,\n DrAliceSmithHistoryBundle,\n EmptySearchBundle,\n ExampleAuditEventBundle,\n ExampleBot,\n ExampleQuestionnaire,\n ExampleQuestionnaireBundle,\n ExampleQuestionnaireResponse,\n ExampleSubscription,\n ExampleSubscriptionHistory,\n exampleValueSet,\n GraphQLSchemaResponse,\n HomerCommunications,\n HomerDiagnosticReport,\n HomerDiagnosticReportBundle,\n HomerEncounter,\n HomerEncounterHistory,\n HomerMedia,\n HomerObservation1,\n HomerObservation2,\n HomerObservation3,\n HomerObservation4,\n HomerObservation5,\n HomerObservation6,\n HomerObservationSearchBundle,\n HomerServiceRequest,\n HomerServiceRequestHistoryBundle,\n HomerServiceRequestSearchBundle,\n HomerSimpson,\n HomerSimpsonHistory,\n OrganizationSearchBundle,\n SimpsonSearchBundle,\n TestOrganization,\n} from './mocks';\nimport { ExampleAccessPolicy, ExampleAccessPolicySearchBundle } from './mocks/accesspolicy';\n\nconst newComment: Communication = {\n resourceType: 'Communication',\n id: 'new-comment',\n payload: [\n {\n contentString: 'Test comment',\n },\n ],\n};\n\nconst newMedia: Media = {\n resourceType: 'Media',\n id: 'new-media',\n content: {\n contentType: 'text/plain',\n url: 'https://example.com/test2.txt',\n },\n};\n\nconst routes: Record<string, Record<string, any>> = {\n 'admin/projects/123': {\n GET: {\n project: { id: '123', name: 'Project 123' },\n members: [{ profile: 'Practitioner/123', name: 'Alice Smith' }],\n },\n },\n 'admin/super/structuredefinitions': {\n POST: {\n ok: true,\n },\n },\n 'admin/super/valuesets': {\n POST: {\n ok: true,\n },\n },\n 'admin/super/reindex': {\n POST: {\n ok: true,\n },\n },\n 'auth/changepassword': {\n POST: (body: string) => {\n const { oldPassword } = JSON.parse(body);\n if (oldPassword === 'orange') {\n return allOk;\n } else {\n return {\n resourceType: 'OperationOutcome',\n issue: [\n {\n expression: ['oldPassword'],\n details: {\n text: 'Incorrect password',\n },\n },\n ],\n };\n }\n },\n },\n 'auth/login': {\n POST: {\n profile: { reference: 'Practitioner/123' },\n },\n },\n 'auth/setpassword': {\n POST: (body: string) => {\n const { password } = JSON.parse(body);\n if (password === 'orange') {\n return allOk;\n } else {\n return {\n resourceType: 'OperationOutcome',\n issue: [\n {\n expression: ['password'],\n details: {\n text: 'Invalid password',\n },\n },\n ],\n };\n }\n },\n },\n 'auth/register': {\n POST: (body: string) => {\n const { email, password } = JSON.parse(body);\n if (email === 'george@example.com' && password === 'password') {\n return allOk;\n } else {\n return {\n resourceType: 'OperationOutcome',\n issue: [\n {\n details: {\n text: 'Invalid',\n },\n },\n ],\n };\n }\n },\n },\n 'auth/resetpassword': {\n POST: (body: string) => {\n const { email } = JSON.parse(body);\n if (email === 'admin@example.com') {\n return allOk;\n } else {\n return {\n resourceType: 'OperationOutcome',\n issue: [\n {\n expression: ['email'],\n details: {\n text: 'Email not found',\n },\n },\n ],\n };\n }\n },\n },\n 'fhir/R4/AccessPolicy?name=Example%20Access%20Policy': {\n GET: ExampleAccessPolicySearchBundle,\n },\n 'fhir/R4/AccessPolicy/123': {\n GET: ExampleAccessPolicy,\n },\n 'fhir/R4/AuditEvent?entity=Subscription/123&_count=20&_sort=-_lastUpdated': {\n GET: ExampleAuditEventBundle,\n },\n 'fhir/R4/Binary?_filename=hello.exe': {\n POST: badRequest('Invalid file type'),\n },\n 'fhir/R4/Bot/123': {\n GET: ExampleBot,\n },\n 'fhir/R4/Communication': {\n POST: newComment,\n },\n 'fhir/R4/Communication?based-on=ServiceRequest/123': {\n GET: HomerCommunications,\n },\n 'fhir/R4/Communication?encounter=Encounter/123': {\n GET: HomerCommunications,\n },\n 'fhir/R4/Communication?subject=Patient/123': {\n GET: HomerCommunications,\n },\n 'fhir/R4/Device?subject=Patient/123': {\n GET: EmptySearchBundle,\n },\n 'fhir/R4/DeviceRequest?patient=Patient/123': {\n GET: EmptySearchBundle,\n },\n 'fhir/R4/DiagnosticReport/123': {\n GET: HomerDiagnosticReport,\n },\n 'fhir/R4/DiagnosticReport/123/_history': {\n GET: HomerDiagnosticReportBundle,\n },\n 'fhir/R4/DiagnosticReport?based-on=ServiceRequest/123': {\n GET: HomerDiagnosticReportBundle,\n },\n 'fhir/R4/DiagnosticReport?subject=Patient/123': {\n GET: HomerDiagnosticReportBundle,\n },\n 'fhir/R4/Encounter/123': {\n GET: HomerEncounter,\n },\n 'fhir/R4/Encounter/123/_history': {\n GET: HomerEncounterHistory,\n },\n 'fhir/R4/Media': {\n POST: newMedia,\n },\n 'fhir/R4/Media?based-on=ServiceRequest/123': {\n GET: HomerMedia,\n },\n 'fhir/R4/Media?encounter=Encounter/123': {\n GET: HomerMedia,\n },\n 'fhir/R4/Media?subject=Patient/123': {\n GET: HomerMedia,\n },\n 'fhir/R4/Observation?_fields=value[x]': {\n GET: HomerObservationSearchBundle,\n },\n 'fhir/R4/Observation/1': {\n GET: HomerObservation1,\n },\n 'fhir/R4/Observation/2': {\n GET: HomerObservation2,\n },\n 'fhir/R4/Observation/3': {\n GET: HomerObservation3,\n },\n 'fhir/R4/Observation/4': {\n GET: HomerObservation4,\n },\n 'fhir/R4/Observation/5': {\n GET: HomerObservation5,\n },\n 'fhir/R4/Observation/6': {\n GET: HomerObservation6,\n },\n 'fhir/R4/Organization?name=Different': {\n GET: OrganizationSearchBundle,\n },\n 'fhir/R4/Organization/123': {\n GET: TestOrganization,\n },\n 'fhir/R4/Organization/456': {\n GET: DifferentOrganization,\n },\n 'fhir/R4/Patient?name=Simpson': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?_fields=id,_lastUpdated,name&name=Simpson': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?_count=20&_fields=id,_lastUpdated,name,birthDate,gender&_sort=-_lastUpdated': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?_fields=id,_lastUpdated,name&_lastUpdated=ge2021-12-01T00%3A00%3A00.000Z': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?name=Bob': {\n GET: EmptySearchBundle,\n },\n 'fhir/R4/Patient/123': {\n GET: HomerSimpson,\n },\n 'fhir/R4/Patient/123/_history': {\n GET: HomerSimpsonHistory,\n },\n 'fhir/R4/Practitioner': {\n POST: HomerSimpson,\n },\n 'fhir/R4/Practitioner/123': {\n GET: DrAliceSmith,\n },\n 'fhir/R4/Practitioner/123/_history': {\n GET: DrAliceSmithHistoryBundle,\n },\n 'fhir/R4/Practitioner/123/_history/1': {\n GET: DrAliceSmith,\n },\n 'fhir/R4/Practitioner/not-found/_history': {\n GET: notFound,\n },\n 'fhir/R4/Questionnaire?subject-type=Patient': {\n GET: ExampleQuestionnaireBundle,\n },\n 'fhir/R4/Questionnaire/not-found': {\n GET: notFound,\n },\n 'fhir/R4/Questionnaire/123': {\n GET: ExampleQuestionnaire,\n },\n 'fhir/R4/QuestionnaireResponse': {\n POST: ExampleQuestionnaireResponse,\n },\n 'fhir/R4/QuestionnaireResponse/123': {\n GET: ExampleQuestionnaireResponse,\n },\n 'fhir/R4/ServiceRequest/123': {\n GET: HomerServiceRequest,\n },\n 'fhir/R4/ServiceRequest/123/_history': {\n GET: HomerServiceRequestHistoryBundle,\n },\n 'fhir/R4/ServiceRequest?subject=Patient/123': {\n GET: HomerServiceRequestSearchBundle,\n },\n 'fhir/R4/Subscription/123': {\n GET: ExampleSubscription,\n },\n 'fhir/R4/Subscription/123/_history': {\n GET: ExampleSubscriptionHistory,\n },\n 'fhir/R4/ValueSet/%24expand?url=https%3A%2F%2Fexample.com%2Ftest&filter=xyz': {\n GET: exampleValueSet,\n },\n 'fhir/R4/%24graphql': {\n POST: GraphQLSchemaResponse,\n },\n 'fhir/R4': {\n POST: (body: string) => {\n const request = JSON.parse(body) as Bundle;\n return {\n resourceType: 'Bundle',\n type: 'batch-response',\n entry: request.entry?.map((e: BundleEntry) => {\n const url = 'fhir/R4/' + e?.request?.url;\n const method = e?.request?.method as string;\n const resource = routes[url]?.[method];\n if (resource?.resourceType === 'OperationOutcome') {\n return { resource, response: { status: getStatus(resource).toString() } };\n } else if (resource) {\n return { resource, response: { status: '200' } };\n } else {\n return { resource: notFound, response: { status: '404' } };\n }\n }),\n };\n },\n },\n};\n\nexport interface MockClientOptions {\n readonly debug?: boolean;\n}\n\nexport class MockClient extends MedplumClient {\n activeLoginOverride?: LoginState;\n\n constructor(clientOptions?: MockClientOptions) {\n super({\n baseUrl: 'https://example.com/',\n clientId: 'my-client-id',\n fetch: (url: string, options: any) => {\n const method = options.method;\n const path = url.replace('https://example.com/', '');\n\n if (clientOptions?.debug) {\n console.log('MockClient', method, path);\n }\n\n let result = routes[path]?.[method];\n if (typeof result === 'function') {\n result = result(options.body);\n }\n\n if (clientOptions?.debug && !result) {\n console.log('MockClient: not found', method, path);\n }\n\n const response: any = {\n request: {\n url,\n options,\n },\n ...result,\n };\n\n if (clientOptions?.debug) {\n console.log('MockClient', JSON.stringify(response, null, 2));\n }\n\n return Promise.resolve({\n json: () => Promise.resolve(response),\n });\n },\n });\n }\n\n clear(): void {\n super.clear();\n this.activeLoginOverride = undefined;\n }\n\n getProfile(): ProfileResource {\n return {\n resourceType: 'Practitioner',\n id: '123',\n meta: {\n versionId: '456',\n },\n } as Practitioner;\n }\n\n setActiveLoginOverride(activeLoginOverride: LoginState): void {\n this.activeLoginOverride = activeLoginOverride;\n }\n\n getActiveLogin(): LoginState | undefined {\n if (this.activeLoginOverride !== undefined) {\n return this.activeLoginOverride;\n }\n return super.getActiveLogin();\n }\n}\n"],"names":["TestOrganization","resourceType","id","meta","versionId","name","DifferentOrganization","OrganizationSearchBundle","type","entry","resource","DrAliceSmith","lastUpdated","author","reference","given","family","DrAliceSmithHistoryBundle","ExampleBot","code","ExampleQuestionnaire","title","item","linkId","text","ExampleQuestionnaireBundle","ExampleQuestionnaireResponse","questionnaire","subject","source","HomerSimpson","identifier","system","value","photo","contentType","url","HomerSimpsonHistory","HomerEncounter","HomerEncounterHistory","HomerCommunications","payload","contentString","HomerMedia","content","HomerDiagnosticReport","display","resultsInterpreter","result","HomerDiagnosticReportBundle","HomerObservation1","valueString","HomerObservation2","valueQuantity","unit","referenceRange","low","HomerObservation3","high","HomerObservation4","interpretation","HomerObservation5","HomerObservation6","component","HomerObservationSearchBundle","total","HomerServiceRequest","coding","HomerServiceRequestHistoryBundle","HomerServiceRequestSearchBundle","BartSimpson","SimpsonSearchBundle","ExampleSubscription","ExampleSubscriptionHistory","ExampleAuditEvent","Date","toISOString","ExampleAuditEventBundle","EmptySearchBundle","ObservationStructureDefinition","snapshot","element","path","min","max","PatientStructureDefinition","PatientSearchParameters","base","expression","target","PractitionerStructureDefinition","QuestionnaireStructureDefinition","targetProfile","ServiceRequestServiceDefinition","GraphQLSchemaResponse","data","StructureDefinitionList","SearchParameterList","exampleValueSet","expansion","contains","ExampleAccessPolicy","routes","GET","project","members","profile","POST","ok","body","oldPassword","JSON","parse","allOk","issue","details","password","email","badRequest","notFound","map","e","request","method","response","status","getStatus","toString","MockClient","MedplumClient","constructor","clientOptions","super","baseUrl","clientId","fetch","options","replace","debug","console","log","stringify","Promise","resolve","json","clear","this","activeLoginOverride","undefined","getProfile","setActiveLoginOverride","getActiveLogin"],"mappings":"8UAEaA,EAAiC,CAC5CC,aAAc,eACdC,GAAI,MACJC,KAAM,CACJC,UAAW,KAEbC,KAAM,qBAGKC,EAAsC,CACjDL,aAAc,eACdC,GAAI,MACJC,KAAM,CACJC,UAAW,KAEbC,KAAM,aAGKE,EAAiD,CAC5DN,aAAc,SACdO,KAAM,YACNC,MAAO,CACL,CACEC,SAAUJ,KAKHK,EAA6B,CACxCV,aAAc,eACdC,GAAI,MACJC,KAAM,CACJC,UAAW,IACXQ,YAAa,uBACbC,OAAQ,CACNC,UAAW,qBAGfT,KAAM,CACJ,CACEU,MAAO,CAAC,SACRC,OAAQ,WAKDC,EAAkD,CAC7DhB,aAAc,SACdO,KAAM,UACNC,MAAO,CACL,CACEC,SAAUC,GAEZ,CACED,SAAU,CACRT,aAAc,eACdC,GAAI,MACJC,KAAM,CACJC,UAAW,IACXQ,YAAa,uBACbC,OAAQ,CACNC,UAAW,qBAGfT,KAAM,CAAC,CAAEU,MAAO,CAAC,WAAYC,OAAQ,cChEhCE,EAAkB,CAC7BjB,aAAc,MACdC,GAAI,MACJG,KAAM,WACNc,KAAM,+BCJKC,EAAsC,CACjDnB,aAAc,gBACdC,GAAI,MACJG,KAAM,SACNgB,MAAO,SACPC,KAAM,CACJ,CACEC,OAAQ,IACRC,KAAM,iBACNhB,KAAM,YAKCiB,EAAoD,CAC/DxB,aAAc,SACdO,KAAM,YACNC,MAAO,CACL,CACEC,SAAUU,KAKHM,EAAsD,CACjEzB,aAAc,wBACdC,GAAI,MACJyB,cAAe,oBACfC,QAAS,CACPd,UAAW,eAEbe,OAAQ,CACNf,UAAW,qBCvBFgB,EAAwB,CACnC7B,aAAc,UACdC,GAAI,MACJC,KAAM,CACJC,UAAW,IACXQ,YAAa,2BACbC,OAAQ,CACNC,UAAW,qBAGfiB,WAAY,CACV,CAAEC,OAAQ,MAAOC,MAAO,OACxB,CAAED,OAAQ,MAAOC,MAAO,QAE1B5B,KAAM,CACJ,CACEU,MAAO,CAAC,SACRC,OAAQ,YAGZkB,MAAO,CACL,CACEC,YAAa,aACbC,IAAK,qCAKEC,EAAuC,CAClDpC,aAAc,SACdO,KAAM,UACNC,MAAO,CACL,CACEC,SAAUoB,GAEZ,CACEpB,SAAU,CACRT,aAAc,UACdC,GAAI,MACJC,KAAM,CACJC,UAAW,IACXQ,YAAa,2BACbC,OAAQ,CACNC,UAAW,qBAGfT,KAAM,CACJ,CACEU,MAAO,CAAC,SACRC,OAAQ,YAGZkB,MAAO,CACL,CACEC,YAAa,aACbC,IAAK,wCAQJE,EAA4B,CACvCrC,aAAc,YACdC,GAAI,MACJC,KAAM,CACJC,UAAW,QAIFmC,EAA2C,CACtDtC,aAAc,SACdO,KAAM,UACNC,MAAO,CACL,CACEC,SAAU4B,KAKHE,EAA6C,CACxDvC,aAAc,SACdQ,MAAO,CACL,CACEC,SAAU,CACRT,aAAc,gBACdC,GAAI,MACJC,KAAM,CACJS,YAAa,uBACbC,OAAQ,CACNC,UAAW,qBAGf2B,QAAS,CACP,CACEC,cAAe,oBAQdC,EAA4B,CACvC1C,aAAc,SACdQ,MAAO,CACL,CACEC,SAAU,CACRT,aAAc,QACdC,GAAI,MACJC,KAAM,CACJS,YAAa,uBACbC,OAAQ,CACNC,UAAW,qBAGf8B,QAAS,CACPT,YAAa,aACbC,IAAK,oCAOFS,EAA0C,CACrD5C,aAAc,mBACdC,GAAI,MACJ0B,QAAS,CACPd,UAAW,cACXgC,QAAS,iBAEXC,mBAAoB,CAClB,CACEjC,UAAW,mBACXgC,QAAS,oBAGbE,OAAQ,CACN,CAAElC,UAAW,iBACb,CAAEA,UAAW,iBACb,CAAEA,UAAW,iBACb,CAAEA,UAAW,iBACb,CAAEA,UAAW,iBACb,CAAEA,UAAW,mBAIJmC,EAAwD,CACnEhD,aAAc,SACdO,KAAM,YACNC,MAAO,CACL,CACEC,SAAUmC,KAKHK,EAAiC,CAC5CjD,aAAc,cACdC,GAAI,IACJiD,YAAa,QAGFC,EAAiC,CAC5CnD,aAAc,cACdC,GAAI,IACJmD,cAAe,CACbpB,MAAO,GACPqB,KAAM,KAERC,eAAgB,CACd,CACEC,IAAK,CACHvB,MAAO,OAMFwB,EAAiC,CAC5CxD,aAAc,cACdC,GAAI,IACJmD,cAAe,CACbpB,MAAO,GACPqB,KAAM,KAERC,eAAgB,CACd,CACEG,KAAM,CACJzB,MAAO,OAMF0B,EAAiC,CAC5C1D,aAAc,cACdC,GAAI,IACJmD,cAAe,CACbpB,MAAO,GACPqB,KAAM,KAERC,eAAgB,CACd,CACEC,IAAK,CACHvB,MAAO,IAETyB,KAAM,CACJzB,MAAO,MAIb2B,eAAgB,CACd,CACEpC,KAAM,UAKCqC,EAAiC,CAC5C5D,aAAc,cACdC,GAAI,IACJmD,cAAe,CACbpB,MAAO,IACPqB,KAAM,KAERC,eAAgB,CAAC,IACjBK,eAAgB,CAAC,KAGNE,EAAiC,CAC5C7D,aAAc,cACd8D,UAAW,CACT,CACEV,cAAe,CACbpB,MAAO,IACPqB,KAAM,OACNtB,OAAQ,8BAGZ,CACEqB,cAAe,CACbpB,MAAO,GACPqB,KAAM,OACNtB,OAAQ,gCAMHgC,EAAoD,CAC/D/D,aAAc,SACdgE,MAAO,EACPxD,MAAO,CACL,CACEC,SAAU+C,KAKHS,EAAsC,CACjDjE,aAAc,iBACdC,GAAI,MACJC,KAAM,CACJC,UAAW,IACXQ,YAAa,uBACbC,OAAQ,CACNC,UAAW,qBAGfK,KAAM,CACJgD,OAAQ,CACN,CACEnC,OAAQ,yBACRb,KAAM,0BAIZS,QAAS,CACPd,UAAW,cACXgC,QAAS,kBAIAsB,EAA2D,CACtEnE,aAAc,SACdO,KAAM,UACNC,MAAO,CACL,CACEC,SAAUwD,KAKHG,EAA0D,CACrEpE,aAAc,SACdO,KAAM,YACNC,MAAO,CACL,CACEC,SAAUwD,KAKHI,EAAuB,CAClCrE,aAAc,UACdC,GAAI,MACJC,KAAM,CACJC,UAAW,IACXQ,YAAa,uBACbC,OAAQ,CACNC,UAAW,qBAGfT,KAAM,CACJ,CACEU,MAAO,CAAC,QACRC,OAAQ,YAGZkB,MAAO,CACL,CACEC,YAAa,aACbC,IAAK,qCAKEmC,EAAuC,CAClDtE,aAAc,SACdO,KAAM,YACNyD,MAAO,EACPxD,MAAO,CACL,CACEC,SAAUoB,GAEZ,CACEpB,SAAU4D,KC5VHE,EAAoC,CAC/CvE,aAAc,eACdC,GAAI,MACJC,KAAM,CACJC,UAAW,QAIFqE,EAAmD,CAC9DxE,aAAc,SACdO,KAAM,UACNC,MAAO,CACL,CACEC,SAAU8D,KAKHE,EAAgC,CAC3CzE,aAAc,aACdC,GAAI,MACJC,KAAM,CACJS,aAAa,IAAI+D,MAAOC,cACxBxE,UAAW,MACXS,OAAQ,CACNC,UAAW,sBAKJ+D,EAA8C,CACzD5E,aAAc,SACdQ,MAAO,CACL,CACEC,SAAUgE,KClCHI,EAA4B,CACvC7E,aAAc,SACdO,KAAM,YACNyD,MAAO,EACPxD,MAAO,IAGIsE,EAAsD,CACjE9E,aAAc,sBACdI,KAAM,cACN2E,SAAU,CACRC,QAAS,CACP,CACEC,KAAM,iBACN1E,KAAM,CACJ,CACEW,KAAM,UAIZ,CACE+D,KAAM,uBACNC,IAAK,EACLC,IAAK,IACL5E,KAAM,CACJ,CACEW,KAAM,YAER,CACEA,KAAM,mBAER,CACEA,KAAM,UAER,CACEA,KAAM,WAER,CACEA,KAAM,WAER,CACEA,KAAM,SAER,CACEA,KAAM,SAER,CACEA,KAAM,eAER,CACEA,KAAM,QAER,CACEA,KAAM,YAER,CACEA,KAAM,eAQLkE,EAAkD,CAC7DpF,aAAc,sBACdC,GAAI,MACJG,KAAM,UACN2E,SAAU,CACRC,QAAS,CACP,CACE/E,GAAI,eACJgF,KAAM,eACN1E,KAAM,CACJ,CACEW,KAAM,cAGViE,IAAK,QAMAE,EAA6C,CACxD,CACErF,aAAc,kBACdC,GAAI,eACJqF,KAAM,CAAC,WACPpE,KAAM,OACNd,KAAM,OACNG,KAAM,SACNgF,WAAY,gBAEd,CACEvF,aAAc,kBACdC,GAAI,oBACJqF,KAAM,CAAC,WACPpE,KAAM,YACNd,KAAM,YACNG,KAAM,OACNgF,WAAY,qBAEd,CACEvF,aAAc,kBACdC,GAAI,uBACJqF,KAAM,CAAC,WACPpE,KAAM,eACNd,KAAM,eACNG,KAAM,YACNgF,WAAY,uBACZC,OAAQ,CAAC,kBAIAC,EAAuD,CAClEzF,aAAc,sBACdI,KAAM,eACN2E,SAAU,CACRC,QAAS,CACP,CACEC,KAAM,kBACN1E,KAAM,CACJ,CACEW,KAAM,UAIZ,CACE+D,KAAM,oBACN1E,KAAM,CACJ,CACEW,KAAM,cAGViE,IAAK,KAEP,CACEF,KAAM,sBACN1E,KAAM,CACJ,CACEW,KAAM,aAQLwE,EAAwD,CACnE1F,aAAc,sBACdI,KAAM,gBACN2E,SAAU,CACRC,QAAS,CACP,CACE/E,GAAI,qBACJgF,KAAM,qBACN1E,KAAM,CACJ,CACEW,KAAM,qBAIZ,CACEjB,GAAI,kCACJgF,KAAM,kCACN1E,KAAM,CACJ,CACEW,KAAM,qBAIZ,CACEjB,GAAI,2CACJgF,KAAM,2CACNC,IAAK,EACLC,IAAK,IACL5E,KAAM,CACJ,CACEW,KAAM,WAER,CACEA,KAAM,QAER,CACEA,KAAM,QAER,CACEA,KAAM,UAER,CACEA,KAAM,UAER,CACEA,KAAM,YACNyE,cAAe,CAAC,0DAQfC,EAAuD,CAClE5F,aAAc,sBACdI,KAAM,iBACN2E,SAAU,CACRC,QAAS,CACP,CACEC,KAAM,oBACN1E,KAAM,CACJ,CACEW,KAAM,UAIZ,CACE+D,KAAM,sBACN1E,KAAM,CACJ,CACEW,KAAM,wBAQL2E,EAAwB,CACnCC,KAAM,CACJC,wBAAyB,CACvBjB,EACAM,EACAK,EACAC,EACAE,GAEFI,oBAAqB,IAAIX,KC7OhBY,EAA4B,CACvCjG,aAAc,WACdkG,UAAW,CACTC,SAAU,CACR,CACEpE,OAAQ,IACRb,KAAM,YACN2B,QAAS,mBCPJuD,EAAoC,CAC/CpG,aAAc,eACdC,GAAI,MACJG,KAAM,yBCsDFiG,EAA8C,CAClD,qBAAsB,CACpBC,IAAK,CACHC,QAAS,CAAEtG,GAAI,MAAOG,KAAM,eAC5BoG,QAAS,CAAC,CAAEC,QAAS,mBAAoBrG,KAAM,kBAGnD,mCAAoC,CAClCsG,KAAM,CACJC,IAAI,IAGR,wBAAyB,CACvBD,KAAM,CACJC,IAAI,IAGR,sBAAuB,CACrBD,KAAM,CACJC,IAAI,IAGR,sBAAuB,CACrBD,KAAOE,IACL,MAAMC,YAAEA,GAAgBC,KAAKC,MAAMH,GACnC,MAAoB,WAAhBC,EACKG,QAEA,CACLhH,aAAc,mBACdiH,MAAO,CACL,CACE1B,WAAY,CAAC,eACb2B,QAAS,CACP3F,KAAM,2BAQpB,aAAc,CACZmF,KAAM,CACJD,QAAS,CAAE5F,UAAW,sBAG1B,mBAAoB,CAClB6F,KAAOE,IACL,MAAMO,SAAEA,GAAaL,KAAKC,MAAMH,GAChC,MAAiB,WAAbO,EACKH,QAEA,CACLhH,aAAc,mBACdiH,MAAO,CACL,CACE1B,WAAY,CAAC,YACb2B,QAAS,CACP3F,KAAM,yBAQpB,gBAAiB,CACfmF,KAAOE,IACL,MAAMQ,MAAEA,EAAKD,SAAEA,GAAaL,KAAKC,MAAMH,GACvC,MAAc,uBAAVQ,GAA+C,aAAbD,EAC7BH,QAEA,CACLhH,aAAc,mBACdiH,MAAO,CACL,CACEC,QAAS,CACP3F,KAAM,gBAQpB,qBAAsB,CACpBmF,KAAOE,IACL,MAAMQ,MAAEA,GAAUN,KAAKC,MAAMH,GAC7B,MAAc,sBAAVQ,EACKJ,QAEA,CACLhH,aAAc,mBACdiH,MAAO,CACL,CACE1B,WAAY,CAAC,SACb2B,QAAS,CACP3F,KAAM,wBAQpB,sDAAuD,CACrD+E,ID9JiE,CACnEtG,aAAc,SACdO,KAAM,YACNC,MAAO,CACL,CACEC,SAAU2F,MC2Jd,2BAA4B,CAC1BE,IAAKF,GAEP,2EAA4E,CAC1EE,IAAK1B,GAEP,qCAAsC,CACpC8B,KAAMW,aAAW,sBAEnB,kBAAmB,CACjBf,IAAKrF,GAEP,wBAAyB,CACvByF,KA7I8B,CAChC1G,aAAc,gBACdC,GAAI,cACJuC,QAAS,CACP,CACEC,cAAe,mBA0InB,oDAAqD,CACnD6D,IAAK/D,GAEP,gDAAiD,CAC/C+D,IAAK/D,GAEP,4CAA6C,CAC3C+D,IAAK/D,GAEP,qCAAsC,CACpC+D,IAAKzB,GAEP,4CAA6C,CAC3CyB,IAAKzB,GAEP,+BAAgC,CAC9ByB,IAAK1D,GAEP,wCAAyC,CACvC0D,IAAKtD,GAEP,uDAAwD,CACtDsD,IAAKtD,GAEP,+CAAgD,CAC9CsD,IAAKtD,GAEP,wBAAyB,CACvBsD,IAAKjE,GAEP,iCAAkC,CAChCiE,IAAKhE,GAEP,gBAAiB,CACfoE,KAvKoB,CACtB1G,aAAc,QACdC,GAAI,YACJ0C,QAAS,CACPT,YAAa,aACbC,IAAK,mCAoKP,4CAA6C,CAC3CmE,IAAK5D,GAEP,wCAAyC,CACvC4D,IAAK5D,GAEP,oCAAqC,CACnC4D,IAAK5D,GAEP,uCAAwC,CACtC4D,IAAKvC,GAEP,wBAAyB,CACvBuC,IAAKrD,GAEP,wBAAyB,CACvBqD,IAAKnD,GAEP,wBAAyB,CACvBmD,IAAK9C,GAEP,wBAAyB,CACvB8C,IAAK5C,GAEP,wBAAyB,CACvB4C,IAAK1C,GAEP,wBAAyB,CACvB0C,IAAKzC,GAEP,sCAAuC,CACrCyC,IAAKhG,GAEP,2BAA4B,CAC1BgG,IAAKvG,GAEP,2BAA4B,CAC1BuG,IAAKjG,GAEP,+BAAgC,CAC9BiG,IAAKhC,GAEP,4DAA6D,CAC3DgC,IAAKhC,GAEP,8FAA+F,CAC7FgC,IAAKhC,GAEP,2FAA4F,CAC1FgC,IAAKhC,GAEP,2BAA4B,CAC1BgC,IAAKzB,GAEP,sBAAuB,CACrByB,IAAKzE,GAEP,+BAAgC,CAC9ByE,IAAKlE,GAEP,uBAAwB,CACtBsE,KAAM7E,GAER,2BAA4B,CAC1ByE,IAAK5F,GAEP,oCAAqC,CACnC4F,IAAKtF,GAEP,sCAAuC,CACrCsF,IAAK5F,GAEP,0CAA2C,CACzC4F,IAAKgB,YAEP,6CAA8C,CAC5ChB,IAAK9E,GAEP,kCAAmC,CACjC8E,IAAKgB,YAEP,4BAA6B,CAC3BhB,IAAKnF,GAEP,gCAAiC,CAC/BuF,KAAMjF,GAER,oCAAqC,CACnC6E,IAAK7E,GAEP,6BAA8B,CAC5B6E,IAAKrC,GAEP,sCAAuC,CACrCqC,IAAKnC,GAEP,6CAA8C,CAC5CmC,IAAKlC,GAEP,2BAA4B,CAC1BkC,IAAK/B,GAEP,oCAAqC,CACnC+B,IAAK9B,GAEP,6EAA8E,CAC5E8B,IAAKL,GAEP,qBAAsB,CACpBS,KAAMb,GAER,UAAW,CACTa,KAAOE,UAEL,MAAO,CACL5G,aAAc,SACdO,KAAM,iBACNC,gBAJcsG,KAAKC,MAAMH,GAIVpG,4BAAO+G,KAAKC,cACzB,MAAMrF,EAAM,sBAAaqF,MAAAA,SAAAA,EAAGC,8BAAStF,KAC/BuF,YAASF,MAAAA,SAAAA,EAAGC,8BAASC,OACrBjH,YAAW4F,EAAOlE,yBAAOuF,GAC/B,MAA+B,sBAA3BjH,MAAAA,SAAAA,EAAUT,cACL,CAAES,SAAAA,EAAUkH,SAAU,CAAEC,OAAQC,YAAUpH,GAAUqH,aAClDrH,EACF,CAAEA,SAAAA,EAAUkH,SAAU,CAAEC,OAAQ,QAEhC,CAAEnH,SAAU6G,WAAUK,SAAU,CAAEC,OAAQ,qBAYhDG,UAAmBC,gBAG9BC,YAAYC,GACVC,MAAM,CACJC,QAAS,uBACTC,SAAU,eACVC,MAAO,CAACnG,EAAaoG,WACnB,MAAMb,EAASa,EAAQb,OACjBzC,EAAO9C,EAAIqG,QAAQ,uBAAwB,KAE7CN,MAAAA,SAAAA,EAAeO,QACjBC,QAAQC,IAAI,aAAcjB,EAAQzC,GAGpC,IAAIlC,YAASsD,EAAOpB,yBAAQyC,GACN,mBAAX3E,IACTA,EAASA,EAAOwF,EAAQ3B,QAGtBsB,MAAAA,SAAAA,EAAeO,SAAU1F,GAC3B2F,QAAQC,IAAI,wBAAyBjB,EAAQzC,GAG/C,MAAM0C,iBACJF,QAAS,CACPtF,IAAAA,EACAoG,QAAAA,IAECxF,GAOL,OAJImF,MAAAA,SAAAA,EAAeO,QACjBC,QAAQC,IAAI,aAAc7B,KAAK8B,UAAUjB,EAAU,KAAM,IAGpDkB,QAAQC,QAAQ,CACrBC,KAAM,IAAMF,QAAQC,QAAQnB,QAMpCqB,QACEb,MAAMa,QACNC,KAAKC,yBAAsBC,EAG7BC,aACE,MAAO,CACLpJ,aAAc,eACdC,GAAI,MACJC,KAAM,CACJC,UAAW,QAKjBkJ,uBAAuBH,GACrBD,KAAKC,oBAAsBA,EAG7BI,iBACE,YAAiCH,IAA7BF,KAAKC,oBACAD,KAAKC,oBAEPf,MAAMmB"}
|