@medplum/mock 0.4.0 → 0.4.1
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/dist/cjs/index.js +4150 -202
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.min.js +1 -1
- package/dist/cjs/index.min.js.map +1 -1
- package/dist/esm/index.js +4151 -198
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +1 -1
- package/dist/esm/index.min.js.map +1 -1
- package/dist/types/mocks/types.d.ts +57 -7
- package/package.json +3 -3
- package/rollup.config.js +0 -43
|
@@ -1 +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":"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"}
|
|
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 photo: [\n {\n contentType: 'image/png',\n url: 'https://docs.medplum.com/img/cdc-femaledoc.png',\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 birthDate: '1956-05-12',\n name: [\n {\n given: ['Homer'],\n family: 'Simpson',\n },\n ],\n photo: [\n {\n contentType: 'image/png',\n url: 'https://docs.medplum.com/img/homer-simpson.png',\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/png',\n url: 'https://docs.medplum.com/img/homer-simpson.png',\n },\n ],\n },\n },\n ],\n};\n\nexport const HomerEncounter: Encounter = {\n resourceType: 'Encounter',\n id: '123',\n meta: {\n versionId: '456',\n lastUpdated: '2020-01-01T00:00:00.000Z',\n author: {\n reference: 'Practitioner/123',\n },\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 meta: {\n versionId: '1',\n lastUpdated: '2020-01-02T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\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 code: {\n text: 'Test 1',\n },\n valueString: 'test',\n};\n\nexport const HomerObservation2: Observation = {\n resourceType: 'Observation',\n id: '2',\n code: {\n text: 'Test 2',\n },\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 code: {\n text: 'Test 3',\n },\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 code: {\n text: 'Test 4',\n },\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 code: {\n text: 'Test 5',\n },\n valueQuantity: {\n value: 100,\n unit: 'x',\n },\n referenceRange: [{}],\n interpretation: [{}],\n};\n\nexport const HomerObservation6: Observation = {\n resourceType: 'Observation',\n code: {\n text: 'Test 6',\n },\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 status: 'completed',\n orderDetail: [\n {\n text: 'Test 1',\n },\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 birthDate: '1979-12-17',\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 } from '@medplum/fhirtypes';\nimport StructureDefinitionList from './structuredefinitions.json';\n\nexport const EmptySearchBundle: Bundle = {\n resourceType: 'Bundle',\n type: 'searchset',\n total: 0,\n entry: [],\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 GraphQLSchemaResponse = {\n data: {\n StructureDefinitionList,\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: [\n { id: '123', profile: { reference: 'Practitioner/123', display: 'Alice Smith' }, role: 'owner' },\n { id: '888', profile: { reference: 'ClientApplication/123', display: 'Test Client' }, role: 'client' },\n ],\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?_fields=value[x]&_total=accurate': {\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?_total=accurate': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?name=Simpson': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?_total=accurate&name=Simpson': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?_fields=id,name&_total=accurate': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?_fields=id,name&_total=accurate&name=Simpson': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?_fields=id,_lastUpdated,name': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?_fields=id,_lastUpdated,name&_total=accurate': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?_fields=id,_lastUpdated,name,birthDate': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?_fields=id,_lastUpdated,name,birthDate&_total=accurate': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?_fields=id,_lastUpdated,name&name=Simpson': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?_fields=id,_lastUpdated,name&_total=accurate&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?_count=20&_fields=id,_lastUpdated,name,birthDate,gender&_sort=-_lastUpdated&_total=accurate': {\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?_fields=id,_lastUpdated,name&_lastUpdated=ge2021-12-01T00%3A00%3A00.000Z&_total=accurate': {\n GET: SimpsonSearchBundle,\n },\n 'fhir/R4/Patient?name=Bob': {\n GET: EmptySearchBundle,\n },\n 'fhir/R4/Patient?_total=accurate&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/ServiceRequest?_fields=id,_lastUpdated,subject,code,status,orderDetail': {\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 blob: () => Promise.resolve(response),\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","photo","contentType","url","DrAliceSmithHistoryBundle","ExampleBot","code","ExampleQuestionnaire","title","item","linkId","text","ExampleQuestionnaireBundle","ExampleQuestionnaireResponse","questionnaire","subject","source","HomerSimpson","identifier","system","value","birthDate","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","status","orderDetail","HomerServiceRequestHistoryBundle","HomerServiceRequestSearchBundle","BartSimpson","SimpsonSearchBundle","ExampleSubscription","ExampleSubscriptionHistory","ExampleAuditEvent","Date","toISOString","ExampleAuditEventBundle","EmptySearchBundle","PatientSearchParameters","base","expression","target","GraphQLSchemaResponse","data","StructureDefinitionList","SearchParameterList","exampleValueSet","expansion","contains","ExampleAccessPolicy","routes","GET","project","members","profile","role","POST","ok","body","oldPassword","JSON","parse","allOk","issue","details","password","email","badRequest","notFound","map","e","request","method","response","getStatus","toString","MockClient","MedplumClient","constructor","clientOptions","super","baseUrl","clientId","fetch","options","path","replace","debug","console","log","stringify","Promise","resolve","blob","json","clear","this","activeLoginOverride","undefined","getProfile","setActiveLoginOverride","getActiveLogin"],"mappings":"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"}
|